jQuery(function($) { "use strict"; $('#user-edit-dialog').on('show.bs.modal', function() { var me = $(this); me.find('.modal-body').addClass('hidden'); me.find('.modal-body.loading-text').removeClass('hidden'); send('user/get', { user_id: me.data('user_id'), }).always(function() { me.find('.modal-body.loading-text').addClass('hidden'); }).fail(function(r) { var error = r.responseText; try { // try to extract error message from json response var data = $.parseJSON(r.responseText); if ('error' in data) error = data.error; } catch (e) {} me.find('.modal-body.loading-error').removeClass('hidden') .find('.error-text').text(error); }).done(function(r) { $.each({ name: 'name', email: 'email', role: 'role', }, function(id, col) { $('#user-edit-' + id).val(r[col]); }); $('#user-edit-password').val(''); $('#user-edit-active').val((r.is_active == '1') ? 'active' : 'inactive'); me.find('.modal-body.loading-done').removeClass('hidden'); }); }).on('shown.bs.modal', function() { $('#user-edit-name').focus(); }).on('hide.bs.modal', function() { // clear highlight $('#users .active').removeClass('active'); }); $('#user-edit-name, #user-edit-email').keydown(function(ev) { if (ev.which == 13) { setTimeout(function() { $('#user-edit-confirm').click(); }, 10); // stop event return false; } }); $('#user-edit-confirm').click(function() { var me = $(this); if (me.hasClass('disabled')) return false; // toggle loading me.toggleClass('disabled').find('.loading').toggleClass('hidden'); send('user/set', { user_id: $('#user-edit-dialog').data('user_id'), name: $('#user-edit-name').val(), email: $('#user-edit-email').val(), password: $('#user-edit-password').val(), role: $('#user-edit-role').val(), active: ($('#user-edit-active').val() == 'active') ? 't' : 'f', }).always(function() { // toggle loading me.toggleClass('disabled').find('.loading').toggleClass('hidden'); }).fail(function(r) { gripe(r, 'save user'); }).done(function(r) { $('#users-reload').click(); $('#user-edit-dialog').modal('hide'); }); // stop event return false; }); });