diff --git a/js/ajax.js b/js/ajax.js index 4501cef2..61d83df2 100644 --- a/js/ajax.js +++ b/js/ajax.js @@ -107,6 +107,7 @@ $(window).ready(function() { }, 'html'); } $(form).find('input[type="submit"]').val(_('Posted...')); + $(document).trigger("ajax_after_post", post_response); } else { alert(_('An unknown error occured when posting!')); $(form).find('input[type="submit"]').val(submit_txt); diff --git a/js/options/user-css.js b/js/options/user-css.js index a6b2d137..840bcd1f 100644 --- a/js/options/user-css.js +++ b/js/options/user-css.js @@ -43,7 +43,7 @@ var apply_css = function() { var update_textarea = function() { if (!localStorage.user_css) { textarea.text("/* "+_("Enter here your own CSS rules...")+" */\n" + - "/* "+_("If you want to make a redistributable style, be sure to\n have a Yotsuba B theme selected.")+" */\n" + + "/* "+_("If you want to make a redistributable style, be sure to\nhave a Yotsuba B theme selected.")+" */\n" + "/* "+_("You can include CSS files from remote servers, for example:")+" */\n" + '@import "http://example.com/style.css";'); } diff --git a/js/options/user-js.js b/js/options/user-js.js index 240e7b95..0b7d140f 100644 --- a/js/options/user-js.js +++ b/js/options/user-js.js @@ -52,7 +52,7 @@ var apply_js = function() { var update_textarea = function() { if (!localStorage.user_js) { textarea.text("/* "+_("Enter here your own Javascript code...")+" */\n" + - "/* "+_("Have a backup of your storage somewhere, as messing here\n may render you this website unusable.")+" */\n" + + "/* "+_("Have a backup of your storage somewhere, as messing here\nmay render you this website unusable.")+" */\n" + "/* "+_("You can include JS files from remote servers, for example:")+" */\n" + 'load_js("http://example.com/script.js");'); } diff --git a/js/show-own-posts.js b/js/show-own-posts.js new file mode 100644 index 00000000..5ba8bf45 --- /dev/null +++ b/js/show-own-posts.js @@ -0,0 +1,87 @@ +/* + * show-own-posts.js + * https://github.com/savetheinternet/Tinyboard/blob/master/js/show-op.js + * + * Adds "(You)" to a name field when the post is yours. Update references as well. + * + * Released under the MIT license + * Copyright (c) 2014 Marcin Ɓabanowski + * + * Usage: + * $config['additional_javascript'][] = 'js/jquery.min.js'; + * $config['additional_javascript'][] = 'js/show-own-posts.js'; + * + */ + + ++function(){ + + +var update_own = function() { + if ($(this).is('.you')) return; + + var thread = $(this).parents('[id^="thread_"]').first(); + if (!thread.length) { + thread = $(this); + } + + var board = thread.attr('data-board'); + var posts = JSON.parse(localStorage.own_posts || '{}'); + + var id = $(this).attr('id').split('_')[1]; + + console.log([board, id, posts]); + + if (posts[board] && posts[board].indexOf(id) !== -1) { // Own post! + $(this).addClass('you'); + $(this).find('span.name').first().append(' '+_('(You)')); + } + + // Update references + $(this).find('div.body:first a:not([rel="nofollow"])').each(function() { + var postID; + + if(postID = $(this).text().match(/^>>(\d+)$/)) + postID = postID[1]; + else + return; + + if (posts[board].indexOf(postID) !== -1) { + $(this).after(' '+_('(You)')+''); + } + }); +}; + +var update_all = function() { + $('div[id^="thread_"], div.post.reply').each(update_own); +}; + +var board = null; + +$(function() { + board = $('input[name="board"]').first().val(); + + update_all(); +}); + +$(document).on('ajax_after_post', function(e, r) { + var posts = JSON.parse(localStorage.own_posts || '{}'); + posts[board] = posts[board] || []; + posts[board].push(r.id); + localStorage.own_posts = JSON.stringify(posts); +}); + +$(document).on('new_post', function(e,post) { + var $post = $(post); + if ($post.is('div.post.reply')) { // it's a reply + $post.each(update_own); + } + else { + $post.each(update_own); // first OP + $post.find('div.post.reply').each(update_own); // then replies + } +}); + + + +}(); diff --git a/stylesheets/style.css b/stylesheets/style.css index 54823b2b..1daded81 100644 --- a/stylesheets/style.css +++ b/stylesheets/style.css @@ -822,6 +822,10 @@ div.thread:hover { height: 300px; } +#options_div textarea { + max-width: 100%; +} + #options_close { top: 0px; right: 0px;