* Refactor hidden field.

This commit is contained in:
tianshujie
2023-08-01 10:54:01 +08:00
parent b47dfd7738
commit 3be4ad69f8
2 changed files with 45 additions and 21 deletions
+41 -18
View File
@@ -1,6 +1,20 @@
function closeCustomPopupMenu(e)
{
$(e.target).closest('menu').removeClass('show');
$('#formSettingBtn-toggle').trigger('click');
}
function cancelFormSetting(e)
{
$.get($(e.target).closest('button').data('url'), function(data)
{
e.target.closest('form').querySelectorAll('input').forEach(function(field)
{
const checked = `,${data},`.indexOf(`,${$(field).val()},`) >=0;
$(field).prop('checked', checked);
});
});
closeCustomPopupMenu(e);
}
function revertDefaultFields(e)
@@ -68,38 +82,47 @@ function toggleSingleField(customFields, showFields)
customFields.forEach(function(field)
{
var $this = $('form [name^="' + field + '"]');
if($this.length == 0) return;
let $field = $('form [name^="' + field + '"]');
if($field.length == 0) return;
var hidden = !showFields.includes(field);
var $inputGroup = $this.closest('.input-group');
var $formGroup = $this.closest('.form-group');
let hidden = !showFields.includes(field);
let $formRow = $field.closest('.form-row');
let $formGroup = $field.closest('.form-group');
let $inputGroup = $field.closest('.input-group');
let $inputControl = $field.closest('.input-control');
if($inputGroup.length == 1)
{
$prev = $this.prev();
$prev = $field.prev();
if($prev.hasClass('input-group-addon')) $prev.toggleClass('hidden', hidden);
$this.toggleClass('hidden', hidden);
if($this.hasClass('pick-value'))
$field.toggleClass('hidden', hidden);
if($field.hasClass('pick-value'))
{
$pickBox = $this.closest('.pick').parent();
$pickBox = $field.closest('.pick').parent();
$pickBox.toggleClass('hidden', hidden);
$prev = $pickBox.prev();
if($prev.hasClass('input-group-addon')) $prev.toggleClass('hidden', hidden);
}
if($inputControl.length == 1)
{
if($inputControl.hasClass('has-suffix'))
{
if($inputControl.prev().hasClass('input-group-addon')) $inputControl.prev().toggleClass('hidden', hidden);
$inputControl.toggleClass('hidden', hidden);
}
}
if($inputGroup.prev().hasClass('form-label')) $inputGroup.prev().toggleClass('hidden', hidden);
$inputGroup.toggleClass('hidden', $inputGroup.children().length == $inputGroup.children('.hidden').length);
}
else
{
$formGroup.toggleClass('hidden', hidden);
}
})
$('form .form-row').each(function()
{
var $this = $(this);
$this.removeClass('hidden');
if($this.find('.form-group.hidden').length > 0 && $this.find('.form-group:not(.hidden)').length == 0) $this.addClass('hidden');
$formGroup.toggleClass('hidden', $formGroup.children().length == $formGroup.children('.hidden').length);
$formRow.toggleClass('hidden', $formRow.children().length == $formRow.children('.hidden').length);
});
}
@@ -109,7 +132,7 @@ function toggleBatchField(customFields, showFields)
customFields.forEach(function(field)
{
var hidden = !showFields.includes(field);
let hidden = !showFields.includes(field);
$('th.form-batch-head[data-name="' + field + '"]').toggleClass('hidden', hidden);
$('td.form-batch-control[data-name="' + field + '"]').toggleClass('hidden', hidden);
$($('template.form-batch-template')[0].content).find('td.form-batch-control[data-name="' + field + '"]').toggleClass('hidden', hidden);
+4 -3
View File
@@ -36,10 +36,12 @@ class formSettingBtn extends wg
global $lang;
$customLink = createLink('custom', 'ajaxSaveCustomFields', $this->prop('urlParams', ''));
$cancelLink = createLink('custom', 'ajaxGetCustomFields', $this->prop('urlParams', ''));
return dropdown
(
set::arrow('false'),
set::placement('bottom-end'),
set::id('formSettingBtn'),
to::trigger(btn(set::icon('cog-outline'), setClass('ghost'), set::caret(false))),
to::menu(menu
(
@@ -53,10 +55,9 @@ class formSettingBtn extends wg
set::actions(array
(
btn(set::text($lang->save), setClass('primary'), on::click('onSubmitFormtSetting')),
btn(set::text($lang->cancel), set::btnType('reset'), on::click('closeCustomPopupMenu')),
btn(set::text($lang->restore), setClass('text-primary ghost font-bold'), set::href('#'), set('data-url', $customLink), on::click('revertDefaultFields')),
btn(set::text($lang->cancel), set::btnType('button'), on::click('cancelFormSetting'), set('data-url', $cancelLink)),
btn(set::text($lang->restore), setClass('text-primary ghost'), set::href('#'), set('data-url', $customLink), on::click('revertDefaultFields')),
)),
to::headingActions(array(btn(set::icon('close'), setClass('ghost'), set::size('sm'), on::click('closeCustomPopupMenu')))),
array_map(function($field)
{
return checkbox