diff --git a/app/assets/javascripts/admin/models/group.js b/app/assets/javascripts/admin/models/group.js index d1444afac91..c4e3df70764 100644 --- a/app/assets/javascripts/admin/models/group.js +++ b/app/assets/javascripts/admin/models/group.js @@ -60,13 +60,20 @@ Discourse.Group = Discourse.Model.extend({ name: this.get('name'), usernames: this.get('usernames') } - }}).then(function(r){ + }}).then(function(resp) { group.set('disableSave', false); - group.set('id', r.id); + group.set('id', resp.id); + }, function (error) { + group.set('disableSave', false); + if (error && error.responseText) { + bootbox.alert($.parseJSON(error.responseText).errors); + } + else { + bootbox.alert(I18n.t('generic_error')); + } }); }, - save: function(){ var group = this; group.set('disableSave', true); diff --git a/app/controllers/admin/groups_controller.rb b/app/controllers/admin/groups_controller.rb index 77ec8a27d6d..3379f6323cf 100644 --- a/app/controllers/admin/groups_controller.rb +++ b/app/controllers/admin/groups_controller.rb @@ -33,8 +33,11 @@ class Admin::GroupsController < Admin::AdminController group = Group.new group.name = params[:group][:name] group.usernames = params[:group][:usernames] if params[:group][:usernames] - group.save! - render_serialized(group, BasicGroupSerializer) + if group.save + render_serialized(group, BasicGroupSerializer) + else + render_json_error group + end end def destroy