147 lines
3.8 KiB
PHP
147 lines
3.8 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
/**
|
|
* The welcome view file of block 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 LiuRuoGu <liuruogu@easycorp.ltd>
|
|
* @package block
|
|
* @link https://www.zentao.net
|
|
*/
|
|
|
|
namespace zin;
|
|
|
|
$usageDays = 9999;
|
|
$doneReview = 9999;
|
|
$finishTask = 9999;
|
|
$fixBug = 9999;
|
|
|
|
$reviewByMe['feedback'] = array('number' => '9999', 'delay' => '1111');
|
|
$reviewByMe['testcase'] = array('number' => '9999');
|
|
$reviewByMe['baseline'] = array('number' => '9999');
|
|
$assignToMe['task'] = array('number' => '9999', 'delay' => '1111');
|
|
$assignToMe['bug'] = array('number' => '9999');
|
|
|
|
$feedbackCount = 9999;
|
|
if($doneReview > $finishTask && $doneReview > $fixBug)
|
|
{
|
|
$honorary = 'review';
|
|
}
|
|
else if($finishTask > $doneReview && $finishTask > $fixBug)
|
|
{
|
|
$honorary = 'task';
|
|
}
|
|
else
|
|
{
|
|
$honorary = 'bug';
|
|
}
|
|
|
|
panel
|
|
(
|
|
set('class', 'welcome-block'),
|
|
to::heading
|
|
(
|
|
div
|
|
(
|
|
set('class', 'panel-title flex w-full'),
|
|
col
|
|
(
|
|
set('align', 'center'),
|
|
set('class', 'w-1/5 pr-3'),
|
|
span($todaySummary),
|
|
|
|
),
|
|
col
|
|
(
|
|
span(set('class', 'text-base font-medium'), html(sprintf($lang->block->summary->welcome, $usageDays, $doneReview, $finishTask, $fixBug)))
|
|
)
|
|
)
|
|
),
|
|
div
|
|
(
|
|
set('class', 'flex py-2'),
|
|
col
|
|
(
|
|
set('align', 'center'),
|
|
set('class', 'border-right w-1/5'),
|
|
center
|
|
(
|
|
set('class', 'font-bold'),
|
|
sprintf($lang->block->welcomeList[$welcomeType], $app->user->realname)
|
|
),
|
|
center
|
|
(
|
|
set('class', 'rounded-full avatar-border-one my-1'),
|
|
center
|
|
(
|
|
set('class', 'rounded-full avatar-border-two'),
|
|
userAvatar
|
|
(
|
|
set('class', 'welcome-avatar'),
|
|
set('user', $this->app->user)
|
|
)
|
|
)
|
|
),
|
|
span(set('class', 'label circle honorary text-xs'), $lang->block->honorary[$honorary])
|
|
),
|
|
cell
|
|
(
|
|
set('width', '45%'),
|
|
set('class', 'border-right px-4'),
|
|
div
|
|
(
|
|
set('class', 'font-bold'),
|
|
$lang->block->welcome->reviewByMe
|
|
),
|
|
div
|
|
(
|
|
setClass('flex justify-around pt-1'),
|
|
getMeasureItem($reviewByMe)
|
|
)
|
|
),
|
|
cell
|
|
(
|
|
set('width', '35%'),
|
|
set('class', 'border-right px-4'),
|
|
div
|
|
(
|
|
set('class', 'font-bold'),
|
|
$lang->block->welcome->assignToMe
|
|
),
|
|
div
|
|
(
|
|
setClass('flex justify-around pt-1'),
|
|
getMeasureItem($assignToMe)
|
|
)
|
|
)
|
|
)
|
|
);
|
|
|
|
render('|fragment');
|
|
|
|
function getMeasureItem($data)
|
|
{
|
|
global $lang;
|
|
|
|
$items = array();
|
|
foreach($data as $key => $info)
|
|
{
|
|
$items[] = div
|
|
(
|
|
set('class', 'text-center'),
|
|
div
|
|
(
|
|
set('class', 'text-3xl text-primary font-bold h-40px'),
|
|
$info['number']
|
|
),
|
|
div($lang->block->welcome->{$key}),
|
|
!empty($info['delay']) ? div
|
|
(
|
|
set('class', 'label danger-pale circle size-sm'),
|
|
$lang->block->delay . ' ' . $info['delay']
|
|
) : null
|
|
);
|
|
}
|
|
return $items;
|
|
}
|