145 lines
4.1 KiB
PHP
145 lines
4.1 KiB
PHP
<?php
|
|
/**
|
|
* The create 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($attr['control'] == 'multi-select')
|
|
{
|
|
$control['type'] = 'picker';
|
|
$control['multiple'] = true;
|
|
$fieldName .= '[]';
|
|
}
|
|
|
|
if(isset($attr['options'])) $control['items'] = $attr['options'];
|
|
|
|
if($field == 'line' && hasPriv('product', 'manageLine') && $programID)
|
|
{
|
|
$formGroup = formGroup
|
|
(
|
|
set::width($attr['width']),
|
|
set::label($attr['title']),
|
|
inputGroup
|
|
(
|
|
picker
|
|
(
|
|
set::id($fieldName),
|
|
set::name($fieldName),
|
|
set::items($attr['options']),
|
|
set::value($attr['default']),
|
|
set::required($attr['required'])
|
|
),
|
|
input
|
|
(
|
|
set::type('text'),
|
|
set::name('lineName'),
|
|
set::className('hidden')
|
|
),
|
|
span
|
|
(
|
|
set::className('input-group-addon'),
|
|
checkbox
|
|
(
|
|
set::name('newLine'),
|
|
set::checked(empty($attr['options'])),
|
|
set::text($lang->product->newLine)
|
|
)
|
|
)
|
|
)
|
|
);
|
|
}
|
|
elseif($field != 'line')
|
|
{
|
|
$formGroup = formGroup
|
|
(
|
|
set::id($fieldName),
|
|
set::width($attr['width']),
|
|
set::name($fieldName),
|
|
set::label($attr['title']),
|
|
set::control($control),
|
|
$attr['required'] ? '' : set::value($attr['default']),
|
|
set::required($attr['required'])
|
|
);
|
|
}
|
|
|
|
if($attr['control'] == 'hidden') $formGroup = formRow(set::hidden(true), $formGroup);
|
|
$formItems[$field] = $formGroup;
|
|
}
|
|
|
|
if(empty($programID)) $formItems['line'] = formRow(set::hidden(true), $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
|
|
(
|
|
set::title($title),
|
|
on::change('#program', 'setParentProgram'),
|
|
on::change('#acl', 'setWhite(e.target)'),
|
|
on::click('[name=newLine]', 'toggleLine(e.target)'),
|
|
$formItems
|
|
);
|
|
|
|
/* ====== Render page ====== */
|
|
render();
|