This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/views/discovery-topics.js.es6
2015-02-18 14:23:14 -05:00

47 lines
1.3 KiB
JavaScript

import UrlRefresh from 'discourse/mixins/url-refresh';
import LoadMore from "discourse/mixins/load-more";
export default Discourse.View.extend(LoadMore, UrlRefresh, {
eyelineSelector: '.topic-list-item',
actions: {
loadMore() {
var self = this;
Discourse.notifyTitle(0);
this.get('controller').loadMoreTopics().then(function (hasMoreResults) {
Em.run.schedule('afterRender', function() {
self.saveScrollPosition();
});
if (!hasMoreResults) {
self.get('eyeline').flushRest();
}
});
}
},
_readjustScrollPosition: function() {
var scrollTo = this.session.get('topicListScrollPosition');
if (typeof scrollTo !== "undefined") {
Em.run.schedule('afterRender', function() {
$(window).scrollTop(scrollTo+1);
});
}
}.on('didInsertElement'),
_updateTitle: function() {
Discourse.notifyTitle(this.get('controller.topicTrackingState.incomingCount'));
}.observes('controller.topicTrackingState.incomingCount'),
// Remember where we were scrolled to
saveScrollPosition() {
this.session.set('topicListScrollPosition', $(window).scrollTop());
},
// When the topic list is scrolled
scrolled() {
this._super();
this.saveScrollPosition();
}
});