diff options
Diffstat (limited to 'afm-client/app')
-rw-r--r-- | afm-client/app/Backend/RestApis/AfmMainMockApi.js | 17 | ||||
-rw-r--r-- | afm-client/app/Frontend/widgets/ActionButtons/AppliButton.js | 44 |
2 files changed, 51 insertions, 10 deletions
diff --git a/afm-client/app/Backend/RestApis/AfmMainMockApi.js b/afm-client/app/Backend/RestApis/AfmMainMockApi.js index e615e59..1715c21 100644 --- a/afm-client/app/Backend/RestApis/AfmMainMockApi.js +++ b/afm-client/app/Backend/RestApis/AfmMainMockApi.js @@ -48,6 +48,23 @@ function NewApi(handle, prefix) { res.send(Response); }); + + handle.app.get (prefix +'/detail', function (req, res) { + var apps = { + "webapps-rabbit@0.0": {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>" }, + "webapps-annex@0.0": {id: "webapps-annex@0.0", version: "0.0.10", name: "Annex", description: "Reversi/Othello", shortname: "", author: "Todd Brandt <todd.e.brandt@intel.com>" }, + "webapps-memory-match@1.1": {id: "webapps-memory-match@1.1", version: "1.1.7", name: "MemoryMatch", description: "Memory match", shortname: "", author: "Todd Brandt <todd.e.brandt@intel.com>" } + }; + + var Response= { jtype: "AJB_reply", + request: { "prefix": "afm-main", "api": "detail", "uuid": "e4ef5e66-xxxx", "token": "123456789-xxxxx", "status": "processed" }, + response: apps[req.query.id] + }; + + /* "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); + }); } // Export Class diff --git a/afm-client/app/Frontend/widgets/ActionButtons/AppliButton.js b/afm-client/app/Frontend/widgets/ActionButtons/AppliButton.js index a17ebc9..f54c5b0 100644 --- a/afm-client/app/Frontend/widgets/ActionButtons/AppliButton.js +++ b/afm-client/app/Frontend/widgets/ActionButtons/AppliButton.js @@ -29,13 +29,24 @@ var tmplModal = '<b class="close-button" ng-click="close()">×</b>' + '<img ng-src="{{icon}}">' + - '<span class="modal-text">Application <b>{{name}}</b></span>' + + '<span class="modal-text">Application <b>{{label}}</b></span>' + '<ul class="vertical icon-left primary menu-bar">' + '<li><a ng-click=action("start")><i class="fi-check"> Start</i></a></li>' + '<li><a ng-click=action("stop")><i class="fi-x"> Stop</i></a></li>' + '<li><a ng-click=action("info")><i class="fi-info"> Info</i></a></li>' + '</ul>' + ''; + + var tmplDetail = + '<b class="close-button" ng-click="close()">×</b>' + + '<img ng-src="{{icon}}">' + + '<span class="modal-text">Application <b>{{label}}</b></span>' + + '<ul class="vertical icon-left">' + + '<li><i class="fi-paperclip"> Name : {{detail.name}} </i></li>' + + '<li><i class="fi-info"> Description {{detail.description}}</i></li>' + + '<li><i class="fi-torso"> Author : {{detail.author}}</i></li>' + + '</ul>' + + ''; angular.module('AppliButton', []) .directive('appliButton', function (AppConfig, AppCall, ModalFactory, Notification, $timeout) { @@ -47,13 +58,13 @@ 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); + scope.callback (scope.appID, 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); + scope.callback (scope.appID, "/api/afm-main/start", response); }; var closeModal = function() { @@ -67,8 +78,8 @@ switch (action) { case "start": - AppCall.get ("afm-main", "start", {id: scope.appliID}, function(response) { - if (response.status !== 200 || response.data.request.jtype !== "AJB_reply") { + AppCall.get ("afm-main", "start", {id: scope.appID}, function(response) { + if (response.status !== 200 || response.data.jtype !== "AJB_reply") { notifyError ("start", response); return; } @@ -79,7 +90,7 @@ case "stop": AppCall.get ("afm-main", "stop", {id: scope.runID}, function(response) { - if (response.status !== 200 || response.data.request.jtype !== "AJB_reply") { + if (response.status !== 200 || response.data.jtype !== "AJB_reply") { notifyError ("stop", response); return; } @@ -90,12 +101,25 @@ case "info": AppCall.get ("afm-main", "detail", {id: scope.appID}, function(response) { - if (response.status !== 200 || response.data.request.jtype !== "AJB_reply") { + if (response.status !== 200 || response.data.jtype !== "AJB_reply") { notifyError ("detail", response); return; } - - notifySuccess ("detail", response); + + // reference http://foundation.zurb.com/apps/docs/#!/angular-modules + var config = { + animationIn: 'slideInFromTop', + contentScope: { + close : closeModal, + icon : scope.icon, + label : scope.appID, + detail : response.data.response + }, template : tmplDetail + }; + // Popup Modal to render application data + scope.modal = new ModalFactory(config); + scope.modal.activate (); + }); break; @@ -127,7 +151,7 @@ if (attrs.handle && scope.store [attrs.handle].name) { scope.icon = AppConfig.paths.icons + scope.store [attrs.handle].name.toLowerCase() + '-ico.png'; scope.label = scope.store [attrs.handle].name; - scope.appliID= attrs.handle; + scope.appID= attrs.handle; } else { scope.icon = AppConfig.paths.icons + 'w3c-ico.png'; scope.label = attrs.handle; |