create.ipd.html.hook.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php if($project->model == 'ipd' and !$planID):?>
  2. <?php
  3. js::set('minBeginDate', $project->begin);
  4. js::set('maxEndDate', $project->end);
  5. ?>
  6. <style>
  7. #leftTopSection>h5,#leftTopSection>div{display: inline-block;}
  8. </style>
  9. <div class='pull-left btn-toolbar hidden' id='leftTopSection'>
  10. <h5><?php echo $lang->programplan->parallel;?> </h5>
  11. <div><?php echo html::radio('parallel', $lang->programplan->parallelList, $project->parallel, !$canParallel ? '' : 'disabled');?></div>
  12. <icon class='icon icon-help' data-toggle='popover' data-trigger='focus hover' data-placement='right' data-tip-class='text-muted popover-sm' data-content="<?php echo $lang->programplan->parallelTip;?>"></icon>
  13. </div>
  14. <script>
  15. function updatePreDate(value, id)
  16. {
  17. var currentIndex = id.match(/\d+/g)[0];
  18. var elements = $('#planForm [name*=end], #planForm [name*=begin]');
  19. var reversedElements = Array.from(elements).reverse();
  20. $(reversedElements).each(function(index, element) {
  21. var elementID = $(element).attr('id');
  22. var elementIndex = elementID.match(/\d+/g)[0];
  23. var elementValue = $(element).val();
  24. if(currentIndex == elementIndex && id.indexOf('begin') !== -1 && elementID.indexOf('end') !== -1) return true;
  25. if(elementIndex > currentIndex || elementID == id) return true;
  26. $(element).datetimepicker('setEndDate', value);
  27. if(elementValue != '') return false;
  28. });
  29. }
  30. function updateAfterDate(value, id)
  31. {
  32. var currentIndex = id.match(/\d+/g)[0];
  33. var elements = $('#planForm [name*=end], #planForm [name*=begin]');
  34. var reversedElements = Array.from(elements);
  35. $(reversedElements).each(function(index, element) {
  36. var elementID = $(element).attr('id');
  37. var elementIndex = elementID.match(/\d+/g)[0];
  38. var elementValue = $(element).val();
  39. if(currentIndex == elementIndex && id.indexOf('end') !== -1 && elementID.indexOf('begin') !== -1) return true;
  40. if(elementIndex < currentIndex || elementID == id) return true;
  41. $(element).datetimepicker('setStartDate', value);
  42. if(elementValue != '') return false;
  43. });
  44. }
  45. $(function()
  46. {
  47. $('.form-date').datetimepicker('setStartDate', minBeginDate);
  48. $('.form-date').datetimepicker('setEndDate', maxEndDate);
  49. $('.form-date').datetimepicker().on('changeDate', function(ev)
  50. {
  51. var parallel = $('#planForm input[name="parallel"]').val();
  52. if(parallel == '0')
  53. {
  54. var currentTarget = $(ev.target);
  55. var currentDate = currentTarget.val();
  56. var currentID = currentTarget.attr('id');
  57. updatePreDate(currentDate, currentID);
  58. updateAfterDate(currentDate, currentID);
  59. }
  60. });
  61. $('#planForm').append('<input type="hidden" name="parallel" value=<?php echo $project->parallel;?>>');
  62. $('#leftTopSection').appendTo('#mainContent .main-header').removeClass('hidden');
  63. $('input[name="parallel"]').on('click', function()
  64. {
  65. var parallelValue = $(this).val();
  66. $('#planForm input[name="parallel"]').val(parallelValue);
  67. if(parallelValue == 0) $('.form-date').val('');
  68. $('.form-date').datetimepicker('setStartDate', minBeginDate);
  69. $('.form-date').datetimepicker('setEndDate', maxEndDate);
  70. });
  71. })
  72. </script>
  73. <?php endif;?>