fork download
  1. /**
  2.  * シフト提出
  3.  */
  4. $(function () {
  5. $('ul.shift-input li.lp-shift-level-none').on("click", function () {
  6. setShift($(this));
  7. });
  8. $('ul.shift-input li.lp-shift-level-work').on("click", function () {
  9. setShift($(this));
  10. });
  11. $('button#lp-shift-on-off').on("click", function () {
  12. setShiftOnOff($(this));
  13. });
  14. });
  15.  
  16. function setShift(obj) {
  17. // シフトレベルクリック 待機開始時間を設定
  18.  
  19. let date = obj.attr('data-date');
  20. let hour = obj.attr('data-hour');
  21. let intHour = parseInt(obj.attr('data-hour'));
  22. let lastTrain = $('input[name="last_train_time[' + date + ']"]').val();
  23. let intLastTrain = parseInt(lastTrain.replace(/:/g, ''));
  24.  
  25. if (intLastTrain > 1200 && intLastTrain < (intHour * 100)) {
  26. alert('終電より遅いシフトは、提出できません。');
  27. return;
  28. }
  29.  
  30. $('li[data-date='+ date +']').each(function () {
  31. // アイコン付け替え
  32. let intLiHour = parseInt($(this).attr('data-hour'));
  33. if ($(this).hasClass('lp-shift-level-locked')) {
  34. return;
  35. }
  36. let setLevel = function (eachObj, level, removeLevel) {
  37. eachObj.removeClass('lp-shift-level-' + removeLevel);
  38. eachObj.addClass('lp-shift-level-' + level);
  39. eachObj.find('span').removeClass('lp-shift-level-' + removeLevel);
  40. eachObj.find('span').addClass('lp-shift-level-' + level);
  41. };
  42. intLiHour >= intHour ? setLevel($(this), 'work', 'none') : setLevel($(this), 'none', 'work');
  43. });
  44. $('input[name="stand_by_time[' + date + ']"]').val(hour + ':00');
  45. }
  46.  
  47. function setShiftOnOff(obj) {
  48. // 出勤可不可の設定
  49. let date = obj.attr('data-date');
  50. let hour = obj.attr('data-hour');
  51. let last = obj.attr('data-last');
  52. let on = obj.attr('data-on');
  53. let off = obj.attr('data-off');
  54. let one_week = obj.attr('data-week');
  55. let off_day = obj.attr('data-offable');
  56.  
  57. // ボタンを押したときの動作
  58. if (obj.hasClass('btn btn-secondary btn-sm') | obj.hasClass('btn btn-danger btn-sm') | (obj.hasClass('btn btn-info btn-sm') & !one_week & !off_day)){
  59. // 未提出or出勤不可→終日(1週間以内の場合は出勤不可にできない)
  60. obj.removeClass('btn btn-secondary btn-sm');
  61. obj.removeClass('btn btn-danger btn-sm');
  62. obj.removeClass('btn btn-info btn-sm');
  63. obj.addClass('btn btn-primary btn-sm');
  64. $('button[name="shift_on_off[' + date + ']"]').html("終日</br>可");
  65. $('input[name="stand_by_time[' + date + ']"]').attr('type', 'hidden');
  66. $('input[name="last_train_time[' + date + ']"]').attr('type', 'hidden');
  67. $('input[name="stand_by_time[' + date + ']"]').val(hour + ':00');
  68. $('input[name="last_train_time[' + date + ']"]').val(last + ':00');
  69. $('input[name="shift_on_off[' + date + ']"]').val(on);
  70. $('form#lp-action-form').find('div[name="shift_all_stand_by[' + date + ']"]').show();
  71. $('form#lp-action-form').find('div[name="shift_all_last_train[' + date + ']"]').show();
  72. }else if (obj.hasClass('btn btn-primary btn-sm')){
  73. // 終日可→時間入力
  74. obj.removeClass('btn btn-primary btn-sm');
  75. obj.addClass('btn btn-info btn-sm');
  76. $('button[name="shift_on_off[' + date + ']"]').html("時間</br>入力");
  77. $('input[name="stand_by_time[' + date + ']"]').attr('type', 'time');
  78. $('input[name="last_train_time[' + date + ']"]').attr('type', 'time');
  79. $('input[name="stand_by_time[' + date + ']"]').val(hour + ':00');
  80. $('input[name="last_train_time[' + date + ']"]').val(hour + ':00');
  81. $('input[name="shift_on_off[' + date + ']"]').val(on);
  82. $('form#lp-action-form').find('div[name="shift_all_stand_by[' + date + ']"]').hide();
  83. $('form#lp-action-form').find('div[name="shift_all_last_train[' + date + ']"]').hide();
  84. } else {
  85. // 時間入力→出勤不可
  86. obj.removeClass('btn btn-info btn-sm');
  87. obj.addClass('btn btn-danger btn-sm');
  88. $('#input_time[' + date + ']').hide();
  89. $('button[name="shift_on_off[' + date + ']"]').html("出勤</br>不可");
  90. $('input[name="stand_by_time[' + date + ']"]').attr('type', 'hidden');
  91. $('input[name="last_train_time[' + date + ']"]').attr('type', 'hidden');
  92. $('input[name="stand_by_time[' + date + ']"]').val(hour + ':00');
  93. $('input[name="last_train_time[' + date + ']"]').val(hour + ':00');
  94. $('input[name="shift_on_off[' + date + ']"]').val(off);
  95. $('form#lp-action-form').find('div[name="shift_all_stand_by[' + date + ']"]').hide();
  96. $('form#lp-action-form').find('div[name="shift_all_last_train[' + date + ']"]').hide();
  97. }
  98. }
  99.  
  100.  
Runtime error #stdin #stdout #stderr 0.33s 2313728KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
js: uncaught JavaScript runtime exception: ReferenceError: "$" is not defined.