Projekt

Obecné

Profil

Stáhnout (5.04 KB) Statistiky
| Větev: | Revize:
1
<div id="edit-modal" class="modal fade" role="dialog">
2
    <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
3
        <div class="modal-content">
4
            <div class="modal-header">
5
                <h4 class="modal-title"></h4>
6
                <button type="button" class="close" data-dismiss="modal">&times;</button>
7
            </div>
8
            <div class="modal-body">
9
                <div class="container">
10
                    <div class="row my-1" id="username-wrapper">
11
                        <div class="col-xs-12 col-sm-4">
12
                            <label for="username">Uživatelské jméno:</label>
13
                        </div>
14
                        <div class="col-xs-12 col-sm-8">
15
                            <input class="min-wdth" id="username"/>
16
                        </div>
17
                    </div>
18
                    <div class="row my-1" id="password-wrapper">
19
                        <div class="col-xs-12 col-sm-4">
20
                            <label for="password">Heslo:</label>
21
                        </div>
22
                        <div class="col-xs-12 col-sm-8">
23
                            <input type="password" class="min-wdth" id="password"/>
24
                        </div>
25
                    </div>
26
                    <div class="row my-1">
27
                        <div class="col-xs-12 col-sm-4">
28
                            <label for="email">Email:</label>
29
                        </div>
30
                        <div class="col-xs-12 col-sm-8">
31
                            <input class="min-wdth" id="email"/>
32
                        </div>
33
                    </div>
34
                    <div class="row my-1">
35
                        <div class="col-xs-12 col-sm-4">
36
                            <label for="rights">Práva:</label>
37
                        </div>
38
                        <div class="col-xs-12 col-sm-8">
39
                            <select class="min-wdth" id="rights">
40
                                <option value = "editor">Editor</option>
41
                                <option value = "admin">Admin</option>
42
                            </select>
43
                        </div>
44
                    </div>
45

    
46
                </div>
47
            </div>
48
            <div class="modal-footer">
49
                <button type="button" id="submit-but" class="btn btn-default" data-dismiss="modal"></button>
50
                <button type="button" class="btn btn-default" data-dismiss="modal">Zavřít</button>
51
            </div>
52
        </div>
53
    </div>
54
</div>
55

    
56
<script>
57
    $('#edit-modal').on('show.bs.modal', function (event) {
58
        const button = $(event.relatedTarget);
59
        const pseudo_id = button.data('pseudo-id');// Extract info from data-* attributes
60
        const title = button.data('title');// Extract info from data-* attributes
61

    
62
        let modal = $(this);
63
        modal.find('.modal-title').text(title);
64

    
65
        if(title === "Nový uživatel"){
66
            prefill(modal);
67
            modal.find('#submit-but').text("Založit");
68
            modal.find("#username-wrapper").show();
69
            modal.find("#password-wrapper").show();
70
            modal.find('#submit-but').click(() => createData(modal));
71
        } else {
72
            const data_obj = users[pseudo_id];
73
            modal.find('#submit-but').text("Upravit");
74
            modal.find("#username-wrapper").hide();
75
            modal.find("#password-wrapper").hide();
76
            modal.find('#submit-but').click(() => editData(data_obj, modal));
77
            prefill(modal, data_obj);
78
        }
79
    });
80

    
81

    
82
    function prefill(modal, data = null){
83
        modal.find("#username").val("");
84
        modal.find("#password").val("");
85
        modal.find("#email").val("");
86
        modal.find("#rights").val("");
87

    
88
        if(data !== null){
89
            modal.find("#email").val(data.email);
90
            modal.find("#rights").val(data.role);
91
        }
92
    }
93

    
94
    function editData(data, modal){
95
        const formData = prepareFormData(modal);
96
        formData.append("userId", data.id);
97

    
98
        var xhr = new XMLHttpRequest();
99
        xhr.open("POST", "./controller/UpdateUserRoleController.php");
100
        xhr.send(formData);
101
        setTimeout(function(){
102
         fetchUsers(); //reload data after item delete
103
        }, 500);
104
    }
105

    
106
    function prepareFormData(modal) {
107
        const formData = new FormData();
108
        formData.append("role", modal.find("#rights")[0].value);
109
        formData.append("email", modal.find("#email")[0].value);
110

    
111
        return formData;
112
    }
113

    
114
    function createData(modal){
115
        const formData = prepareFormData(modal);
116
        const username = modal.find("#username")[0].value;
117
        if(username !== undefined && username !== null){
118
            formData.append("username", username);
119
            formData.append("password", modal.find("#password")[0].value);
120

    
121
            var xhr = new XMLHttpRequest();
122
            xhr.open("POST", "./controller/RegistrationController.php");
123
            xhr.send(formData);
124
            setTimeout(function(){
125
                fetchUsers(); //reload data after item delete
126
            }, 500);
127
        }
128
    }
129
</script>
(3-3/7)