aboutsummaryrefslogtreecommitdiffstats
path: root/openo-portal/portal-auth/src/main/webapp/user/js/user.js
blob: 7be00a3d1b8a3f87ca92642088d91449791c91a5 (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
/*
 * Copyright 2016 Huawei Technologies Co., Ltd.
 *
 * 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.
 */
$(document).ready(function() {
    var USER_SERVICE = "/openoapi/auth/v1/users";
    var deleteEditOpt = "<img class='edit' title='edit' src='/openoui/user/images/edit.png'><img class='changePsd' title='Change Password' src='/openoui/user/images/reset.png'><img class='delete' title='delete' src='/openoui/user/images/delete.png'>";
    var editOpt = "<img class='edit' title='edit' src='/openoui/user/images/edit.png'><img class='changePsd' title='Change Password' src='/openoui/user/images/reset.png'>";

    var userListHeader = [
        { title: "User", data: "User",width: "20%"},
        { title: "Description", data: "Description",width: "60%"},
        { title: "Operations", data: "Operations",width: "20%"}
    ];
    function initialPage() {
        /*get the user list data;*/
        getUserList().done(function(data) {
            var data = formatUsers(data);
            Table.create(data, "table_id", userListHeader);
            $(".hw_body").css("visibility", "visible");
        }).error(function(data) {
            if (data.status == 403) {
                $(".hw_body").html("<span style='font-size:20px;'>" + JSON.parse(data.responseText).error.message + "</span>");
            }
        });

        /*add the listener*/
        $("#table_id tbody").on("click", "td", function(e) {
            var classname = e.target.className;
            var id = $("#table_id").DataTable().row(this).data().rowid;
            if (classname == "delete") {
                top.bootbox.confirm("Are you sure to delete this user?", function(result) {
                    if (result) {
                        deleteUser(id).done(function() {
                            getUserList().done(function(data) {
                                var data = formatUsers(data);
                                var datatable = $("#table_id").dataTable().api();
                                datatable.clear();
                                datatable.rows.add(data);
                                datatable.draw();
                            })
                        })
                    }
                })
            } else if (classname == "edit") {
                window.document.location = "/openoui/user/modifyUser.html" + "?id=" + id;
            } else if (classname == "changePsd") {
                window.document.location = "/openoui/user/changePassword.html" + "?id=" + id;
            }
        })

        $("#create").click(function(e) {
            window.document.location = "/openoui/user/createUser.html";
        })
    }

    function getUserList() {
        return Rest.http({
            url: USER_SERVICE + "?=" + new Date().getTime(),
            type: "GET",
            async: false,
            contentType: 'application/json',
            dataType: "json"
        })
    }

    function deleteUser(id) {
        return Rest.http({
            url: USER_SERVICE + "/" + id + "?=" + new Date().getTime(),
            type: "DELETE",
            async: false,
            contentType: 'application/json',
            dataType: "json"
        })
    }

    function formatUsers(data) {
        var tableData = [];
        for (var i = 0; i < data.length; i++) {
            var temp = {};
            temp.rowid = data[i].id;
            temp.User = data[i].name;
            temp.Description = data[i].description;
            if (data[i].name == "admin") {
                temp.Operations = editOpt;
            } else {
                temp.Operations = deleteEditOpt;
            }
            tableData.push(temp);
        }
        return tableData;
    }
    initialPage();

    setTimeout(function() {
        Table.enableToolTips("table_id");
    }, 0)
});