gantt.attachEvent("onTaskDblClick", function(id,e){
    return false;
});

gantt.attachEvent("onAfterTaskAdd", function(id,item){
    if(item.parent && item.parent > 0){
        let parentId = item.parent;
        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);
    // console.log("cek ganttData", ganttData);
    if(ganttData.type_activity && 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 ganttData = gantt.getTask(id);
        let progress = ganttData.progress ? ganttData.progress : 0
        if(progress <= 0){
            return false
        }
    }
    // console.log("cek state", state);
    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;
    // format cost planning
    let costPlanning = new_item.rencana_biaya;
    costPlanning = replaceAll(costPlanning, ".", "");
    costPlanning = replaceAll(costPlanning, ",", ".");
    new_item['rencana_biaya'] = costPlanning;
    new_item['progress'] = progress;    
});


gantt.attachEvent("onBeforeLinkAdd", function(id,link){
    //any custom logic here
    // console.log("cek link", link);
    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;
    }
});