From 983d3606df2879b6cd704bdc654eb784803ff791 Mon Sep 17 00:00:00 2001 From: Rafael dos Santos Silva Date: Thu, 27 Aug 2015 18:37:52 -0300 Subject: [PATCH 001/157] Fix same domains links on subfolder installs isInternal link handling logic needs to test if the link is inside the same subfolder --- app/assets/javascripts/discourse/lib/url.js.es6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/discourse/lib/url.js.es6 b/app/assets/javascripts/discourse/lib/url.js.es6 index f94c4c2bd5..b9a56ba4af 100644 --- a/app/assets/javascripts/discourse/lib/url.js.es6 +++ b/app/assets/javascripts/discourse/lib/url.js.es6 @@ -271,7 +271,7 @@ const DiscourseURL = Ember.Object.createWithMixins({ // This has been extracted so it can be tested. origin: function() { - return window.location.origin; + return Discourse.BaseUrl + Discourse.BaseUri; }, /** From 0b20ded4fb3b9e44793a3fcf701856d4bdf9c6e3 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Wed, 2 Sep 2015 17:18:24 +0800 Subject: [PATCH 002/157] FIX: Timegap only shows up for sequential posts. --- .../discourse/components/time-gap.js.es6 | 2 ++ .../discourse/models/post-stream.js.es6 | 17 ++++++----------- .../javascripts/discourse/templates/post.hbs | 2 +- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/app/assets/javascripts/discourse/components/time-gap.js.es6 b/app/assets/javascripts/discourse/components/time-gap.js.es6 index 3cd887ec43..9e410c4b73 100644 --- a/app/assets/javascripts/discourse/components/time-gap.js.es6 +++ b/app/assets/javascripts/discourse/components/time-gap.js.es6 @@ -2,6 +2,8 @@ import SmallActionComponent from 'discourse/components/small-action'; export default SmallActionComponent.extend({ classNames: ['time-gap'], + classNameBindings: ['hideTimeGap::hidden'], + hideTimeGap: Em.computed.alias('postStream.hasNoFilters'), icon: 'clock-o', description: function() { diff --git a/app/assets/javascripts/discourse/models/post-stream.js.es6 b/app/assets/javascripts/discourse/models/post-stream.js.es6 index 9f625f3477..b8a71fd651 100644 --- a/app/assets/javascripts/discourse/models/post-stream.js.es6 +++ b/app/assets/javascripts/discourse/models/post-stream.js.es6 @@ -5,18 +5,13 @@ function calcDayDiff(p1, p2) { if (!p1) { return; } const date = p1.get('created_at'); - if (date) { - if (p2) { - const numDiff = p1.get('post_number') - p2.get('post_number'); - if (numDiff === 1) { - const lastDate = p2.get('created_at'); - if (lastDate) { - const delta = new Date(date).getTime() - new Date(lastDate).getTime(); - const days = Math.round(delta / (1000 * 60 * 60 * 24)); + if (date && p2) { + const lastDate = p2.get('created_at'); + if (lastDate) { + const delta = new Date(date).getTime() - new Date(lastDate).getTime(); + const days = Math.round(delta / (1000 * 60 * 60 * 24)); - p1.set('daysSincePrevious', days); - } - } + p1.set('daysSincePrevious', days); } } } diff --git a/app/assets/javascripts/discourse/templates/post.hbs b/app/assets/javascripts/discourse/templates/post.hbs index 6790353025..0ea628c93a 100644 --- a/app/assets/javascripts/discourse/templates/post.hbs +++ b/app/assets/javascripts/discourse/templates/post.hbs @@ -1,7 +1,7 @@ {{post-gap post=this postStream=controller.model.postStream before="true"}} {{#if hasTimeGap}} - {{time-gap daysAgo=daysSincePrevious}} + {{time-gap daysAgo=daysSincePrevious postStream=controller.model.postStream}} {{/if}}
From cb787b99bdb7dbf54b3d036838dee867cfa98352 Mon Sep 17 00:00:00 2001 From: scossar Date: Tue, 8 Sep 2015 14:37:07 -0700 Subject: [PATCH 003/157] use outerHeight to calculate menu height --- app/assets/javascripts/discourse/components/menu-panel.js.es6 | 2 +- app/assets/javascripts/discourse/views/header.js.es6 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/discourse/components/menu-panel.js.es6 b/app/assets/javascripts/discourse/components/menu-panel.js.es6 index 13330f21a4..8961e9f931 100644 --- a/app/assets/javascripts/discourse/components/menu-panel.js.es6 +++ b/app/assets/javascripts/discourse/components/menu-panel.js.es6 @@ -56,7 +56,7 @@ export default Ember.Component.extend({ } $panelBody.height('100%'); - this.$().css({ left: "auto", top: (menuTop - 2) + "px", height }); + this.$().css({ left: "auto", top: (menuTop) + "px", height }); $('body').removeClass('drop-down-visible'); } diff --git a/app/assets/javascripts/discourse/views/header.js.es6 b/app/assets/javascripts/discourse/views/header.js.es6 index 17062acde2..add2ce107e 100644 --- a/app/assets/javascripts/discourse/views/header.js.es6 +++ b/app/assets/javascripts/discourse/views/header.js.es6 @@ -51,5 +51,5 @@ export function headerHeight() { const $header = $('header.d-header'); const headerOffset = $header.offset(); const headerOffsetTop = (headerOffset) ? headerOffset.top : 0; - return parseInt($header.height() + headerOffsetTop - $(window).scrollTop() + 5); + return parseInt($header.outerHeight() + headerOffsetTop - $(window).scrollTop()); } From 4f890a439cdd113c58bdb379a55381a4738d1a37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Wed, 9 Sep 2015 17:41:34 +0200 Subject: [PATCH 004/157] FIX: automatically load pages of topics list until it fills up the entire screen --- .../discourse/mixins/load-more.js.es6 | 11 ++++--- .../discourse/mixins/scrolling.js.es6 | 24 +++++++------- .../discourse/views/discovery-topics.js.es6 | 33 ++++++++++--------- 3 files changed, 36 insertions(+), 32 deletions(-) diff --git a/app/assets/javascripts/discourse/mixins/load-more.js.es6 b/app/assets/javascripts/discourse/mixins/load-more.js.es6 index d0e63e4ba4..69a7534f70 100644 --- a/app/assets/javascripts/discourse/mixins/load-more.js.es6 +++ b/app/assets/javascripts/discourse/mixins/load-more.js.es6 @@ -1,5 +1,6 @@ import Eyeline from 'discourse/lib/eyeline'; import Scrolling from 'discourse/mixins/scrolling'; +import { on } from 'ember-addons/ember-computed-decorators'; // Provides the ability to load more items for a view which is scrolled to the bottom. export default Ember.Mixin.create(Ember.ViewTargetActionSupport, Scrolling, { @@ -9,15 +10,17 @@ export default Ember.Mixin.create(Ember.ViewTargetActionSupport, Scrolling, { if (eyeline) { eyeline.update(); } }, - _bindEyeline: function() { + @on("didInsertElement") + _bindEyeline() { const eyeline = new Eyeline(this.get('eyelineSelector') + ":last"); this.set('eyeline', eyeline); eyeline.on('sawBottom', () => this.send('loadMore')); this.bindScrolling(); - }.on('didInsertElement'), + }, - _removeEyeline: function() { + @on("willDestroyElement") + _removeEyeline() { this.unbindScrolling(); - }.on('willDestroyElement') + } }); diff --git a/app/assets/javascripts/discourse/mixins/scrolling.js.es6 b/app/assets/javascripts/discourse/mixins/scrolling.js.es6 index ffa40294f0..b9f75d3df1 100644 --- a/app/assets/javascripts/discourse/mixins/scrolling.js.es6 +++ b/app/assets/javascripts/discourse/mixins/scrolling.js.es6 @@ -6,16 +6,16 @@ import debounce from 'discourse/lib/debounce'; easier. **/ const ScrollingDOMMethods = { - bindOnScroll: function(onScrollMethod, name) { + bindOnScroll(onScrollMethod, name) { name = name || 'default'; - $(document).bind('touchmove.discourse-' + name, onScrollMethod); - $(window).bind('scroll.discourse-' + name, onScrollMethod); + $(document).bind(`touchmove.discourse-${name}`, onScrollMethod); + $(window).bind(`scroll.discourse-${name}`, onScrollMethod); }, - unbindOnScroll: function(name) { + unbindOnScroll(name) { name = name || 'default'; - $(window).unbind('scroll.discourse-' + name); - $(document).unbind('touchmove.discourse-' + name); + $(window).unbind(`scroll.discourse-${name}`); + $(document).unbind(`touchmove.discourse-${name}`); } }; @@ -23,16 +23,15 @@ const Scrolling = Ember.Mixin.create({ // Begin watching for scroll events. By default they will be called at max every 100ms. // call with {debounce: N} for a diff time - bindScrolling: function(opts) { - opts = opts || {debounce: 100}; + bindScrolling(opts) { + opts = opts || { debounce: 100 }; // So we can not call the scrolled event while transitioning const router = Discourse.__container__.lookup('router:main').router; - const self = this; - var onScrollMethod = function() { + let onScrollMethod = () => { if (router.activeTransition) { return; } - return Em.run.scheduleOnce('afterRender', self, 'scrolled'); + return Ember.run.scheduleOnce('afterRender', this, 'scrolled'); }; if (opts.debounce) { @@ -40,10 +39,9 @@ const Scrolling = Ember.Mixin.create({ } ScrollingDOMMethods.bindOnScroll(onScrollMethod, opts.name); - Em.run.scheduleOnce('afterRender', onScrollMethod); }, - unbindScrolling: function(name) { + unbindScrolling(name) { ScrollingDOMMethods.unbindOnScroll(name); } }); diff --git a/app/assets/javascripts/discourse/views/discovery-topics.js.es6 b/app/assets/javascripts/discourse/views/discovery-topics.js.es6 index 448db126e5..7a7665d70c 100644 --- a/app/assets/javascripts/discourse/views/discovery-topics.js.es6 +++ b/app/assets/javascripts/discourse/views/discovery-topics.js.es6 @@ -1,5 +1,7 @@ import UrlRefresh from 'discourse/mixins/url-refresh'; import LoadMore from "discourse/mixins/load-more"; +import { on } from "ember-addons/ember-computed-decorators"; +import computed from "ember-addons/ember-computed-decorators"; export default Ember.View.extend(LoadMore, UrlRefresh, { eyelineSelector: '.topic-list-item', @@ -8,30 +10,31 @@ export default Ember.View.extend(LoadMore, UrlRefresh, { loadMore() { const self = this; Discourse.notifyTitle(0); - this.get('controller').loadMoreTopics().then(function (hasMoreResults) { - Em.run.schedule('afterRender', function() { - self.saveScrollPosition(); - }); + this.get('controller').loadMoreTopics().then(hasMoreResults => { + Ember.run.schedule('afterRender', () => self.saveScrollPosition()); if (!hasMoreResults) { - self.get('eyeline').flushRest(); + this.get('eyeline').flushRest(); + } else if ($(window).height() >= $(document).height()) { + this.send("loadMore"); } }); } }, - _readjustScrollPosition: function() { + @on("didInsertElement") + _readjustScrollPosition() { const scrollTo = this.session.get('topicListScrollPosition'); - - if (typeof scrollTo !== "undefined") { - Em.run.schedule('afterRender', function() { - $(window).scrollTop(scrollTo+1); - }); + if (scrollTo && scrollTo >= 0) { + Ember.run.schedule('afterRender', () => $(window).scrollTop(scrollTo + 1)); + } else if ($(window).height() >= $(document).height()) { + this.send("loadMore"); } - }.on('didInsertElement'), + }, - _updateTitle: function() { - Discourse.notifyTitle(this.get('controller.topicTrackingState.incomingCount')); - }.observes('controller.topicTrackingState.incomingCount'), + @computed("controller.topicTrackingState.incomingCount") + _updateTitle(incomingCount) { + Discourse.notifyTitle(incomingCount); + }, // Remember where we were scrolled to saveScrollPosition() { From 5b8917e5780fa68775aaba6ab1c590ccad33640a Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Wed, 9 Sep 2015 11:40:52 -0400 Subject: [PATCH 005/157] Version bump to v1.4.0.beta11 --- lib/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/version.rb b/lib/version.rb index aadc4d2233..f9256e88f2 100644 --- a/lib/version.rb +++ b/lib/version.rb @@ -5,7 +5,7 @@ module Discourse MAJOR = 1 MINOR = 4 TINY = 0 - PRE = 'beta10' + PRE = 'beta11' STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.') end From 9548876c2d6b5b14fe42c4fb4f5376ae293c880b Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Wed, 9 Sep 2015 11:52:25 -0400 Subject: [PATCH 006/157] FIX: Some keyboard commands should not fire when anonymous --- .../discourse/lib/keyboard-shortcuts.js.es6 | 137 +++++++++--------- 1 file changed, 66 insertions(+), 71 deletions(-) diff --git a/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6 b/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6 index 29dbc01d66..0172e8167c 100644 --- a/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6 +++ b/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6 @@ -1,62 +1,53 @@ import DiscourseURL from 'discourse/lib/url'; -const PATH_BINDINGS = { - 'g h': '/', - 'g l': '/latest', - 'g n': '/new', - 'g u': '/unread', - 'g c': '/categories', - 'g t': '/top', - 'g b': '/bookmarks', - 'g p': '/my/activity', - 'g m': '/my/messages' - }, - - SELECTED_POST_BINDINGS = { - 'd': 'deletePost', - 'e': 'editPost', - 'l': 'toggleLike', - 'r': 'replyToPost', - '!': 'showFlags', - 't': 'replyAsNewTopic' - }, - - CLICK_BINDINGS = { - 'm m': 'div.notification-options li[data-id="0"] a', // mark topic as muted - 'm r': 'div.notification-options li[data-id="1"] a', // mark topic as regular - 'm t': 'div.notification-options li[data-id="2"] a', // mark topic as tracking - 'm w': 'div.notification-options li[data-id="3"] a', // mark topic as watching - 'x r': '#dismiss-new,#dismiss-new-top,#dismiss-posts,#dismiss-posts-top', // dismiss new/posts - 'x t': '#dismiss-topics,#dismiss-topics-top', // dismiss topics - '.': '.alert.alert-info.clickable', // show incoming/updated topics - 'o,enter': '.topic-list tr.selected a.title', // open selected topic - 'shift+s': '#topic-footer-buttons button.share', // share topic - 's': '.topic-post.selected a.post-date' // share post - }, - - FUNCTION_BINDINGS = { - 'c': 'createTopic', // create new topic - 'home': 'goToFirstPost', - '#': 'toggleProgress', - 'end': 'goToLastPost', - 'shift+j': 'nextSection', - 'j': 'selectDown', - 'shift+k': 'prevSection', - 'shift+p': 'pinUnpinTopic', - 'k': 'selectUp', - 'u': 'goBack', - '/': 'showSearch', - '=': 'toggleHamburgerMenu', - 'p': 'showCurrentUser', // open current user menu - 'ctrl+f': 'showBuiltinSearch', - 'command+f': 'showBuiltinSearch', - '?': 'showHelpModal', // open keyboard shortcut help - 'q': 'quoteReply', - 'b': 'toggleBookmark', - 'f': 'toggleBookmarkTopic', - 'shift+r': 'replyToTopic', - 'shift+z shift+z': 'logout' - }; +const bindings = { + '!': {postAction: 'showFlags'}, + '#': {handler: 'toggleProgress', anonymous: true}, + '/': {handler: 'showSearch', anonymous: true}, + '=': {handler: 'toggleHamburgerMenu', anonymous: true}, + '?': {handler: 'showHelpModal', anonymous: true}, + '.': {click: '.alert.alert-info.clickable', anonymous: true}, // show incoming/updated topics + 'b': {handler: 'toggleBookmark'}, + 'c': {handler: 'createTopic'}, + 'ctrl+f': {handler: 'showBuiltinSearch', anonymous: true}, + 'command+f': {handler: 'showBuiltinSearch', anonymous: true}, + 'd': {postAction: 'deletePost'}, + 'e': {postAction: 'editPost'}, + 'end': {handler: 'goToLastPost', anonymous: true}, + 'f': {handler: 'toggleBookmarkTopic'}, + 'g h': {path: '/', anonymous: true}, + 'g l': {path: '/latest', anonymous: true}, + 'g n': {path: '/new'}, + 'g u': {path: '/unread'}, + 'g c': {path: '/categories', anonymous: true}, + 'g t': {path: '/top', anonymous: true}, + 'g b': {path: '/bookmarks'}, + 'g p': {path: '/my/activity'}, + 'g m': {path: '/my/messages'}, + 'home': {handler: 'goToFirstPost', anonymous: true}, + 'j': {handler: 'selectDown', anonymous: true}, + 'k': {handler: 'selectUp', anonymous: true}, + 'l': {postAction: 'toggleLike'}, + 'm m': {click: 'div.notification-options li[data-id="0"] a'}, // mark topic as muted + 'm r': {click: 'div.notification-options li[data-id="1"] a'}, // mark topic as regular + 'm t': {click: 'div.notification-options li[data-id="2"] a'}, // mark topic as tracking + 'm w': {click: 'div.notification-options li[data-id="3"] a'}, // mark topic as watching + 'o,enter': {click: '.topic-list tr.selected a.title', anonymous: true}, // open selected topic + 'p': {handler: 'showCurrentUser'}, + 'q': {handler: 'quoteReply'}, + 'r': {postAction: 'replyToPost'}, + 's': {click: '.topic-post.selected a.post-date', anonymous: true}, // share post + 'shift+j': {handler: 'nextSection', anonymous: true}, + 'shift+k': {handler: 'prevSection', anonymous: true}, + 'shift+p': {handler: 'pinUnpinTopic'}, + 'shift+r': {handler: 'replyToTopic'}, + 'shift+s': {click: '#topic-footer-buttons button.share', anonymous: true}, // share topic + 'shift+z shift+z': {handler: 'logout'}, + 't': {postAction: 'replyAsNewTopic'}, + 'u': {handler: 'goBack', anonymous: true}, + 'x r': {click: '#dismiss-new,#dismiss-new-top,#dismiss-posts,#dismiss-posts-top'}, // dismiss new/posts + 'x t': {click: '#dismiss-topics,#dismiss-topics-top'} // dismiss topics +}; export default { @@ -65,14 +56,24 @@ export default { this.container = container; this._stopCallback(); - this.searchService = this.container.lookup('search-service:main'); this.appEvents = this.container.lookup('app-events:main'); + this.currentUser = this.container.lookup('current-user:main'); - _.each(PATH_BINDINGS, this._bindToPath, this); - _.each(CLICK_BINDINGS, this._bindToClick, this); - _.each(SELECTED_POST_BINDINGS, this._bindToSelectedPost, this); - _.each(FUNCTION_BINDINGS, this._bindToFunction, this); + Object.keys(bindings).forEach(key => { + const binding = bindings[key]; + if (!binding.anonymous && !this.currentUser) { return; } + + if (binding.path) { + this._bindToPath(binding.path, key); + } else if (binding.handler) { + this._bindToFunction(binding.handler, key); + } else if (binding.postAction) { + this._bindToSelectedPost(binding.postAction, key); + } else if (binding.click) { + this._bindToClick(binding.click, key); + } + }); }, toggleBookmark() { @@ -223,17 +224,11 @@ export default { }, _bindToSelectedPost(action, binding) { - const self = this; - - this.keyTrapper.bind(binding, function() { - self.sendToSelectedPost(action); - }); + this.keyTrapper.bind(binding, () => this.sendToSelectedPost(action)); }, - _bindToPath(path, binding) { - this.keyTrapper.bind(binding, function() { - DiscourseURL.routeTo(path); - }); + _bindToPath(path, key) { + this.keyTrapper.bind(key, () => DiscourseURL.routeTo(path)); }, _bindToClick(selector, binding) { From b3d2982be7d40ff632afcd1c3cbe8c9e78a632be Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Wed, 9 Sep 2015 14:06:36 -0400 Subject: [PATCH 007/157] FIX: Allow trailing `_` because we used to. --- app/models/username_validator.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/username_validator.rb b/app/models/username_validator.rb index b93ef78a03..ac9adcc95e 100644 --- a/app/models/username_validator.rb +++ b/app/models/username_validator.rb @@ -75,7 +75,7 @@ class UsernameValidator def username_last_char_valid? return unless errors.empty? - if username[-1] =~ /[^A-Za-z0-9]/ + if username[-1] =~ /[^A-Za-z0-9_]/ self.errors << I18n.t(:'user.username.must_end_with_alphanumeric') end end From 74eacba12f7c4ca6103c34a8551da17ff025c865 Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Wed, 9 Sep 2015 14:46:40 -0400 Subject: [PATCH 008/157] FIX: long category names overflow outside of box style badges --- app/assets/stylesheets/common/components/badges.css.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/assets/stylesheets/common/components/badges.css.scss b/app/assets/stylesheets/common/components/badges.css.scss index ed6dec22eb..d3bd4a6b28 100644 --- a/app/assets/stylesheets/common/components/badges.css.scss +++ b/app/assets/stylesheets/common/components/badges.css.scss @@ -101,6 +101,8 @@ span { display: block; + overflow: hidden; + text-overflow: ellipsis; &.badge-category-bg, &.badge-category-parent-bg { position: absolute; From 8a11f7f6c166cea3254690244745324b53a624c2 Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Wed, 9 Sep 2015 15:05:07 -0400 Subject: [PATCH 009/157] Remove `console.log` --- .../javascripts/discourse/templates/components/user-menu.hbs | 1 - 1 file changed, 1 deletion(-) diff --git a/app/assets/javascripts/discourse/templates/components/user-menu.hbs b/app/assets/javascripts/discourse/templates/components/user-menu.hbs index bba85df8d9..0fa99d740a 100644 --- a/app/assets/javascripts/discourse/templates/components/user-menu.hbs +++ b/app/assets/javascripts/discourse/templates/components/user-menu.hbs @@ -8,7 +8,6 @@ {{/if}}
  • {{d-link path=bookmarksPath title="user.bookmarks" icon="bookmark"}} - {{log siteSettings}} {{#if siteSettings.enable_private_messages}} {{d-link path=messagesPath title="user.private_messages" icon="envelope"}} {{/if}} From 9f826f1ad6b90f5cd4bfd62ed610fa3605a8958e Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Wed, 9 Sep 2015 15:18:09 -0400 Subject: [PATCH 010/157] UX: Change style of "New" next to unread FAQ --- .../discourse/templates/components/hamburger-menu.hbs | 4 ++-- app/assets/javascripts/discourse/templates/user-card.hbs | 2 +- config/locales/client.en.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs b/app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs index 8daa315a02..ee75d18a76 100644 --- a/app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs +++ b/app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs @@ -1,10 +1,10 @@ {{#menu-panel visible=visible}} {{#unless currentUser.read_faq}} {{#menu-links}} -
  • +
  • {{#d-link path=faqUrl class="faq-link"}} {{i18n "faq"}} - {{i18n "new_item"}} + {{i18n "new_item"}} {{/d-link}}
  • {{/menu-links}} diff --git a/app/assets/javascripts/discourse/templates/user-card.hbs b/app/assets/javascripts/discourse/templates/user-card.hbs index ce4fdb9281..a6b30ca57e 100644 --- a/app/assets/javascripts/discourse/templates/user-card.hbs +++ b/app/assets/javascripts/discourse/templates/user-card.hbs @@ -16,7 +16,7 @@ {{#if user.title}}

    {{user.title}}

    {{/if}} - + {{plugin-outlet "user-card-post-names"}}
    diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 36c1f56dd3..6c30944c10 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -958,7 +958,7 @@ en: private_messages: "Search messages" hamburger_menu: "go to another topic list or category" - new_item: "New!" + new_item: "new" go_back: 'go back' not_logged_in_user: 'user page with summary of current activity and preferences' current_user: 'go to your user page' From 2922cc3036a4a28f55d50a2777f35fcf66944596 Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Wed, 9 Sep 2015 16:05:02 -0400 Subject: [PATCH 011/157] UX: mobile topic list: move post count to right side of topic title --- .../templates/mobile/list/topic_list_item.raw.hbs | 7 +++++-- app/assets/stylesheets/mobile/topic-list.scss | 10 +++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/discourse/templates/mobile/list/topic_list_item.raw.hbs b/app/assets/javascripts/discourse/templates/mobile/list/topic_list_item.raw.hbs index 972acfa16a..01937421ae 100644 --- a/app/assets/javascripts/discourse/templates/mobile/list/topic_list_item.raw.hbs +++ b/app/assets/javascripts/discourse/templates/mobile/list/topic_list_item.raw.hbs @@ -1,5 +1,5 @@ -