diff options
| author | Czterooki <czterooki1337@gmail.com> | 2013-07-20 18:28:57 -0400 |
|---|---|---|
| committer | Czterooki <czterooki1337@gmail.com> | 2013-07-20 18:28:57 -0400 |
| commit | bc1bc9f6ef08d778b7218e86ea00f43c1d9bce81 (patch) | |
| tree | 104fcb30ac68a0f76c0aec37fb01ff65c409f927 /js | |
| parent | ca5283abaddb6014bc6075ea9fbf3a8daa19f2cc (diff) | |
| parent | d31be1958de76e5cabc14ddd410287055b6dac0c (diff) | |
Merge branch 'master' of github.com:vichan-devel/Tinyboard
Diffstat (limited to 'js')
| -rw-r--r-- | js/quote-selection.js | 24 | ||||
| -rw-r--r-- | js/youtube.js | 43 |
2 files changed, 59 insertions, 8 deletions
diff --git a/js/quote-selection.js b/js/quote-selection.js index 0c5b7e7d..0722c0b1 100644 --- a/js/quote-selection.js +++ b/js/quote-selection.js @@ -1,6 +1,9 @@ /* * quote-selection.js * + * This is a little buggy. + * Allows you to quote a post by just selecting some text, then beginning to type. + * * Released under the MIT license * Copyright (c) 2012 Michael Save <savetheinternet@tinyboard.org> * @@ -31,12 +34,15 @@ $(document).ready(function(){ var altKey = false; var ctrlKey = false; + var metaKey = false; $(document).keyup(function(e) { - if (e.altKey) + if (e.keyCode == 18) altKey = false; - else if (e.ctrlKey) + else if (e.keyCode == 17) ctrlKey = false; + else if (e.keyCode == 91) + metaKey = false; }); $(document).keydown(function(e) { @@ -44,9 +50,11 @@ $(document).ready(function(){ altKey = true; else if (e.ctrlKey) ctrlKey = true; + else if (e.metaKey) + metaKey = true; - if (altKey || ctrlKey) { - console.log('CTRL/ALT used. Ignoring'); + if (altKey || ctrlKey || metaKey) { + // console.log('CTRL/ALT/Something used. Ignoring'); return; } @@ -56,20 +64,20 @@ $(document).ready(function(){ var selection = window.getSelection(); var $post = $(selection.anchorNode).parents('.post'); if ($post.length == 0) { - console.log('Start of selection was not post div', $(selection.anchorNode).parent()); + // console.log('Start of selection was not post div', $(selection.anchorNode).parent()); return; } var postID = $post.find('.post_no:eq(1)').text(); if (postID != $(selection.focusNode).parents('.post').find('.post_no:eq(1)').text()) { - console.log('Selection left post div', $(selection.focusNode).parent()); + // console.log('Selection left post div', $(selection.focusNode).parent()); return; } ; var selectedText = selection.toString(); - console.log('Selected text: ' + selectedText.replace(/\n/g, '\\n').replace(/\r/g, '\\r')); + // console.log('Selected text: ' + selectedText.replace(/\n/g, '\\n').replace(/\r/g, '\\r')); if ($('body').hasClass('debug')) alert(selectedText); @@ -86,7 +94,7 @@ $(document).ready(function(){ /* to solve some bugs on weird browsers, we need to replace \r\n with \n and then undo that after */ var quote = (last_quote != postID ? '>>' + postID + '\r\n' : '') + $.trim(selectedText).replace(/\r\n/g, '\n').replace(/^/mg, '>').replace(/\n/g, '\r\n') + '\r\n'; - console.log('Deselecting text'); + // console.log('Deselecting text'); selection.removeAllRanges(); if (document.selection) { diff --git a/js/youtube.js b/js/youtube.js new file mode 100644 index 00000000..f64d4874 --- /dev/null +++ b/js/youtube.js @@ -0,0 +1,43 @@ +/* +* youtube +* https://github.com/savetheinternet/Tinyboard/blob/master/js/youtube.js +* +* Don't load the YouTube player unless the video image is clicked. +* This increases performance issues when many videos are embedded on the same page. +* Currently only compatiable with YouTube. +* +* Proof of concept. +* +* Released under the MIT license +* Copyright (c) 2013 Michael Save <savetheinternet@tinyboard.org> +* +* Usage: +* $config['embedding'] = array(); +* $config['embedding'][0] = array( +* '/^https?:\/\/(\w+\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([a-zA-Z0-9\-_]{10,11})(&.+)?$/i', +* '<div class="video-container" data-video="$2"><a href="$0" target="_blank" class="file"><img style="width:360px;height:270px;" src="//img.youtube.com/vi/$2/0.jpg"/></a></div>' +); +* $config['additional_javascript'][] = 'js/jquery.min.js'; +* $config['additional_javascript'][] = 'js/youtube.js'; +* +*/ + + +onready(function(){ + var do_embed_yt = function(tag) { + $('div.video-container a', tag).click(function() { + var videoID = $(this.parentNode).data('video'); + + $(this.parentNode).html('<iframe style="float:left;margin: 10px 20px" type="text/html" width="360" height="270" src="//www.youtube.com/embed/' + videoID + '?autoplay=1" frameborder="0"/>'); + + return false; + }); + }; + do_embed_yt(document); + + // allow to work with auto-reload.js, etc. + $(document).bind('new_post', function(e, post) { + do_embed_yt(post); + }); +}); + |
