create.ui.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. $(function()
  2. {
  3. loadProjectExecutions(copyProjectID);
  4. if(isStage)
  5. {
  6. $(document).on('change', '#attribute', function(e)
  7. {
  8. let attribute = $(this).val();
  9. hidePlanBox(attribute);
  10. })
  11. }
  12. if(copyExecutionID != 0 || projectID != 0) loadMembers();
  13. setWhite();
  14. });
  15. /**
  16. * Refresh page.
  17. *
  18. * @access public
  19. * @return void
  20. */
  21. function refreshPage()
  22. {
  23. const projectID = $('[name=project]').val();
  24. loadPage($.createLink('execution', 'create', 'projectID=' + projectID));
  25. }
  26. /**
  27. * Refresh page.
  28. *
  29. * @access public
  30. * @return void
  31. */
  32. function setType()
  33. {
  34. const type = $('input[name=type]').val();
  35. const parentStage = $('input[name=parent]').val();
  36. loadPage($.createLink('execution', 'create', 'projectID=' + projectID + '&executionID=0&copyExecutionID=&planID=0&confirm=no&productID=0&extra=type=' + type + ',parentStage=' + parentStage));
  37. }
  38. /**
  39. * Load team members.
  40. *
  41. * @access public
  42. * @return void
  43. */
  44. function loadMembers()
  45. {
  46. let objectID = $('input[name=teams]').val() ? $('input[name=teams]').val() : projectID;
  47. $.getJSON($.createLink('execution', 'ajaxGetTeamMembers', 'objectID=' + objectID), function(data)
  48. {
  49. let membersPicker = $('[name^=teamMembers]').zui('picker');
  50. membersPicker.$.setValue(data);
  51. });
  52. }
  53. /**
  54. * Load copy executions box.
  55. *
  56. * @access public
  57. * @return void
  58. */
  59. function loadProjectExecutions(projectID)
  60. {
  61. projectID = parseInt(projectID) ? projectID : $('#copyExecutionModal input[name=project]').val();
  62. projectID = projectID == undefined ? 0 : parseInt(projectID);
  63. loadTarget($.createLink('execution', 'ajaxGetCopyProjectExecutions', 'projectID=' + projectID + '&copyExecutionID=' + copyExecutionID), '#copyExecutions');
  64. }
  65. $(document).off('click', '#copyExecutions button.execution-block').on('click', '#copyExecutions button.execution-block', function(e)
  66. {
  67. $(this).toggleClass('primary-outline');
  68. $('.execution-block').not(this).removeClass('primary-outline');
  69. });
  70. /**
  71. * Set copy execution.
  72. *
  73. * @access public
  74. * @return void
  75. */
  76. function setCopyExecution()
  77. {
  78. const executionID = $('.execution-block').hasClass('primary-outline') ? $('.execution-block.primary-outline').data('id') : 0;
  79. if(!executionID) projectID = 0;
  80. loadPage($.createLink('execution', 'create', 'projectID=' + projectID + '&executionID=0&copyExecutionID=' + executionID));
  81. zui.Modal.hide();
  82. }
  83. window.toggleCopyTeam = function(e)
  84. {
  85. $this = $(e.target);
  86. if($this.prop('checked'))
  87. {
  88. $('[data-name=team]').removeClass('w-full').addClass('w-1/2');
  89. $('[data-name=teams]').removeClass('hidden');
  90. }
  91. else
  92. {
  93. $('[data-name=team]').removeClass('w-1/2').addClass('w-full');
  94. $('[data-name=teams]').addClass('hidden');
  95. }
  96. $('[data-name=team]').hasClass('is-pinned') && !$('[data-name=teams]').hasClass('hidden') ? $('[data-name=teams]').addClass('is-pinned') : $('[data-name=teams]').removeClass('is-pinned');
  97. }
  98. /**
  99. * Toggle ops tip.
  100. *
  101. * @access public
  102. * @return void
  103. */
  104. function toggleOpsTip()
  105. {
  106. $(this).closest('.form-group').find('.form-tip').remove();
  107. if($(this).val() == 'ops')
  108. {
  109. $(this).closest('.form-group').append('<div class="form-tip">' + typeDesc + '</div>');
  110. }
  111. }
  112. function setParentStage()
  113. {
  114. const parentStage = $('input[name=parent]').val();
  115. const type = $('input[name=type]').val();
  116. loadPage($.createLink('execution', 'create', 'projectID=' + projectID + '&executionID=0&copyExecutionID=&planID=0&confirm=no&productID=0&extra=type=' + type + ',parentStage=' + parentStage));
  117. }