diff options
| author | Paul Duncan <pabs@pablotron.org> | 2016-05-26 02:35:34 -0400 | 
|---|---|---|
| committer | Paul Duncan <pabs@pablotron.org> | 2016-05-26 02:35:34 -0400 | 
| commit | 3c5e821b3cdd1c5a144bf012bada282fffd871a2 (patch) | |
| tree | fe6e12a488605481bd9c2fe18a0d59fac9030836 /data | |
| parent | 9e73b3b2bd571b5f7dd752db80bc86f27d2300dd (diff) | |
| download | guff-3c5e821b3cdd1c5a144bf012bada282fffd871a2.tar.xz guff-3c5e821b3cdd1c5a144bf012bada282fffd871a2.zip  | |
fix user-edit
Diffstat (limited to 'data')
| -rw-r--r-- | data/assets/js/admin/dialogs/user-edit.js | 63 | ||||
| -rw-r--r-- | data/assets/js/admin/tabs/users.js | 7 | 
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],          }));  | 
