Browse Source

p.body changed to div.body

pull/40/head
Michael Save 12 years ago
parent
commit
9fbf24dca5
  1. 4
      js/post-hover.js
  2. 2
      js/quick-post-controls.js
  3. 116
      js/quote-selection.js
  4. 2
      js/show-backlinks.js
  5. 2
      js/show-op.js

4
js/post-hover.js

@ -109,11 +109,11 @@ onready(function(){
}); });
}; };
$('p.body a:not([rel="nofollow"])').each(init_hover); $('div.body a:not([rel="nofollow"])').each(init_hover);
// allow to work with auto-reload.js, etc. // allow to work with auto-reload.js, etc.
$(document).bind('new_post', function(e, post) { $(document).bind('new_post', function(e, post) {
$(post).find('p.body a:not([rel="nofollow"])').each(init_hover); $(post).find('div.body a:not([rel="nofollow"])').each(init_hover);
}); });
}); });

2
js/quick-post-controls.js

@ -58,7 +58,7 @@ $(document).ready(function(){
post_form.find('input[type="password"]').val(localStorage.password); post_form.find('input[type="password"]').val(localStorage.password);
if(thread) { if(thread) {
post_form.prependTo($(this).parent().parent().find('p.body')); post_form.prependTo($(this).parent().parent().find('div.body'));
} else { } else {
post_form.appendTo($(this).parent().parent()); post_form.appendTo($(this).parent().parent());
//post_form.insertBefore($(this)); //post_form.insertBefore($(this));

116
js/quote-selection.js

@ -0,0 +1,116 @@
/*
* quote-selection.js
*
* Released under the MIT license
* Copyright (c) 2012 Michael Save <savetheinternet@tinyboard.org>
*
* Usage:
* $config['additional_javascript'][] = 'js/jquery.min.js';
* $config['additional_javascript'][] = 'js/quote-selection.js';
*
*/
$(document).ready(function(){
if (!window.getSelection)
return;
$.fn.selectRange = function(start, end) {
return this.each(function() {
if (this.setSelectionRange) {
this.focus();
this.setSelectionRange(start, end);
} else if (this.createTextRange) {
var range = this.createTextRange();
range.collapse(true);
range.moveEnd('character', end);
range.moveStart('character', start);
range.select();
}
});
};
var altKey = false;
var ctrlKey = false;
$(document).keyup(function(e) {
if (e.altKey)
altKey = false;
else if (e.ctrlKey)
ctrlKey = false;
});
$(document).keydown(function(e) {
if (e.altKey)
altKey = true;
else if (e.ctrlKey)
ctrlKey = true;
if (altKey || ctrlKey) {
console.log('CTRL/ALT used. Ignoring');
return;
}
if (e.keyCode < 48 || e.keyCode > 90)
return;
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());
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());
return;
}
;
var selectedText = selection.toString();
console.log('Selected text: ' + selectedText.replace(/\n/g, '\\n').replace(/\r/g, '\\r'));
if ($('body').hasClass('debug'))
alert(selectedText);
if (selectedText.length == 0)
return;
var body = $('textarea#body')[0];
var last_quote = body.value.match(/[\S.]*(^|[\S\s]*)>>(\d+)/);
if (last_quote)
last_quote = last_quote[2];
/* 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');
selection.removeAllRanges();
if (document.selection) {
// IE
body.focus();
var sel = document.selection.createRange();
sel.text = quote;
body.focus();
} else if (body.selectionStart || body.selectionStart == '0') {
// Mozilla
var start = body.selectionStart;
var end = body.selectionEnd;
if (!body.value.substring(0, start).match(/(^|\n)$/)) {
quote = '\r\n\r\n' + quote;
}
body.value = body.value.substring(0, start) + quote + body.value.substring(end, body.value.length);
$(body).selectRange(start + quote.length, start + quote.length);
} else {
// ???
body.value += quote;
body.focus();
}
});
});

2
js/show-backlinks.js

@ -16,7 +16,7 @@ onready(function(){
var showBackLinks = function() { var showBackLinks = function() {
var reply_id = $(this).attr('id').replace(/^reply_/, ''); var reply_id = $(this).attr('id').replace(/^reply_/, '');
$(this).find('p.body a:not([rel="nofollow"])').each(function() { $(this).find('div.body a:not([rel="nofollow"])').each(function() {
var id, post, $mentioned; var id, post, $mentioned;
if(id = $(this).text().match(/^>>(\d+)$/)) if(id = $(this).text().match(/^>>(\d+)$/))

2
js/show-op.js

@ -23,7 +23,7 @@ $(document).ready(function(){
OP = $('div.post.op a.post_no:eq(1)').text(); OP = $('div.post.op a.post_no:eq(1)').text();
} }
$(this).find('p.body a:not([rel="nofollow"])').each(function() { $(this).find('div.body a:not([rel="nofollow"])').each(function() {
var postID; var postID;
if(postID = $(this).text().match(/^>>(\d+)$/)) if(postID = $(this).text().match(/^>>(\d+)$/))

Loading…
Cancel
Save