* Adjust for product edit.
This commit is contained in:
@@ -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)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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));
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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
|
||||
);
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user