| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- <?php
- /**
- * The activate view file of task 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 Shujie Tian<tianshujie@easycorp.ltd>
- * @package task
- * @link https://www.zentao.net
- */
- namespace zin;
- /* ====== Preparing and processing page data ====== */
- jsVar('oldConsumed', $task->consumed);
- jsVar('currentUser', $app->user->account);
- jsVar('teamMemberError', $lang->task->error->teamMember);
- jsVar('teamLeftEmpty', $lang->task->error->teamLeftEmpty);
- jsVar('totalLeftError', sprintf($this->lang->task->error->leftEmptyAB, $this->lang->task->statusList[$task->status]));
- jsVar('estimateNotEmpty', sprintf($lang->task->error->notempty, $lang->task->estimate));
- jsVar('leftNotEmpty', sprintf($lang->task->error->notempty, $lang->task->left));
- jsVar('teamNotEmpty', sprintf($lang->error->notempty, $lang->task->assignedTo));
- jsVar('isMultiple', $isMultiple);
- jsVar('taskMode', $task->mode);
- $teamData = array();
- $teamUsers = array();
- if($isMultiple)
- {
- $index = 1;
- foreach($task->team as $member)
- {
- $member->id = $index;
- $member->team = $member->account;
- $member->teamSource = $member->account;
- $member->teamEstimate = $member->estimate;
- $member->teamConsumed = $member->consumed;
- $member->teamLeft = $member->left;
- $teamData[] = $member;
- $teamUsers[] = $member->account;
- $index ++;
- }
- $teamItems = array();
- foreach($teamMembers as $key => $value) $teamItems[] = array('text' => $value, 'value' => $key);
- jsVar('teamItems', $teamItems);
- }
- $memberItems = array();
- foreach($members as $key => $value) $memberItems[] = array('text' => $value, 'value' => $key);
- jsVar('memberItems', $memberItems);
- if(!empty($task->team))
- {
- foreach($task->team as $member)
- {
- $member->memberDisabled = false;
- if($member->status == 'done') $member->memberDisabled = true;
- $member->hourDisabled = $member->memberDisabled;
- if($task->mode == 'multi') $member->hourDisabled = false;
- }
- }
- /* zin: Set variables to define control for form. */
- modalHeader();
- $taskModeBox = '';
- if($isMultiple)
- {
- $taskModeBox = formGroup
- (
- set::width('1/4'),
- set::label($lang->task->mode),
- inputGroup
- (
- setClass('no-background'),
- zget($lang->task->modeList, $task->mode),
- input
- (
- setClass('hidden'),
- set::name('mode'),
- set::value($task->mode)
- )
- )
- );
- }
- $manageTeamBox = '';
- if($isMultiple)
- {
- $manageTeamBox = formGroup(
- set::width('1/10'),
- setClass('items-center'),
- checkbox
- (
- setID('multiple'),
- set::name('multiple'),
- set::text($lang->task->manageTeam),
- set::rootClass('ml-4'),
- on::click('manageTeam')
- )
- );
- }
- $leftBox = '';
- if($task->isParent == '0')
- {
- $leftBox = formGroup(
- set::width('1/2'),
- set::label($lang->task->left),
- set::name('left'),
- inputControl
- (
- to::suffix($lang->task->suffixHour),
- set::suffixWidth(20)
- )
- );
- }
- $modalTeamBtn = array();
- if($isMultiple)
- {
- $modalTeamBtn = btn(
- set::text($lang->task->team),
- setClass('team-group hidden'),
- set::url('#modalTeam'),
- setData(array('toggle' => 'modal'))
- );
- }
- /* ====== Define the page structure with zin widgets ====== */
- formPanel
- (
- set::ajax(array('beforeSubmit' => jsRaw("clickSubmit"))),
- $taskModeBox,
- formRow
- (
- formGroup
- (
- set::width('1/2'),
- set::label($lang->task->assignedTo),
- set::required($isMultiple || strpos(",{$this->config->task->activate->requiredFields},", ',assignedTo,')),
- inputGroup
- (
- picker
- (
- setID('assignedTo'),
- set::name('assignedTo'),
- set::items($isMultiple ? $teamMembers : $members),
- set::value($isMultiple ? '' : $task->finishedBy),
- set::required(strpos(",{$this->config->task->activate->requiredFields},", ',assignedTo,') !== false),
- on::change('setTeamUser')
- ),
- $modalTeamBtn
- )
- ),
- $manageTeamBox
- ),
- $leftBox,
- formGroup
- (
- set::label($lang->comment),
- set::control('editor'),
- set::name('comment'),
- set::rows('5')
- ),
- modalTrigger
- (
- modal
- (
- setID('modalTeam'),
- setData(array('backdrop' => false)),
- set::title($lang->task->team),
- formBatch
- (
- set::tagName('div'),
- setID('teamTable'),
- set::mode('add'),
- !empty($task->team) ? set::data(array_values($task->team)) : null,
- set::sortable(true),
- set::size('sm'),
- set::minRows(3),
- set::onRenderRow(jsRaw('renderRowData')),
- formBatchItem
- (
- set::name('id'),
- set::width('32px'),
- set::control('index')
- ),
- formBatchItem
- (
- set::name('team'),
- set::label($lang->task->teamMember),
- set::width('160px'),
- set::control('picker'),
- set::items($members)
- ),
- formBatchItem
- (
- set::name('estimateBox'),
- set::label($lang->task->estimateAB),
- set::width('135px'),
- set::control('inputGroup'),
- inputControl
- (
- input(set::name("teamEstimate")),
- to::suffix($lang->task->suffixHour),
- set::suffixWidth(20)
- )
- ),
- !empty($task->team) ? formBatchItem
- (
- set::name('consumedBox'),
- set::label($lang->task->consumedAB),
- set::width('135px'),
- set::control('inputGroup'),
- inputControl
- (
- input(set::name("teamConsumed")),
- to::suffix($lang->task->suffixHour),
- set::suffixWidth(20)
- )
- ) : null,
- !empty($task->team) ? formBatchItem
- (
- set::name('leftBox'),
- set::label($lang->task->left),
- set::width('135px'),
- set::control('inputGroup'),
- set::required(true),
- inputControl
- (
- input(set::name("teamLeft")),
- to::suffix($lang->task->suffixHour),
- set::suffixWidth(20)
- )
- ) : null,
- formBatchItem
- (
- set::name('teamSource'),
- set::control('input'),
- set::hidden(true)
- ),
- set::actions(array(array('text' => $lang->save, 'class' => 'primary team-saveBtn', 'id' => 'confirmButton')))
- )
- )
- )
- );
- hr();
- history();
- /* ====== Render page ====== */
- render();
|