X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/5a737217111e2ee8734d5770db9ee0ac0d6b0314..d3b0d0f597e0f84246dd755c6de3f29770134b44:/forum/skins/default/media/js/osqa.main.js
diff --git a/forum/skins/default/media/js/osqa.main.js b/forum/skins/default/media/js/osqa.main.js
index 2c72aa1..89a59ef 100644
--- a/forum/skins/default/media/js/osqa.main.js
+++ b/forum/skins/default/media/js/osqa.main.js
@@ -2,6 +2,7 @@
* We do not want the CSRF protection enabled for the AJAX post requests, it causes only trouble.
* Get the csrftoken cookie and pass it to the X-CSRFToken HTTP request property.
*/
+
$('html').ajaxSend(function(event, xhr, settings) {
function getCookie(name) {
var cookieValue = null;
@@ -18,10 +19,12 @@ $('html').ajaxSend(function(event, xhr, settings) {
}
return cookieValue;
}
- if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
- // Only send the token to relative URLs i.e. locally.
- xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
- }
+ try {
+ if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
+ // Only send the token to relative URLs i.e. locally.
+ xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
+ }
+ } catch (e) {}
});
var response_commands = {
@@ -101,7 +104,7 @@ var response_commands = {
alert('ok');
},
- insert_comment: function(post_id, comment_id, comment, username, profile_url, delete_url, edit_url, convert_url, can_convert) {
+ insert_comment: function(post_id, comment_id, comment, username, profile_url, delete_url, edit_url, convert_url, can_convert, show_latest_comments_first) {
var $container = $('#comments-container-' + post_id);
var skeleton = $('#new-comment-skeleton-' + post_id).html().toString();
@@ -112,8 +115,11 @@ var response_commands = {
.replace(new RegExp('%DELETE_URL%', 'g'), delete_url)
.replace(new RegExp('%EDIT_URL%', 'g'), edit_url)
.replace(new RegExp('%CONVERT_URL%', 'g'), convert_url);
-
- $container.append(skeleton);
+ if (show_latest_comments_first) {
+ $container.prepend(skeleton);
+ } else {
+ $container.append(skeleton);
+ }
// Show the convert comment to answer tool only if the current comment can be converted
if (can_convert == true) {
@@ -159,7 +165,6 @@ var response_commands = {
},
copy_url: function(url) {
- $.copy(url);
}
}
@@ -181,11 +186,17 @@ function show_dialog (extern) {
yes_callback: default_close_function,
no_text: messages.cancel,
show_no: false,
- close_on_clickoutside: false
+ close_on_clickoutside: false,
+ copy: false
}
$.extend(options, extern);
+ var copy_id = '';
+ if (options.copy) {
+ copy_id = ' id="copy_clip_button"'
+ }
+
if (options.event != undefined) {
options.pos = {x: options.event.pageX, y: options.event.pageY};
}
@@ -197,8 +208,7 @@ function show_dialog (extern) {
html += '';
}
- html += ''
- + '';
+ html += '' + '';
$dialog = $(html);
$('body').append($dialog);
@@ -304,7 +314,12 @@ function load_prompt(evt, el, url) {
process_ajax_response(data, evt);
}, 'json');
},
- show_no: true
+ show_no: true,
+ copy: false
+ }
+
+ if (el.hasClass('copy')) {
+ $.extend(doptions, { yes_text : 'Copy', copy: true});
}
if (!el.is('.centered')) {
@@ -319,7 +334,8 @@ function process_ajax_response(data, evt, callback) {
if (!data.success && data['error_message'] != undefined) {
show_message(evt, data.error_message, function() {if (callback) callback(true);});
end_command(false);
- } else if (typeof data['commands'] != undefined){
+ }
+ if (typeof data['commands'] != undefined){
for (var command in data.commands) {
response_commands[command].apply(null, data.commands[command])
@@ -355,7 +371,28 @@ function end_command(success) {
}
}
+var comment_box_cursor_position = 0;
+function canned_comment(post_id, comment) {
+ textarea = $('#comment-' + post_id + '-form textarea')
+
+ // Get the text from the beginning to the caret
+ textarea_start = textarea.val().substr(0, comment_box_cursor_position)
+
+ // Get the text from the caret to the end
+ textarea_end = textarea.val().substr(comment_box_cursor_position, textarea.val().length)
+
+ textarea.val(textarea_start + comment + textarea_end);
+}
+
$(function() {
+ $('textarea.commentBox').bind('keydown keyup mousedown mouseup mousemove', function(evt) {
+ comment_box_cursor_position = $(this).caret().start;
+ });
+
+ $('textarea.commentBox').blur(function() {
+ //alert(comment_box_cursor_position);
+ });
+
$('a.ajax-command').live('click', function(evt) {
if (running) return false;
@@ -576,6 +613,14 @@ $(function() {
return false;
});
+ // Submit comment with CTRL + Enter
+ $textarea.keydown(function(e) {
+ if (e.ctrlKey && e.keyCode == 13 && !$button.attr('disabled')) {
+ // console.log('submit');
+ $(this).parent().find('input.comment-submit').click();
+ }
+ });
+
$cancel.click(function(event) {
if (confirm("You will lose all of your changes in this comment. Do you still wish to proceed?")){
if (comment_in_form) {
@@ -719,7 +764,7 @@ function pickedTags(){
tag_link.attr('rel','tag');
tag_link.attr('href', scriptUrl + $.i18n._('tags/') + tagname + '/');
tag_link.html(tagname);
- var del_link = $('
');
+ var del_link = $('
');
del_link.addClass('delete-icon');
del_link.attr('src', mediaUrl('media/images/close-small-dark.png'));