v1.18.x
barisusakli 8 years ago
parent a427bba9cb
commit e009ce5609

@ -62,7 +62,7 @@
"nodebb-plugin-spam-be-gone": "0.4.10", "nodebb-plugin-spam-be-gone": "0.4.10",
"nodebb-rewards-essentials": "0.0.9", "nodebb-rewards-essentials": "0.0.9",
"nodebb-theme-lavender": "3.0.15", "nodebb-theme-lavender": "3.0.15",
"nodebb-theme-persona": "4.2.3", "nodebb-theme-persona": "4.2.4",
"nodebb-theme-vanilla": "5.2.0", "nodebb-theme-vanilla": "5.2.0",
"nodebb-widget-essentials": "2.0.13", "nodebb-widget-essentials": "2.0.13",
"nodemailer": "2.6.4", "nodemailer": "2.6.4",

@ -58,12 +58,25 @@ define('forum/category', [
}); });
}); });
handleScrollToTopicIndex();
handleIgnoreWatch(cid); handleIgnoreWatch(cid);
$(window).trigger('action:topics.loaded', {topics: ajaxify.data.topics}); $(window).trigger('action:topics.loaded', {topics: ajaxify.data.topics});
$(window).trigger('action:category.loaded', {cid: ajaxify.data.cid}); $(window).trigger('action:category.loaded', {cid: ajaxify.data.cid});
}; };
function handleScrollToTopicIndex() {
var parts = window.location.pathname.split('/');
var topicIndex = parts[parts.length - 1];
if (topicIndex && utils.isNumber(topicIndex)) {
topicIndex = Math.max(0, parseInt(topicIndex, 10) - 1);
if (topicIndex && window.location.search.indexOf('page=') === -1) {
navigator.scrollToElement($('[component="category/topic"][data-index="' + topicIndex + '"]'), true, 0);
}
}
}
function handleIgnoreWatch(cid) { function handleIgnoreWatch(cid) {
$('[component="category/watching"], [component="category/ignoring"]').on('click', function () { $('[component="category/watching"], [component="category/ignoring"]').on('click', function () {
var $this = $(this); var $this = $(this);
@ -104,14 +117,10 @@ define('forum/category', [
}; };
$(window).on('action:ajaxify.contentLoaded', function (ev, data) { $(window).on('action:ajaxify.contentLoaded', function (ev, data) {
if (ajaxify.data.template.category) { if (ajaxify.data.template.category && ajaxify.data.cid) {
var cid = ajaxify.data.cid;
if (!cid) {
return;
}
var bookmarkIndex = localStorage.getItem('category:' + cid + ':bookmark'); var bookmarkIndex = localStorage.getItem('category:' + ajaxify.data.cid + ':bookmark');
var clickedIndex = localStorage.getItem('category:' + cid + ':bookmark:clicked'); var clickedIndex = localStorage.getItem('category:' + ajaxify.data.cid + ':bookmark:clicked');
bookmarkIndex = Math.max(0, parseInt(bookmarkIndex, 10) || 0); bookmarkIndex = Math.max(0, parseInt(bookmarkIndex, 10) || 0);
clickedIndex = Math.max(0, parseInt(clickedIndex, 10) || 0); clickedIndex = Math.max(0, parseInt(clickedIndex, 10) || 0);

@ -238,14 +238,17 @@ define('navigator', ['forum/pagination', 'components'], function (pagination, co
navigator.scrollToPostIndex = function (postIndex, highlight, duration) { navigator.scrollToPostIndex = function (postIndex, highlight, duration) {
var scrollTo = components.get('post', 'index', postIndex); var scrollTo = components.get('post', 'index', postIndex);
var postHeight = scrollTo.height(); navigator.scrollToElement(scrollTo, highlight, duration);
var viewportHeight = $(window).height(); };
var navbarHeight = components.get('navbar').height();
navigator.scrollToElement = function(scrollTo, highlight, duration) {
if (!scrollTo.length) { if (!scrollTo.length) {
navigator.scrollActive = false; navigator.scrollActive = false;
return; return;
} }
var postHeight = scrollTo.height();
var viewportHeight = $(window).height();
var navbarHeight = components.get('navbar').height();
// Temporarily disable navigator update on scroll // Temporarily disable navigator update on scroll
$(window).off('scroll', navigator.update); $(window).off('scroll', navigator.update);
@ -290,13 +293,8 @@ define('navigator', ['forum/pagination', 'components'], function (pagination, co
} }
} }
if (components.get('topic').length) { animateScroll();
animateScroll();
} else {
navigator.scrollActive = false;
}
}; };
return navigator; return navigator;
}); });

@ -69,7 +69,7 @@ categoryController.get = function (req, res, callback) {
} }
if (!settings.usePagination) { if (!settings.usePagination) {
topicIndex = Math.max(topicIndex - (settings.topicsPerPage - 1), 0); topicIndex = Math.max(0, topicIndex - (Math.ceil(settings.topicsPerPage / 2) - 1));
} else if (!req.query.page) { } else if (!req.query.page) {
var index = Math.max(parseInt((topicIndex || 0), 10), 0); var index = Math.max(parseInt((topicIndex || 0), 10), 0);
currentPage = Math.ceil((index + 1) / settings.topicsPerPage); currentPage = Math.ceil((index + 1) / settings.topicsPerPage);

Loading…
Cancel
Save