| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 |
- <?php
- namespace zin;
- global $lang, $config, $app;
- $copyType = data('copyType');
- $programListSet = data('programListSet');
- $model = data('model');
- $copyProject = data('copyProject');
- $copyWorkflowGroup = data('copyWorkflowGroup');
- $hasCode = !empty($config->setCode);
- jsVar('rawMethod', $app->rawMethod);
- jsVar('programID', data('programID'));
- jsVar('programID', data('programID'));
- jsVar('pageType', data('pageType'));
- jsVar('copyType', $copyType);
- jsVar('nextStepText', $lang->project->nextStep);
- jsVar('LONG_TIME', LONG_TIME);
- jsVar('end', isset($copyProject->end) ? $copyProject->end : '');
- jsVar('budget', isset($copyProject->budget) ? $copyProject->budget : '');
- jsVar('days', isset($copyProject->days) ? $copyProject->days : '');
- jsVar('future', isset($copyProject->future) ? $copyProject->future : 'off');
- jsVar('multiple', isset($copyProject->multiple) ? $copyProject->multiple : 1);
- $allDataItems = array();
- $allList = $model == 'ipd' ? $lang->project->copyProject->ipdAllList : $lang->project->copyProject->allList;
- $allList = $model == 'kanban' ? $lang->project->copyProject->kanbanAllList : $allList;
- foreach($allList as $name)
- {
- $executionTitle = $model == 'scrum' || $model == 'agileplus' ? sprintf($name, $lang->project->copyProject->sprint) : sprintf($name, $lang->project->stage);
- $allDataItems[] = div
- (
- setClass('all-item clip'),
- set::title($executionTitle),
- icon('success', setClass('mx-2')),
- $executionTitle
- );
- }
- $noSprintItems = array();
- $noSprintList = $lang->project->copyProject->noSprintList;
- foreach($noSprintList as $name)
- {
- $noSprintItems[] = div
- (
- setClass('all-item clip'),
- set::title($name),
- icon('success', setClass('mr-2')),
- $name
- );
- }
- query('#copyProjectModal')->replaceWith
- (
- modal
- (
- set::id('copyProjectModal'),
- div
- (
- setClass('copy-container'),
- ul
- (
- setClass('nav nav-tabs'),
- li
- (
- setClass('active'),
- a(setClass('pointer-events-none'), setID('firstTab'), setData('target', 'tabContent1'), setData('toggle', 'tab'), icon(setClass('number'), 1), span($lang->project->copyProject->select)),
- div(setClass('line'))
- ),
- li
- (
- a(setClass('pointer-events-none'), setData('toggle', 'tab'), icon(setClass('number'), 2), span($lang->project->copyProject->confirmData)),
- div(setClass('line'))
- ),
- li
- (
- a(setClass('pointer-events-none'), setData('toggle', 'tab'), icon(setClass('number'), 3), span($lang->project->copyProject->improveData)),
- div(setClass('line'))
- ),
- li
- (
- a(setClass('pointer-events-none'), setData('toggle', 'tab'), icon(setClass('number'), 4), span($lang->project->copyProject->completeData)),
- div(setClass('line'))
- )
- ),
- div
- (
- setClass('tab-content'),
- div
- (
- setID('tabContent1'),
- setClass('tab-pane fade active in'),
- div
- (
- setClass('content'),
- div
- (
- setClass('copy-title'),
- $lang->project->copyProject->selectPlz
- ),
- div
- (
- setClass('select-box'),
- $config->systemMode == 'ALM' && $config->vision != 'lite' ? picker
- (
- setClass('mr-4'),
- set::width('150'),
- set::name('parent'),
- set::items($programListSet),
- set::placeholder($lang->project->copyProject->selectProgram)
- ) : null,
- picker
- (
- set::width('300'),
- set::name('selectCopyprojectID'),
- set::items(array()),
- set::placeholder($lang->project->copyProject->selectProjectPlz)
- )
- ),
- div(setID('replaceList'), setClass('flex items-center flex-wrap gap-4 mb-4'))
- ),
- div
- (
- setClass('footer-btns'),
- button
- (
- setClass('btn primary next-btn'),
- setData('target', '#tabContent2'),
- setData('toggle', 'tab'),
- $lang->project->nextStep
- ),
- button
- (
- setClass('btn cancel-btn'),
- setData('dismiss', 'modal'),
- $lang->project->copyProject->cancel
- )
- )
- ),
- div
- (
- setID('tabContent2'),
- setClass('tab-pane fade'),
- div
- (
- setClass('content'),
- div(setClass('copy-title'), $lang->project->copyProject->confirmCopyDataTip),
- div(setClass('copy-project-title clip mb-4')),
- div
- (
- setClass('all-content'),
- radio
- (
- set::rootClass('allData'),
- set::name('allCheckbox'),
- $lang->project->copyProject->all
- ),
- div
- (
- setClass('all-data normal-data'),
- $allDataItems
- ),
- div
- (
- setClass('all-data no-sprint-data hidden'),
- $noSprintItems
- )
- ),
- div
- (
- setClass('basic-content'),
- radio
- (
- set::rootClass('basicData'),
- set::name('basicCheckbox'),
- $lang->project->copyProject->basic
- ),
- div
- (
- setClass('all-data'),
- div
- (
- setClass('all-item clip'),
- icon('success', setClass('mr-2')),
- $lang->project->copyProject->basicInfo
- )
- )
- )
- ),
- div
- (
- setClass('footer-btns'),
- button
- (
- setClass('btn primary complete-btn'),
- $lang->project->copyProject->toComplete
- ),
- button
- (
- setClass('btn cancel-btn'),
- setData('dismiss', 'modal'),
- $lang->project->copyProject->cancel
- ),
- formHidden('choseCopyprojectID', '')
- )
- )
- )
- )
- )
- );
- $loadUrl = helper::createLink('project', 'create', 'model=' . data('model') . '&program={parent}©ProjectID=' . data('copyProjectID') . '&extra=charter={charter}' . (!empty($copyType) ? ",copyType={$copyType}" : '') . ",copyFrom=project,workflowGroup={workflowGroup}" . '&pageType=' . $pageType);
- /* 追加交付物组件。 */
- query('formGridPanel')->each(function($node) use($loadUrl, $lang, $model, $app, $hasCode, $copyWorkflowGroup)
- {
- $fields = $node->prop('fields');
- $blocks = $node->prop('blocks');
- if(data('copyFrom') == 'template')
- {
- $fields->field('workflowGroup')->readonly();
- unset($node->blocks['titleSuffix']);
- unset($node->blocks['headingActions'][0]);
- unset($node->blocks['headingActions'][1]);
- }
- if($app->rawMethod == 'createtemplate')
- {
- $copyProject = data('copyProject');
- $loadUrl = helper::createLink('project', 'createTemplate', 'model=' . data('model') . '&program={parent}©ProjectID={copyProjectID}&extra=charter={charter},copyType=all,workflowGroup={workflowGroup}&pageType=copy');
- $fields->field('parent')->hidden();
- $fields->field('charter')->hidden();
- $fields->field('productsBox')->hidden();
- $fields->field('begin')->hidden();
- if(data('model') == 'waterfall' || data('model') == 'waterfallplus') $fields->field('stageBy')->hidden();
- $fields->field('end')->value(isset($copyProject->end) ? $copyProject->end : date('Y-m-d', strtotime('+30 days')))->hidden();
- $fields->field('days')->value('30')->hidden();
- $fields->field('copyProjectID')->width('1/2')->control(array('control' => 'picker', 'required' => false))->required(true)->items(data('copyProjectList'))->value(data('copyProjectID'))->moveAfter('parent');
- $fields->field('model')->width('1/2')->control('picker')->items($lang->project->modelList)->value(!empty($copyProject) ? $copyProject->model : '')->disabled();
- $fields->field('workflowGroup')->width('1/2')->items(!empty($copyWorkflowGroup) ? array($copyWorkflowGroup->id => $copyWorkflowGroup->name) : array())->value(!empty($copyProject) ? $copyProject->workflowGroup : '')->disabled();
- $fields->field('name')->label($lang->project->templateName)->width($hasCode ? '1/4' : '1/2');
- $fields->field('isTpl')->value('1')->hidden();
- $fields->field('taskDateLimit')->value(!empty($copyProject) ? $copyProject->taskDateLimit : 'auto');
- $fields->autoLoad('copyProjectID');
- $fields->defaultOrders = array_merge($fields->defaultOrders, array('copyProjectID,model,workflowGroup,name,code'));
- $fields->ordersForFull = array_merge($fields->ordersForFull, array('copyProjectID,model,workflowGroup,name,code'));
- unset($node->blocks['titleSuffix']);
- unset($node->blocks['headingActions'][0]);
- unset($node->blocks['headingActions'][1]);
- $ajaxProp['submitDisabledValue'] = true;
- $node->setProp('ajax', $ajaxProp);
- }
- $fields->field('hasProduct')->hidden(true);
- if($model != 'kanban')
- {
- $fields->field('budget')->foldable(false);
- $fields->orders('model,workflowGroup,budget');
- }
- $node->setProp('fields', $fields);
- $node->setProp('loadUrl', $loadUrl);
- });
|