* Add block annotations on block zen
This commit is contained in:
@@ -168,9 +168,10 @@ class block extends control
|
||||
$modules = $this->blockZen->getAvailableModules($dashboard); // 不同的仪表盘获取不同的可选择的模块列表。
|
||||
unset($modules['']);
|
||||
|
||||
if(empty($modules)) $module = $dashboard; // 如果该仪表盘下没有模块列表,则模块同仪表盘。
|
||||
if(empty($module) && !empty($modules)) $module = current(array_keys($modules)); // 如果当前没有选择模块,则选中第一个。
|
||||
|
||||
$codes = $this->blockZen->getAvailableCodes($dashboard, $module); // 根据仪表盘和模块获取可用的区块列表。
|
||||
$codes = $this->blockZen->getAvailableCodes($module); // 根据仪表盘和模块获取可用的区块列表。
|
||||
$params = $this->blockZen->getAvailableParams($module, $code); // 根据所属模块和区块code获取参数配置项列表。
|
||||
|
||||
$this->view->title = $this->lang->block->createBlock;
|
||||
@@ -227,9 +228,9 @@ class block extends control
|
||||
$module = $module ? $module : $block->module; // 获取当前选中的模块,默认取区块的所属模块。
|
||||
$code = $code ? $code : $block->code; // 获取当前选中的区块code,默认取区块的所属code。
|
||||
|
||||
$modules = $this->blockZen->getAvailableModules($block->dashboard); // 根据所属仪表盘获取可选择的模块列表。
|
||||
$codes = $this->blockZen->getAvailableCodes($block->dashboard, $module); // 根据所属仪表盘和选中模块获取可选择的区块列表。
|
||||
$params = $this->blockZen->getAvailableParams($module, $code); // 根据当前选中模块和选中区块code获取参数配置项列表。
|
||||
$modules = $this->blockZen->getAvailableModules($block->dashboard); // 根据所属仪表盘获取可选择的模块列表。
|
||||
$codes = $this->blockZen->getAvailableCodes($module); // 根据所属仪表盘和选中模块获取可选择的区块列表。
|
||||
$params = $this->blockZen->getAvailableParams($module, $code); // 根据当前选中模块和选中区块code获取参数配置项列表。
|
||||
|
||||
$blockSize = !empty($this->config->block->size[$module][$code]) ? $this->config->block->size[$module][$code] : $this->config->block->defaultSize; // 获取当前区块的可选尺寸。
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@ $lang->block->budget = '预算';
|
||||
$lang->block->left = '剩余';
|
||||
|
||||
$lang->block->summary = new stdclass();
|
||||
$lang->block->summary->welcome = '禅道已陪伴您%s天,<strong>昨日</strong>完成了 <a href="' . helper::createLink('my', 'contribute', 'mode=audit') .'" class="text-success">%s</a> 条评审、完成了 <a href="' . helper::createLink('my', 'contribute', 'mode=task&type=finishedBy') . '" class="text-success">%s</a> 个任务、解决了 <a href="' . helper::createLink('my', 'contribute', 'mode=bug&type=resolvedBy') . '" class="text-success">%s</a> 个Bug,今日期待优秀的您来处理。';
|
||||
$lang->block->summary->welcome = '禅道已陪伴您%s天,<strong>昨日</strong>完成了<a href="' . helper::createLink('my', 'contribute', 'mode=audit') .'" class="text-success">%s</a>条评审、完成了<a href="' . helper::createLink('my', 'contribute', 'mode=task&type=finishedBy') . '" class="text-success">%s</a>个任务、解决了<a href="' . helper::createLink('my', 'contribute', 'mode=bug&type=resolvedBy') . '" class="text-success">%s</a>个Bug,今日期待优秀的您来处理';
|
||||
|
||||
$lang->block->dashboard['default'] = '仪表盘';
|
||||
$lang->block->dashboard['my'] = '地盘';
|
||||
|
||||
@@ -100,14 +100,15 @@ row
|
||||
),
|
||||
)
|
||||
),
|
||||
$module == 'html' ? formRow
|
||||
formRow
|
||||
(
|
||||
set::class($module == 'html' ? '' : 'hidden'),
|
||||
formGroup
|
||||
(
|
||||
set::label($lang->block->lblHtml),
|
||||
editor(set::name('html')),
|
||||
)
|
||||
) : null
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -22,8 +22,12 @@ $blocks = json_decode(json_encode($blocks), true);
|
||||
|
||||
$blockMenuItems = array();
|
||||
$blockMenuItems[] = array('text' => $lang->block->refresh, 'className' => 'not-open-url', 'data' => array('type' => 'refresh'));
|
||||
$blockMenuItems[] = array('text' => $lang->edit, 'className' => 'not-open-url', 'data' => array('type' => 'edit', 'url' => createLink('block', 'edit', "blockID={id}"), 'size' => 'sm'));
|
||||
$blockMenuItems[] = array('text' => $lang->block->hidden, 'className' => 'not-open-url', 'data' => array('type' => 'delete', 'url' => createLink('block', 'delete', "blockID={id}&type=hidden"), 'confirm' => $lang->block->confirmRemoveBlock));
|
||||
if($this->app->user->account != 'guest')
|
||||
{
|
||||
$blockMenuItems[] = array('text' => $lang->edit, 'className' => 'not-open-url', 'data' => array('type' => 'edit', 'url' => createLink('block', 'edit', "blockID={id}"), 'size' => 'sm'));
|
||||
$blockMenuItems[] = array('text' => $lang->block->hidden, 'className' => 'not-open-url', 'data' => array('type' => 'delete', 'url' => createLink('block', 'delete', "blockID={id}"), 'confirm' => $lang->block->confirmRemoveBlock));
|
||||
if($this->app->user->admin) $blockMenuItems[] = array('text' => $lang->block->closeForever, 'className' => 'not-open-url', 'data' => array('type' => 'delete', 'url' => createLink('block', 'close', "blockID={id}"), 'confirm' => $lang->block->confirmClose));
|
||||
}
|
||||
$blockMenuItems[] = array('text' => $lang->block->createBlock, 'className' => 'not-open-url', 'data' => array('type' => 'create', 'url' => createLink('block', 'create', "dashboard=$dashboard"), 'toggle' => 'modal', 'size' => 'sm'));
|
||||
$blockMenuItems[] = array('text' => $lang->block->reset, 'className' => 'not-open-url', 'data' => array('type' => 'reset', 'url' => createLink('block', 'reset', "dashboard=$dashboard"), 'confirm' => $lang->block->confirmReset));
|
||||
|
||||
|
||||
@@ -98,14 +98,15 @@ row
|
||||
),
|
||||
)
|
||||
),
|
||||
$module == 'html' ? formRow
|
||||
formRow
|
||||
(
|
||||
set::class($module == 'html' ? '' : 'hidden'),
|
||||
formGroup
|
||||
(
|
||||
set::label($lang->block->lblHtml),
|
||||
editor(set::name('html'), html($block->param->html)),
|
||||
editor(set::name('html'), html($block->params->html)),
|
||||
)
|
||||
) : null
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+20
-68
@@ -2,7 +2,7 @@
|
||||
class blockZen extends block
|
||||
{
|
||||
/**
|
||||
* 添加或编辑区块时获取可使用的模块选项。
|
||||
* 根据仪表盘获取可使用的模块列表。
|
||||
* Get module options when adding or editing blocks.
|
||||
*
|
||||
* @param string $dashboard
|
||||
@@ -55,49 +55,26 @@ class blockZen extends block
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加或编辑区块时获取可使用的区块选项。
|
||||
* 根据模块获取可使用的区块列表。
|
||||
* Get block options when adding or editing blocks.
|
||||
*
|
||||
* @param string $dashboard
|
||||
* @param string $module
|
||||
* @access protected
|
||||
* @return string[]|true
|
||||
*/
|
||||
protected function getAvailableCodes(string $dashboard, string $module): array|bool
|
||||
protected function getAvailableCodes(string $module): array|bool
|
||||
{
|
||||
if($this->isExternalCall())
|
||||
/* 获取当前模块下的所有区块列表。 */
|
||||
if($module && isset($this->lang->block->modules[$module]))
|
||||
{
|
||||
$lang = str_replace('_', '-', $this->get->lang);
|
||||
$this->app->setClientLang($lang);
|
||||
$this->app->loadLang('common');
|
||||
$this->app->loadLang('block');
|
||||
|
||||
if(!$this->block->checkAPI($this->get->hash)) return array();
|
||||
}
|
||||
|
||||
if($dashboard == 'my')
|
||||
{
|
||||
if($module && isset($this->lang->block->modules[$module]))
|
||||
{
|
||||
$blocks = $this->lang->block->modules[$module]->availableBlocks;
|
||||
}
|
||||
else
|
||||
{
|
||||
$blocks = array();
|
||||
}
|
||||
$blocks = $this->lang->block->modules[$module]->availableBlocks;
|
||||
}
|
||||
else
|
||||
{
|
||||
if($dashboard && isset($this->lang->block->modules[$dashboard]))
|
||||
{
|
||||
$blocks = $this->lang->block->modules[$dashboard]->availableBlocks;
|
||||
}
|
||||
else
|
||||
{
|
||||
$blocks = $this->lang->block->availableBlocks;
|
||||
}
|
||||
$blocks = array();
|
||||
}
|
||||
|
||||
/* 过滤掉永久关闭的区块。 */
|
||||
if(isset($this->config->block->closed))
|
||||
{
|
||||
foreach($blocks as $blockKey => $blockName)
|
||||
@@ -106,17 +83,11 @@ class blockZen extends block
|
||||
}
|
||||
}
|
||||
|
||||
if($this->isExternalCall())
|
||||
{
|
||||
echo json_encode($blocks);
|
||||
return true;
|
||||
}
|
||||
|
||||
return !empty($blocks) ? $blocks : array();
|
||||
return $blocks;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加或编辑区块时获取其他表单项。
|
||||
* 根据区块获取区块相关可配置参数列表。
|
||||
* Get other form items when adding or editing blocks.
|
||||
*
|
||||
* @param string $module
|
||||
@@ -126,6 +97,7 @@ class blockZen extends block
|
||||
*/
|
||||
protected function getAvailableParams(string $module = '', string $code = ''): array
|
||||
{
|
||||
/* 特殊的模块对code特殊处理。 */
|
||||
if($code == 'todo' || $code == 'list' || $module == 'assigntome')
|
||||
{
|
||||
$code = $module;
|
||||
@@ -135,10 +107,10 @@ class blockZen extends block
|
||||
$code = $module . $code;
|
||||
}
|
||||
|
||||
$params = zget($this->config->block->params, $code, '');
|
||||
$params = zget($this->config->block->params, $code, array());
|
||||
$params = json_decode(json_encode($params), true);
|
||||
|
||||
return !empty($params) ? $params : array();
|
||||
return $params;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -155,12 +127,14 @@ class blockZen extends block
|
||||
*/
|
||||
protected function getBlockTitle(array $modules, string $module, array $codes, string $code, array $params): string
|
||||
{
|
||||
$blockTitle = zget($codes, $code, '');
|
||||
$blockTitle = zget($codes, $code, ''); // 标快的标题默认是区块列表下拉选中的内容。
|
||||
|
||||
/* scrumtest以外的区块标题前面要根据选中的type类型填充内容。 如:已关闭的产品列表。 */
|
||||
if($module != 'scrumtest' || $code == 'all')
|
||||
{
|
||||
$options = isset($params['type']['options']) ? $params['type']['options'] : array();
|
||||
if(!empty($options)) $blockTitle = vsprintf($this->lang->block->blockTitle, array(reset($options), $blockTitle));
|
||||
if(empty($blockTitle) && !in_array($module, array('product', 'project', 'execution', 'qa'))) $blockTitle = zget($modules, $module, '');
|
||||
if(empty($blockTitle) && !in_array($module, array('product', 'project', 'execution', 'qa'))) $blockTitle = zget($modules, $module, ''); // 特殊的区块标题使用模块列表选中的文本内容。 如:欢迎总览区块。
|
||||
}
|
||||
|
||||
return $blockTitle;
|
||||
@@ -202,6 +176,7 @@ class blockZen extends block
|
||||
$this->createMoreLink($block, $projectID);
|
||||
}
|
||||
|
||||
/* 根据每个区块的高度和宽度重新生成各个区块的left和top属性。 */
|
||||
$blocks = array_values($blocks);
|
||||
$height = array(1 => 0, 2 => 0);
|
||||
foreach($blocks as $block)
|
||||
@@ -222,7 +197,7 @@ class blockZen extends block
|
||||
}
|
||||
|
||||
/**
|
||||
* 补全区块的加载链接。
|
||||
* 补全区块的加载更多链接。
|
||||
* Get the more link of the block.
|
||||
*
|
||||
* @param object $block
|
||||
@@ -279,24 +254,6 @@ class blockZen extends block
|
||||
return $block;
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成 HTML 区块。
|
||||
* Generate HTML block.
|
||||
*
|
||||
* @param object $block
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
protected function generateHtmlBlock(object $block): string
|
||||
{
|
||||
if(empty($block->params->html))
|
||||
{
|
||||
return "<div class='empty-tip'>" . $this->lang->block->emptyTip . '</div>';
|
||||
}
|
||||
|
||||
return "<div class='panel-body'><div class='article-content'>" . $block->params->html . '</div></div>';
|
||||
}
|
||||
|
||||
/**
|
||||
* 去掉待定和已暂停的任务。
|
||||
* Remove undetermined and suspended tasks.
|
||||
@@ -311,10 +268,7 @@ class blockZen extends block
|
||||
foreach($todos as $key => $todo)
|
||||
{
|
||||
/* '2030-01-01' means undetermined */
|
||||
if($todo->date == FUTURE_TIME || ($todo->type == 'task' && isset($suspendedTasks[$todo->objectID])))
|
||||
{
|
||||
unset($todos[$key]);
|
||||
}
|
||||
if($todo->date == FUTURE_TIME || ($todo->type == 'task' && isset($suspendedTasks[$todo->objectID]))) unset($todos[$key]);
|
||||
}
|
||||
return $todos;
|
||||
}
|
||||
@@ -2048,8 +2002,6 @@ class blockZen extends block
|
||||
$this->view->depts = $this->loadModel('dept')->getOptionMenu();
|
||||
}
|
||||
|
||||
|
||||
|
||||
$this->view->users = $this->loadModel('user')->getPairs('all,noletter');
|
||||
$this->view->isExternalCall = $this->isExternalCall();
|
||||
$this->view->hasViewPriv = $hasViewPriv;
|
||||
|
||||
Reference in New Issue
Block a user