common.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. $(function()
  2. {
  3. $('[data-toggle="popover"]').popover();
  4. var $saveButton = $('#saveButton');
  5. var $saveDraftButton = $('#saveDraftButton');
  6. $saveButton.on('click', function(e)
  7. {
  8. $saveButton.attr('type', 'submit').attr('disabled', true);
  9. $saveDraftButton.attr('disabled', true);
  10. var storyStatus = !$('#reviewer').val() || $('#needNotReview').is(':checked') ? 'pass' : 'reviewing';
  11. $('<input />').attr('type', 'hidden').attr('name', 'status').attr('value', storyStatus).appendTo('#dataform');
  12. $('#dataform').submit();
  13. e.preventDefault();
  14. setTimeout(function()
  15. {
  16. if($saveButton.attr('disabled') == 'disabled')
  17. {
  18. setTimeout(function()
  19. {
  20. $saveButton.attr('type', 'button').removeAttr('disabled');
  21. $saveDraftButton.removeAttr('disabled');
  22. }, 10000);
  23. }
  24. else
  25. {
  26. $saveDraftButton.removeAttr('disabled');
  27. }
  28. }, 100);
  29. });
  30. $saveDraftButton.on('click', function(e)
  31. {
  32. $saveButton.attr('disabled', true);
  33. $saveDraftButton.attr('type', 'submit').attr('disabled', true);
  34. storyStatus = 'draft';
  35. if(typeof(page) != 'undefined' && page == 'change') storyStatus = 'changing';
  36. if(typeof(page) !== 'undefined' && page == 'edit' && $('#status').val() == 'changing') storyStatus = 'changing';
  37. $('<input />').attr('type', 'hidden').attr('name', 'status').attr('value', storyStatus).appendTo('#dataform');
  38. $('#dataform').submit();
  39. e.preventDefault();
  40. setTimeout(function()
  41. {
  42. if($saveDraftButton.attr('disabled') == 'disabled')
  43. {
  44. setTimeout(function()
  45. {
  46. $saveButton.removeAttr('disabled');
  47. $saveDraftButton.attr('type', 'button').removeAttr('disabled');
  48. }, 10000);
  49. }
  50. else
  51. {
  52. $saveButton.removeAttr('disabled');
  53. }
  54. }, 100);
  55. });
  56. });
  57. var products = $('#product').val();
  58. function updateProducts()
  59. {
  60. if($('#undetermined').is(':checked'))
  61. {
  62. $('#undetermined').prop('checked', false);
  63. toggleProductDropdown();
  64. }
  65. var poolID = $('#pool').val();
  66. var link = createLink('demand', 'ajaxGetProducts', 'poolID=' + poolID);
  67. $.post(link, function(html)
  68. {
  69. $('#product').closest('.input-group').find('.picker').remove();
  70. $('#product').replaceWith(html);
  71. $('#product').picker();
  72. $('#product').data('zui.picker').setValue(products);
  73. if(config.currentMethod == 'edit') listenProductClickEvent();
  74. });
  75. if(!$('#product').val()) $("#product").siblings(".input-group-addon").show();
  76. }
  77. function changePool(poolID)
  78. {
  79. loadAssignedTo(poolID);
  80. loadReviewer(poolID);
  81. }
  82. /**
  83. * Load assignedTo.
  84. *
  85. * @access public
  86. * @return void
  87. */
  88. function loadAssignedTo(poolID)
  89. {
  90. var link = createLink('demand', 'ajaxGetOptions', 'poolID=' + poolID + '&type=assignedTo');
  91. $.post(link, function(html)
  92. {
  93. $('#assignedTo').replaceWith(html);
  94. $('#assignedToBox .picker').remove();
  95. $('#assignedTo').picker();
  96. });
  97. }
  98. function loadReviewer(poolID)
  99. {
  100. var link = createLink('demand', 'ajaxGetOptions', 'poolID=' + poolID + '&type=reviewer');
  101. $.post(link, function(html)
  102. {
  103. $('#reviewer').replaceWith(html);
  104. $('#reviewerBox .picker').remove();
  105. $('#reviewer').picker();
  106. });
  107. }
  108. function toggleProductDropdown()
  109. {
  110. if($('#undetermined').is(':checked'))
  111. {
  112. $('#product').data('zui.picker').setDisabled(false);
  113. $('#product').closest('.input-group').find('.picker').hide();
  114. $('#undeterminedProduct').removeClass('hidden');
  115. }
  116. else
  117. {
  118. $('#product').data('zui.picker').setDisabled(false);
  119. $('#product').closest('.input-group').find('.picker').show();
  120. $('#undeterminedProduct').addClass('hidden');
  121. }
  122. }
  123. function listenProductClickEvent()
  124. {
  125. $('div[id^="pk_product"] .picker-selection-remove').on('click', function(event, value)
  126. {
  127. var itemID = $(this).closest('.picker-selection').attr('id');
  128. var optionID = itemID.split(/item-(.*?)-/);
  129. optionID = parseInt(atob(optionID[1].replace(/-/g, '=')));
  130. var statusList = ['launched', 'developing', 'closed'];
  131. if(distributedProducts[optionID])
  132. {
  133. if(statusList.includes(distributedProducts[optionID]) && !confirm(confirmChangProduct))
  134. {
  135. event.stopPropagation();
  136. }
  137. }
  138. });
  139. }