Skip to content

Commit

Permalink
fix form builder + mult del + drop console build
Browse files Browse the repository at this point in the history
* update vite config to remove all console mehthods unless console.error for production
* update files to update catch console.log by console.error
* fix error on form builder script that didn't check properly prefix and resulted on group value reset
* update form store : on group delete, this will replace value by default
* fix save disabled/enabled state on advanced mode
  • Loading branch information
syrk4web committed Jul 27, 2024
1 parent a90fd30 commit 59ae53a
Show file tree
Hide file tree
Showing 14 changed files with 238 additions and 171 deletions.
142 changes: 80 additions & 62 deletions src/ui/builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -355,34 +355,41 @@ def get_multiple_from_template(template, multiples):
format_setting = "_".join(setting_split[:-1])
# loop on settings of a multiple group
for mult_name, mult_settings in multiple_plugin.items():
# Check if at least one multiple plugin setting is matching the template setting
if format_setting in mult_settings:
if not mult_name in multiple_template:
multiple_template[mult_name] = {}
# Case it is, we will check if already a group with the right prefix exists
# If not, we will create it
if not prefix in multiple_template[mult_name]:
# We want each settings to have the prefix if exists
# We will get the value of the setting without the prefix and create a prefix key with the same value
# And after that we can delete the original setting
new_multiple_group = {}
for multSett, multValue in mult_settings.items():
new_multiple_group[f"{multSett}{f'_{prefix}' if prefix != '0' else ''}"] = multValue

new_multiple_group = copy.deepcopy(new_multiple_group)

# Update id for each settings
for multSett, multValue in new_multiple_group.items():
multValue["id"] = f"{multValue['id']}{f'-{prefix}' if prefix != '0' else ''}"

multiple_template[mult_name][prefix] = new_multiple_group

# We can now add the template value to setting using the same setting name with prefix
multiple_template[mult_name][prefix][setting]["value"] = value

# Sort key incrementally
for mult_name, mult_settings in multiple_template.items():
multiple_template[mult_name] = dict(sorted(mult_settings.items(), key=lambda item: int(item[0])))

# Check if at least one settign is matching a multiple setting
if not format_setting in mult_settings:
continue

# Case we have at least one multiple setting, we can check if multiple name exists or create it
if not mult_name in multiple_template:
multiple_template[mult_name] = {}

# Case it is, we will check if already a group with the right prefix exists
# If not, we will create it
if not prefix in multiple_template[mult_name]:
# We want each settings to have the prefix if exists
# We will get the value of the setting without the prefix and create a prefix key with the same value
# And after that we can delete the original setting
new_multiple_group = {}
for multSett, multValue in mult_settings.items():
new_multiple_group[f"{multSett}{f'_{prefix}' if prefix != '0' else ''}"] = multValue

new_multiple_group = copy.deepcopy(new_multiple_group)

# Update id for each settings
for multSett, multValue in new_multiple_group.items():
multValue["id"] = f"{multValue['id']}{f'-{prefix}' if prefix != '0' else ''}"

multiple_template[mult_name][prefix] = new_multiple_group

# We can now add the template value to setting using the same setting name with prefix
multiple_template[mult_name][prefix][setting]["value"] = value
multiple_template[mult_name][prefix][setting]["prev_value"] = value
multiple_template[mult_name][prefix][setting]["method"] = "default"

# Sort key incrementally
for mult_name, mult_settings in multiple_template.items():
multiple_template[mult_name] = dict(sorted(mult_settings.items(), key=lambda item: int(item[0])))
return multiple_template


Expand All @@ -409,42 +416,53 @@ def get_multiple_from_settings(settings, multiples):
if setting_split[-1].isdigit():
prefix = setting_split[-1]
format_setting = "_".join(setting_split[:-1])

# loop on settings of a multiple group
for mult_name, mult_settings in multiple_plugins.items():
# Check if at least one multiple plugin setting is matching the template setting
if format_setting in mult_settings:

if not mult_name in multiple_settings:
multiple_settings[mult_name] = {}
# Case it is, we will check if already a group with the right prefix exists
# If not, we will create it
if not prefix in multiple_settings:
# We want each settings to have the prefix if exists
# We will get the value of the setting without the prefix and create a prefix key with the same value
# And after that we can delete the original setting
new_multiple_group = {}
for multSett, multValue in mult_settings.items():
new_multiple_group[f"{multSett}{f'_{prefix}' if prefix != '0' else ''}"] = multValue

new_multiple_group = copy.deepcopy(new_multiple_group)

# Update id for each settings
for multSett, multValue in new_multiple_group.items():
multValue["id"] = f"{multValue['id']}{f'-{prefix}' if prefix != '0' else ''}"

multiple_settings[mult_name][prefix] = new_multiple_group

# We can now add the template value to setting using the same setting name with prefix
multiple_settings[mult_name][prefix][setting]["value"] = value.get("value", multiple_settings[mult_name][prefix][setting]["value"])
multiple_settings[mult_name][prefix][setting]["method"] = value.get("method", "ui")
multiple_settings[mult_name][prefix][setting]["disabled"] = False if value.get("method", "ui") in ("ui", "default", "manual") else True
if multiple_settings[mult_name][prefix][setting].get("disabled", False):
multiple_settings[mult_name][prefix][setting]["popovers"] = [
{
"iconName": "trespass",
"text": "inp_popover_method_disabled",
}
] + multiple_settings[mult_name][prefix][setting].get("popovers", [])

# Check if at least one settign is matching a multiple setting
if not format_setting in mult_settings:
continue

# Case we have at least one multiple setting, we can check if multiple name exists or create it
if not mult_name in multiple_settings:
multiple_settings[mult_name] = {}
# Now check if prefix exist for this mult
if not prefix in multiple_settings[mult_name]:
# We want each settings to have the prefix if exists
# We will get the value of the setting without the prefix and create a prefix key with the same value
# And after that we can delete the original setting
new_multiple_group = {}
for multSett, multValue in mult_settings.items():
new_multiple_group[f"{multSett}{f'_{prefix}' if prefix != '0' else ''}"] = multValue

new_multiple_group = copy.deepcopy(new_multiple_group)

# Update id for each settings
for multSett, multValue in new_multiple_group.items():
multValue["id"] = f"{multValue['id']}{f'-{prefix}' if prefix != '0' else ''}"

multiple_settings[mult_name][prefix] = new_multiple_group

# Update multiple template with real data
multiple_settings[mult_name][prefix][setting]["value"] = value.get("value", multiple_settings[mult_name][prefix][setting]["value"])
multiple_settings[mult_name][prefix][setting]["prev_value"] = value.get("value", multiple_settings[mult_name][prefix][setting]["value"])
multiple_settings[mult_name][prefix][setting]["method"] = value.get("method", "ui")
multiple_settings[mult_name][prefix][setting]["disabled"] = False if value.get("method", "ui") in ("ui", "default", "manual") else True

# Add popovers if setting is disabled else stop
if not multiple_settings[mult_name][prefix][setting].get("disabled", False):
continue

multiple_settings[mult_name][prefix][setting]["popovers"] = [
{
"iconName": "trespass",
"text": "inp_popover_method_disabled",
}
] + multiple_settings[
mult_name
][prefix][setting].get("popovers", [])

return multiple_settings


Expand Down
3 changes: 1 addition & 2 deletions src/ui/client/dashboard/components/Form/Raw.vue
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@ const data = reactive({
@returns {void}
*/
function updateRaw(v) {
console.log("update");
// Transform to a possible valid JSON
rawForm.setRawData(v, true);
let dataToCheck = v;
Expand Down Expand Up @@ -90,7 +89,7 @@ function updateRaw(v) {
rawForm.setTemplate(json, true);
data.isValid = true;
} catch (e) {
console.log(e);
console.error(e);
data.isValid = false;
}
}
Expand Down
8 changes: 4 additions & 4 deletions src/ui/client/dashboard/components/Forms/Field/Editor.vue
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ class Editor {
currTabIndex++;
}
} catch (err) {
console.log(err);
console.error(err);
}
},
readOnly: true,
Expand Down Expand Up @@ -228,7 +228,7 @@ class Editor {
currTabIndex++;
}
} catch (err) {
console.log(err);
console.error(err);
}
},
readOnly: true,
Expand Down Expand Up @@ -300,7 +300,7 @@ function removeErrCSS() {
editor.style = dictStyle;
});
} catch (e) {
console.log(e);
console.error(e);
}
}, 100);
}
Expand All @@ -327,7 +327,7 @@ function setEditorAttrs() {
editorEl.editor.gotoLine(editorRange.start.row, editorRange.start.column);
});
} catch (e) {
console.log(e);
console.error(e);
}
}
Expand Down
6 changes: 2 additions & 4 deletions src/ui/client/dashboard/store/form.js
Original file line number Diff line number Diff line change
Expand Up @@ -84,16 +84,14 @@ export const createFormStore = (storeName, formType) => {
);

// For back end, we need to keep the group but updating values to default in order to delete it
for (const [key, value] of Object.entries(
for (const [settName, setting] of Object.entries(
templateBase.value[index].multiples[multName][groupName]
)) {
value.value = value.default;
setting.value = setting.default;
}

// For UI, we can delete the group to avoid rendering it
delete templateUI.value[index].multiples[multName][groupName];
updateCount.value++;

_updateTempState();
}

Expand Down
2 changes: 1 addition & 1 deletion src/ui/client/dashboard/utils/form.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ function useForm() {
const data = JSON.parse(e.target.getAttribute("data-submit-form"));
useSubmitForm(data);
} catch (e) {
console.log(e);
console.error(e);
}
});
}
Expand Down
Loading

0 comments on commit 59ae53a

Please sign in to comment.