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.
104 lines
2.7 KiB
104 lines
2.7 KiB
gantt.attachEvent("onTaskDblClick", function(id,e){ |
|
return false; |
|
}); |
|
|
|
gantt.attachEvent("onAfterTaskAdd", function(id,item){ |
|
if(item.parent && gantt.hasChild()) { |
|
let parentId = item.parent; |
|
if(gantt.getTask(parentId).parent_id != null){ |
|
gantt.getTask(parentId).type = "project"; |
|
gantt.updateTask(parentId); |
|
} |
|
} |
|
}); |
|
|
|
gantt.attachEvent("onTaskRowClick", function(id,row){ |
|
activityId = id; |
|
var activity = gantt.getTaskBy("id", id); |
|
activityName = activity[0]?.name; |
|
}); |
|
|
|
gantt.ext.inlineEditors.attachEvent("onBeforeEditStart", function(state){ |
|
let id = parseInt(state.id) |
|
let ganttData = gantt.getTask(id); |
|
if(ganttData?.type_activity=="header"){ |
|
return false |
|
} |
|
let column = state.columnName |
|
if(column=="progress" || column=="rencana_biaya"){ |
|
let hasChild = gantt.hasChild(id); |
|
if(hasChild){ |
|
return false |
|
} |
|
} |
|
|
|
if(column=="cost_actual"){ |
|
let progress = ganttData.progress ? ganttData.progress : 0 |
|
if(progress <= 0){ |
|
return false |
|
} |
|
} |
|
return true |
|
}); |
|
|
|
gantt.attachEvent("onBeforeTaskUpdate", function(id,new_item){ |
|
// format progress |
|
let progress = new_item.progress; |
|
if(progress > 100){ |
|
progress = 100; |
|
}else if(progress <= 0){ |
|
progress = 0; |
|
}else if(progress <= 1 && progress > 0){ |
|
progress = progress*100 |
|
} |
|
progress = progress/100; |
|
new_item['progress'] = progress; |
|
new_item['end_date'].setHours(23,59,59); |
|
let newDuration = gantt.calculateDuration({ |
|
start_date: new_item['start_date'], |
|
end_date: new_item['end_date'] |
|
}) |
|
new_item['duration'] = newDuration; |
|
}); |
|
|
|
gantt.attachEvent("onAfterTaskDrag", function(id, mode, e){ |
|
var task = gantt.getTask(id); |
|
task.end_date = gantt.calculateEndDate(task); |
|
gantt.updateTask(id); |
|
}); |
|
|
|
gantt.attachEvent("onBeforeLinkAdd", function(id,link){ |
|
//any custom logic here |
|
let source = link.source; |
|
let target = link.target; |
|
let parents = gantt.getParent(source); |
|
let parentt = gantt.getParent(target); |
|
let childt = gantt.hasChild(target); |
|
if(childt){ |
|
return false; |
|
} |
|
|
|
if(parents==target){ |
|
return false; |
|
} |
|
|
|
if(parentt==source){ |
|
return false |
|
} |
|
|
|
return true; |
|
}); |
|
|
|
gantt.attachEvent("onGanttReady", function(){ |
|
|
|
}); |
|
|
|
gantt.attachEvent("onGanttRender", function(){ |
|
if(readOnly && parseInt(readOnly)==1){ |
|
gantt.config.readonly = true; |
|
}else if(readOnly && parseInt(readOnly)==0){ |
|
gantt.config.readonly = false; |
|
}else{ |
|
gantt.config.readonly = true; |
|
} |
|
});
|
|
|