diff --git a/public/src/forum/admin/groups.js b/public/src/forum/admin/groups.js
index c5b69e8743..970822fa73 100644
--- a/public/src/forum/admin/groups.js
+++ b/public/src/forum/admin/groups.js
@@ -127,7 +127,7 @@ define(function() {
.append($('
').attr('src', results.users[x].picture))
.append($('').html(results.users[x].username));
- resultsEl.appendChild(foundUser);
+ resultsEl.append(foundUser);
}
} else {
resultsEl.html('
No Users Found');
diff --git a/public/src/forum/pagination.js b/public/src/forum/pagination.js
index 3b19fce4c1..afd4bf3fb8 100644
--- a/public/src/forum/pagination.js
+++ b/public/src/forum/pagination.js
@@ -17,8 +17,6 @@ define(function() {
return pagination.loadPage(pagination.currentPage - 1);
}).on('click', '.next', function() {
return pagination.loadPage(pagination.currentPage + 1);
- }).on('click', '.page', function() {
- return pagination.loadPage($(this).attr('data-page'));
}).on('click', '.select_page', function(e) {
e.preventDefault();
bootbox.prompt('Enter page number:', function(pageNum) {
@@ -77,7 +75,11 @@ define(function() {
return false;
}
- ajaxify.go(window.location.pathname.slice(1) + '?page=' + page);
+ ajaxify.go(window.location.pathname.slice(1) + '?page=' + page, function() {
+ if (typeof callback === 'function') {
+ callback();
+ }
+ });
return true;
}
diff --git a/public/src/forum/topic.js b/public/src/forum/topic.js
index 6a697f5849..a74c3d18fe 100644
--- a/public/src/forum/topic.js
+++ b/public/src/forum/topic.js
@@ -309,7 +309,7 @@ define(['composer', 'forum/pagination'], function(composer, pagination) {
var bookmark = localStorage.getItem('topic:' + tid + ':bookmark');
if (window.location.hash) {
Topic.scrollToPost(window.location.hash.substr(1), true);
- } else if (bookmark) {
+ } else if (bookmark && (!config.usePagination || (config.usePagination && pagination.currentPage === 1))) {
app.alert({
alert_id: 'bookmark',
message: '[[topic:bookmark_instructions]]',
@@ -324,7 +324,9 @@ define(['composer', 'forum/pagination'], function(composer, pagination) {
});
}
- updateHeader();
+ if (!window.location.hash && !config.usePagination) {
+ updateHeader();
+ }
$('#post-container').on('mouseenter', '.favourite-tooltip', function(e) {
if (!$(this).data('users-loaded')) {
@@ -1037,26 +1039,29 @@ define(['composer', 'forum/pagination'], function(composer, pagination) {
if(index > Topic.postCount) {
index = Topic.postCount;
}
+
$('#pagination').html(index + ' out of ' + Topic.postCount);
$('.progress-bar').width((index / Topic.postCount * 100) + '%');
- if(!parseInt(el.attr('data-index'), 10)) {
- localStorage.removeItem('topic:' + templates.get('topic_id') + ':bookmark');
- } else {
+ var currentBookmark = localStorage.getItem('topic:' + templates.get('topic_id') + ':bookmark');
+ if (!currentBookmark || parseInt(el.attr('data-pid'), 10) > parseInt(currentBookmark, 10)) {
localStorage.setItem('topic:' + templates.get('topic_id') + ':bookmark', el.attr('data-pid'));
+ }
- if (!scrollingToPost) {
- var newUrl = window.location.protocol + '//' + window.location.host + window.location.pathname + '#' + el.attr('data-pid')
- if (newUrl !== currentUrl) {
- if (history.replaceState) {
- history.replaceState({
- url: window.location.pathname.slice(1) + '#' + el.attr('data-pid')
- }, null, newUrl);
- }
- currentUrl = newUrl;
+ if (!scrollingToPost) {
+
+ var newUrl = window.location.href.replace(window.location.hash, '') + '#' + el.attr('data-pid');
+
+ if (newUrl !== currentUrl) {
+ if (history.replaceState) {
+ history.replaceState({
+ url: window.location.pathname.slice(1) + (window.location.search ? window.location.search : '' ) + '#' + el.attr('data-pid')
+ }, null, newUrl);
}
+ currentUrl = newUrl;
}
}
+
return false;
}
});
@@ -1090,7 +1095,9 @@ define(['composer', 'forum/pagination'], function(composer, pagination) {
return;
}
if(parseInt(page, 10) !== pagination.currentPage) {
- pagination.loadPage(page);
+ pagination.loadPage(page, function() {
+ scrollToPid(pid);
+ });
} else {
scrollToPid(pid);
}
@@ -1106,6 +1113,7 @@ define(['composer', 'forum/pagination'], function(composer, pagination) {
if(after < 0) {
after = 0;
}
+
loadMorePosts(tid, after, function() {
scrollToPid(pid);
});
@@ -1123,6 +1131,7 @@ define(['composer', 'forum/pagination'], function(composer, pagination) {
scrollTop: (scrollTo.offset().top - $('#header-menu').height() - offset) + "px"
}, duration !== undefined ? duration : 400, function() {
scrollingToPost = false;
+ updateHeader();
if (highlight) {
scrollTo.parent().find('.topic-item').addClass('highlight');
setTimeout(function() {