From be83a8f382cf2fea98161bfd6d51719aacbf9aa9 Mon Sep 17 00:00:00 2001 From: Fulup Ar Foll Date: Thu, 28 Jan 2016 16:30:12 +0100 Subject: Update JSON API --- afm-client/app/Backend/RestApis/AfmMainMockApi.js | 16 ++++--- .../Frontend/pages/Dashboard/DashboardModule.js | 7 +-- .../Frontend/widgets/ActionButtons/AppliButton.js | 55 ++++++++++++++-------- 3 files changed, 49 insertions(+), 29 deletions(-) (limited to 'afm-client/app') diff --git a/afm-client/app/Backend/RestApis/AfmMainMockApi.js b/afm-client/app/Backend/RestApis/AfmMainMockApi.js index 0d8cd87..e615e59 100644 --- a/afm-client/app/Backend/RestApis/AfmMainMockApi.js +++ b/afm-client/app/Backend/RestApis/AfmMainMockApi.js @@ -22,11 +22,11 @@ * /api/afm-main/runnables // no params * /api/afm-main/details &id="xxxx" * /api/afm-main/start &id="xxxx" - * /api/afm-main/terminate &id="xxxx" - * /api/afm-main/stop &id="xxxx" - * /api/afm-main/continue &id="xxxx" - * /api/afm-main/runners &id="xxxx" - * /api/afm-main/state &id="xxxx" + * /api/afm-main/terminate &runid="xxxx" + * /api/afm-main/stop &runid="xxxx" + * /api/afm-main/continue &runid="xxxx" + * /api/afm-main/runners // no params + * /api/afm-main/state &runid="xxxx" * ----------------------------------------------------------------------*/ @@ -38,11 +38,13 @@ function NewApi(handle, prefix) { handle.app.get (prefix +'/runnables', function (req, res) { var Response= { jtype: "AJB_reply", request: { "prefix": "afm-main", "api": "runnables", "uuid": "e4ef5e66-xxxx", "token": "123456789-xxxxx", "status": "processed" }, - response: [ + response: {runnables: [ {id: "webapps-rabbit@0.0", version: "0.0.8", name: "Rabbit", description: "Fun grid game where the rabbit finds and eats the carrots dodging the foxes.", shortname: "", author: "Todd Brandt " }, {id: "webapps-annex@0.0", version: "0.0.10", name: "Annex", description: "Reversi/Othello", shortname: "", author: "Todd Brandt " }, {id: "webapps-memory-match@1.1", version: "1.1.7", name: "MemoryMatch", description: "Memory match", shortname: "", author: "Todd Brandt " } - ]}; + ]}}; + + /* "jtype":"AJB_reply","request":{"prefix":"afm-main","api":"runnables","status":"processed"},"response":{"runnables":[{"id":"webapps-annex@0.0","version":"0.0.10","width":0,"height":0,"name":"Annex","description":"Reversi/Othello","shortname":"","author":"Todd Brandt "},{"id":"webapps-rabbit@0.0","version":"0.0.8","width":0,"height":0,"name":"Rabbit","description":"Fun grid game where the rabbit finds and eats the carrots dodging the foxes.","shortname":"","author":"Todd Brandt "}]}}*/ res.send(Response); }); diff --git a/afm-client/app/Frontend/pages/Dashboard/DashboardModule.js b/afm-client/app/Frontend/pages/Dashboard/DashboardModule.js index 0114a26..f4330cf 100644 --- a/afm-client/app/Frontend/pages/Dashboard/DashboardModule.js +++ b/afm-client/app/Frontend/pages/Dashboard/DashboardModule.js @@ -46,9 +46,10 @@ angular.module('DashboardModule', ['SubmitButton', 'TokenRefresh', 'AppliButton' // loop on runnable application to prepare for display var appliIDs=[]; - for (var idx=0; idx < response.data.response.length; idx ++) { - appliIDs[idx] = response.data.response [idx].id; - scope.appliStore [response.data.response [idx].id] = response.data.response [idx]; + var runnables = response.data.response.runnables; + for (var idx=0; idx < runnables.length; idx ++) { + appliIDs[idx] = runnables [idx].id; + scope.appliStore [runnables [idx].id] = runnables [idx]; } scope.appliIDs = appliIDs; // avoid partial update to limit UI refresh diff --git a/afm-client/app/Frontend/widgets/ActionButtons/AppliButton.js b/afm-client/app/Frontend/widgets/ActionButtons/AppliButton.js index 50220dd..a17ebc9 100644 --- a/afm-client/app/Frontend/widgets/ActionButtons/AppliButton.js +++ b/afm-client/app/Frontend/widgets/ActionButtons/AppliButton.js @@ -42,6 +42,19 @@ function mymethods(scope, elem, attrs) { scope.clicked = function () { + + var notifyError = function(api, response) { + Notification.error ({message: "Fail /api/afm-main" + api + "=" + scope.label + " RunID="+ scope.appID, delay: 5000}); + elem.addClass ("fail"); + elem.removeClass ("success"); + scope.callback (scope.appliID, api, response); + }; + + var notifySuccess = function (api, response) { + elem.removeClass ("fail"); + scope.runID = response.data.response.runid; + scope.callback (scope.appliID, "/api/afm-main/start", response); + }; var closeModal = function() { console.log ("Modal Closing"); @@ -55,33 +68,37 @@ case "start": AppCall.get ("afm-main", "start", {id: scope.appliID}, function(response) { - if (response.status !== 200) { - Notification.error ({message: "Fail to start application=" + scope.label +" ID="+ scope.appliID, delay: 5000}); - elem.addClass ("fail"); - elem.removeClass ("success"); - scope.callback (scope.appliID, "/api/afm-main/start", response); - return; - } - - // Check this is a valid response from Binder - if (response.data.request.jtype !== "AJB_reply" && response.data.request.api !== "start") { - Notification.error ({message: "Invalid Respond to /opa/afm-main/start response.data="+response.data, delay: 5000}); - elem.addClass ("fail"); - elem.removeClass ("success"); - scope.callback (scope.appliID, "/api/afm-main/start", response); + if (response.status !== 200 || response.data.request.jtype !== "AJB_reply") { + notifyError ("start", response); return; } - // Application was started - elem.addClass ("success"); - elem.removeClass ("fail"); - scope.runID = response.data.response.runid; - scope.callback (scope.appliID, "/api/afm-main/start", response); + notifySuccess ("start", response); }); break; case "stop": + AppCall.get ("afm-main", "stop", {id: scope.runID}, function(response) { + if (response.status !== 200 || response.data.request.jtype !== "AJB_reply") { + notifyError ("stop", response); + return; + } + + notifySuccess ("stop", response); + }); break; + + case "info": + AppCall.get ("afm-main", "detail", {id: scope.appID}, function(response) { + if (response.status !== 200 || response.data.request.jtype !== "AJB_reply") { + notifyError ("detail", response); + return; + } + + notifySuccess ("detail", response); + }); + break; + default: console.log ("ActionModal unknown action=[%s]", action); -- cgit 1.2.3-korg