Fix elementOptions: rename typo 'ordeable' to 'orderable'

The key 'ordeable' in elementOptions was a long-standing typo for the
correct English word 'orderable'. Since the JS check in settings_utils.js
used the same misspelled key, the feature appeared to work — but it was
relying on the consistent propagation of a typo across the entire codebase.

Two pre-existing entries in front/plugins/ui_settings/config.json already
used the correct spelling 'orderable', but these had no effect because the
JavaScript check (option.ordeable === 'true') never matched them. As a
result, orderable behavior was silently disabled for those two settings.

Changes:
- front/js/settings_utils.js: renamed option.ordeable → option.orderable
  and isOrdeable → isOrderable (6 occurrences, lines 792/823/824/880/1079/
  1192/1228). The JS key check is the authoritative definition of the
  elementOptions property name, so this must change atomically with all
  config files.

- server/initialise.py:245: renamed "ordeable" → "orderable" in the
  hardcoded JSON string for LOADED_PLUGINS setting. This string is the
  source-of-truth for that setting's elementOptions and is not auto-
  generated from the plugin config files.

- front/plugins/*/config.json (33 files, 90 occurrences): renamed all
  "ordeable": "true" entries to "orderable": "true" via sed. All plugins
  used the typo consistently; they must be updated in the same commit to
  avoid a broken intermediate state.

The two formerly broken 'orderable' entries in ui_settings/config.json
are now matched by the corrected JS check and work as intended.

Fixes netalertx/NetAlertX#1584

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
sebingel
2026-04-03 18:28:48 +00:00
parent 9f3dbe2de1
commit 4c117db463
35 changed files with 98 additions and 98 deletions

View File

@@ -789,7 +789,7 @@ const handleElementOptions = (setKey, elementOptions, transformers, val) => {
let inputType = "text";
let readOnly = "";
let isMultiSelect = false;
let isOrdeable = false;
let isOrderable = false;
let cssClasses = "";
let placeholder = "";
let suffix = "";
@@ -820,8 +820,8 @@ const handleElementOptions = (setKey, elementOptions, transformers, val) => {
if (option.multiple === "true") {
isMultiSelect = true;
}
if (option.ordeable === "true") {
isOrdeable = true;
if (option.orderable === "true") {
isOrderable = true;
}
if (option.editable === "true") {
editable = true;
@@ -877,7 +877,7 @@ const handleElementOptions = (setKey, elementOptions, transformers, val) => {
inputType,
readOnly,
isMultiSelect,
isOrdeable,
isOrderable,
cssClasses,
placeholder,
suffix,
@@ -1076,7 +1076,7 @@ function collectSetting(prefix, setCodeName, setType, settingsArray) {
},
array: () => {
let temps = [];
if (opts.isOrdeable) {
if (opts.isOrderable) {
temps = $(`#${setCodeName}`).val();
} else {
const sel = $(`#${setCodeName}`).attr("my-editable") === "true" ? "" : ":selected";
@@ -1189,7 +1189,7 @@ function generateFormHtml(settingsData, set, overrideValue, overrideOptions, ori
inputType,
readOnly,
isMultiSelect,
isOrdeable,
isOrderable,
cssClasses,
placeholder,
suffix,
@@ -1225,7 +1225,7 @@ function generateFormHtml(settingsData, set, overrideValue, overrideOptions, ori
switch (elementType) {
case 'select':
const multi = isMultiSelect ? "multiple" : "";
const addCss = isOrdeable ? "select2 select2-hidden-accessible" : "";
const addCss = isOrderable ? "select2 select2-hidden-accessible" : "";
inputHtml += `<select onChange="settingsChanged();${onChange}"
onfocusout="${focusout}"