summaryrefslogtreecommitdiffstats
path: root/afm-client/app/Frontend/pages/Home/DashboardModule.js
blob: f843df11163ac3ec0c3daad0001dcddbf0ab92de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
(function() {
'use strict';

// WARNING: make sure than app/frontend/services/AppConfig.js match your server

// list all rependencies within the page + controler if needed
angular.module('DashboardModule', ['SubmitButton', 'TokenRefresh', 'AppliButton'])

  .controller('DashboardController', function ($http, AppConfig, Notification) {
        var scope = this; // I hate JavaScript
        scope.uuid   ="none";
        scope.token  ="none";
        scope.session="none";
        scope.status ="err-no";
        scope.appliIDs =[]; // array to hold applications ID
        scope.appliStore={}; // array to hold applications json description

        scope.ProcessResponse= function(data, errcode, headers, config) {
            var apiname= 'API'+ data.request.api.replace('-','_');
            scope.status = "err-ok";
            scope.errcode= errcode;
            scope.request  = data.request;
            scope.response = data.response;
            
            // if token was refresh let's update AppConfig
            if (data.request.token) AppConfig.session.token = data.request.token;
            if (data.request.uuid)  AppConfig.session.uuid  = data.request.uuid;
            if (data.request.timeout)  AppConfig.session.timeout  = data.request.timeout;

            // Make sure we clean everything when Open/Close is called
            if (apiname === "APIcreate" || apiname === "APIreset") {
                scope.APIreset  ='';
                scope.APIcreate ='';
                scope.APIrefresh='';
                scope.APIcheck  ='';
            }
            scope[apiname]="success";
            
            // If we have a new token let's update it
            if (data.request.token) scope.token=data.request.token;
            
            console.log ("OK: "+ JSON.stringify(data));
        };
        
        scope.ProcessError= function(data, errcode, headers, config) {
            var apiname= 'API'+data.request.api.replace('-','_');
            scope.status   = "err-fx";
            scope.errcode  = errcode;
            scope.request  = data.request;
            scope.response = "";
            scope[apiname]="fail";
            
            console.log ("FX: "+ JSON.stringify(data));
        };

        scope.OpenSession = function() {
            console.log ("OpenSession"); 
            var handler = $http.get(AppConfig.session.create + '?token='+AppConfig.session.initial);
            
            handler.success(scope.ProcessResponse);
            handler.error(scope.ProcessError);
        };        

        scope.CheckSession = function() {
            console.log ("CloseSession");
            var handler = $http.get(AppConfig.session.check + '?token='+AppConfig.session.token);
            
            handler.success(scope.ProcessResponse);
            handler.error(scope.ProcessError);
        };
        
        scope.RefreshSession = function() {
            console.log ("RefreshSession");
            var handler = $http.get(AppConfig.session.refresh + '?token='+AppConfig.session.token);
            
            handler.success(scope.ProcessResponse);
            handler.error(scope.ProcessError);
        };
        
        scope.ResetSession = function() {
            console.log ("ResetSession");
            var handler = $http.get(AppConfig.session.reset + '?token='+AppConfig.session.token);
            
            handler.success(scope.ProcessResponse);
            handler.error(scope.ProcessError);
        };
        
        scope.AppliCB = function (appliID) {
            console.log ("Application Clicked ID=[%s]", appliID);
            
        };
        
        scope.AutoStart = function () {
            console.log ("AutoStart requesting Apps list");
            var handler = $http.get('/api/afm-main/runnables' + '?token='+AppConfig.session.token);
            handler.success(function(result) {
                
                // Check this is a valid response from Binder
                if (result.request.jtype !== "AJB_reply" && result.request.api !== "runnables") {
                  Notification.error ({message: "Invalid Respond to /opa/afm-main/runnable result="+result, delay: 5000}); 
                  return;
                }
                
                // loop on runnable application to prepare for display
                var  appliIDs=[];
                for (var idx=0; idx < result.response.length; idx ++) {
                    appliIDs[idx] = result.response [idx].id;
                    scope.appliStore [result.response [idx].id] =  result.response [idx];
                }
                scope.appliIDs = appliIDs; // avoid partial update to limit UI refresh
                
            });
        };
          
   });

console.log ("Dashboard Controller Loaded");
})();