Options dependency fix.

This commit is contained in:
Alexey Skobkin 2014-04-04 01:48:37 +04:00
parent 13c6f9c614
commit 5afe90a990

View file

@ -5,35 +5,38 @@ $(document).ready(function() {
// Loading options // Loading options
chrome.storage.sync.get(ppOptions, function(options) { chrome.storage.sync.get(ppOptions, function(options) {
// Fancybox // Fancybox
// Images if (options.option_fancybox == true) {
if (options.option_fancybox_images == true) { // Images
// Linking images in posts to the galleries if (options.option_fancybox_images == true) {
$('.post-content .text').each(function(idxPost){ // Linking images in posts to the galleries
$(this).find('a.postimg:not(.youtube)').attr('rel', 'post' + idxPost); $('.post-content .text').each(function(idxPost){
}); $(this).find('a.postimg:not(.youtube)').attr('rel', 'post' + idxPost);
// Init fancybox });
$('.postimg:not(.youtube)').fancybox(); // Init fancybox
} $('.postimg:not(.youtube)').fancybox();
// Videos }
if (options.option_fancybox_videos == true) { // Videos
$('.postimg.youtube').addClass('fancybox-media').fancybox({ if (options.option_fancybox_videos == true) {
helpers: { $('.postimg.youtube').addClass('fancybox-media').fancybox({
media: { helpers: {
youtube: { media: {
params: { youtube: {
autoplay: 1 params: {
autoplay: 1
}
} }
} }
} }
} });
}); }
} // Posts
// Posts if (options.option_fancybox_posts == true) {
if (options.option_fancybox_posts == true) { $('.post-id a').attr('data-fancybox-type', 'iframe').fancybox({
$('.post-id a').attr('data-fancybox-type', 'iframe').fancybox({ maxWidth: 780
maxWidth: 780 });
}); }
} }
// Hotkeys // Hotkeys
// Send by CTRL+Enter // Send by CTRL+Enter
if (options.option_ctrl_enter == true) { if (options.option_ctrl_enter == true) {
@ -104,109 +107,112 @@ $(document).ready(function() {
}); });
} }
// WebSocket // WebSocket
// Comments if (options.option_ws == true) {
if (options.option_ws_comments == true) { // Comments
// If we are in the post page if (options.option_ws_comments == true) {
if ($('#top-post').length > 0) { // If we are in the post page
if ($('#top-post').length > 0) {
// Comments view mode // Comments view mode
treeSwitch = $('#tree-switch a.active').attr('href'); treeSwitch = $('#tree-switch a.active').attr('href');
// WS connection // WS connection
console.log('Starting WebSocket connection'); console.log('Starting WebSocket connection');
ws = new WebSocket('wss://point.im/ws'); ws = new WebSocket('wss://point.im/ws');
// Message handler // Message handler
ws.onmessage = function(evt) { ws.onmessage = function(evt) {
try { try {
// ping :) // ping :)
if (evt.data == 'ping') { if (evt.data == 'ping') {
console.log('WS ping received'); console.log('WS ping received');
} else { } else {
var wsMessage = JSON.parse(evt.data); var wsMessage = JSON.parse(evt.data);
console.log(wsMessage); console.log(wsMessage);
// Post id // Post id
var postId = $('#top-post').attr('data-id'); var postId = $('#top-post').attr('data-id');
// If this is a comment for this post // If this is a comment for this post
if ((wsMessage.a == 'comment') && (wsMessage.post_id == postId)) { if ((wsMessage.a == 'comment') && (wsMessage.post_id == postId)) {
var $anchor = $('<a>').attr('name', wsMessage.comment_id); var $anchor = $('<a>').attr('name', wsMessage.comment_id);
// Initializing comment element // Initializing comment element
var $commentTemplate = $('<div>').attr({ var $commentTemplate = $('<div>').attr({
'class': 'post', 'class': 'post',
'data-id': postId, 'data-id': postId,
'data-comment-id': wsMessage.comment_id 'data-comment-id': wsMessage.comment_id
}); });
console.log(chrome.extension.getURL('includes/comment.html')); console.log(chrome.extension.getURL('includes/comment.html'));
// Loading HTML template // Loading HTML template
$commentTemplate.load(chrome.extension.getURL('includes/comment.html'), function() { $commentTemplate.load(chrome.extension.getURL('includes/comment.html'), function() {
// Load complete // Load complete
console.log('comment.html loaded'); console.log('comment.html loaded');
// Date and time of comment // Date and time of comment
var date = new Date(); var date = new Date();
// Data for template // Data for template
var userLink = location.protocol + '//' + wsMessage.author + '.point.im/'; var userLink = location.protocol + '//' + wsMessage.author + '.point.im/';
var postAuthorLink = $('#top-post .info a').attr('href'); var postAuthorLink = $('#top-post .info a').attr('href');
var postLink = postAuthorLink + wsMessage.post_id; var postLink = postAuthorLink + wsMessage.post_id;
var userAvatar = location.protocol + '//point.im/avatar/' + wsMessage.author; var userAvatar = location.protocol + '//point.im/avatar/' + wsMessage.author;
var commentLink = location.protocol + '//point.im/' + wsMessage.post_id + '#' + wsMessage.comment_id; var commentLink = location.protocol + '//point.im/' + wsMessage.post_id + '#' + wsMessage.comment_id;
var csRfToken = $('.reply-form input[name="csrf_token"').val(); var csRfToken = $('.reply-form input[name="csrf_token"').val();
// Filling template // Filling template
console.log('Changing data in the comment element'); console.log('Changing data in the comment element');
// Date and time // Date and time
$commentTemplate.find('.info .created') $commentTemplate.find('.info .created')
.append($('<span>').html(((date.getDate().toString.length < 2) ? ('0' + date.getDate().toString()) : (date.getDate().toString())) + '&nbsp;' + months[date.getMonth()])) .append($('<span>').html(((date.getDate().toString.length < 2) ? ('0' + date.getDate().toString()) : (date.getDate().toString())) + '&nbsp;' + months[date.getMonth()]))
// Crutchy fix // Crutchy fix
.append($('<br>')) .append($('<br>'))
///Crutchy fix ///Crutchy fix
.append($('<span>').html(date.getHours() + ':' + ((date.getMinutes().toString().length < 2) ? ('0' + date.getMinutes().toString()) : (date.getMinutes().toString())))); .append($('<span>').html(date.getHours() + ':' + ((date.getMinutes().toString().length < 2) ? ('0' + date.getMinutes().toString()) : (date.getMinutes().toString()))));
// Comment text // Comment text
$commentTemplate.find('.text').append($('<p>').html(escapeHtml(wsMessage.text))); $commentTemplate.find('.text').append($('<p>').html(escapeHtml(wsMessage.text)));
// Author // Author
$commentTemplate.find('.author a.user').attr('href', userLink).html(wsMessage.author); $commentTemplate.find('.author a.user').attr('href', userLink).html(wsMessage.author);
// Avatar and link // Avatar and link
$commentTemplate.find('.info a').attr('href', userLink).children('img.avatar').attr('src', userAvatar + '/24'); $commentTemplate.find('.info a').attr('href', userLink).children('img.avatar').attr('src', userAvatar + '/24');
// Post and comment ID's link // Post and comment ID's link
$commentTemplate.find('.clearfix .post-id a').attr('href', commentLink).html('#' + wsMessage.post_id + '/' + wsMessage.comment_id) $commentTemplate.find('.clearfix .post-id a').attr('href', commentLink).html('#' + wsMessage.post_id + '/' + wsMessage.comment_id)
// Adding answer label // Adding answer label
.after((wsMessage.to_comment_id !== null) ? (' в ответ на <a href="#' + wsMessage.to_comment_id + '">/' + wsMessage.to_comment_id + '</a>') : ('')); .after((wsMessage.to_comment_id !== null) ? (' в ответ на <a href="#' + wsMessage.to_comment_id + '">/' + wsMessage.to_comment_id + '</a>') : (''));
// Setting action labels and other attributes // Setting action labels and other attributes
$commentTemplate.find('.action-labels .reply-label').attr('for', 'reply-' + wsMessage.post_id + '_' + wsMessage.comment_id); $commentTemplate.find('.action-labels .reply-label').attr('for', 'reply-' + wsMessage.post_id + '_' + wsMessage.comment_id);
$commentTemplate.find('.action-labels .more-label').attr('for', 'action-' + wsMessage.post_id + '_' + wsMessage.comment_id); $commentTemplate.find('.action-labels .more-label').attr('for', 'action-' + wsMessage.post_id + '_' + wsMessage.comment_id);
$commentTemplate.find('.post-content input[name="action-radio"]').attr('id', 'action-' + wsMessage.post_id + '_' + wsMessage.comment_id); $commentTemplate.find('.post-content input[name="action-radio"]').attr('id', 'action-' + wsMessage.post_id + '_' + wsMessage.comment_id);
// Bookmark link // Bookmark link
$commentTemplate.find('.action-buttons a.bookmark').attr('href', postLink + '/b?comment_id=' + wsMessage.comment_id + '&csrf_token=' + csRfToken); $commentTemplate.find('.action-buttons a.bookmark').attr('href', postLink + '/b?comment_id=' + wsMessage.comment_id + '&csrf_token=' + csRfToken);
// Reply form // Reply form
$commentTemplate.find('.post-content input.reply-radio').attr('id', 'reply-' + wsMessage.post_id + '_' + wsMessage.comment_id); $commentTemplate.find('.post-content input.reply-radio').attr('id', 'reply-' + wsMessage.post_id + '_' + wsMessage.comment_id);
$commentTemplate.find('.post-content form.reply-form').attr('action', '/' + wsMessage.post_id); $commentTemplate.find('.post-content form.reply-form').attr('action', '/' + wsMessage.post_id);
$commentTemplate.find('.post-content form.reply-form textarea[name="text"]').html('@' + wsMessage.author + ', '); $commentTemplate.find('.post-content form.reply-form textarea[name="text"]').html('@' + wsMessage.author + ', ');
$commentTemplate.find('.post-content form.reply-form input[name="comment_id"]').val(wsMessage.comment_id); $commentTemplate.find('.post-content form.reply-form input[name="comment_id"]').val(wsMessage.comment_id);
$commentTemplate.find('.post-content form.reply-form input[name="csrf_token"]').val(csRfToken); $commentTemplate.find('.post-content form.reply-form input[name="csrf_token"]').val(csRfToken);
///Filling template ///Filling template
console.log('Inserting new comment into the DOM'); console.log('Inserting new comment into the DOM');
// Insert new comment in the list // Insert new comment in the list
$('.content-wrap #comments #post-reply').before($commentTemplate.hide().fadeIn(2000).css('background-color', '#FFFFBB')); $('.content-wrap #comments #post-reply').before($commentTemplate.hide().fadeIn(2000).css('background-color', '#FFFFBB'));
// Adding anchor // Adding anchor
$commentTemplate.before($anchor); $commentTemplate.before($anchor);
}); });
}
} }
} } catch(e) {
} catch(e) { console.log('WebSocket exception:')
console.log('WebSocket exception:') console.log(e);
console.log(e); console.log(evt.data);
console.log(evt.data); };
}; };
}; } else {
} else {
}
} }
} }
}); });
// Showing page action // Showing page action