menu.php 59 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907
  1. <?php
  2. $lang->navIcons = array();
  3. $lang->navIcons['my'] = "<i class='icon icon-menu-my'></i>";
  4. $lang->navIcons['program'] = "<i class='icon icon-program'></i>";
  5. $lang->navIcons['product'] = "<i class='icon icon-product'></i>";
  6. $lang->navIcons['project'] = "<i class='icon icon-project'></i>";
  7. $lang->navIcons['execution'] = "<i class='icon icon-run'></i>";
  8. $lang->navIcons['qa'] = "<i class='icon icon-test'></i>";
  9. $lang->navIcons['devops'] = "<i class='icon icon-devops'></i>";
  10. $lang->navIcons['kanban'] = "<i class='icon icon-kanban'></i>";
  11. $lang->navIcons['doc'] = "<i class='icon icon-doc'></i>";
  12. $lang->navIcons['aiapp'] = "<i class='icon icon-ai'></i>";
  13. $lang->navIcons['bi'] = "<i class='icon icon-statistic'></i>";
  14. $lang->navIcons['system'] = "<i class='icon icon-group'></i>";
  15. $lang->navIcons['admin'] = "<i class='icon icon-cog-outline'></i>";
  16. $lang->navIconNames = array();
  17. $lang->navIconNames['my'] = 'menu-my';
  18. $lang->navIconNames['program'] = 'program';
  19. $lang->navIconNames['product'] = 'product';
  20. $lang->navIconNames['project'] = 'project';
  21. $lang->navIconNames['execution'] = 'run';
  22. $lang->navIconNames['qa'] = 'test';
  23. $lang->navIconNames['devops'] = 'devops';
  24. $lang->navIconNames['aiapp'] = 'ai';
  25. $lang->navIconNames['bi'] = 'statistic';
  26. $lang->navIconNames['kanban'] = 'kanban';
  27. $lang->navIconNames['doc'] = 'doc';
  28. $lang->navIconNames['system'] = 'group';
  29. $lang->navIconNames['admin'] = 'cog-outline';
  30. global $config;
  31. list($programModule, $programMethod) = explode('-', $config->programLink);
  32. list($productModule, $productMethod) = explode('-', $config->productLink);
  33. list($projectModule, $projectMethod) = explode('-', $config->projectLink);
  34. list($executionModule, $executionMethod) = explode('-', $config->executionLink);
  35. list($docModule, $docMethod) = explode('-', $config->docLink);
  36. if(isset($_SESSION['tutorialMode']) && $_SESSION['tutorialMode'])
  37. {
  38. $programModule = 'program';
  39. $programMethod = 'browse';
  40. $productModule = 'product';
  41. $productMethod = 'all';
  42. $projectModule = 'project';
  43. $projectMethod = 'browse';
  44. $executionModule = 'execution';
  45. $executionMethod = 'task';
  46. }
  47. /* Main Navigation. */
  48. $lang->mainNav = new stdclass();
  49. $lang->mainNav->my = "{$lang->navIcons['my']} {$lang->my->shortCommon}|my|index|";
  50. $lang->mainNav->program = "{$lang->navIcons['program']} {$lang->program->common}|$programModule|$programMethod|";
  51. $lang->mainNav->product = "{$lang->navIcons['product']} {$lang->productCommon}|$productModule|$productMethod|";
  52. $lang->mainNav->project = "{$lang->navIcons['project']} {$lang->projectCommon}|$projectModule|$projectMethod|";
  53. $lang->mainNav->execution = "{$lang->navIcons['execution']} {$lang->execution->common}|$executionModule|$executionMethod|";
  54. $lang->mainNav->qa = "{$lang->navIcons['qa']} {$lang->qa->common}|qa|index|";
  55. $lang->mainNav->devops = "{$lang->navIcons['devops']} {$lang->devops->common}|repo|maintain|";
  56. $lang->mainNav->aiapp = "{$lang->navIcons['aiapp']} {$lang->aiapp->common}|aiapp|conversation|";
  57. $lang->mainNav->bi = "{$lang->navIcons['bi']} {$lang->bi->common}|screen|browse|";
  58. $lang->mainNav->kanban = "{$lang->navIcons['kanban']} {$lang->kanban->common}|kanban|space|";
  59. $lang->mainNav->doc = "{$lang->navIcons['doc']} {$lang->doc->common}|$docModule|$docMethod|";
  60. $lang->mainNav->system = "{$lang->navIcons['system']} {$lang->system->common}|my|team|";
  61. $lang->mainNav->admin = "{$lang->navIcons['admin']} {$lang->admin->common}|admin|index|";
  62. $lang->dividerMenu = ',aiapp,kanban,system,';
  63. $lang->mainNav->menuOrder[5] = 'my';
  64. $lang->mainNav->menuOrder[10] = 'program';
  65. $lang->mainNav->menuOrder[15] = 'product';
  66. $lang->mainNav->menuOrder[20] = 'project';
  67. $lang->mainNav->menuOrder[25] = 'execution';
  68. $lang->mainNav->menuOrder[30] = 'qa';
  69. $lang->mainNav->menuOrder[35] = 'devops';
  70. $lang->mainNav->menuOrder[40] = 'aiapp';
  71. $lang->mainNav->menuOrder[45] = 'bi';
  72. $lang->mainNav->menuOrder[50] = 'kanban';
  73. $lang->mainNav->menuOrder[55] = 'doc';
  74. $lang->mainNav->menuOrder[60] = 'system';
  75. $lang->mainNav->menuOrder[65] = 'admin';
  76. if($config->systemMode == 'light') unset($lang->mainNav->program, $lang->mainNav->menuOrder[10]);
  77. /* My menu. */
  78. $lang->my->menu = new stdclass();
  79. $lang->my->menu->index = array('link' => "$lang->dashboard|my|index");
  80. $lang->my->menu->calendar = array('link' => "$lang->calendar|my|calendar|", 'subModule' => 'todo', 'alias' => 'todo');
  81. $lang->my->menu->work = array('link' => "{$lang->my->work}|my|work|mode=task");
  82. $lang->my->menu->audit = array('link' => "{$lang->review->common}|my|audit|type=all&param=&orderBy=time_desc", 'subModule' => 'review');
  83. $lang->my->menu->project = array('link' => "{$lang->project->common}|my|project|");
  84. $lang->my->menu->execution = array('link' => "{$lang->execution->common}|my|execution|type=undone");
  85. $lang->my->menu->contribute = array('link' => "$lang->contribute|my|contribute|mode=task");
  86. $lang->my->menu->dynamic = array('link' => "$lang->dynamic|my|dynamic|");
  87. $lang->my->menu->score = array('link' => "{$lang->score->shortCommon}|my|score|", 'subModule' => 'score');
  88. $lang->my->menu->contacts = array('link' => "{$lang->contact->common}|my|managecontacts|");
  89. /* My menu order. */
  90. $lang->my->menuOrder[5] = 'index';
  91. $lang->my->menuOrder[10] = 'calendar';
  92. $lang->my->menuOrder[15] = 'work';
  93. $lang->my->menuOrder[20] = 'audit';
  94. $lang->my->menuOrder[25] = 'project';
  95. $lang->my->menuOrder[30] = 'execution';
  96. $lang->my->menuOrder[35] = 'contribute';
  97. $lang->my->menuOrder[40] = 'dynamic';
  98. $lang->my->menuOrder[45] = 'score';
  99. $lang->my->menuOrder[50] = 'contacts';
  100. if(!$config->systemScore) unset($lang->my->menu->score, $lang->my->menuOrder[45]);
  101. $lang->my->menu->work['subMenu'] = new stdclass();
  102. $lang->my->menu->work['subMenu']->task = array('link' => "{$lang->task->common}|my|work|mode=task", 'subModule' => 'task', 'alias' => 'task');
  103. $lang->my->menu->work['subMenu']->story = array('link' => "$lang->SRCommon|my|work|mode=story", 'alias' => 'story');
  104. $lang->my->menu->work['subMenu']->requirement = array('link' => "$lang->URCommon|my|work|mode=requirement", 'alias' => 'requirement');
  105. $lang->my->menu->work['subMenu']->epic = array('link' => "$lang->ERCommon|my|work|mode=epic", 'alias' => 'epic');
  106. $lang->my->menu->work['subMenu']->bug = array('link' => "{$lang->bug->common}|my|work|mode=bug", 'subModule' => 'bug', 'alias' => 'bug');
  107. $lang->my->menu->work['subMenu']->testcase = array('link' => "{$lang->testcase->common}|my|work|mode=testcase", 'alias' => 'testcase');
  108. $lang->my->menu->work['subMenu']->testtask = array('link' => "{$lang->testtask->common}|my|work|mode=testtask", 'alias' => 'testtask');
  109. $lang->my->menu->work['menuOrder'][5] = 'task';
  110. $lang->my->menu->work['menuOrder'][10] = 'story';
  111. $lang->my->menu->work['menuOrder'][15] = 'requirement';
  112. $lang->my->menu->work['menuOrder'][17] = 'epic';
  113. $lang->my->menu->work['menuOrder'][20] = 'bug';
  114. $lang->my->menu->work['menuOrder'][25] = 'testcase';
  115. $lang->my->menu->work['menuOrder'][30] = 'testtask';
  116. $lang->my->menu->work['menuOrder'][35] = 'audit';
  117. if(!$config->enableER) unset($lang->my->menu->work['subMenu']->epic, $lang->my->menu->work['menuOrder'][12]);
  118. if(!$config->URAndSR) unset($lang->my->menu->work['subMenu']->requirement, $lang->my->menu->work['menuOrder'][15]);
  119. $lang->my->menu->contribute['subMenu'] = new stdclass();
  120. $lang->my->menu->contribute['subMenu']->task = array('link' => "{$lang->task->common}|my|contribute|mode=task", 'alias' => 'task');
  121. $lang->my->menu->contribute['subMenu']->story = array('link' => "$lang->SRCommon|my|contribute|mode=story", 'alias' => 'story');
  122. $lang->my->menu->contribute['subMenu']->requirement = array('link' => "$lang->URCommon|my|contribute|mode=requirement", 'alias' => 'requirement');
  123. $lang->my->menu->contribute['subMenu']->epic = array('link' => "$lang->ERCommon|my|contribute|mode=epic", 'alias' => 'epic');
  124. $lang->my->menu->contribute['subMenu']->bug = array('link' => "{$lang->bug->common}|my|contribute|mode=bug", 'alias' => 'bug');
  125. $lang->my->menu->contribute['subMenu']->testcase = array('link' => "{$lang->testcase->shortCommon}|my|contribute|mode=testcase", 'alias' => 'testcase');
  126. $lang->my->menu->contribute['subMenu']->testtask = array('link' => "{$lang->testtask->common}|my|contribute|mode=testtask", 'alias' => 'testtask');
  127. $lang->my->menu->contribute['subMenu']->audit = array('link' => "{$lang->review->common}|my|contribute|mode=audit&type=reviewedbyme", 'subModule' => 'review', 'alias' => 'audit');
  128. $lang->my->menu->contribute['subMenu']->doc = array('link' => "{$lang->doc->common}|my|contribute|mode=doc", 'alias' => 'doc');
  129. $lang->my->menu->contribute['menuOrder'][5] = 'task';
  130. $lang->my->menu->contribute['menuOrder'][10] = 'story';
  131. $lang->my->menu->contribute['menuOrder'][15] = 'requirement';
  132. $lang->my->menu->contribute['menuOrder'][17] = 'epic';
  133. $lang->my->menu->contribute['menuOrder'][20] = 'bug';
  134. $lang->my->menu->contribute['menuOrder'][25] = 'testcase';
  135. $lang->my->menu->contribute['menuOrder'][30] = 'testtask';
  136. $lang->my->menu->contribute['menuOrder'][35] = 'audit';
  137. $lang->my->menu->contribute['menuOrder'][40] = 'doc';
  138. if(!$config->enableER) unset($lang->my->menu->contribute['subMenu']->epic, $lang->my->menu->contribute['menuOrder'][12]);
  139. if(!$config->URAndSR) unset($lang->my->menu->contribute['subMenu']->requirement, $lang->my->menu->contribute['menuOrder'][15]);
  140. $lang->my->dividerMenu = ',work,dynamic,';
  141. /* Program menu. */
  142. $lang->program->homeMenu = new stdclass();
  143. $lang->program->homeMenu->browse = array('link' => "{$lang->program->projectView}|program|browse|", 'alias' => 'create,edit', 'subModule' => 'project');
  144. $lang->program->homeMenu->productView = array('link' => "{$lang->program->productView}|program|productview|", 'alias' => 'create,edit', 'subModule' => 'project,product');
  145. $lang->program->homeMenu->kanban = array('link' => "{$lang->program->kanban}|program|kanban|");
  146. $lang->program->menu = new stdclass();
  147. $lang->program->menu->product = array('link' => "{$lang->productCommon}|program|product|programID=%s", 'alias' => 'view');
  148. $lang->program->menu->project = array('link' => "{$lang->projectCommon}|program|project|programID=%s");
  149. $lang->program->menu->personnel = array('link' => "{$lang->personnel->common}|personnel|invest|programID=%s");
  150. $lang->program->menu->stakeholder = array('link' => "{$lang->stakeholder->common}|program|stakeholder|programID=%s", 'alias' => 'createstakeholder');
  151. /* Program menu order. */
  152. $lang->program->menuOrder[5] = 'product';
  153. $lang->program->menuOrder[10] = 'project';
  154. $lang->program->menuOrder[15] = 'personnel';
  155. $lang->program->menuOrder[20] = 'stakeholder';
  156. $lang->program->menu->personnel['subMenu'] = new stdClass();
  157. $lang->program->menu->personnel['subMenu']->invest = array('link' => "{$lang->personnel->invest}|personnel|invest|programID=%s");
  158. $lang->program->menu->personnel['subMenu']->accessible = array('link' => "{$lang->personnel->accessible}|personnel|accessible|programID=%s");
  159. $lang->program->menu->personnel['subMenu']->whitelist = array('link' => "{$lang->whitelist}|personnel|whitelist|objectID=%s", 'alias' => 'addwhitelist');
  160. /* Product menu. */
  161. $lang->product->homeMenu = new stdclass();
  162. $lang->product->homeMenu->home = array('link' => "{$lang->dashboard}|product|index|");
  163. $lang->product->homeMenu->list = array('link' => $lang->product->list . '|product|all|', 'alias' => 'create,batchedit,manageline');
  164. $lang->product->homeMenu->kanban = array('link' => "{$lang->product->kanban}|product|kanban|");
  165. $lang->product->menu = new stdclass();
  166. $lang->product->menu->dashboard = array('link' => "{$lang->dashboard}|product|dashboard|productID=%s", 'icon' => 'icon-dashboard');
  167. $lang->product->menu->epic = array('link' => "{$lang->ERCommon}|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=epic", 'subModule' => 'story', 'icon' => 'icon-epic');
  168. $lang->product->menu->requirement = array('link' => "{$lang->URCommon}|product|browse|productID=%s&branch=&browseType=unclosed&param=0&storyType=requirement", 'alias' => 'batchedit', 'subModule' => 'story', 'icon' => 'icon-requirement');
  169. $lang->product->menu->story = array('link' => "{$lang->SRCommon}|product|browse|productID=%s", 'alias' => 'batchedit', 'subModule' => 'story', 'exclude' => (isset($_GET['storyType']) ? ($_GET['storyType'] == 'requirement' ? 'browse,story-report,story-create,story-batchcreate' : '') : '') . ',batchtotask', 'icon' => 'icon-story' );
  170. $lang->product->menu->plan = array('link' => "{$lang->productplan->shortCommon}|productplan|browse|productID=%s", 'subModule' => 'productplan,bug', 'icon' => 'icon-productplan');
  171. $lang->product->menu->project = array('link' => "{$lang->projectCommon}|product|project|status=all&productID=%s", 'icon' => 'icon-project');
  172. $lang->product->menu->release = array('link' => "{$lang->release->common}|release|browse|productID=%s", 'subModule' => 'release,system', 'icon' => 'icon-tag');
  173. $lang->product->menu->roadmap = array('link' => "{$lang->roadmap}|product|roadmap|productID=%s", 'icon' => 'icon-roadmap');
  174. $lang->product->menu->track = array('link' => "{$lang->track}|product|track|productID=%s", 'icon' => 'icon-kanban-box');
  175. $lang->product->menu->doc = array('link' => "{$lang->doc->common}|doc|productSpace|objectID=%s", 'subModule' => 'doc,api', 'icon' => 'icon-file-text');
  176. $lang->product->menu->dynamic = array('link' => "{$lang->dynamic}|product|dynamic|productID=%s", 'icon' => 'icon-news');
  177. $lang->product->menu->settings = array('link' => "{$lang->settings}|product|view|productID=%s", 'subModule' => 'tree,branch', 'alias' => 'edit,whitelist,addwhitelist', 'icon' => 'icon-cog-outline');
  178. /* Product menu order. */
  179. $lang->product->menuOrder[5] = 'dashboard';
  180. $lang->product->menuOrder[10] = 'epic';
  181. $lang->product->menuOrder[15] = 'requirement';
  182. $lang->product->menuOrder[20] = 'story';
  183. $lang->product->menuOrder[25] = 'plan';
  184. $lang->product->menuOrder[30] = 'track';
  185. $lang->product->menuOrder[35] = 'project';
  186. $lang->product->menuOrder[40] = 'release';
  187. $lang->product->menuOrder[45] = 'roadmap';
  188. $lang->product->menuOrder[50] = 'doc';
  189. $lang->product->menuOrder[55] = 'dynamic';
  190. $lang->product->menuOrder[60] = 'settings';
  191. $lang->product->menuOrder[65] = 'create';
  192. $lang->product->menuOrder[70] = 'all';
  193. $lang->product->menu->settings['subMenu'] = new stdclass();
  194. $lang->product->menu->settings['subMenu']->view = array('link' => "{$lang->overview}|product|view|productID=%s", 'alias' => 'edit');
  195. $lang->product->menu->settings['subMenu']->module = array('link' => "{$lang->module}|tree|browse|product=%s&view=story", 'subModule' => 'tree');
  196. $lang->product->menu->settings['subMenu']->branch = array('link' => "@branch@|branch|manage|product=%s", 'subModule' => 'branch');
  197. $lang->product->menu->settings['subMenu']->whitelist = array('link' => "{$lang->whitelist}|product|whitelist|product=%s", 'subModule' => 'personnel');
  198. $lang->product->dividerMenu = ',epic,track,doc,settings,';
  199. /* Project menu. */
  200. $lang->project->homeMenu = new stdclass();
  201. $lang->project->homeMenu->browse = array('link' => "{$lang->project->list}|project|browse|", 'alias' => 'batchedit,create');
  202. $lang->project->homeMenu->kanban = array('link' => "{$lang->project->kanban}|project|kanban|");
  203. /* Scrum menu. */
  204. $lang->scrum->menu = new stdclass();
  205. $lang->scrum->menu->index = array('link' => "{$lang->dashboard}|project|index|project=%s", 'icon' => 'icon-dashboard');
  206. $lang->scrum->menu->execution = array('link' => "$lang->executionCommon|project|execution|status=undone&projectID=%s", 'exclude' => 'execution-testreport', 'subModule' => 'task', 'icon' => 'icon-run');
  207. $lang->scrum->menu->story = array('link' => "{$lang->common->story}|projectstory|story|projectID=%s", 'subModule' => 'projectstory,tree,epic,requirement', 'alias' => 'story,track', 'exclude' => 'tree-browse', 'icon' => 'icon-story');
  208. $lang->scrum->menu->projectplan = array('link' => "{$lang->productplan->shortCommon}|projectplan|browse|productID=%s", 'subModule' => 'productplan');
  209. $lang->scrum->menu->doc = array('link' => "{$lang->doc->common}|doc|projectSpace|objectID=%s", 'subModule' => 'doc,api', 'icon' => 'icon-file-text');
  210. $lang->scrum->menu->qa = array('link' => "{$lang->qa->common}|project|bug|projectID=%s", 'subModule' => 'testcase,testtask,bug,testreport', 'alias' => 'bug,testtask,testcase,testreport', 'exclude' => 'execution-create,execution-batchedit', 'icon' => 'icon-test');
  211. if(helper::hasFeature('devops')) $lang->scrum->menu->devops = array('link' => "{$lang->devops->common}|repo|browse|repoID=0&branchID=&objectID=%s", 'subModule' => 'repo,mr', 'icon' => 'icon-devops');
  212. $lang->scrum->menu->build = array('link' => "{$lang->build->common}|projectbuild|browse|project=%s", 'subModule' => 'projectbuild', 'icon' => 'icon-wrench');
  213. $lang->scrum->menu->release = array('link' => "{$lang->release->common}|projectrelease|browse|project=%s", 'subModule' => 'projectrelease,system', 'icon' => 'icon-tag');
  214. $lang->scrum->menu->dynamic = array('link' => "$lang->dynamic|project|dynamic|project=%s", 'icon' => 'icon-news');
  215. $lang->scrum->menu->settings = array('link' => "$lang->settings|project|view|project=%s", 'subModule' => 'tree,stakeholder', 'alias' => 'edit,manageproducts,group,managemembers,manageview,managepriv,whitelist,addwhitelist,team,workflowgroup', 'exclude' => 'tree-browsetask', 'icon' => 'icon-cog-outline');
  216. $lang->scrum->dividerMenu = ',execution,programplan,doc,settings,';
  217. /* Scrum menu order. */
  218. $lang->scrum->menuOrder[5] = 'index';
  219. $lang->scrum->menuOrder[10] = 'execution';
  220. $lang->scrum->menuOrder[15] = 'story';
  221. $lang->scrum->menuOrder[18] = 'projectplan';
  222. $lang->scrum->menuOrder[20] = 'qa';
  223. $lang->scrum->menuOrder[25] = 'devops';
  224. $lang->scrum->menuOrder[30] = 'doc';
  225. $lang->scrum->menuOrder[35] = 'build';
  226. $lang->scrum->menuOrder[40] = 'release';
  227. $lang->scrum->menuOrder[50] = 'dynamic';
  228. $lang->scrum->menuOrder[60] = 'settings';
  229. $lang->scrum->menu->qa['subMenu'] = new stdclass();
  230. //$lang->scrum->menu->qa['subMenu']->index = array('link' => "$lang->dashboard|project|qa|projectID=%s");
  231. $lang->scrum->menu->qa['subMenu']->bug = array('link' => "{$lang->bug->common}|project|bug|projectID=%s", 'subModule' => 'bug');
  232. $lang->scrum->menu->qa['subMenu']->testcase = array('link' => "{$lang->testcase->shortCommon}|project|testcase|projectID=%s", 'subModule' => 'testsuite,testcase,caselib,tree');
  233. $lang->scrum->menu->qa['subMenu']->testtask = array('link' => "{$lang->testtask->common}|project|testtask|projectID=%s", 'subModule' => 'testtask', 'class' => 'dropdown dropdown-hover');
  234. $lang->scrum->menu->qa['subMenu']->testreport = array('link' => "{$lang->testreport->common}|project|testreport|projectID=%s", 'subModule' => 'testreport');
  235. $lang->scrum->menu->settings['subMenu'] = new stdclass();
  236. $lang->scrum->menu->settings['subMenu']->view = array('link' => "$lang->overview|project|view|project=%s", 'alias' => 'edit');
  237. $lang->scrum->menu->settings['subMenu']->products = array('link' => "{$lang->productCommon}|project|manageProducts|project=%s", 'alias' => 'manageproducts');
  238. $lang->scrum->menu->settings['subMenu']->members = array('link' => "{$lang->team->common}|project|team|project=%s", 'alias' => 'managemembers,team');
  239. $lang->scrum->menu->settings['subMenu']->whitelist = array('link' => "{$lang->whitelist}|project|whitelist|project=%s", 'subModule' => 'personnel');
  240. $lang->scrum->menu->settings['subMenu']->stakeholder = array('link' => "{$lang->stakeholder->common}|stakeholder|browse|project=%s", 'subModule' => 'stakeholder');
  241. $lang->scrum->menu->settings['subMenu']->group = array('link' => "{$lang->priv}|project|group|project=%s", 'alias' => 'group,manageview,managepriv');
  242. $lang->scrum->menu->settings['subMenu']->module = array('link' => "{$lang->module}|tree|browse|product=%s&view=story");
  243. $lang->scrum->menu->devops['subMenu'] = new stdclass();
  244. $lang->scrum->menu->devops['subMenu']->repo = array('link' => "{$lang->repo->common}|repo|browse|repoID=0&branchID=&objectID=%s", 'subModule' => 'repo', 'exclude' => 'repo-review,repo-browsetag,repo-browsebranch,repo-log,repo-diff');
  245. $lang->scrum->menu->devops['subMenu']->commit = array('link' => "{$lang->repo->commit}|repo|log|repoID=0&branchID=&objectID=%s", 'alias' => 'log,diff');
  246. $lang->scrum->menu->devops['subMenu']->branch = array('link' => "{$lang->repo->branch}|repo|browsebranch|repoID=0&objectID=%s", 'exclude' => 'repo-browse,repo-log');
  247. $lang->scrum->menu->devops['subMenu']->tag = array('link' => "{$lang->repo->tag}|repo|browsetag|repoID=0&objectID=%s", 'exclude' => 'repo-browse,repo-log');
  248. $lang->scrum->menu->devops['subMenu']->mr = array('link' => "{$lang->devops->mr}|mr|browse|repoID=0&mode=status&param=opened&objectID=%s", 'subModule' => 'mr', 'alias' => 'create');
  249. $lang->scrum->menu->devops['menuOrder'][5] = 'repo';
  250. $lang->scrum->menu->devops['menuOrder'][10] = 'commit';
  251. $lang->scrum->menu->devops['menuOrder'][15] = 'branch';
  252. $lang->scrum->menu->devops['menuOrder'][20] = 'tag';
  253. $lang->scrum->menu->devops['menuOrder'][25] = 'mr';
  254. /* Waterfall menu. */
  255. $lang->waterfall->menu = new stdclass();
  256. $lang->waterfall->menu->index = array('link' => "$lang->dashboard|project|index|project=%s", 'icon' => 'icon-dashboard');
  257. $lang->waterfall->menu->execution = array('link' => "{$lang->stage->common}|project|execution|status=undone&projectID=%s", 'subModule' => 'programplan,task', 'icon' => 'icon-waterfall');
  258. $lang->waterfall->menu->story = array('link' => "{$lang->common->story}|projectstory|story|projectID=%s", 'subModule' => 'projectstory,tree,epic,requirement', 'alias' => 'story', 'exclude' => 'projectstory-track,tree-browse', 'icon' => 'icon-story');
  259. $lang->waterfall->menu->design = array('link' => "{$lang->design->common}|design|browse|project=%s", 'icon' => 'icon-design');
  260. $lang->waterfall->menu->qa = array('link' => "{$lang->qa->common}|project|bug|projectID=%s", 'subModule' => 'testcase,testtask,bug,testreport', 'alias' => 'bug,testtask,testcase,testreport', 'icon' => 'icon-test');
  261. $lang->waterfall->menu->doc = array('link' => "{$lang->doc->common}|doc|projectSpace|objectID=%s", 'icon' => 'icon-file-text');
  262. if(helper::hasFeature('devops')) $lang->waterfall->menu->devops = array('link' => "{$lang->devops->common}|repo|browse|repoID=0&branchID=&objectID=%s", 'subModule' => 'repo,mr', 'icon' => 'icon-devops');
  263. $lang->waterfall->menu->build = array('link' => "{$lang->build->common}|projectbuild|browse|project=%s", 'subModule' => 'projectbuild', 'icon' => 'icon-wrench');
  264. $lang->waterfall->menu->release = array('link' => "{$lang->release->common}|projectrelease|browse|project=%s", 'subModule' => 'projectrelease,system', 'icon' => 'icon-tag');
  265. $lang->waterfall->menu->dynamic = array('link' => "$lang->dynamic|project|dynamic|project=%s", 'icon' => 'icon-news');
  266. $lang->waterfall->menu->settings = $lang->scrum->menu->settings;
  267. $lang->waterfall->dividerMenu = ',programplan,build,dynamic,';
  268. /* Waterfall menu order. */
  269. $lang->waterfall->menuOrder[5] = 'index';
  270. $lang->waterfall->menuOrder[15] = 'programplan';
  271. $lang->waterfall->menuOrder[20] = 'execution';
  272. $lang->waterfall->menuOrder[25] = 'story';
  273. $lang->waterfall->menuOrder[30] = 'design';
  274. $lang->waterfall->menuOrder[35] = 'devops';
  275. $lang->waterfall->menuOrder[55] = 'qa';
  276. $lang->waterfall->menuOrder[60] = 'doc';
  277. $lang->waterfall->menuOrder[65] = 'build';
  278. $lang->waterfall->menuOrder[70] = 'release';
  279. $lang->waterfall->menuOrder[80] = 'dynamic';
  280. $lang->waterfall->menuOrder[90] = 'settings';
  281. $lang->waterfall->menu->programplan['subMenu'] = new stdclass();
  282. $lang->waterfall->menu->programplan['subMenu']->lists = array('link' => "{$lang->stage->list}|programplan|browse|projectID=%s&productID=0&type=lists", 'alias' => 'create');
  283. $lang->waterfall->menu->qa['subMenu'] = new stdclass();
  284. $lang->waterfall->menu->qa['subMenu']->bug = array('link' => "{$lang->bug->common}|project|bug|projectID=%s", 'subModule' => 'bug');
  285. $lang->waterfall->menu->qa['subMenu']->testcase = array('link' => "{$lang->testcase->shortCommon}|project|testcase|projectID=%s", 'subModule' => 'testsuite,testcase,caselib,tree');
  286. $lang->waterfall->menu->qa['subMenu']->testtask = array('link' => "{$lang->testtask->common}|project|testtask|projectID=%s", 'subModule' => 'testtask', 'class' => 'dropdown dropdown-hover');
  287. $lang->waterfall->menu->qa['subMenu']->testreport = array('link' => "{$lang->testreport->common}|project|testreport|projectID=%s", 'subModule' => 'testreport');
  288. $lang->waterfall->menu->design['subMenu'] = new stdclass();
  289. $lang->waterfall->menu->design['subMenu']->all = array('link' => "$lang->all|design|browse|projectID=%s&productID=0&browseType=all");
  290. $lang->waterfall->menu->design['subMenu']->hlds = array('link' => "{$lang->design->HLDS}|design|browse|projectID=%s&productID=0&browseType=HLDS");
  291. $lang->waterfall->menu->design['subMenu']->dds = array('link' => "{$lang->design->DDS}|design|browse|projectID=%s&productID=0&browseType=DDS");
  292. $lang->waterfall->menu->design['subMenu']->dbds = array('link' => "{$lang->design->DBDS}|design|browse|projectID=%s&productID=0&browseType=DBDS");
  293. $lang->waterfall->menu->design['subMenu']->ads = array('link' => "{$lang->design->ADS}|design|browse|projectID=%s&productID=0&browseType=ADS");
  294. $lang->waterfall->menu->devops['subMenu'] = new stdclass();
  295. $lang->waterfall->menu->devops['subMenu']->repo = array('link' => "{$lang->repo->common}|repo|browse|repoID=0&branchID=&objectID=%s", 'subModule' => 'repo', 'exclude' => 'repo-review,repo-browsetag,repo-browsebranch,repo-log,repo-diff');
  296. $lang->waterfall->menu->devops['subMenu']->commit = array('link' => "{$lang->repo->commit}|repo|log|repoID=0&branchID=&objectID=%s", 'alias' => 'log,diff');
  297. $lang->waterfall->menu->devops['subMenu']->branch = array('link' => "{$lang->repo->branch}|repo|browsebranch|repoID=0&objectID=%s", 'exclude' => 'repo-browse,repo-log');
  298. $lang->waterfall->menu->devops['subMenu']->tag = array('link' => "{$lang->repo->tag}|repo|browsetag|repoID=0&objectID=%s", 'exclude' => 'repo-browse,repo-log');
  299. $lang->waterfall->menu->devops['subMenu']->mr = array('link' => "{$lang->devops->mr}|mr|browse|repoID=0&mode=status&param=opened&objectID=%s", 'subModule' => 'mr', 'alias' => 'create');
  300. $lang->waterfall->menu->devops['menuOrder'][5] = 'repo';
  301. $lang->waterfall->menu->devops['menuOrder'][10] = 'commit';
  302. $lang->waterfall->menu->devops['menuOrder'][15] = 'branch';
  303. $lang->waterfall->menu->devops['menuOrder'][20] = 'tag';
  304. $lang->waterfall->menu->devops['menuOrder'][25] = 'mr';
  305. /* Kanban project menu. */
  306. $lang->kanbanProject = new stdclass();
  307. $lang->kanbanProject->menu = new stdclass();
  308. $lang->kanbanProject->menu->index = array('link' => "{$lang->kanban->common}|project|index|project=%s", 'icon' => 'icon-kanban');
  309. $lang->kanbanProject->menu->build = array('link' => "{$lang->build->common}|projectbuild|browse|project=%s", 'subModule' => 'projectbuild', 'icon' => 'icon-wrench');
  310. $lang->kanbanProject->menu->settings = array('link' => "$lang->settings|project|view|project=%s", 'subModule' => 'tree,stakeholder', 'alias' => 'edit,manageproducts,group,managemembers,manageview,managepriv,whitelist,addwhitelist,team', 'icon' => 'icon-cog-outline');
  311. $lang->kanbanProject->dividerMenu = '';
  312. $lang->kanbanProject->menuOrder = array();
  313. $lang->kanbanProject->menuOrder[5] = 'index';
  314. $lang->kanbanProject->menuOrder[10] = 'build';
  315. $lang->kanbanProject->menuOrder[20] = 'settings';
  316. $lang->kanbanProject->menu->settings['subMenu'] = new stdclass();
  317. $lang->kanbanProject->menu->settings['subMenu']->view = array('link' => "$lang->overview|project|view|project=%s", 'alias' => 'edit');
  318. $lang->kanbanProject->menu->settings['subMenu']->products = array('link' => "{$lang->productCommon}|project|manageProducts|project=%s", 'alias' => 'manageproducts');
  319. $lang->kanbanProject->menu->settings['subMenu']->members = array('link' => "{$lang->team->common}|project|team|project=%s", 'alias' => 'managemembers,team');
  320. $lang->kanbanProject->menu->settings['subMenu']->whitelist = array('link' => "{$lang->whitelist}|project|whitelist|project=%s", 'subModule' => 'personnel');
  321. $lang->kanbanProject->menu->settings['subMenu']->module = array('link' => "{$lang->module}|tree|browse|product=%s&view=story");
  322. /* Execution menu. */
  323. $lang->execution->homeMenu = new stdclass();
  324. $lang->execution->homeMenu->all = array('link' => "{$lang->execution->all}|execution|all|", 'alias' => 'create,batchedit', 'exclude' => 'mr-create');
  325. $lang->execution->homeMenu->executionkanban = array('link' => "{$lang->execution->executionKanban}|execution|executionkanban|");
  326. $lang->execution->menu = new stdclass();
  327. $lang->execution->menu->task = array('link' => "{$lang->task->common}|execution|task|executionID=%s", 'subModule' => 'task,tree', 'alias' => 'importtask,importbug', 'exclude' => 'tree-browse', 'icon' => 'icon-task-list');
  328. $lang->execution->menu->kanban = array('link' => "$lang->executionKanban|execution|taskkanban|executionID=%s", 'icon' => 'icon-kanban');
  329. $lang->execution->menu->burn = array('link' => "$lang->burn|execution|burn|executionID=%s", 'icon' => 'icon-chart-line-down flip-x');
  330. $lang->execution->menu->view = array('link' => "$lang->view|execution|grouptask|executionID=%s", 'alias' => 'grouptask,tree,taskeffort,gantt,calendar,relation,maintainrelation,createrelation,batcheditrelation', 'icon' => 'icon-group-view');
  331. if($config->edition != 'open') $lang->execution->menu->view = array('link' => "$lang->view|execution|gantt|executionID=%s", 'alias' => 'grouptask,tree,taskeffort,gantt,calendar,relation,maintainrelation,createrelation,batcheditrelation', 'icon' => 'icon-group-view');
  332. $lang->execution->menu->story = array('link' => "{$lang->common->story}|execution|story|executionID=%s", 'subModule' => 'story,requirement,epic', 'alias' => 'storyview,storykanban,linkstory,batchtotask', 'icon' => 'icon-story');
  333. $lang->execution->menu->qa = array('link' => "{$lang->qa->common}|execution|bug|executionID=%s", 'subModule' => 'bug,testcase,testtask,testreport', 'alias' => 'qa,bug,testcase,testtask,testreport', 'icon' => 'icon-test');
  334. if(helper::hasFeature('devops')) $lang->execution->menu->devops = array('link' => "{$lang->devops->common}|repo|browse|repoID=0&branchID=&objectID=%s", 'subModule' => 'repo,mr', 'alias' => 'create', 'icon' => 'icon-devops');
  335. $lang->execution->menu->doc = array('link' => "{$lang->doc->common}|execution|doc|objectID=%s", 'subModule' => 'doc', 'icon' => 'icon-file-text');
  336. $lang->execution->menu->build = array('link' => "{$lang->build->common}|execution|build|executionID=%s", 'subModule' => 'build', 'icon' => 'icon-wrench');
  337. $lang->execution->menu->action = array('link' => "$lang->dynamic|execution|dynamic|executionID=%s", 'icon' => 'icon-volume-up', 'icon' => 'icon-news');
  338. $lang->execution->menu->settings = array('link' => "$lang->settings|execution|view|executionID=%s", 'subModule' => 'personnel', 'alias' => 'edit,manageproducts,team,whitelist,addwhitelist,managemembers', 'class' => 'dropdown dropdown-hover', 'icon' => 'icon-cog-outline');
  339. $lang->execution->menu->more = array('link' => "$lang->more|execution|more|%s", 'icon' => 'icon-more-vertical');
  340. /* Execution menu order. */
  341. $lang->execution->menuOrder[5] = 'task';
  342. $lang->execution->menuOrder[10] = 'kanban';
  343. $lang->execution->menuOrder[15] = 'CFD';
  344. $lang->execution->menuOrder[20] = 'burn';
  345. $lang->execution->menuOrder[25] = 'view';
  346. $lang->execution->menuOrder[30] = 'story';
  347. $lang->execution->menuOrder[35] = 'qa';
  348. $lang->execution->menuOrder[40] = 'repo';
  349. $lang->execution->menuOrder[45] = 'devops';
  350. $lang->execution->menuOrder[50] = 'doc';
  351. $lang->execution->menuOrder[55] = 'build';
  352. $lang->execution->menuOrder[60] = 'release';
  353. $lang->execution->menuOrder[65] = 'action';
  354. $lang->execution->menuOrder[70] = 'settings';
  355. $lang->execution->menuOrder[75] = 'more';
  356. $lang->execution->menu->view['subMenu'] = new stdclass();
  357. $lang->execution->menu->view['subMenu']->groupTask = "$lang->groupView|execution|grouptask|executionID=%s";
  358. $lang->execution->menu->view['subMenu']->tree = "$lang->treeView|execution|tree|executionID=%s";
  359. $lang->execution->menu->view['menuOrder'][10] = 'groupTask';
  360. $lang->execution->menu->view['menuOrder'][15] = 'tree';
  361. $lang->execution->menu->qa['subMenu'] = new stdclass();
  362. //$lang->execution->menu->qa['subMenu']->qa = array('link' => "$lang->dashboard|execution|qa|executionID=%s");
  363. $lang->execution->menu->qa['subMenu']->bug = array('link' => "{$lang->bug->common}|execution|bug|executionID=%s", 'subModule' => 'bug');
  364. $lang->execution->menu->qa['subMenu']->testcase = array('link' => "{$lang->testcase->shortCommon}|execution|testcase|executionID=%s", 'subModule' => 'testcase');
  365. $lang->execution->menu->qa['subMenu']->testtask = array('link' => "{$lang->testtask->common}|execution|testtask|executionID=%s", 'subModule' => 'testtask');
  366. $lang->execution->menu->qa['subMenu']->testreport = array('link' => "{$lang->testreport->common}|execution|testreport|exeutionID=%s", 'subModule' => 'testreport');
  367. $lang->execution->menu->qa['menuOrder'][5] = 'bug';
  368. $lang->execution->menu->qa['menuOrder'][10] = 'testcase';
  369. $lang->execution->menu->qa['menuOrder'][15] = 'testtask';
  370. $lang->execution->menu->qa['menuOrder'][20] = 'testreport';
  371. $lang->execution->menu->devops['subMenu'] = new stdclass();
  372. $lang->execution->menu->devops['subMenu']->repo = array('link' => "{$lang->repo->common}|repo|browse|repoID=0&branchID=&objectID=%s", 'subModule' => 'repo', 'exclude' => 'repo-review,repo-browsetag,repo-browsebranch,repo-log,repo-diff');
  373. $lang->execution->menu->devops['subMenu']->commit = array('link' => "{$lang->repo->commit}|repo|log|repoID=0&branchID=&objectID=%s", 'alias' => 'log,diff');
  374. $lang->execution->menu->devops['subMenu']->branch = array('link' => "{$lang->repo->branch}|repo|browsebranch|repoID=0&objectID=%s", 'exclude' => 'repo-browse,repo-log');
  375. $lang->execution->menu->devops['subMenu']->tag = array('link' => "{$lang->repo->tag}|repo|browsetag|repoID=0&objectID=%s", 'exclude' => 'repo-browse,repo-log');
  376. $lang->execution->menu->devops['subMenu']->mr = array('link' => "{$lang->devops->mr}|mr|browse|repoID=0&mode=status&param=opened&objectID=%s", 'subModule' => 'mr', 'alias' => 'create');
  377. $lang->execution->menu->devops['menuOrder'][5] = 'repo';
  378. $lang->execution->menu->devops['menuOrder'][10] = 'commit';
  379. $lang->execution->menu->devops['menuOrder'][15] = 'branch';
  380. $lang->execution->menu->devops['menuOrder'][20] = 'tag';
  381. $lang->execution->menu->devops['menuOrder'][25] = 'mr';
  382. $lang->execution->menu->settings['subMenu'] = new stdclass();
  383. $lang->execution->menu->settings['subMenu']->view = array('link' => "$lang->overview|execution|view|executionID=%s", 'subModule' => 'view', 'alias' => 'edit,start,suspend,putoff,close');
  384. $lang->execution->menu->settings['subMenu']->products = array('link' => "$lang->productCommon|execution|manageproducts|executionID=%s");
  385. $lang->execution->menu->settings['subMenu']->team = array('link' => "{$lang->team->common}|execution|team|executionID=%s", 'alias' => 'managemembers');
  386. $lang->execution->menu->settings['subMenu']->whitelist = array('link' => "$lang->whitelist|execution|whitelist|executionID=%s", 'subModule' => 'personnel', 'alias' => 'addwhitelist');
  387. $lang->execution->dividerMenu = ',story,build,more,';
  388. $lang->project->noMultiple = new stdclass();
  389. $lang->project->noMultiple->scrum = new stdclass();
  390. $lang->project->noMultiple->scrum->menu = new stdclass();
  391. $lang->project->noMultiple->scrum->menu->task = $lang->execution->menu->task;
  392. $lang->project->noMultiple->scrum->menu->kanban = $lang->execution->menu->kanban;
  393. $lang->project->noMultiple->scrum->menu->burn = $lang->execution->menu->burn;
  394. $lang->project->noMultiple->scrum->menu->view = $lang->execution->menu->view;
  395. $lang->project->noMultiple->scrum->menu->story = $lang->execution->menu->story;
  396. $lang->project->noMultiple->scrum->menu->qa = $lang->scrum->menu->qa;
  397. $lang->project->noMultiple->scrum->menu->devops = $lang->scrum->menu->devops;
  398. $lang->project->noMultiple->scrum->menu->doc = $lang->scrum->menu->doc;
  399. $lang->project->noMultiple->scrum->menu->build = $lang->scrum->menu->build;
  400. $lang->project->noMultiple->scrum->menu->release = $lang->scrum->menu->release;
  401. $lang->project->noMultiple->scrum->menu->settings = $lang->scrum->menu->settings;
  402. $lang->project->noMultiple->kanban = new stdclass();
  403. $lang->project->noMultiple->kanban->menu = new stdclass();
  404. $lang->project->noMultiple->kanban->menu->kanban = array('link' => "{$lang->kanban->common}|execution|kanban|executionID=%s");
  405. $lang->project->noMultiple->kanban->menu->CFD = array('link' => "{$lang->execution->CFD}|execution|cfd|executionID=%s");
  406. $lang->project->noMultiple->kanban->menu->build = $lang->kanbanProject->menu->build;
  407. $lang->project->noMultiple->kanban->menu->settings = $lang->kanbanProject->menu->settings;
  408. $lang->project->noMultiple->scrum->dividerMenu = ',story,build,';
  409. $lang->project->noMultiple->kanban->dividerMenu = '';
  410. $lang->project->noMultiple->scrum->menuOrder[5] = 'task';
  411. $lang->project->noMultiple->scrum->menuOrder[10] = 'kanban';
  412. $lang->project->noMultiple->scrum->menuOrder[15] = 'burn';
  413. $lang->project->noMultiple->scrum->menuOrder[20] = 'view';
  414. $lang->project->noMultiple->scrum->menuOrder[25] = 'story';
  415. $lang->project->noMultiple->scrum->menuOrder[30] = 'qa';
  416. $lang->project->noMultiple->scrum->menuOrder[35] = 'devops';
  417. $lang->project->noMultiple->scrum->menuOrder[40] = 'doc';
  418. $lang->project->noMultiple->scrum->menuOrder[45] = 'build';
  419. $lang->project->noMultiple->scrum->menuOrder[48] = 'release';
  420. $lang->project->noMultiple->scrum->menuOrder[55] = 'dynamic';
  421. $lang->project->noMultiple->scrum->menuOrder[65] = 'settings';
  422. $lang->project->noMultiple->kanban->menuOrder[5] = 'kanban';
  423. $lang->project->noMultiple->kanban->menuOrder[10] = 'CFD';
  424. $lang->project->noMultiple->kanban->menuOrder[15] = 'build';
  425. $lang->project->noMultiple->kanban->menuOrder[25] = 'settings';
  426. /* QA menu.*/
  427. $lang->qa->menu = new stdclass();
  428. $lang->qa->menu->index = array('link' => "$lang->dashboard|qa|index");
  429. $lang->qa->menu->bug = array('link' => "{$lang->bug->common}|bug|browse|productID=%s", 'subModule' => 'bug');
  430. $lang->qa->menu->testcase = array('link' => "{$lang->testcase->shortCommon}|testcase|browse|productID=%s", 'subModule' => 'testcase,story');
  431. $lang->qa->menu->testsuite = array('link' => "{$lang->testcase->testsuite}|testsuite|browse|productID=%s", 'subModule' => 'testsuite');
  432. $lang->qa->menu->testtask = array('link' => "{$lang->testtask->common}|testtask|browse|productID=%s", 'subModule' => 'testtask,build', 'alias' => 'view,edit,linkcase,cases,start,close,batchrun,groupcase,report,importunitresult', 'exclude' => 'testtask-browseunits');
  433. $lang->qa->menu->report = array('link' => "{$lang->testreport->common}|testreport|browse|productID=%s", 'subModule' => 'testreport');
  434. $lang->qa->menu->caselib = array('link' => "{$lang->testcase->caselib}|caselib|browse|libID=0", 'subModule' => 'caselib');
  435. $lang->qa->menu->automation = array('link' => "{$lang->automation->common}|zanode|instruction", 'subModule' => 'instruction,zahost,zanode');
  436. /* QA menu order. */
  437. $lang->qa->menuOrder[5] = 'product';
  438. $lang->qa->menuOrder[10] = 'index';
  439. $lang->qa->menuOrder[15] = 'bug';
  440. $lang->qa->menuOrder[20] = 'testcase';
  441. $lang->qa->menuOrder[25] = 'testsuite';
  442. $lang->qa->menuOrder[30] = 'testtask';
  443. $lang->qa->menuOrder[35] = 'report';
  444. $lang->qa->menuOrder[40] = 'caselib';
  445. $lang->qa->menuOrder[45] = 'automation';
  446. $lang->qa->dividerMenu = ',bug,testtask,caselib,automation,';
  447. $lang->qa->menu->automation['subMenu'] = new stdclass();
  448. $lang->qa->menu->automation['subMenu']->instruction = array('link' => "{$lang->zanode->instruction}|zanode|instruction", 'subModule' => 'instruction');
  449. $lang->qa->menu->automation['subMenu']->zahost = array('link' => "{$lang->zahost->common}|zahost|browse", 'subModule' => 'zahost', 'exclude' => 'zahost-instruction');
  450. $lang->qa->menu->automation['subMenu']->zanode = array('link' => "{$lang->zanode->common}|zanode|browse", 'subModule' => 'zanode', 'exclude' => 'zanode-instruction, zahost-browse');
  451. /* DevOps menu. */
  452. $lang->devops->homeMenu = new stdclass();
  453. $lang->devops->homeMenu->repos = array('link' => "{$lang->devops->repo}|repo|maintain", 'alias' => 'create,edit,import,createrepo', 'exclude' => 'repo-setrules');
  454. $lang->devops->homeMenu->compile = array('link' => "{$lang->devops->compile}|job|browse", 'subModule' => 'compile,job');
  455. $lang->devops->homeMenu->deploy = array('link' => "{$lang->devops->host}|host|browse", 'alias' => 'create,edit,view,treemap,changestatus,group', 'subModule' => 'tree,serverroom');
  456. $configureUrl = 'space|browse';
  457. if($config->inQuickon) $configureUrl = 'system|dashboard';
  458. $lang->devops->homeMenu->configure = array('link' => "{$lang->devops->configure}|{$configureUrl}", 'subModule' => 'system,store,instance,repo,space,gitlab,gitea,gogs,jenkins,sonarqube', 'exclude' => 'repo-maintain,repo-browsesystem,system-view,repo-create,repo-createrepo,repo-import,repo-edit');
  459. $lang->devops->menu = new stdclass();
  460. $lang->devops->menu->code = array('link' => "{$lang->repocode->common}|repo|browse|repoID=%s", 'subModule' => 'repo', 'exclude' => 'repo-review,repo-browsetag,repo-browsebranch,repo-log,repo-diff,repo-revision,repo-setrules');
  461. $lang->devops->menu->commit = array('link' => "{$lang->repo->commit}|repo|log|repoID=%s", 'alias' => 'diff');
  462. $lang->devops->menu->branch = array('link' => "{$lang->repo->branch}|repo|browsebranch|repoID=%s");
  463. $lang->devops->menu->tag = array('link' => "{$lang->repo->tag}|repo|browsetag|repoID=%s");
  464. $lang->devops->menu->mr = array('link' => "{$lang->devops->mr}|mr|browse|repoID=%s");
  465. $lang->devops->menu->compile = array('link' => "{$lang->devops->compile}|job|browse|repoID=%s", 'subModule' => 'compile,job');
  466. $lang->devops->homeMenu->configure['subMenu'] = new stdclass();
  467. if($config->inQuickon) $lang->devops->homeMenu->configure['subMenu']->monitor = array('link' => "{$lang->devops->monitor}|system|dashboard", 'alias' => 'dashboard');
  468. if($config->inQuickon) $lang->devops->homeMenu->configure['subMenu']->platform = array('link' => "{$lang->devops->platform}|system|dblist", 'subModule' => 'system', 'exclude' => 'system-dashboard');
  469. $lang->devops->homeMenu->configure['subMenu']->apps = array('link' => "{$lang->app->common}|space|browse", 'subModule' => 'instance,gitlab,gitea,gogs,jenkins,sonarqube', 'alias' => 'createapplication,binduser,edit');
  470. if($config->inQuickon) $lang->devops->homeMenu->configure['subMenu']->store = array('link' => "{$lang->devops->components}|store|browse", 'subModule' => 'store');
  471. $lang->devops->homeMenu->configure['subMenu']->rules = array('link' => "{$lang->devops->rules}|repo|setrules|", 'subModule' => 'repo');
  472. if($config->inQuickon) $lang->devops->homeMenu->configure['menuOrder'][5] = 'monitor';
  473. if($config->inQuickon) $lang->devops->homeMenu->configure['menuOrder'][10] = 'platform';
  474. $lang->devops->homeMenu->configure['menuOrder'][15] = 'apps';
  475. if($config->inQuickon) $lang->devops->homeMenu->configure['menuOrder'][20] = 'store';
  476. $lang->devops->homeMenu->configure['menuOrder'][25] = 'rules';
  477. /* The menu order $lang->devops->menuOrder[30] is a reserved position for 'artifactrepo'. */
  478. $lang->devops->menuOrder[10] = 'repos';
  479. $lang->devops->menuOrder[15] = 'code';
  480. $lang->devops->menuOrder[20] = 'commit';
  481. $lang->devops->menuOrder[25] = 'branch';
  482. $lang->devops->menuOrder[35] = 'tag';
  483. $lang->devops->menuOrder[40] = 'mr';
  484. $lang->devops->menuOrder[45] = 'compile';
  485. $lang->devops->menuOrder[55] = 'deploy';
  486. $lang->devops->menuOrder[70] = 'apps';
  487. $lang->devops->menuOrder[75] = 'configure';
  488. $lang->devops->dividerMenu = ',configure,';
  489. /* Kanban menu. */
  490. $lang->kanban->menu = new stdclass();
  491. /* Doc menu. */
  492. $lang->doc->menu = new stdclass();
  493. $lang->doc->menu->dashboard = array('link' => "{$lang->dashboard}|doc|index");
  494. $lang->doc->menu->quick = array('link' => "{$lang->doc->quick}|doc|quick");
  495. $lang->doc->menu->my = array('link' => "{$lang->doc->mySpace}|doc|mySpace|", 'alias' => 'myspace');
  496. $lang->doc->menu->product = array('link' => "{$lang->doc->productSpace}|doc|productSpace|", 'alias' => 'productspace');
  497. $lang->doc->menu->project = array('link' => "{$lang->doc->projectSpace}|doc|projectSpace|", 'alias' => 'projectspace');
  498. $lang->doc->menu->api = array('link' => "{$lang->doc->apiSpace}|api|index", 'alias' => '', 'exclude' => 'index');
  499. $lang->doc->menu->team = array('link' => "{$lang->doc->teamSpace}|doc|teamSpace|", 'alias' => 'teamspace');
  500. $lang->doc->dividerMenu = ',product,';
  501. /* Doc menu order. */
  502. $lang->doc->menuOrder[5] = 'dashboard';
  503. $lang->doc->menuOrder[7] = 'quick';
  504. $lang->doc->menuOrder[10] = 'my';
  505. $lang->doc->menuOrder[15] = 'team';
  506. $lang->doc->menuOrder[20] = 'product';
  507. $lang->doc->menuOrder[25] = 'project';
  508. $lang->doc->menuOrder[30] = 'api';
  509. /* BI menu.*/
  510. $lang->bi->menu = new stdclass();
  511. $lang->bi->menu->screen = array('link' => "{$lang->screen->common}|screen|browse");
  512. $lang->bi->menu->pivot = array('link' => "{$lang->pivot->common}|pivot|preview");
  513. $lang->bi->menu->chart = array('link' => "{$lang->chart->common}|chart|preview");
  514. $lang->bi->menu->metric = array('link' => "{$lang->metric->common}|metric|preview");
  515. $lang->bi->dividerMenu = ',metric,';
  516. /* BI menu order. */
  517. $lang->bi->menuOrder[5] = 'screen';
  518. $lang->bi->menuOrder[10] = 'pivot';
  519. $lang->bi->menuOrder[15] = 'chart';
  520. $lang->bi->menuOrder[20] = 'metric';
  521. /* Company menu.*/
  522. $lang->company->menu = new stdclass();
  523. $lang->company->menu->browseUser = array('link' => "{$lang->user->common}|company|browse", 'subModule' => ',user,');
  524. $lang->company->menu->dept = array('link' => "{$lang->dept->common}|dept|browse", 'subModule' => 'dept');
  525. $lang->company->menu->browseGroup = array('link' => "$lang->priv|group|browse", 'subModule' => 'group');
  526. /* Company menu order. */
  527. $lang->company->menuOrder[5] = 'browseUser';
  528. $lang->company->menuOrder[10] = 'dept';
  529. $lang->company->menuOrder[15] = 'browseGroup';
  530. $lang->company->menuOrder[20] = 'addGroup';
  531. $lang->company->menuOrder[25] = 'batchAddUser';
  532. $lang->company->menuOrder[30] = 'addUser';
  533. /* Admin menu. */
  534. $lang->admin->menu = new stdclass();
  535. $lang->subject->menu = new stdclass();
  536. $lang->subject->menu->storyConcept = array('link' => "{$lang->storyConcept}|custom|browsestoryconcept|");
  537. /* System menu. */
  538. $lang->system->menu = new stdclass();
  539. $lang->system->menu->team = array('link' => "{$lang->team->common}|my|team|", 'subModule' => 'user');
  540. $lang->system->menu->dynamic = array('link' => "$lang->dynamic|company|dynamic|");
  541. $lang->system->menu->view = array('link' => "{$lang->company->common}|company|view");
  542. /* System menu order. */
  543. $lang->system->menuOrder[5] = 'team';
  544. $lang->system->menuOrder[10] = 'calendar';
  545. $lang->system->menuOrder[15] = 'dynamic';
  546. $lang->system->menuOrder[20] = 'view';
  547. /* AI menu. */
  548. $lang->aiapp->menu = new stdclass();
  549. $lang->aiapp->menu->conversation = array('link' => "{$lang->aiapp->conversation}|aiapp|conversation|");
  550. $lang->aiapp->menu->zentaoAgent = array('link' => "{$lang->aiapp->zentaoAgent}|ai|prompts|", 'alias' => 'promptview,promptassignrole,promptselectdatasource,promptsetpurpose,promptsettargetform,promptfinalize');
  551. $lang->aiapp->menu->generalAgent = array('link' => "{$lang->aiapp->generalAgent}|aiapp|square|", 'alias' => 'view,miniprograms,editMiniProgramCategory,miniprogramview,createMiniProgram,editminiprogram,configuredMiniProgram');
  552. $lang->aiapp->menu->models = array('link' => "{$lang->aiapp->models}|aiapp|models|");
  553. $lang->aiapp->menu->config = array('link' => "{$lang->aiapp->config}|zai|setting|", 'alias' => 'vectorized');
  554. $lang->aiapp->dividerMenu = ',zentaoAgent,models,';
  555. /* AI menu order. */
  556. $lang->aiapp->menuOrder[5] = 'conversation';
  557. $lang->aiapp->menuOrder[10] = 'zentaoAgent';
  558. $lang->aiapp->menuOrder[15] = 'generalAgent';
  559. $lang->aiapp->menuOrder[20] = 'models';
  560. $lang->aiapp->menuOrder[25] = 'config';
  561. /* Nav group.*/
  562. $lang->navGroup = new stdclass();
  563. $lang->navGroup->my = 'my';
  564. $lang->navGroup->effort = 'my';
  565. $lang->navGroup->score = 'my';
  566. $lang->navGroup->todo = 'my';
  567. $lang->navGroup->contact = 'my';
  568. $lang->navGroup->personalsettings = 'my';
  569. $lang->navGroup->program = 'program';
  570. $lang->navGroup->personnel = 'program';
  571. $lang->navGroup->programstakeholder = 'program';
  572. $lang->navGroup->product = 'product';
  573. $lang->navGroup->productplan = 'product';
  574. $lang->navGroup->release = 'product';
  575. $lang->navGroup->branch = 'product';
  576. $lang->navGroup->epic = 'product';
  577. $lang->navGroup->story = 'product';
  578. $lang->navGroup->requirement = 'product';
  579. $lang->navGroup->productsettings = 'product';
  580. $lang->navGroup->project = 'project';
  581. $lang->navGroup->deploy = 'project';
  582. $lang->navGroup->programplan = 'project';
  583. $lang->navGroup->design = 'project';
  584. $lang->navGroup->stakeholder = 'project';
  585. $lang->navGroup->projectsettings = 'project';
  586. $lang->navGroup->projectreview = 'project';
  587. $lang->navGroup->projecttrack = 'project';
  588. $lang->navGroup->projectqa = 'project';
  589. $lang->navGroup->projectbuild = 'project';
  590. $lang->navGroup->projectstory = 'project';
  591. $lang->navGroup->projectplan = 'project';
  592. $lang->navGroup->review = 'project';
  593. $lang->navGroup->reviewissue = 'project';
  594. $lang->navGroup->pssp = 'project';
  595. $lang->navGroup->auditplan = 'project';
  596. $lang->navGroup->cm = 'project';
  597. $lang->navGroup->nc = 'project';
  598. $lang->navGroup->projectrelease = 'project';
  599. $lang->navGroup->milestone = 'project';
  600. $lang->navGroup->researchplan = 'project';
  601. $lang->navGroup->workestimation = 'project';
  602. $lang->navGroup->gapanalysis = 'project';
  603. $lang->navGroup->execution = 'execution';
  604. $lang->navGroup->task = 'execution';
  605. $lang->navGroup->build = 'execution';
  606. $lang->navGroup->team = 'execution';
  607. $lang->navGroup->executionview = 'execution';
  608. $lang->navGroup->executiongantt = 'execution';
  609. $lang->navGroup->executionkanban = 'execution';
  610. $lang->navGroup->executionburn = 'execution';
  611. $lang->navGroup->executioncfd = 'execution';
  612. $lang->navGroup->executionstory = 'execution';
  613. $lang->navGroup->executionqa = 'execution';
  614. $lang->navGroup->executionsettings = 'execution';
  615. $lang->navGroup->managespace = 'kanban';
  616. $lang->navGroup->kanbanspace = 'kanban';
  617. $lang->navGroup->kanban = 'kanban';
  618. $lang->navGroup->kanbanregion = 'kanban';
  619. $lang->navGroup->kanbanlane = 'kanban';
  620. $lang->navGroup->kanbancolumn = 'kanban';
  621. $lang->navGroup->kanbancard = 'kanban';
  622. $lang->navGroup->doc = 'doc';
  623. $lang->navGroup->doclib = 'doc';
  624. $lang->navGroup->api = 'doc';
  625. //$lang->navGroup->doctemplate = 'doc';
  626. $lang->navGroup->screen = 'bi';
  627. $lang->navGroup->pivot = 'bi';
  628. $lang->navGroup->chart = 'bi';
  629. $lang->navGroup->bidesign = 'bi';
  630. $lang->navGroup->report = 'bi';
  631. $lang->navGroup->metric = 'bi';
  632. $lang->navGroup->qa = 'qa';
  633. $lang->navGroup->bug = 'qa';
  634. $lang->navGroup->testcase = 'qa';
  635. $lang->navGroup->testtask = 'qa';
  636. $lang->navGroup->zahost = 'qa';
  637. $lang->navGroup->zanode = 'qa';
  638. $lang->navGroup->testreport = 'qa';
  639. $lang->navGroup->testcase = 'qa';
  640. $lang->navGroup->testtask = 'qa';
  641. $lang->navGroup->testsuite = 'qa';
  642. $lang->navGroup->caselib = 'qa';
  643. $lang->navGroup->devops = 'devops';
  644. $lang->navGroup->repo = 'devops';
  645. $lang->navGroup->repo_setRules = 'admin';
  646. $lang->navGroup->job = 'devops';
  647. $lang->navGroup->jenkins = 'devops';
  648. $lang->navGroup->mr = 'devops';
  649. $lang->navGroup->gitlab = 'devops';
  650. $lang->navGroup->gogs = 'devops';
  651. $lang->navGroup->gitea = 'devops';
  652. $lang->navGroup->sonarqube = 'devops';
  653. $lang->navGroup->sonarqubeproject = 'devops';
  654. $lang->navGroup->compile = 'devops';
  655. $lang->navGroup->ci = 'devops';
  656. $lang->navGroup->svn = 'devops';
  657. $lang->navGroup->git = 'devops';
  658. $lang->navGroup->app = 'devops';
  659. $lang->navGroup->pipeline = 'devops';
  660. $lang->navGroup->devopssetting = 'devops';
  661. $lang->navGroup->space = 'devops';
  662. $lang->navGroup->store = 'devops';
  663. $lang->navGroup->instance = 'devops';
  664. $lang->navGroup->deploy = 'devops';
  665. $lang->navGroup->host = 'devops';
  666. $lang->navGroup->company = 'system';
  667. $lang->navGroup->systemteam = 'system';
  668. $lang->navGroup->systemschedule = 'system';
  669. $lang->navGroup->systemeffort = 'system';
  670. $lang->navGroup->systemdynamic = 'system';
  671. $lang->navGroup->systemcompany = 'system';
  672. $lang->navGroup->dataaccess = 'system';
  673. $lang->navGroup->attend = 'attend';
  674. $lang->navGroup->leave = 'attend';
  675. $lang->navGroup->makeup = 'attend';
  676. $lang->navGroup->overtime = 'attend';
  677. $lang->navGroup->lieu = 'attend';
  678. $lang->navGroup->admin = 'admin';
  679. $lang->navGroup->dept = 'admin';
  680. $lang->navGroup->user = 'admin';
  681. $lang->navGroup->group = 'admin';
  682. $lang->navGroup->dept = 'admin';
  683. $lang->navGroup->webhook = 'admin';
  684. $lang->navGroup->sms = 'admin';
  685. $lang->navGroup->message = 'admin';
  686. $lang->navGroup->custom = 'admin';
  687. $lang->navGroup->cron = 'admin';
  688. $lang->navGroup->backup = 'admin';
  689. $lang->navGroup->mail = 'admin';
  690. $lang->navGroup->dev = 'admin';
  691. $lang->navGroup->editor = 'admin';
  692. $lang->navGroup->entry = 'admin';
  693. $lang->navGroup->extension = 'admin';
  694. $lang->navGroup->action = 'admin';
  695. $lang->navGroup->convert = 'admin';
  696. $lang->navGroup->stage = 'admin';
  697. $lang->navGroup->deliverable = 'admin';
  698. $lang->navGroup->featureswitch = 'admin';
  699. $lang->navGroup->importdata = 'admin';
  700. $lang->navGroup->systemsetting = 'admin';
  701. $lang->navGroup->staffmanage = 'admin';
  702. $lang->navGroup->modelconfig = 'admin';
  703. $lang->navGroup->featureconfig = 'admin';
  704. $lang->navGroup->doctemplate = 'admin';
  705. $lang->navGroup->notifysetting = 'admin';
  706. $lang->navGroup->holidayseason = 'admin';
  707. $lang->navGroup->system = 'system';
  708. $lang->navGroup->serverroom = 'devops';
  709. $lang->navGroup->holiday = 'admin';
  710. $lang->navGroup->cache = 'admin';
  711. $lang->navGroup->aiapp = 'aiapp';
  712. $lang->navGroup->index = 'index';
  713. $lang->navGroup->misc = 'misc';
  714. $lang->navGroup->upgrade = 'upgrade';
  715. if((empty($_SESSION['tutorialMode']) || $config->systemMode == 'light') && !$config->enableER) unset($lang->product->menu->epic, $lang->product->menuOrder[10]);
  716. if((empty($_SESSION['tutorialMode']) || $config->systemMode == 'light') && !$config->URAndSR) unset($lang->product->menu->requirement, $lang->product->menuOrder[15]);
  717. if(!helper::hasFeature('product_roadmap')) unset($lang->product->menu->roadmap, $lang->product->menuOrder[45]);
  718. if(empty($_SESSION['tutorialMode']) && !helper::hasFeature('product_track'))
  719. {
  720. unset($lang->product->menu->track, $lang->product->menuOrder[30]);
  721. $lang->product->dividerMenu = str_replace(',track,', ',doc,', $lang->product->dividerMenu);
  722. }
  723. if(!helper::hasFeature('program')) unset($lang->mainNav->program, $lang->mainNav->menuOrder[10]);
  724. if(!helper::hasFeature('caselib')) unset($lang->qa->menu->caselib, $lang->qa->menuOrder[40]);
  725. if(!helper::hasFeature('automated')) unset($lang->qa->menu->automation, $lang->qa->menuOrder[45]);
  726. if(!helper::hasFeature('testsuite')) unset($lang->qa->menu->testsuite, $lang->qa->menuOrder[25]);
  727. if(!helper::hasFeature('AI')) unset($lang->mainNav->aiapp, $lang->mainNav->menuOrder[40], $lang->searchObjects['aiapp']);
  728. if(!helper::hasFeature('BI')) unset($lang->mainNav->bi, $lang->mainNav->menuOrder[45]);
  729. if(!helper::hasFeature('devops'))
  730. {
  731. unset($lang->mainNav->devops, $lang->mainNav->menuOrder[35]);
  732. unset($lang->scrum->menu->devops, $lang->scrum->menuOrder[25]);
  733. unset($lang->waterfall->menu->devops, $lang->waterfall->menuOrder[35]);
  734. unset($lang->execution->menu->devops, $lang->execution->menuOrder[45]);
  735. unset($lang->project->noMultiple->scrum->menu->devops, $lang->project->noMultiple->scrum->menuOrder[35]);
  736. }
  737. if(!helper::hasFeature('kanban'))
  738. {
  739. unset($lang->mainNav->kanban, $lang->mainNav->menuOrder[50]);
  740. $lang->dividerMenu = str_replace(',kanban,' , ',doc,', $lang->dividerMenu);
  741. }
  742. if(!helper::hasFeature('program')) unset($lang->searchObjects['program'], $lang->createObjects['program']);
  743. if(!helper::hasFeature('caselib')) unset($lang->searchObjects['caselib']);
  744. if(!helper::hasFeature('kanban') ) unset($lang->createObjects['kanban'], $lang->createObjects['kanbanspace']);
  745. /* AI menu. */
  746. $lang->aiapp->menu = new stdclass();
  747. $lang->aiapp->menu->conversation = array('link' => "{$lang->aiapp->conversation}|aiapp|conversation|");
  748. $lang->aiapp->menu->zentaoAgent = array('link' => "{$lang->aiapp->zentaoAgent}|ai|prompts|", 'alias' => 'promptview,promptassignrole,promptselectdatasource,promptsetpurpose,promptsettargetform,promptfinalize');
  749. $lang->aiapp->menu->generalAgent = array('link' => "{$lang->aiapp->generalAgent}|aiapp|square|", 'alias' => 'view,miniprograms,editMiniProgramCategory,miniprogramview,createMiniProgram,editminiprogram,configuredMiniProgram');
  750. $lang->aiapp->menu->models = array('link' => "{$lang->aiapp->models}|aiapp|models|");
  751. $lang->aiapp->menu->config = array('link' => "{$lang->aiapp->config}|zai|setting|", 'alias' => 'vectorized');
  752. $lang->aiapp->dividerMenu = ',zentaoAgent,models,';
  753. /* AI menu order. */
  754. $lang->aiapp->menuOrder[5] = 'conversation';
  755. $lang->aiapp->menuOrder[10] = 'zentaoAgent';
  756. $lang->aiapp->menuOrder[15] = 'generalAgent';
  757. $lang->aiapp->menuOrder[20] = 'models';
  758. $lang->aiapp->menuOrder[25] = 'config';
  759. /* Sanplex menu changes: */
  760. if(!empty($config->sanplexVersion) && $config->vision === 'rnd')
  761. {
  762. $lang->execution->menu->task['showInMainMenu'] = 'task';
  763. $lang->execution->menu->kanban['showInMainMenu'] = 'task';
  764. $lang->execution->menu->burn['showInMainMenu'] = 'task';
  765. $lang->execution->menu->view['showInMainMenu'] = 'task';
  766. }
  767. /* Zentao icons map: */
  768. $lang->iconMap = [];
  769. $lang->iconMap['report'] = 'ruler';
  770. $lang->iconMap['weekly'] = 'flag';
  771. $lang->iconMap['deliverable'] = 'package';
  772. $lang->iconMap['dynamic'] = 'news';
  773. $lang->iconMap['issue'] = 'issue';
  774. $lang->iconMap['risk'] = 'risk';
  775. $lang->iconMap['opportunity'] = 'opportunity';
  776. $lang->iconMap['pssp'] = 'task-list';
  777. $lang->iconMap['meeting'] = 'statistic';
  778. $lang->iconMap['track'] = 'chart-timeline';
  779. $lang->iconMap['cm'] = 'confirm';
  780. $lang->iconMap['projectchange'] = 'change';
  781. $lang->iconMap['estimation'] = 'hand-coins';
  782. $lang->iconMap['auditplan'] = 'shield-check';
  783. $lang->iconMap['train'] = 'book';
  784. $lang->iconMap['orroadmap'] = 'road-sign';
  785. $lang->iconMap['effort'] = 'time';
  786. $lang->iconMap['CFD'] = 'chart-area';
  787. $lang->iconMap['build'] = 'wrench';
  788. $lang->iconMap['settings'] = 'cog-outline';
  789. $lang->iconMap['designguide'] = 'design';
  790. $lang->iconMap['resourcecalendars'] = 'calendar';