+/**\r
+ * We do not want the CSRF protection enabled for the AJAX post requests, it causes only trouble.\r
+ * Get the csrftoken cookie and pass it to the X-CSRFToken HTTP request property.\r
+ */\r
+\r
+$('html').ajaxSend(function(event, xhr, settings) {\r
+ function getCookie(name) {\r
+ var cookieValue = null;\r
+ if (document.cookie && document.cookie != '') {\r
+ var cookies = document.cookie.split(';');\r
+ for (var i = 0; i < cookies.length; i++) {\r
+ var cookie = jQuery.trim(cookies[i]);\r
+ // Does this cookie string begin with the name we want?\r
+ if (cookie.substring(0, name.length + 1) == (name + '=')) {\r
+ cookieValue = decodeURIComponent(cookie.substring(name.length + 1));\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ return cookieValue;\r
+ }\r
+ if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {\r
+ // Only send the token to relative URLs i.e. locally.\r
+ xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));\r
+ }\r
+});\r
+\r
var response_commands = {\r
refresh_page: function() {\r
window.location.reload(true)\r
},\r
\r
copy_url: function(url) {\r
- $.copy(url);\r
}\r
}\r
\r
yes_callback: default_close_function,\r
no_text: messages.cancel,\r
show_no: false,\r
- close_on_clickoutside: false\r
+ close_on_clickoutside: false,\r
+ copy: false\r
}\r
\r
$.extend(options, extern);\r
\r
+ var copy_id = '';\r
+ if (options.copy) {\r
+ copy_id = ' id="copy_clip_button"'\r
+ }\r
+\r
if (options.event != undefined) {\r
options.pos = {x: options.event.pageX, y: options.event.pageY};\r
}\r
html += '<button class="dialog-no">' + options.no_text + '</button>';\r
}\r
\r
- html += '<button class="dialog-yes">' + options.yes_text + '</button>'\r
- + '</div></div>';\r
+ html += '<button class="dialog-yes"' + copy_id + '>' + options.yes_text + '</button>' + '</div></div>';\r
\r
$dialog = $(html);\r
$('body').append($dialog);\r
process_ajax_response(data, evt);\r
}, 'json');\r
},\r
- show_no: true\r
+ show_no: true,\r
+ copy: false\r
+ }\r
+\r
+ if (el.hasClass('copy')) {\r
+ $.extend(doptions, { yes_text : 'Copy', copy: true});\r
}\r
\r
if (!el.is('.centered')) {\r
}\r
}\r
\r
+var comment_box_cursor_position = 0;\r
+function canned_comment(post_id, comment) {\r
+ textarea = $('#comment-' + post_id + '-form textarea')\r
+\r
+ // Get the text from the beginning to the caret\r
+ textarea_start = textarea.val().substr(0, comment_box_cursor_position)\r
+\r
+ // Get the text from the caret to the end\r
+ textarea_end = textarea.val().substr(comment_box_cursor_position, textarea.val().length)\r
+\r
+ textarea.val(textarea_start + comment + textarea_end);\r
+}\r
+\r
$(function() {\r
+ $('textarea.commentBox').bind('keydown keyup mousedown mouseup mousemove', function(evt) {\r
+ comment_box_cursor_position = $(this).caret().start;\r
+ });\r
+\r
+ $('textarea.commentBox').blur(function() {\r
+ //alert(comment_box_cursor_position);\r
+ });\r
+\r
$('a.ajax-command').live('click', function(evt) {\r
if (running) return false;\r
\r
if ($form.length) {\r
var $textarea = $container.find('textarea');\r
var textarea = $textarea.get(0);\r
- var $csrf = $container.find('[name="csrfmiddlewaretoken"]');\r
var $button = $container.find('.comment-submit');\r
var $cancel = $container.find('.comment-cancel');\r
var $chars_left_message = $container.find('.comments-chars-left-msg');\r
if (running) return false;\r
\r
var post_data = {\r
- comment: $textarea.val(),\r
- csrfmiddlewaretoken: $csrf.val()\r
+ comment: $textarea.val()\r
}\r
\r
if (comment_in_form) {\r
}\r
\r
start_command();\r
- $.post($form.attr('action'), post_data, function(data) {\r
+ $.post($form.attr('action'), $form.serialize(), function(data) {\r
process_ajax_response(data, evt, function(error) {\r
if (!error) {\r
cleanup_form();\r
tag_link.attr('rel','tag');\r
tag_link.attr('href', scriptUrl + $.i18n._('tags/') + tagname + '/');\r
tag_link.html(tagname);\r
- var del_link = $('<img></img>');\r
+ var del_link = $('<img />');\r
del_link.addClass('delete-icon');\r
del_link.attr('src', mediaUrl('media/images/close-small-dark.png'));\r
\r