browsebyexecution.html.php 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. /**
  3. * The browse view file of mr module of ZenTaoPMS.
  4. * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
  5. * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  6. * @author Yanyi Cao <caoyanyi@easycorp.ltd>
  7. * @package mr
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. jsVar('repoID', $repoID);
  12. dropmenu(set::url(createLink('execution', 'ajaxGetDropMenu', "objectID=$objectID&module={$app->rawModule}&method={$app->rawMethod}")));
  13. foreach($MRList as $index => $MR)
  14. {
  15. if(!isset($repoList[$MR->repoID]))
  16. {
  17. unset($MRList[$index]);
  18. continue;
  19. }
  20. $repo = $repoList[$MR->repoID];
  21. /* The user whether has the permission of delete and edit does not require the judge of the permission from the project of the server. */
  22. $MR->canDelete = hasPriv($app->rawModule, 'delete') ? '' : 'disabled'; /* The value can be '' or 'disabled', 'disabled' means that user can NOT do this. */
  23. $MR->canEdit = hasPriv($app->rawModule, 'edit') ? '' : 'disabled';
  24. if($MR->status == 'merged' || $MR->status == 'closed')
  25. {
  26. $MR->mergeStatus = $MR->status;
  27. $MR->approvalStatus = '-';
  28. }
  29. else
  30. {
  31. $MR->approvalStatus = empty($MR->approvalStatus) ? $lang->mr->approvalStatusList['notReviewed'] : $lang->mr->approvalStatusList[$MR->approvalStatus];
  32. }
  33. $MR->repoName = $repo->name;
  34. }
  35. /* Show source project column if the user browse the Merge Requests of all the repos. */
  36. if(empty($repoID))
  37. {
  38. $sourceProject['repoName']['name'] = 'repoName';
  39. $sourceProject['repoName']['title'] = $lang->repo->common;
  40. $sourceProject['repoName']['type'] = 'text';
  41. $sourceProject['repoName']['hint'] = '{sourceProject}';
  42. $offset = array_search('sourceBranch', array_keys($config->mr->dtable->fieldList));
  43. $config->mr->dtable->fieldList = array_slice($config->mr->dtable->fieldList, 0, $offset, true) + $sourceProject + array_slice($config->mr->dtable->fieldList, $offset, NULL, true);
  44. }
  45. $MRs = initTableData($MRList, $config->mr->dtable->fieldList, $this->mr);
  46. featureBar
  47. (
  48. set::current($mode != 'status' ? $mode : $param),
  49. set::linkParams("repoID={$repoID}&mode=status&param={key}&objectID={$objectID}")
  50. );
  51. toolBar
  52. (
  53. hasPriv($app->rawModule, 'create') ? item(
  54. set::text($lang->mr->create),
  55. set::icon('plus'),
  56. set::className('btn primary'),
  57. set::url(createLink($app->rawModule, 'create', "repoID=" . ($repoID ? $repoID : key($repoList)) . "&objectID={$objectID}")),
  58. set('data-app', $app->tab)
  59. ) : null
  60. );
  61. dtable
  62. (
  63. set::userMap($users),
  64. set::cols($config->mr->dtable->fieldList),
  65. set::data($MRs),
  66. set::sortLink(createLink($app->rawModule, 'browse', "repoID={$repoID}&mode={$mode}&param={$param}&objectID={$objectID}&orderBy={name}_{sortType}&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}")),
  67. set::orderBy($orderBy),
  68. set::footPager(usePager())
  69. );
  70. render();