T207 Warn is implemented

This commit is contained in:
2021-03-03 17:20:20 +01:00
parent 846675bb32
commit ca4e610da4
4 changed files with 118 additions and 48 deletions

View File

@@ -8,7 +8,10 @@ var jsonIndex = 0;
var htable_row = 0; var htable_row = 0;
var host = getDomain(); var host = getDomain();
var dataModified = false; var dataModified = false;
var discardChanges = false; // TODO: Remove discard changes
const addMessageName = 'addMessage';
const loadMessageName = 'changeMessage';
const removeMessageName = 'removeMessage';
// TODO: Add last given command // TODO: Add last given command
const C_UUID = 'mock-uuid'; const C_UUID = 'mock-uuid';
@@ -22,7 +25,7 @@ const setOrigin = function(){
const getUpdate = function(){ const getUpdate = function(){
updateData(); updateData();
} }
$('#iconPlus').click(function(){addMessage()}); $('#iconPlus').click(function(){callAddMessage()});
$('#btn-addRow').click(function(){addRow()}); $('#btn-addRow').click(function(){addRow()});
//TODO remove later save onclick init //TODO remove later save onclick init
$('#btn-save').click(getUpdate); $('#btn-save').click(getUpdate);
@@ -39,14 +42,6 @@ function getData(){
}); });
} }
function checkDataLoss(){
if(discardChanges && dataModified){
discardChanges = false;
return true;
}
return false;
}
function getDomain(){ function getDomain(){
var url = window.location.href; var url = window.location.href;
var arr = url.split("/"); var arr = url.split("/");
@@ -105,6 +100,22 @@ function getCookie(cname) {
return ''; 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(){ function updateData(){
var updatedJson = generateJson(); var updatedJson = generateJson();
const dataSaved = function () { const dataSaved = function () {
@@ -121,11 +132,17 @@ function updateData(){
request.done(dataSaved); request.done(dataSaved);
} }
function addMessage(){ function callAddMessage(){
if(dataModified) { if(dataModified){
setMethodToCall(addMessageName, null);
dataLossModalDisplay(); dataLossModalDisplay();
if(!checkDataLoss()) return;
} }
else {
addMessage();
}
}
function addMessage(){
var request = $.ajax({ var request = $.ajax({
url: host + '/mock/json/'+clientUUID, url: host + '/mock/json/'+clientUUID,
type: 'POST', type: 'POST',
@@ -135,11 +152,17 @@ function addMessage(){
}); });
} }
function removeTile(id){ function callRemoveMessage(id){
if(dataModified) { if(dataModified){
setMethodToCall(removeMessageName, id);
dataLossModalDisplay(); dataLossModalDisplay();
if(!checkDataLoss()) return;
} }
else {
removeMessage(id);
}
}
function removeMessage(id){
var jsonObject = findJsonById(id); var jsonObject = findJsonById(id);
var request = $.ajax({ var request = $.ajax({
url: host + '/mock/json/'+clientUUID + '/' + id, url: host + '/mock/json/'+clientUUID + '/' + id,
@@ -266,12 +289,14 @@ function findJsonIndexById(id){
if(id == json[i].mockedResponseId) return i; if(id == json[i].mockedResponseId) return i;
} }
function changeMessage(id){ function callLoadMessage(id){
if(dataModified) { if(dataModified) {
setMethodToCall(loadMessageName, id);
dataLossModalDisplay(); dataLossModalDisplay();
if(!checkDataLoss()) return;
} }
loadMessage(id); else {
loadMessage(id);
}
} }
function loadMessage(id){ function loadMessage(id){
@@ -304,10 +329,10 @@ function selectMessage(id){
} }
function generateMessageTileHtml(id, httpStatus, mediaType){ function generateMessageTileHtml(id, httpStatus, mediaType){
var innerHTML = '<div class="menuItem" id="item_' + id + '" onclick="changeMessage('+ id +')">' + var innerHTML = '<div class="menuItem" id="item_' + id + '" onclick="callLoadMessage('+ id +')">' +
'<table><tr><td>Id: '+ id +'</td></tr>' + '<table><tr><td>Id: '+ id +'</td></tr>' +
'<tr><td>Http-status: '+ httpStatus +'</td></tr>' + '<tr><td>Http-status: '+ httpStatus +'</td></tr>' +
'</table></div><div class="btn-del-MenuItem" onclick="removeTile(' + id + ')">X</div>' + '</table></div><div class="btn-del-MenuItem" onclick="callRemoveMessage(' + id + ')">X</div>' +
'<div style="clear: both;"></div>'; '<div style="clear: both;"></div>';
return innerHTML; return innerHTML;
} }

View File

@@ -1,4 +1,8 @@
var modalDisplayed = false; var modalDisplayed = false;
var methodToCall = {
name: null,
id: null
};
const overlay = $('#overlay'); const overlay = $('#overlay');
const savedModal = $('#modal-confirm'); const savedModal = $('#modal-confirm');
@@ -19,21 +23,27 @@ const savedModalDisplay = function() {
const dataLossModalDisplay = function(){ const dataLossModalDisplay = function(){
showModal(dataLossModal); showModal(dataLossModal);
} }
function setMethodToCall(name, id){
methodToCall.name = name;
methodToCall.id = id;
}
const dropChangesAndClose = function(){ const dropChangesAndClose = function(){
discardChanges = true; callMethodByName(methodToCall)
hideModal(dataLossModal); hideModal(dataLossModal);
} }
function showModal(jmodal){ function showModal(jmodal){
if(modalDisplayed) return; if(modalDisplayed) return;
overlay.toggleClass('active'); overlay.addClass('active');
jmodal.addClass('active'); jmodal.addClass('active');
modalDisplayed = true; modalDisplayed = true;
} }
function hideModal(jmodal){ function hideModal(jmodal){
if(!modalDisplayed) return; if(!modalDisplayed) return;
overlay.toggleClass('active'); overlay.removeClass('active');
jmodal.removeClass('active'); jmodal.removeClass('active');
modalDisplayed = false; modalDisplayed = false;
} }

View File

@@ -8,7 +8,10 @@ var jsonIndex = 0;
var htable_row = 0; var htable_row = 0;
var host = getDomain(); var host = getDomain();
var dataModified = false; var dataModified = false;
var discardChanges = false; // TODO: Remove discard changes
const addMessageName = 'addMessage';
const loadMessageName = 'changeMessage';
const removeMessageName = 'removeMessage';
// TODO: Add last given command // TODO: Add last given command
const C_UUID = 'mock-uuid'; const C_UUID = 'mock-uuid';
@@ -22,7 +25,7 @@ const setOrigin = function(){
const getUpdate = function(){ const getUpdate = function(){
updateData(); updateData();
} }
$('#iconPlus').click(function(){addMessage()}); $('#iconPlus').click(function(){callAddMessage()});
$('#btn-addRow').click(function(){addRow()}); $('#btn-addRow').click(function(){addRow()});
//TODO remove later save onclick init //TODO remove later save onclick init
$('#btn-save').click(getUpdate); $('#btn-save').click(getUpdate);
@@ -39,14 +42,6 @@ function getData(){
}); });
} }
function checkDataLoss(){
if(discardChanges && dataModified){
discardChanges = false;
return true;
}
return false;
}
function getDomain(){ function getDomain(){
var url = window.location.href; var url = window.location.href;
var arr = url.split("/"); var arr = url.split("/");
@@ -105,6 +100,22 @@ function getCookie(cname) {
return ''; 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(){ function updateData(){
var updatedJson = generateJson(); var updatedJson = generateJson();
const dataSaved = function () { const dataSaved = function () {
@@ -121,11 +132,17 @@ function updateData(){
request.done(dataSaved); request.done(dataSaved);
} }
function addMessage(){ function callAddMessage(){
if(dataModified) { if(dataModified){
setMethodToCall(addMessageName, null);
dataLossModalDisplay(); dataLossModalDisplay();
if(!checkDataLoss()) return;
} }
else {
addMessage();
}
}
function addMessage(){
var request = $.ajax({ var request = $.ajax({
url: host + '/mock/json/'+clientUUID, url: host + '/mock/json/'+clientUUID,
type: 'POST', type: 'POST',
@@ -135,11 +152,17 @@ function addMessage(){
}); });
} }
function removeTile(id){ function callRemoveMessage(id){
if(dataModified) { if(dataModified){
setMethodToCall(removeMessageName, id);
dataLossModalDisplay(); dataLossModalDisplay();
if(!checkDataLoss()) return;
} }
else {
removeMessage(id);
}
}
function removeMessage(id){
var jsonObject = findJsonById(id); var jsonObject = findJsonById(id);
var request = $.ajax({ var request = $.ajax({
url: host + '/mock/json/'+clientUUID + '/' + id, url: host + '/mock/json/'+clientUUID + '/' + id,
@@ -266,12 +289,14 @@ function findJsonIndexById(id){
if(id == json[i].mockedResponseId) return i; if(id == json[i].mockedResponseId) return i;
} }
function changeMessage(id){ function callLoadMessage(id){
if(dataModified) { if(dataModified) {
setMethodToCall(loadMessageName, id);
dataLossModalDisplay(); dataLossModalDisplay();
if(!checkDataLoss()) return;
} }
loadMessage(id); else {
loadMessage(id);
}
} }
function loadMessage(id){ function loadMessage(id){
@@ -304,10 +329,10 @@ function selectMessage(id){
} }
function generateMessageTileHtml(id, httpStatus, mediaType){ function generateMessageTileHtml(id, httpStatus, mediaType){
var innerHTML = '<div class="menuItem" id="item_' + id + '" onclick="changeMessage('+ id +')">' + var innerHTML = '<div class="menuItem" id="item_' + id + '" onclick="callLoadMessage('+ id +')">' +
'<table><tr><td>Id: '+ id +'</td></tr>' + '<table><tr><td>Id: '+ id +'</td></tr>' +
'<tr><td>Http-status: '+ httpStatus +'</td></tr>' + '<tr><td>Http-status: '+ httpStatus +'</td></tr>' +
'</table></div><div class="btn-del-MenuItem" onclick="removeTile(' + id + ')">X</div>' + '</table></div><div class="btn-del-MenuItem" onclick="callRemoveMessage(' + id + ')">X</div>' +
'<div style="clear: both;"></div>'; '<div style="clear: both;"></div>';
return innerHTML; return innerHTML;
} }

View File

@@ -1,4 +1,8 @@
var modalDisplayed = false; var modalDisplayed = false;
var methodToCall = {
name: null,
id: null
};
const overlay = $('#overlay'); const overlay = $('#overlay');
const savedModal = $('#modal-confirm'); const savedModal = $('#modal-confirm');
@@ -19,21 +23,27 @@ const savedModalDisplay = function() {
const dataLossModalDisplay = function(){ const dataLossModalDisplay = function(){
showModal(dataLossModal); showModal(dataLossModal);
} }
function setMethodToCall(name, id){
methodToCall.name = name;
methodToCall.id = id;
}
const dropChangesAndClose = function(){ const dropChangesAndClose = function(){
discardChanges = true; callMethodByName(methodToCall)
hideModal(dataLossModal); hideModal(dataLossModal);
} }
function showModal(jmodal){ function showModal(jmodal){
if(modalDisplayed) return; if(modalDisplayed) return;
overlay.toggleClass('active'); overlay.addClass('active');
jmodal.addClass('active'); jmodal.addClass('active');
modalDisplayed = true; modalDisplayed = true;
} }
function hideModal(jmodal){ function hideModal(jmodal){
if(!modalDisplayed) return; if(!modalDisplayed) return;
overlay.toggleClass('active'); overlay.removeClass('active');
jmodal.removeClass('active'); jmodal.removeClass('active');
modalDisplayed = false; modalDisplayed = false;
} }