diff --git a/api/v1/entries/hostheartbeat.php b/api/v1/entries/hostheartbeat.php index 48feb62d14..1d54b4c9c2 100644 --- a/api/v1/entries/hostheartbeat.php +++ b/api/v1/entries/hostheartbeat.php @@ -84,6 +84,19 @@ class hostHeartbeatEntry extends baseEntry if($heartbeat > 0) $vmData['heartbeat'] = date("Y-m-d H:i:s", $heartbeat); $this->dao->update(TABLE_ZAHOST)->data($vmData)->where('mac')->eq($vm->macAddress)->exec(); + + if($vm->status == 'running') + { + $node = $this->loadModel('zanode')->getNodeByMac($vm->macAddress); + if(!empty($node)) + { + $snaps = $this->loadModel('zanode')->getSnapshotList($node->id); + if(empty($snaps)) + { + if($vm->status == 'running') $this->loadModel('zanode')->createDefaultSnapshot($node->id); + } + } + } } } diff --git a/api/v1/entries/hostsubmit.php b/api/v1/entries/hostsubmit.php index 0dd5a83f05..9aea53faf2 100644 --- a/api/v1/entries/hostsubmit.php +++ b/api/v1/entries/hostsubmit.php @@ -40,13 +40,21 @@ class hostSubmitEntry extends baseEntry if(!$id) return $this->sendError(400, 'Secret error.'); - $imageInfo = $this->dao->select('`status`,`from`')->from(TABLE_IMAGE) + $imageInfo = $this->dao->select('`status`,`from`', 'name')->from(TABLE_IMAGE) ->where('id')->eq($task) ->fetch(); if(empty($imageInfo)) return $this->sendSuccess(200, 'success'); if($imageInfo->from == 'snapshot' && $imageInfo->status == 'restoring') { - $image->status = $image->status == 'completed' ? 'restore_completed' : 'restore_failed'; + if(in_array($image->status, array('failed', 'completed'))) $image->status = $image->status == 'completed' ? 'restore_completed' : 'restore_failed'; + } + else if($imageInfo->from == 'snapshot' && $imageInfo->status == 'creating') + { + if($image->status == 'failed') + { + $this->dao->delete()->from(TABLE_IMAGE)->where("id")->eq($task)->exec(); + return $this->sendSuccess(200, 'success'); + } } $this->dao->update(TABLE_IMAGE)->data($image)->where("id")->eq($task)->exec(); diff --git a/config/zentaopms.php b/config/zentaopms.php index 68b7f8b1b8..25efb84a38 100644 --- a/config/zentaopms.php +++ b/config/zentaopms.php @@ -406,6 +406,7 @@ $config->objectTables['apistruct'] = TABLE_APISTRUCT; $config->objectTables['repo'] = TABLE_REPO; $config->objectTables['dataview'] = TABLE_DATAVIEW; $config->objectTables['zahost'] = TABLE_ZAHOST; +$config->objectTables['zanode'] = TABLE_ZAHOST; $config->objectTables['automation'] = TABLE_AUTOMATION; $config->objectTables['stepResult'] = TABLE_TESTRUN; diff --git a/db/zentao.sql b/db/zentao.sql index 39768146fa..3848051d2e 100755 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -2161,6 +2161,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (1,'custom','project'), (1,'custom','restore'), (1,'custom','set'), +(1,'custom','hours'), (1,'custom','setDefaultConcept'), (1,'custom','setPublic'), (1,'custom','setStoryConcept'), @@ -2753,6 +2754,7 @@ INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (2,'custom','product'), (2,'custom','restore'), (2,'custom','set'), +(2,'custom','hours'), (2,'custom','setPublic'), (2,'datatable','setGlobal'), (2,'dept','browse'), @@ -6383,14 +6385,7 @@ REPLACE INTO `zt_lang` (`lang`, `module`, `section`, `key`, `value`, `system`) V ('zh-cn', 'custom', 'URSRList', '3', '{\"SRName\":\"\\u8f6f\\u9700\",\"URName\":\"\\u7528\\u9700\"}', '1'),('zh-cn', 'custom', 'URSRList', '4', '{\"SRName\":\"\\u6545\\u4e8b\",\"URName\":\"\\u53f2\\u8bd7\"}', '1'), ('zh-cn', 'custom', 'URSRList', '5', '{\"SRName\":\"\\u9700\\u6c42\",\"URName\":\"\\u7528\\u6237\\u9700\\u6c42\"}', '1'), ('en', 'custom', 'URSRList', '1', '{\"SRName\":\"Story\",\"URName\":\"Epic\"}', '0'), -('en', 'custom', 'URSRList', '2', '{\"SRName\":\"Software Requirement\",\"URName\":\"User Requirement\"}', '0'), -('all','stage','typeList','request','需求', '1'), -('all','stage','typeList','design','设计', '1'), -('all','stage','typeList','dev','开发', '1'), -('all','stage','typeList','qa','测试', '1'), -('all','stage','typeList','release','发布', '1'), -('all','stage','typeList','review','总结评审','1'), -('all','stage','typeList','other','其他','1'); +('en', 'custom', 'URSRList', '2', '{\"SRName\":\"Software Requirement\",\"URName\":\"User Requirement\"}', '0'); REPLACE INTO `zt_stage` (`name`,`percent`,`type`,`projectType`,`createdBy`,`createdDate`,`editedBy`,`editedDate`,`deleted`) VALUES ('需求','10','request','waterfall','admin','2020-02-08 21:08:30','admin','2020-02-12 13:50:27','0'), diff --git a/doc/CHANGELOG b/doc/CHANGELOG index 9183299b31..851e60430e 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -130,6 +130,102 @@ 修复的Bug 开源版: 32397 地盘待处理任务搜索界面报错 +企业版: +18695 bug重新步骤有图片,导出mht没有图片 +22568 特殊情况下,上线中不显示添加的计划 +23227 导出xls格式模板部门字段点击下拉控件无反应 +23588 反馈列表批量编辑时,所属产品作为必填项为空时可以保存 +24026 导出的word中显示多余的空行 +24733 反馈转待办页面,提示关联编号不能为空 +24881 没有详情权限时,历史记录中不应展示链接 +24897 切换左侧筛选标签,上方标签统计数字消失 +24932 自定义切换语言未选中“适用当前语言” +24935 只有默认反馈关闭原因,切换到法语,语言项有问题 +24944 没有详情页权限,点击历史记录提示没权限 +24997 追问时提示回复内容不能为空 +25008 需求详情页弹窗,撤销评审后变空白页了 +25010 任务列表详情页弹窗,返回按钮点击没反应 +25017 导出用例时<>会被转义为<> +25082 用例导入是带有<>符号时显示异常 +25104 反馈指派后,指派人在反馈列表看不到指派的反馈 +25183 测试用例下从用例库导入的用例未同步到项目测试用例下 +25251 代码评审详情页转任务时提示信息不合理 +25442 账号页面搜索条件选择由谁添加/编辑时未列出系统用户 +25468 反馈列表,创建人字段鼠标悬浮不能显示title +25475 法语下创建FAQ按钮语言项错误 +25853 用例详情页显示了导入用例库按钮 +25883 地盘-日志,点击任意日期添加日志遮罩无反应 +26140 wiki文档搜索结果错误 +26147 法语下切换研发综合界面和迅捷界面报错 +26227 一个Bug有多个附件时,导出后多个附件显示在多列了 +26341 用户需求列表导出显示了“所属计划”字段 +26422 数据富文本字段中带有表格时,导出xlsx表格中列宽太宽 +26427 导出项目下研发需求模块和计划显示不正确 +26432 导入需求评审人可以选择所有产品成员 +26435 导出的用例库模板中显示了产品的所属模块 +26436 测试用例库导出模板没有包含模块的系统数据 +26439 项目测试下导入的用例只显示了测试视图下的用例列表中 +26440 导出任务,来源Bug字段只显示了Bug的id +26444 工作流导出模板后导入后,提示没有有效数据 +26446 新增工作流下载模板,里面的字段不对 +26552 文档的上一篇按钮显示缺失 +26568 用例导出特殊字符会异常 +26680 执行甘特图中按钮无图标 +26855 导入时,关掉错误提示弹框,导入按钮置灰 +27039 批量编辑反馈时指派给显示了closed +27113 英文下反馈标签栏换行显示 +27119 反馈转待办,完成待办后动态中缺少语言项 +27127 编辑执行和创建执行可用工作日逻辑不一致 +27207 创建反馈时产品的下拉列表显示顺序和反馈权限列表顺序不一致 +27322 导出反馈数据,数据中字段没有进行重新排序 +27571 执行视图分组视图导出的任务列表相关研发需求丢失 +28630 反馈列表选择产品后,创建反馈时没有显示已选产品 +28680 创建反馈页面选择产品下拉菜单中产品顺序不正确 +28722 编辑反馈时没有显示来源公司字段 +28773 产品模块下的反馈转研发需求/用户需求时,模块没有自动带出来 +28780 新增日志时工作内容输入空格可以保存成功 +28804 工单详情页来源字段处,反馈编号前建议增加“#” +28869 导入用例相关研发需求换行显示 +28890 反馈列表操作按钮换行 +32093 影响版本下拉单选多选不固定 +32098 反馈同步产品模块,反馈模块太长不能完全显示 +旗舰版: +24152 新增自定义严重程度时,QA执行检查时严重程度显示被遮挡 +24499 添加一个风险区块按照状态倒叙排序,默认排序与手动状态倒叙排序不一致 +24525 审批流中选择多个审批人,发起审批时只显示第一个 +24577 审批流中审批类型为角色,发起审批时不显示 +24723 会议生成的日程没有创建日程的历史记录 +24816 德语法语下资产库操作栏菜单显示不全 +24872 资产库预览文档时切换BIG5格式不成功 +25127 评审的问题列表选择评审项后,评审项显示不完整 +25477 过程名称很长时在左侧检查对象区块中显示问题 +25654 QA质量保证计划再次编辑时,不能看到上次填写的备注 +25966 点击上一步回到基础信息页面后,部分信息显示不正确 +25976 阶段的访问控制改为私有后,当前用户也看不到该阶段了 +26041 会议记录页面只显示了在该页面上传的附件 +26288 待处理/贡献、组织团队下的风险列表中风险系数和优先级样式未调整 +26474 升级禅道15系列介绍页面视频下方的空白建议调小点 +26577 基线评审,概要设计名称中含有“-”,获取系统数据会有问题 +26615 工期估算页面展示的界面错误导致无法保存 +27355 质量保证计划检查结果为否,未校验严重程度是否为空 +29011 问题详情页未指派样式建议优化 +29169 费用估算列表的阶段字段换行显示 +29222 分页查看执行附件库时,跳转到文档执行库下 +29413 费用估算列表页中阶段名称换行了 +30351 工作流增加富文本字段,导出后带有html标签,可读性差 +30843 旗舰版瀑布项目阶段排序后,甘特图不会同步 +30912 设置阶段时,输出选择多项后整个页面样式不友好 +31059 火狐浏览器设计审批流页面添加审批节点后页面显示不全不能滑动显示 +31414 审批流浏览器通知,有多条重复标题 +31425 浏览器通知中未显示名称 +31443 任务删除时,同时删除依赖关系 +31941 正在审批的流程显示了上一次审批节点的结果 +31943 项目型项目发起研发需求评审,评审页面无结构化评审内容 +31957 回收站中点击评审问题,详情页中有解决按钮 +31962 删除的文档/活动没有标记已删除 +31964 复制项目型项目提示关联产品或创建产品 +31996 后台过程列表执行搜索后,模型的二级导航下拉菜单高亮了两个 +32117 配置项删除按钮与系统的不一致 2023-02-08 18.1 完成的需求 diff --git a/module/action/model.php b/module/action/model.php index 30ddc77468..6a346ac118 100755 --- a/module/action/model.php +++ b/module/action/model.php @@ -938,6 +938,8 @@ class actionModel extends model } else { + if($actionType == 'restoredsnapshot' && in_array($action->objectType, array('vm', 'zanode')) && $value == 'defaultSnap') $value = $this->lang->$objectType->snapshot->defaultSnapName; + $desc = str_replace('$' . $key, $value, $desc); } } diff --git a/module/admin/config.php b/module/admin/config.php index 692c530beb..031ed73560 100755 --- a/module/admin/config.php +++ b/module/admin/config.php @@ -8,7 +8,7 @@ if(!isset($config->safe)) $config->safe = new stdclass(); if(!isset($config->safe->weak)) $config->safe->weak = '123456,password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123'; $config->admin->menuGroup['system'] = array('custom|mode', 'backup', 'cron', 'action|trash', 'admin|xuanxuan', 'setting|xuanxuan', 'admin|license', 'admin|checkweak', 'admin|resetpwdsetting', 'admin|safe', 'custom|timezone', 'search|buildindex', 'admin|tableengine', 'ldap', 'custom|libreoffice', 'conference', 'client'); -$config->admin->menuGroup['user'] = array('dept', 'company', 'user', 'group'); +$config->admin->menuGroup['company'] = array('dept', 'company', 'user', 'group', 'tutorial'); $config->admin->menuGroup['switch'] = array('admin|setmodule'); $config->admin->menuGroup['model'] = array('auditcl', 'stage', 'design', 'cmcl', 'reviewcl', 'custom|required', 'custom|set', 'custom|flow', 'custom|code', 'custom|estimate', 'custom|hours', 'subject', 'process', 'activity', 'zoutput', 'classify', 'holiday', 'reviewsetting'); $config->admin->menuGroup['feature'] = array('custom|set', 'custom|product', 'custom|execution', 'custom|required', 'custom|kanban', 'approvalflow', 'measurement', 'meetingroom', 'custom|browsestoryconcept', 'custom|kanban', 'sqlbuilder', 'report'); @@ -72,14 +72,14 @@ $config->admin->extAPIURL = $config->admin->apiSite . 'extension-apiGetExte $config->admin->patchAPIURL = $config->admin->apiSite . 'extension-apiGetExtensions-bymodule-MTIxOA==-0-100-1.json'; $config->admin->downloadAPIURL = $config->admin->apiSite . 'download.json'; $config->admin->videoAPIURL = $config->admin->apiSite . 'publicclass.json'; -$config->admin->liteMenuList = array('system', 'user', 'feature', 'message', 'extension', 'dev'); +$config->admin->liteMenuList = array('system', 'company', 'feature', 'message', 'extension', 'dev'); $config->admin->helpURL['system'] = 'https://www.zentao.net/book/zentaopms/538.html'; -$config->admin->helpURL['user'] = 'https://www.zentao.net/book/zentaopms/538.html'; -$config->admin->helpURL['switch'] = 'https://www.zentao.net/book/zentaopms/538.html'; +$config->admin->helpURL['company'] = 'https://www.zentao.net/book/zentaopms/38.html'; +$config->admin->helpURL['switch'] = 'https://www.zentao.net/book/zentaopms/38.html'; $config->admin->helpURL['model'] = 'https://www.zentao.net/book/zentaopms/533.html'; -$config->admin->helpURL['feature'] = 'https://www.zentao.net/book/zentaopms/538.html'; -$config->admin->helpURL['template'] = 'https://www.zentao.net/book/zentaopms/538.html'; +$config->admin->helpURL['feature'] = 'https://www.zentao.net/book/zentaopms/38.html'; +$config->admin->helpURL['template'] = 'https://www.zentao.net/book/zentaopms/38.html'; $config->admin->helpURL['message'] = 'https://www.zentao.net/book/zentaopms/email-notification-541.html'; $config->admin->helpURL['extension'] = 'https://www.zentao.net/book/zentaopms/536.html'; $config->admin->helpURL['dev'] = 'https://www.zentao.net/book/zentaopms/537.html'; diff --git a/module/admin/css/index.css b/module/admin/css/index.css index 22a1937b2f..b183d634b4 100755 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -41,7 +41,9 @@ .settings-list > .setting-box > button.btn {padding: 5px 10px; height: 100%; width: 100%; display: flex; flex-direction: column; justify-content: space-between; cursor: pointer; white-space: unset; text-align: unset; border: 1px solid rgba(227, 228, 233, 0.6)} .settings-list > .setting-box > .btn:hover {background: unset;} .settings-list > .setting-box > .btn[disabled] {cursor: not-allowed; pointer-events: unset;} -.settings-list > .setting-box > .btn[disabled] > a {pointer-events: none;} +.settings-list > .setting-box > .btn[disabled] > a, +.settings-list > .setting-box > .btn[disabled] a.setting-help, +.settings-list > .setting-box > .btn[disabled] p.setting-desc {pointer-events: none;} .settings-list > .setting-box > .btn > h4 {padding-right: 5px;} .settings-list > .setting-box > .btn > h4 > div {gap: 3px;} .settings-list > .setting-box > .btn > h4 > img {padding-right: 8px; padding-bottom: 3px; width: 32px; height: 27px;} diff --git a/module/admin/lang/de.php b/module/admin/lang/de.php index 18acddc1f7..9829c02c0e 100755 --- a/module/admin/lang/de.php +++ b/module/admin/lang/de.php @@ -66,7 +66,7 @@ $lang->admin->notice->ignore = "Ignorieren"; $lang->admin->notice->int = "『%s』sollte eine positive Zahl sein."; $lang->admin->registerNotice = new stdclass(); -$lang->admin->registerNotice->common = 'Verbinde neues Konto'; +$lang->admin->registerNotice->common = 'Register Account'; $lang->admin->registerNotice->caption = 'In der Zentao Community registieren'; $lang->admin->registerNotice->click = 'Bitte registieren Sie sich hier'; $lang->admin->registerNotice->lblAccount = 'mindestens 3 Zeichen bitte; mit Buchsten und Ziffern.'; @@ -186,6 +186,7 @@ $lang->admin->updateDynamics = 'Dynamics'; $lang->admin->updatePatch = 'Patch'; $lang->admin->upgradeRecommend = 'Recommend Upgrade'; $lang->admin->zentaoUsed = 'You have used ZenTao'; +$lang->admin->noPriv = 'You have no permission to visit this block.'; $lang->admin->openTag = 'ZenTao Opensource '; $lang->admin->bizTag = 'ZenTao Biz '; diff --git a/module/admin/lang/en.php b/module/admin/lang/en.php index 88bcf84189..989d926c26 100755 --- a/module/admin/lang/en.php +++ b/module/admin/lang/en.php @@ -66,7 +66,7 @@ $lang->admin->notice->ignore = "Ignore"; $lang->admin->notice->int = "『%s』should be a positive integer."; $lang->admin->registerNotice = new stdclass(); -$lang->admin->registerNotice->common = 'Bind Account'; +$lang->admin->registerNotice->common = 'Register Account'; $lang->admin->registerNotice->caption = 'ZenTao Community Signup'; $lang->admin->registerNotice->click = 'Sign Up'; $lang->admin->registerNotice->lblAccount = '>= 3 letters and numbers'; @@ -186,6 +186,7 @@ $lang->admin->updateDynamics = 'Dynamics'; $lang->admin->updatePatch = 'Patch'; $lang->admin->upgradeRecommend = 'Recommend Upgrade'; $lang->admin->zentaoUsed = 'You have used ZenTao'; +$lang->admin->noPriv = 'You have no permission to visit this block.'; $lang->admin->openTag = 'ZenTao Opensource '; $lang->admin->bizTag = 'ZenTao Biz '; diff --git a/module/admin/lang/fr.php b/module/admin/lang/fr.php index 2039c78d4c..3c6b0b8179 100755 --- a/module/admin/lang/fr.php +++ b/module/admin/lang/fr.php @@ -66,7 +66,7 @@ $lang->admin->notice->ignore = "Ignorer"; $lang->admin->notice->int = "『 %s 』 devrait être un entier positif."; $lang->admin->registerNotice = new stdclass(); -$lang->admin->registerNotice->common = 'Connectez-vous avec votre nouveau compte'; +$lang->admin->registerNotice->common = 'Register Account'; $lang->admin->registerNotice->caption = "S'enregistrer sur la communauté Zentao"; $lang->admin->registerNotice->click = "S'enregistrer ici"; $lang->admin->registerNotice->lblAccount = '>= 3 lettres et chiffres'; @@ -186,6 +186,7 @@ $lang->admin->updateDynamics = 'Dynamics'; $lang->admin->updatePatch = 'Patch'; $lang->admin->upgradeRecommend = 'Recommend Upgrade'; $lang->admin->zentaoUsed = 'You have used ZenTao'; +$lang->admin->noPriv = 'You have no permission to visit this block.'; $lang->admin->openTag = 'ZenTao Opensource '; $lang->admin->bizTag = 'ZenTao Biz '; diff --git a/module/admin/lang/menu.php b/module/admin/lang/menu.php index 4d4f4c81c1..54011367a9 100644 --- a/module/admin/lang/menu.php +++ b/module/admin/lang/menu.php @@ -10,9 +10,9 @@ $lang->admin->menuList->switch['desc'] = $lang->admin->menuSetting['switch']['d $lang->admin->menuList->switch['link'] = 'admin|setmodule'; $lang->admin->menuList->switch['order'] = 10; -$lang->admin->menuList->user['name'] = $lang->admin->menuSetting['user']['name']; -$lang->admin->menuList->user['desc'] = $lang->admin->menuSetting['user']['desc']; -$lang->admin->menuList->user['order'] = 15; +$lang->admin->menuList->company['name'] = $lang->admin->menuSetting['user']['name']; +$lang->admin->menuList->company['desc'] = $lang->admin->menuSetting['user']['desc']; +$lang->admin->menuList->company['order'] = 15; $lang->admin->menuList->model['name'] = $lang->admin->menuSetting['model']['name']; $lang->admin->menuList->model['desc'] = $lang->admin->menuSetting['model']['desc']; @@ -64,13 +64,13 @@ $lang->admin->menuList->system['menuOrder']['50'] = 'tableengine'; $lang->admin->menuList->system['dividerMenu'] = ',safe,'; -$lang->admin->menuList->user['subMenu']['dept'] = array('link' => "{$lang->dept->common}|dept|browse|", 'subModule' => 'dept'); -$lang->admin->menuList->user['subMenu']['user'] = array('link' => "{$lang->user->common}|company|browse|", 'subModule' => 'user'); -$lang->admin->menuList->user['subMenu']['group'] = array('link' => "{$lang->priv}|group|browse|", 'subModule' => 'group'); +$lang->admin->menuList->company['subMenu']['dept'] = array('link' => "{$lang->dept->common}|dept|browse|", 'subModule' => 'dept'); +$lang->admin->menuList->company['subMenu']['browseUser'] = array('link' => "{$lang->user->common}|company|browse|", 'subModule' => 'user,tutorial'); +$lang->admin->menuList->company['subMenu']['group'] = array('link' => "{$lang->priv}|group|browse|", 'subModule' => 'group'); -$lang->admin->menuList->user['menuOrder']['5'] = 'dept'; -$lang->admin->menuList->user['menuOrder']['10'] = 'user'; -$lang->admin->menuList->user['menuOrder']['15'] = 'group'; +$lang->admin->menuList->company['menuOrder']['5'] = 'dept'; +$lang->admin->menuList->company['menuOrder']['10'] = 'browseUser'; +$lang->admin->menuList->company['menuOrder']['15'] = 'group'; $lang->admin->menuList->model['subMenu']['common'] = array('link' => "{$lang->globalSetting}|custom|required|module=project", 'subModule' => 'custom,subject,holiday,stage', 'exclude' => 'stage-browse,stage-plusbrowse,stage-create,stage-edit,stage-batchcreate'); $lang->admin->menuList->model['subMenu']['scrum'] = array('link' => "{$lang->scrumModel}|auditcl|scrumbrowse|", 'subModule' => 'auditcl'); @@ -84,22 +84,23 @@ $lang->admin->menuList->model['menuOrder']['15'] = 'waterfall'; $lang->admin->menuList->model['menuOrder']['20'] = 'agileplus'; $lang->admin->menuList->model['menuOrder']['25'] = 'waterfallplus'; -$lang->admin->menuList->model['tabMenu']['common']['project'] = array('link' => "{$lang->project->common}|custom|required|module=project", 'alias' => 'set', 'exclude' => 'custom', 'links' => array('custom|set|')); -$lang->admin->menuList->model['tabMenu']['common']['stage'] = array('link' => "{$lang->stage->type}|stage|settype|", 'subModule' => 'stage', 'links' => array('stage|browse|')); +$lang->admin->menuList->model['tabMenu']['common']['project'] = array('link' => "{$lang->project->common}|custom|required|module=project", 'alias' => 'set', 'exclude' => 'custom', 'links' => array('custom|set|module=project&field=unitList')); +if(helper::hasFeature('waterfall') or helper::hasFeature('waterfallplus')) $lang->admin->menuList->model['tabMenu']['common']['stage'] = array('link' => "{$lang->stage->type}|stage|settype|", 'subModule' => 'stage', 'links' => array('stage|browse|')); $lang->admin->menuList->model['tabMenu']['common']['build'] = array('link' => "{$lang->build->common}|custom|required|module=build", 'alias' => 'set', 'exclude' => 'custom'); $lang->admin->menuList->model['tabMenu']['common']['flow'] = array('link' => "{$lang->custom->flow}|custom|flow|", 'divider' => true); $lang->admin->menuList->model['tabMenu']['common']['code'] = array('link' => "{$lang->code}|custom|code|"); -$lang->admin->menuList->model['tabMenu']['common']['hours'] = array('link' => "{$lang->workingHour}|custom|hours|", 'subModule' => 'holiday', 'links' => array('holiday|browse|')); -$lang->admin->menuList->model['tabMenu']['waterfall']['stage'] = array('link' => "{$lang->stage->list}|stage|browse|", 'subModule' => 'stage', 'exclude' => 'stage-plusbrowse'); -$lang->admin->menuList->model['tabMenu']['waterfallplus']['stage'] = array('link' => "{$lang->stage->list}|stage|plusbrowse|", 'subModule' => 'stage', 'exclude' => 'stage-browse'); +$lang->admin->menuList->model['tabMenu']['common']['hours'] = array('link' => "{$lang->workingHour}|custom|hours|", 'subModule' => 'holiday', 'links' => array('holiday|browse|', 'custom|hours|')); +if(helper::hasFeature('waterfall')) $lang->admin->menuList->model['tabMenu']['waterfall']['stage'] = array('link' => "{$lang->stage->list}|stage|browse|", 'subModule' => 'stage', 'exclude' => 'stage-plusbrowse'); +if(helper::hasFeature('waterfallplus')) $lang->admin->menuList->model['tabMenu']['waterfallplus']['stage'] = array('link' => "{$lang->stage->list}|stage|plusbrowse|", 'subModule' => 'stage', 'exclude' => 'stage-browse'); + $lang->admin->menuList->model['tabMenu']['menuOrder']['common']['5'] = 'project'; -$lang->admin->menuList->model['tabMenu']['menuOrder']['common']['7'] = 'stage'; +if(helper::hasFeature('waterfall') or helper::hasFeature('waterfallplus')) $lang->admin->menuList->model['tabMenu']['menuOrder']['common']['7'] = 'stage'; $lang->admin->menuList->model['tabMenu']['menuOrder']['common']['10'] = 'build'; $lang->admin->menuList->model['tabMenu']['menuOrder']['common']['35'] = 'flow'; $lang->admin->menuList->model['tabMenu']['menuOrder']['common']['40'] = 'code'; $lang->admin->menuList->model['tabMenu']['menuOrder']['common']['45'] = 'hours'; -$lang->admin->menuList->model['tabMenu']['menuOrder']['waterfall']['5'] = 'stage'; -$lang->admin->menuList->model['tabMenu']['menuOrder']['waterfallplus']['5'] = 'stage'; +if(helper::hasFeature('waterfall')) $lang->admin->menuList->model['tabMenu']['menuOrder']['waterfall']['5'] = 'stage'; +if(helper::hasFeature('waterfallplus')) $lang->admin->menuList->model['tabMenu']['menuOrder']['waterfallplus']['5'] = 'stage'; $lang->admin->menuList->feature['subMenu']['my'] = array('link' => "{$lang->my->common}|custom|set|module=todo&field=priList", 'exclude' => 'set,required'); $lang->admin->menuList->feature['subMenu']['product'] = array('link' => "{$lang->productCommon}|custom|required|module=product", 'exclude' => 'set,required', 'alias' => 'browsestoryconcept,product'); diff --git a/module/admin/lang/zh-cn.php b/module/admin/lang/zh-cn.php index c9ba4e745a..f63f4d25c4 100755 --- a/module/admin/lang/zh-cn.php +++ b/module/admin/lang/zh-cn.php @@ -66,7 +66,7 @@ $lang->admin->notice->ignore = "不再提示"; $lang->admin->notice->int = "『%s』应当是正整数。"; $lang->admin->registerNotice = new stdclass(); -$lang->admin->registerNotice->common = '注册新帐号绑定'; +$lang->admin->registerNotice->common = '注册新帐号'; $lang->admin->registerNotice->caption = '禅道社区登记'; $lang->admin->registerNotice->click = '点击此处'; $lang->admin->registerNotice->lblAccount = '请设置您的用户名,英文字母和数字的组合,三位以上。'; @@ -186,6 +186,7 @@ $lang->admin->updateDynamics = '更新动态'; $lang->admin->updatePatch = '补丁更新'; $lang->admin->upgradeRecommend = '推荐升级'; $lang->admin->zentaoUsed = '您已使用禅道'; +$lang->admin->noPriv = '您没有访问该区块的权限。'; $lang->admin->openTag = '禅道'; $lang->admin->bizTag = '禅道企业版'; diff --git a/module/admin/view/index.html.php b/module/admin/view/index.html.php index f2b812c35d..5728a5c8c9 100755 --- a/module/admin/view/index.html.php +++ b/module/admin/view/index.html.php @@ -19,7 +19,7 @@