1. Gustavo Picon
  2. django-treebeard
Issue #41 resolved

Drag&drop failure

czare1
created an issue

Drag and drop option in admin does not work due to csrf token missing.

Comments (4)

  1. Anonymous

    This can be solved using django doc trick from http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax : adding the following code to treebeard/static/treebeard/treebeard-admin.js does it :

    $('html').ajaxSend(function(event, xhr, settings) {
        function getCookie(name) {
            var cookieValue = null;
            if (document.cookie && document.cookie != '') {
                var cookies = document.cookie.split(';');
                for (var i = 0; i < cookies.length; i++) {
                    var cookie = jQuery.trim(cookies[i]);
                    // Does this cookie string begin with the name we want?
                    if (cookie.substring(0, name.length + 1) == (name + '=')) {
                        cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                        break;
                    }
                }
            }
            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'));
        }
    });
    
  2. Log in to comment