aboutsummaryrefslogtreecommitdiff
path: root/data/assets/js/admin
diff options
context:
space:
mode:
authorPaul Duncan <pabs@pablotron.org>2016-05-26 02:35:34 -0400
committerPaul Duncan <pabs@pablotron.org>2016-05-26 02:35:34 -0400
commit3c5e821b3cdd1c5a144bf012bada282fffd871a2 (patch)
treefe6e12a488605481bd9c2fe18a0d59fac9030836 /data/assets/js/admin
parent9e73b3b2bd571b5f7dd752db80bc86f27d2300dd (diff)
downloadguff-3c5e821b3cdd1c5a144bf012bada282fffd871a2.tar.bz2
guff-3c5e821b3cdd1c5a144bf012bada282fffd871a2.zip
fix user-edit
Diffstat (limited to 'data/assets/js/admin')
-rw-r--r--data/assets/js/admin/dialogs/user-edit.js63
-rw-r--r--data/assets/js/admin/tabs/users.js7
2 files changed, 54 insertions, 16 deletions
diff --git a/data/assets/js/admin/dialogs/user-edit.js b/data/assets/js/admin/dialogs/user-edit.js
index 2e43d42..fed9364 100644
--- a/data/assets/js/admin/dialogs/user-edit.js
+++ b/data/assets/js/admin/dialogs/user-edit.js
@@ -2,14 +2,40 @@ jQuery(function($) {
"use strict";
$('#user-edit-dialog').on('show.bs.modal', function() {
- var row = $(this).data('row');
-
- $.each({
- name: 'user_name',
- email: 'email',
- role: 'role_name',
- }, function(id, col) {
- $('#user-edit-' + id).val(row[col]);
+ var me = $(this);
+
+ $(this).find('.modal-body').addClass('hidden');
+ $(this).find('.modal-body.loading-text').removeClass('hidden');
+
+ send('user/get', {
+ user_id: me.data('user_id'),
+ }).always(function() {
+ $(this).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');
});
});
@@ -34,8 +60,7 @@ jQuery(function($) {
});
$('#user-edit-confirm').click(function() {
- var me = $(this),
- user_id = $('#user-edit-dialog').data('row').user_id;
+ var me = $(this);
if (me.hasClass('disabled'))
return false;
@@ -43,18 +68,28 @@ jQuery(function($) {
// toggle loading
me.toggleClass('disabled').find('.loading').toggleClass('hidden');
- send('test/edit_user', {
- user_id: user_id,
+ 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) {
- alert('Error ' + r.responseText);
+ 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) {}
+
+ alert('Error: ' + error);
}).done(function(r) {
- console.log(r);
$('#users-reload').click();
$('#user-edit-dialog').modal('hide');
});
diff --git a/data/assets/js/admin/tabs/users.js b/data/assets/js/admin/tabs/users.js
index b74b8a1..2fff893 100644
--- a/data/assets/js/admin/tabs/users.js
+++ b/data/assets/js/admin/tabs/users.js
@@ -10,7 +10,7 @@ jQuery(function($) {
"data-user_id='%{user_id|h}' ",
"data-q='%{q|h}' ",
">",
- "<i class='fa fa-fw fa-user'></i>",
+ "<i class='fa fa-fw %{icon|h}'></i>",
" ",
"%{name|h} (%{email|h})",
@@ -89,8 +89,11 @@ jQuery(function($) {
}));
}).done(function(r) {
list.html($.map(r, function(row) {
+ var active = (row.is_active == '1');
+
return TEMPLATES.run('user', $.extend({}, row, {
- css: (row.is_active == '1') ? '' : 'list-group-item-danger',
+ icon: active ? 'fa-user' : 'fa-user-times',
+ css: active ? '' : 'list-group-item-danger',
q: [row.user_id, row.user_name, row.email, row.role_name].join(' ').toLowerCase(),
badge_css: ROLE_BADGE_CSS[row.role],
}));