##// END OF EJS Templates
Unified getting post title or text part if there is no title
Unified getting post title or text part if there is no title

File last commit:

r1289:15cdb526 default
r1358:88eb479d default
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