From 727cbfd8a9fdcd59a5d96664d4ba148d9dedf23d Mon Sep 17 00:00:00 2001 From: Wahyu Ramadhan Date: Wed, 9 Aug 2023 15:12:03 +0700 Subject: [PATCH 1/5] Send storage to parent --- edit-mode/function/function.js | 8 ++++++-- edit-mode/function/restActivityLink.js | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/edit-mode/function/function.js b/edit-mode/function/function.js index 4e66384..19c3e0f 100644 --- a/edit-mode/function/function.js +++ b/edit-mode/function/function.js @@ -677,6 +677,7 @@ function batchUpdate(){ }).then(function (response) { $("body").removeClass("loading"); localStorage.setItem('batchEntity', ''); + sendStorage(); refresData(); }).catch(function (error) { $("body").removeClass("loading") @@ -691,11 +692,14 @@ function batchUpdate(){ $(window).on('beforeunload', function(event) { let batchEntity = localStorage.getItem('batchEntity'); + sendStorage(); 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 +function sendStorage(){ + const batchEntityData = localStorage.getItem('batchEntity'); + window.parent.postMessage({ batchEntity: batchEntityData }, '*'); +} \ No newline at end of file diff --git a/edit-mode/function/restActivityLink.js b/edit-mode/function/restActivityLink.js index 5fdaff1..6e6600c 100644 --- a/edit-mode/function/restActivityLink.js +++ b/edit-mode/function/restActivityLink.js @@ -198,6 +198,7 @@ var dp = gantt.createDataProcessor(function (entity, action, data, id) { toBeSet = [batchEntity] } localStorage.setItem('batchEntity', JSON.stringify(toBeSet)); + sendStorage(); // $("body").addClass("loading"); // return gantt.ajax.put({ // headers: { From 6e6606ec598dfa31c13d13480aeff303c2ed59d3 Mon Sep 17 00:00:00 2001 From: Wahyu Ramadhan Date: Thu, 10 Aug 2023 09:41:01 +0700 Subject: [PATCH 2/5] Fix cumulative request --- view-mode/function/overlaySCurve.js | 98 ++++++++++++++--------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/view-mode/function/overlaySCurve.js b/view-mode/function/overlaySCurve.js index 087bdb5..2c928da 100644 --- a/view-mode/function/overlaySCurve.js +++ b/view-mode/function/overlaySCurve.js @@ -13,59 +13,59 @@ function callback(response) { return_first = response; } -function getSCurveData(){ - - // Send a message to the parent window requesting the URL - window.parent.postMessage({ action: 'getUrl' }, '*'); - - // Listen for messages from the parent window - window.addEventListener('message', function(event) { - if (event.data && event.data.action === 'sendUrl') { - const parentUrl = event.data.url; +function messageListener(event) { + if (event.data && event.data.action === 'sendUrl') { + const parentUrl = event.data.url; // Remove the base URL and hash const path = parentUrl.replace("https://adw.ospro.id/#/dashboard-project/", ""); - // Split the remaining path by "/" - parts = path.split("/"); - if (parts[2] && parts[2] == "1") { - $.ajax({ - headers: { - "Content-Type": "application/json", - "Authorization": `Bearer ${token}` - }, - url: `${base_url}project/calculate-s-curve`, - type: "POST", - data:JSON.stringify(sCurvePayload), - success: function (data) { - callback(data) - } - }); - $.ajax({ - headers: { - "Content-Type": "application/json", - "Authorization": `Bearer ${token}` - }, - url: `${base_url}project/s-curve-command`, - type: "POST", - data:JSON.stringify(sCurvePayload), - }); - } else { - $.ajax({ - headers: { - "Content-Type": "application/json", - "Authorization": `Bearer ${token}` - }, - url: `${base_url}project/get-s-curve`, - type: "POST", - data:JSON.stringify(sCurvePayload), - success: function (data) { - callback(data) - } - }); - } - } - }); + // Split the remaining path by "/" + parts = path.split("/"); + if (parts[2] && parts[2] == "1") { + $.ajax({ + headers: { + "Content-Type": "application/json", + "Authorization": `Bearer ${token}` + }, + url: `${base_url}project/calculate-s-curve`, + type: "POST", + data: JSON.stringify(sCurvePayload), + success: function (data) { + callback(data) + window.removeEventListener('message', messageListener); + } + }); + $.ajax({ + headers: { + "Content-Type": "application/json", + "Authorization": `Bearer ${token}` + }, + url: `${base_url}project/s-curve-command`, + type: "POST", + data: JSON.stringify(sCurvePayload), + }); + } else { + $.ajax({ + headers: { + "Content-Type": "application/json", + "Authorization": `Bearer ${token}` + }, + url: `${base_url}project/get-s-curve`, + type: "POST", + data: JSON.stringify(sCurvePayload), + success: function (data) { + callback(data) + window.removeEventListener('message', messageListener); + } + }); + } + } +} + +function getSCurveData() { + window.parent.postMessage({ action: 'getUrl' }, '*'); + window.addEventListener('message', messageListener); }; function toggleOverlay() { From 5c218bb399f5ee218f8411a0e98c9f5f9ab62555 Mon Sep 17 00:00:00 2001 From: Wahyu Ramadhan Date: Thu, 10 Aug 2023 10:54:00 +0700 Subject: [PATCH 3/5] Fix s curve date range --- view-mode/function/overlaySCurve.js | 48 +++++++++++++++-------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/view-mode/function/overlaySCurve.js b/view-mode/function/overlaySCurve.js index 2c928da..6221a8d 100644 --- a/view-mode/function/overlaySCurve.js +++ b/view-mode/function/overlaySCurve.js @@ -17,7 +17,7 @@ function messageListener(event) { if (event.data && event.data.action === 'sendUrl') { const parentUrl = event.data.url; - // Remove the base URL and hash + // Remove the base URL and hash const path = parentUrl.replace("https://adw.ospro.id/#/dashboard-project/", ""); // Split the remaining path by "/" @@ -118,28 +118,30 @@ function getProgressLine(){ return {planned: cumulativePlannedDurations, real: cumulativeRealDurations, dates: dates}; } -function getScalePaddings(){ +function getScalePaddings(values){ var scale = gantt.getScale(); var dataRange = gantt.getSubtaskDates(); - let minDate = new Date(); - let maxDate = new Date(); + // let minDate = new Date(); + // let maxDate = new Date(); + let minValueDate = new Date(values.dates[0]); + let maxValueDate = new Date(values.dates[values.dates.length -1]); - gantt.eachTask(function(task){ - let plannedEarlier = task.planned_start < task.start_date; - let plannedLater = task.planned_end > task.end_date; + // gantt.eachTask(function(task){ + // let plannedEarlier = task.planned_start < task.start_date; + // let plannedLater = task.planned_end > task.end_date; - if (plannedEarlier) { - minDate = new Date(Math.min(minDate.getTime(), task.planned_start.getTime())); - } else { - minDate = new Date(Math.min(minDate.getTime(), task.start_date.getTime())); - } + // if (plannedEarlier) { + // minDate = new Date(Math.min(minDate.getTime(), task.planned_start.getTime())); + // } else { + // minDate = new Date(Math.min(minDate.getTime(), task.start_date.getTime())); + // } - if (plannedLater) { - maxDate = new Date(Math.max(maxDate.getTime(), task.planned_end.getTime())); - } else { - maxDate = new Date(Math.max(maxDate.getTime(), task.end_date.getTime())); - } - }) + // if (plannedLater) { + // maxDate = new Date(Math.max(maxDate.getTime(), task.planned_end.getTime())); + // } else { + // maxDate = new Date(Math.max(maxDate.getTime(), task.end_date.getTime())); + // } + // }) var padding = { left:0, @@ -147,10 +149,10 @@ function getScalePaddings(){ }; if(dataRange.start_date){ - var yScaleLabelsWidth = 48; + // var yScaleLabelsWidth = 48; // fine tune values in order to align chart with the scale range - padding.left = gantt.posFromDate(minDate) - yScaleLabelsWidth; - padding.right = scale.full_width - gantt.posFromDate(maxDate) - yScaleLabelsWidth; + padding.left = gantt.posFromDate(minValueDate); + padding.right = scale.full_width - gantt.posFromDate(maxValueDate); padding.top = gantt.config.row_height - 12; padding.bottom = gantt.config.row_height - 12; } @@ -213,13 +215,13 @@ var lineOverlay = overlayControl.addOverlay(function(container) { responsive: true, maintainAspectRatio: false, layout: { - padding: getScalePaddings() + padding: getScalePaddings(values) }, onResize: function(chart, newSize) { var dataRange = gantt.getSubtaskDates(); if(dataRange.start_date){ // align chart with the scale range - chart.options.layout.padding = getScalePaddings(); + chart.options.layout.padding = getScalePaddings(values); } }, legend: { From 3dbf992702442c16e25b499c32f94e70d37f09d7 Mon Sep 17 00:00:00 2001 From: Wahyu Ramadhan Date: Thu, 10 Aug 2023 12:07:50 +0700 Subject: [PATCH 4/5] Fix date range --- view-mode/function/overlaySCurve.js | 34 ++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/view-mode/function/overlaySCurve.js b/view-mode/function/overlaySCurve.js index 6221a8d..e498f38 100644 --- a/view-mode/function/overlaySCurve.js +++ b/view-mode/function/overlaySCurve.js @@ -121,27 +121,27 @@ function getProgressLine(){ function getScalePaddings(values){ var scale = gantt.getScale(); var dataRange = gantt.getSubtaskDates(); - // let minDate = new Date(); - // let maxDate = new Date(); + let minDate = new Date(); + let maxDate = new Date(); let minValueDate = new Date(values.dates[0]); let maxValueDate = new Date(values.dates[values.dates.length -1]); - // gantt.eachTask(function(task){ - // let plannedEarlier = task.planned_start < task.start_date; - // let plannedLater = task.planned_end > task.end_date; + gantt.eachTask(function(task){ + let plannedEarlier = task.planned_start < task.start_date; + let plannedLater = task.planned_end > task.end_date; - // if (plannedEarlier) { - // minDate = new Date(Math.min(minDate.getTime(), task.planned_start.getTime())); - // } else { - // minDate = new Date(Math.min(minDate.getTime(), task.start_date.getTime())); - // } + if (plannedEarlier) { + minDate = new Date(Math.min(minDate.getTime(), task.planned_start.getTime())); + } else { + minDate = new Date(Math.min(minDate.getTime(), task.start_date.getTime())); + } - // if (plannedLater) { - // maxDate = new Date(Math.max(maxDate.getTime(), task.planned_end.getTime())); - // } else { - // maxDate = new Date(Math.max(maxDate.getTime(), task.end_date.getTime())); - // } - // }) + if (plannedLater) { + maxDate = new Date(Math.max(maxDate.getTime(), task.planned_end.getTime())); + } else { + maxDate = new Date(Math.max(maxDate.getTime(), task.end_date.getTime())); + } + }) var padding = { left:0, @@ -149,7 +149,7 @@ function getScalePaddings(values){ }; if(dataRange.start_date){ - // var yScaleLabelsWidth = 48; + var yScaleLabelsWidth = 48; // fine tune values in order to align chart with the scale range padding.left = gantt.posFromDate(minValueDate); padding.right = scale.full_width - gantt.posFromDate(maxValueDate); From 703107b5993e65906bd4b9c63989b5644ab9c786 Mon Sep 17 00:00:00 2001 From: Wahyu Ramadhan Date: Thu, 10 Aug 2023 12:09:21 +0700 Subject: [PATCH 5/5] Quick fix --- view-mode/function/overlaySCurve.js | 32 ++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/view-mode/function/overlaySCurve.js b/view-mode/function/overlaySCurve.js index e498f38..bac7636 100644 --- a/view-mode/function/overlaySCurve.js +++ b/view-mode/function/overlaySCurve.js @@ -121,27 +121,27 @@ function getProgressLine(){ function getScalePaddings(values){ var scale = gantt.getScale(); var dataRange = gantt.getSubtaskDates(); - let minDate = new Date(); - let maxDate = new Date(); + // let minDate = new Date(); + // let maxDate = new Date(); let minValueDate = new Date(values.dates[0]); let maxValueDate = new Date(values.dates[values.dates.length -1]); - gantt.eachTask(function(task){ - let plannedEarlier = task.planned_start < task.start_date; - let plannedLater = task.planned_end > task.end_date; + // gantt.eachTask(function(task){ + // let plannedEarlier = task.planned_start < task.start_date; + // let plannedLater = task.planned_end > task.end_date; - if (plannedEarlier) { - minDate = new Date(Math.min(minDate.getTime(), task.planned_start.getTime())); - } else { - minDate = new Date(Math.min(minDate.getTime(), task.start_date.getTime())); - } + // if (plannedEarlier) { + // minDate = new Date(Math.min(minDate.getTime(), task.planned_start.getTime())); + // } else { + // minDate = new Date(Math.min(minDate.getTime(), task.start_date.getTime())); + // } - if (plannedLater) { - maxDate = new Date(Math.max(maxDate.getTime(), task.planned_end.getTime())); - } else { - maxDate = new Date(Math.max(maxDate.getTime(), task.end_date.getTime())); - } - }) + // if (plannedLater) { + // maxDate = new Date(Math.max(maxDate.getTime(), task.planned_end.getTime())); + // } else { + // maxDate = new Date(Math.max(maxDate.getTime(), task.end_date.getTime())); + // } + // }) var padding = { left:0,