diff --git a/.eslintignore b/.eslintignore index 47d86595d9..a520c62c91 100644 --- a/.eslintignore +++ b/.eslintignore @@ -7,7 +7,7 @@ app/assets/javascripts/vendor.js app/assets/javascripts/locales/i18n.js app/assets/javascripts/defer/html-sanitizer-bundle.js app/assets/javascripts/ember-addons/ -app/assets/javascripts/admin/lib/autosize.js.es6 +app/assets/javascripts/discourse/lib/autosize.js.es6 lib/javascripts/locale/ lib/javascripts/messageformat.js lib/javascripts/moment.js diff --git a/.gitignore b/.gitignore index 3bdbb95c84..95d44c86f8 100644 --- a/.gitignore +++ b/.gitignore @@ -58,6 +58,9 @@ log/ # Ignore Eclipse .buildpath file /.buildpath +# Ignore byebug history +/.byebug_history + # Ignore RubyMine settings /.idea diff --git a/Gemfile b/Gemfile index 8d2f214737..74c6d6a99f 100644 --- a/Gemfile +++ b/Gemfile @@ -66,7 +66,7 @@ gem 'aws-sdk', require: false gem 'excon', require: false gem 'unf', require: false -gem 'email_reply_trimmer', '0.1.1' +gem 'email_reply_trimmer', '0.1.2' # note: for image_optim to correctly work you need to follow # https://github.com/toy/image_optim diff --git a/Gemfile.lock b/Gemfile.lock index 1bfaa7ae12..d21aedc8e8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,38 +1,38 @@ GEM remote: https://rubygems.org/ specs: - actionmailer (4.2.5.2) - actionpack (= 4.2.5.2) - actionview (= 4.2.5.2) - activejob (= 4.2.5.2) + actionmailer (4.2.6) + actionpack (= 4.2.6) + actionview (= 4.2.6) + activejob (= 4.2.6) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 1.0, >= 1.0.5) - actionpack (4.2.5.2) - actionview (= 4.2.5.2) - activesupport (= 4.2.5.2) + actionpack (4.2.6) + actionview (= 4.2.6) + activesupport (= 4.2.6) rack (~> 1.6) rack-test (~> 0.6.2) rails-dom-testing (~> 1.0, >= 1.0.5) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (4.2.5.2) - activesupport (= 4.2.5.2) + actionview (4.2.6) + activesupport (= 4.2.6) builder (~> 3.1) erubis (~> 2.7.0) rails-dom-testing (~> 1.0, >= 1.0.5) rails-html-sanitizer (~> 1.0, >= 1.0.2) active_model_serializers (0.8.3) activemodel (>= 3.0) - activejob (4.2.5.2) - activesupport (= 4.2.5.2) + activejob (4.2.6) + activesupport (= 4.2.6) globalid (>= 0.3.0) - activemodel (4.2.5.2) - activesupport (= 4.2.5.2) + activemodel (4.2.6) + activesupport (= 4.2.6) builder (~> 3.1) - activerecord (4.2.5.2) - activemodel (= 4.2.5.2) - activesupport (= 4.2.5.2) + activerecord (4.2.6) + activemodel (= 4.2.6) + activesupport (= 4.2.6) arel (~> 6.0) - activesupport (4.2.5.2) + activesupport (4.2.6) i18n (~> 0.7) json (~> 1.7, >= 1.7.7) minitest (~> 5.1) @@ -76,7 +76,7 @@ GEM docile (1.1.5) domain_name (0.5.25) unf (>= 0.0.5, < 1.0.0) - email_reply_trimmer (0.1.1) + email_reply_trimmer (0.1.2) ember-data-source (1.0.0.beta.16.1) ember-source (~> 1.8) ember-handlebars-template (0.1.5) @@ -150,12 +150,12 @@ GEM thor (~> 0.15) libv8 (3.16.14.13) listen (0.7.3) - logster (1.1.1) + logster (1.2.2) loofah (2.0.3) nokogiri (>= 1.5.9) lru_redux (1.1.0) - mail (2.6.3) - mime-types (>= 1.16, < 3) + mail (2.6.4) + mime-types (>= 1.16, < 4) memory_profiler (0.9.6) message_bus (2.0.0.beta.5) rack (>= 1.1.3) @@ -172,7 +172,7 @@ GEM multi_json (1.11.2) multi_xml (0.5.5) multipart-post (2.0.0) - mustache (1.0.2) + mustache (1.0.3) netrc (0.11.0) nokogiri (1.6.7.2) mini_portile2 (~> 2.0.0.rc2) @@ -214,7 +214,8 @@ GEM omniauth-twitter (1.2.1) json (~> 1.3) omniauth-oauth (~> 1.1) - onebox (1.5.35) + onebox (1.5.37) + htmlentities (~> 4.3.4) moneta (~> 0.8) multi_json (~> 1.11) mustache @@ -232,7 +233,7 @@ GEM pry (>= 0.9.10, < 0.11.0) pry-rails (0.3.4) pry (>= 0.9.10) - puma (2.15.3) + puma (3.2.0) r2 (0.2.6) rack (1.6.4) rack-mini-profiler (0.9.9.2) @@ -244,16 +245,16 @@ GEM rack rack-test (0.6.3) rack (>= 1.0) - rails (4.2.5.2) - actionmailer (= 4.2.5.2) - actionpack (= 4.2.5.2) - actionview (= 4.2.5.2) - activejob (= 4.2.5.2) - activemodel (= 4.2.5.2) - activerecord (= 4.2.5.2) - activesupport (= 4.2.5.2) + rails (4.2.6) + actionmailer (= 4.2.6) + actionpack (= 4.2.6) + actionview (= 4.2.6) + activejob (= 4.2.6) + activemodel (= 4.2.6) + activerecord (= 4.2.6) + activesupport (= 4.2.6) bundler (>= 1.3.0, < 2.0) - railties (= 4.2.5.2) + railties (= 4.2.6) sprockets-rails rails-deprecated_sanitizer (1.0.3) activesupport (>= 4.2.0.alpha) @@ -266,9 +267,9 @@ GEM rails-observers (0.1.2) activemodel (~> 4.0) rails_multisite (1.0.3) - railties (4.2.5.2) - actionpack (= 4.2.5.2) - activesupport (= 4.2.5.2) + railties (4.2.6) + actionpack (= 4.2.6) + activesupport (= 4.2.6) rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) raindrops (0.15.0) @@ -414,7 +415,7 @@ DEPENDENCIES byebug certified discourse-qunit-rails - email_reply_trimmer (= 0.1.1) + email_reply_trimmer (= 0.1.2) ember-rails ember-source (= 1.12.2) excon diff --git a/app/assets/javascripts/admin/components/expanding-text-area.js.es6 b/app/assets/javascripts/admin/components/expanding-text-area.js.es6 index 3b5a260690..f7259e8301 100644 --- a/app/assets/javascripts/admin/components/expanding-text-area.js.es6 +++ b/app/assets/javascripts/admin/components/expanding-text-area.js.es6 @@ -1,5 +1,5 @@ import { on, observes } from 'ember-addons/ember-computed-decorators'; -import autosize from 'admin/lib/autosize'; +import autosize from 'discourse/lib/autosize'; export default Ember.TextArea.extend({ @on('didInsertElement') diff --git a/app/assets/javascripts/admin/controllers/admin-badges-show.js.es6 b/app/assets/javascripts/admin/controllers/admin-badges-show.js.es6 index 46f4548ebd..5ec2cb4541 100644 --- a/app/assets/javascripts/admin/controllers/admin-badges-show.js.es6 +++ b/app/assets/javascripts/admin/controllers/admin-badges-show.js.es6 @@ -14,7 +14,6 @@ export default Ember.Controller.extend(BufferedContent, { readOnly: Ember.computed.alias('buffered.system'), showDisplayName: propertyNotEqual('name', 'displayName'), - canEditDescription: Em.computed.none('buffered.translatedDescription'), hasQuery: function() { const bQuery = this.get('buffered.query'); @@ -37,6 +36,7 @@ export default Ember.Controller.extend(BufferedContent, { 'listable', 'auto_revoke', 'enabled', 'show_posts', 'target_posts', 'name', 'description', + 'long_description', 'icon', 'image', 'query', 'badge_grouping_id', 'trigger', 'badge_type_id'], self = this; diff --git a/app/assets/javascripts/admin/controllers/admin-email-incomings.js.es6 b/app/assets/javascripts/admin/controllers/admin-email-incomings.js.es6 index deb7f0771c..a6acd9af78 100644 --- a/app/assets/javascripts/admin/controllers/admin-email-incomings.js.es6 +++ b/app/assets/javascripts/admin/controllers/admin-email-incomings.js.es6 @@ -1,11 +1,21 @@ import IncomingEmail from 'admin/models/incoming-email'; export default Ember.Controller.extend({ - loadMore() { - return IncomingEmail.findAll(this.get("filter"), this.get("model.length")) - .then(incoming => { - if (incoming.length < 50) { this.get("model").set("allLoaded", true); } - this.get("model").addObjects(incoming); - }); + loading: false, + + actions: { + + loadMore() { + if (this.get("loading") || this.get("model.allLoaded")) { return; } + this.set('loading', true); + + IncomingEmail.findAll(this.get("filter"), this.get("model.length")) + .then(incoming => { + if (incoming.length < 50) { this.get("model").set("allLoaded", true); } + this.get("model").addObjects(incoming); + }).finally(() => { + this.set('loading', false); + }); + } } }); diff --git a/app/assets/javascripts/admin/controllers/admin-email-logs.js.es6 b/app/assets/javascripts/admin/controllers/admin-email-logs.js.es6 index 2506a0cd99..44a38dfa32 100644 --- a/app/assets/javascripts/admin/controllers/admin-email-logs.js.es6 +++ b/app/assets/javascripts/admin/controllers/admin-email-logs.js.es6 @@ -1,11 +1,20 @@ import EmailLog from 'admin/models/email-log'; export default Ember.Controller.extend({ - loadMore() { - return EmailLog.findAll(this.get("filter"), this.get("model.length")) - .then(logs => { - if (logs.length < 50) { this.get("model").set("allLoaded", true); } - this.get("model").addObjects(logs); - }); + loading: false, + + actions: { + loadMore() { + if (this.get("loading") || this.get("model.allLoaded")) { return; } + + this.set('loading', true); + return EmailLog.findAll(this.get("filter"), this.get("model.length")) + .then(logs => { + if (logs.length < 50) { this.get("model").set("allLoaded", true); } + this.get("model").addObjects(logs); + }).finally(() => { + this.set('loading', false); + }); + } } }); diff --git a/app/assets/javascripts/admin/controllers/admin-user-badges.js.es6 b/app/assets/javascripts/admin/controllers/admin-user-badges.js.es6 index de9b3cc982..8d919e5f26 100644 --- a/app/assets/javascripts/admin/controllers/admin-user-badges.js.es6 +++ b/app/assets/javascripts/admin/controllers/admin-user-badges.js.es6 @@ -61,7 +61,7 @@ export default Ember.ArrayController.extend({ } }); - return _.sortBy(badges, badge => badge.get('displayName')); + return _.sortBy(badges, badge => badge.get('name')); }.property('badges.@each', 'model.@each'), /** diff --git a/app/assets/javascripts/admin/templates/badges-show.hbs b/app/assets/javascripts/admin/templates/badges-show.hbs index 173b8c60d1..419dc47c07 100644 --- a/app/assets/javascripts/admin/templates/badges-show.hbs +++ b/app/assets/javascripts/admin/templates/badges-show.hbs @@ -44,10 +44,19 @@
- {{#if canEditDescription}} - {{textarea name="description" value=buffered.description}} - {{else}} + {{#if buffered.system}} {{textarea name="description" value=buffered.displayDescription disabled=true}} + {{else}} + {{textarea name="description" value=buffered.description}} + {{/if}} +
+ +
+ + {{#if buffered.system}} + {{textarea name="long_description" value=buffered.long_description disabled=true}} + {{else}} + {{textarea name="long_description" value=buffered.long_description}} {{/if}}
diff --git a/app/assets/javascripts/admin/templates/email-received.hbs b/app/assets/javascripts/admin/templates/email-received.hbs index 95e0cb2dc5..e6e3bcbec9 100644 --- a/app/assets/javascripts/admin/templates/email-received.hbs +++ b/app/assets/javascripts/admin/templates/email-received.hbs @@ -1,55 +1,57 @@ - - - - - - - +{{#load-more selector=".email-list tr" action="loadMore"}} +
{{i18n 'admin.email.time'}}{{i18n 'admin.email.incoming_emails.from_address'}}{{i18n 'admin.email.incoming_emails.to_addresses'}}{{i18n 'admin.email.incoming_emails.subject'}}
+ + + + + + + + + + + + + + - - - - - - - - - {{#each email in model}} - - - + + + + - - - - {{else}} - - {{/each}} + + + {{else}} + + {{/each}} -
{{i18n 'admin.email.time'}}{{i18n 'admin.email.incoming_emails.from_address'}}{{i18n 'admin.email.incoming_emails.to_addresses'}}{{i18n 'admin.email.incoming_emails.subject'}}
{{i18n 'admin.email.logs.filters.title'}}{{text-field value=filter.from placeholderKey="admin.email.incoming_emails.filters.from_placeholder"}}{{text-field value=filter.to placeholderKey="admin.email.incoming_emails.filters.to_placeholder"}}{{text-field value=filter.subject placeholderKey="admin.email.incoming_emails.filters.subject_placeholder"}}
{{i18n 'admin.email.logs.filters.title'}}{{text-field value=filter.from placeholderKey="admin.email.incoming_emails.filters.from_placeholder"}}{{text-field value=filter.to placeholderKey="admin.email.incoming_emails.filters.to_placeholder"}}{{text-field value=filter.subject placeholderKey="admin.email.incoming_emails.filters.subject_placeholder"}}
{{format-date email.created_at}} -
- {{#if email.user}} - {{#link-to 'adminUser' email.user}} - {{avatar email.user imageSize="tiny"}} - {{email.from_address}} - {{/link-to}} + {{#each email in model}} +
{{format-date email.created_at}} +
+ {{#if email.user}} + {{#link-to 'adminUser' email.user}} + {{avatar email.user imageSize="tiny"}} + {{email.from_address}} + {{/link-to}} + {{else}} + — + {{/if}} +
+
+ {{#each to in email.to_addresses}} +

{{unbound to}}

+ {{/each}} + {{#each cc in email.cc_addresses}} +

{{unbound cc}}

+ {{/each}} +
+ {{#if email.post_url}} + {{email.subject}} {{else}} - — + {{email.subject}} {{/if}} - - - {{#each to in email.to_addresses}} -

{{unbound to}}

- {{/each}} - {{#each cc in email.cc_addresses}} -

{{unbound cc}}

- {{/each}} -
- {{#if email.post_url}} - {{email.subject}} - {{else}} - {{email.subject}} - {{/if}} -
{{i18n 'admin.email.incoming_emails.none'}}
{{i18n 'admin.email.incoming_emails.none'}}
+ +{{/load-more}} -{{conditional-loading-spinner condition=view.loading}} +{{conditional-loading-spinner condition=loading}} diff --git a/app/assets/javascripts/admin/templates/email-rejected.hbs b/app/assets/javascripts/admin/templates/email-rejected.hbs index 3c5f3cba8e..664eb72866 100644 --- a/app/assets/javascripts/admin/templates/email-rejected.hbs +++ b/app/assets/javascripts/admin/templates/email-rejected.hbs @@ -1,54 +1,56 @@ - - - - - - - - +{{#load-more selector=".email-list tr" action="loadMore"}} +
{{i18n 'admin.email.time'}}{{i18n 'admin.email.incoming_emails.from_address'}}{{i18n 'admin.email.incoming_emails.to_addresses'}}{{i18n 'admin.email.incoming_emails.subject'}}{{i18n 'admin.email.incoming_emails.error'}}
+ + + + + + + + + + + + + + + + - - - - - - - - + {{#each email in model}} + + + + + + + + {{else}} + + {{/each}} - {{#each email in model}} - - - - - - - - {{else}} - - {{/each}} +
{{i18n 'admin.email.time'}}{{i18n 'admin.email.incoming_emails.from_address'}}{{i18n 'admin.email.incoming_emails.to_addresses'}}{{i18n 'admin.email.incoming_emails.subject'}}{{i18n 'admin.email.incoming_emails.error'}}
{{i18n 'admin.email.logs.filters.title'}}{{text-field value=filter.from placeholderKey="admin.email.incoming_emails.filters.from_placeholder"}}{{text-field value=filter.to placeholderKey="admin.email.incoming_emails.filters.to_placeholder"}}{{text-field value=filter.subject placeholderKey="admin.email.incoming_emails.filters.subject_placeholder"}}{{text-field value=filter.error placeholderKey="admin.email.incoming_emails.filters.error_placeholder"}}
{{i18n 'admin.email.logs.filters.title'}}{{text-field value=filter.from placeholderKey="admin.email.incoming_emails.filters.from_placeholder"}}{{text-field value=filter.to placeholderKey="admin.email.incoming_emails.filters.to_placeholder"}}{{text-field value=filter.subject placeholderKey="admin.email.incoming_emails.filters.subject_placeholder"}}{{text-field value=filter.error placeholderKey="admin.email.incoming_emails.filters.error_placeholder"}}
{{format-date email.created_at}} +
+ {{#if email.user}} + {{#link-to 'adminUser' email.user}} + {{avatar email.user imageSize="tiny"}} + {{email.from_address}} + {{/link-to}} + {{else}} + — + {{/if}} +
+
+ {{#each to in email.to_addresses}} +

{{unbound to}}

+ {{/each}} + {{#each cc in email.cc_addresses}} +

{{unbound cc}}

+ {{/each}} +
{{email.subject}} + {{email.error}} +
{{i18n 'admin.email.incoming_emails.none'}}
{{format-date email.created_at}} -
- {{#if email.user}} - {{#link-to 'adminUser' email.user}} - {{avatar email.user imageSize="tiny"}} - {{email.from_address}} - {{/link-to}} - {{else}} - — - {{/if}} -
-
- {{#each to in email.to_addresses}} -

{{unbound to}}

- {{/each}} - {{#each cc in email.cc_addresses}} -

{{unbound cc}}

- {{/each}} -
{{email.subject}} - {{email.error}} -
{{i18n 'admin.email.incoming_emails.none'}}
+{{/load-more}} - - -{{conditional-loading-spinner condition=view.loading}} +{{conditional-loading-spinner condition=loading}} diff --git a/app/assets/javascripts/admin/templates/email-sent.hbs b/app/assets/javascripts/admin/templates/email-sent.hbs index 2f8785c6f5..ca5fb4aaa2 100644 --- a/app/assets/javascripts/admin/templates/email-sent.hbs +++ b/app/assets/javascripts/admin/templates/email-sent.hbs @@ -1,47 +1,49 @@ - - - - - - - - +{{#load-more selector=".email-list tr" action="loadMore"}} +
{{i18n 'admin.email.sent_at'}}{{i18n 'admin.email.user'}}{{i18n 'admin.email.to_address'}}{{i18n 'admin.email.email_type'}}{{i18n 'admin.email.reply_key'}}
+ + + + + + + + + + + + + + + + - - - - - - - - + {{#each l in model}} + + + + + + + + {{else}} + + {{/each}} - {{#each l in model}} - - - - - - - - {{else}} - - {{/each}} +
{{i18n 'admin.email.sent_at'}}{{i18n 'admin.email.user'}}{{i18n 'admin.email.to_address'}}{{i18n 'admin.email.email_type'}}{{i18n 'admin.email.reply_key'}}
{{i18n 'admin.email.logs.filters.title'}}{{text-field value=filter.user placeholderKey="admin.email.logs.filters.user_placeholder"}}{{text-field value=filter.address placeholderKey="admin.email.logs.filters.address_placeholder"}}{{text-field value=filter.type placeholderKey="admin.email.logs.filters.type_placeholder"}}{{text-field value=filter.reply_key placeholderKey="admin.email.logs.filters.reply_key_placeholder"}}
{{i18n 'admin.email.logs.filters.title'}}{{text-field value=filter.user placeholderKey="admin.email.logs.filters.user_placeholder"}}{{text-field value=filter.address placeholderKey="admin.email.logs.filters.address_placeholder"}}{{text-field value=filter.type placeholderKey="admin.email.logs.filters.type_placeholder"}}{{text-field value=filter.reply_key placeholderKey="admin.email.logs.filters.reply_key_placeholder"}}
{{format-date l.created_at}} + {{#if l.user}} + {{#link-to 'adminUser' l.user}}{{avatar l.user imageSize="tiny"}}{{/link-to}} + {{#link-to 'adminUser' l.user}}{{l.user.username}}{{/link-to}} + {{else}} + — + {{/if}} + {{l.to_address}}{{l.email_type}} + {{#if l.post_url}} + {{l.reply_key}} + {{else}} + {{l.reply_key}} + {{/if}} +
{{i18n 'admin.email.logs.none'}}
{{format-date l.created_at}} - {{#if l.user}} - {{#link-to 'adminUser' l.user}}{{avatar l.user imageSize="tiny"}}{{/link-to}} - {{#link-to 'adminUser' l.user}}{{l.user.username}}{{/link-to}} - {{else}} - — - {{/if}} - {{l.to_address}}{{l.email_type}} - {{#if l.post_url}} - {{l.reply_key}} - {{else}} - {{l.reply_key}} - {{/if}} -
{{i18n 'admin.email.logs.none'}}
+{{/load-more}} - - -{{conditional-loading-spinner condition=view.loading}} +{{conditional-loading-spinner condition=loading}} diff --git a/app/assets/javascripts/admin/templates/email-skipped.hbs b/app/assets/javascripts/admin/templates/email-skipped.hbs index 6ef4872566..9c21c428cd 100644 --- a/app/assets/javascripts/admin/templates/email-skipped.hbs +++ b/app/assets/javascripts/admin/templates/email-skipped.hbs @@ -1,47 +1,49 @@ - - - - - - - - +{{#load-more selector=".email-list tr" action="loadMore"}} +
{{i18n 'admin.email.time'}}{{i18n 'admin.email.user'}}{{i18n 'admin.email.to_address'}}{{i18n 'admin.email.email_type'}}{{i18n 'admin.email.skipped_reason'}}
+ + + + + + + + + + + + + + + + - - - - - - - - + {{#each l in model}} + + + + + + + + {{else}} + + {{/each}} - {{#each l in model}} - - - - - - - - {{else}} - - {{/each}} +
{{i18n 'admin.email.time'}}{{i18n 'admin.email.user'}}{{i18n 'admin.email.to_address'}}{{i18n 'admin.email.email_type'}}{{i18n 'admin.email.skipped_reason'}}
{{i18n 'admin.email.logs.filters.title'}}{{text-field value=filter.user placeholderKey="admin.email.logs.filters.user_placeholder"}}{{text-field value=filter.address placeholderKey="admin.email.logs.filters.address_placeholder"}}{{text-field value=filter.type placeholderKey="admin.email.logs.filters.type_placeholder"}}{{text-field value=filter.skipped_reason placeholderKey="admin.email.logs.filters.skipped_reason_placeholder"}}
{{i18n 'admin.email.logs.filters.title'}}{{text-field value=filter.user placeholderKey="admin.email.logs.filters.user_placeholder"}}{{text-field value=filter.address placeholderKey="admin.email.logs.filters.address_placeholder"}}{{text-field value=filter.type placeholderKey="admin.email.logs.filters.type_placeholder"}}{{text-field value=filter.skipped_reason placeholderKey="admin.email.logs.filters.skipped_reason_placeholder"}}
{{format-date l.created_at}} + {{#if l.user}} + {{#link-to 'adminUser' l.user}}{{avatar l.user imageSize="tiny"}}{{/link-to}} + {{#link-to 'adminUser' l.user}}{{l.user.username}}{{/link-to}} + {{else}} + — + {{/if}} + {{l.to_address}}{{l.email_type}} + {{#if l.post_url}} + {{l.skipped_reason}} + {{else}} + {{l.skipped_reason}} + {{/if}} +
{{i18n 'admin.email.logs.none'}}
{{format-date l.created_at}} - {{#if l.user}} - {{#link-to 'adminUser' l.user}}{{avatar l.user imageSize="tiny"}}{{/link-to}} - {{#link-to 'adminUser' l.user}}{{l.user.username}}{{/link-to}} - {{else}} - — - {{/if}} - {{l.to_address}}{{l.email_type}} - {{#if l.post_url}} - {{l.skipped_reason}} - {{else}} - {{l.skipped_reason}} - {{/if}} -
{{i18n 'admin.email.logs.none'}}
+{{/load-more}} - - -{{conditional-loading-spinner condition=view.loading}} +{{conditional-loading-spinner condition=loading}} diff --git a/app/assets/javascripts/admin/templates/user-index.hbs b/app/assets/javascripts/admin/templates/user-index.hbs index 5c1c402d42..608d7c38ba 100644 --- a/app/assets/javascripts/admin/templates/user-index.hbs +++ b/app/assets/javascripts/admin/templates/user-index.hbs @@ -386,15 +386,15 @@
{{i18n 'created'}}
-
{{{model.created_at_age}}}
+
{{format-date model.created_at leaveAgo="true"}}
{{i18n 'admin.users.last_emailed'}}
-
{{{model.last_emailed_age}}}
+
{{format-date model.last_emailed_at leaveAgo="true"}}
{{i18n 'last_seen'}}
-
{{{model.last_seen_age}}}
+
{{format-date model.last_seen_at leaveAgo="true"}}
{{i18n 'admin.user.like_count'}}
diff --git a/app/assets/javascripts/admin/templates/user_badges.hbs b/app/assets/javascripts/admin/templates/user_badges.hbs index 281a37e08c..772360d21a 100644 --- a/app/assets/javascripts/admin/templates/user_badges.hbs +++ b/app/assets/javascripts/admin/templates/user_badges.hbs @@ -16,7 +16,7 @@
- {{combo-box valueAttribute="id" value=controller.selectedBadgeId content=controller.grantableBadges nameProperty="displayName"}} + {{combo-box valueAttribute="id" value=controller.selectedBadgeId content=controller.grantableBadges nameProperty="name"}}