* Add section comment for block.
This commit is contained in:
@@ -228,16 +228,20 @@ class block extends control
|
||||
*/
|
||||
public function dashboard(string $dashboard, string $projectID = '0')
|
||||
{
|
||||
$projectID = (int)$projectID;
|
||||
$projectID = (int)$projectID; // 强制转换为 int 类型,防止调用 model、tao 方法时报错
|
||||
|
||||
/* 获取传入应用对应的区块列表 以及 获取当前应用下区块启用状态 */
|
||||
$blocks = $this->block->getMyDashboard($dashboard);
|
||||
$isInitiated = $this->block->fetchBlockInitStatus($dashboard);
|
||||
|
||||
/* Init block when vist index first. */
|
||||
if(empty($blocks) and !$isInitiated and !defined('TUTORIAL') and $this->block->initBlock($dashboard))
|
||||
/* 判断用户是否为首次登录 ,判断条件 当前用户没有该 app 下的区块数据 且 没有设置过该 app 下的区块启用状态 且不是演示模式 */
|
||||
if(empty($blocks) and !$isInitiated and !defined('TUTORIAL'))
|
||||
{
|
||||
return print(js::reload());
|
||||
$this->block->initBlock($dashboard); // 初始化该 app 下区块数据
|
||||
$blocks = $this->block->getMyDashboard($dashboard); // 获取初始化后的区块列表
|
||||
}
|
||||
|
||||
/* */
|
||||
$blocks = $this->blockZen->processBlockForRender($blocks, $projectID);
|
||||
|
||||
if($this->app->getViewType() == 'json') return print(json_encode($blocks));
|
||||
|
||||
@@ -298,7 +298,7 @@ class blockModel extends model
|
||||
/**
|
||||
* Reset dashboard blocks.
|
||||
*
|
||||
* @param string $dashboard
|
||||
* @param string $dashboard
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
@@ -323,7 +323,7 @@ class blockModel extends model
|
||||
/**
|
||||
* Hidden a block.
|
||||
*
|
||||
* @param int $blockID
|
||||
* @param int $blockID
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
@@ -341,7 +341,7 @@ class blockModel extends model
|
||||
/**
|
||||
* Delete a block.
|
||||
*
|
||||
* @param int $blockID
|
||||
* @param int $blockID
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
@@ -358,9 +358,9 @@ class blockModel extends model
|
||||
|
||||
/**
|
||||
* Set block order.
|
||||
*
|
||||
* @param int $blockID
|
||||
* @param int $order
|
||||
*
|
||||
* @param int $blockID
|
||||
* @param int $order
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
|
||||
@@ -3,10 +3,10 @@ declare(strict_types=1);
|
||||
class blockTao extends blockModel
|
||||
{
|
||||
/**
|
||||
* Get block list of current user.
|
||||
* 获取当前用户的区块列表.
|
||||
* Get block list of current user.
|
||||
*
|
||||
* @param string $module
|
||||
* @param string $dashboard
|
||||
* @param int $hidden 0|1
|
||||
* @access protected
|
||||
* @return int[]|false
|
||||
|
||||
+12
-9
@@ -153,47 +153,50 @@ class blockZen extends block
|
||||
*/
|
||||
protected function processBlockForRender(array $blocks, int $projectID): array
|
||||
{
|
||||
/* 根据用户的权限,和当前系统开启的权限 处理区块列表 */
|
||||
$acls = $this->app->user->rights['acls'];
|
||||
foreach($blocks as $key => $block)
|
||||
{
|
||||
/* 将没有开启功能区块过虑 */
|
||||
if($block->code == 'waterfallrisk' and !helper::hasFeature("waterfall_risk")) continue;
|
||||
if($block->code == 'waterfallissue' and !helper::hasFeature("waterfall_issue")) continue;
|
||||
if($block->code == 'scrumrisk' and !helper::hasFeature("scrum_risk")) continue;
|
||||
if($block->code == 'scrumissue' and !helper::hasFeature("scrum_issue")) continue;
|
||||
|
||||
if(!empty($block->source) and $block->source != 'todo' and !empty($acls['views']) and !isset($acls['views'][$block->source]))
|
||||
/* 将没有视图权限的区块过滤 */
|
||||
if(!empty($block->module) and $block->module != 'todo' and !empty($acls['views']) and !isset($acls['views'][$block->module]))
|
||||
{
|
||||
unset($blocks[$key]);
|
||||
continue;
|
||||
}
|
||||
|
||||
/* 处理 params 信息中 count 的值,当没有 count 字段时 ,将 num 字段赋值给 count */
|
||||
$block->params = json_decode($block->params);
|
||||
if(isset($block->params->num) and !isset($block->params->count)) $block->params->count = $block->params->num;
|
||||
|
||||
$this->getBlockMoreLink($block, $projectID);
|
||||
/* 补全加载链接 */
|
||||
$this->computeMoreLink($block, $projectID);
|
||||
}
|
||||
|
||||
return $blocks;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取区块的更多链接。
|
||||
* 补全区块的加载链接。
|
||||
* Get the more link of the block.
|
||||
*
|
||||
* @param object $block
|
||||
* @param int $projectID
|
||||
* @return void
|
||||
*/
|
||||
private function getBlockMoreLink(object $block, int $projectID): void
|
||||
private function computeMoreLink(object $block, int $projectID): void
|
||||
{
|
||||
$code = $block->code;
|
||||
$source = empty($block->source) ? 'common' : $block->source;
|
||||
$module = empty($block->module) ? 'common' : $block->module;
|
||||
|
||||
$block->blockLink = $this->createLink('block', 'printBlock', "id=$block->id&module=$block->module");
|
||||
$block->moreLink = '';
|
||||
if(isset($this->config->block->modules[$source]->moreLinkList->{$code}))
|
||||
if(isset($this->config->block->modules[$module]->moreLinkList->{$block->code}))
|
||||
{
|
||||
list($moduleName, $method, $vars) = explode('|', sprintf($this->config->block->modules[$source]->moreLinkList->{$code}, isset($block->params->type) ? $block->params->type : ''));
|
||||
list($moduleName, $method, $vars) = explode('|', sprintf($this->config->block->modules[$module]->moreLinkList->{$block->code}, isset($block->params->type) ? $block->params->type : ''));
|
||||
|
||||
/* The list assigned to me jumps to the work page when click more button. */
|
||||
$block->moreLink = $this->createLink($moduleName, $method, $vars);
|
||||
|
||||
Reference in New Issue
Block a user