| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- <?php
- /**
- * The change view file of story 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 Wang Yidong <yidong@easycorp.ltd>
- * @package story
- * @link https://www.zentao.net
- */
- namespace zin;
- include($this->app->getModuleRoot() . 'ai/ui/inputinject.html.php');
- include './affected.html.php';
- if($app->tab == 'product') data('activeMenuID', $story->type);
- jsVar('lastReviewer', explode(',', $lastReviewer));
- jsVar('storyID', $story->id);
- jsVar('oldStoryTitle', $story->title);
- jsVar('oldStorySpec', $story->spec);
- jsVar('oldStoryVerify', $story->verify);
- jsVar('changed', 0);
- jsVar('storyType', $story->type);
- jsVar('rawModule', $this->app->rawModule);
- jsVar('page', $this->app->rawMethod);
- $uid = uniqid();
- $formItems = array();
- $formItems['reviewer'] = section
- (
- set::width('full'),
- set::title($fields['reviewer']['title']),
- inputGroup
- (
- picker
- (
- setID('reviewer'),
- set::name('reviewer[]'),
- set::multiple(true),
- set::disabled(!$forceReview && $needReview),
- set::items($fields['reviewer']['options']),
- set::value($fields['reviewer']['default'])
- ),
- !$forceReview ? span
- (
- setClass('input-group-addon'),
- checkbox
- (
- setID('needNotReview'),
- set::name('needNotReview'),
- set::checked($needReview),
- set::text($lang->story->needNotReview),
- set::value(1)
- )
- ) : null,
- formHidden('needNotReview', $forceReview ? 0 : 1)
- ),
- set::required(true)
- );
- $formItems['title'] = section
- (
- set::width('full'),
- set::title($fields['title']['title']),
- inputGroup
- (
- inputControl
- (
- input
- (
- set::name('title'),
- set::value($fields['title']['default'])
- ),
- set::suffixWidth('40'),
- to::suffix
- (
- colorPicker
- (
- set::name('color'),
- set::type('color'),
- set::value($fields['color']['default']),
- set::syncColor('#title, #storyTitle')
- )
- )
- ),
- empty($story->twins) ? null : span
- (
- setClass('input-group-addon'),
- checkbox
- (
- setID('relievedTwins'),
- set::name('relievedTwins'),
- set::value(1),
- $lang->story->relievedTwinsRelation
- )
- )
- ),
- set::required($fields['title']['required'])
- );
- $formItems['hidden'] = section
- (
- set::hidden(true),
- formGroup
- (
- input(set::type('hidden'), set::name('status'), set::value($fields['status']['default'])),
- input(set::type('hidden'), set::name('lastEditedDate'), set::value($story->lastEditedDate))
- )
- );
- $formItems['spec'] = section
- (
- set::width('full'),
- set::title($fields['spec']['title']),
- set::required(strpos(",{$this->config->{$story->type}->change->requiredFields},", ",spec,") !== false),
- set::tip($lang->story->specTemplate),
- editor
- (
- set::name('spec'),
- set::uid($uid),
- html($fields['spec']['default'])
- )
- );
- unset($fields['reviewer'], $fields['title'], $fields['color'], $fields['status'], $fields['lastEditedDate'], $fields['spec']);
- foreach($fields as $field => $attr)
- {
- $fieldName = zget($attr, 'name', $field);
- $control = array();
- $control['type'] = $attr['control'];
- if(!empty($attr['options'])) $control['items'] = $attr['options'];
- if($attr['control'] == 'editor')
- {
- $formItems[$field] = section
- (
- set::width('full'),
- set::title($attr['title']),
- set::required($attr['required']),
- editor
- (
- set::name($fieldName),
- set::uid($uid),
- html($attr['default'])
- )
- );
- }
- else
- {
- $formItems[$field] = section
- (
- set::width('full'),
- set::name($fieldName),
- set::title($attr['title']),
- set::control($control),
- set::value($attr['default']),
- set::required($attr['required'])
- );
- }
- }
- $formItems['file'] = section
- (
- setID('files'),
- set::width('full'),
- set::title($lang->attach),
- fileSelector($story->files ? set::defaultFiles(array_values($story->files)) : null)
- );
- if($this->config->vision != 'or') $formItems['affected'] = $getAffectedTabs($story, $users);
- detailHeader
- (
- setClass('mx-3'),
- to::prefix($lang->story->changed),
- to::title
- (
- entityLabel
- (
- set::level(1),
- set::entityID($story->id),
- set::reverse(true),
- span(setID('storyTitle'), $story->title)
- )
- )
- );
- detailBody
- (
- setID('dataform'),
- setClass('mx-3'),
- set::isForm(true),
- set::ajax(array('beforeSubmit' => jsRaw('clickSubmit'))),
- set::actions(array
- (
- array('text' => $lang->save, 'data-status' => 'active', 'class' => 'primary', 'btnType' => 'submit'),
- array('text' => $lang->story->doNotSubmit, 'data-status' => 'draft', 'class' => 'secondary', 'btnType' => 'submit'),
- isInModal() ? null : array('text' => $lang->goback, 'data-back' => 'APP', 'class' => 'open-url')
- )),
- sectionList($formItems),
- h::hr(),
- history(set::objectID($story->id))
- );
|