summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorczaks <marcin@6irc.net>2014-10-18 16:36:04 +0200
committerczaks <marcin@6irc.net>2014-10-18 16:36:04 +0200
commit67988221b4f8be6662b5a08f520c4920082f2a35 (patch)
tree120c000ac6852d334c7d17a9c314028f7b11583f /js
parentf9308ff28d0b221ee6044466148894d831ceb01b (diff)
show-own-posts.js initial commit
Diffstat (limited to 'js')
-rw-r--r--js/show-own-posts.js87
1 files changed, 87 insertions, 0 deletions
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 <marcin@6irc.net>
+ *
+ * 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(' <small>'+_('(You)')+'</small>');
+ }
+ });
+};
+
+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
+ }
+});
+
+
+
+}();