You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
127 lines
4.3 KiB
127 lines
4.3 KiB
2 years ago
|
var milestoneModal = $('#modal-add-milestone > .modal-dialog > .modal-content');
|
||
|
function addMilestone(id){
|
||
|
console.log("cek cek id milestone", id);
|
||
|
if(id && id > 0){
|
||
|
$("#milestone_parent").val(id);
|
||
|
}
|
||
|
$("#modal-add-milestone").modal("show");
|
||
|
}
|
||
|
|
||
|
function resetFormMilestone(){
|
||
|
$('#select-milestone').val(null).trigger("change");
|
||
|
$('#select-milestone').find('option').remove();
|
||
|
$('#select-milestone').val("");
|
||
|
$("#milestone_parent").val("");
|
||
|
$("#name_milestone").val("");
|
||
|
$('#form-milestone').trigger("reset");
|
||
|
$('#submit-milestone').html('Add');
|
||
|
$('#submit-milestone').prop("disabled",false);
|
||
|
$("#modal-add-milestone").modal("hide");
|
||
|
|
||
|
}
|
||
|
|
||
|
$(document).ready(function () {
|
||
|
$('#select-milestone').select2({
|
||
|
dropdownParent: milestoneModal,
|
||
|
selectOnBlur: true,
|
||
|
placeholder: 'Pilih / masukan milestone',
|
||
|
allowClear:true,
|
||
|
ajax: {
|
||
|
url: `${base_url}project-milestone/select`,
|
||
|
dataType: 'json',
|
||
|
data: function (params) {
|
||
|
var query = {
|
||
|
search: params.term,
|
||
|
type: 'public',
|
||
|
idProject:proyekId,
|
||
|
idGantt:ganttId
|
||
|
}
|
||
|
return query;
|
||
|
},
|
||
|
processResults: function (result) {
|
||
|
return {
|
||
|
results: $.map(result, function (item) {
|
||
|
// console.log("cek item", item)
|
||
|
return {
|
||
|
due_date:item.due_date,
|
||
|
deadline:item.deadline,
|
||
|
text: item.status,
|
||
|
id: item.id
|
||
|
}
|
||
|
})
|
||
|
};
|
||
|
},
|
||
|
cache: false
|
||
|
},
|
||
|
tags: true,
|
||
|
createTag: function (params) {
|
||
|
return {
|
||
|
id: params.term,
|
||
|
text: params.term,
|
||
|
newOption: true
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
$('#select-milestone').on('select2:select', function (e) {
|
||
|
var data = e.params.data;
|
||
|
$("#due_milestone").val(data.due_date);
|
||
|
$("#deadline_milestone").val(data.deadline);
|
||
|
$("#name_milestone").val(data.text);
|
||
|
});
|
||
|
|
||
|
|
||
|
$('#modal-material').on('show.bs.modal', function (event) {
|
||
|
|
||
|
});
|
||
|
|
||
|
$('#modal-material').on('hide.bs.modal', function (event) {
|
||
|
resetFormMilestone();
|
||
|
});
|
||
|
|
||
|
// form-milestone
|
||
|
$("#form-milestone").on('submit', function (e) {
|
||
|
e.preventDefault();
|
||
|
$('#submit-milestone').html('Add..');
|
||
|
$('#submit-milestone').prop("disabled",true);
|
||
|
var data = Object.fromEntries(new FormData(this));
|
||
|
console.log("cek data form", data);
|
||
|
let parent = data.milestone_parent;
|
||
|
var taskId = 0;
|
||
|
var start = moment(data.due_date, "YYYY-MM-DD");
|
||
|
var end = moment(data.deadline, "YYYY-MM-DD");
|
||
|
let duration = moment.duration(start.diff(end)).asDays();
|
||
|
let nameMilestone = data.status!="" ? data.status : data.id_milestone
|
||
|
// console.log("cek duration", Math.abs(duration));
|
||
|
if(parent && parseInt(parent) > 0){
|
||
|
taskId = gantt.addTask({
|
||
|
id: Math.floor(Math.random() * 1000) + 5000,
|
||
|
text: nameMilestone,
|
||
|
start_date: data.due_date,
|
||
|
end_date: data.deadline,
|
||
|
duration: Math.abs(duration),
|
||
|
type: "milestone",
|
||
|
type_activity:"milestone"
|
||
|
}, parent);
|
||
|
}else{
|
||
|
taskId = gantt.addTask({
|
||
|
id: Math.floor(Math.random() * 1000) + 5000,
|
||
|
text: nameMilestone,
|
||
|
start_date: data.due_date,
|
||
|
end_date: data.deadline,
|
||
|
duration: Math.abs(duration),
|
||
|
type: "milestone",
|
||
|
type_activity:"milestone"
|
||
|
});
|
||
|
}
|
||
|
|
||
|
if(taskId && taskId > 0){
|
||
|
resetFormMilestone();
|
||
|
gantt.alert("Add Milestone Success!");
|
||
|
}else{
|
||
|
$('#submit-milestone').html('Add');
|
||
|
$('#submit-milestone').prop("disabled",false);
|
||
|
gantt.alert("Add Milestone Failed!");
|
||
|
}
|
||
|
});
|
||
|
});
|