##// END OF EJS Templates
Removed obsolete TODOs
Removed obsolete TODOs

File last commit:

r1289:15cdb526 default
r1509:de632619 decentral
Show More
thread.js
109 lines | 3.2 KiB | application/javascript | JavascriptLexer
neko259
Added copyright to the JS code.
r332 /*
@licstart The following is the entire license notice for the
JavaScript code in this page.
Copyright (C) 2013 neko259
The JavaScript code in this page is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this page.
*/
neko259
Second clik on the "reply" button in thread closes the form
r1108 var CLOSE_BUTTON = '#form-close-button';
neko259
Show id of the post you reply to in the form title
r1289 var REPLY_TO_MSG = '.reply-to-message';
var REPLY_TO_MSG_ID = '#reply-to-message-id';
neko259
Removed compact form
r970 var $html = $("html, body");
Pavel Ryapolov
Move cursor to the text area end after replying.
r106 function moveCaretToEnd(el) {
if (typeof el.selectionStart == "number") {
el.selectionStart = el.selectionEnd = el.value.length;
} else if (typeof el.createTextRange != "undefined") {
el.focus();
var range = el.createTextRange();
range.collapse(false);
range.select();
}
}
neko259
Close form by default, open it under the post that is replied
r1056 function getForm() {
return $('.post-form-w');
}
neko259
Changed closeForm to resetFormPosition in JS because the form isn't closed any...
r1059 function resetFormPosition() {
neko259
Close form by default, open it under the post that is replied
r1056 var form = getForm();
form.insertAfter($('.thread'));
neko259
Second clik on the "reply" button in thread closes the form
r1108
$(CLOSE_BUTTON).hide();
neko259
Show id of the post you reply to in the form title
r1289 $(REPLY_TO_MSG).hide();
neko259
Second clik on the "reply" button in thread closes the form
r1108 }
function showFormAfter(blockToInsertAfter) {
var form = getForm();
form.insertAfter(blockToInsertAfter);
$(CLOSE_BUTTON).show();
form.show();
neko259
Show id of the post you reply to in the form title
r1289 $(REPLY_TO_MSG_ID).text(blockToInsertAfter.attr('id'));
$(REPLY_TO_MSG).show();
neko259
Close form by default, open it under the post that is replied
r1056 }
neko259
Added links to reply a post in the thread view. Removed quote paddings in white theme.
r97 function addQuickReply(postId) {
neko259
Second clik on the "reply" button in thread closes the form
r1108 // If we click "reply" on the same post, it means "cancel"
if (getForm().prev().attr('id') == postId) {
resetFormPosition();
} else {
var postLinkRaw = '[post]' + postId + '[/post]'
neko259
JS formatting panel refactoring
r1084
neko259
Second clik on the "reply" button in thread closes the form
r1108 var textToAdd = '';
var blockToInsert = null;
neko259
Close form by default, open it under the post that is replied
r1056
neko259
Second clik on the "reply" button in thread closes the form
r1108 var textAreaJq = $('textarea');
neko259
JS formatting panel refactoring
r1084
neko259
Second clik on the "reply" button in thread closes the form
r1108 if (postId != null) {
var post = $('#' + postId);
neko259
Close form by default, open it under the post that is replied
r1056
neko259
Second clik on the "reply" button in thread closes the form
r1108 // If this is not OP, add reflink to the post. If there already is
// the same reflink, don't add it again.
if (!post.is(':first-child') && textAreaJq.val().indexOf(postLinkRaw) < 0) {
textToAdd += postLinkRaw + '\n';
}
blockToInsert = post;
} else {
blockToInsert = $('.thread');
neko259
Close form by default, open it under the post that is replied
r1056 }
neko259
Second clik on the "reply" button in thread closes the form
r1108 var selection = window.getSelection().toString();
if (selection.length > 0) {
textToAdd += '[quote]' + selection + '[/quote]\n';
}
neko259
Close form by default, open it under the post that is replied
r1056
neko259
Second clik on the "reply" button in thread closes the form
r1108 textAreaJq.val(textAreaJq.val()+ textToAdd);
neko259
Adding selected text to the reply
r629
neko259
Second clik on the "reply" button in thread closes the form
r1108 showFormAfter(blockToInsert);
neko259
Added links to reply a post in the thread view. Removed quote paddings in white theme.
r97
neko259
Second clik on the "reply" button in thread closes the form
r1108 textAreaJq.focus();
var textarea = document.getElementsByTagName('textarea')[0];
moveCaretToEnd(textarea);
}
neko259
Added links to reply a post in the thread view. Removed quote paddings in white theme.
r97 }
neko259
Hide form by default, open it on title click
r671
neko259
Scroll to bottom when the form mode changes
r686 function scrollToBottom() {
neko259
Removed compact form
r970 $html.animate({scrollTop: $html.height()}, "fast");
neko259
Close form by default, open it under the post that is replied
r1056 }
neko259
Second clik on the "reply" button in thread closes the form
r1108