summaryrefslogtreecommitdiffstats
path: root/afm-client/app
diff options
context:
space:
mode:
authorFulup Ar Foll <fulup@iot.bzh>2016-01-28 16:30:12 +0100
committerFulup Ar Foll <fulup@iot.bzh>2016-01-28 16:30:12 +0100
commitbe83a8f382cf2fea98161bfd6d51719aacbf9aa9 (patch)
tree3fb02337f8d7d308ef7ca7818ecc3d3a6ee05d88 /afm-client/app
parent1a4ed39bf86b2115eb0f1387d1e988462b492776 (diff)
Update JSON API
Diffstat (limited to 'afm-client/app')
-rw-r--r--afm-client/app/Backend/RestApis/AfmMainMockApi.js16
-rw-r--r--afm-client/app/Frontend/pages/Dashboard/DashboardModule.js7
-rw-r--r--afm-client/app/Frontend/widgets/ActionButtons/AppliButton.js55
3 files changed, 49 insertions, 29 deletions
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 <todd.e.brandt@intel.com>" },
{id: "webapps-annex@0.0", version: "0.0.10", name: "Annex", description: "Reversi/Othello", shortname: "", author: "Todd Brandt <todd.e.brandt@intel.com>" },
{id: "webapps-memory-match@1.1", version: "1.1.7", name: "MemoryMatch", description: "Memory match", shortname: "", author: "Todd Brandt <todd.e.brandt@intel.com>" }
- ]};
+ ]}};
+
+ /* "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 <todd.e.brandt@intel.com>"},{"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 <todd.e.brandt@intel.com>"}]}}*/
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);