diff options
| author | Simon McFarlane <simon@piston.pw> | 2015-06-01 16:08:19 -0700 |
|---|---|---|
| committer | Simon McFarlane <simon@piston.pw> | 2015-06-01 16:08:19 -0700 |
| commit | 209bc5400144e448e95a68e01d842c6fab53ae71 (patch) | |
| tree | ab4cc6ad241e8daccb546514330d3a5f2906e846 /js/id_highlighter.js | |
| parent | d1c1e5a589f30d640f5eb6303e7059105a6297f8 (diff) | |
| parent | 7ab9cc43d101ed002bce392beefe1c435ab2d5b1 (diff) | |
Merge pull request #18 from lainchan/vichan-merge
Merge with the latest upstream vichan
Diffstat (limited to 'js/id_highlighter.js')
| -rw-r--r-- | js/id_highlighter.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/js/id_highlighter.js b/js/id_highlighter.js new file mode 100644 index 00000000..d0a5fabf --- /dev/null +++ b/js/id_highlighter.js @@ -0,0 +1,50 @@ +if (active_page == 'thread' || active_page == 'index') { + $(document).ready(function(){ + function arrayRemove(a, v) { a.splice(a.indexOf(v) == -1 ? a.length : a.indexOf(v), 1); } + + var idshighlighted = []; + + function getPostsById(id){ + return $(".poster_id").filter(function(i){ + return $(this).text() == id; + }); + } + + function getMasterPosts(parents){ + if(!parents.hasClass("post")) return; + + var toRet = []; + + $(parents).each(function(){ + if($(this).hasClass("post")) + toRet.push($(this)); + }); + + return toRet; + } + + var id_highlighter = function(){ + var id = $(this).text(); + + if($.inArray(id, idshighlighted) !== -1){ + arrayRemove(idshighlighted, id); + + $(getMasterPosts(getPostsById(id).parents())).each(function(i){ + $(this).removeClass("highlighted"); + }); + }else{ + idshighlighted.push(id); + + $(getMasterPosts(getPostsById(id).parents())).each(function(i){ + $(this).addClass("highlighted"); + }); + } + } + + $(".poster_id").on('click', id_highlighter); + + $(document).on('new_post', function(e, post) { + $(post).find('.poster_id').on('click', id_highlighter); + }); + }); +} |
