src/cm/media/js/site/layout/base.js
author Production Moz <dev@sopinspace.com>
Sat, 19 May 2012 10:21:54 +0200
changeset 438 fcc5e2f0befd
parent 341 053551f213fb
child 439 8994d24e4b2f
permissions -rw-r--r--
Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
// this == dom element
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
onFadeEnd = function () {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
     3
  $(this).remove() ;
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
} ;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
_enqueueMsg = function(msg, cls, remainVisibleTime) {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
     7
  var m = $('<span>' + msg + '</span>').addClass("f-msg-cls").addClass(cls).appendTo("#t-msg-wrapper") ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
     8
  if (remainVisibleTime)
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
     9
    m.parent().animate({'opacity':.95}, remainVisibleTime).fadeOut(2000, onFadeEnd) ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    10
  return m ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    11
  
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
enqueueMsg = function(msg) {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    15
  var cls = "f-msg" ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    16
  var remainVisibleTime = 2000 ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    17
  _enqueueMsg(msg, cls, remainVisibleTime) ;  
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
enqueueErrorMsg = function(msg) {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    21
  var cls = "f-msg-e" ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    22
  var remainVisibleTime = 4000 ;
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    23
  _enqueueMsg(msg, cls, remainVisibleTime) ;  
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
setCookie = function(name, value) {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    27
  var cookieExpire = new Date();
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    28
  cookieExpire.setFullYear(2100, 0, 1);
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    29
  $.cookie(name, value, {
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    30
    'expires' :cookieExpire,
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    31
    'path': '/'
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    32
  });
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
/* utility function to remember form field value into cookie */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
rememberFormField = function(form_id, field_id, cookie_name) {
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    37
  /* value gets fetched from cookie if possible */  
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    38
  $(document).ready(function(){
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    39
    var cookie_val = $.cookie(cookie_name); 
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    40
    if (cookie_val) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    41
      $('#' + form_id + ' #' + field_id)[0].value = cookie_val; 
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    42
    }
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    43
  })
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
341
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    45
  /* value gets saved on submit */
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    46
  $(document).ready(function(){
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    47
    $('#' + form_id + ' input[type=submit]').click(function() {
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    48
      var val = $('#' + form_id + ' #' + field_id)[0].value;
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    49
      if (val) {
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    50
        setCookie(cookie_name, val);
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    51
      }
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    52
      });
053551f213fb Coding style for js: expand tabs
gibus
parents: 0
diff changeset
    53
  })  
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
438
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    56
$.ajaxSetup({ 
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    57
     beforeSend: function(xhr, settings) {
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    58
         function getCookie(name) {
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    59
             var cookieValue = null;
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    60
             if (document.cookie && document.cookie != '') {
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    61
                 var cookies = document.cookie.split(';');
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    62
                 for (var i = 0; i < cookies.length; i++) {
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    63
                     var cookie = jQuery.trim(cookies[i]);
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    64
                     // Does this cookie string begin with the name we want?
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    65
                 if (cookie.substring(0, name.length + 1) == (name + '=')) {
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    66
                     cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    67
                     break;
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    68
                 }
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    69
             }
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    70
         }
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    71
         return cookieValue;
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    72
         }
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    73
         if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    74
             // Only send the token to relative URLs i.e. locally.
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    75
             xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    76
         }
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    77
     } 
fcc5e2f0befd Fix side effects with csrf token, add csrf_token to every post form + add ajax (see http://stackoverflow.com/questions/5100539/django-csrf-check-failing-with-an-ajax-post-request), remove django.middleware.csrf.CsrfViewMiddleware ?!
Production Moz <dev@sopinspace.com>
parents: 341
diff changeset
    78
});