X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=afm-client%2Fapp%2FFrontend%2Fwidgets%2FActionButtons%2FAppliButton.js;h=f54c5b0a6a5509839eb15e8cecababdd40122a6d;hb=bf03eef7e8a9d7dcef9f1e739a364be8fb73f7e6;hp=50220dd8db97698a8ce2cc9923ca1310d0bb45ef;hpb=33940e952258bf1026a5f2c0687e4da01bc66004;p=src%2Fapp-framework-demo.git diff --git a/afm-client/app/Frontend/widgets/ActionButtons/AppliButton.js b/afm-client/app/Frontend/widgets/ActionButtons/AppliButton.js index 50220dd..f54c5b0 100644 --- a/afm-client/app/Frontend/widgets/ActionButtons/AppliButton.js +++ b/afm-client/app/Frontend/widgets/ActionButtons/AppliButton.js @@ -29,19 +29,43 @@ var tmplModal = '×' + '' + - 'Application {{name}}' + + 'Application {{label}}' + '' + ''; + + var tmplDetail = + '×' + + '' + + 'Application {{label}}' + + '' + + ''; angular.module('AppliButton', []) .directive('appliButton', function (AppConfig, AppCall, ModalFactory, Notification, $timeout) { 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.appID, api, response); + }; + + var notifySuccess = function (api, response) { + elem.removeClass ("fail"); + scope.runID = response.data.response.runid; + scope.callback (scope.appID, "/api/afm-main/start", response); + }; var closeModal = function() { console.log ("Modal Closing"); @@ -54,34 +78,51 @@ switch (action) { 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); + AppCall.get ("afm-main", "start", {id: scope.appID}, function(response) { + if (response.status !== 200 || response.data.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.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.jtype !== "AJB_reply") { + notifyError ("detail", response); + return; + } + + // 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; + default: console.log ("ActionModal unknown action=[%s]", action); @@ -110,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;