znt/module/pivot/ui/workload.html.php

109 lines
4 KiB
PHP

<?php
declare(strict_types = 1);
/**
* The workload view file of pivot 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 Gang Liu <liugang@easycorp.ltd>
* @package pivot
* @link https://www.zentao.net
*/
namespace zin;
jsVar('weekend', $config->execution->weekend);
$cols = $config->pivot->dtable->workload->fieldList;
$cols['user']['map'] = $users;
$data = new stdclass();
$data->cols = $this->pivot->processDTableCols($cols);
$data->array = $this->pivot->processDTableData(array_keys($cols), $workload);
$generateData = function() use ($lang, $title, $cols, $data, $workload, $depts, $dept, $begin, $end, $days, $workhour, $assign)
{
return array
(
div
(
setID('conditions'),
setClass('flex gap-2 bg-canvas p-2'),
inputGroup
(
setClass('w-1/6'),
$lang->pivot->dept,
picker
(
setClass('w-full'),
set(array('name' => 'dept', 'items' => $depts, 'value' => $dept, 'required' => true))
)
),
inputGroup
(
setClass('w-1/2'),
$lang->pivot->beginAndEnd,
datePicker(set(array('name' => 'begin', 'value' => $begin))),
$lang->pivot->to,
datePicker(set(array('name' => 'end', 'value' => $end))),
$lang->pivot->diffDays,
input(set(array('name' => 'days', 'value' => $days, 'class' => 'text-left w-1/6')))
),
div
(
setClass('flex gap-2 w-1/3'),
inputGroup
(
setClass('w-5/12'),
$lang->pivot->workday,
input(set(array('name' => 'workhour', 'value' => $workhour, 'class' => 'text-left')))
),
picker
(
setClass('w-1/3'),
set(array('name' => 'assign', 'items' => $lang->pivot->assign, 'value' => $assign, 'required' => true))
),
button(setClass('btn primary w-1/4'), on::click('loadWorkload'), $lang->pivot->query)
)
),
panel
(
setID('pivotPanel'),
set::title($title),
set::shadow(false),
set::headingClass('h-14'),
set::bodyClass('pt-0'),
to::titleSuffix
(
icon
(
setClass('cursor-pointer'),
setData(array('toggle' => 'tooltip', 'title' => $lang->pivot->workloadDesc, 'placement' => 'right', 'className' => 'text-gray border border-light', 'type' => 'white')),
'help'
)
),
dtable
(
set::striped(true),
set::bordered(true),
set::cols($cols),
set::data($workload),
set::emptyTip($lang->error->noData),
set::plugins(array('cellspan')),
set::getCellSpan(jsRaw('getCellSpan')),
set::cellSpanOptions(array(
'user' => array('rowspan' => 'userRowspan'),
'totalTasks' => array('rowspan' => 'userRowspan'),
'totalHours' => array('rowspan' => 'userRowspan'),
'workload' => array('rowspan' => 'userRowspan'),
'projectName' => array('rowspan' => 'projectRowspan')
))
),
div
(
setID('exportData'),
setClass('hidden'),
rawContent(),
html($this->pivot->buildPivotTable($data, array()))
)
)
);
};