diff --git a/edit-mode/function/function.js b/edit-mode/function/function.js
index 7ce02f1..9aee472 100644
--- a/edit-mode/function/function.js
+++ b/edit-mode/function/function.js
@@ -633,10 +633,6 @@ function expandTask() {
gantt.render();
}
-function resetActivity() {
- localStorage.setItem('batchEntity', '');
- gantt.alert("Actiivity Saved");
-}
// Function to get the earliest planned start date among all tasks
function getEarliestTaskDate() {
var earliestDate = null;
@@ -665,4 +661,40 @@ function getLatestTaskDate() {
}
});
return latestDate;
-}
\ No newline at end of file
+}
+
+function batchUpdate(){
+ let data = localStorage.getItem('batchEntity');
+ $("body").addClass("loading");
+ return gantt.ajax.post({
+ headers: {
+ "Content-Type": "application/json",
+ "Authorization": `Bearer ${token}`
+ },
+ url: base_url + "activity/batch-update/" + ganttId,
+ data: data
+ }).then(function (response) {
+ $("body").removeClass("loading");
+ localStorage.setItem('batchEntity', '');
+ }).catch(function (error) {
+ $("body").removeClass("loading")
+ localStorage.setItem('batchEntity', '');
+
+ gantt.alert({
+ title: "Peringatan",
+ type: "alert-error",
+ text: "Update activity gagal"
+ });
+ });
+}
+
+$(window).on('beforeunload', function(event) {
+ let batchEntity = localStorage.getItem('batchEntity');
+ if (batchEntity && batchEntity != '') {
+ event.preventDefault()
+ return event.returnValue = 'You have unsaved changes. Are you sure you want to leave this page?';
+ }
+});
+
+const batchEntityData = localStorage.getItem('batchEntity');
+window.parent.postMessage({ batchEntity: batchEntityData }, '*');
\ No newline at end of file
diff --git a/edit-mode/function/ganttSettings.js b/edit-mode/function/ganttSettings.js
index 061bbc4..77db70c 100644
--- a/edit-mode/function/ganttSettings.js
+++ b/edit-mode/function/ganttSettings.js
@@ -136,7 +136,7 @@ $(document).ready(function () {
});
$("#save-activity").on('click', function (event) {
- resetActivity();
+ batchUpdate();
});
$("#gantt-synchronize").on('click', function (event) {
diff --git a/edit-mode/function/restActivityLink.js b/edit-mode/function/restActivityLink.js
index 84d2f05..5fdaff1 100644
--- a/edit-mode/function/restActivityLink.js
+++ b/edit-mode/function/restActivityLink.js
@@ -182,56 +182,56 @@ var dp = gantt.createDataProcessor(function (entity, action, data, id) {
});
}
data['geom'] = geom.find(obj => obj.activity_id == id)?.geom;
- // let existingEntity = localStorage.getItem('batchEntity');
- // if (existingEntity) {
- // existingEntity = JSON.parse(existingEntity);
- // // Now batchEntity is an object containing your data, and you can access its properties like batchEntity.entity and batchEntity.data
- // }
- // let batchEntity = {
- // entity: entity,
- // data: data
- // };
- // let toBeSet = []
- // if (existingEntity) {
- // toBeSet = [...existingEntity, batchEntity]
- // } else {
- // toBeSet = [batchEntity]
- // }
- // localStorage.setItem('batchEntity', JSON.stringify(toBeSet));
- $("body").addClass("loading");
- return gantt.ajax.put({
- headers: {
- "Content-Type": "application/json",
- "Authorization": `Bearer ${token}`
- },
- url: base_url + entity + "/" + id,
- data: JSON.stringify(data)
- }).then(function (response) {
- $("body").removeClass("loading");
- if (entity == "task") {
- let parent = data.parent;
- let responseText = JSON.parse(response.responseText)
- let resData = responseText
- let updateBobot = resData.update_bobot || false
- if (updateBobot) {
- if (parent && parent > 0) {
- updateActivity(parent);
- }
- } else if (parent && parent > 0) {
- updateActivity(parent);
- }
- if (!parent) {
- refresData();
- }
- }
- }).catch(function (error) {
- $("body").removeClass("loading");
- gantt.alert({
- title: "Peringatan",
- type: "alert-error",
- text: "Update activity gagal"
- });
- });
+ let existingEntity = localStorage.getItem('batchEntity');
+ if (existingEntity) {
+ existingEntity = JSON.parse(existingEntity);
+ // Now batchEntity is an object containing your data, and you can access its properties like batchEntity.entity and batchEntity.data
+ }
+ let batchEntity = {
+ entity: entity,
+ data: data
+ };
+ let toBeSet = []
+ if (existingEntity) {
+ toBeSet = [...existingEntity, batchEntity]
+ } else {
+ toBeSet = [batchEntity]
+ }
+ localStorage.setItem('batchEntity', JSON.stringify(toBeSet));
+ // $("body").addClass("loading");
+ // return gantt.ajax.put({
+ // headers: {
+ // "Content-Type": "application/json",
+ // "Authorization": `Bearer ${token}`
+ // },
+ // url: base_url + entity + "/" + id,
+ // data: JSON.stringify(data)
+ // }).then(function (response) {
+ // $("body").removeClass("loading");
+ // if (entity == "task") {
+ // let parent = data.parent;
+ // let responseText = JSON.parse(response.responseText)
+ // let resData = responseText
+ // let updateBobot = resData.update_bobot || false
+ // if (updateBobot) {
+ // if (parent && parent > 0) {
+ // updateActivity(parent);
+ // }
+ // } else if (parent && parent > 0) {
+ // updateActivity(parent);
+ // }
+ // if (!parent) {
+ // refresData();
+ // }
+ // }
+ // }).catch(function (error) {
+ // $("body").removeClass("loading");
+ // gantt.alert({
+ // title: "Peringatan",
+ // type: "alert-error",
+ // text: "Update activity gagal"
+ // });
+ // });
break;
case "delete":
diff --git a/edit-mode/index.html b/edit-mode/index.html
index 5a188e1..dd17be9 100644
--- a/edit-mode/index.html
+++ b/edit-mode/index.html
@@ -87,9 +87,9 @@
|
-
+ |
|