| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564 |
- <?php
- /**
- * The set view file of custom module of ZenTaoPMS.
- * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
- * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
- * @author Yanyi Cao <caoyanyi@easycorp.ltd>
- * @package custom
- * @link https://www.zentao.net
- */
- namespace zin;
- data('activeMenuItem', $module);
- if(!in_array($module, array('block', 'baseline'))) include 'sidebar.html.php';
- $formItems = array();
- $formActions = array('submit');
- $headingTips = null;
- $actionWidth = 'w-1/2';
- $isEn = $app->getClientLang() == 'en';
- if($module == 'project' && $field == 'unitList')
- {
- $checkedUnitList = array();
- foreach($lang->project->unitList as $unit => $unitName)
- {
- if(in_array($unit, $unitList)) $checkedUnitList[$unit] = $unitName;
- }
- $formItems[] = formGroup
- (
- set::label($lang->custom->project->currencySetting),
- checkList
- (
- setClass('flex flex-wrap unit-box'),
- set::name('unitList[]'),
- set::value($unitList),
- set::inline(true),
- set::items($lang->project->unitList),
- on::change('changeUnit')
- )
- );
- $formItems[] = formGroup
- (
- set::width('1/3'),
- set::label($lang->custom->project->defaultCurrency),
- set::name('defaultCurrency'),
- set::items($checkedUnitList),
- set::value($defaultCurrency),
- set::required(true)
- );
- $actionWidth = 'w-full';
- }
- elseif(in_array($module, array('story', 'requirement', 'epic', 'demand')) && $field == 'reviewRules')
- {
- $formItems[] = formGroup
- (
- set::width('1/2'),
- set::label($lang->custom->reviewRule),
- set::name('reviewRules'),
- set::value($reviewRule),
- set::control('radioListInline'),
- set::items($lang->custom->reviewRules)
- );
- $formItems[] = formGroup
- (
- set::width('1/2'),
- set::label($lang->custom->superReviewers),
- set::name('superReviewers'),
- set::value($superReviewers),
- set::control(array('control' => 'picker', 'multiple' => true)),
- set::items($users)
- );
- }
- elseif(in_array($module, array('story', 'requirement', 'epic')) && $field == 'gradeRule')
- {
- $formItems[] = formGroup
- (
- set::width('1/2'),
- set::label($lang->custom->gradeRule),
- set::name('gradeRule'),
- set::value($gradeRule),
- set::control('radioListInline'),
- set::items($lang->custom->gradeRuleList)
- );
- $formItems[] = div
- (
- setClass('gradeRuleNotice'),
- div($lang->custom->notice->gradeRule)
- );
- }
- elseif(in_array($module, array('epic', 'story', 'requirement', 'demand', 'testcase')) && $field == 'review')
- {
- $formItems[] = formGroup
- (
- set::width('1/2'),
- set::label($lang->custom->storyReview),
- set::name('needReview'),
- set::value($needReview),
- set::control('radioListInline'),
- set::items($lang->custom->reviewList),
- on::change('changeReview')
- );
- if(in_array($module, array('story', 'requirement', 'epic', 'demand')))
- {
- $formItems[] = formRow
- (
- setClass($needReview ? 'hidden' : ''),
- setClass('open-review'),
- formGroup
- (
- set::label(''),
- set::name(''),
- set::value(sprintf($lang->custom->notice->forceReview, $lang->$module->common) . $lang->custom->notice->storyReviewTip),
- set::control('static')
- )
- );
- $formItems[] = formRow
- (
- setClass($needReview ? '' : 'hidden'),
- setClass('close-review'),
- formGroup
- (
- set::label(''),
- set::name(''),
- set::value(sprintf($lang->custom->notice->forceNotReview, $lang->$module->common) . $lang->custom->notice->storyReviewTip),
- set::control('static')
- )
- );
- $app->loadLang('user');
- $space = ($app->getClientLang() != 'zh-cn' and $app->getClientLang() != 'zh-tw') ? ' ' : '';
- $formItems[] = div
- (
- setClass($needReview ? 'hidden' : ''),
- setClass('open-review'),
- formGroup
- (
- set::width('1/2'),
- set::label($lang->custom->forceReview . $space . $lang->custom->account),
- set::name('forceReview'),
- set::value($forceReview),
- set::items($users),
- set::control(array('control' => 'picker', 'multiple' => true))
- ),
- formRow
- (
- setClass('my-2'),
- formGroup
- (
- set::width('1/2'),
- set::label($lang->custom->forceReview . $space . $lang->custom->role),
- set::name('forceReviewRoles'),
- set::value($forceReviewRoles),
- set::items($lang->user->roleList),
- set::control(array('control' => 'picker', 'multiple' => true))
- )
- ),
- formGroup
- (
- set::width('1/2'),
- set::label($lang->custom->forceReview . $space . $lang->custom->dept),
- set::name('forceReviewDepts'),
- set::value($forceReviewDepts),
- set::items($depts),
- set::control(array('control' => 'picker', 'multiple' => true))
- )
- );
- $formItems[] = div
- (
- setClass($needReview ? '' : 'hidden'),
- setClass('close-review'),
- formGroup
- (
- set::width('1/2'),
- set::label($lang->custom->forceNotReview . $space . $lang->custom->account),
- set::name('forceNotReview'),
- set::value($forceNotReview),
- set::items($users),
- set::control(array('control' => 'picker', 'multiple' => true))
- ),
- formRow
- (
- setClass('my-2'),
- formGroup
- (
- set::width('1/2'),
- set::label($lang->custom->forceNotReview . $space . $lang->custom->role),
- set::name('forceNotReviewRoles'),
- set::value($forceNotReviewRoles),
- set::items($lang->user->roleList),
- set::control(array('control' => 'picker', 'multiple' => true))
- )
- ),
- formGroup
- (
- set::width('1/2'),
- set::label($lang->custom->forceNotReview . $space . $lang->custom->dept),
- set::name('forceNotReviewDepts'),
- set::value($forceNotReviewDepts),
- set::items($depts),
- set::control(array('control' => 'picker', 'multiple' => true))
- )
- );
- }
- elseif($module == 'testcase')
- {
- jsVar('+stopSubmit', true);
- jsVar('oldNeedReview', $needReview);
- jsVar('confirmReviewCase', $lang->custom->notice->confirmReviewCase);
- $formItems[] = div
- (
- setClass($needReview ? '' : 'hidden'),
- setClass('close-review'),
- formRow
- (
- formGroup
- (
- set::width('2/3'),
- set::label($lang->custom->forceNotReview),
- set::name('forceNotReview'),
- set::value($forceNotReview),
- set::items($users),
- set::control(array('control' => 'picker', 'multiple' => true))
- ),
- icon
- (
- 'help',
- setClass('pl-4 pt-2'),
- setData
- (
- array
- (
- 'toggle' => 'tooltip',
- 'title' => sprintf($lang->custom->notice->forceNotReview, $lang->$module->common)
- )
- )
- )
- )
- );
- $formItems[] = div
- (
- setClass($needReview ? 'hidden' : ''),
- setClass('open-review'),
- formRow
- (
- formGroup
- (
- set::width('2/3'),
- set::label($lang->custom->forceReview),
- set::name('forceReview'),
- set::value($forceReview),
- set::items($users),
- set::control(array('control' => 'picker', 'multiple' => true))
- ),
- icon
- (
- 'help',
- setClass('pl-4 pt-2'),
- setData
- (
- array
- (
- 'toggle' => 'tooltip',
- 'title' => sprintf($lang->custom->notice->forceReview, $lang->$module->common)
- )
- )
- )
- )
- );
- $actionWidth = 'w-2/3';
- }
- }
- elseif($module == 'bug' && $field == 'longlife')
- {
- $formItems[] = formGroup
- (
- set::label($lang->custom->bug->fields['longlife']),
- set::name('longlife'),
- set::value($longlife),
- set::width('1/3'),
- set::control(array(
- 'type' => 'inputControl',
- 'suffix' => $lang->day
- ))
- );
- $headingTips = div
- (
- setClass('flex flex-auto items-center pt-1'),
- icon('info text-warning mr-1'),
- $lang->custom->notice->longlife
- );
- $actionWidth = 'w-1/3';
- }
- elseif($module == 'block' && $field == 'closed')
- {
- if(empty($blockPairs))
- {
- $formItems[] = formGroup
- (
- set::width('1/2'),
- set::label($lang->custom->block->fields['closed']),
- set::name('closed'),
- set::value($lang->custom->notice->noClosedBlock),
- set::control('static')
- );
- $formActions = array();
- }
- else
- {
- $formItems[] = formGroup
- (
- set::width('1/2'),
- set::label($lang->custom->block->fields['closed']),
- set::name('closed'),
- set::value($closedBlock),
- set::control(array(
- 'type' => 'picker',
- 'multiple' => true
- )),
- set::items($blockPairs)
- );
- }
- }
- elseif($module == 'user' && $field == 'contactField')
- {
- $this->app->loadConfig('user');
- $this->app->loadLang('user');
- $formItems[] = formGroup
- (
- set::width('1/2'),
- set::label($lang->custom->user->fields['contactField']),
- picker
- (
- set::name('contactField'),
- set::value($config->user->contactField),
- set::multiple(true),
- set::items($lang->user->contactFieldList)
- )
- );
- if(common::hasPriv('custom', 'restore'))
- {
- $formActions[] = array(
- 'url' => inlink('restore', "module=user&field=contactField"),
- 'text' => $lang->custom->restore,
- 'class' => 'btn-wide ajax-submit',
- 'data-confirm' => $lang->custom->confirmRestore
- );
- }
- }
- elseif($module == 'user' && $field == 'deleted')
- {
- $formItems[] = formGroup
- (
- set::width('1/2'),
- $isEn ? null : set::labelWidth('100px'),
- set::label($lang->custom->user->fields['deleted']),
- set::name('showDeleted'),
- set::value($showDeleted),
- set::control('radioListInline'),
- set::items($lang->custom->deletedList)
- );
- }
- elseif($module == 'feedback' && $field == 'review')
- {
- $labelWidth = $isEn ? '140px' : '100px';
- $formItems[] = formGroup
- (
- set::width('1/2'),
- set::labelWidth($labelWidth),
- set::label($lang->custom->feedback->fields['review']),
- set::name('needReview'),
- set::value($needReview),
- set::control('radioListInline'),
- set::items($lang->custom->reviewList),
- on::change('changeNeedReview')
- );
- $formItems[] = formGroup(set::width('1/2'), set::labelWidth($labelWidth), set::hidden($needReview), set::label($lang->custom->forceReview), set::name('forceReview[]'), set::value($forceReview), set::control('picker'), set::items($users), set::multiple(true), set::tip(sprintf($lang->custom->notice->forceReview, $lang->feedback->common)));
- $formItems[] = formGroup(set::width('1/2'), set::labelWidth($labelWidth), set::hidden(!$needReview), set::label($lang->custom->forceNotReview), set::name('forceNotReview[]'), set::value($forceNotReview), set::control('picker'), set::items($users), set::multiple(true), set::tip(sprintf($lang->custom->notice->forceNotReview, $lang->feedback->common)));
- $users = arrayUnion(array(' ' => $lang->feedback->deptManager), $users);
- $formItems[] = formGroup
- (
- set::width('1/2'),
- set::labelWidth($labelWidth),
- set::label($lang->feedback->reviewedByAB),
- set::name('reviewer'),
- set::value(empty($reviewer) ? ' ' : $reviewer),
- set::control('picker'),
- set::items($users)
- );
- }
- else
- {
- if(!empty($fieldList) && is_array($fieldList))
- {
- $formItems[] = formGroup
- (
- set::width('1/2'),
- set::label($lang->custom->key),
- set::name(''),
- set::value($lang->custom->value),
- set::control('static')
- );
- div
- (
- setClass('hidden'),
- setID('customFieldRow'),
- formRow
- (
- input
- (
- set::type('hidden'),
- set::name('systems[]'),
- set::value('0')
- ),
- formGroup
- (
- set::width('1/2'),
- set::label('addRow'),
- set::name('values[]')
- ),
- span
- (
- btn
- (
- setClass('add-item btn ghost'),
- on::click('addRow'),
- icon('plus')
- ),
- btn
- (
- setClass('del-item btn ghost'),
- on::click('removeRow'),
- icon('trash')
- )
- )
- )
- );
- foreach($fieldList as $key => $value)
- {
- $system = isset($dbFields[$key]) ? $dbFields[$key]->system : 1;
- $keyLabel = $key === '' ? 'NULL' : $key;
- if($key === 0) $keyLabel = '0';
- if($app->getClientLang() == 'en' && $key == 'requirement') $keyLabel = $lang->custom->feature;
- $formItems[] = formRow
- (
- input
- (
- set::type('hidden'),
- set::name('keys[]'),
- set::value($key)
- ),
- input
- (
- set::type('hidden'),
- set::name('systems[]'),
- set::value($system)
- ),
- formGroup
- (
- set::width('1/2'),
- set::label($keyLabel),
- set::name('values[]'),
- set::value(isset($dbFields[$key]) ? $dbFields[$key]->value : $value),
- set::readonly(empty($key))
- ),
- $canAdd ? span(
- btn
- (
- setClass('add-item btn ghost'),
- on::click('addRow'),
- icon('plus')
- ),
- btn
- (
- setClass('del-item btn ghost'),
- on::click('removeRow'),
- icon ('trash')
- )
- ) : null
- );
- }
- $appliedTo = array($currentLang => $lang->custom->currentLang, 'all' => $lang->custom->allLang);
- $formItems[] = formRow
- (
- setClass('lang-row'),
- formGroup
- (
- set::width('1/2'),
- set::label(''),
- set::name('lang'),
- set::items($appliedTo),
- set::value($lang2Set),
- set::control('radioListInline')
- )
- );
- if(common::hasPriv('custom', 'restore'))
- {
- $formActions[] = array(
- 'url' => inlink('restore', "module={$module}&field={$field}"),
- 'text' => $lang->custom->restore,
- 'class' => 'btn-wide ajax-submit',
- 'data-confirm' => $lang->custom->confirmRestore
- );
- }
- if(!$canAdd)
- {
- $headingTips = div
- (
- setClass('flex flex-auto items-center pt-1'),
- icon('info text-warning mr-1'),
- $lang->custom->notice->canNotAdd
- );
- }
- }
- }
- div
- (
- setClass('row has-sidebar-left'),
- isset($sidebarMenu) ? $sidebarMenu : null,
- formPanel
- (
- set::formID('settingForm'),
- set::headingClass('justify-start'),
- setClass('flex-auto'),
- setClass(!empty($sidebarMenu) ? 'ml-0.5' : null),
- set::actionsClass($actionWidth),
- set::actions($formActions),
- div
- (
- setClass('flex items-center'),
- span
- (
- setClass('text-md font-bold'),
- $lang->custom->$module->fields[$field]
- ),
- span
- (
- setClass('ml-2'),
- $headingTips
- )
- ),
- $formItems
- )
- );
- render();
|