| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- <?php
- namespace zin;
- global $lang, $config, $app;
- $app->loadLang('program');
- $fields = defineFieldList('project');
- $model = data('model');
- $hasCode = !empty($config->setCode);
- $currency = data('parentProgram') ? data('parentProgram.budgetUnit') : $config->project->defaultCurrency;
- $disableStageBy = !empty(data('executions')) || data('app.rawMethod') == 'edit';
- $fields->field('parent')
- ->control('picker', array('required' => true))
- ->labelHint(common::isTutorialMode() ? null : $lang->program->tips)
- ->hidden(data('globalDisableProgram') || !helper::hasFeature('program'))
- ->items(data('programList'));
- $fields->field('model')->control('hidden')->value($model);
- if(!$hasCode)
- {
- $fields->field('hasProduct')
- ->label($lang->project->category)
- ->control('checkBtnGroup')
- ->items($lang->project->projectTypeList);
- }
- $fields->field('name')
- ->wrapBefore()
- ->required()
- ->control('input');
- if($hasCode)
- {
- $fields->field('hasProduct')
- ->control('checkBtnGroup')
- ->label($lang->project->category)
- ->items($lang->project->projectTypeList);
- $fields->field('code')->control('input');
- }
- $fields->field('PM')->control('picker')->items(data('PMUsers'));
- unset($lang->project->endList[999]);
- $isLongTime = data('project.end') == LONG_TIME;
- $copyProject = data('copyProject');
- if($copyProject)
- {
- $beginValue = $copyProject->begin;
- $endValue = $copyProject->end == LONG_TIME ? '' : $copyProject->end;
- }
- else
- {
- $beginValue = data('project.begin') ? data('project.begin') : date('Y-m-d');
- $endValue = data('project.end') == LONG_TIME ? '' : data('project.end');
- }
- $fields->field('begin')
- ->label($lang->project->planDate)
- ->required()
- ->control('inputGroup')
- ->itemBegin('dateRangePicker')
- ->control('dateRangePicker')
- ->beginName('begin')
- ->beginPlaceholder($lang->project->begin)
- ->beginValue($beginValue)
- ->endName('end')
- ->endPlaceholder($lang->project->end)
- ->endValue($endValue)
- ->endDisabled($isLongTime)
- ->endList($lang->project->endList)
- ->itemEnd()
- ->tip(' ')
- ->tipProps(array('id' => 'dateTip'))
- ->tipClass('text-warning' . (data('copyProject') ? '' : ' hidden'));
- $fields->field('days')->label($lang->project->days . $lang->project->daysUnit)->control('input')->disabled($isLongTime)->value(!empty(data('project.days')) ? data('project.days') : '');
- $fields->field('productsBox')
- ->id('productsBox')
- ->width('full')
- ->required(data('copyProject.parent') || data('parentProgram.id') || data('project.parent'))
- ->control(array
- (
- 'control' => 'productsBox',
- 'productItems' => data('allProducts'),
- 'branchGroups' => data('branchGroups'),
- 'planGroups' => data('productPlans'),
- 'productPlans' => data('productPlans'),
- 'linkedProducts' => data('linkedProducts'),
- 'linkedBranches' => data('linkedBranches'),
- 'project' => data('project') ? data('project') : data('copyProject'),
- 'hasNewProduct' => data('app.rawMethod') == 'create',
- 'isStage' => data('isStage'),
- 'errorSameProducts' => $lang->project->errorSameProducts,
- 'selectTip' => $lang->project->selectProductTip
- ));
- if($model == 'waterfall' || $model == 'waterfallplus')
- {
- $stageByValue = data('project.stageBy') ? data('project.stageBy') : 'project';
- $fields->field('stageBy')
- ->className('stageByBox', data('linkedProducts') && count(data('linkedProducts')) > 1 ? '' : 'hidden')
- ->control('radioListInline')
- ->labelHint($lang->project->stageByTips)
- ->label($lang->project->stageBy)
- ->value(data('copyProject') ? data('copyProject.stageBy') : $stageByValue)
- ->disabled($disableStageBy)
- ->items($lang->project->stageByList);
- }
- $fields->field('desc')
- ->width('full')
- ->control('editor');
- $budgetFuture = data('project.budget') !== null && !data('project.budget');
- $budgetItemList = array();
- $budgetUnitList = data('budgetUnitList') ? data('budgetUnitList') : array();
- foreach($budgetUnitList as $key => $value)
- {
- $budgetItemList[] = array('text' => $value, 'value' => $key, 'url' => "javascript:toggleBudgetUnit('{$key}')");
- }
- $budgetHidden = isset($config->project->{$app->rawMethod}->requiredFields) && strpos($config->project->{$app->rawMethod}->requiredFields, 'budget') !== false;
- $budgetFuture = data('project.budget') !== null && !data('project.budget') && !$budgetHidden;
- $fields->field('budget')
- ->label($lang->project->budget)
- ->control('inputControl', array('control' => 'input', 'name' => 'budget', 'prefix' => array('control' => 'dropdown', 'name' => 'budgetUnit', 'items' => $budgetItemList, 'widget' => true, 'text' => zget($lang->project->currencySymbol, data('project.budgetUnit') ? data('project.budgetUnit') : $currency), 'className' => 'ghost'), 'prefixWidth' => 34, 'disabled' => $budgetFuture))
- ->placeholder(data('parentProgram') && !empty(data('parentProgram.budget')) ? $lang->project->parentBudget . zget($lang->project->currencySymbol, $currency) . data('parentProgram.budget') : '')
- ->tip(' ')
- ->tipProps(array('id' => 'budgetTip'))
- ->tipClass('text-danger');
- if(!$budgetHidden) $fields->field('budget')->checkbox(array('text' => $lang->project->future, 'name' => 'future', 'checked' => $budgetFuture));
- $fields->field('budgetUnit')->control('hidden')->value($currency);
- $fields->field('acl')
- ->width('full')
- ->wrapBefore();
- $fields->field('auth')
- ->width('full')
- ->wrapBefore()
- ->control('radioList')
- ->items($lang->project->authList);
- $fields->field('coverExecutionPriv')
- ->width('full')
- ->control('radioList')
- ->items($lang->project->coverExecutionPrivList)
- ->hidden(data('project.coverExecutionPriv') === null || !empty(data('project.coverExecutionPriv')))
- ->wrapBefore();
- $storyTypeList = array();
- foreach($lang->story->typeList as $key => $text)
- {
- $disabled = $key == 'story' ? true : false;
- $storyTypeList[] = array('text' => $text, 'value' => $key, 'disabled' => $disabled);
- }
- $fields->field('taskDateLimit')->control(array('control' => 'radioList', 'items' => $lang->project->taskDateLimitList, 'name' => 'taskDateLimit'));
- $fields->field('storyType')->control(array('control' => 'checkBox', 'items' => $storyTypeList, 'name' => 'storyType[]'));
|