Commit 6f833fc7 authored by Yassine Doghri's avatar Yassine Doghri
Browse files

feat(plugins): add new field types + validate & cast user data before storing settings

+ refactor form fields components
parent 82714e71
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -65,12 +65,17 @@ class CategoryModel extends Model
            $options = array_reduce(
                $categories,
                static function (array $result, Category $category): array {
                    $result[$category->id] = '';
                    $label = '';
                    if ($category->parent instanceof Category) {
                        $result[$category->id] = lang('Podcast.category_options.' . $category->parent->code) . ' › ';
                        $label = lang('Podcast.category_options.' . $category->parent->code) . ' › ';
                    }

                    $result[$category->id] .= lang('Podcast.category_options.' . $category->code);
                    $label .= lang('Podcast.category_options.' . $category->code);

                    $result[] = [
                        'value' => $category->id,
                        'label' => $label,
                    ];
                    return $result;
                },
                [],
+4 −1
Original line number Diff line number Diff line
@@ -56,7 +56,10 @@ class LanguageModel extends Model
            $options = array_reduce(
                $languages,
                static function (array $result, Language $language): array {
                    $result[$language->code] = $language->native_name;
                    $result[] = [
                        'value' => $language->code,
                        'label' => $language->native_name,
                    ];
                    return $result;
                },
                [],
+2 −2
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ import Dropdown from "./modules/Dropdown";
import HotKeys from "./modules/HotKeys";
import "./modules/markdown-preview";
import "./modules/markdown-write-preview";
import MultiSelect from "./modules/MultiSelect";
import SelectMulti from "./modules/SelectMulti";
import "./modules/permalink-edit";
import "./modules/play-soundbite";
import PublishMessageWarning from "./modules/PublishMessageWarning";
@@ -26,7 +26,7 @@ import "./modules/xml-editor";
Dropdown();
Tooltip();
Select();
MultiSelect();
SelectMulti();
Slugify();
SidebarToggler();
ClientTimezone();
+2 −2
Original line number Diff line number Diff line
import Choices from "choices.js";

const MultiSelect = (): void => {
const SelectMulti = (): void => {
  // Pass single element
  const multiSelects: NodeListOf<HTMLSelectElement> =
    document.querySelectorAll("select[multiple]");
@@ -49,4 +49,4 @@ const MultiSelect = (): void => {
  }
};

export default MultiSelect;
export default SelectMulti;
+4 −1
Original line number Diff line number Diff line
@@ -25,7 +25,10 @@
  }

  .choices [hidden] {
    display: none !important;
    position: absolute;
    opacity: 0;
    z-index: -9999;
    pointer-events: none;
  }

  .choices[data-type*="select-one"] {
Loading