* block: display the project overview block with overviewBlock widget.
This commit is contained in:
@@ -11,113 +11,9 @@ declare(strict_types=1);
|
||||
|
||||
namespace zin;
|
||||
|
||||
panel
|
||||
overviewBlock
|
||||
(
|
||||
setClass('projectoverview-block'),
|
||||
set::title($block->title),
|
||||
set::bodyClass('flex block-base p-0'),
|
||||
div
|
||||
(
|
||||
setClass('flex w-1/2'),
|
||||
col
|
||||
(
|
||||
setClass('justify-center w-1/2'),
|
||||
a
|
||||
(
|
||||
setClass('text-2xl text-center text-primary font-bold leading-relaxed border-r'),
|
||||
hasPriv('project', 'browse') ? set::href($this->createLink('project', 'browse', 'programID=0&browseType=all')) : null,
|
||||
$projectStats['total']
|
||||
),
|
||||
span
|
||||
(
|
||||
setClass('text-center'),
|
||||
$lang->block->projectoverview->totalProject
|
||||
)
|
||||
),
|
||||
col
|
||||
(
|
||||
setClass('justify-center w-1/2'),
|
||||
span
|
||||
(
|
||||
setClass('text-2xl text-center font-bold leading-relaxed'),
|
||||
$projectStats['thisYear']['count']
|
||||
),
|
||||
span
|
||||
(
|
||||
setClass('text-center'),
|
||||
$lang->block->projectoverview->thisYear
|
||||
)
|
||||
)
|
||||
),
|
||||
div
|
||||
(
|
||||
setClass('flex justify-center w-1/2'),
|
||||
col
|
||||
(
|
||||
span
|
||||
(
|
||||
setClass('text-center mb-2'),
|
||||
$lang->block->projectoverview->lastThreeYear
|
||||
),
|
||||
div
|
||||
(
|
||||
setClass('border-b'),
|
||||
h::ul
|
||||
(
|
||||
setClass('flex justify-around items-end w-full h-16'),
|
||||
h::li
|
||||
(
|
||||
setStyle(array('display' => 'contents')),
|
||||
span
|
||||
(
|
||||
setClass('block w-2 primary'),
|
||||
set::title($projectStats['lastTwoYear']['count']),
|
||||
setStyle(array('height' => $projectStats['lastTwoYear']['rate'])),
|
||||
)
|
||||
),
|
||||
h::li
|
||||
(
|
||||
setStyle(array('display' => 'contents')),
|
||||
span
|
||||
(
|
||||
setClass('block w-2 primary'),
|
||||
set::title($projectStats['lastYear']['count']),
|
||||
setStyle(array('height' => $projectStats['lastYear']['rate'])),
|
||||
)
|
||||
),
|
||||
h::li
|
||||
(
|
||||
setStyle(array('display' => 'contents')),
|
||||
span
|
||||
(
|
||||
setClass('block w-2 primary'),
|
||||
set::title($projectStats['thisYear']['count']),
|
||||
setStyle(array('height' => $projectStats['thisYear']['rate'])),
|
||||
)
|
||||
)
|
||||
)
|
||||
),
|
||||
div
|
||||
(
|
||||
setClass('flex justify-around mt-1.5'),
|
||||
span
|
||||
(
|
||||
setClass('text-center'),
|
||||
$projectStats['lastTwoYear']['year']
|
||||
),
|
||||
span
|
||||
(
|
||||
setClass('text-center'),
|
||||
$projectStats['lastYear']['year']
|
||||
),
|
||||
span
|
||||
(
|
||||
setClass('text-center'),
|
||||
$projectStats['thisYear']['year']
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
set(array('block' => $block, 'groups' => $groups))
|
||||
);
|
||||
|
||||
render();
|
||||
|
||||
+31
-5
@@ -694,12 +694,38 @@ class blockZen extends block
|
||||
if($lastYearCount > $maxCount) $maxCount = $lastYearCount;
|
||||
if($lastTwoYearCount > $maxCount) $maxCount = $lastTwoYearCount;
|
||||
|
||||
$projectStats['total'] = array_sum($stats);
|
||||
$projectStats['thisYear'] = array('year' => $thisYear, 'count' => $thisYearCount, 'rate' => $maxCount ? round($thisYearCount / $maxCount * 100) . '%' : '0%');
|
||||
$projectStats['lastYear'] = array('year' => $lastYear, 'count' => $lastYearCount, 'rate' => $maxCount ? round($lastYearCount / $maxCount * 100) . '%' : '0%');
|
||||
$projectStats['lastTwoYear'] = array('year' => $lastTwoYear, 'count' => $lastTwoYearCount, 'rate' => $maxCount ? round($lastTwoYearCount / $maxCount * 100) . '%' : '0%');
|
||||
$cards = array();
|
||||
$cards[0] = new stdclass();
|
||||
$cards[0]->value = array_sum($stats);
|
||||
$cards[0]->class = 'text-primary';
|
||||
$cards[0]->label = $this->lang->block->projectoverview->totalProject;
|
||||
$cards[0]->url = common::hasPriv('project', 'browse') ? helper::createLink('project', 'browse', 'programID=0&browseType=all') : null;
|
||||
|
||||
$this->view->projectStats = $projectStats;
|
||||
$cards[1] = new stdclass();
|
||||
$cards[1]->value = $thisYearCount;
|
||||
$cards[1]->label = $this->lang->block->projectoverview->thisYear;
|
||||
|
||||
$cardGroup = new stdclass();
|
||||
$cardGroup->type = 'cards';
|
||||
$cardGroup->cards = $cards;
|
||||
|
||||
$bars = array();
|
||||
foreach(array('thisYear', 'lastYear', 'lastTwoYear') as $year)
|
||||
{
|
||||
$bar = new stdclass();
|
||||
$bar->label = $$year;
|
||||
$bar->value = ${$year . 'Count'};
|
||||
$bar->rate = $maxCount ? round(${$year . 'Count'} / $maxCount * 100) . '%' : '0%';
|
||||
|
||||
$bars[] = $bar;
|
||||
}
|
||||
|
||||
$barGroup = new stdclass();
|
||||
$barGroup->type = 'barChart';
|
||||
$barGroup->title = $this->lang->block->projectoverview->lastThreeYear;
|
||||
$barGroup->bars = $bars;
|
||||
|
||||
$this->view->groups = array($cardGroup, $barGroup);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user