summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorCzterooki <czterooki1337@gmail.com>2013-07-20 18:28:57 -0400
committerCzterooki <czterooki1337@gmail.com>2013-07-20 18:28:57 -0400
commitbc1bc9f6ef08d778b7218e86ea00f43c1d9bce81 (patch)
tree104fcb30ac68a0f76c0aec37fb01ff65c409f927 /js
parentca5283abaddb6014bc6075ea9fbf3a8daa19f2cc (diff)
parentd31be1958de76e5cabc14ddd410287055b6dac0c (diff)
Merge branch 'master' of github.com:vichan-devel/Tinyboard
Diffstat (limited to 'js')
-rw-r--r--js/quote-selection.js24
-rw-r--r--js/youtube.js43
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);
+ });
+});
+