X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=static%2Fsrc%2Fuserhandler%2Fuser_list.js;h=6b36f1124e87650d7a1489911f804fa1b5c39e78;hb=59989d09abcf5cb7618739b06bdb87496e721fd5;hp=0c53b9e53666eba1a05ca3dd30f5500e58e87a02;hpb=88d09568efc69901d4e12f62021239096f8d69f8;p=osm%2FLW-UI.git diff --git a/static/src/userhandler/user_list.js b/static/src/userhandler/user_list.js index 0c53b9e..6b36f11 100644 --- a/static/src/userhandler/user_list.js +++ b/static/src/userhandler/user_list.js @@ -1,3 +1,19 @@ +/* + Copyright 2018 EveryUP srl + + 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 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 openModalCreateUser(args) { select2_groups = $('#projects').select2({ @@ -11,7 +27,7 @@ function openModalCreateUser(args) { if (data['projects']) { for (d in data['projects']) { var project = data['projects'][d]; - projects.push({id: project['_id'], text: project['name']}) + projects.push({ id: project['_id'], text: project['name'] }) } } @@ -22,63 +38,138 @@ function openModalCreateUser(args) { } }); - $('#modal_new_user').modal('show'); -} - -function openModalEditUser(args) { - var url = '/admin/users/'+args.user_id; - console.log(url) - $("#formEditUser").attr("action", url); - select2_groups = $('#projects_edit').select2({ - placeholder: 'Select Projects', + select2_groups = $('#domain_name').select2({ + placeholder: 'Select Domain', width: '100%', ajax: { - url: '/projects/list', + url: args.domains_list_url, dataType: 'json', processResults: function (data) { - projects = []; - if (data['projects']) { - for (d in data['projects']) { - var project = data['projects'][d]; - projects.push({id: project['_id'], text: project['name']}) + domains_list = []; + + if (data['domains']) { + for (d in data['domains']) { + var domain = data['domains'][d]; + if( domain.endsWith(':ro') === false) { + domains_list.push({ id: domain, text: domain }) + } + } } return { - results: projects + results: domains_list }; } } }); - select2_single = $('#default_project_edit').select2({ - placeholder: 'Select Default Project', - width: '100%', - ajax: { - url: '/projects/list', - dataType: 'json', - processResults: function (data) { - projects = []; - if (data['projects']) { - for (d in data['projects']) { - var project = data['projects'][d]; - projects.push({id: project['_id'], text: project['name']}) - } - } + $('#modal_new_user').modal('show'); +} - return { - results: projects - }; - } +function openModalEditUserCredentials(args) { + var url = '/admin/users/' + args.user_id; + var user_projects = args.projects ? args.projects.split(',') : []; + $("#formEditUser").attr("action", url); + $("#projects_old").val(user_projects.toString()); + $('#projects_edit').val(null).trigger('change'); + $('#default_project_edit').val(null).trigger('change'); + $('#edit_password').val(''); + if (user_projects.length > 0) { + // Create a DOM Option and pre-select by default + var newOption = new Option(user_projects[0], user_projects[0], true, true); + // Append it to the select + $('#default_project_edit').append(newOption).trigger('change'); + + for (var d in user_projects) { + var project = user_projects[d]; + // Create a DOM Option and pre-select by default + var newOption = new Option(project, project, true, true); + // Append it to the select + $('#projects_edit').append(newOption).trigger('change'); + } + + } + + + $('#modal_edit_user_credentials').modal('show'); +} + +function openModalEditUserRoleMap(user_id) { + $("#formEditUserRoleMap").attr("action", '/admin/users/' + user_id); + var dialog = bootbox.dialog({ + message: '
Loading...
', + closeButton: false + }); + $.ajax({ + url: '/admin/users/' + user_id + '/info', + dataType: "json", + contentType: "application/json;charset=utf-8", + success: function (result) { + dialog.modal('hide'); + resetMapGroup(result); + $('#modal_edit_user_role_map').modal('show'); + }, + error: function (result) { + dialog.modal('hide'); + bootbox.alert("An error occurred."); } }); - $('#modal_edit_user').modal('show'); } +function resetMapGroup(args) { + var $formGroup = $('#modal_edit_proj_role_map_body'); + $formGroup.empty(); + $formGroup.append('
' + + + '' + + '

'); + if (args['project_role_mappings'] && args['project_role_mappings'].length > 0) { + + for (i = 0; i < args['project_role_mappings'].length; ++i) { + var mapping = args['project_role_mappings'][i]; + + $formGroup.append('
' + + '
' + + '
' + + '' + + '
' + + '' + + '
' + + '
'); + } + } + + + + +} + +var addMapGroup = function (event) { + event.preventDefault(); + + var $formGroup = $('#modal_edit_proj_role_map_body'); + $formGroup.append('
' + + '
' + + '
' + + '' + + '
' + + '' + + '
' + + '
'); + +}; + +var removeMapGroup = function (event) { + event.preventDefault(); + var $formGroup = $(this).closest('.proj-role-map-group'); + $formGroup.remove(); +}; + function deleteUser(user_id, name) { - var delete_url = '/admin/users/'+user_id+'/delete'; - bootbox.confirm("Are you sure want to delete "+name+"?", function (confirm) { + var delete_url = '/admin/users/' + user_id + '/delete'; + bootbox.confirm("Are you sure want to delete " + name + "?", function (confirm) { if (confirm) { var dialog = bootbox.dialog({ message: '
Loading...
', @@ -89,16 +180,84 @@ function deleteUser(user_id, name) { dataType: "json", contentType: "application/json;charset=utf-8", success: function (result) { - //$('#modal_show_vim_body').empty(); dialog.modal('hide'); - location.reload(); + table.ajax.reload(); }, error: function (result) { dialog.modal('hide'); - bootbox.alert("An error occurred."); + var data = result.responseJSON; + var title = "Error " + (data && data.code ? data.code : 'unknown'); + var message = data && data.detail ? data.detail : 'No detail available.'; + bootbox.alert({ + title: title, + message: message + }); } }); } }) -} \ No newline at end of file +} + +function validatePswOnCreate() { + + var confirm_password = document.getElementById("password2"); + if ($("#password").val() == $("#password2").val()) { + $("#pwmatch").removeClass("glyphicon-remove"); + $("#pwmatch").addClass("glyphicon-ok"); + $("#pwmatch").css("color", "#00A41E"); + confirm_password.setCustomValidity(""); + } else { + $("#pwmatch").removeClass("glyphicon-ok"); + $("#pwmatch").addClass("glyphicon-remove"); + $("#pwmatch").css("color", "#FF0004"); + confirm_password.setCustomValidity("Passwords Don't Match"); + } +} + +function validatePswOnEdit() { + + var confirm_password = document.getElementById("edit_password2"); + if ($("#edit_password").val() == $("#edit_password2").val()) { + $("#pwmatch_edit").removeClass("glyphicon-remove"); + $("#pwmatch_edit").addClass("glyphicon-ok"); + $("#pwmatch_edit").css("color", "#00A41E"); + confirm_password.setCustomValidity(""); + } else { + $("#pwmatch_edit").removeClass("glyphicon-ok"); + $("#pwmatch_edit").addClass("glyphicon-remove"); + $("#pwmatch_edit").css("color", "#FF0004"); + confirm_password.setCustomValidity("Passwords Don't Match"); + } +} + +$(document).ready(function () { + $("#formEditUserRoleMap").submit(function (event) { + event.preventDefault(); //prevent default action + var post_url = $(this).attr("action"); //get form action url + var request_method = $(this).attr("method"); //get form GET/POST method + var form_data = new FormData(this); //Encode form elements for submission + $.ajax({ + url: post_url, + type: request_method, + data: form_data, + headers: { + "Accept": 'application/json' + }, + contentType: false, + processData: false + }).done(function (response, textStatus, jqXHR) { + table.ajax.reload(); + $('#modal_edit_user_role_map').modal('hide'); + }).fail(function (result) { + var data = result.responseJSON; + var title = "Error " + (data.code ? data.code : 'unknown'); + var message = data.detail ? data.detail : 'No detail available.'; + bootbox.alert({ + title: title, + message: message + }); + }); + }); + +}) \ No newline at end of file