Visual editor - tweaking ui
[fnpeditor.git] / modules / data.js
1 rng.modules.data = function(sandbox) {\r
2 \r
3     var doc = sandbox.getBootstrappedData().document;\r
4     var document_id = sandbox.getBootstrappedData().document_id;\r
5 \r
6     \r
7     if(doc === '') {\r
8         doc = '<section\n\\r
9         xmlns="http://nowoczesnapolska.org.pl/sst#"\n\\r
10         xmlns:xlink="http://www.w3.org/1999/xlink"\n\\r
11         xmlns:dc="http://purl.org/dc/elements/1.1/"\n\\r
12         xmlns:dcterms="http://purl.org/dc/terms/"\n\\r
13     >\n\\r
14         <metadata>\n\\r
15         </metadata>\n\\r
16         <div class="p"></div>\n\\r
17     </section>';\r
18     }\r
19     \r
20     \r
21     function readCookie(name) {\r
22         var nameEQ = escape(name) + "=";\r
23         var ca = document.cookie.split(';');\r
24         for (var i = 0; i < ca.length; i++) {\r
25             var c = ca[i];\r
26             while (c.charAt(0) == ' ') c = c.substring(1, c.length);\r
27             if (c.indexOf(nameEQ) == 0) return unescape(c.substring(nameEQ.length, c.length));\r
28         }\r
29         return null;\r
30     }\r
31     \r
32     $.ajaxSetup({\r
33         crossDomain: false,\r
34         beforeSend: function(xhr, settings) {\r
35             if (!(/^(GET|HEAD|OPTIONS|TRACE)$/.test(settings.type))) {\r
36                 xhr.setRequestHeader("X-CSRFToken", readCookie('csrftoken'));\r
37             }\r
38         }\r
39     });\r
40     \r
41     return {\r
42         start: function() {\r
43             sandbox.publish('ready');\r
44         },\r
45         getDocument: function() {\r
46             return doc;\r
47         },\r
48         commitDocument: function(newDocument, reason) {\r
49             doc = newDocument;\r
50             sandbox.publish('documentChanged', doc, reason);\r
51         },\r
52         saveDocument: function() {\r
53             sandbox.publish('savingStarted');\r
54             $.ajax({\r
55                 method: 'post',\r
56                 url: '/' + gettext('editor') + '/' + document_id,\r
57                 data: JSON.stringify({document:doc}),\r
58                 success: function() {sandbox.publish('savingEnded', 'success');},\r
59                 error: function() {sandbox.publish('savingEnded', 'error');}\r
60             });\r
61         }\r
62         \r
63     }\r
64 \r
65 };