Files
EasySoft-ZenTaoPMS/module/product/ui/edit.html.php
T

143 lines
3.9 KiB
PHP

<?php
/**
* The edit view of product of ZenTaoPMS.
*/
namespace zin;
$defaultWidth = '1/2';
$groupsField = $fields['groups'];
$usersField = $fields['whitelist'];
unset($fields['groups'], $fields['whitelist']);
/* zin: Define the form in main content */
$formItems = array();
foreach($fields as $field => $attr)
{
if(empty($attr['control'])) continue;
$fieldName = zget($attr, 'name', $field);
$attr['width'] = zget($attr, 'width', $defaultWidth);
$control = array();
$control['type'] = $attr['control'];
if($attr['control'] == 'select') $control['type'] = 'picker';
if($attr['control'] == 'radio') $control['type'] = 'radioList';
if(isset($attr['options'])) $control['items'] = $attr['options'];
if($attr['control'] == 'multi-select')
{
$control['type'] = 'picker';
$control['multiple'] = true;
$fieldName .= '[]';
}
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
)
);
}
elseif($control['type'] == 'editor')
{
$formGroup = formGroup
(
set::width($attr['width']),
set::label($attr['title']),
set::required($attr['required']),
editor
(
set::name($fieldName),
html($attr['default'])
)
);
}
else
{
$formGroup = formGroup
(
set::id(zget($attr, 'name', $field)),
set::width($attr['width']),
set::name($fieldName),
set::label($attr['title'] ?? null),
set::control($control),
set::value($attr['default']),
set::required($attr['required'])
);
}
if($attr['control'] == 'hidden') $formGroup = formRow(set::hidden(true), $formGroup);
$formItems[$field] = $formGroup;
}
$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
(
set::id('whitelistBox'),
formGroup
(
set::width('full'),
set::label($lang->product->whitelist),
div
(
setClass('w-full check-list'),
div
(
inputGroup
(
$lang->product->groups,
picker
(
set::id($groupsField['name']),
set::name($groupsField['name'] . '[]'),
set::multiple(true),
set::items($groupsField['options']),
set::value($groupsField['default'])
)
)
),
div
(
inputGroup
(
$lang->product->users,
picker
(
set::id($usersField['name']),
set::name($usersField['name'] . '[]'),
set::multiple(true),
set::items($usersField['options']),
set::value($usersField['default'])
)
)
)
)
)
);
formPanel
(
on::change('#program', 'toggleLineByProgram(e.target)'),
on::change('#acl', 'setWhite(e.target)'),
$formItems
);
/* ====== Render page ====== */
render();