productManage.php 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736
  1. <?php
  2. global $lang;
  3. $productManage = new stdClass();
  4. $productManage->basic = new stdClass();
  5. $productManage->basic->name = 'productManageBasic';
  6. $productManage->basic->title = $lang->tutorial->productManage->title;
  7. $productManage->basic->icon = 'product text-warning text-lg';
  8. $productManage->basic->type = 'basic';
  9. $productManage->basic->modules = 'product,tree,story,productplan,release,branch';
  10. $productManage->basic->app = 'product';
  11. $productManage->basic->tasks = array();
  12. $productManage->basic->tasks['addProduct'] = array();
  13. $productManage->basic->tasks['addProduct']['name'] = 'addProduct';
  14. $productManage->basic->tasks['addProduct']['title'] = $lang->tutorial->productManage->addProduct->title;
  15. $productManage->basic->tasks['addProduct']['startUrl'] = array('product', 'all');
  16. $productManage->basic->tasks['addProduct']['steps'] = array();
  17. $productManage->basic->tasks['addProduct']['steps'][] = array(
  18. 'type' => 'click',
  19. 'target' => '#actionBar a.create-product-btn',
  20. 'page' => 'product-all',
  21. 'title' => $lang->tutorial->productManage->addProduct->step1->name,
  22. 'desc' => $lang->tutorial->productManage->addProduct->step1->desc
  23. );
  24. $productManage->basic->tasks['addProduct']['steps'][] = array(
  25. 'type' => 'form',
  26. 'page' => 'product-create',
  27. 'title' => $lang->tutorial->productManage->addProduct->step2->name
  28. );
  29. $productManage->basic->tasks['addProduct']['steps'][] = array(
  30. 'type' => 'saveForm',
  31. 'page' => 'product-create',
  32. 'title' => $lang->tutorial->productManage->addProduct->step3->name,
  33. 'desc' => $lang->tutorial->productManage->addProduct->step3->desc
  34. );
  35. $productManage->basic->tasks['moduleManage'] = array();
  36. $productManage->basic->tasks['moduleManage']['name'] = 'moduleManage';
  37. $productManage->basic->tasks['moduleManage']['title'] = $lang->tutorial->productManage->moduleManage->title;
  38. $productManage->basic->tasks['moduleManage']['startUrl'] = array('product', 'all');
  39. $productManage->basic->tasks['moduleManage']['steps'] = array();
  40. $productManage->basic->tasks['moduleManage']['steps'][] = array(
  41. 'type' => 'click',
  42. 'target' => '#products div.dtable-body div[data-col="name"][data-row="1"] a',
  43. 'page' => 'product-all',
  44. 'title' => $lang->tutorial->productManage->moduleManage->step1->name,
  45. 'desc' => $lang->tutorial->productManage->moduleManage->step1->desc
  46. );
  47. $productManage->basic->tasks['moduleManage']['steps'][] = array(
  48. 'type' => 'click',
  49. 'target' => '#moduleMenu a[href*="tree"]',
  50. 'page' => 'product-browse',
  51. 'title' => $lang->tutorial->productManage->moduleManage->step2->name,
  52. 'desc' => $lang->tutorial->productManage->moduleManage->step2->desc
  53. );
  54. $productManage->basic->tasks['moduleManage']['steps'][] = array(
  55. 'type' => 'form',
  56. 'page' => 'tree-browse',
  57. 'title' => $lang->tutorial->productManage->moduleManage->step3->name
  58. );
  59. $productManage->basic->tasks['moduleManage']['steps'][] = array(
  60. 'type' => 'saveForm',
  61. 'page' => 'tree-browse',
  62. 'title' => $lang->tutorial->productManage->moduleManage->step4->name,
  63. 'desc' => $lang->tutorial->productManage->moduleManage->step4->desc
  64. );
  65. $productManage->basic->tasks['storyManage'] = array();
  66. $productManage->basic->tasks['storyManage']['name'] = 'storyManage';
  67. $productManage->basic->tasks['storyManage']['title'] = $lang->tutorial->productManage->storyManage->title;
  68. $productManage->basic->tasks['storyManage']['startUrl'] = array('product', 'dashboard', 'productID=1');
  69. $productManage->basic->tasks['storyManage']['steps'] = array();
  70. $productManage->basic->tasks['storyManage']['steps'][] = array(
  71. 'type' => 'openApp',
  72. 'app' => 'product',
  73. 'title' => $lang->tutorial->productManage->lineManage->step1->name,
  74. 'desc' => $lang->tutorial->productManage->lineManage->step1->desc
  75. );
  76. $productManage->basic->tasks['storyManage']['steps'][] = array(
  77. 'type' => 'click',
  78. 'target' => '#products div.dtable-body div[data-col="name"][data-row="1"] a',
  79. 'page' => 'product-all',
  80. 'title' => $lang->tutorial->productManage->moduleManage->step1->name,
  81. 'desc' => $lang->tutorial->productManage->moduleManage->step1->desc
  82. );
  83. if($config->systemMode == 'light')
  84. {
  85. $productManage->basic->tasks['storyManage']['steps'][] = array(
  86. 'type' => 'click',
  87. 'target' => '#actionBar a.create-story-btn',
  88. 'page' => 'product-browse',
  89. 'url' => array('product', 'browse', 'productID=1'),
  90. 'title' => $lang->tutorial->starter->createStory->step3->name,
  91. 'desc' => $lang->tutorial->starter->createStory->step3->desc
  92. );
  93. $productManage->basic->tasks['storyManage']['steps'][] = array(
  94. 'type' => 'form',
  95. 'page' => 'story-create',
  96. 'title' => $lang->tutorial->productManage->storyManage->step3->name
  97. );
  98. $productManage->basic->tasks['storyManage']['steps'][] = array(
  99. 'type' => 'saveForm',
  100. 'page' => 'story-create',
  101. 'title' => $lang->tutorial->productManage->storyManage->step4->name,
  102. 'desc' => $lang->tutorial->productManage->storyManage->step4->desc
  103. );
  104. }
  105. if($config->systemMode != 'light')
  106. {
  107. $productManage->basic->tasks['storyManage']['steps'][] = array(
  108. 'type' => 'clickNavbar',
  109. 'target' => 'epic',
  110. 'page' => 'product-browse',
  111. 'url' => array('product', 'browse', 'productID=1'),
  112. 'title' => $lang->tutorial->productManage->storyManage->step1->name,
  113. 'desc' => $lang->tutorial->productManage->storyManage->step1->desc
  114. );
  115. $productManage->basic->tasks['storyManage']['steps'][] = array(
  116. 'type' => 'click',
  117. 'target' => '#actionBar a.create-story-btn',
  118. 'page' => 'product-browse',
  119. 'url' => array('product', 'browse', 'productID=1&branch=&browseType=all&param=0&storyType=epic'),
  120. 'title' => $lang->tutorial->productManage->storyManage->step2->name,
  121. 'desc' => $lang->tutorial->productManage->storyManage->step2->desc
  122. );
  123. $productManage->basic->tasks['storyManage']['steps'][] = array(
  124. 'type' => 'form',
  125. 'page' => 'epic-create',
  126. 'url' => array('epic', 'create', 'productID=1'),
  127. 'title' => $lang->tutorial->productManage->storyManage->step3->name
  128. );
  129. $productManage->basic->tasks['storyManage']['steps'][] = array(
  130. 'type' => 'saveForm',
  131. 'page' => 'epic-create',
  132. 'title' => $lang->tutorial->productManage->storyManage->step4->name,
  133. 'desc' => $lang->tutorial->productManage->storyManage->step4->desc
  134. );
  135. $productManage->basic->tasks['storyManage']['steps'][] = array(
  136. 'type' => 'click',
  137. 'target' => 'div.dtable div[data-col="actions"][data-row="1"] a.batchCreateStoryBtn',
  138. 'page' => 'product-browse',
  139. 'url' => array('product', 'browse', 'productID=1&branch=&browseType=all&param=0&storyType=epic'),
  140. 'title' => $lang->tutorial->productManage->storyManage->step5->name,
  141. 'desc' => $lang->tutorial->productManage->storyManage->step5->desc
  142. );
  143. $productManage->basic->tasks['storyManage']['steps'][] = array(
  144. 'type' => 'form',
  145. 'target' => 'div.panel-body div.form-batch-container',
  146. 'page' => 'story-batchCreate',
  147. 'title' => $lang->tutorial->productManage->storyManage->step6->name
  148. );
  149. $productManage->basic->tasks['storyManage']['steps'][] = array(
  150. 'type' => 'saveForm',
  151. 'page' => 'story-batchCreate',
  152. 'title' => $lang->tutorial->productManage->storyManage->step7->name,
  153. 'desc' => $lang->tutorial->productManage->storyManage->step7->desc
  154. );
  155. $productManage->basic->tasks['storyManage']['steps'][] = array(
  156. 'type' => 'click',
  157. 'target' => 'div.dtable div[data-col="actions"][data-row="2"] a.batchCreateStoryBtn',
  158. 'page' => 'product-browse',
  159. 'url' => array('product', 'browse', 'productID=1&branch=&browseType=all&param=0&storyType=epic'),
  160. 'title' => $lang->tutorial->productManage->storyManage->step8->name,
  161. 'desc' => $lang->tutorial->productManage->storyManage->step8->desc
  162. );
  163. $productManage->basic->tasks['storyManage']['steps'][] = array(
  164. 'type' => 'form',
  165. 'target' => 'div.panel-body div.form-batch-container',
  166. 'page' => 'story-batchCreate',
  167. 'title' => $lang->tutorial->productManage->storyManage->step9->name
  168. );
  169. $productManage->basic->tasks['storyManage']['steps'][] = array(
  170. 'type' => 'saveForm',
  171. 'page' => 'story-batchCreate',
  172. 'title' => $lang->tutorial->productManage->storyManage->step10->name,
  173. 'desc' => $lang->tutorial->productManage->storyManage->step10->desc
  174. );
  175. }
  176. $productManage->basic->tasks['storyManage']['steps'][] = array(
  177. 'type' => 'click',
  178. 'target' => 'div.dtable div[data-col="actions"][data-row="4"] a.story-review-btn',
  179. 'page' => 'product-browse',
  180. 'url' => $config->systemMode == 'light' ? array('product', 'browse', 'productID=1') : array('product', 'browse', 'productID=1&branch=&browseType=all&param=0&storyType=epic'),
  181. 'title' => $lang->tutorial->productManage->storyManage->step11->name,
  182. 'desc' => $lang->tutorial->productManage->storyManage->step11->desc
  183. );
  184. $productManage->basic->tasks['storyManage']['steps'][] = array(
  185. 'type' => 'form',
  186. 'page' => 'story-review',
  187. 'title' => $lang->tutorial->productManage->storyManage->step12->name
  188. );
  189. $productManage->basic->tasks['storyManage']['steps'][] = array(
  190. 'type' => 'saveForm',
  191. 'page' => 'story-review',
  192. 'title' => $lang->tutorial->productManage->storyManage->step13->name,
  193. 'desc' => $lang->tutorial->productManage->storyManage->step13->desc
  194. );
  195. $productManage->basic->tasks['storyManage']['steps'][] = array(
  196. 'type' => 'click',
  197. 'target' => 'div.dtable div[data-col="actions"][data-row="3"] a.story-change-btn',
  198. 'page' => 'product-browse',
  199. 'url' => array('product', 'browse', 'productID=1&branch=&browseType=all&param=0&storyType=epic'),
  200. 'title' => $lang->tutorial->productManage->storyManage->step14->name,
  201. 'desc' => $lang->tutorial->productManage->storyManage->step14->desc
  202. );
  203. $productManage->basic->tasks['storyManage']['steps'][] = array(
  204. 'type' => 'form',
  205. 'page' => 'story-change',
  206. 'title' => $lang->tutorial->productManage->storyManage->step15->name
  207. );
  208. $productManage->basic->tasks['storyManage']['steps'][] = array(
  209. 'type' => 'saveForm',
  210. 'page' => 'story-change',
  211. 'title' => $lang->tutorial->productManage->storyManage->step16->name,
  212. 'desc' => $lang->tutorial->productManage->storyManage->step16->desc
  213. );
  214. $productManage->basic->tasks['storyManage']['steps'][] = array(
  215. 'type' => 'clickNavbar',
  216. 'target' => 'track',
  217. 'page' => 'product-browse',
  218. 'url' => array('product', 'browse', 'productID=1&branch=&browseType=all&param=0&storyType=epic'),
  219. 'title' => $lang->tutorial->productManage->storyManage->step17->name,
  220. 'desc' => $lang->tutorial->productManage->storyManage->step17->desc
  221. );
  222. $productManage->basic->tasks['planManage'] = array();
  223. $productManage->basic->tasks['planManage']['name'] = 'planManage';
  224. $productManage->basic->tasks['planManage']['title'] = $lang->tutorial->productManage->planManage->title;
  225. $productManage->basic->tasks['planManage']['startUrl'] = array('product', 'browse', 'productID=1&branch=&browseType=all&param=0&storyType=epic');
  226. $productManage->basic->tasks['planManage']['steps'] = array();
  227. $productManage->basic->tasks['planManage']['steps'][] = array(
  228. 'type' => 'clickNavbar',
  229. 'target' => 'plan',
  230. 'page' => 'product-browse',
  231. 'title' => $lang->tutorial->productManage->planManage->step1->name,
  232. 'desc' => $lang->tutorial->productManage->planManage->step1->desc
  233. );
  234. $productManage->basic->tasks['planManage']['steps'][] = array(
  235. 'type' => 'click',
  236. 'target' => '#actionBar a.plan-create-btn',
  237. 'page' => 'productplan-browse',
  238. 'url' => array('productplan', 'browse', 'productID=1'),
  239. 'title' => $lang->tutorial->productManage->planManage->step2->name,
  240. 'desc' => $lang->tutorial->productManage->planManage->step2->desc
  241. );
  242. $productManage->basic->tasks['planManage']['steps'][] = array(
  243. 'type' => 'form',
  244. 'page' => 'productplan-create',
  245. 'title' => $lang->tutorial->productManage->planManage->step3->name
  246. );
  247. $productManage->basic->tasks['planManage']['steps'][] = array(
  248. 'type' => 'saveForm',
  249. 'page' => 'productplan-create',
  250. 'title' => $lang->tutorial->productManage->planManage->step4->name,
  251. 'desc' => $lang->tutorial->productManage->planManage->step4->desc
  252. );
  253. $productManage->basic->tasks['planManage']['steps'][] = array(
  254. 'type' => 'click',
  255. 'target' => 'div.dtable div[data-col="title"][data-row="1"] a',
  256. 'page' => 'productplan-browse',
  257. 'url' => array('productplan', 'browse', 'productID=1'),
  258. 'title' => $lang->tutorial->productManage->planManage->step5->name,
  259. 'desc' => $lang->tutorial->productManage->planManage->step5->desc
  260. );
  261. $productManage->basic->tasks['planManage']['steps'][] = array(
  262. 'type' => 'click',
  263. 'target' => '#stories button.linkStory-btn',
  264. 'page' => 'productplan-view',
  265. 'title' => $lang->tutorial->productManage->planManage->step6->name,
  266. 'desc' => $lang->tutorial->productManage->planManage->step6->desc
  267. );
  268. $productManage->basic->tasks['planManage']['steps'][] = array(
  269. 'type' => 'selectRow',
  270. 'target' => 'div.dtable div[data-col="id"][data-row="4"]',
  271. 'page' => 'productplan-view',
  272. 'title' => $lang->tutorial->productManage->planManage->step7->name
  273. );
  274. $productManage->basic->tasks['planManage']['steps'][] = array(
  275. 'type' => 'click',
  276. 'target' => 'div.dtable-footer button.linkObjectBtn',
  277. 'page' => 'productplan-view',
  278. 'title' => $lang->tutorial->productManage->planManage->step8->name,
  279. 'desc' => $lang->tutorial->productManage->planManage->step8->desc
  280. );
  281. $productManage->basic->tasks['planManage']['steps'][] = array(
  282. 'type' => 'click',
  283. 'target' => 'li[data-key="bugs"] a',
  284. 'page' => 'productplan-view',
  285. 'title' => $lang->tutorial->productManage->planManage->step9->name,
  286. 'desc' => $lang->tutorial->productManage->planManage->step9->desc
  287. );
  288. $productManage->basic->tasks['planManage']['steps'][] = array(
  289. 'type' => 'click',
  290. 'target' => '#bugs button.linkBug-btn',
  291. 'page' => 'productplan-view',
  292. 'url' => array('productplan', 'view', 'planID=1&type=bug'),
  293. 'title' => $lang->tutorial->productManage->planManage->step10->name,
  294. 'desc' => $lang->tutorial->productManage->planManage->step10->desc
  295. );
  296. $productManage->basic->tasks['planManage']['steps'][] = array(
  297. 'type' => 'selectRow',
  298. 'target' => 'div.dtable div[data-col="id"][data-row="1"]',
  299. 'page' => 'productplan-view',
  300. 'title' => $lang->tutorial->productManage->planManage->step11->name
  301. );
  302. $productManage->basic->tasks['planManage']['steps'][] = array(
  303. 'type' => 'click',
  304. 'target' => 'div.dtable-footer button.linkObjectBtn',
  305. 'page' => 'productplan-view',
  306. 'title' => $lang->tutorial->productManage->planManage->step12->name,
  307. 'desc' => $lang->tutorial->productManage->planManage->step12->desc
  308. );
  309. $productManage->basic->tasks['releaseManage'] = array();
  310. $productManage->basic->tasks['releaseManage']['name'] = 'releaseManage';
  311. $productManage->basic->tasks['releaseManage']['title'] = $lang->tutorial->productManage->releaseManage->title;
  312. $productManage->basic->tasks['releaseManage']['startUrl'] = array('product', 'browse', 'productID=1&branch=&browseType=all&param=0&storyType=epic');
  313. $productManage->basic->tasks['releaseManage']['steps'] = array();
  314. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  315. 'type' => 'clickNavbar',
  316. 'target' => 'release',
  317. 'page' => 'product-browse',
  318. 'title' => $lang->tutorial->productManage->releaseManage->step1->name,
  319. 'desc' => $lang->tutorial->productManage->releaseManage->step1->desc
  320. );
  321. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  322. 'type' => 'click',
  323. 'target' => '#actionBar a:first-child',
  324. 'page' => 'release-browse',
  325. 'url' => array('release', 'browse', 'productID=1'),
  326. 'title' => $lang->tutorial->productManage->releaseManage->step20->name,
  327. 'desc' => $lang->tutorial->productManage->releaseManage->step20->desc
  328. );
  329. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  330. 'type' => 'click',
  331. 'target' => '#actionBar a',
  332. 'page' => 'system-browse',
  333. 'url' => array('system', 'browse', 'productID=1'),
  334. 'title' => $lang->tutorial->productManage->releaseManage->step21->name,
  335. 'desc' => $lang->tutorial->productManage->releaseManage->step21->desc
  336. );
  337. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  338. 'type' => 'form',
  339. 'target' => '#systemCreateForm',
  340. 'page' => 'system-browse',
  341. 'title' => $lang->tutorial->productManage->releaseManage->step22->name
  342. );
  343. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  344. 'type' => 'saveForm',
  345. 'target' => '#systemCreateForm .form-actions button[type="submit"]',
  346. 'page' => 'system-browse',
  347. 'title' => $lang->tutorial->productManage->releaseManage->step23->name,
  348. 'desc' => $lang->tutorial->productManage->releaseManage->step23->desc
  349. );
  350. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  351. 'type' => 'click',
  352. 'target' => '#featureBar a',
  353. 'page' => 'system-browse',
  354. 'url' => array('system', 'browse', 'productID=1'),
  355. 'title' => $lang->tutorial->productManage->releaseManage->step24->name,
  356. 'desc' => $lang->tutorial->productManage->releaseManage->step24->desc
  357. );
  358. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  359. 'type' => 'click',
  360. 'target' => '#actionBar a:last-child',
  361. 'page' => 'release-browse',
  362. 'url' => array('release', 'browse', 'productID=1'),
  363. 'title' => $lang->tutorial->productManage->releaseManage->step2->name,
  364. 'desc' => $lang->tutorial->productManage->releaseManage->step2->desc
  365. );
  366. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  367. 'type' => 'form',
  368. 'page' => 'release-create',
  369. 'title' => $lang->tutorial->productManage->releaseManage->step3->name
  370. );
  371. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  372. 'type' => 'saveForm',
  373. 'page' => 'release-create',
  374. 'title' => $lang->tutorial->productManage->releaseManage->step4->name,
  375. 'desc' => $lang->tutorial->productManage->releaseManage->step4->desc
  376. );
  377. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  378. 'type' => 'click',
  379. 'target' => 'div.dtable div[data-col="name"][data-row="1"] a',
  380. 'page' => 'release-browse',
  381. 'url' => array('release', 'browse', 'productID=1'),
  382. 'title' => $lang->tutorial->productManage->releaseManage->step5->name,
  383. 'desc' => $lang->tutorial->productManage->releaseManage->step5->desc
  384. );
  385. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  386. 'type' => 'click',
  387. 'target' => '#finishedStory button.linkStory-btn',
  388. 'page' => 'release-view',
  389. 'title' => $lang->tutorial->productManage->releaseManage->step6->name,
  390. 'desc' => $lang->tutorial->productManage->releaseManage->step6->desc
  391. );
  392. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  393. 'type' => 'selectRow',
  394. 'target' => 'div.dtable div[data-col="id"][data-row="4"]',
  395. 'page' => 'release-view',
  396. 'title' => $lang->tutorial->productManage->releaseManage->step7->name
  397. );
  398. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  399. 'type' => 'click',
  400. 'target' => 'div.dtable-footer button.linkObjectBtn',
  401. 'page' => 'release-view',
  402. 'title' => $lang->tutorial->productManage->releaseManage->step8->name,
  403. 'desc' => $lang->tutorial->productManage->releaseManage->step8->desc
  404. );
  405. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  406. 'type' => 'click',
  407. 'target' => 'li[data-key="resolvedBug"] a',
  408. 'page' => 'release-view',
  409. 'title' => $lang->tutorial->productManage->releaseManage->step9->name,
  410. 'desc' => $lang->tutorial->productManage->releaseManage->step9->desc
  411. );
  412. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  413. 'type' => 'click',
  414. 'target' => '#resolvedBug button.linkBug-btn',
  415. 'page' => 'release-view',
  416. 'title' => $lang->tutorial->productManage->releaseManage->step10->name,
  417. 'desc' => $lang->tutorial->productManage->releaseManage->step10->desc
  418. );
  419. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  420. 'type' => 'selectRow',
  421. 'target' => '#linkBugList div.dtable-body div[data-col="id"][data-row="1"]',
  422. 'page' => 'release-view',
  423. 'title' => $lang->tutorial->productManage->releaseManage->step11->name
  424. );
  425. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  426. 'type' => 'click',
  427. 'target' => '#linkBugList div.dtable-footer button.linkObjectBtn',
  428. 'page' => 'release-view',
  429. 'title' => $lang->tutorial->productManage->releaseManage->step12->name,
  430. 'desc' => $lang->tutorial->productManage->releaseManage->step12->desc
  431. );
  432. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  433. 'type' => 'click',
  434. 'target' => 'li[data-key="leftBug"] a',
  435. 'page' => 'release-view',
  436. 'title' => $lang->tutorial->productManage->releaseManage->step13->name,
  437. 'desc' => $lang->tutorial->productManage->releaseManage->step13->desc
  438. );
  439. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  440. 'type' => 'click',
  441. 'target' => '#leftBug button.leftBug-btn',
  442. 'page' => 'release-view',
  443. 'title' => $lang->tutorial->productManage->releaseManage->step14->name,
  444. 'desc' => $lang->tutorial->productManage->releaseManage->step14->desc
  445. );
  446. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  447. 'type' => 'selectRow',
  448. 'target' => '#linkLeftBugList div.dtable-body div[data-col="id"][data-row="1"]',
  449. 'page' => 'release-view',
  450. 'title' => $lang->tutorial->productManage->releaseManage->step15->name
  451. );
  452. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  453. 'type' => 'click',
  454. 'target' => '#linkLeftBugList div.dtable-footer button.linkObjectBtn',
  455. 'page' => 'release-view',
  456. 'title' => $lang->tutorial->productManage->releaseManage->step16->name,
  457. 'desc' => $lang->tutorial->productManage->releaseManage->step16->desc
  458. );
  459. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  460. 'type' => 'click',
  461. 'target' => 'div.detail-header a.publish-btn',
  462. 'page' => 'release-view',
  463. 'title' => $lang->tutorial->productManage->releaseManage->step17->name,
  464. 'desc' => $lang->tutorial->productManage->releaseManage->step17->desc
  465. );
  466. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  467. 'type' => 'form',
  468. 'target' => '#publishForm',
  469. 'page' => 'release-view',
  470. 'title' => $lang->tutorial->productManage->releaseManage->step18->name
  471. );
  472. $productManage->basic->tasks['releaseManage']['steps'][] = array(
  473. 'type' => 'saveForm',
  474. 'target' => '#publishForm button[type="submit"]',
  475. 'page' => 'release-view',
  476. 'title' => $lang->tutorial->productManage->releaseManage->step19->name,
  477. 'desc' => $lang->tutorial->productManage->releaseManage->step19->desc
  478. );
  479. $productManage->advance = new stdClass();
  480. $productManage->advance->name = 'productManageAdvance';
  481. $productManage->advance->title = $lang->tutorial->productManage->title;
  482. $productManage->advance->icon = 'product text-warning text-lg';
  483. $productManage->advance->type = 'advance';
  484. $productManage->advance->modules = 'product,tree,story,productplan,release';
  485. $productManage->advance->app = 'product';
  486. $productManage->advance->tasks = array();
  487. if($config->systemMode != 'light')
  488. {
  489. $productManage->advance->tasks['lineManage'] = array();
  490. $productManage->advance->tasks['lineManage']['name'] = 'lineManage';
  491. $productManage->advance->tasks['lineManage']['title'] = $lang->tutorial->productManage->lineManage->title;
  492. $productManage->advance->tasks['lineManage']['startUrl'] = array('product', 'all');
  493. $productManage->advance->tasks['lineManage']['steps'] = array();
  494. $productManage->advance->tasks['lineManage']['steps'][] = array(
  495. 'type' => 'openApp',
  496. 'app' => 'product',
  497. 'title' => $lang->tutorial->productManage->lineManage->step1->name,
  498. 'desc' => $lang->tutorial->productManage->lineManage->step1->desc
  499. );
  500. $productManage->advance->tasks['lineManage']['steps'][] = array(
  501. 'type' => 'click',
  502. 'target' => '#actionBar button#manageLineBtn',
  503. 'page' => 'product-all',
  504. 'title' => $lang->tutorial->productManage->lineManage->step2->name,
  505. 'desc' => $lang->tutorial->productManage->lineManage->step2->desc
  506. );
  507. $productManage->advance->tasks['lineManage']['steps'][] = array(
  508. 'type' => 'form',
  509. 'page' => 'product-all',
  510. 'title' => $lang->tutorial->productManage->lineManage->step3->name
  511. );
  512. $productManage->advance->tasks['lineManage']['steps'][] = array(
  513. 'type' => 'saveForm',
  514. 'page' => 'product-all',
  515. 'title' => $lang->tutorial->productManage->lineManage->step4->name,
  516. 'desc' => $lang->tutorial->productManage->lineManage->step4->desc
  517. );
  518. }
  519. $productManage->advance->tasks['addProduct'] = $productManage->basic->tasks['addProduct'];
  520. $productManage->advance->tasks['moduleManage'] = $productManage->basic->tasks['moduleManage'];
  521. $productManage->advance->tasks['storyManage'] = $productManage->basic->tasks['storyManage'];
  522. $productManage->advance->tasks['planManage'] = $productManage->basic->tasks['planManage'];
  523. $productManage->advance->tasks['releaseManage'] = $productManage->basic->tasks['releaseManage'];
  524. $productManage->advance->tasks['branchManage'] = array();
  525. $productManage->advance->tasks['branchManage']['name'] = 'branchManage';
  526. $productManage->advance->tasks['branchManage']['title'] = $lang->tutorial->productManage->branchManage->title;
  527. $productManage->advance->tasks['branchManage']['startUrl'] = array('product', 'all');
  528. $productManage->advance->tasks['branchManage']['steps'] = array();
  529. $productManage->advance->tasks['branchManage']['steps'][] = array(
  530. 'type' => 'openApp',
  531. 'app' => 'product',
  532. 'title' => $lang->tutorial->productManage->branchManage->step1->name,
  533. 'desc' => $lang->tutorial->productManage->branchManage->step1->desc
  534. );
  535. $productManage->advance->tasks['branchManage']['steps'][] = array(
  536. 'type' => 'click',
  537. 'target' => '#actionBar a.create-product-btn',
  538. 'page' => 'product-all',
  539. 'title' => $lang->tutorial->productManage->branchManage->step2->name,
  540. 'desc' => $lang->tutorial->productManage->branchManage->step2->desc
  541. );
  542. $productManage->advance->tasks['branchManage']['steps'][] = array(
  543. 'type' => 'form',
  544. 'page' => 'product-create',
  545. 'title' => $lang->tutorial->productManage->branchManage->step3->name
  546. );
  547. $productManage->advance->tasks['branchManage']['steps'][] = array(
  548. 'type' => 'saveForm',
  549. 'page' => 'product-create',
  550. 'title' => $lang->tutorial->productManage->branchManage->step4->name
  551. );
  552. $productManage->advance->tasks['branchManage']['steps'][] = array(
  553. 'type' => 'clickNavbar',
  554. 'target' => 'settings',
  555. 'page' => 'product-browse',
  556. 'url' => array('product', 'browse', 'productID=1'),
  557. 'title' => $lang->tutorial->productManage->branchManage->step5->name,
  558. 'desc' => $lang->tutorial->productManage->branchManage->step5->desc
  559. );
  560. $productManage->advance->tasks['branchManage']['steps'][] = array(
  561. 'type' => 'clickMainNavbar',
  562. 'target' => 'branch',
  563. 'page' => 'product-view',
  564. 'url' => array('product', 'view', 'productID=1'),
  565. 'title' => $lang->tutorial->productManage->branchManage->step6->name,
  566. 'desc' => $lang->tutorial->productManage->branchManage->step6->desc
  567. );
  568. $productManage->advance->tasks['branchManage']['steps'][] = array(
  569. 'type' => 'click',
  570. 'target' => '#actionBar a.branch-create-btn',
  571. 'page' => 'branch-manage',
  572. 'url' => array('branch', 'manage', 'productID=1'),
  573. 'title' => $lang->tutorial->productManage->branchManage->step7->name,
  574. 'desc' => $lang->tutorial->productManage->branchManage->step7->desc
  575. );
  576. $productManage->advance->tasks['branchManage']['steps'][] = array(
  577. 'type' => 'form',
  578. 'target' => '#createBranchForm',
  579. 'page' => 'branch-manage',
  580. 'title' => $lang->tutorial->productManage->branchManage->step8->name
  581. );
  582. $productManage->advance->tasks['branchManage']['steps'][] = array(
  583. 'type' => 'saveForm',
  584. 'target' => '#createBranchForm button[type="submit"]',
  585. 'page' => 'branch-manage',
  586. 'title' => $lang->tutorial->productManage->branchManage->step9->name,
  587. 'desc' => $lang->tutorial->productManage->branchManage->step9->desc
  588. );
  589. $productManage->advance->tasks['branchManage']['steps'][] = array(
  590. 'type' => 'selectRow',
  591. 'target' => 'div.dtable div[data-row="1"][data-type="checkID"]',
  592. 'page' => 'branch-manage',
  593. 'url' => array('branch', 'manage', 'productID=1'),
  594. 'title' => $lang->tutorial->productManage->branchManage->step10->name
  595. );
  596. $productManage->advance->tasks['branchManage']['steps'][] = array(
  597. 'type' => 'click',
  598. 'target' => 'div.dtable-footer #mergeBranch',
  599. 'page' => 'branch-manage',
  600. 'title' => $lang->tutorial->productManage->branchManage->step11->name
  601. );
  602. $productManage->advance->tasks['branchManage']['steps'][] = array(
  603. 'type' => 'form',
  604. 'target' => '#mergeForm',
  605. 'page' => 'branch-manage',
  606. 'title' => $lang->tutorial->productManage->branchManage->step12->name
  607. );
  608. $productManage->advance->tasks['branchManage']['steps'][] = array(
  609. 'type' => 'saveForm',
  610. 'target' => '#mergeForm button[type="submit"]',
  611. 'page' => 'branch-manage',
  612. 'title' => $lang->tutorial->productManage->branchManage->step13->name,
  613. 'desc' => $lang->tutorial->productManage->branchManage->step13->desc
  614. );
  615. $productManage->advance->tasks['branchManage']['steps'][] = array(
  616. 'type' => 'clickNavbar',
  617. 'target' => 'story',
  618. 'page' => 'branch-manage',
  619. 'url' => array('branch', 'manage', 'productID=1'),
  620. 'title' => $lang->tutorial->productManage->branchManage->step14->name,
  621. 'desc' => $lang->tutorial->productManage->branchManage->step14->desc
  622. );
  623. $productManage->advance->tasks['branchManage']['steps'][] = array(
  624. 'type' => 'click',
  625. 'target' => '#actionBar a.create-story-btn',
  626. 'page' => 'product-browse',
  627. 'title' => $lang->tutorial->productManage->branchManage->step15->name,
  628. 'desc' => $lang->tutorial->productManage->branchManage->step15->desc
  629. );
  630. $productManage->advance->tasks['branchManage']['steps'][] = array(
  631. 'type' => 'form',
  632. 'page' => 'story-create',
  633. 'title' => $lang->tutorial->productManage->branchManage->step16->name
  634. );
  635. $productManage->advance->tasks['branchManage']['steps'][] = array(
  636. 'type' => 'saveForm',
  637. 'page' => 'story-create',
  638. 'title' => $lang->tutorial->productManage->branchManage->step17->name,
  639. 'desc' => $lang->tutorial->productManage->branchManage->step17->desc
  640. );