diff --git a/src/main/resources/static/js/datatransfer.js b/src/main/resources/static/js/datatransfer.js index 720c35c..a64d8a3 100644 --- a/src/main/resources/static/js/datatransfer.js +++ b/src/main/resources/static/js/datatransfer.js @@ -8,7 +8,10 @@ var jsonIndex = 0; var htable_row = 0; var host = getDomain(); var dataModified = false; -var discardChanges = false; +// TODO: Remove discard changes +const addMessageName = 'addMessage'; +const loadMessageName = 'changeMessage'; +const removeMessageName = 'removeMessage'; // TODO: Add last given command const C_UUID = 'mock-uuid'; @@ -22,7 +25,7 @@ const setOrigin = function(){ const getUpdate = function(){ updateData(); } -$('#iconPlus').click(function(){addMessage()}); +$('#iconPlus').click(function(){callAddMessage()}); $('#btn-addRow').click(function(){addRow()}); //TODO remove later save onclick init $('#btn-save').click(getUpdate); @@ -39,14 +42,6 @@ function getData(){ }); } -function checkDataLoss(){ - if(discardChanges && dataModified){ - discardChanges = false; - return true; - } - return false; -} - function getDomain(){ var url = window.location.href; var arr = url.split("/"); @@ -105,6 +100,22 @@ function getCookie(cname) { return ''; } +function callMethodByName(methodObject){ + let name = methodObject.name; + let id = methodObject.id; + switch(name){ + case addMessageName: + addMessage(); + break; + case loadMessageName: + loadMessage(id); + break; + case removeMessageName: + removeMessage(id); + break; + } +} + function updateData(){ var updatedJson = generateJson(); const dataSaved = function () { @@ -121,11 +132,17 @@ function updateData(){ request.done(dataSaved); } -function addMessage(){ - if(dataModified) { +function callAddMessage(){ + if(dataModified){ + setMethodToCall(addMessageName, null); dataLossModalDisplay(); - if(!checkDataLoss()) return; } + else { + addMessage(); + } +} + +function addMessage(){ var request = $.ajax({ url: host + '/mock/json/'+clientUUID, type: 'POST', @@ -135,11 +152,17 @@ function addMessage(){ }); } -function removeTile(id){ - if(dataModified) { +function callRemoveMessage(id){ + if(dataModified){ + setMethodToCall(removeMessageName, id); dataLossModalDisplay(); - if(!checkDataLoss()) return; } + else { + removeMessage(id); + } +} + +function removeMessage(id){ var jsonObject = findJsonById(id); var request = $.ajax({ url: host + '/mock/json/'+clientUUID + '/' + id, @@ -266,12 +289,14 @@ function findJsonIndexById(id){ if(id == json[i].mockedResponseId) return i; } -function changeMessage(id){ +function callLoadMessage(id){ if(dataModified) { + setMethodToCall(loadMessageName, id); dataLossModalDisplay(); - if(!checkDataLoss()) return; } - loadMessage(id); + else { + loadMessage(id); + } } function loadMessage(id){ @@ -304,10 +329,10 @@ function selectMessage(id){ } function generateMessageTileHtml(id, httpStatus, mediaType){ - var innerHTML = '
X
' + '
'; return innerHTML; } diff --git a/src/main/resources/static/js/modal.js b/src/main/resources/static/js/modal.js index 980931f..b07de7d 100644 --- a/src/main/resources/static/js/modal.js +++ b/src/main/resources/static/js/modal.js @@ -1,4 +1,8 @@ var modalDisplayed = false; +var methodToCall = { + name: null, + id: null +}; const overlay = $('#overlay'); const savedModal = $('#modal-confirm'); @@ -19,21 +23,27 @@ const savedModalDisplay = function() { const dataLossModalDisplay = function(){ showModal(dataLossModal); } + +function setMethodToCall(name, id){ + methodToCall.name = name; + methodToCall.id = id; +} + const dropChangesAndClose = function(){ - discardChanges = true; + callMethodByName(methodToCall) hideModal(dataLossModal); } function showModal(jmodal){ if(modalDisplayed) return; - overlay.toggleClass('active'); + overlay.addClass('active'); jmodal.addClass('active'); modalDisplayed = true; } function hideModal(jmodal){ if(!modalDisplayed) return; - overlay.toggleClass('active'); + overlay.removeClass('active'); jmodal.removeClass('active'); modalDisplayed = false; } diff --git a/target/classes/static/js/datatransfer.js b/target/classes/static/js/datatransfer.js index 720c35c..a64d8a3 100644 --- a/target/classes/static/js/datatransfer.js +++ b/target/classes/static/js/datatransfer.js @@ -8,7 +8,10 @@ var jsonIndex = 0; var htable_row = 0; var host = getDomain(); var dataModified = false; -var discardChanges = false; +// TODO: Remove discard changes +const addMessageName = 'addMessage'; +const loadMessageName = 'changeMessage'; +const removeMessageName = 'removeMessage'; // TODO: Add last given command const C_UUID = 'mock-uuid'; @@ -22,7 +25,7 @@ const setOrigin = function(){ const getUpdate = function(){ updateData(); } -$('#iconPlus').click(function(){addMessage()}); +$('#iconPlus').click(function(){callAddMessage()}); $('#btn-addRow').click(function(){addRow()}); //TODO remove later save onclick init $('#btn-save').click(getUpdate); @@ -39,14 +42,6 @@ function getData(){ }); } -function checkDataLoss(){ - if(discardChanges && dataModified){ - discardChanges = false; - return true; - } - return false; -} - function getDomain(){ var url = window.location.href; var arr = url.split("/"); @@ -105,6 +100,22 @@ function getCookie(cname) { return ''; } +function callMethodByName(methodObject){ + let name = methodObject.name; + let id = methodObject.id; + switch(name){ + case addMessageName: + addMessage(); + break; + case loadMessageName: + loadMessage(id); + break; + case removeMessageName: + removeMessage(id); + break; + } +} + function updateData(){ var updatedJson = generateJson(); const dataSaved = function () { @@ -121,11 +132,17 @@ function updateData(){ request.done(dataSaved); } -function addMessage(){ - if(dataModified) { +function callAddMessage(){ + if(dataModified){ + setMethodToCall(addMessageName, null); dataLossModalDisplay(); - if(!checkDataLoss()) return; } + else { + addMessage(); + } +} + +function addMessage(){ var request = $.ajax({ url: host + '/mock/json/'+clientUUID, type: 'POST', @@ -135,11 +152,17 @@ function addMessage(){ }); } -function removeTile(id){ - if(dataModified) { +function callRemoveMessage(id){ + if(dataModified){ + setMethodToCall(removeMessageName, id); dataLossModalDisplay(); - if(!checkDataLoss()) return; } + else { + removeMessage(id); + } +} + +function removeMessage(id){ var jsonObject = findJsonById(id); var request = $.ajax({ url: host + '/mock/json/'+clientUUID + '/' + id, @@ -266,12 +289,14 @@ function findJsonIndexById(id){ if(id == json[i].mockedResponseId) return i; } -function changeMessage(id){ +function callLoadMessage(id){ if(dataModified) { + setMethodToCall(loadMessageName, id); dataLossModalDisplay(); - if(!checkDataLoss()) return; } - loadMessage(id); + else { + loadMessage(id); + } } function loadMessage(id){ @@ -304,10 +329,10 @@ function selectMessage(id){ } function generateMessageTileHtml(id, httpStatus, mediaType){ - var innerHTML = '
X
' + '
'; return innerHTML; } diff --git a/target/classes/static/js/modal.js b/target/classes/static/js/modal.js index 980931f..b07de7d 100644 --- a/target/classes/static/js/modal.js +++ b/target/classes/static/js/modal.js @@ -1,4 +1,8 @@ var modalDisplayed = false; +var methodToCall = { + name: null, + id: null +}; const overlay = $('#overlay'); const savedModal = $('#modal-confirm'); @@ -19,21 +23,27 @@ const savedModalDisplay = function() { const dataLossModalDisplay = function(){ showModal(dataLossModal); } + +function setMethodToCall(name, id){ + methodToCall.name = name; + methodToCall.id = id; +} + const dropChangesAndClose = function(){ - discardChanges = true; + callMethodByName(methodToCall) hideModal(dataLossModal); } function showModal(jmodal){ if(modalDisplayed) return; - overlay.toggleClass('active'); + overlay.addClass('active'); jmodal.addClass('active'); modalDisplayed = true; } function hideModal(jmodal){ if(!modalDisplayed) return; - overlay.toggleClass('active'); + overlay.removeClass('active'); jmodal.removeClass('active'); modalDisplayed = false; }