diff --git a/app/assets/javascripts/discourse/components/sortable-heading.js.es6 b/app/assets/javascripts/discourse/components/sortable-heading.js.es6 deleted file mode 100644 index c1f469ecc..000000000 --- a/app/assets/javascripts/discourse/components/sortable-heading.js.es6 +++ /dev/null @@ -1,27 +0,0 @@ -/** - Renders a heading for a table with optional sorting controls. - - @class SortableHeadingComponent - @extends Ember.Component - @namespace Discourse - @module Discourse -**/ -export default Ember.Component.extend({ - tagName: 'th', - classNameBindings: ['number:num', 'sortBy', 'iconSortClass:sorting', 'sortable:sortable'], - attributeBindings: ['colspan'], - - sortable: function() { - return this.get('sortBy'); - }.property('sortBy'), - - iconSortClass: function() { - if (this.get('sortable') && this.get('sortBy') === this.get('order')) { - return this.get('ascending') ? 'fa fa-chevron-up' : 'fa fa-chevron-down'; - } - }.property('sortable', 'order', 'ascending'), - - click: function() { - this.sendAction('action', this.get('sortBy')); - } -}); diff --git a/app/assets/javascripts/discourse/components/topic-list-header.js.es6 b/app/assets/javascripts/discourse/components/topic-list-header.js.es6 new file mode 100644 index 000000000..eb85cf960 --- /dev/null +++ b/app/assets/javascripts/discourse/components/topic-list-header.js.es6 @@ -0,0 +1,67 @@ +import StringBuffer from 'discourse/mixins/string-buffer'; + +export default Ember.Component.extend(StringBuffer, { + tagName: 'tr', + + rerenderTriggers: ['order', 'ascending'], + + click: function(e) { + var target = $(e.target); + + if(target.parents().andSelf().hasClass('bulk-select')){ + this.sendAction('toggleBulkSelect'); + } else { + var th = target.closest('th.sortable'); + if(th.length > 0) { + this.sendAction('changeSort', th.data('sort-order')); + } + } + + }, + + renderColumn: function(buffer, options){ + var className = options.sortable ? "sortable " : ""; + className += options.order || ""; + + var sortIcon = ""; + if(this.get("order") === options.order){ + className += " sorting"; + sortIcon = " "; + } + + if(options.number){ + className += " num"; + } + + buffer.push("
- {{#if canBulkSelect}} - - {{/if}} - | - {{/if}} - {{#sortable-heading class="default"}} {{i18n 'topic.title'}} {{/sortable-heading}} - {{#unless controller.hideCategory}} - {{#sortable-heading sortBy="category" action="changeSort" order=order ascending=ascending}} - {{i18n 'category_title'}} - {{/sortable-heading}} - {{/unless}} - {{#sortable-heading class="posters"}} {{i18n 'users'}} {{/sortable-heading}} - {{#sortable-heading sortBy="posts" number=true action="changeSort" order=order ascending=ascending}} - {{i18n 'posts'}} - {{/sortable-heading}} - {{#sortable-heading sortBy="views" number=true action="changeSort" order=order ascending=ascending}} - {{i18n 'views'}} - {{/sortable-heading}} - {{#sortable-heading sortBy="activity" number=true action="changeSort" order=order ascending=ascending}} - {{i18n 'activity'}} - {{/sortable-heading}} -
---|