From 5ad01f6415710521173e7a612b32c982847eada4 Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Mon, 24 Sep 2018 19:42:01 +0200 Subject: gui: use json for all API answers --- gui/static/js/odr-modulator.js | 52 ++---------------- gui/static/js/odr-predistortion.js | 40 ++------------ gui/static/js/odr-rcvalues.js | 31 +++-------- gui/static/js/odr.js | 109 +++++++++++++++++++++++++++++++++++++ 4 files changed, 126 insertions(+), 106 deletions(-) create mode 100644 gui/static/js/odr.js (limited to 'gui/static/js') diff --git a/gui/static/js/odr-modulator.js b/gui/static/js/odr-modulator.js index 273d9f7..8538645 100644 --- a/gui/static/js/odr-modulator.js +++ b/gui/static/js/odr-modulator.js @@ -18,48 +18,6 @@ // You should have received a copy of the GNU General Public License // along with ODR-DabMod. If not, see . -function set_rc(controllable, param, value, callback) { - $.ajax({ - type: "POST", - url: "/api/parameter", - contentType: 'application/json', - dataType: 'json', - data: JSON.stringify({ - controllable: controllable, - param: param, - value: value - }), - - error: function(data) { - $.gritter.add({ - title: 'RC set', - text: "ERROR", - image: '/fonts/warning.png', - sticky: true, - }); - }, - success: callback - }); -} - -function getRc(callback) { - $.ajax({ - type: "GET", - url: "/api/rc_parameters", - contentType: 'application/json', - dataType: 'json', - - error: function(data) { - $.gritter.add({ - title: 'RC info', - text: "ERROR: ", - image: '/fonts/warning.png', - sticky: true, - }); - }, - success: callback - }); -} function requestAllParams(callback) { getRc(function(data) { @@ -86,21 +44,21 @@ $(function(){ requestAllParams(); $('#setdigitalgain').click(function() { - set_rc("gain", "digital", $('#digitalgain').val(), + setRc("gain", "digital", $('#digitalgain').val(), requestAllParams); }); $('#setwindowlength').click(function() { - set_rc("guardinterval", "windowlen", $('#windowlength').val(), + setRc("guardinterval", "windowlen", $('#windowlength').val(), requestAllParams); }); $('#setclip').click(function() { - set_rc("ofdm", "clip", $('#cfrclip').val(), + setRc("ofdm", "clip", $('#cfrclip').val(), requestAllParams); - set_rc("ofdm", "errorclip", $('#cfrerrorclip').val(), + setRc("ofdm", "errorclip", $('#cfrerrorclip').val(), requestAllParams); - set_rc("ofdm", "cfr", + setRc("ofdm", "cfr", ($('#cfrenable').prop("checked") ? "1" : "0"), requestAllParams); }); diff --git a/gui/static/js/odr-predistortion.js b/gui/static/js/odr-predistortion.js index dce3922..13dac7a 100644 --- a/gui/static/js/odr-predistortion.js +++ b/gui/static/js/odr-predistortion.js @@ -20,46 +20,14 @@ $(function(){ $('#capturebutton').click(function() { - $.ajax({ - type: "POST", - url: "/api/trigger_capture", - contentType: 'text/plain', - dataType: '', - data: '', - - error: function(data) { - $.gritter.add({ - title: 'Capture trigger', - text: "ERROR", - image: '/fonts/warning.png', - sticky: true, - }); - }, - success: function(data) { - $('#capturestatus').val(data); - }, + doApiRequestPOST("/api/trigger_capture", {}, function(data) { + $('#capturestatus').val(data); }); }); $('#dpdstatusbutton').click(function() { - $.ajax({ - type: "GET", - url: "/api/dpd_status", - contentType: 'application/json', - dataType: '', - data: '', - - error: function(data) { - $.gritter.add({ - title: 'DPD Status Update', - text: "ERROR", - image: '/fonts/warning.png', - sticky: true, - }); - }, - success: function(data) { - $('#dpdstatus').val(data); - }, + doApiRequestGET("/api/dpd_status", function(data) { + $('#dpdstatus').val(data); }); }); }); diff --git a/gui/static/js/odr-rcvalues.js b/gui/static/js/odr-rcvalues.js index 6d53e8d..f40279d 100644 --- a/gui/static/js/odr-rcvalues.js +++ b/gui/static/js/odr-rcvalues.js @@ -21,30 +21,15 @@ function requestStatus(callback) { $('#rctable > tbody').empty(); - $.ajax({ - type: "GET", - url: "/api/rc_parameters", - contentType: 'application/json', - dataType: 'json', - - error: function(data) { - $.gritter.add({ - title: 'RC info', - text: "ERROR: ", - image: '/fonts/warning.png', - sticky: true, - }); - }, - success: function(data) { - $.each( data, function( key1, controllable ) { - $.each( controllable, function( key2, param ) { - $('#rctable > tbody:last').append( - ''+key1+'.'+key2+''+ - ''+param['value']+''+ - ''+param['help']+''); - }); + doApiRequestGET("/api/rc_parameters", function(data) { + $.each( data, function( key1, controllable ) { + $.each( controllable, function( key2, param ) { + $('#rctable > tbody:last').append( + ''+key1+'.'+key2+''+ + ''+param['value']+''+ + ''+param['help']+''); }); - } + }); }); } diff --git a/gui/static/js/odr.js b/gui/static/js/odr.js new file mode 100644 index 0000000..ecb02c5 --- /dev/null +++ b/gui/static/js/odr.js @@ -0,0 +1,109 @@ +// Copyright (C) 2018 +// Matthias P. Braendli, matthias.braendli@mpb.li +// +// http://www.opendigitalradio.org +// +// This file is part of ODR-DabMod. +// +// ODR-DabMod is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// ODR-DabMod is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with ODR-DabMod. If not, see . + + +function doApiRequestGET(uri, callback) { + $.ajax({ + type: "GET", + url: uri, + contentType: 'application/json', + dataType: 'json', + + error: function(data) { + if (data.status == 500) { + var errorWindow = window.open("", "_self"); + errorWindow.document.write(data.responseText); + } + else { + $.gritter.add({ title: 'API', + text: "AJAX failed: " + data.statusText, + image: '/fonts/warning.png', + sticky: true, + }); + } + }, + success: function(data) { + if (data.status == 'ok') { + callback(data.data); + } + else { + $.gritter.add({ + title: 'API', + text: "API ERROR: " + data.reason, + image: '/fonts/warning.png', + sticky: true, + }); + } + } + }); +} + +function doApiRequestPOST(uri, data, callback) { + $.ajax({ + type: "POST", + url: uri, + contentType: 'application/json', + dataType: 'json', + data: JSON.stringify(data), + + error: function(data) { + if (data.status == 500) { + var errorWindow = window.open("", "_self"); + errorWindow.document.write(data.responseText); + } + else { + $.gritter.add({ + title: 'API', + text: "AJAX failed: " + data.statusText, + image: '/fonts/warning.png', + sticky: true, + }); + } + }, + + success: function(data_in) { + if (data_in.status == 'ok') { + callback(data_in.data); + } + else { + $.gritter.add({ + title: 'API', + text: "API ERROR: " + data_in.reason, + image: '/fonts/warning.png', + sticky: true, + }); + } + } + }); +} + +function setRc(controllable, param, value, callback) { + var data = { + controllable: controllable, + param: param, + value: value + }; + doApiRequestPOST("/api/parameter/", data, callback); +} + +function getRc(callback) { + doApiRequestGET("/api/rc_parameters", callback); +} + -- cgit v1.2.3