From 0726c0cf6ec5c63d71daae256fd3d48b540d163b Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 16 Sep 2025 14:30:42 +0800 Subject: [PATCH 1/4] * [task#149873,doing,0.5h] add create module button and priv. --- lib/zin/wg/modulemenu/v1.php | 9 +++++++++ module/group/lang/resource.php | 10 ++++++---- module/group/packagemanager.php | 1 + module/tree/lang/de.php | 1 + module/tree/lang/en.php | 1 + module/tree/lang/fr.php | 1 + module/tree/lang/zh-cn.php | 1 + 7 files changed, 20 insertions(+), 4 deletions(-) diff --git a/lib/zin/wg/modulemenu/v1.php b/lib/zin/wg/modulemenu/v1.php index cf69cc55c0..c7fd159a36 100644 --- a/lib/zin/wg/modulemenu/v1.php +++ b/lib/zin/wg/modulemenu/v1.php @@ -317,6 +317,15 @@ class moduleMenu extends wg ($hasActionDropdown || $hasToggleBtn) ? row ( setClass('justify-end p-1 flex-none'), + $this->prop('createModuleLink') ? btn + ( + set::type('ghost'), + set::icon('plus'), + set::size('sm'), + set::caret(false), + set::url($this->prop('createModuleLink')), + setData(array('toggle' => 'modal', 'size' => 'sm')) + ) : null, $hasActionDropdown ? $actions : div(), $hasToggleBtn ? btn ( diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php index 5b5e631feb..67f9b52fb2 100644 --- a/module/group/lang/resource.php +++ b/module/group/lang/resource.php @@ -1815,6 +1815,7 @@ $lang->user->methodOrder[85] = 'setPublicTemplate'; $lang->resource->tree = new stdclass(); $lang->resource->tree->browse = 'browse'; $lang->resource->tree->browseTask = 'browseTask'; +$lang->resource->tree->create = 'create'; $lang->resource->tree->updateOrder = 'updateOrder'; $lang->resource->tree->manageChild = 'manageChild'; $lang->resource->tree->edit = 'edit'; @@ -1823,10 +1824,11 @@ $lang->resource->tree->delete = 'delete'; $lang->tree->methodOrder[5] = 'browse'; $lang->tree->methodOrder[10] = 'browseTask'; -$lang->tree->methodOrder[15] = 'updateOrder'; -$lang->tree->methodOrder[20] = 'manageChild'; -$lang->tree->methodOrder[25] = 'edit'; -$lang->tree->methodOrder[30] = 'delete'; +$lang->tree->methodOrder[15] = 'create'; +$lang->tree->methodOrder[20] = 'updateOrder'; +$lang->tree->methodOrder[25] = 'manageChild'; +$lang->tree->methodOrder[30] = 'edit'; +$lang->tree->methodOrder[35] = 'delete'; /* Screen. */ $lang->resource->screen = new stdclass(); diff --git a/module/group/packagemanager.php b/module/group/packagemanager.php index de1c4da614..3199122b2b 100644 --- a/module/group/packagemanager.php +++ b/module/group/packagemanager.php @@ -2963,6 +2963,7 @@ $config->group->package->module->subset = 'tree'; $config->group->package->module->privs = array(); $config->group->package->module->privs['tree-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array(), 'recommend' => array('tree-delete', 'tree-manageChild')); $config->group->package->module->privs['tree-browseTask'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('tree-edit'), 'recommend' => array('tree-delete', 'tree-manageChild')); +$config->group->package->module->privs['tree-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 3, 'depend' => array(), 'recommend' => array()); $config->group->package->module->privs['tree-updateOrder'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 5, 'depend' => array('tree-browse'), 'recommend' => array()); $config->group->package->module->privs['tree-manageChild'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 6, 'depend' => array('tree-edit'), 'recommend' => array('tree-delete')); $config->group->package->module->privs['tree-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 7, 'depend' => array('tree-browse'), 'recommend' => array()); diff --git a/module/tree/lang/de.php b/module/tree/lang/de.php index 6fdd8761e1..5474a618ab 100755 --- a/module/tree/lang/de.php +++ b/module/tree/lang/de.php @@ -11,6 +11,7 @@ */ $lang->tree = new stdclass(); $lang->tree->common = 'Modul'; +$lang->tree->create = 'Create Module'; $lang->tree->edit = 'Bearbeiten'; $lang->tree->delete = 'Löschen'; $lang->tree->browse = 'Allgemeine Module verwalten'; diff --git a/module/tree/lang/en.php b/module/tree/lang/en.php index 59e70b8101..9a9ab1c049 100755 --- a/module/tree/lang/en.php +++ b/module/tree/lang/en.php @@ -11,6 +11,7 @@ */ $lang->tree = new stdclass(); $lang->tree->common = 'Module'; +$lang->tree->create = 'Create Module'; $lang->tree->edit = 'Edit Module'; $lang->tree->delete = 'Delete Module'; $lang->tree->browse = 'Manage General Module'; diff --git a/module/tree/lang/fr.php b/module/tree/lang/fr.php index 963b5509a5..0e5bb6259a 100755 --- a/module/tree/lang/fr.php +++ b/module/tree/lang/fr.php @@ -11,6 +11,7 @@ */ $lang->tree = new stdclass(); $lang->tree->common = 'Module'; +$lang->tree->create = 'Create Module'; $lang->tree->edit = 'Editer Module'; $lang->tree->delete = 'Supprimer Module'; $lang->tree->browse = 'Gérer les Modules Généraux'; diff --git a/module/tree/lang/zh-cn.php b/module/tree/lang/zh-cn.php index d98a3242dc..157f616cac 100755 --- a/module/tree/lang/zh-cn.php +++ b/module/tree/lang/zh-cn.php @@ -11,6 +11,7 @@ */ $lang->tree = new stdclass(); $lang->tree->common = '模块维护'; +$lang->tree->create = '添加模块'; $lang->tree->edit = '编辑模块'; $lang->tree->delete = '删除模块'; $lang->tree->browse = '通用模块维护'; From 08c5b664b407377066c694400faf7cac2b5c448b Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 16 Sep 2025 15:49:59 +0800 Subject: [PATCH 2/4] * [task#149873,doing,0.3h] add built-in category name. --- module/weekly/lang/de.php | 5 +++++ module/weekly/lang/en.php | 5 +++++ module/weekly/lang/fr.php | 5 +++++ module/weekly/lang/zh-cn.php | 5 +++++ module/weekly/model.php | 11 +++++++++++ 5 files changed, 31 insertions(+) diff --git a/module/weekly/lang/de.php b/module/weekly/lang/de.php index f13c5f21ce..ce52cd7dc2 100644 --- a/module/weekly/lang/de.php +++ b/module/weekly/lang/de.php @@ -48,6 +48,11 @@ $lang->weekly->builtInScopes = array(); $lang->weekly->builtInScopes['rnd'] = array(); $lang->weekly->builtInScopes['rnd']['project'] = 'Project'; +$lang->weekly->builtInCategoryList['month'] = 'Monthly Report'; +$lang->weekly->builtInCategoryList['week'] = 'Weekly Report'; +$lang->weekly->builtInCategoryList['day'] = 'Daily Report'; +$lang->weekly->builtInCategoryList['milestone'] = 'Milestone'; + $lang->weekly->reportHelpNotice = <<PV Planned Value Calculation method: diff --git a/module/weekly/lang/en.php b/module/weekly/lang/en.php index f13c5f21ce..ce52cd7dc2 100644 --- a/module/weekly/lang/en.php +++ b/module/weekly/lang/en.php @@ -48,6 +48,11 @@ $lang->weekly->builtInScopes = array(); $lang->weekly->builtInScopes['rnd'] = array(); $lang->weekly->builtInScopes['rnd']['project'] = 'Project'; +$lang->weekly->builtInCategoryList['month'] = 'Monthly Report'; +$lang->weekly->builtInCategoryList['week'] = 'Weekly Report'; +$lang->weekly->builtInCategoryList['day'] = 'Daily Report'; +$lang->weekly->builtInCategoryList['milestone'] = 'Milestone'; + $lang->weekly->reportHelpNotice = <<PV Planned Value Calculation method: diff --git a/module/weekly/lang/fr.php b/module/weekly/lang/fr.php index f13c5f21ce..ce52cd7dc2 100644 --- a/module/weekly/lang/fr.php +++ b/module/weekly/lang/fr.php @@ -48,6 +48,11 @@ $lang->weekly->builtInScopes = array(); $lang->weekly->builtInScopes['rnd'] = array(); $lang->weekly->builtInScopes['rnd']['project'] = 'Project'; +$lang->weekly->builtInCategoryList['month'] = 'Monthly Report'; +$lang->weekly->builtInCategoryList['week'] = 'Weekly Report'; +$lang->weekly->builtInCategoryList['day'] = 'Daily Report'; +$lang->weekly->builtInCategoryList['milestone'] = 'Milestone'; + $lang->weekly->reportHelpNotice = <<PV Planned Value Calculation method: diff --git a/module/weekly/lang/zh-cn.php b/module/weekly/lang/zh-cn.php index b0d7e40548..095ac12a5d 100644 --- a/module/weekly/lang/zh-cn.php +++ b/module/weekly/lang/zh-cn.php @@ -48,6 +48,11 @@ $lang->weekly->builtInScopes = array(); $lang->weekly->builtInScopes['rnd'] = array(); $lang->weekly->builtInScopes['rnd']['project'] = '项目'; +$lang->weekly->builtInCategoryList['month'] = '月报'; +$lang->weekly->builtInCategoryList['week'] = '周报'; +$lang->weekly->builtInCategoryList['day'] = '日报'; +$lang->weekly->builtInCategoryList['milestone'] = '里程碑'; + $lang->weekly->reportHelpNotice = <<PV 计划完成的工作 计算方式: diff --git a/module/weekly/model.php b/module/weekly/model.php index 354e456d85..34e3461cb3 100755 --- a/module/weekly/model.php +++ b/module/weekly/model.php @@ -675,6 +675,17 @@ class weeklyModel extends model public function addBuiltinCategory(int $scopeID): int { /* Set category data. */ + foreach($this->lang->weekly->builtInCategoryList as $key => $value) + { + $langData = new stdClass(); + $langData->lang = 'all'; + $langData->module = 'weekly'; + $langData->section = 'categoryList'; + $langData->key = $key; + $langData->value = $value; + $this->dao->insert(TABLE_LANG)->data($langData)->exec(); + } + $category = new stdClass(); $category->root = $scopeID; $category->name = $this->lang->projectCommon; From 5a488908ba87b0ec5c515abb88cf4c19b6efd2b5 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Tue, 16 Sep 2025 16:25:53 +0800 Subject: [PATCH 3/4] * [task#149873,doing,0.1h] adjust sql method. --- module/weekly/model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/weekly/model.php b/module/weekly/model.php index 34e3461cb3..ded4680602 100755 --- a/module/weekly/model.php +++ b/module/weekly/model.php @@ -683,7 +683,7 @@ class weeklyModel extends model $langData->section = 'categoryList'; $langData->key = $key; $langData->value = $value; - $this->dao->insert(TABLE_LANG)->data($langData)->exec(); + $this->dao->replace(TABLE_LANG)->data($langData)->get(); } $category = new stdClass(); From 94455229ece8b14a8ad8673b22332a967a5b402f Mon Sep 17 00:00:00 2001 From: tianshujie Date: Wed, 17 Sep 2025 15:20:18 +0800 Subject: [PATCH 4/4] * [task#149873,doing,0.1h] add action button for module tree. --- lib/zin/wg/modulemenu/v1.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/zin/wg/modulemenu/v1.php b/lib/zin/wg/modulemenu/v1.php index c7fd159a36..442482199f 100644 --- a/lib/zin/wg/modulemenu/v1.php +++ b/lib/zin/wg/modulemenu/v1.php @@ -90,6 +90,8 @@ class moduleMenu extends wg 'titleAttrs' => $titleAttrs, 'contentClass' => 'overflow-x-hidden' ); + if(!empty($child->actions)) $item['actions'] = $child->actions; + $items = $this->buildMenuTree($child->id); if($items) $item['items'] = $items; if($child->id == $activeKey || $child->id == 'product-' . $activeKey)