Improved next/prev post behavior
This commit is contained in:
parent
f78d09b424
commit
fc569df34e
4 changed files with 24 additions and 16 deletions
|
@ -12,7 +12,6 @@ $(function()
|
||||||
.bindOnce('comment-submit', 'submit', function(e)
|
.bindOnce('comment-submit', 'submit', function(e)
|
||||||
{
|
{
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
rememberLastSearchQuery();
|
|
||||||
|
|
||||||
var formDom = $(this);
|
var formDom = $(this);
|
||||||
if (formDom.hasClass('inactive'))
|
if (formDom.hasClass('inactive'))
|
||||||
|
@ -50,7 +49,7 @@ $(function()
|
||||||
formDom.find('.preview').hide();
|
formDom.find('.preview').hide();
|
||||||
var cb = function()
|
var cb = function()
|
||||||
{
|
{
|
||||||
$.get(window.location.href).success(function(data)
|
getHtml(window.location.href).success(function(data)
|
||||||
{
|
{
|
||||||
$('.comments-wrapper').replaceWith($(data).find('.comments-wrapper'));
|
$('.comments-wrapper').replaceWith($(data).find('.comments-wrapper'));
|
||||||
$('body').trigger('dom-update');
|
$('body').trigger('dom-update');
|
||||||
|
@ -99,7 +98,7 @@ $(function()
|
||||||
|
|
||||||
if (formDom.length == 0)
|
if (formDom.length == 0)
|
||||||
{
|
{
|
||||||
$.get($(this).attr('href')).success(function(data)
|
getHtml($(this).attr('href')).success(function(data)
|
||||||
{
|
{
|
||||||
var otherForm = $(data).find('form.edit-comment');
|
var otherForm = $(data).find('form.edit-comment');
|
||||||
otherForm.hide();
|
otherForm.hide();
|
||||||
|
|
|
@ -50,6 +50,12 @@ function postJSON(data)
|
||||||
return $.ajax(data);
|
return $.ajax(data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function getHtml(data)
|
||||||
|
{
|
||||||
|
rememberLastSearchQuery();
|
||||||
|
return $.get(data);
|
||||||
|
}
|
||||||
|
|
||||||
$.fn.hasAttr = function(name)
|
$.fn.hasAttr = function(name)
|
||||||
{
|
{
|
||||||
return this.attr(name) !== undefined;
|
return this.attr(name) !== undefined;
|
||||||
|
@ -71,6 +77,18 @@ $.fn.bindOnce = function(name, eventName, callback)
|
||||||
//basic event listeners
|
//basic event listeners
|
||||||
$(function()
|
$(function()
|
||||||
{
|
{
|
||||||
|
$(window).on('beforeunload', function()
|
||||||
|
{
|
||||||
|
rememberLastSearchQuery();
|
||||||
|
});
|
||||||
|
if (window.history && window.history.pushState)
|
||||||
|
{
|
||||||
|
$(window).on('popstate', function()
|
||||||
|
{
|
||||||
|
rememberLastSearchQuery();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
$('body').bind('dom-update', function()
|
$('body').bind('dom-update', function()
|
||||||
{
|
{
|
||||||
//event confirmations
|
//event confirmations
|
||||||
|
@ -93,9 +111,7 @@ $(function()
|
||||||
{
|
{
|
||||||
if (e.isPropagationStopped())
|
if (e.isPropagationStopped())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
rememberLastSearchQuery();
|
|
||||||
|
|
||||||
var aDom = $(this);
|
var aDom = $(this);
|
||||||
if (aDom.hasClass('inactive'))
|
if (aDom.hasClass('inactive'))
|
||||||
|
@ -125,7 +141,6 @@ $(function()
|
||||||
$('form.simple-action').bindOnce('simple-action', 'submit', function(e)
|
$('form.simple-action').bindOnce('simple-action', 'submit', function(e)
|
||||||
{
|
{
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
rememberLastSearchQuery();
|
|
||||||
|
|
||||||
var formDom = $(this);
|
var formDom = $(this);
|
||||||
if (formDom.hasClass('inactive'))
|
if (formDom.hasClass('inactive'))
|
||||||
|
@ -149,7 +164,6 @@ $(function()
|
||||||
{
|
{
|
||||||
if (data.message)
|
if (data.message)
|
||||||
alert(data.message);
|
alert(data.message);
|
||||||
console.log(data);
|
|
||||||
disableExitConfirmation();
|
disableExitConfirmation();
|
||||||
formDom.find(':input').attr('readonly', false);
|
formDom.find(':input').attr('readonly', false);
|
||||||
formDom.removeClass('inactive');
|
formDom.removeClass('inactive');
|
||||||
|
@ -184,10 +198,6 @@ $(function()
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
//try to remember last search query
|
|
||||||
window.onbeforeunload = rememberLastSearchQuery;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ function scrolled()
|
||||||
if (pageNext != null && pageNext != pageDone)
|
if (pageNext != null && pageNext != pageDone)
|
||||||
{
|
{
|
||||||
$(document).data('page-done', pageNext);
|
$(document).data('page-done', pageNext);
|
||||||
$.get(pageNext).success(function(response)
|
getHtml(pageNext).success(function(response)
|
||||||
{
|
{
|
||||||
var dom = $(response);
|
var dom = $(response);
|
||||||
var nextPage = dom.find('.paginator .next:not(.disabled) a').attr('href');
|
var nextPage = dom.find('.paginator .next:not(.disabled) a').attr('href');
|
||||||
|
|
|
@ -67,7 +67,7 @@ $(function()
|
||||||
|
|
||||||
$('.comments.unit a.simple-action').data('callback', function()
|
$('.comments.unit a.simple-action').data('callback', function()
|
||||||
{
|
{
|
||||||
$.get(window.location.href).success(function(data)
|
getHtml(window.location.href).success(function(data)
|
||||||
{
|
{
|
||||||
$('.comments-wrapper').replaceWith($(data).find('.comments-wrapper'));
|
$('.comments-wrapper').replaceWith($(data).find('.comments-wrapper'));
|
||||||
$('body').trigger('dom-update');
|
$('body').trigger('dom-update');
|
||||||
|
@ -76,7 +76,7 @@ $(function()
|
||||||
|
|
||||||
$('#sidebar a.simple-action').data('callback', function()
|
$('#sidebar a.simple-action').data('callback', function()
|
||||||
{
|
{
|
||||||
$.get(window.location.href).success(function(data)
|
getHtml(window.location.href).success(function(data)
|
||||||
{
|
{
|
||||||
$('#sidebar').replaceWith($(data).find('#sidebar'));
|
$('#sidebar').replaceWith($(data).find('#sidebar'));
|
||||||
$('body').trigger('dom-update');
|
$('body').trigger('dom-update');
|
||||||
|
@ -89,7 +89,6 @@ $(function()
|
||||||
$('form.edit-post').submit(function(e)
|
$('form.edit-post').submit(function(e)
|
||||||
{
|
{
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
rememberLastSearchQuery();
|
|
||||||
|
|
||||||
var formDom = $(this);
|
var formDom = $(this);
|
||||||
if (formDom.hasClass('inactive'))
|
if (formDom.hasClass('inactive'))
|
||||||
|
@ -111,7 +110,7 @@ $(function()
|
||||||
{
|
{
|
||||||
disableExitConfirmation();
|
disableExitConfirmation();
|
||||||
|
|
||||||
$.get(window.location.href).success(function(data)
|
getHtml(window.location.href).success(function(data)
|
||||||
{
|
{
|
||||||
$('#sidebar').replaceWith($(data).find('#sidebar'));
|
$('#sidebar').replaceWith($(data).find('#sidebar'));
|
||||||
$('#revision').replaceWith($(data).find('#revision'));
|
$('#revision').replaceWith($(data).find('#revision'));
|
||||||
|
|
Loading…
Reference in a new issue