* Adjust for product edit.

This commit is contained in:
wangyidong
2023-07-12 15:57:51 +08:00
parent e9b5ffbca6
commit aa78ad9cc5
4 changed files with 60 additions and 19 deletions
+5 -2
View File
@@ -1053,8 +1053,11 @@ class product extends control
$lines = array();
if(empty($productID) or $programID) $lines = $this->product->getLinePairs($programID);
if($productID) return print(html::select("lines[$productID]", $lines, '', "class='form-control picker-select'"));
if(!$productID) return print(html::select('line', $lines, '', "class='form-control picker-select'"));
$items = array();
foreach($lines as $lineID => $lineName) $items[] = array('text' => $lineName, 'value' => $lineID);
if($productID) return print(json_encode(array('multiple' => false, 'defaultValue' => '', 'name' => "lines[$productID]", 'items' => $items)));
if(!$productID) return print(json_encode(array('multiple' => false, 'defaultValue' => '', 'name' => "line", 'items' => $items)));
}
/**
+10 -3
View File
@@ -1,11 +1,18 @@
$(function()
{
setWhite($('[name=acl]:checked'));
toggleLineByProgram();
});
function toggleLineByProgram()
function toggleLineByProgram(obj)
{
var programID = $('#program').val();
var programID = $(obj).val();
$('#lineBox').toggleClass('hidden', programID == 0)
if(programID == 0) return;
$.get($.createLink('product', 'ajaxGetLine', 'programID=' + programID), function(data)
{
$('#line').remove();
$('#lineBox .form-group').append("<div class='form-group-wrapper picker-box' id='line'></div>");
return new zui.Picker('#line', JSON.parse(data));
})
}
+1 -1
View File
@@ -59,7 +59,6 @@ foreach($fields as $field => $attr)
(
set::name('newLine'),
set::checked(empty($attr['options'])),
on::click('toggleLine(e.target)'),
set::text($lang->product->newLine)
)
)
@@ -136,6 +135,7 @@ formPanel
set::title($title),
on::change('#program', 'setParentProgram'),
on::change('#acl', 'setWhite(e.target)'),
on::click('[name=newLine]', 'toggleLine(e.target)'),
$formItems
);
+44 -13
View File
@@ -30,23 +30,47 @@ foreach($fields as $field => $attr)
$fieldName .= '[]';
}
$formGroup = formGroup
(
set::width($attr['width']),
set::name($fieldName),
set::label($attr['title']),
set::control($control),
set::value($attr['default']),
set::required($attr['required'])
);
if($control['type'] == 'picker')
{
$formGroup = formGroup
(
set::width($attr['width']),
set::label($attr['title']),
set::required($attr['required']),
picker
(
set::id(zget($attr, 'name', $field)),
set::items($control['items']),
set::name($fieldName),
set::value($attr['default']),
!empty($control['multiple']) ? set::multiple(true) : null,
),
);
}
else
{
$formGroup = formGroup
(
set::id(zget($attr, 'name', $field)),
set::width($attr['width']),
set::name($fieldName),
set::label($attr['title']),
set::control($control),
set::value($attr['default']),
set::required($attr['required'])
);
}
if($attr['control'] == 'hidden') $formGroup = formRow(set::hidden(true), $formGroup);
$formItems[$field] = $formGroup;
}
if(isset($formItems['program'])) $formItems['program']->add(on::change('toggleLineByProgram();'));
$formItems['acl']->add(on::change('setWhite(e.target);'));
$formItems['line'] = formRow(set::id('lineBox'), $formItems['line']);
$formItems['line'] = formRow
(
set::id('lineBox'),
(isset($fields['program']) && $fields['program']['default'] == 0) ? set::hidden(true) : null,
$formItems['line']
);
/* Set whitelist box. */
$formItems['whitelist'] = formRow
@@ -66,6 +90,7 @@ $formItems['whitelist'] = formRow
$lang->product->groups,
picker
(
set::id($groupsField['name']),
set::name($groupsField['name'] . '[]'),
set::multiple(true),
set::items($groupsField['options']),
@@ -80,6 +105,7 @@ $formItems['whitelist'] = formRow
$lang->product->users,
picker
(
set::id($usersField['name']),
set::name($usersField['name'] . '[]'),
set::multiple(true),
set::items($usersField['options']),
@@ -91,7 +117,12 @@ $formItems['whitelist'] = formRow
)
);
formPanel($formItems);
formPanel
(
on::change('#program', 'toggleLineByProgram(e.target)'),
on::change('#acl', 'setWhite(e.target)'),
$formItems,
);
/* ====== Render page ====== */
render();