e8ead0c9af2a3e69e0ee32fb5710cd7f65e8a45c
2 Copyright 2018 EveryUP srl
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
8 http://www.apache.org/licenses/LICENSE-2.0
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
17 function openModalCreateUser(args
) {
19 select2_groups
= $('#projects').select2({
20 placeholder
: 'Select Projects',
23 url
: args
.projects_list_url
,
25 processResults: function (data
) {
27 if (data
['projects']) {
28 for (d
in data
['projects']) {
29 var project
= data
['projects'][d
];
30 projects
.push({ id
: project
['_id'], text
: project
['name'] })
41 $('#modal_new_user').modal('show');
44 function openModalEditUserCredentials(args
) {
45 var url
= '/admin/users/' + args
.user_id
;
46 var user_projects
= args
.projects
? args
.projects
.split(',') : [];
47 $("#formEditUser").attr("action", url
);
48 $("#projects_old").val(user_projects
.toString());
49 $('#projects_edit').val(null).trigger('change');
50 $('#default_project_edit').val(null).trigger('change');
51 $('#edit_password').val('');
52 if (user_projects
.length
> 0) {
53 // Create a DOM Option and pre-select by default
54 var newOption
= new Option(user_projects
[0], user_projects
[0], true, true);
55 // Append it to the select
56 $('#default_project_edit').append(newOption
).trigger('change');
58 for (var d
in user_projects
) {
59 var project
= user_projects
[d
];
60 // Create a DOM Option and pre-select by default
61 var newOption
= new Option(project
, project
, true, true);
62 // Append it to the select
63 $('#projects_edit').append(newOption
).trigger('change');
69 $('#modal_edit_user_credentials').modal('show');
72 function openModalEditUserRoleMap(user_id
) {
73 $("#formEditUserRoleMap").attr("action", '/admin/users/' + user_id
);
74 var dialog
= bootbox
.dialog({
75 message
: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
79 url
: '/admin/users/' + user_id
+ '/info',
81 contentType
: "application/json;charset=utf-8",
82 success: function (result
) {
84 resetMapGroup(result
);
85 $('#modal_edit_user_role_map').modal('show');
87 error: function (result
) {
89 bootbox
.alert("An error occurred.");
95 function resetMapGroup(args
) {
96 var $formGroup
= $('#modal_edit_proj_role_map_body');
98 $formGroup
.append('<div class="proj-role-map-group-head">' +
100 '<button type="button" class="btn btn-success btn-add btn-sm">+</button>' +
102 if (args
['project_role_mappings'] && args
['project_role_mappings'].length
> 0) {
104 for (i
= 0; i
< args
['project_role_mappings'].length
; ++i
) {
105 var mapping
= args
['project_role_mappings'][i
];
107 $formGroup
.append('<div class="proj-role-map-group"> <div class="form-group">' +
108 '<label class="col-sm-2">Project* </label><div class="col-sm-3">' +
109 '<input name="map_project_name" value="' + mapping
.project_name
+ '" class="form-control input-sm" required></div>' +
110 '<label class="col-sm-2">Role* </label>' +
111 '<div class="col-sm-3">' +
112 '<input name="map_role_name" value="' + mapping
.role_name
+ '" class="form-control input-sm" required>' +
114 '<button type="button" class="btn btn-danger btn-remove btn-sm">-</button></div></div>');
123 var addMapGroup = function (event
) {
124 event
.preventDefault();
126 var $formGroup
= $('#modal_edit_proj_role_map_body');
127 $formGroup
.append('<div class="proj-role-map-group"> <div class="form-group">' +
128 '<label class="col-sm-2">Project* </label><div class="col-sm-3">' +
129 '<input name="map_project_name" class="form-control input-sm" required></div>' +
130 '<label class="col-sm-2">Role* </label>' +
131 '<div class="col-sm-3">' +
132 '<input name="map_role_name" class="form-control input-sm" required>' +
134 '<button type="button" class="btn btn-danger btn-remove btn-sm">-</button></div></div>');
138 var removeMapGroup = function (event
) {
139 event
.preventDefault();
140 var $formGroup
= $(this).closest('.proj-role-map-group');
144 function deleteUser(user_id
, name
) {
145 var delete_url
= '/admin/users/' + user_id
+ '/delete';
146 bootbox
.confirm("Are you sure want to delete " + name
+ "?", function (confirm
) {
148 var dialog
= bootbox
.dialog({
149 message
: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
155 contentType
: "application/json;charset=utf-8",
156 success: function (result
) {
157 //$('#modal_show_vim_body').empty();
158 dialog
.modal('hide');
161 error: function (result
) {
162 dialog
.modal('hide');
163 var data
= result
.responseJSON
;
164 var title
= "Error " + (data
&& data
.code
? data
.code
: 'unknown');
165 var message
= data
&& data
.detail
? data
.detail
: 'No detail available.';
177 function validatePswOnCreate() {
179 var confirm_password
= document
.getElementById("password2");
180 if ($("#password").val() == $("#password2").val()) {
181 $("#pwmatch").removeClass("glyphicon-remove");
182 $("#pwmatch").addClass("glyphicon-ok");
183 $("#pwmatch").css("color", "#00A41E");
184 confirm_password
.setCustomValidity("");
186 $("#pwmatch").removeClass("glyphicon-ok");
187 $("#pwmatch").addClass("glyphicon-remove");
188 $("#pwmatch").css("color", "#FF0004");
189 confirm_password
.setCustomValidity("Passwords Don't Match");
193 function validatePswOnEdit() {
195 var confirm_password
= document
.getElementById("edit_password2");
196 if ($("#edit_password").val() == $("#edit_password2").val()) {
197 $("#pwmatch_edit").removeClass("glyphicon-remove");
198 $("#pwmatch_edit").addClass("glyphicon-ok");
199 $("#pwmatch_edit").css("color", "#00A41E");
200 confirm_password
.setCustomValidity("");
202 $("#pwmatch_edit").removeClass("glyphicon-ok");
203 $("#pwmatch_edit").addClass("glyphicon-remove");
204 $("#pwmatch_edit").css("color", "#FF0004");
205 confirm_password
.setCustomValidity("Passwords Don't Match");
209 $(document
).ready(function () {
210 $("#formEditUserRoleMap").submit(function (event
) {
211 event
.preventDefault(); //prevent default action
212 var post_url
= $(this).attr("action"); //get form action url
213 var request_method
= $(this).attr("method"); //get form GET/POST method
214 var form_data
= new FormData(this); //Encode form elements for submission
217 type
: request_method
,
220 "Accept": 'application/json'
224 }).done(function (response
, textStatus
, jqXHR
) {
226 $('#modal_edit_user_role_map').modal('hide');
227 }).fail(function (result
) {
228 var data
= result
.responseJSON
;
229 var title
= "Error " + (data
.code
? data
.code
: 'unknown');
230 var message
= data
.detail
? data
.detail
: 'No detail available.';