* Refactor ui of user::dynamic.

This commit is contained in:
liumengyi
2023-07-28 14:35:19 +08:00
parent dfeb9625f5
commit 41c79f7a2f
2 changed files with 113 additions and 1 deletions
-1
View File
@@ -46,6 +46,5 @@ $config->index->oldPages[] = 'dev-langitem';
$config->index->oldPages[] = 'dev-editor';
$config->index->oldPages[] = 'action-trash';
$config->index->oldPages[] = 'dept-browse';
$config->index->oldPages[] = 'user-dynamic';
$config->index->oldPages[] = 'repo-setrules';
$config->index->oldPages[] = 'host-treemap';
+113
View File
@@ -0,0 +1,113 @@
<?php
declare(strict_types=1);
/**
* The dynamic view file of user 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 Mengyi Liu <liumengyi@easycorp.ltd>
* @package user
* @link https://www.zentao.net
*/
namespace zin;
include './featurebar.html.php';
/* zin: Define the feature bar on main menu. */
$dynamicNavs = array();
foreach($lang->user->featureBar['dynamic'] as $period => $label)
{
$dynamicNavs[$period] = array('text' => $label, 'url' => inlink('dynamic', "userID={$user->id}&type={$period}"));
}
if(isset($dynamicNavs[$type])) $dynamicNavs[$type]['active'] = true;
$content = null;
if(empty($dateGroups))
{
$content = div
(
setClass('flex items-center justify-center h-64'),
span
(
setClass('text-gray'),
$lang->action->noDynamic
),
);
}
else
{
$content = array();
$firstAction = '';
$lastAction = '';
foreach($dateGroups as $date => $actions)
{
$isToday = date(DT_DATE3) == $date;
if(empty($firstAction)) $firstAction = reset($actions);
$content[] = li
(
div
(
setClass('cursor-pointer leading-5'),
span
(
icon('angle-down text-primary border-2 rounded-full toolbar z-10 bg-canvas align-middle'),
),
span
(
setClass('ml-2'),
$isToday ? $lang->today : $date,
),
on::click('toggleCollapse')
),
div
(
setClass('border-l border-l-1 mx-2 px-4 py-3'),
div
(
setClass('flex-auto px-4 alert actions-box'),
setClass($type == 'today' ? 'border-secondary' : ''),
dynamic
(
set::dynamics($actions),
set::users($users),
)
)
)
);
$lastAction = end($actions);
}
$content = ul
(
setClass('timeline'),
$content
);
}
panel
(
set::title(null),
set::headingActions(array(nav(set::items($dynamicNavs)))),
$content
);
if(!empty($firstAction))
{
$firstDate = date('Y-m-d', strtotime($firstAction->originalDate) + 24 * 3600);
$lastDate = substr($lastAction->originalDate, 0, 10);
$hasPre = $this->action->hasPreOrNext($firstDate, 'pre');
$hasNext = $this->action->hasPreOrNext($lastDate, 'next');
$preLink = $hasPre ? inlink('dynamic', "useID={$user->id}&type={$type}&recTotal={$pager->recTotal}&date=" . strtotime($firstDate) . '&direction=pre') : 'javascript:;';
$nextLink = $hasNext ? inlink('dynamic', "useID={$user->id}&type={$type}&recTotal={$pager->recTotal}&date=" . strtotime($lastDate) . '&direction=next') : 'javascript:;';
if($hasPre || $hasNext)
{
floatPreNextBtn
(
empty($hasNext) ? null : set::preLink($nextLink),
empty($hasPre) ? null : set::nextLink($preLink)
);
}
}
render();