execution.report.html.hook.php 4.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace zin;
  3. global $app, $config;
  4. if($config->vision == 'lite') return;
  5. $lang = data('lang');
  6. $project = data('project');
  7. $projectID = data('projectID');
  8. $productID = data('productID');
  9. $isStage = data('isStage');
  10. $orderBy = data('orderBy');
  11. $status = data('status');
  12. $executions = data('executionStats');
  13. $stageMode = array('waterfall', 'waterfallplus', 'ipd');
  14. $createLink = $isStage ? createLink('programplan', 'create', "projectID={$projectID}&productID={$productID}") : createLink('execution', 'create', "projectID={$projectID}");
  15. $canModifyProject = common::canModify('project', $project);
  16. $exportItems = array();
  17. if(hasPriv('execution', 'export')) $exportItems[] = array('text' => $lang->export, 'data-toggle' => 'modal', 'data-size' => 'sm', 'url' => createLink('execution', 'export', "status={$status}&productID={$productID}&orderBy={$orderBy}&from=project"));
  18. if(hasPriv('programplan', 'exportTemplate') && in_array($project->model, $stageMode)) $exportItems[] = array('text' => $lang->programplan->exportTemplate, 'data-toggle' => 'modal', 'data-size' => 'sm', 'url' => createLink('programplan', 'exportTemplate', "projectID={$projectID}"));
  19. $toolbar = toolbar
  20. (
  21. in_array($project->model, array('waterfall', 'waterfallplus', 'ipd')) && in_array($config->edition, array('max', 'ipd')) ? btnGroup
  22. (
  23. a(setClass('btn square'), icon('gantt-alt'), set::title($lang->programplan->gantt), set::href(createLink('programplan', 'browse', "projectID=$projectID&productID=$productID&type=gantt"))),
  24. a(setClass('btn square text-primary'), icon('list'), set::title($lang->project->bylist))
  25. ) : null,
  26. hasPriv('project', 'executionreport') ? item(set(array
  27. (
  28. 'icon' => 'bar-chart',
  29. 'class' => 'ghost',
  30. 'hint' => $lang->project->reportSettings->common,
  31. 'data-app' => 'project',
  32. 'url' => createLink('project', 'executionreport', "projectID={$project->id}")
  33. ))) : null,
  34. $exportItems ? dropdown
  35. (
  36. btn(set::type('link'), setClass('no-underline'), set::icon('export'), $lang->export),
  37. set::items($exportItems),
  38. set::placement('bottom-end')
  39. ) : null,
  40. $canModifyProject && hasPriv('programplan', 'import') && in_array($project->model, $stageMode) ? item(set(array
  41. (
  42. 'icon' => 'import',
  43. 'text' => $lang->programplan->importTask,
  44. 'class' => "no-underline btn btn-link",
  45. 'data-toggle' => 'modal',
  46. 'data-size' => 'sm',
  47. 'url' => createLink('programplan', 'import', "projectID={$projectID}")
  48. ))) : null,
  49. $canModifyProject && hasPriv('programplan', 'create') && $isStage && empty($product->deleted) ? item(set(array
  50. (
  51. 'icon' => 'plus',
  52. 'text' => $lang->programplan->create,
  53. 'class' => "primary create-execution-btn",
  54. 'url' => $createLink,
  55. 'disabled' => data('hasFrozenExecutions'),
  56. 'hint' => data('hasFrozenExecutions') ? sprintf($lang->execution->stageFrozenTip, $lang->programplan->create) : ''
  57. ))) : null,
  58. $canModifyProject && hasPriv('execution', 'create') && !$isStage && $project->model != 'agileplus' ? item(set(array
  59. (
  60. 'icon' => 'plus',
  61. 'text' => $isStage ? $lang->programplan->create : $lang->execution->create,
  62. 'class' => "primary create-execution-btn",
  63. 'url' => $createLink
  64. ))) : null,
  65. $canModifyProject && hasPriv('execution', 'create') && !$isStage && $project->model == 'agileplus' ? btngroup(
  66. setClass('create-execution-btn'),
  67. btn(setClass('btn primary'), set::icon('plus'), set::url($createLink), $lang->execution->create),
  68. dropdown
  69. (
  70. btn(setClass('btn primary dropdown-toggle'),
  71. setStyle(array('padding' => '6px', 'border-radius' => '0 2px 2px 0'))),
  72. set::items
  73. (
  74. array('text' => $lang->execution->create, 'url' => $createLink),
  75. array('text' => $lang->project->createKanban, 'url' => createLink('execution', 'create', "projectID={$projectID}&executionID=0&copyExecutionID=&planID=0&confirm=no&productID=0&extra=type=kanban"))
  76. ),
  77. set::placement('bottom-end')
  78. )
  79. ) : null
  80. );
  81. query('#actionBar')->replaceWith($toolbar);
  82. pageJS('$(function(){$("#mainMenu .toolbar").prop("id", "actionBar"); });');