|
|
/*
|
|
|
@licstart The following is the entire license notice for the
|
|
|
JavaScript code in this page.
|
|
|
|
|
|
|
|
|
Copyright (C) 2013 neko259
|
|
|
|
|
|
The JavaScript code in this page is free software: you can
|
|
|
redistribute it and/or modify it under the terms of the GNU
|
|
|
General Public License (GNU GPL) as published by the Free Software
|
|
|
Foundation, either version 3 of the License, or (at your option)
|
|
|
any later version. The code is distributed WITHOUT ANY WARRANTY;
|
|
|
without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
|
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
|
|
|
|
|
|
As additional permission under GNU GPL version 3 section 7, you
|
|
|
may distribute non-source (e.g., minimized or compacted) forms of
|
|
|
that code without the copy of the GNU GPL normally required by
|
|
|
section 4, provided you include this license notice and a URL
|
|
|
through which recipients can access the Corresponding Source.
|
|
|
|
|
|
@licend The above is the entire license notice
|
|
|
for the JavaScript code in this page.
|
|
|
*/
|
|
|
|
|
|
var FAV_POST_UPDATE_PERIOD = 10000;
|
|
|
|
|
|
/**
|
|
|
* An email is a hidden file to prevent spam bots from posting. It has to be
|
|
|
* hidden.
|
|
|
*/
|
|
|
function hideEmailFromForm() {
|
|
|
$('.form-email').parent().parent().hide();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Highlight code blocks with code highlighter
|
|
|
*/
|
|
|
function highlightCode(node) {
|
|
|
node.find('pre code').each(function(i, e) {
|
|
|
hljs.highlightBlock(e);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
function updateFavPosts() {
|
|
|
var includePostBody = $('#fav-panel').is(":visible");
|
|
|
var url = '/api/new_posts/';
|
|
|
if (includePostBody) {
|
|
|
url += '?include_posts'
|
|
|
}
|
|
|
$.getJSON(url,
|
|
|
function(data) {
|
|
|
var allNewPostCount = 0;
|
|
|
|
|
|
if (includePostBody) {
|
|
|
var favoriteThreadPanel = $('#fav-panel');
|
|
|
favoriteThreadPanel.empty();
|
|
|
}
|
|
|
|
|
|
$.each(data, function (_, dict) {
|
|
|
var newPostCount = dict.new_post_count;
|
|
|
allNewPostCount += newPostCount;
|
|
|
|
|
|
if (includePostBody) {
|
|
|
var favThreadNode = $('<div class="post"></div>');
|
|
|
favThreadNode.append($(dict.post_url));
|
|
|
favThreadNode.append(' ');
|
|
|
favThreadNode.append($('<span class="title">' + dict.title + '</span>'));
|
|
|
|
|
|
if (newPostCount > 0) {
|
|
|
favThreadNode.append(' (<a href="' + dict.newest_post_link + '">+' + newPostCount + "</a>)");
|
|
|
}
|
|
|
|
|
|
favoriteThreadPanel.append(favThreadNode);
|
|
|
|
|
|
addRefLinkPreview(favThreadNode[0]);
|
|
|
}
|
|
|
});
|
|
|
|
|
|
var newPostCountNode = $('#new-fav-post-count');
|
|
|
if (allNewPostCount > 0) {
|
|
|
newPostCountNode.text('(+' + allNewPostCount + ')');
|
|
|
newPostCountNode.show();
|
|
|
} else {
|
|
|
newPostCountNode.hide();
|
|
|
}
|
|
|
}
|
|
|
);
|
|
|
}
|
|
|
|
|
|
function initFavPanel() {
|
|
|
updateFavPosts();
|
|
|
|
|
|
if ($('#fav-panel-btn').length > 0) {
|
|
|
setInterval(updateFavPosts, FAV_POST_UPDATE_PERIOD);
|
|
|
$('#fav-panel-btn').click(function() {
|
|
|
$('#fav-panel').toggle();
|
|
|
updateFavPosts();
|
|
|
|
|
|
return false;
|
|
|
});
|
|
|
|
|
|
$(document).on('keyup.removepic', function(e) {
|
|
|
if(e.which === 27) {
|
|
|
$('#fav-panel').hide();
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$( document ).ready(function() {
|
|
|
hideEmailFromForm();
|
|
|
|
|
|
$("a[href='#top']").click(function() {
|
|
|
$("html, body").animate({ scrollTop: 0 }, "slow");
|
|
|
return false;
|
|
|
});
|
|
|
|
|
|
addImgPreview();
|
|
|
|
|
|
addRefLinkPreview();
|
|
|
|
|
|
highlightCode($(document));
|
|
|
|
|
|
initFavPanel();
|
|
|
});
|
|
|
|