Edit user

Melina Gamboa 2021-06-03 18:00:32 +02:00
parent b1981973c0
commit 38b45de7b4
2 changed files with 216 additions and 41 deletions

View File

@ -5,6 +5,49 @@ $(document).on('shown.bs.modal', '#modalAddDesktop', function () {
$(document).ready(function() {
$.ajax({
type: "GET",
"url": "/isard-sso-admin/groups_list",
success: function(data)
{
data.forEach(element => {
var groupOrigins = [];
['keycloak', 'moodle', 'nextcloud'].forEach(o => {
if (element[o]) {
groupOrigins.push(o)
}
})
$(".groups-select").append(
'<option value=' + element.path + '>' + element.name + ' (' + groupOrigins.join(',') + ') </option>'
)
});
$('.groups-select').select2();
},
error: function(data)
{
alert('Something went wrong on our side...')
}
});
$.ajax({
type: "GET",
"url": "/isard-sso-admin/roles_list",
success: function(data)
{
console.log('ROLES')
console.log(data)
data.forEach(element => {
$(".role-moodle-select, .role-nextcloud-select, .role-keycloak-select").append(
'<option value=' + element.id + '>' + element.name + '</option>'
)
})
},
error: function(data)
{
alert('Something went wrong on our side...')
}
});
$('.btn-global-resync').on('click', function () {
$.ajax({
type: "GET",
@ -30,47 +73,6 @@ $(document).ready(function() {
backdrop: 'static',
keyboard: false
}).modal('show');
$.ajax({
type: "GET",
"url": "/isard-sso-admin/groups_list",
success: function(data)
{
data.forEach(element => {
var groupOrigins = [];
['keycloak', 'moodle', 'nextcloud'].forEach(o => {
if (element[o]) {
groupOrigins.push(o)
}
})
$(".groups-select").append(
'<option value=' + element.path + '>' + element.name + ' (' + groupOrigins.join(',') + ') </option>'
)
});
$('.groups-select').select2();
},
error: function(data)
{
alert('Something went wrong on our side...')
}
});
$.ajax({
type: "GET",
"url": "/isard-sso-admin/roles_list",
success: function(data)
{
console.log('ROLES')
console.log(data)
data.forEach(element => {
$(".role-moodle-select, .role-nextcloud-select, .role-keycloak-select").append(
'<option value=' + element.id + '>' + element.name + '</option>'
)
})
},
error: function(data)
{
alert('Something went wrong on our side...')
}
});
});
// Send new user form
@ -322,6 +324,29 @@ $(document).ready(function() {
}
});
$('.btn-edit').on('click', function () {
var closest=$(this).closest("div").parent();
var pk=closest.attr("data-pk");
$("#modalEditUserForm")[0].reset();
$('#modalEditUser').modal({
backdrop: 'static',
keyboard: false
}).modal('show');
setUserDefault('#modalEditUser', pk);
$('#modalEdit').parsley();
});
$("#modalEditUser #send").on('click', function(e){
var form = $('#modalEditUserForm');
form.parsley().validate();
if (form.parsley().isValid()){
data=$('#modalEditUserForm').serializeObject();
data['id']=$('#modalEditUserForm #id').val();
console.log('Editing user...')
console.log(data)
}
});
$('.btn-delete').on('click', function () {
var closest=$(this).closest("div").parent();
var pk=closest.attr("data-pk");
@ -349,4 +374,35 @@ $(document).ready(function() {
});
});
}
function setUserDefault(div_id, user_id) {
// $.ajax({
// type: "GET",
// url:"/isard-sso-admin/user/" + id,
// success: function(data)
// {
// $(div_id + ' #id').val(data.id);
// $(div_id + ' #username').val(data.username);
// $(div_id + ' #email').val(data.email);
// $(div_id + ' #firstname').val(data.firstname);
// $(div_id + ' #lastname').val(data.lastname);
// $(div_id + ' .groups-select').val(data.groups);
// $(div_id + ' .role-moodle-select').val(data.roles);
// $(div_id + ' .role-nextcloud-select').val(data.roles);
// $(div_id + ' .role-keycloak-select').val(data.roles);
// $('.groups-select, .role-moodle-select, .role-nextcloud-select, .role-keycloak-select').trigger('change');
// }
// });
// MOCK
$(div_id + ' #id').val('b57c8d3f-ee08-4a1d-9873-f40c082b9c69');
$(div_id + ' #user-avatar').attr('src', 'static/img/usera.jpg');
$(div_id + ' #username').val('yedcaqwvt');
$(div_id + ' #email').val('yedcaqwvt@institutmariaespinalt.cat');
$(div_id + ' #firstname').val('Ymisno');
$(div_id + ' #lastname').val('Edcaqwvt tavnuoes');
$(div_id + ' .groups-select').val(['student', 'manager']);
$(div_id + ' .role-moodle-select').val('51cc1a95-94b7-48eb-aebb-1eba6745e09f');
$(div_id + ' .role-nextcloud-select').val('1e21ec95-b8c7-43b8-baad-1a31ad33f388');
$(div_id + ' .role-keycloak-select').val('13da53d5-c50b-42d9-8fbf-84f2ed7cbf9e');
$('.groups-select, .role-moodle-select, .role-nextcloud-select, .role-keycloak-select').trigger('change');
}
});

View File

@ -138,3 +138,122 @@
</div>
</div>
</div>
<div class="modal fade" id="modalEditUser" tabindex="-1" role="dialog" aria-labelledby="modalEditUser" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">&times;</span>
<span class="sr-only">Close</span>
</button>
<h4 class="modal-title" id="myModalLabel">
<i class="fa fa-plus fa-1x"> </i> <i class="fa fa-user"> </i> Edit user
</h4>
</div>
<!-- Modal Body -->
<div class="modal-body">
<form id="modalEditUserForm" class="form-inline form-label-left">
<div class="x_panel">
<div class="x_content">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<label>Enabled</label>
<div class="checkbox">
<label class="">
<div class="icheckbox_flat-green" style="position: relative;">
<input type="checkbox" id="jumperurl-check" name="jumperurl-check" class="flat" style="position: absolute; opacity: 0;">
<ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; background: rgb(255, 255, 255); border: 0px; opacity: 0;">
</ins>
</div>
</label>
</div>
</div>
</div>
</div>
<div class="x_title">
<h4><i class="fa fa-info-circle" aria-hidden="true"></i> User info</h4>
<div class="clearfix"></div>
</div>
<div class="x_content" style="padding: 0px;">
<div class="row">
<div class="col-md-2 col-sm-2 col-xs-12 text-center">
<img id="user-avatar" src="" width="100" height="100"/>
</div>
<div class="col-md-10 col-sm-10 col-xs-12">
<div class="row">
<div class="row">
<div class="col-md-6 col-xs-12">
<label class="control-label" for="name">Username <span class="required">*</span>
</label>
<input id="username" class="roundbox" maxlength="40" pattern="^[-_àèìòùáéíóúñçÀÈÌÒÙÁÉÍÓÚÑÇ .a-zA-Z0-9]+$" data-parsley-length="[4, 40]" name="name" placeholder="Username" data-parsley-trigger="change" required type="text" style="width:100%">
</div>
<div class="col-md-6 col-xs-12">
<label class="control-label" for="email">Email <span class="required">*</span>
</label>
<input id="email" class="roundbox" data-validate-length-range="4,40" name="email" placeholder="Email" type="email" data-parsley-trigger="change" style="width:100%">
</div>
</div>
<div class="row">
<div class="col-md-6 col-xs-12">
<label class="control-label" for="firstname">First name <span class="required">*</span>
</label>
<input id="firstname" class="roundbox" name="firstname" placeholder="First name" type="text" style="width:100%">
</div>
<div class="col-md-6 col-xs-12">
<label class="control-label" for="lastname">Last name <span class="required">*</span>
</label>
<input id="lastname" class="roundbox" name="lastname" placeholder="First name" type="text" style="width:100%">
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 col-xs-12">
<label class="control-label" for="id">Group</label>
<select class="groups-select roundbox" name="groups[]" multiple="multiple" style="width:100%">
</select>
</div>
</div>
</div>
</div>
<div class="x_panel">
<div class="x_title">
<h4><i class="fa fa-user-secret" aria-hidden="true"></i> Roles</h4>
<div class="clearfix"></div>
</div>
<div class="x_content" style="padding: 0px;">
<div class="row">
<div class="col-md-4 col-xs-12">
<label class="control-label" for="id">Moodle</label>
<select class="role-moodle-select" name="moodle" style="width:100%">
</select>
</div>
<div class="col-md-4 col-xs-12">
<label class="control-label" for="id">Nextcloud</label>
<select class="role-nextcloud-select" name="nextcloud" style="width:100%">
</select>
</div>
<div class="col-md-4 col-xs-12">
<label class="control-label" for="id">Keycloak</label>
<select class="role-keycloak-select" name="keycloak" style="width:100%">
</select>
</div>
</div>
</div>
</div>
</form>
<!-- Modal Footer -->
<div class="modal-footer">
<ul class="nav navbar-left panel_toolbox">
<li><button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button></li>
</ul>
<ul class="nav navbar-right panel_toolbox">
<li><button id="send" type="button" class="btn btn-success">Edit user</button></li>
</ul>
</div>
</div>
</div>
</div>
</div>