From bd99d5a40c7e5e824841e7affdfefb7a3464325e Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Tue, 7 May 2013 13:30:12 -0400 Subject: [PATCH] Calls to Discourse.ajax no longer need `getURL` -- will be done automatically. --- .../admin_email_logs_controller.js | 2 +- .../admin/helpers/admin_user_helpers.js | 12 --- .../javascripts/admin/models/admin_api.js | 6 +- .../admin/models/admin_dashboard.js | 4 +- .../javascripts/admin/models/admin_user.js | 38 ++++----- .../javascripts/admin/models/email_log.js | 2 +- .../javascripts/admin/models/flagged_post.js | 8 +- app/assets/javascripts/admin/models/report.js | 2 +- .../javascripts/admin/models/site_content.js | 4 +- .../admin/models/site_content_type.js | 2 +- .../admin/models/site_customization.js | 6 +- .../javascripts/admin/models/site_setting.js | 6 +- .../javascripts/admin/models/version_check.js | 2 +- .../admin/routes/admin_user_route.js | 6 +- .../admin/templates/dashboard.js.handlebars | 2 +- .../admin/templates/email_logs.js.handlebars | 4 +- .../admin/templates/flags.js.handlebars | 10 +-- .../admin/templates/user.js.handlebars | 9 ++- .../admin/templates/users_list.js.handlebars | 6 +- app/assets/javascripts/discourse.js | 29 +++++-- .../discourse/components/click_track.js | 4 +- .../discourse/components/mention.js | 2 +- .../discourse/components/onebox.js | 4 +- .../discourse/components/screen_track.js | 2 +- .../javascripts/discourse/components/url.js | 2 +- .../discourse/components/user_search.js | 2 +- .../discourse/components/utilities.js | 14 +--- .../controllers/composer_controller.js | 2 +- .../preferences_username_controller.js | 19 +++-- .../controllers/static_controller.js | 2 +- .../discourse/models/action_summary.js | 8 +- .../javascripts/discourse/models/category.js | 8 +- .../discourse/models/category_list.js | 2 +- .../javascripts/discourse/models/draft.js | 6 +- .../javascripts/discourse/models/invite.js | 2 +- .../discourse/models/invite_list.js | 2 +- .../javascripts/discourse/models/model.js | 11 --- .../javascripts/discourse/models/post.js | 79 +++++++++---------- .../javascripts/discourse/models/topic.js | 28 +++---- .../javascripts/discourse/models/user.js | 56 +++++-------- .../discourse/views/header_view.js | 2 +- .../views/modal/create_account_view.js | 2 +- .../views/modal/edit_category_view.js | 8 +- .../views/modal/forgot_password_view.js | 2 +- .../discourse/views/modal/login_view.js | 2 +- .../views/modal/not_activated_view.js | 2 +- .../javascripts/discourse/views/post_view.js | 2 +- .../discourse/views/search/search_view.js | 2 +- app/views/common/_persona_javascript.html.erb | 3 +- .../20130411205132_create_admin_logs.rb | 2 +- db/migrate/20130416004607_create_groups.rb | 2 +- db/migrate/20130416004933_group_users.rb | 2 +- ...130429000101_add_security_to_categories.rb | 2 +- ...20130430052751_add_topic_allowed_groups.rb | 2 +- 54 files changed, 202 insertions(+), 248 deletions(-) delete mode 100644 app/assets/javascripts/admin/helpers/admin_user_helpers.js diff --git a/app/assets/javascripts/admin/controllers/admin_email_logs_controller.js b/app/assets/javascripts/admin/controllers/admin_email_logs_controller.js index 039fa7db820..a921f9d2376 100644 --- a/app/assets/javascripts/admin/controllers/admin_email_logs_controller.js +++ b/app/assets/javascripts/admin/controllers/admin_email_logs_controller.js @@ -26,7 +26,7 @@ Discourse.AdminEmailLogsController = Ember.ArrayController.extend(Discourse.Pres this.set('sentTestEmail', false); var adminEmailLogsController = this; - Discourse.ajax(Discourse.getURL("/admin/email_logs/test"), { + Discourse.ajax("/admin/email_logs/test", { type: 'POST', data: { email_address: this.get('testEmailAddress') } }).then(function () { diff --git a/app/assets/javascripts/admin/helpers/admin_user_helpers.js b/app/assets/javascripts/admin/helpers/admin_user_helpers.js deleted file mode 100644 index 911285842f2..00000000000 --- a/app/assets/javascripts/admin/helpers/admin_user_helpers.js +++ /dev/null @@ -1,12 +0,0 @@ -/** - Return the url to a user's admin page given the username. - For example: - - {{unbound username}} - - @method adminUserPath - @for Handlebars -**/ -Handlebars.registerHelper('adminUserPath', function(username) { - return Discourse.getURL("/admin/users/") + Ember.Handlebars.get(this, username); -}); diff --git a/app/assets/javascripts/admin/models/admin_api.js b/app/assets/javascripts/admin/models/admin_api.js index 338f19db64e..ab1d67dbde9 100644 --- a/app/assets/javascripts/admin/models/admin_api.js +++ b/app/assets/javascripts/admin/models/admin_api.js @@ -8,7 +8,7 @@ Discourse.AdminApi = Discourse.Model.extend({ generateKey: function(){ var adminApi = this; - Discourse.ajax(Discourse.getURL('/admin/api/generate_key'),{type: 'POST'}).then(function (result) { + Discourse.ajax('/admin/api/generate_key', {type: 'POST'}).then(function (result) { adminApi.set('key', result.key); }); }, @@ -20,6 +20,8 @@ Discourse.AdminApi = Discourse.Model.extend({ Discourse.AdminApi.reopenClass({ find: function() { - return this.getModelAjax(Discourse.getURL('/admin/api')); + return Discourse.ajax("/admin/api").then(function(data) { + return Discourse.AdminApi.create(data); + }); } }); diff --git a/app/assets/javascripts/admin/models/admin_dashboard.js b/app/assets/javascripts/admin/models/admin_dashboard.js index dd36e8b589b..14b03e8494d 100644 --- a/app/assets/javascripts/admin/models/admin_dashboard.js +++ b/app/assets/javascripts/admin/models/admin_dashboard.js @@ -19,7 +19,7 @@ Discourse.AdminDashboard.reopenClass({ @return {jqXHR} a jQuery Promise object **/ find: function() { - return Discourse.ajax(Discourse.getURL("/admin/dashboard")).then(function(json) { + return Discourse.ajax("/admin/dashboard").then(function(json) { var model = Discourse.AdminDashboard.create(json); model.set('loaded', true); return model; @@ -34,7 +34,7 @@ Discourse.AdminDashboard.reopenClass({ @return {jqXHR} a jQuery Promise object **/ fetchProblems: function() { - return Discourse.ajax(Discourse.getURL("/admin/dashboard/problems"), { + return Discourse.ajax("/admin/dashboard/problems", { type: 'GET', dataType: 'json' }).then(function(json) { diff --git a/app/assets/javascripts/admin/models/admin_user.js b/app/assets/javascripts/admin/models/admin_user.js index 360b10a12d3..8d82e275d04 100644 --- a/app/assets/javascripts/admin/models/admin_user.js +++ b/app/assets/javascripts/admin/models/admin_user.js @@ -6,20 +6,12 @@ @namespace Discourse @module Discourse **/ -Discourse.AdminUser = Discourse.Model.extend({ - path: (function() { - return Discourse.getURL("/users/") + (this.get('username_lower')); - }).property('username'), - - adminPath: (function() { - return Discourse.getURL("/admin/users/") + (this.get('username_lower')); - }).property('username'), - +Discourse.AdminUser = Discourse.User.extend({ deleteAllPosts: function() { var user = this; this.set('can_delete_all_posts', false); - Discourse.ajax(Discourse.getURL("/admin/users/") + (this.get('id')) + "/delete_all_posts", {type: 'PUT'}).then(function(result){ + Discourse.ajax("/admin/users/" + (this.get('id')) + "/delete_all_posts", {type: 'PUT'}).then(function(result){ user.set('post_count', 0); }); }, @@ -29,14 +21,14 @@ Discourse.AdminUser = Discourse.Model.extend({ this.set('admin', false); this.set('can_grant_admin', true); this.set('can_revoke_admin', false); - return Discourse.ajax(Discourse.getURL("/admin/users/") + (this.get('id')) + "/revoke_admin", {type: 'PUT'}); + return Discourse.ajax("/admin/users/" + (this.get('id')) + "/revoke_admin", {type: 'PUT'}); }, grantAdmin: function() { this.set('admin', true); this.set('can_grant_admin', false); this.set('can_revoke_admin', true); - Discourse.ajax(Discourse.getURL("/admin/users/") + (this.get('id')) + "/grant_admin", {type: 'PUT'}); + Discourse.ajax("/admin/users/" + (this.get('id')) + "/grant_admin", {type: 'PUT'}); }, // Revoke the user's moderation access @@ -44,18 +36,18 @@ Discourse.AdminUser = Discourse.Model.extend({ this.set('moderator', false); this.set('can_grant_moderation', true); this.set('can_revoke_moderation', false); - return Discourse.ajax(Discourse.getURL("/admin/users/") + (this.get('id')) + "/revoke_moderation", {type: 'PUT'}); + return Discourse.ajax("/admin/users/" + (this.get('id')) + "/revoke_moderation", {type: 'PUT'}); }, grantModeration: function() { this.set('moderator', true); this.set('can_grant_moderation', false); this.set('can_revoke_moderation', true); - Discourse.ajax(Discourse.getURL("/admin/users/") + (this.get('id')) + "/grant_moderation", {type: 'PUT'}); + Discourse.ajax("/admin/users/" + (this.get('id')) + "/grant_moderation", {type: 'PUT'}); }, refreshBrowsers: function() { - Discourse.ajax(Discourse.getURL("/admin/users/") + (this.get('id')) + "/refresh_browsers", {type: 'POST'}); + Discourse.ajax("/admin/users/" + (this.get('id')) + "/refresh_browsers", {type: 'POST'}); bootbox.alert("Message sent to all clients!"); }, @@ -63,7 +55,7 @@ Discourse.AdminUser = Discourse.Model.extend({ this.set('can_approve', false); this.set('approved', true); this.set('approved_by', Discourse.get('currentUser')); - Discourse.ajax(Discourse.getURL("/admin/users/") + (this.get('id')) + "/approve", {type: 'PUT'}); + Discourse.ajax("/admin/users/" + (this.get('id')) + "/approve", {type: 'PUT'}); }, username_lower: (function() { @@ -91,7 +83,7 @@ Discourse.AdminUser = Discourse.Model.extend({ ban: function() { var duration = parseInt(window.prompt(Em.String.i18n('admin.user.ban_duration')), 10); if (duration > 0) { - Discourse.ajax(Discourse.getURL("/admin/users/") + this.id + "/ban", { + Discourse.ajax("/admin/users/" + this.id + "/ban", { type: 'PUT', data: {duration: duration} }).then(function () { @@ -106,7 +98,7 @@ Discourse.AdminUser = Discourse.Model.extend({ }, unban: function() { - Discourse.ajax(Discourse.getURL("/admin/users/") + this.id + "/unban", { + Discourse.ajax("/admin/users/" + this.id + "/unban", { type: 'PUT' }).then(function() { // succeeded @@ -119,7 +111,7 @@ Discourse.AdminUser = Discourse.Model.extend({ }, impersonate: function() { - Discourse.ajax(Discourse.getURL("/admin/impersonate"), { + Discourse.ajax("/admin/impersonate", { type: 'POST', data: { username_or_email: this.get('username') } }).then(function() { @@ -151,7 +143,7 @@ Discourse.AdminUser = Discourse.Model.extend({ var user = this; bootbox.confirm(Em.String.i18n("admin.user.delete_confirm"), Em.String.i18n("no_value"), Em.String.i18n("yes_value"), function(result) { if(result) { - Discourse.ajax(Discourse.getURL("/admin/users/") + user.get('id') + '.json', { type: 'DELETE' }).then(function(data) { + Discourse.ajax("/admin/users/" + user.get('id') + '.json', { type: 'DELETE' }).then(function(data) { if (data.deleted) { bootbox.alert(Em.String.i18n("admin.user.deleted"), function() { document.location = "/admin/users/list/active"; @@ -180,7 +172,7 @@ Discourse.AdminUser.reopenClass({ user.set('can_approve', false); return user.set('selected', false); }); - return Discourse.ajax(Discourse.getURL("/admin/users/approve-bulk"), { + return Discourse.ajax("/admin/users/approve-bulk", { type: 'PUT', data: { users: users.map(function(u) { @@ -191,13 +183,13 @@ Discourse.AdminUser.reopenClass({ }, find: function(username) { - return Discourse.ajax(Discourse.getURL("/admin/users/") + username).then(function (result) { + return Discourse.ajax("/admin/users/" + username).then(function (result) { return Discourse.AdminUser.create(result); }); }, findAll: function(query, filter) { - return Discourse.ajax(Discourse.getURL("/admin/users/list/") + query + ".json", { + return Discourse.ajax("/admin/users/list/" + query + ".json", { data: { filter: filter } }).then(function(users) { return users.map(function(u) { diff --git a/app/assets/javascripts/admin/models/email_log.js b/app/assets/javascripts/admin/models/email_log.js index 8d5cae3701e..50198e3fe1e 100644 --- a/app/assets/javascripts/admin/models/email_log.js +++ b/app/assets/javascripts/admin/models/email_log.js @@ -18,7 +18,7 @@ Discourse.EmailLog.reopenClass({ findAll: function(filter) { var result = Em.A(); - Discourse.ajax(Discourse.getURL("/admin/email_logs.json"), { + Discourse.ajax("/admin/email_logs.json", { data: { filter: filter } }).then(function(logs) { logs.each(function(log) { diff --git a/app/assets/javascripts/admin/models/flagged_post.js b/app/assets/javascripts/admin/models/flagged_post.js index 7347acb9511..829a443b0ec 100644 --- a/app/assets/javascripts/admin/models/flagged_post.js +++ b/app/assets/javascripts/admin/models/flagged_post.js @@ -47,14 +47,14 @@ Discourse.FlaggedPost = Discourse.Post.extend({ deletePost: function() { if (this.get('post_number') === "1") { - return Discourse.ajax(Discourse.getURL("/t/") + this.topic_id, { type: 'DELETE', cache: false }); + return Discourse.ajax("/t/" + this.topic_id, { type: 'DELETE', cache: false }); } else { - return Discourse.ajax(Discourse.getURL("/posts/") + this.id, { type: 'DELETE', cache: false }); + return Discourse.ajax("/posts/" + this.id, { type: 'DELETE', cache: false }); } }, clearFlags: function() { - return Discourse.ajax(Discourse.getURL("/admin/flags/clear/") + this.id, { type: 'POST', cache: false }); + return Discourse.ajax("/admin/flags/clear/" + this.id, { type: 'POST', cache: false }); }, hiddenClass: function() { @@ -65,7 +65,7 @@ Discourse.FlaggedPost = Discourse.Post.extend({ Discourse.FlaggedPost.reopenClass({ findAll: function(filter) { var result = Em.A(); - Discourse.ajax(Discourse.getURL("/admin/flags/") + filter + ".json").then(function(data) { + Discourse.ajax("/admin/flags/" + filter + ".json").then(function(data) { var userLookup = {}; data.users.each(function(u) { userLookup[u.id] = Discourse.User.create(u); diff --git a/app/assets/javascripts/admin/models/report.js b/app/assets/javascripts/admin/models/report.js index 26fe38e901b..4ea6dfe31c1 100644 --- a/app/assets/javascripts/admin/models/report.js +++ b/app/assets/javascripts/admin/models/report.js @@ -138,7 +138,7 @@ Discourse.Report = Discourse.Model.extend({ Discourse.Report.reopenClass({ find: function(type) { var model = Discourse.Report.create({type: type}); - Discourse.ajax(Discourse.getURL("/admin/reports/") + type).then(function (json) { + Discourse.ajax("/admin/reports/" + type).then(function (json) { // Add a percent field to each tuple var maxY = 0; json.report.data.forEach(function (row) { diff --git a/app/assets/javascripts/admin/models/site_content.js b/app/assets/javascripts/admin/models/site_content.js index 03a49417bbf..6c021f9bd3d 100644 --- a/app/assets/javascripts/admin/models/site_content.js +++ b/app/assets/javascripts/admin/models/site_content.js @@ -20,7 +20,7 @@ Discourse.SiteContent = Discourse.Model.extend({ @return {jqXHR} a jQuery Promise object **/ save: function() { - return Discourse.ajax(Discourse.getURL("/admin/site_contents/" + this.get('content_type')), { + return Discourse.ajax("/admin/site_contents/" + this.get('content_type'), { type: 'PUT', data: {content: this.get('content')} }); @@ -31,7 +31,7 @@ Discourse.SiteContent = Discourse.Model.extend({ Discourse.SiteContent.reopenClass({ find: function(type) { - return Discourse.ajax(Discourse.getURL("/admin/site_contents/" + type)).then(function (data) { + return Discourse.ajax("/admin/site_contents/" + type).then(function (data) { return Discourse.SiteContent.create(data.site_content); }); } diff --git a/app/assets/javascripts/admin/models/site_content_type.js b/app/assets/javascripts/admin/models/site_content_type.js index 0b557048515..fdda50f569a 100644 --- a/app/assets/javascripts/admin/models/site_content_type.js +++ b/app/assets/javascripts/admin/models/site_content_type.js @@ -11,7 +11,7 @@ Discourse.SiteContentType = Discourse.Model.extend({}); Discourse.SiteContentType.reopenClass({ findAll: function() { var contentTypes = Em.A(); - Discourse.ajax(Discourse.getURL("/admin/site_content_types")).then(function(data) { + Discourse.ajax("/admin/site_content_types").then(function(data) { data.forEach(function (ct) { contentTypes.pushObject(Discourse.SiteContentType.create(ct)); }); diff --git a/app/assets/javascripts/admin/models/site_customization.js b/app/assets/javascripts/admin/models/site_customization.js index 85ac938d1a3..d7dc273fe65 100644 --- a/app/assets/javascripts/admin/models/site_customization.js +++ b/app/assets/javascripts/admin/models/site_customization.js @@ -66,7 +66,7 @@ Discourse.SiteCustomization = Discourse.Model.extend({ }; var siteCustomization = this; - return Discourse.ajax(Discourse.getURL("/admin/site_customizations") + (this.id ? '/' + this.id : ''), { + return Discourse.ajax("/admin/site_customizations" + (this.id ? '/' + this.id : ''), { data: { site_customization: data }, type: this.id ? 'PUT' : 'POST' }).then(function (result) { @@ -80,7 +80,7 @@ Discourse.SiteCustomization = Discourse.Model.extend({ destroy: function() { if(!this.id) return; - return Discourse.ajax(Discourse.getURL("/admin/site_customizations/") + this.id, { + return Discourse.ajax("/admin/site_customizations/" + this.id, { type: 'DELETE' }); } @@ -99,7 +99,7 @@ var SiteCustomizations = Ember.ArrayProxy.extend({ Discourse.SiteCustomization.reopenClass({ findAll: function() { var customizations = SiteCustomizations.create({ content: [], loading: true }); - Discourse.ajax(Discourse.getURL("/admin/site_customizations")).then(function (data) { + Discourse.ajax("/admin/site_customizations").then(function (data) { if (data) { data.site_customizations.each(function(c) { customizations.pushObject(Discourse.SiteCustomization.create(c.site_customizations)); diff --git a/app/assets/javascripts/admin/models/site_setting.js b/app/assets/javascripts/admin/models/site_setting.js index c1c3caa29a3..23c016586ae 100644 --- a/app/assets/javascripts/admin/models/site_setting.js +++ b/app/assets/javascripts/admin/models/site_setting.js @@ -72,7 +72,7 @@ Discourse.SiteSetting = Discourse.Model.extend({ save: function() { // Update the setting var setting = this; - return Discourse.ajax(Discourse.getURL("/admin/site_settings/") + (this.get('setting')), { + return Discourse.ajax("/admin/site_settings/" + (this.get('setting')), { data: { value: this.get('value') }, type: 'PUT' }).then(function() { @@ -90,7 +90,7 @@ Discourse.SiteSetting.reopenClass({ **/ findAll: function() { var result = Em.A(); - Discourse.ajax(Discourse.getURL("/admin/site_settings")).then(function (settings) { + Discourse.ajax("/admin/site_settings").then(function (settings) { settings.site_settings.each(function(s) { s.originalValue = s.value; result.pushObject(Discourse.SiteSetting.create(s)); @@ -101,7 +101,7 @@ Discourse.SiteSetting.reopenClass({ }, update: function(key, value) { - return Discourse.ajax(Discourse.getURL("/admin/site_settings/") + key, { + return Discourse.ajax("/admin/site_settings/" + key, { type: 'PUT', data: { value: value } }); diff --git a/app/assets/javascripts/admin/models/version_check.js b/app/assets/javascripts/admin/models/version_check.js index 189a04e9c84..5dd25cab176 100644 --- a/app/assets/javascripts/admin/models/version_check.js +++ b/app/assets/javascripts/admin/models/version_check.js @@ -26,7 +26,7 @@ Discourse.VersionCheck = Discourse.Model.extend({ Discourse.VersionCheck.reopenClass({ find: function() { - return Discourse.ajax(Discourse.getURL('/admin/version_check')).then(function(json) { + return Discourse.ajax('/admin/version_check').then(function(json) { return Discourse.VersionCheck.create(json); }); } diff --git a/app/assets/javascripts/admin/routes/admin_user_route.js b/app/assets/javascripts/admin/routes/admin_user_route.js index 24598f09cf4..ad9d9693693 100644 --- a/app/assets/javascripts/admin/routes/admin_user_route.js +++ b/app/assets/javascripts/admin/routes/admin_user_route.js @@ -1,7 +1,7 @@ /** Handles routes related to users in the admin section. - @class AdminUserRoute + @class AdminUserRoute @extends Discourse.Route @namespace Discourse @module Discourse @@ -11,6 +11,10 @@ Discourse.AdminUserRoute = Discourse.Route.extend({ return Discourse.AdminUser.find(params.username); }, + serialize: function(params) { + return { username: Em.get(params, 'username').toLowerCase() }; + }, + renderTemplate: function() { this.render('admin/templates/user', {into: 'admin/templates/admin'}); } diff --git a/app/assets/javascripts/admin/templates/dashboard.js.handlebars b/app/assets/javascripts/admin/templates/dashboard.js.handlebars index cbfb0d0959e..85b04aab9dd 100644 --- a/app/assets/javascripts/admin/templates/dashboard.js.handlebars +++ b/app/assets/javascripts/admin/templates/dashboard.js.handlebars @@ -230,7 +230,7 @@ {{#each top_referrers.data}} - {{unbound username}} + {{#linkTo 'adminUser' this}}{{unbound username}}{{/linkTo}} {{num_clicks}} {{num_topics}} diff --git a/app/assets/javascripts/admin/templates/email_logs.js.handlebars b/app/assets/javascripts/admin/templates/email_logs.js.handlebars index 0732288b9e3..a05c6363936 100644 --- a/app/assets/javascripts/admin/templates/email_logs.js.handlebars +++ b/app/assets/javascripts/admin/templates/email_logs.js.handlebars @@ -22,8 +22,8 @@ {{date view.content.created_at}} {{#if view.content.user}} - {{avatar view.content.user imageSize="tiny"}} - {{view.content.user.username}} + {{#linkTo 'adminUser' view.content.user}}{{avatar view.content.user imageSize="tiny"}}{{/linkTo}} + {{#linkTo 'adminUser' view.content.user}}{{view.content.user.username}}{{/linkTo}} {{else}} — {{/if}} diff --git a/app/assets/javascripts/admin/templates/flags.js.handlebars b/app/assets/javascripts/admin/templates/flags.js.handlebars index 76268d90801..8efe148fdb2 100644 --- a/app/assets/javascripts/admin/templates/flags.js.handlebars +++ b/app/assets/javascripts/admin/templates/flags.js.handlebars @@ -4,7 +4,7 @@
  • {{#linkTo adminFlags.active}}{{i18n admin.flags.active}}{{/linkTo}}
  • {{#linkTo adminFlags.old}}{{i18n admin.flags.old}}{{/linkTo}}
  • - + @@ -21,12 +21,12 @@ {{#each content}} - {{avatar user imageSize="small"}} + {{#linkTo 'adminUser' user}}{{avatar user imageSize="small"}}{{/linkTo}} {{#if topicHidden}} {{/if}}

    {{title}}


    {{{excerpt}}} - {{#each flaggers}}{{avatar this imageSize="small"}}{{/each}} + {{#each flaggers}}{{#linkTo 'adminUser' this}}{{avatar this imageSize="small"}} {{/linkTo}}{{/each}} {{date lastFlagged}} - + {{#if controller.adminActiveFlagsView}} @@ -38,7 +38,7 @@ -
    {{avatar user imageSize="small"}} {{message}}
    +
    {{#linkTo 'adminUser' user}}{{avatar user imageSize="small"}}{{/linkTo}} {{message}}
    diff --git a/app/assets/javascripts/admin/templates/user.js.handlebars b/app/assets/javascripts/admin/templates/user.js.handlebars index 30dc561e156..abd599bebe4 100644 --- a/app/assets/javascripts/admin/templates/user.js.handlebars +++ b/app/assets/javascripts/admin/templates/user.js.handlebars @@ -4,10 +4,10 @@
    {{i18n user.username.title}}
    {{content.username}}
    - + {{#linkTo 'user.activity' content class="btn"}} {{i18n admin.user.show_public_profile}} - + {{/linkTo}} {{#if content.can_impersonate}}