From 65eba44aaa08b90edcd311529fca4d8d15ec1b42 Mon Sep 17 00:00:00 2001 From: wangyuting Date: Thu, 17 Aug 2023 10:20:09 +0800 Subject: [PATCH] * Add block annotations on block zen --- module/block/control.php | 9 +-- module/block/lang/zh-cn.php | 2 +- module/block/ui/create.html.php | 5 +- module/block/ui/dashboard.html.php | 8 ++- module/block/ui/edit.html.php | 7 ++- module/block/zen.php | 88 +++++++----------------------- 6 files changed, 39 insertions(+), 80 deletions(-) diff --git a/module/block/control.php b/module/block/control.php index b656a384c4..82f3d461f5 100755 --- a/module/block/control.php +++ b/module/block/control.php @@ -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; // 获取当前区块的可选尺寸。 diff --git a/module/block/lang/zh-cn.php b/module/block/lang/zh-cn.php index 097bc6611c..5bbbdd18b7 100644 --- a/module/block/lang/zh-cn.php +++ b/module/block/lang/zh-cn.php @@ -117,7 +117,7 @@ $lang->block->budget = '预算'; $lang->block->left = '剩余'; $lang->block->summary = new stdclass(); -$lang->block->summary->welcome = '禅道已陪伴您%s天,昨日完成了 %s 条评审、完成了 %s 个任务、解决了 %s 个Bug,今日期待优秀的您来处理。'; +$lang->block->summary->welcome = '禅道已陪伴您%s天,昨日完成了%s条评审、完成了%s个任务、解决了%s个Bug,今日期待优秀的您来处理'; $lang->block->dashboard['default'] = '仪表盘'; $lang->block->dashboard['my'] = '地盘'; diff --git a/module/block/ui/create.html.php b/module/block/ui/create.html.php index bd091b0de2..8420a4dcc4 100644 --- a/module/block/ui/create.html.php +++ b/module/block/ui/create.html.php @@ -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 + ) ) ) ) diff --git a/module/block/ui/dashboard.html.php b/module/block/ui/dashboard.html.php index fce0e20f61..6c22385843 100644 --- a/module/block/ui/dashboard.html.php +++ b/module/block/ui/dashboard.html.php @@ -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)); diff --git a/module/block/ui/edit.html.php b/module/block/ui/edit.html.php index 5c638d9302..1f7a52d572 100644 --- a/module/block/ui/edit.html.php +++ b/module/block/ui/edit.html.php @@ -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 + ) ) ) ) diff --git a/module/block/zen.php b/module/block/zen.php index 2e8deb42b8..a7802925d1 100644 --- a/module/block/zen.php +++ b/module/block/zen.php @@ -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 "
" . $this->lang->block->emptyTip . '
'; - } - - return "
" . $block->params->html . '
'; - } - /** * 去掉待定和已暂停的任务。 * 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;