428 lines
11 KiB
PHP
428 lines
11 KiB
PHP
<?php
|
|
/**
|
|
* The edit view of task of ZenTaoPMS.
|
|
*/
|
|
|
|
/*
|
|
======= Attention ======
|
|
|
|
This file is generated by zin-tool, you should check the following to-do list.
|
|
|
|
+ Familiar with the use of these widgets in zin: .
|
|
+ Check the following variables which used in widgets: $executionOptions, $moduleOptions, $storyOptions, $modeOptions, $assignedToOptions, $typeOptions, $statusOptions, $priOptions, $mailtoOptions, $contactListMenuOptions, $finishedByOptions, $canceledByOptions, $closedByOptions, $closedReasonOptions, $teamOptions, $teamOptions, $teamOptions, $teamOptions, $teamOptions, $teamOptions.
|
|
+ Check the origin code in module/task/view/edit.html.php, and ensure that all features have been implemented.
|
|
+ Check the origin js code in module/task/js/common.js and module/task/js/edit.js
|
|
+ Check the origin css code in module/task/css/common.css and module/task/css/edit.css
|
|
+ Remove the comments which starts with "zin:"
|
|
+ Test according to the new design draft and the original implementation
|
|
*/
|
|
|
|
namespace zin;
|
|
|
|
/* ====== Preparing and processing page data ====== */
|
|
jsVar('oldStoryID', $task->story);
|
|
jsVar('oldAssignedTo', $task->assignedTo);
|
|
jsVar('oldExecutionID', $task->execution);
|
|
jsVar('oldConsumed', $task->consumed);
|
|
jsVar('taskStatus', $task->status);
|
|
jsVar('currentUser', $app->user->account);
|
|
jsVar('team', $task->members);
|
|
jsVar('members', $members);
|
|
jsVar('page', 'edit');
|
|
jsVar('confirmChangeExecution', $lang->task->confirmChangeExecution);
|
|
jsVar('teamMemberError', $lang->task->error->teamMember);
|
|
jsVar('totalLeftError', sprintf($this->lang->task->error->leftEmptyAB, $this->lang->task->statusList[$task->status]));
|
|
jsVar('estimateNotEmpty', sprintf($lang->error->gt, $lang->task->estimate, '0'));
|
|
jsVar('leftNotEmpty', sprintf($lang->error->gt, $lang->task->left, '0'));
|
|
jsVar('requiredFields', $config->task->edit->requiredFields);
|
|
|
|
/* zin: Set variables to define picker options for form */
|
|
$formTitle = $task->name;
|
|
$executionOptions = $executions;
|
|
$moduleOptions = $modules;
|
|
$storyOptions = $stories;
|
|
if($task->status == 'wait' and $task->parent == 0)
|
|
{
|
|
$modeOptions = $lang->task->editModeList;
|
|
}
|
|
else
|
|
{
|
|
if($task->mode == '')
|
|
{
|
|
$modeOptions = $lang->task->editModeList['single'];
|
|
}
|
|
else
|
|
{
|
|
$modeOptions = zget($lang->task->editModeList, $task->mode);
|
|
}
|
|
}
|
|
$assignedToOptions = $taskMembers;
|
|
$typeOptions = $lang->task->typeList;
|
|
$statusOptions = (array)$lang->task->statusList;
|
|
$priOptions = $lang->task->priList;
|
|
$mailtoOptions = $task->mailto;
|
|
$contactListMenuOptions = $contactLists;
|
|
$finishedByOptions = $members;
|
|
$canceledByOptions = $users;
|
|
$closedByOptions = $users;
|
|
$closedReasonOptions = $lang->task->reasonList;
|
|
$teamOptions = array(array('value' => "", 'text' => ""), array('value' => "zenggang", 'text' => "Z:曾刚"));
|
|
$teamOptions = array(array('value' => "", 'text' => ""), array('value' => "zenggang", 'text' => "Z:曾刚"));
|
|
$teamOptions = array(array('value' => "", 'text' => ""), array('value' => "zenggang", 'text' => "Z:曾刚"));
|
|
$teamOptions = array(array('value' => "", 'text' => ""), array('value' => "zenggang", 'text' => "Z:曾刚"));
|
|
$teamOptions = array(array('value' => "", 'text' => ""), array('value' => "zenggang", 'text' => "Z:曾刚"));
|
|
$teamOptions = array(array('value' => "", 'text' => ""), array('value' => "zenggang", 'text' => "Z:曾刚"));
|
|
|
|
|
|
/* ====== Define the page structure with zin widgets ====== */
|
|
|
|
/* zin: Define the form in main content */
|
|
formPanel
|
|
(
|
|
set::title($formTitle), // The form title is diffrent from the page title,
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("execution"),
|
|
set::label("所属执行"),
|
|
set::required(true),
|
|
set::value("50"),
|
|
set::control("picker"),
|
|
set::items($executionOptions)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("module"),
|
|
set::label("所属模块"),
|
|
set::value("0"),
|
|
set::control("picker"),
|
|
set::items($moduleOptions)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("story"),
|
|
set::label("相关软件需求"),
|
|
set::control("picker"),
|
|
set::items($storyOptions)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("mode"),
|
|
set::label("任务模式"),
|
|
set::value("linear"),
|
|
set::control("picker"),
|
|
set::items($modeOptions)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::label("指派给"),
|
|
inputGroup
|
|
(
|
|
control(set(array
|
|
(
|
|
'name' => "assignedTo",
|
|
'id' => "assignedTo",
|
|
'value' => "zenggang",
|
|
'disabled' => true,
|
|
'type' => "picker",
|
|
'items' => $assignedToOptions
|
|
))),
|
|
btn(set(array
|
|
(
|
|
'type' => "btn",
|
|
'text' => "团队",
|
|
'class' => "input-group-btn team-group"
|
|
)))
|
|
)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("type"),
|
|
set::label("任务类型"),
|
|
set::required(true),
|
|
set::value("study"),
|
|
set::control("picker"),
|
|
set::items($typeOptions)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("status"),
|
|
set::label("任务状态"),
|
|
set::value("wait"),
|
|
set::control("picker"),
|
|
set::items($statusOptions)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("pri"),
|
|
set::label("优先级"),
|
|
set::value("3"),
|
|
set::control("picker"),
|
|
set::items($priOptions)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::label("抄送给"),
|
|
inputGroup
|
|
(
|
|
control(set(array
|
|
(
|
|
'name' => "mailto[]",
|
|
'id' => "mailto",
|
|
'value' => NULL,
|
|
'disabled' => false,
|
|
'type' => "picker",
|
|
'items' => $mailtoOptions,
|
|
'multiple' => true
|
|
))),
|
|
control(set(array
|
|
(
|
|
'name' => "contactListMenu",
|
|
'id' => "contactListMenu",
|
|
'value' => "",
|
|
'disabled' => false,
|
|
'type' => "picker",
|
|
'onchange' => "setMailto",
|
|
'items' => $contactListMenuOptions
|
|
)))
|
|
)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("estStarted"),
|
|
set::label("预计开始"),
|
|
set::value("2023-04-25"),
|
|
set::control("date")
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("deadline"),
|
|
set::label("截止日期"),
|
|
set::value("2023-04-28"),
|
|
set::control("date")
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("estimate"),
|
|
set::label("最初预计"),
|
|
set::value("7"),
|
|
set::control("text")
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("left"),
|
|
set::label("预计剩余"),
|
|
set::value("7"),
|
|
set::control("text")
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("realStarted"),
|
|
set::label("实际开始"),
|
|
set::value("2023-04-24 17:25:00"),
|
|
set::control("datetime")
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("finishedBy"),
|
|
set::label("由谁完成"),
|
|
set::control("picker"),
|
|
set::items($finishedByOptions)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("finishedDate"),
|
|
set::label("实际完成"),
|
|
set::value("0000-00-00 00:00:00"),
|
|
set::control("datetime")
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("canceledBy"),
|
|
set::label("由谁取消"),
|
|
set::control("picker"),
|
|
set::items($canceledByOptions)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("canceledDate"),
|
|
set::label("取消时间"),
|
|
set::value("0000-00-00 00:00:00"),
|
|
set::control("datetime")
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("closedBy"),
|
|
set::label("由谁关闭"),
|
|
set::control("picker"),
|
|
set::items($closedByOptions)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("closedReason"),
|
|
set::label("关闭原因"),
|
|
set::control("picker"),
|
|
set::items($closedReasonOptions)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("closedDate"),
|
|
set::label("关闭时间"),
|
|
set::value("0000-00-00 00:00:00"),
|
|
set::control("datetime")
|
|
),
|
|
formRow
|
|
(
|
|
set::hidden(true),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("team[]"),
|
|
set::value("zenggang"),
|
|
set::control("picker"),
|
|
set::id("team"),
|
|
set::items($teamOptions)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
inputGroup
|
|
(
|
|
|
|
)
|
|
)
|
|
),
|
|
formRow
|
|
(
|
|
set::hidden(true),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("team[]"),
|
|
set::value("zenggang"),
|
|
set::control("picker"),
|
|
set::id("team"),
|
|
set::items($teamOptions)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
inputGroup
|
|
(
|
|
|
|
)
|
|
)
|
|
),
|
|
formRow
|
|
(
|
|
set::hidden(true),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("team[]"),
|
|
set::control("picker"),
|
|
set::id("team"),
|
|
set::items($teamOptions)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
inputGroup
|
|
(
|
|
|
|
)
|
|
)
|
|
),
|
|
formRow
|
|
(
|
|
set::hidden(true),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("team[]"),
|
|
set::control("picker"),
|
|
set::id("team"),
|
|
set::items($teamOptions)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
inputGroup
|
|
(
|
|
|
|
)
|
|
)
|
|
),
|
|
formRow
|
|
(
|
|
set::hidden(true),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("team[]"),
|
|
set::control("picker"),
|
|
set::id("team"),
|
|
set::items($teamOptions)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
inputGroup
|
|
(
|
|
|
|
)
|
|
)
|
|
),
|
|
formRow
|
|
(
|
|
set::hidden(true),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
set::name("team[]"),
|
|
set::control("picker"),
|
|
set::id("team"),
|
|
set::items($teamOptions)
|
|
),
|
|
formGroup
|
|
(
|
|
set::width("1/4"),
|
|
inputGroup
|
|
(
|
|
|
|
)
|
|
)
|
|
),
|
|
history
|
|
(
|
|
set::actions($actions),
|
|
set::users($users),
|
|
set::methodName($methodName),
|
|
)
|
|
);
|
|
|
|
|
|
/* ====== Render page ====== */
|
|
|
|
render();
|