rng.modules.data = function(sandbox) {\r
\r
- var document = sandbox.getBootstrappedData().document;\r
+ var doc = sandbox.getBootstrappedData().document;\r
+ var document_id = sandbox.getBootstrappedData().document_id;\r
\r
+ function readCookie(name) {\r
+ var nameEQ = escape(name) + "=";\r
+ var ca = document.cookie.split(';');\r
+ for (var i = 0; i < ca.length; i++) {\r
+ var c = ca[i];\r
+ while (c.charAt(0) == ' ') c = c.substring(1, c.length);\r
+ if (c.indexOf(nameEQ) == 0) return unescape(c.substring(nameEQ.length, c.length));\r
+ }\r
+ return null;\r
+ }\r
+ \r
+ $.ajaxSetup({\r
+ crossDomain: false,\r
+ beforeSend: function(xhr, settings) {\r
+ if (!(/^(GET|HEAD|OPTIONS|TRACE)$/.test(settings.type))) {\r
+ xhr.setRequestHeader("X-CSRFToken", readCookie('csrftoken'));\r
+ }\r
+ }\r
+ });\r
+ \r
return {\r
start: function() {\r
sandbox.publish('ready');\r
},\r
getDocument: function() {\r
- return document;\r
+ return doc;\r
},\r
commitDocument: function(newDocument, reason) {\r
- document = newDocument;\r
- sandbox.publish('documentChanged', document, reason);\r
+ doc = newDocument;\r
+ sandbox.publish('documentChanged', doc, reason);\r
+ },\r
+ saveDocument: function() {\r
+ $.ajax({\r
+ method: 'post',\r
+ url: '/editor/' + document_id,\r
+ data: JSON.stringify({document:doc})\r
+ });\r
}\r
\r
}\r