X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=afm-client%2Fapp%2FFrontend%2Fwidgets%2FActionButtons%2FAppliButton.js;h=69e61b6fea3aac750f7b9076e9c2c006ab1c9838;hb=a79d1fc845f31cda41b55b0ffb9aa807732bbcd0;hp=a17ebc9b10e9841b61174eb1260f5f3f538513a0;hpb=be83a8f382cf2fea98161bfd6d51719aacbf9aa9;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 a17ebc9..69e61b6 100644 --- a/afm-client/app/Frontend/widgets/ActionButtons/AppliButton.js +++ b/afm-client/app/Frontend/widgets/ActionButtons/AppliButton.js @@ -29,11 +29,23 @@ var tmplModal = '×' + '' + - 'Application {{name}}' + + 'Application {{label}}' + '' + + ''; + + var tmplDetail = + '×' + + '' + + 'Application {{label}}' + + '' + ''; @@ -41,19 +53,20 @@ .directive('appliButton', function (AppConfig, AppCall, ModalFactory, Notification, $timeout) { function mymethods(scope, elem, attrs) { + scope.runstatus = "stop" 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); + 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,39 +80,67 @@ switch (action) { case "start": - AppCall.get ("afm-main", "start", {id: scope.appliID}, function(response) { - if (response.status !== 200 || response.data.request.jtype !== "AJB_reply") { + if (scope.runstatus !== "stop") return; + AppCall.get ("afm-main", "start", {id: scope.appID}, function(response) { + if (response.status !== 200 || response.data.jtype !== "AJB_reply") { notifyError ("start", response); return; } - + scope.runstatus="start"; 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") { + if (scope.runstatus !== "start") return; + + AppCall.get ("afm-main", "terminate", {runid: scope.runID}, function(response) { + if (response.status !== 200 || response.data.jtype !== "AJB_reply") { notifyError ("stop", response); return; } - + scope.runstatus="stop"; 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") { + 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 = { + id: 'appliInfoMenu', + 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; + + case "uninstall": + if (scope.runstatus !== "stop") return; + AppCall.get ("afm-main", "uninstall", {id: scope.appID}, function(response) { + if (response.status !== 200 || response.data.jtype !== "AJB_reply") { + notifyError ("uninstall", response); + return; + } - + notifySuccess ("uninstall", response); + }); + break; + default: console.log ("ActionModal unknown action=[%s]", action); break; @@ -110,13 +151,15 @@ // reference http://foundation.zurb.com/apps/docs/#!/angular-modules var config = { + id: 'appliActionMenu', animationIn: 'slideInFromTop', contentScope: { - action : actionModal, - close : closeModal, - icon : scope.icon, - label : scope.label - }, template : tmplModal + action : actionModal, + runstatus: scope.runstatus, + close : closeModal, + icon : scope.icon, + label : scope.label + }, template : tmplModal }; // Popup Modal to render application data scope.modal = new ModalFactory(config); @@ -125,9 +168,9 @@ // extract application information from AppID+Store if (attrs.handle && scope.store [attrs.handle].name) { - scope.icon = AppConfig.paths.icons + scope.store [attrs.handle].name.toLowerCase() + '-ico.png'; + scope.icon = AppConfig.paths.icons + attrs.handle; //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;