ajaxkanbansetting.flow.html.hook.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php $taskSubStatus = $this->loadModel('workflowfield')->getByField('task', 'subStatus');?>
  2. <?php $bugSubStatus = $this->loadModel('workflowfield')->getByField('bug', 'subStatus');?>
  3. <?php if((!empty($taskSubStatus->options) or !empty($bugSubStatus->options)) && common::hasPriv('execution', 'setLaneFields')):?>
  4. <?php
  5. if(empty($taskSubStatus->options)) unset($lang->kanbanSetting->modeList['task']);
  6. if(empty($bugSubStatus->options)) unset($lang->kanbanSetting->modeList['bug']);
  7. $laneField = html::radio('laneField', $lang->kanbanSetting->laneFields, $setting->laneField);
  8. $kanbanMode = html::radio('mode', $lang->kanbanSetting->modeList, 'task');
  9. /* Add trs of laneField and mode. */
  10. $settings = <<<EOT
  11. <tr>
  12. <th class='text-right w-200px'>{$lang->kanbanSetting->laneField}</th>
  13. <td>{$laneField}</td>
  14. </tr>
  15. <tr class='subStatusTR hide'>
  16. <th>{$lang->kanbanSetting->mode}</th>
  17. <td>
  18. {$kanbanMode}
  19. <span class='subStatusTips text-important hide'>{$lang->kanbanSetting->subStatusTips}</span>
  20. </td>
  21. </tr>
  22. EOT;
  23. /* Loop modeList to add trs of sub status and colors. */
  24. foreach($lang->kanbanSetting->modeList as $modeCode => $modeName)
  25. {
  26. $field = ${$modeCode . 'SubStatus'};
  27. if(!empty($field->options))
  28. {
  29. $subStatus = html::checkbox("subStatus[$modeCode]", $field->options, isset($setting->subStatus[$modeCode]) ? $setting->subStatus[$modeCode] : array_keys($field->options), '', 'type=inline');
  30. $colors = '';
  31. foreach($field->options as $status => $statusName)
  32. {
  33. $color = isset($setting->subStatusColor[$modeCode][$status]) ? $setting->subStatusColor[$modeCode][$status] : '';
  34. $colors .= <<<EOT
  35. <div class='col-sm-2'>
  36. <div class='input-group'>
  37. <input type='hidden' id='subStatusColor{$modeCode}{$status}' name="subStatusColor[$modeCode][{$status}]" data-provide='colorpicker' data-wrapper='input-group-btn' value='{$color}' data-colors='#333,#2B529C,#E48600,#D2323D,#229F24,#777,#D2691E,#008B8B,#2E8B57,#4169E1,#4B0082,#FA8072,#BA55D3,#2E8B57,#6B8E23'>
  38. <div class='input-group-cell'>{$statusName}</div>
  39. </div>
  40. </div>
  41. EOT;
  42. }
  43. $settings .= <<<EOT
  44. <tr class='subStatusTR hide' data-mode='{$modeCode}'>
  45. <th>{$lang->kanbanSetting->subStatus}</th>
  46. <td><div class='row'>{$subStatus}</div></td>
  47. </tr>
  48. <tr class='subStatusTR hide' data-mode='{$modeCode}'>
  49. <th class='text-right'>{$lang->execution->kanbanColsColor}</th>
  50. <td><div class='row'>{$colors}</div></td>
  51. </tr>
  52. EOT;
  53. }
  54. }
  55. ?>
  56. <script>
  57. $('form .table-form tbody').prepend(<?php echo json_encode($settings);?>);
  58. /* Toggle display of colors according to checked sub status. */
  59. $('input[type=checkbox][name^=subStatus]').change(function()
  60. {
  61. var mode = $(this).parents('tr').attr('data-mode');
  62. var subStatus = $(this).val();
  63. $('#subStatusColor' + mode + subStatus).parents('.col-sm-2').toggle($(this).prop('checked'));
  64. });
  65. $('[name=mode]').change(function()
  66. {
  67. var mode = $('[name=mode]:checked').val();
  68. $('[data-mode=task], [data-mode=bug]').hide(); // Hide all tr of the sub status.
  69. $('[data-mode=' + mode + ']').show(); // Show all tr of the sub status according to the selected mode.
  70. $('input[type=checkbox][name^=subStatus]').change(); // Toggle display of colors.
  71. });
  72. $('[name=laneField]').change(function()
  73. {
  74. var laneField = $('[name=laneField]:checked').val();
  75. if(laneField == 'status')
  76. {
  77. $('.statusTR').show();
  78. $('.subStatusTR').hide(); // Hide all tr of the sub status.
  79. $('.subStatusTips').hide();
  80. }
  81. else
  82. {
  83. $('.statusTR').hide();
  84. $('.subStatusTips').show();
  85. $('[name=mode]').parents('tr').show(); // Show tr of mode.
  86. $('[name=mode]').change(); // Toggle display of all tr of the sub status according to the selected mode.
  87. }
  88. });
  89. $('[name=laneField]').change();
  90. </script>
  91. <?php endif;?>