Fixed history problem, and improve mock services frontend
This commit is contained in:
		@@ -2,9 +2,7 @@ var clientUUID = '';
 | 
			
		||||
var advancedDisplayed = false;
 | 
			
		||||
var json = {};
 | 
			
		||||
var jsonIndex = 0;
 | 
			
		||||
var htable_row = 0;
 | 
			
		||||
var host = window.location.protocol + "//" + window.location.hostname + ":8097";
 | 
			
		||||
var dataModified = false;
 | 
			
		||||
 | 
			
		||||
const C_UUID = 'mock-uuid';
 | 
			
		||||
const C_ADV = 'advanced-mode';
 | 
			
		||||
@@ -15,9 +13,6 @@ const color_grey = "#6b6b6b";
 | 
			
		||||
const setModified = function(){
 | 
			
		||||
    setDataModified();
 | 
			
		||||
}
 | 
			
		||||
const setOrigin = function(){
 | 
			
		||||
    setDataOrigin();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const getUpdate = function(){
 | 
			
		||||
    updateData();
 | 
			
		||||
@@ -26,12 +21,50 @@ const dataRefresh = function(){
 | 
			
		||||
    getData();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
    Listeners segment
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
$(document).on('change', '.data-field', setModified);
 | 
			
		||||
 | 
			
		||||
$('#btn-save').click( 
 | 
			
		||||
    () => {
 | 
			
		||||
        disableSaveButton();
 | 
			
		||||
    }
 | 
			
		||||
    );
 | 
			
		||||
    
 | 
			
		||||
$('#btn-newRow').click(
 | 
			
		||||
    ()=> {
 | 
			
		||||
        newRowInput();
 | 
			
		||||
        setDataModified();
 | 
			
		||||
    }   
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
    Functions segment
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
function disableSaveButton(){
 | 
			
		||||
    $('#btn-save').removeClass('active');
 | 
			
		||||
    $('#btn-save').off();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function createLink(uuid){
 | 
			
		||||
    var link =  host + '/api/mock/r/'+uuid;
 | 
			
		||||
    return link;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function onLoad(){
 | 
			
		||||
    loadCookies();
 | 
			
		||||
    getData();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getData(){
 | 
			
		||||
    $.getJSON(host + '/api/mock/'+clientUUID, function(data) {
 | 
			
		||||
        console.log(data)
 | 
			
		||||
        json = data;
 | 
			
		||||
        loadFetchedMessage();
 | 
			
		||||
        initializeUUID();
 | 
			
		||||
        loadMessage();
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -52,13 +85,6 @@ function initializeUUID(){
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getDomain(){
 | 
			
		||||
    var url = window.location.href;
 | 
			
		||||
    var arr = url.split("/");
 | 
			
		||||
    var result = arr[0] + "//" + arr[2];
 | 
			
		||||
    return result;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function httpStatusInvalid(){
 | 
			
		||||
    value = $('#httpStatus').val();
 | 
			
		||||
    return value == '';
 | 
			
		||||
@@ -71,19 +97,9 @@ function setDataModified(){
 | 
			
		||||
        document.getElementById("httpStatus").style.backgroundColor = color_red;
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    dataModified = true;
 | 
			
		||||
    $('#btn-save').addClass('active');
 | 
			
		||||
    $('#btn-save').click(getUpdate);
 | 
			
		||||
    document.getElementById("httpStatus").style.backgroundColor = null;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//Adding change listener to fields
 | 
			
		||||
$('.data-field').change(setModified);
 | 
			
		||||
 | 
			
		||||
function setDataOrigin(){
 | 
			
		||||
    dataModified = false;
 | 
			
		||||
    $('#btn-save').removeClass('active');
 | 
			
		||||
    $('#btn-save').off();
 | 
			
		||||
        $('#btn-save').addClass('active');
 | 
			
		||||
        $('#btn-save').click(getUpdate);
 | 
			
		||||
        document.getElementById("httpStatus").style.backgroundColor = null;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getCookie(cname) {
 | 
			
		||||
@@ -103,10 +119,9 @@ function getCookie(cname) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function updateData(){
 | 
			
		||||
    var updatedJson = generateJson();
 | 
			
		||||
    var updatedJson = createRequestBody();
 | 
			
		||||
    const dataSaved = function () {
 | 
			
		||||
        setDataOrigin();
 | 
			
		||||
        loadMessage();
 | 
			
		||||
        loadFetchedMessage();
 | 
			
		||||
        savedModalDisplay();
 | 
			
		||||
    }
 | 
			
		||||
    $.ajax({
 | 
			
		||||
@@ -115,22 +130,18 @@ function updateData(){
 | 
			
		||||
        data: JSON.stringify(updatedJson, null, 2),
 | 
			
		||||
        contentType: "application/json",
 | 
			
		||||
    }).done(dataSaved);
 | 
			
		||||
    disableSaveButton();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function clearMock(){
 | 
			
		||||
    fillStaticFields('','','','');
 | 
			
		||||
    htable_row = 0;
 | 
			
		||||
    $('#httpStatusValues').html('');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function initializeMock(){
 | 
			
		||||
        clearMock();
 | 
			
		||||
        fillStaticFields(
 | 
			
		||||
            json.clientUUID,
 | 
			
		||||
            json.contentType,
 | 
			
		||||
            json.messageBody,
 | 
			
		||||
            json.httpStatus);
 | 
			
		||||
        fillHeaderTable(json.httpHeaders);
 | 
			
		||||
function loadFetchedMessage(){
 | 
			
		||||
    fillStaticFields(
 | 
			
		||||
        json.clientUUID,
 | 
			
		||||
        json.contentType,
 | 
			
		||||
        json.messageBody,
 | 
			
		||||
        json.httpStatus);
 | 
			
		||||
    fillHeaderTable(json.httpHeaders);
 | 
			
		||||
    initializeHistory();
 | 
			
		||||
    refreshHeaderTable(document.innerHTML);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function fillStaticFields(uuid, contentType, body, httpStatus){
 | 
			
		||||
@@ -142,11 +153,6 @@ function fillStaticFields(uuid, contentType, body, httpStatus){
 | 
			
		||||
    $('#bodyEditor').val(body);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function createLink(uuid){
 | 
			
		||||
    var link =  host + '/api/mock/r/'+uuid;
 | 
			
		||||
    return link;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function fillHeaderTable(headers){
 | 
			
		||||
    var innerHTML = buildHeaderMapHtml(headers);
 | 
			
		||||
    refreshHeaderTable(innerHTML);
 | 
			
		||||
@@ -154,10 +160,9 @@ function fillHeaderTable(headers){
 | 
			
		||||
 | 
			
		||||
function refreshHeaderTable(html){
 | 
			
		||||
    $('#headerMapTable').html(html);
 | 
			
		||||
    $('.table-map').change(function(){setDataModified()});
 | 
			
		||||
    $('.btn-hashmap').click(function(){
 | 
			
		||||
        $(this).closest('tr').remove();
 | 
			
		||||
        setDataModified();
 | 
			
		||||
        $(this).closest('tr').remove();
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -176,19 +181,16 @@ function addRow(key, value){
 | 
			
		||||
    refreshHeaderTable(headersMapHtml);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const newRowInput = function(){
 | 
			
		||||
function newRowInput(){
 | 
			
		||||
    const hName = $('#headerKeyInput');
 | 
			
		||||
    const hValue = $('#headerValueInput');
 | 
			
		||||
    if(checkIfInputValid(hName.val()) && checkIfInputValid(hValue.val())){
 | 
			
		||||
        addRow(hName.val(), hValue.val());
 | 
			
		||||
        hName.val(null);
 | 
			
		||||
        hValue.val(null);
 | 
			
		||||
        setDataModified();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$('#btn-newRow').click(newRowInput);
 | 
			
		||||
 | 
			
		||||
function checkIfInputValid(input){
 | 
			
		||||
    return !(input == '' || input == null || input == undefined);
 | 
			
		||||
}
 | 
			
		||||
@@ -219,34 +221,11 @@ function buildRowHtml(key, value){
 | 
			
		||||
    '</tr>';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function loadMessage(){
 | 
			
		||||
    setCookie();
 | 
			
		||||
    setDataOrigin();
 | 
			
		||||
    initializeMock();
 | 
			
		||||
    selectMessage();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function selectMessage(){
 | 
			
		||||
    initializeHistory();
 | 
			
		||||
    refreshHeaderTable(document.innerHTML);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const onbuild = function(){
 | 
			
		||||
    loadCookies();
 | 
			
		||||
    getData();
 | 
			
		||||
    if(advancedDisplayed) {
 | 
			
		||||
        changeAdvancedVisibility();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$(document).ready(onbuild);
 | 
			
		||||
 | 
			
		||||
function sleep(ms) {
 | 
			
		||||
    return new Promise(resolve => setTimeout(resolve, ms));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function generateJson(){
 | 
			
		||||
function createRequestBody(){
 | 
			
		||||
    var newJson =
 | 
			
		||||
        {
 | 
			
		||||
            clientUUID: json.clientUUID,
 | 
			
		||||
 
 | 
			
		||||
@@ -227,19 +227,5 @@ $('#btnSave').focusin(function(){focusInTip('btnSaveTip')});
 | 
			
		||||
$('#btnSave').mouseleave(function(){hidTip('btnSaveTip')});
 | 
			
		||||
$('#btnSave').focusout(function(){focusOutTip('btnSaveTip')});
 | 
			
		||||
 | 
			
		||||
$('#new-tile').mouseover(function(){showTip('btn-newTileTip');});
 | 
			
		||||
$('#new-tile').mouseleave(function(){hidTip('btn-newTileTip')});
 | 
			
		||||
$('#new-tile').focusout(function(){focusOutTip('btn-newTileTip')});
 | 
			
		||||
 | 
			
		||||
$('#listItems').mouseover(function(){showTip('messagesTip');});
 | 
			
		||||
$('#listItems').mouseleave(function(){hidTip('messagesTip')});
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
$('#uuid-edit-field').mouseover(function(){ showTip('UUIDFieldTip') });
 | 
			
		||||
$('#uuid-edit-field').mouseleave(function(){ hidTip('UUIDFieldTip') });
 | 
			
		||||
 | 
			
		||||
$('#uuid-validation-strategy').mouseover(function(){ showTip('UUIDValidationStrategyTip') });
 | 
			
		||||
$('#uuid-validation-strategy').mouseleave(function(){ hidTip('UUIDValidationStrategyTip') });
 | 
			
		||||
 | 
			
		||||
$('#editableBlock').mouseover( function(){ showTip('UUIDEditionTip') } );
 | 
			
		||||
$('#editableBlock').mouseleave(function(){ hidTip('UUIDEditionTip') });
 | 
			
		||||
$('#listItems').mouseleave(function(){hidTip('messagesTip')});
 | 
			
		||||
		Reference in New Issue
	
	Block a user