diff --git a/app/assets/javascripts/admin/controllers/admin-user-index.js.es6 b/app/assets/javascripts/admin/controllers/admin-user-index.js.es6 index 88d775b1b8f..b544aafc637 100644 --- a/app/assets/javascripts/admin/controllers/admin-user-index.js.es6 +++ b/app/assets/javascripts/admin/controllers/admin-user-index.js.es6 @@ -9,7 +9,7 @@ export default ObjectController.extend(CanCheckEmails, { showApproval: Discourse.computed.setting('must_approve_users'), showBadges: Discourse.computed.setting('enable_badges'), - primaryGroupDirty: Discourse.computed.propertyNotEqual('originalPrimaryGroupId', 'primary_group_id'), + primaryGroupDirty: Discourse.computed.propertyNotEqual('originalPrimaryGroupId', 'model.primary_group_id'), automaticGroups: function() { return this.get("model.automaticGroups").map((g) => g.name).join(", "); @@ -17,7 +17,7 @@ export default ObjectController.extend(CanCheckEmails, { userFields: function() { const siteUserFields = this.site.get('user_fields'), - userFields = this.get('user_fields'); + userFields = this.get('model.user_fields'); if (!Ember.isEmpty(siteUserFields)) { return siteUserFields.map(function(uf) { @@ -26,7 +26,7 @@ export default ObjectController.extend(CanCheckEmails, { }); } return []; - }.property('user_fields.@each'), + }.property('model.user_fields.@each'), actions: { toggleTitleEdit() { @@ -67,16 +67,16 @@ export default ObjectController.extend(CanCheckEmails, { return Discourse.ajax("/admin/users/" + this.get('id') + "/primary_group", { type: 'PUT', - data: {primary_group_id: this.get('primary_group_id')} + data: {primary_group_id: this.get('model.primary_group_id')} }).then(function () { - self.set('originalPrimaryGroupId', self.get('primary_group_id')); + self.set('originalPrimaryGroupId', self.get('model.primary_group_id')); }).catch(function() { bootbox.alert(I18n.t('generic_error')); }); }, resetPrimaryGroup() { - this.set('primary_group_id', this.get('originalPrimaryGroupId')); + this.set('model.primary_group_id', this.get('originalPrimaryGroupId')); }, regenerateApiKey() { diff --git a/app/assets/javascripts/admin/models/admin-user.js.es6 b/app/assets/javascripts/admin/models/admin-user.js.es6 index 674ea5e6a30..a841ed38a55 100644 --- a/app/assets/javascripts/admin/models/admin-user.js.es6 +++ b/app/assets/javascripts/admin/models/admin-user.js.es6 @@ -1,3 +1,5 @@ +import { popupAjaxError } from 'discourse/lib/ajax-error'; + const AdminUser = Discourse.User.extend({ customGroups: Em.computed.filter("groups", (g) => !g.automatic && Discourse.Group.create(g)), @@ -90,14 +92,7 @@ const AdminUser = Discourse.User.extend({ can_grant_admin: false, can_revoke_admin: true }); - }).catch(function(e) { - let error; - if (e.responseJSON && e.responseJSON.error) { - error = e.responseJSON.error; - } - error = error || I18n.t('admin.user.grant_admin_failed', { error: "http: " + e.status + " - " + e.body }); - bootbox.alert(error); - }); + }).catch(popupAjaxError); }, revokeModeration() { @@ -110,7 +105,7 @@ const AdminUser = Discourse.User.extend({ can_grant_moderation: true, can_revoke_moderation: false }); - }); + }).catch(popupAjaxError); }, grantModeration() { @@ -123,14 +118,7 @@ const AdminUser = Discourse.User.extend({ can_grant_moderation: false, can_revoke_moderation: true }); - }).catch(function(e) { - let error; - if (e.responseJSON && e.responseJSON.error) { - error = e.responseJSON.error; - } - error = error || I18n.t('admin.user.grant_moderation_failed', { error: "http: " + e.status + " - " + e.body }); - bootbox.alert(error); - }); + }).catch(popupAjaxError); }, refreshBrowsers() { @@ -156,10 +144,6 @@ const AdminUser = Discourse.User.extend({ this.set('originalTrustLevel', this.get('trust_level')); }, - trustLevels: function() { - return Discourse.Site.currentProp('trustLevels'); - }.property(), - dirty: Discourse.computed.propertyNotEqual('originalTrustLevel', 'trustLevel.id'), saveTrustLevel() { diff --git a/app/assets/javascripts/admin/templates/user_index.hbs b/app/assets/javascripts/admin/templates/user_index.hbs index b522067b0c9..9d2c510b315 100644 --- a/app/assets/javascripts/admin/templates/user_index.hbs +++ b/app/assets/javascripts/admin/templates/user_index.hbs @@ -1,12 +1,12 @@ -
+
- {{#if active}} + {{#if model.active}} {{#link-to 'user' model class="btn"}} {{fa-icon "user"}} {{i18n 'admin.user.show_public_profile'}} {{/link-to}} - {{#if can_impersonate}} + {{#if model.can_impersonate}} {{/if}} @@ -50,8 +50,8 @@
{{i18n 'user.associated_accounts'}}
- {{#if associated_accounts}} - {{associated_accounts}} + {{#if model.associated_accounts}} + {{model.associated_accounts}} {{else}} {{/if}} @@ -68,9 +68,9 @@
{{i18n 'user.title.title'}}
{{#if editingTitle}} - {{text-field value=title autofocus="autofocus"}} + {{text-field value=model.title autofocus="autofocus"}} {{else}} - {{title}}  + {{model.title}}  {{/if}}
@@ -85,23 +85,23 @@
{{i18n 'user.ip_address.title'}}
-
{{ip_address}}
+
{{model.ip_address}}
{{#if currentUser.staff}} - {{ip-lookup ip=ip_address userId=id}} + {{ip-lookup ip=model.ip_address userId=model.id}} {{/if}}
{{i18n 'user.registration_ip_address.title'}}
-
{{registration_ip_address}}
+
{{model.registration_ip_address}}
{{#if currentUser.staff}} - {{ip-lookup ip=registration_ip_address userId=id}} + {{ip-lookup ip=model.registration_ip_address userId=model.id}} {{/if}}
@@ -110,10 +110,10 @@
{{i18n 'admin.badges.title'}}
- {{i18n 'badges.badge_count' count=badge_count}} + {{i18n 'badges.badge_count' count=model.badge_count}}
- {{#link-to 'adminUser.badges' this class="btn"}}{{fa-icon "certificate"}}{{i18n 'admin.badges.edit_badges'}}{{/link-to}} + {{#link-to 'adminUser.badges' model class="btn"}}{{fa-icon "certificate"}}{{i18n 'admin.badges.edit_badges'}}{{/link-to}}
{{/if}} @@ -169,26 +169,26 @@
{{i18n 'admin.users.active'}}
- {{#if active}} + {{#if model.active}} {{i18n 'yes_value'}} {{else}} {{i18n 'no_value'}} {{/if}}
- {{#if active}} - {{#if can_deactivate}} + {{#if model.active}} + {{#if model.can_deactivate}} {{i18n 'admin.user.deactivate_explanation'}} {{/if}} {{else}} - {{#if can_send_activation_email}} + {{#if model.can_send_activation_email}} {{/if}} - {{#if can_activate}} + {{#if model.can_activate}} {{/if}} - {{#if can_grant_admin}} + {{#if model.can_grant_admin}} {{/if}} - {{#if can_grant_moderation}} + {{#if model.can_grant_moderation}} @@ -273,17 +273,17 @@ {{/if}} {{/if}} - {{#if tl3Requirements}} - {{#link-to 'adminUser.tl3Requirements' this class="btn"}}{{i18n 'admin.user.trust_level_3_requirements'}}{{/link-to}} + {{#if model.tl3Requirements}} + {{#link-to 'adminUser.tl3Requirements' model class="btn"}}{{i18n 'admin.user.trust_level_3_requirements'}}{{/link-to}} {{/if}}
-
+
{{i18n 'admin.user.suspended'}}
-
{{isSuspended}}
+
{{model.isSuspended}}
- {{#if isSuspended}} + {{#if model.isSuspended}}
- {{#if isSuspended}} + {{#if model.isSuspended}}
{{i18n 'admin.user.suspended_by'}}
@@ -316,11 +316,11 @@
{{/if}} -
+
{{i18n 'admin.user.blocked'}}
-
{{blocked}}
+
{{model.blocked}}
- {{#if blocked}} + {{#if model.blocked}} {{/if}} {{else}} - {{deleteAllPostsExplanation}} + {{model.deleteAllPostsExplanation}} {{/if}}
{{i18n 'admin.user.posts_read_count'}}
-
{{posts_read_count}}
+
{{model.posts_read_count}}
{{i18n 'admin.user.warnings_received_count'}}
-
{{warnings_received_count}}
+
{{model.warnings_received_count}}
{{i18n 'admin.user.flags_given_received_count'}}
-
{{flags_given_count}} / {{flags_received_count}}
+
{{model.flags_given_count}} / {{model.flags_received_count}}
{{i18n 'admin.user.private_topics_count'}}
-
{{private_topics_count}}
+
{{model.private_topics_count}}
{{i18n 'admin.user.time_read'}}
-
{{{time_read}}}
+
{{{model.time_read}}}
{{i18n 'user.invited.days_visited'}}
-
{{{days_visited}}}
+
{{{model.days_visited}}}
-{{#if single_sign_on_record}} +{{#if model.single_sign_on_record}}

{{i18n 'admin.user.sso.title'}}

- {{#with single_sign_on_record}} + {{#with model.single_sign_on_record}}
{{i18n 'admin.user.sso.external_id'}}
{{external_id}}
@@ -455,28 +455,28 @@

- {{#unless anonymizeForbidden}} + {{#unless model.anonymizeForbidden}} {{d-button label="admin.user.anonymize" icon="exclamation-triangle" class="btn-danger" - disabled=anonymizeForbidden + disabled=model.anonymizeForbidden action="anonymize"}} {{/unless}} - {{#unless deleteForbidden}} + {{#unless model.deleteForbidden}} {{d-button label="admin.user.delete" icon="exclamation-triangle" class="btn-danger" - disabled=deleteForbidden + disabled=model.deleteForbidden action="destroy"}} {{/unless}}
- {{#if deleteExplanation}} + {{#if model.deleteExplanation}}

- {{fa-icon "exclamation-triangle"}} {{deleteExplanation}} + {{fa-icon "exclamation-triangle"}} {{model.deleteExplanation}}
{{/if}}
diff --git a/app/assets/javascripts/discourse/lib/ajax-error.js.es6 b/app/assets/javascripts/discourse/lib/ajax-error.js.es6 index 567fc2e45c4..b7a8f24c6f3 100644 --- a/app/assets/javascripts/discourse/lib/ajax-error.js.es6 +++ b/app/assets/javascripts/discourse/lib/ajax-error.js.es6 @@ -29,6 +29,8 @@ function extractError(error) { if (parsedJSON) { if (parsedJSON.errors && parsedJSON.errors.length > 0) { parsedError = parsedJSON.errors[0]; + } else if (parsedJSON.error) { + parsedError = parsedJSON.error; } else if (parsedJSON.failed) { parsedError = parsedJSON.message; } diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index ee66776c37d..37bfcd36372 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -2202,8 +2202,6 @@ en: suspended_explanation: "A suspended user can't log in." block_explanation: "A blocked user can't post or start topics." trust_level_change_failed: "There was a problem changing the user's trust level." - grant_admin_failed: "There was a problem granting admin privileges." - grant_moderation_failed: "There was a problem granting moderation privileges." suspend_modal_title: "Suspend User" trust_level_2_users: "Trust Level 2 Users" trust_level_3_requirements: "Trust Level 3 Requirements"