Skip to content

Instantly share code, notes, and snippets.

@csavoronin
Created November 3, 2023 12:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save csavoronin/e82b22730d90ba0c5238a4d714ad738f to your computer and use it in GitHub Desktop.
Save csavoronin/e82b22730d90ba0c5238a4d714ad738f to your computer and use it in GitHub Desktop.
[!] Add-ons: Form builder: It was possible to add variants for fields that do not provide variants. Fixed.
diff --git a/design/backend/templates/addons/form_builder/views/pages/components/pages_form_elements.tpl b/design/backend/templates/addons/form_builder/views/pages/components/pages_form_elements.tpl
index 7c41b9da8e5..5badd7443c9 100644
--- a/design/backend/templates/addons/form_builder/views/pages/components/pages_form_elements.tpl
+++ b/design/backend/templates/addons/form_builder/views/pages/components/pages_form_elements.tpl
@@ -3,13 +3,19 @@
function fn_check_element_type(elm, id, selectable_elements)
{
var $ = Tygh.$;
+ var isSelectable = (selectable_elements.indexOf(elm) !== -1);
var elem_id = id.replace('elm_', 'box_element_variants_');
- $('#' + elem_id).toggleBy(selectable_elements.indexOf(elm) == -1);
+ var $boxElementVariants = $('#' + elem_id);
+ $(':input', $boxElementVariants).prop('disabled', !isSelectable)
+ $boxElementVariants.toggleBy(!isSelectable);
// Hide description box for separator
$('#descr_' + id).toggleBy((elm == 'D'));
$('#hr_' + id).toggleBy((elm != 'D'));
+ $('#on_' + elem_id).addClass('hidden', $('#' + elem_id + ':visible').length > 0);
+ $('#off_' + elem_id).toggleClass('hidden', !isSelectable);
+
$('#req_' + id).prop('disabled', (elm == 'D' || elm == 'H'));
}
@@ -49,8 +55,8 @@
<tbody class="cm-row-item cm-row-status-{$element.status|lower}">
<tr>
<td data-th="&nbsp;">
- <div id="on_box_element_variants_{$element.element_id}" alt="{__("expand_collapse_list")}" title="{__("expand_collapse_list")}" class="hand btn cm-combination-options-{$id}"><span class="icon-caret-right"></span></div>
- <div id="off_box_element_variants_{$element.element_id}" alt="{__("expand_collapse_list")}" title="{__("expand_collapse_list")}" class="hand btn hidden cm-combination-options-{$id}"><span class="icon-caret-down"></span> </div>
+ <div id="on_box_element_variants_{$element.element_id}" alt="{__("expand_collapse_list")}" title="{__("expand_collapse_list")}" class="hand btn cm-combination-options-{$id} hidden"><span class="icon-caret-right"></span></div>
+ <div id="off_box_element_variants_{$element.element_id}" alt="{__("expand_collapse_list")}" title="{__("expand_collapse_list")}" class="hand btn cm-combination-options-{$id} {if !$selectable_elements|substr_count:$element.element_type}hidden{/if}"><span class="icon-caret-down"></span> </div>
</td>
<td class="nowrap" data-th="{__("position_short")}">
<input type="hidden" name="page_data[form][elements_data][{$num}][element_id]" value="{$element.element_id}" />
@@ -70,7 +76,7 @@
{include file="common/select_popup.tpl" id=$element.element_id prefix="elm" status=$element.status hidden="" object_id_name="element_id" table="form_options" non_editable=!$allow_save}
</td>
</tr>
- <tr id="box_element_variants_{$element.element_id}" class="{if !$selectable_elements|substr_count:$element.element_type}hidden{/if} row-more row-gray hidden">
+ <tr id="box_element_variants_{$element.element_id}" class="{if !$selectable_elements|substr_count:$element.element_type}hidden{/if} row-more row-gray">
<td>&nbsp;</td>
<td colspan="5">
<div class="table-responsive-wrapper">
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment