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 select2_groups
= $('#domain_name').select2({
42 placeholder
: 'Select Domain',
45 url
: args
.domains_list_url
,
47 processResults: function (data
) {
50 if (data
['domains']) {
51 for (d
in data
['domains']) {
52 var domain
= data
['domains'][d
];
53 if( domain
.endsWith(':ro') === false) {
54 domains_list
.push({ id
: domain
, text
: domain
})
67 $('#modal_new_user').modal('show');
70 function openModalEditUserCredentials(args
) {
71 var url
= '/admin/users/' + args
.user_id
;
72 var user_projects
= args
.projects
? args
.projects
.split(',') : [];
73 $("#formEditUser").attr("action", url
);
74 $("#projects_old").val(user_projects
.toString());
75 $('#projects_edit').val(null).trigger('change');
76 $('#default_project_edit').val(null).trigger('change');
77 $('#edit_password').val('');
78 if (user_projects
.length
> 0) {
79 // Create a DOM Option and pre-select by default
80 var newOption
= new Option(user_projects
[0], user_projects
[0], true, true);
81 // Append it to the select
82 $('#default_project_edit').append(newOption
).trigger('change');
84 for (var d
in user_projects
) {
85 var project
= user_projects
[d
];
86 // Create a DOM Option and pre-select by default
87 var newOption
= new Option(project
, project
, true, true);
88 // Append it to the select
89 $('#projects_edit').append(newOption
).trigger('change');
95 $('#modal_edit_user_credentials').modal('show');
98 function openModalEditUserRoleMap(user_id
) {
99 $("#formEditUserRoleMap").attr("action", '/admin/users/' + user_id
);
100 var dialog
= bootbox
.dialog({
101 message
: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
105 url
: '/admin/users/' + user_id
+ '/info',
107 contentType
: "application/json;charset=utf-8",
108 success: function (result
) {
109 dialog
.modal('hide');
110 resetMapGroup(result
);
111 $('#modal_edit_user_role_map').modal('show');
113 error: function (result
) {
114 dialog
.modal('hide');
115 bootbox
.alert("An error occurred.");
121 function resetMapGroup(args
) {
122 var $formGroup
= $('#modal_edit_proj_role_map_body');
124 $formGroup
.append('<div class="proj-role-map-group-head">' +
126 '<button type="button" class="btn btn-success btn-add btn-sm">+</button>' +
128 if (args
['project_role_mappings'] && args
['project_role_mappings'].length
> 0) {
130 for (i
= 0; i
< args
['project_role_mappings'].length
; ++i
) {
131 var mapping
= args
['project_role_mappings'][i
];
133 $formGroup
.append('<div class="proj-role-map-group"> <div class="form-group">' +
134 '<label class="col-sm-2">Project* </label><div class="col-sm-3">' +
135 '<input name="map_project_name" value="' + mapping
.project_name
+ '" class="form-control input-sm" required></div>' +
136 '<label class="col-sm-2">Role* </label>' +
137 '<div class="col-sm-3">' +
138 '<input name="map_role_name" value="' + mapping
.role_name
+ '" class="form-control input-sm" required>' +
140 '<button type="button" class="btn btn-danger btn-remove btn-sm">-</button></div></div>');
149 var addMapGroup = function (event
) {
150 event
.preventDefault();
152 var $formGroup
= $('#modal_edit_proj_role_map_body');
153 $formGroup
.append('<div class="proj-role-map-group"> <div class="form-group">' +
154 '<label class="col-sm-2">Project* </label><div class="col-sm-3">' +
155 '<input name="map_project_name" class="form-control input-sm" required></div>' +
156 '<label class="col-sm-2">Role* </label>' +
157 '<div class="col-sm-3">' +
158 '<input name="map_role_name" class="form-control input-sm" required>' +
160 '<button type="button" class="btn btn-danger btn-remove btn-sm">-</button></div></div>');
164 var removeMapGroup = function (event
) {
165 event
.preventDefault();
166 var $formGroup
= $(this).closest('.proj-role-map-group');
170 function deleteUser(user_id
, name
) {
171 var delete_url
= '/admin/users/' + user_id
+ '/delete';
172 bootbox
.confirm("Are you sure want to delete " + name
+ "?", function (confirm
) {
174 var dialog
= bootbox
.dialog({
175 message
: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
181 contentType
: "application/json;charset=utf-8",
182 success: function (result
) {
183 dialog
.modal('hide');
186 error: function (result
) {
187 dialog
.modal('hide');
188 var data
= result
.responseJSON
;
189 var title
= "Error " + (data
&& data
.code
? data
.code
: 'unknown');
190 var message
= data
&& data
.detail
? data
.detail
: 'No detail available.';
202 function validatePswOnCreate() {
204 var confirm_password
= document
.getElementById("password2");
205 if ($("#password").val() == $("#password2").val()) {
206 $("#pwmatch").removeClass("glyphicon-remove");
207 $("#pwmatch").addClass("glyphicon-ok");
208 $("#pwmatch").css("color", "#00A41E");
209 confirm_password
.setCustomValidity("");
211 $("#pwmatch").removeClass("glyphicon-ok");
212 $("#pwmatch").addClass("glyphicon-remove");
213 $("#pwmatch").css("color", "#FF0004");
214 confirm_password
.setCustomValidity("Passwords Don't Match");
218 function validatePswOnEdit() {
220 var confirm_password
= document
.getElementById("edit_password2");
221 if ($("#edit_password").val() == $("#edit_password2").val()) {
222 $("#pwmatch_edit").removeClass("glyphicon-remove");
223 $("#pwmatch_edit").addClass("glyphicon-ok");
224 $("#pwmatch_edit").css("color", "#00A41E");
225 confirm_password
.setCustomValidity("");
227 $("#pwmatch_edit").removeClass("glyphicon-ok");
228 $("#pwmatch_edit").addClass("glyphicon-remove");
229 $("#pwmatch_edit").css("color", "#FF0004");
230 confirm_password
.setCustomValidity("Passwords Don't Match");
234 $(document
).ready(function () {
235 $("#formEditUserRoleMap").submit(function (event
) {
236 event
.preventDefault(); //prevent default action
237 var post_url
= $(this).attr("action"); //get form action url
238 var request_method
= $(this).attr("method"); //get form GET/POST method
239 var form_data
= new FormData(this); //Encode form elements for submission
242 type
: request_method
,
245 "Accept": 'application/json'
249 }).done(function (response
, textStatus
, jqXHR
) {
251 $('#modal_edit_user_role_map').modal('hide');
252 }).fail(function (result
) {
253 var data
= result
.responseJSON
;
254 var title
= "Error " + (data
.code
? data
.code
: 'unknown');
255 var message
= data
.detail
? data
.detail
: 'No detail available.';