KOKINIO - MANAGER
Edit File: users.js
/* * Document : login.js * Author : pixelcave * Description: Custom javascript code used in Login page */ var _udto = null; var _rdto = null; var UsersDatatables = function () { return { init: function () { /* Initialize Bootstrap Datatables Integration */ App.datatables(); /* Tabla de usuario */ _udto = $('#users-datatable').dataTable({ "iDisplayLength": 10, "aLengthMenu": [[10, 20, 30], [10, 20, 30]], "bProcessing": true, "bServerSide": true, "sAjaxSource" : base_path+"/cp/users/load", "fnServerParams": function ( aoData ) { aoData.push( { "name": "uid", "value": uid } ); }, "columns" : [ { "data": "id" }, { "data": "username" }, { "data": "full_name" }, { "data": "role" }, { "data": null } ], "aoColumnDefs": [ { // id "aTargets": [0], "bSearchable": false, "bSortable": true, "sClass": "text-center" }, { // Usuario "aTargets": [1], "bSearchable": true, "bSortable": true, "mRender": function (data, type, full) { return '<strong>'+full.username+'</strong>'; } }, { // Nombre "aTargets": [2], "bSearchable": true, "bSortable": false, }, { // role "aTargets": [3], "bSearchable": false, "bSortable": true, "mRender": function (data, type, full) { var _badgetColor = 'label-info'; if(full.role==1) _badgetColor = 'label-primary'; return '<span class="label '+_badgetColor+'">'+full.role_name+'</span>'; } }, { // actions "aTargets": [4], "bSearchable": false, "bSortable": false, "sClass": "text-center", "mRender": function (data, type, full) { var _btn_groups = '<div class="btn-group">'; _btn_groups += ' <a href="javascript:void(0)" data-toggle="tooltip" title="Editar" data-action="edit" class="btn btn-xs btn-default" data-id="'+full.id+'"><i class="fa fa-pencil"></i></a>'; _btn_groups += ' <a href="javascript:void(0)" data-toggle="tooltip" title="Eliminar" data-action="del" class="btn btn-xs btn-danger" data-id="'+full.id+'"><i class="fa fa-times"></i></a>'; _btn_groups += '</div>'; return _btn_groups; }, "fnCreatedCell": function ( cell ) { $('a', cell).on('click', function (e) { var _action = $(this).data('action'); var _id = $(this).data('id'); if(_action=='edit') { $.d3POST(base_path+'/cp/users/info',{id:_id},function(data){ if(data.status==true) { $("#form-edit-usesr").trigger('reset'); $("#user-id","#form-edit-usesr").val(data.user.id); $(".lavel-role").html('').html(data.user.role.name); $("#user-role","#form-edit-usesr").val(data.user.role_id); $("#user-user","#form-edit-usesr").val(data.user.username); $("#user-firstname","#form-edit-usesr").val(data.user.first_name); $("#user-lastname","#form-edit-usesr").val(data.user.last_name); } }); $("#modal-user-edit").modal('show'); } else if(_action=='del') { $(".confirm-content").html('').html('Realmente desea eliminar este suario del sistema?'); $("#fmc-param","#form-modal-confirm").val('user'); $("#fmc-value","#form-modal-confirm").val('del:'+_id); $("#modal-confirm").modal('show'); } }); } } ], "order": [ 0, 'desc' ] }); /* Add placeholder attribute to the search input */ $('#users-datatable_filter input').attr('placeholder', 'Buscar'); $('<label><button class="btn btn-primary btn-sm" id="users_data_refresh"><span class="fa fa-refresh"></span></button></label>').css('margin-left','5px').css('margin-top','2px').insertBefore('div#users-datatable_filter > label'); $('button#users_data_refresh').click(function(){ _udto.dataTable()._fnAjaxUpdate(); }); /* Tabla de roles */ _rdto = $('#roles-datatable').dataTable({ "iDisplayLength": 5, "aLengthMenu": [[5, 10], [5, 10]], "bProcessing": false, "bServerSide": true, "sAjaxSource" : base_path+"/cp/roles/load", "columns" : [ { "data": "id" }, { "data": "name" }, { "data": null } ], "aoColumnDefs": [ { // id "aTargets": [0], "bSearchable": false, "bSortable": true, "sClass": "text-center" }, { // Nombre "aTargets": [1], "bSearchable": true, "bSortable": true, }, { // actions "aTargets": [2], "bSearchable": false, "bSortable": false, "sClass": "text-center", "mRender": function (data, type, full) { var _btn_groups = '<div class="btn-group">'; _btn_groups += ' <a href="javascript:void(0)" data-toggle="tooltip" title="Editar" data-action="edit" class="btn btn-xs btn-default" data-id="'+full.id+'"><i class="fa fa-pencil"></i></a>'; _btn_groups += ' <a href="javascript:void(0)" data-toggle="tooltip" title="Eliminar" data-action="del" class="btn btn-xs btn-danger" data-id="'+full.id+'"><i class="fa fa-times"></i></a>'; _btn_groups += '</div>'; return _btn_groups; }, "fnCreatedCell": function ( cell ) { $('a', cell).on('click', function (e) { var _action = $(this).data('action'); var _id = $(this).data('id'); if(_action=='edit') { $.d3POST(base_path+'/cp/roles/info',{id:_id},function(data){ if(data.status==true) { $("#form-roles").trigger('reset'); $("#form-role-id","#form-roles").val(data.role.id); $("#form-role-cmd","#form-roles").val('edit'); $("#role-name","#form-roles").val(data.role.name); } }); } else if(_action=='del') { $(".confirm-content").html('').html('Realmente desea eliminar este rol del sistema?'); $("#fmc-param","#form-modal-confirm").val('roles'); $("#fmc-value","#form-modal-confirm").val('del:'+_id); $("#modal-confirm").modal('show'); } }); } } ], "order": [ 0, 'asc' ] }); /* Add placeholder attribute to the search input */ $('#roles-datatable_filter input').attr('name','role-table-search').attr('placeholder', 'Buscar'); } }; }(); var Users = function() { return { init: function() { // Boton de confirmacion de dialogos $('#button-modal-confirm').click(function(e){ var _param = $("#fmc-param","#form-modal-confirm").val(); var _value = $("#fmc-value","#form-modal-confirm").val(); var _g = $.bootstrapGrowl; if(_param=='user') { var _sval = _value.split(':'); if(_sval[0]=='del') { $.d3POST(base_path+'/cp/users/del',{id:_sval[1]},function(data){ if(data.status==true) { _g(data.message, { type: "success", delay: 4500, allow_dismiss: true }); _udto.dataTable()._fnAjaxUpdate(); } else { _g(data.message, { type: "danger", delay: 4500, allow_dismiss: true }); } }); } } else if(_param=='roles') { var _sval = _value.split(':'); if(_sval[0]=='del') { $.d3POST(base_path+'/cp/roles/del',{id:_sval[1]},function(data){ if(data.status==true) { _g(data.message, { type: "success", delay: 4500, allow_dismiss: true }); _rdto.dataTable()._fnAjaxUpdate(); } else { _g(data.message, { type: "danger", delay: 4500, allow_dismiss: true }); } }); } } $("#modal-confirm").modal('hide'); e.preventDefault(); }); // Validation config jQuery.validator.setDefaults({ debug: true, success: "valid" }); // Add user var _formAddData = $('#form-add-usesr'); var _buttonRole = $('.btn-role', _formAddData); var _lavelRole = $('.lavel-role', _formAddData); var _inputRole = $('#user-role', _formAddData); $('#modal-user-add').on('show.bs.modal', function (e) { _formAddData.trigger('reset'); $.d3GET(base_path+'/cp/roles/get',{},function(data){ if(data.status==true && data.roles.length>0) { $(".user-add-role-selection").html(''); $.each(data.roles,function(i, item){ var _roleItem = '<li><a href="javascript:void(0)" class="btn-role" data-role="'+item.id+'">'+item.name+'</a></li>'; $(".user-add-role-selection").append(_roleItem); if(item.default==1) { _lavelRole.html(item.name); _inputRole.val(item.id); } }); $('.btn-role').on('click',function(e){ var _role = $(this).data('role'); var _lavel = $(this).html(); _lavelRole.html(_lavel); _inputRole.val(_role); }); } else { $('#modal-user-add').modal('hide'); _g(data.message, { type: "danger", delay: 4500, allow_dismiss: true }); } }); }); $('#modal-user-add').on('hidden.bs.modal', function (e) { $("#form-add-usesr :input").prop("disabled", false); }); _formAddData.validate({ errorClass: 'help-block animation-slideDown', // You can change the animation class for a different entrance animation - check animations page errorElement: 'div', errorPlacement: function(error, e) { e.parents('.form-group > div').append(error); }, highlight: function(e) { $(e).closest('.form-group').removeClass('has-success has-error').addClass('has-error'); $(e).closest('.help-block').remove(); }, success: function(e) { e.closest('.form-group').removeClass('has-success has-error'); e.closest('.help-block').remove(); }, rules: { 'user-user': { required: true, minlength: 5, lettersonly: true }, 'user-firstname': { required: true, minlength: 5 }, 'user-lastname': { required: true, minlength: 5 }, 'user_password': { required: true, minlength: 5 }, user_repassword: { equalTo: "#user_password" } }, messages: { 'user-user': { required: 'Por favor ingrese un nombre usuario', minlength: 'Debe contener almenos 5 caracteres', lettersonly: 'Solo de admiten letras' }, 'user-firstname': { required: 'Por favor ingrese un nombre', minlength: 'Debe contener almenos 5 caracteres' }, 'user-lastname': { required: 'Por favor ingrese un apellido', minlength: 'Debe contener almenos 5 caracteres' }, 'user_password': { required: 'Por favor ingrese una contraseña', minlength: 'Debe contener almenos 5 caracteres' }, user_repassword: { equalTo: 'La contraseña y la confirmacion no coinciden' } }, submitHandler: function(form) { $("#form-add-usesr :input").prop("disabled", true); var _role = $('#user-role',_formAddData).val(); var _username = $('#user-user',_formAddData).val(); var _fname = $('#user-firstname',_formAddData).val(); var _lname = $('#user-lastname',_formAddData).val(); var _password = $('#user_password',_formAddData).val(); var _g = $.bootstrapGrowl; $.d3POST(base_path+'/cp/users',{role:_role,username:_username,first_name:_fname,last_name:_lname,password:_password},function(data){ if(data.status==true) { _g(data.message, { type: "success", delay: 4500, allow_dismiss: true }); $('#modal-user-add').modal('hide'); _udto.dataTable()._fnAjaxUpdate(); } else { _g(data.message, { type: "danger", delay: 4500, allow_dismiss: true }); $("#form-add-usesr :input").prop("disabled", false); } }); } }); // Edit user var _formEditData = $('#form-edit-usesr'); var _e_buttonRole = $('.btn-role', _formEditData); var _e_lavelRole = $('.lavel-role', _formEditData); var _e_inputRole = $('#user-role', _formEditData); var _validateForm; $('#modal-user-edit').on('show.bs.modal', function (e) { _formEditData.trigger('reset'); $.d3GET(base_path+'/cp/roles/get',{},function(data){ if(data.status==true && data.roles.length>0) { $(".user-edit-role-selection").html(''); $.each(data.roles,function(i, item){ var _roleItem = '<li><a href="javascript:void(0)" class="btn-role" data-role="'+item.id+'">'+item.name+'</a></li>'; $(".user-edit-role-selection").append(_roleItem); }); $('.btn-role').on('click',function(e){ var _role = $(this).data('role'); var _lavel = $(this).html(); _e_lavelRole.html(_lavel); _e_inputRole.val(_role); }); } else { $('#modal-user-edit').modal('hide'); _g(data.message, { type: "danger", delay: 4500, allow_dismiss: true }); } }); }); $('#modal-user-edit').on('hidden.bs.modal', function (e) { $("#form-edit-usesr :input").prop("disabled", false); }); _e_buttonRole.click(function(e){ var _role = $(this).data('role'); var _lavel = $(this).html(); _e_lavelRole.html(_lavel); _e_inputRole.val(_role); }); _validateForm = _formEditData.validate({ errorClass: 'help-block animation-slideDown', // You can change the animation class for a different entrance animation - check animations page errorElement: 'div', errorPlacement: function(error, e) { e.parents('.form-group > div').append(error); }, highlight: function(e) { $(e).closest('.form-group').removeClass('has-success has-error').addClass('has-error'); $(e).closest('.help-block').remove(); }, success: function(e) { e.closest('.form-group').removeClass('has-success has-error'); e.closest('.help-block').remove(); }, rules: { 'user-user': { required: true, minlength: 5 }, 'user-firstname': { required: true, minlength: 5 }, 'user-lastname': { required: true, minlength: 5 }, 'user_password': { required: false, minlength: 5 }, user_repassword: { equalTo: { param: "#user_password", depends: function(element) { return ( $("#user_password", _formEditData).val() != '' && ($(element).val() != $("#user_password", _formEditData).val()) ); } } } }, messages: { 'user-user': { required: 'Por favor ingrese un nombre usuario', minlength: 'Debe contener almenos 5 caracteres' }, 'user-firstname': { required: 'Por favor ingrese un nombre', minlength: 'Debe contener almenos 5 caracteres' }, 'user-lastname': { required: 'Por favor ingrese un apellido', minlength: 'Debe contener almenos 5 caracteres' }, 'user_password': { required: 'Por favor ingrese una contraseña', minlength: 'Debe contener almenos 5 caracteres' }, user_repassword: { equalTo: 'La contraseña y la confirmacion no coinciden' } }, submitHandler: function(form) { $(":input", form).prop("disabled", true); var _id = $('#user-id', form).val(); var _role = $('#user-role', form).val(); var _username = $('#user-user', form).val(); var _fname = $('#user-firstname', form).val(); var _lname = $('#user-lastname', form).val(); var _password = $('#user_password', form).val(); var _g = $.bootstrapGrowl; $.d3POST(base_path+'/cp/users/edit',{id:_id,role:_role,username:_username,first_name:_fname,last_name:_lname,password:_password},function(data){ if(data.status==true) { _g(data.message, { type: "success", delay: 4500, allow_dismiss: true }); $('#modal-user-edit').modal('hide'); _udto.dataTable()._fnAjaxUpdate(); } else { _g(data.message, { type: "danger", delay: 4500, allow_dismiss: true }); $(":input", form).prop("disabled", false); } }); return false; } }); // Add role var _formAddRole = $('#form-roles'); $("#btn-add-role").click(function(e){ _formAddRole.submit(); e.preventDefault(); }); $('#modal-roles').on('show.bs.modal', function (e) { _formAddRole.trigger('reset'); $("#form-role-cmd",_formAddRole).val('new'); }); $('#modal-roles').on('hidden.bs.modal', function (e) { _formAddRole.trigger('reset'); $("#form-role-cmd",_formAddRole).val('new'); }); _formAddRole.validate({ errorClass: 'help-block animation-slideDown', // You can change the animation class for a different entrance animation - check animations page errorElement: 'div', errorPlacement: function(error, e) { e.parents('.form-group > div').append(error); }, highlight: function(e) { $(e).closest('.form-group').removeClass('has-success has-error').addClass('has-error'); $(e).closest('.help-block').remove(); }, success: function(e) { e.closest('.form-group').removeClass('has-success has-error'); e.closest('.help-block').remove(); }, rules: { 'role-name': { required: true, minlength: 4 } }, messages: { 'role-name': { required: 'Por favor ingrese un nombre de rol', minlength: 'Debe contener almenos 4 caracteres' } }, submitHandler: function(form) { var _id = $('#form-role-id', form).val(); var _name = $('#role-name', form).val(); var _cmd = $('#form-role-cmd', form).val(); var _g = $.bootstrapGrowl; if(_cmd=='new') { $.d3POST(base_path+'/cp/roles',{name:_name},function(data){ if(data.status==true) { _g(data.message, { type: "success", delay: 4500, allow_dismiss: true }); $('#role-name', form).val(''); _rdto.dataTable()._fnAjaxUpdate(); } else { _g(data.message, { type: "danger", delay: 4500, allow_dismiss: true }); } }); } else if(_cmd=='edit') { $.d3POST(base_path+'/cp/roles/edit',{id:_id,name:_name},function(data){ if(data.status==true) { _g(data.message, { type: "success", delay: 4500, allow_dismiss: true }); $('#role-name', form).val(''); $('#form-role-cmd', form).val('new'); $('#form-role-id', form).val(''); _rdto.dataTable()._fnAjaxUpdate(); } else { _g(data.message, { type: "danger", delay: 4500, allow_dismiss: true }); } }); } return false; } }); } }; }();