function resetFormHoliday(){ $("#form_holiday").hide(); $('#form_holiday').trigger("reset"); $("#add-holiday").show(); $("#hide-holiday").hide(); $('#btn_add_holiday').html('Add Holiday'); $('#btn_add_holiday').prop("disabled",false); } $(document).ready(function () { var tableHoliday = $("#table_holiday").DataTable( { "processing": true, "serverSide": true, "ajax": { "url": `${base_url}holiday/datatables`, "data": function ( d ) { d.proyek_id = proyekId; d.gantt_id = ganttId; } }, "columns": [ {data: 'date', name: 'date'}, {data: 'duration', name: 'duration'}, {data: 'description', name: 'description'}, { data: 'action', name: 'action', orderable: false, searchable: false } ] }); $('#modal_gantt_setting').on('hide.bs.modal', function (event) { gantt.render(); }); $("#modal_gantt_setting").on("click", "#add-holiday", function(){ $(this).hide(); $("#hide-holiday").show(); $("#form_holiday").show(); }); $("#modal_gantt_setting").on("click", "#hide-holiday", function(){ $(this).hide(); resetFormHoliday() $("#add-holiday").show(); }); $("#form_holiday").on('submit', function (e) { e.preventDefault(); let payload = { date: $("#date_holiday").val(), duration: $("#duration_holiday").val(), description: $("#desc_holiday").val(), version_gantt_id:ganttId, proyek_id:proyekId, } $.ajax({ data: JSON.stringify(payload), url: `${base_url}holiday/add`, type: "POST", processData: false, contentType: false, success: function (data) { resetFormHoliday(); tableHoliday.draw(); gantt.alert("Add Holiday Success!"); initHolidays(); }, error: function (data) { resetFormHoliday(); gantt.alert("Add Holiday Failed, try again later!"); } }); }); function unsetHolidays(data){ var a = moment(data.date); var b = moment(a).add(data.duration, 'days'); for (var m = moment(a); m.isBefore(b); m.add(1, 'days')) { let holiday = new Date(m.format('YYYY-MM-DD')); // console.log("cek holiday", holiday) gantt.unsetWorkTime({ date: holiday, hours:false }); } initHolidays(); } function deleteHoliday(id) { $.ajax({ url: `${base_url}holiday/delete/${id}`, type:"DELETE", success: function (data) { // console.log("cek data", data.data); gantt.alert("Delete Holiday Success!"); tableHoliday.draw(); if(data.data){ unsetHolidays(data.data); } }, error: function (data) { gantt.alert("Delete Holiday Failed, try again later!"); } }); } $("#table_holiday").on("click", ".btn-holiday-delete", function() { let id = $(this).data('id'); gantt.confirm({ text: "Holiday will be deleted from gantt, continue?", ok:"Delete", cancel:"Cancel", callback: function(result){ if(result){ deleteHoliday(id); } } }); }); });