aboutsummaryrefslogtreecommitdiffstats
path: root/3rd_party/static/testapi-ui/components/application/applicationController.js
blob: 366863c35ab4716f79d752995b11a19bb0f27da7 (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
/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

(function () {
    'use strict';

    angular
        .module('testapiApp')
        .controller('ApplicationController', ApplicationController);

    ApplicationController.$inject = [
        '$http', '$state', '$stateParams', '$window', '$sce',
        '$uibModal', 'testapiApiUrl', 'raiseAlert', 'ngDialog', '$scope'
    ];

    function ApplicationController ($http, $state, $stateParams, $window, $sce,
        $uibModal, testapiApiUrl, raiseAlert, ngDialog, $scope) {

        var ctrl = this;

        /** Check to see if this page should display community results. */
        ctrl.isAdministrator = $scope.auth.currentUser.role.indexOf('administrator') != -1;
        // Should only be on user-results-page if authenticated.
        if (!$scope.auth.isAuthenticated) {
            $state.go('home');
        }
        // Should only be on applications if administrator
        if (!ctrl.isAdministrator) {
            $state.go('home');
        }

        function init() {
            ctrl.applications = [];

            ctrl.totalItems = null;
            ctrl.currentPage = 1;
            ctrl.itemsPerPage = 5;
            ctrl.numPages = null;
            ctrl.lab_tpl = "lab.tpl.html";
            ctrl.product_tpl = "product.tpl.html";

            getApplication();
        }

        ctrl.updatePage = function() {
            getApplication();
        }

        ctrl.deleteApp = function(id) {
            var resp = confirm('Are you sure to delete this application?');
            if (!resp)
                return;

            var delUrl = testapiApiUrl + "/cvp/applications/" + id;
            $http.delete(delUrl).then(function(ret) {
                if (ret.data.code && ret.data.code != 0) {
                    alert(ret.data.msg);
                    return;
                }
                getApplication();
            });
        }

        ctrl.toggleApproveApp = function(id, approved, owner) {
            if (approved === 'true') {
                var text = 'Are you sure you want to approve this application?';
            } else {
                var text = 'Are you sure you want to remove approval of this application?';
            }

            var resp = confirm(text);
            if (!resp)
                return;

            var updateUrl = testapiApiUrl + "/cvp/applications/" + id;
            var data = {};
            data['item'] = 'approved';
            data['approved'] = approved;
            data['owner'] = owner;

            $http.put(updateUrl, JSON.stringify(data), {
                transformRequest: angular.identity,
                headers: {'Content-Type': 'application/json'}}).then(function(ret) {
                    if (ret.data.code && ret.data.code != 0) {
                        alert(ret.data.msg);
                        return;
                    }
                    getApplication();
            }, function(error) {
                alert('Error when update data');
            });
        }

        function getApplication() {
            $http.get(testapiApiUrl + "/cvp/applications?page=" + ctrl.currentPage + "&signed&per_page=" + ctrl.itemsPerPage + "&applications").then(function(response) {
                ctrl.applications = response.data.applications;
                ctrl.totalItems = response.data.pagination.total_pages * ctrl.itemsPerPage;
                ctrl.currentPage = response.data.pagination.current_page;
                ctrl.numPages = response.data.pagination.total_pages;
            }, function(error) {
            });
        }

        init();
    }

})();