Browse Source

Merge pull request 'staging' (#6) from staging into master

Reviewed-on: ordo/adw-gantt#6
pull/1/head
ibnu 1 year ago
parent
commit
a6ee006732
  1. 4
      edit-mode/function/function.js
  2. 1
      edit-mode/function/restActivityLink.js
  3. 60
      view-mode/function/overlaySCurve.js

4
edit-mode/function/function.js

@ -677,6 +677,7 @@ function batchUpdate(){
}).then(function (response) { }).then(function (response) {
$("body").removeClass("loading"); $("body").removeClass("loading");
localStorage.setItem('batchEntity', ''); localStorage.setItem('batchEntity', '');
sendStorage();
refresData(); refresData();
}).catch(function (error) { }).catch(function (error) {
$("body").removeClass("loading") $("body").removeClass("loading")
@ -691,11 +692,14 @@ function batchUpdate(){
$(window).on('beforeunload', function(event) { $(window).on('beforeunload', function(event) {
let batchEntity = localStorage.getItem('batchEntity'); let batchEntity = localStorage.getItem('batchEntity');
sendStorage();
if (batchEntity && batchEntity != '') { if (batchEntity && batchEntity != '') {
event.preventDefault() event.preventDefault()
return event.returnValue = 'You have unsaved changes. Are you sure you want to leave this page?'; return event.returnValue = 'You have unsaved changes. Are you sure you want to leave this page?';
} }
}); });
function sendStorage(){
const batchEntityData = localStorage.getItem('batchEntity'); const batchEntityData = localStorage.getItem('batchEntity');
window.parent.postMessage({ batchEntity: batchEntityData }, '*'); window.parent.postMessage({ batchEntity: batchEntityData }, '*');
}

1
edit-mode/function/restActivityLink.js

@ -198,6 +198,7 @@ var dp = gantt.createDataProcessor(function (entity, action, data, id) {
toBeSet = [batchEntity] toBeSet = [batchEntity]
} }
localStorage.setItem('batchEntity', JSON.stringify(toBeSet)); localStorage.setItem('batchEntity', JSON.stringify(toBeSet));
sendStorage();
// $("body").addClass("loading"); // $("body").addClass("loading");
// return gantt.ajax.put({ // return gantt.ajax.put({
// headers: { // headers: {

60
view-mode/function/overlaySCurve.js

@ -13,13 +13,7 @@ function callback(response) {
return_first = response; return_first = response;
} }
function getSCurveData(){ function messageListener(event) {
// 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') { if (event.data && event.data.action === 'sendUrl') {
const parentUrl = event.data.url; const parentUrl = event.data.url;
@ -39,6 +33,7 @@ function getSCurveData(){
data: JSON.stringify(sCurvePayload), data: JSON.stringify(sCurvePayload),
success: function (data) { success: function (data) {
callback(data) callback(data)
window.removeEventListener('message', messageListener);
} }
}); });
$.ajax({ $.ajax({
@ -61,11 +56,16 @@ function getSCurveData(){
data: JSON.stringify(sCurvePayload), data: JSON.stringify(sCurvePayload),
success: function (data) { success: function (data) {
callback(data) callback(data)
window.removeEventListener('message', messageListener);
} }
}); });
} }
} }
}); }
function getSCurveData() {
window.parent.postMessage({ action: 'getUrl' }, '*');
window.addEventListener('message', messageListener);
}; };
function toggleOverlay() { function toggleOverlay() {
@ -118,28 +118,30 @@ function getProgressLine(){
return {planned: cumulativePlannedDurations, real: cumulativeRealDurations, dates: dates}; return {planned: cumulativePlannedDurations, real: cumulativeRealDurations, dates: dates};
} }
function getScalePaddings(){ function getScalePaddings(values){
var scale = gantt.getScale(); var scale = gantt.getScale();
var dataRange = gantt.getSubtaskDates(); var dataRange = gantt.getSubtaskDates();
let minDate = new Date(); // let minDate = new Date();
let maxDate = 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){ // gantt.eachTask(function(task){
let plannedEarlier = task.planned_start < task.start_date; // let plannedEarlier = task.planned_start < task.start_date;
let plannedLater = task.planned_end > task.end_date; // let plannedLater = task.planned_end > task.end_date;
if (plannedEarlier) { // if (plannedEarlier) {
minDate = new Date(Math.min(minDate.getTime(), task.planned_start.getTime())); // minDate = new Date(Math.min(minDate.getTime(), task.planned_start.getTime()));
} else { // } else {
minDate = new Date(Math.min(minDate.getTime(), task.start_date.getTime())); // minDate = new Date(Math.min(minDate.getTime(), task.start_date.getTime()));
} // }
if (plannedLater) { // if (plannedLater) {
maxDate = new Date(Math.max(maxDate.getTime(), task.planned_end.getTime())); // maxDate = new Date(Math.max(maxDate.getTime(), task.planned_end.getTime()));
} else { // } else {
maxDate = new Date(Math.max(maxDate.getTime(), task.end_date.getTime())); // maxDate = new Date(Math.max(maxDate.getTime(), task.end_date.getTime()));
} // }
}) // })
var padding = { var padding = {
left:0, left:0,
@ -149,8 +151,8 @@ function getScalePaddings(){
if(dataRange.start_date){ if(dataRange.start_date){
var yScaleLabelsWidth = 48; var yScaleLabelsWidth = 48;
// fine tune values in order to align chart with the scale range // fine tune values in order to align chart with the scale range
padding.left = gantt.posFromDate(minDate) - yScaleLabelsWidth; padding.left = gantt.posFromDate(minValueDate);
padding.right = scale.full_width - gantt.posFromDate(maxDate) - yScaleLabelsWidth; padding.right = scale.full_width - gantt.posFromDate(maxValueDate);
padding.top = gantt.config.row_height - 12; padding.top = gantt.config.row_height - 12;
padding.bottom = gantt.config.row_height - 12; padding.bottom = gantt.config.row_height - 12;
} }
@ -213,13 +215,13 @@ var lineOverlay = overlayControl.addOverlay(function(container) {
responsive: true, responsive: true,
maintainAspectRatio: false, maintainAspectRatio: false,
layout: { layout: {
padding: getScalePaddings() padding: getScalePaddings(values)
}, },
onResize: function(chart, newSize) { onResize: function(chart, newSize) {
var dataRange = gantt.getSubtaskDates(); var dataRange = gantt.getSubtaskDates();
if(dataRange.start_date){ if(dataRange.start_date){
// align chart with the scale range // align chart with the scale range
chart.options.layout.padding = getScalePaddings(); chart.options.layout.padding = getScalePaddings(values);
} }
}, },
legend: { legend: {

Loading…
Cancel
Save