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'));