##// END OF EJS Templates
Limit only first posting by this session. Assume messages created by spam bots...
Limit only first posting by this session. Assume messages created by spam bots can be removed afterwards

File last commit:

r1466:22bf1cc4 default
r1494:89a50a1d default
Show More
main.js
161 lines | 4.5 KiB | application/javascript | JavascriptLexer
neko259
Added copyright to the JS code.
r332 /*
@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.
*/
neko259
Save video and audio volume level
r1432 var ITEM_VOLUME_LEVEL = 'volumeLevel';
neko259
Added favorite thread popup
r1340
neko259
Hide email form row by the JS code.
r653 /**
* An email is a hidden file to prevent spam bots from posting. It has to be
* hidden.
*/
function hideEmailFromForm() {
$('.form-email').parent().parent().hide();
}
neko259
Added js code highlight
r703 /**
* Highlight code blocks with code highlighter
*/
neko259
Run js highlight on the new posts only, not on all page each time. Add...
r709 function highlightCode(node) {
node.find('pre code').each(function(i, e) {
neko259
Added js code highlight
r703 hljs.highlightBlock(e);
});
}
neko259
Use shared workers for favorites update script
r1463 function updateFavPosts(data) {
neko259
Added favorite thread popup
r1340 var includePostBody = $('#fav-panel').is(":visible");
neko259
Use shared workers for favorites update script
r1463
var allNewPostCount = 0;
neko259
Added favorite thread popup
r1340 if (includePostBody) {
neko259
Use shared workers for favorites update script
r1463 var favoriteThreadPanel = $('#fav-panel');
favoriteThreadPanel.empty();
neko259
Added favorite thread popup
r1340 }
neko259
Use shared workers for favorites update script
r1463
$.each($.parseJSON(data), function (_, dict) {
var newPostCount = dict.new_post_count;
allNewPostCount += newPostCount;
neko259
Added favorite thread popup
r1340
neko259
Use shared workers for favorites update script
r1463 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>)");
neko259
Added favorite thread popup
r1340 }
neko259
Use shared workers for favorites update script
r1463 favoriteThreadPanel.append(favThreadNode);
neko259
Added favorite thread popup
r1340
neko259
Use shared workers for favorites update script
r1463 addRefLinkPreview(favThreadNode[0]);
}
});
neko259
Added favorite thread popup
r1340
neko259
Use shared workers for favorites update script
r1463 var newPostCountNode = $('#new-fav-post-count');
if (allNewPostCount > 0) {
newPostCountNode.text('(+' + allNewPostCount + ')');
newPostCountNode.show();
} else {
newPostCountNode.hide();
}
neko259
Added favorite thread popup
r1340 }
function initFavPanel() {
neko259
Use shared workers for favorites update script
r1463 var favPanelButton = $('#fav-panel-btn');
neko259
Check for shared worker support before enabling them
r1465 if (favPanelButton.length > 0 && typeof SharedWorker != 'undefined') {
neko259
Use shared workers for favorites update script
r1463 var worker = new SharedWorker($('body').attr('data-update-script'));
worker.port.onmessage = function(e) {
updateFavPosts(e.data);
};
neko259
Fixed capturing worker errors
r1466 worker.onerror = function(event){
throw new Error(event.message + " (" + event.filename + ":" + event.lineno + ")");
neko259
Add worker js errors to the console
r1464 };
neko259
Use shared workers for favorites update script
r1463 worker.port.start();
$(favPanelButton).click(function() {
var favPanel = $('#fav-panel');
favPanel.toggle();
worker.port.postMessage({ includePostBody: favPanel.is(':visible')});
neko259
Added favorite thread popup
r1340
neko259
Dont update favorites if there aren't any
r1341 return false;
});
neko259
Added favorite thread popup
r1340
neko259
Dont update favorites if there aren't any
r1341 $(document).on('keyup.removepic', function(e) {
if(e.which === 27) {
$('#fav-panel').hide();
}
});
}
neko259
Added favorite thread popup
r1340 }
neko259
Save video and audio volume level
r1432 function setVolumeLevel(level) {
localStorage.setItem(ITEM_VOLUME_LEVEL, level);
}
function getVolumeLevel() {
var level = localStorage.getItem(ITEM_VOLUME_LEVEL);
if (level == null) {
level = 1.0;
}
return level
}
function processVolumeUser(node) {
node.prop("volume", getVolumeLevel());
node.on('volumechange', function(event) {
setVolumeLevel(event.target.volume);
$("video,audio").prop("volume", getVolumeLevel());
});
}
/**
* Add all scripts than need to work on post, when the post is added to the
* document.
*/
function addScriptsToPost(post) {
addRefLinkPreview(post[0]);
highlightCode(post);
processVolumeUser(post.find("video,audio"));
}
neko259
xs
r54 $( document ).ready(function() {
neko259
Hide email form row by the JS code.
r653 hideEmailFromForm();
neko259
xs
r54 $("a[href='#top']").click(function() {
$("html, body").animate({ scrollTop: 0 }, "slow");
return false;
});
neko259
Added js popup for image viewing.
r63
neko259
Fixed image preview script which was accidentally disabled during testing.
r270 addImgPreview();
neko259
Removed reply popups as too buggy for using as they are now.
r272
neko259
Added post preview popups
r352 addRefLinkPreview();
neko259
Added js code highlight
r703
neko259
Run js highlight on the new posts only, not on all page each time. Add...
r709 highlightCode($(document));
neko259
Added favorite thread popup
r1340
initFavPanel();
neko259
Save video and audio volume level
r1432
var volumeUsers = $("video,audio");
processVolumeUser(volumeUsers);
rt@lightning
add mark panel
r228 });