Start logging with ravenjs
[redakcja.git] / apps / wiki / templates / wiki / bootstrap.html
1 {% load staticfiles %}
2 {% load i18n %}
3
4 <!DOCTYPE html>
5 <html>
6     <head>
7         {% if RAVEN_CONFIG %}
8             <script src="http://cdn.ravenjs.com/1.1.3/jquery,native/raven.min.js"></script>
9             <script>
10                 Raven.config('{{RAVEN_CONFIG.SENTRY_URL}}', {{RAVEN_CONFIG.SETTINGS|default:'{}'}}).install();
11             </script>
12         {% endif %}
13         <script src="{% url 'django.views.i18n.javascript_catalog' %}"></script>
14         <script src="http://cdnjs.cloudflare.com/ajax/libs/ace/1.1.01/ace.js" type="text/javascript" charset="utf-8"></script>
15         
16         {% if DEBUG %}
17             <link rel="stylesheet/less" type="text/css" href="{% static 'wiki/editor/src/editor/styles/main.less' %}"/>
18             <script type="text/javascript">less = {relativeUrls: true};</script>
19             <script src="{% static 'wiki/editor/libs/less-1.3.3.min.js' %}"></script>
20             <script src="{% static 'wiki/editor/libs/require.js' %}" data-main="{% static 'wiki/editor/src/editor/entrypoint.js' %}" ></script>
21         {% else %}
22             <link href="{% static 'wiki/build/rng.css' %}" rel="stylesheet">
23             <script src="{% static 'wiki/build/rng.js' %}"></script>
24         {% endif %}
25     </head>
26     <body>
27         <script type="text/javascript">
28
29             var config = {
30                 rootSelector: '#editor_root',
31                 jsonifySentPayload: false,
32
33                 logging: {
34                     handlers: {
35                         'sentry': {
36                             level: 'info',
37                             handler: 'raven'
38                         }
39                     },
40                     loggers: {
41                         '': {
42                             level: 'info',
43                             handlers: ['sentry']
44                         }
45                     }
46                 },
47                 
48                 documentSaveUrl: function(id) { return '/editor/text/' + id + '/'; },
49                 documentHistoryUrl: function(id) { return '/editor/history/' + id + '/'},
50                 documentDiffUrl: function(id) { return '/editor/diff/' + id + '/'; },
51                 documentRestoreUrl: function(id) { return '/editor/revert/' + id + '/'},
52
53                 documentSaveForm: {
54                     fields: [
55                         {label: '{{forms.text_save.comment.label}}', name: '{{forms.text_save.comment.html_name}}', type: 'textarea'},
56                         {label: '{{forms.text_save.stage_completed.label}}', name: '{{forms.text_save.stage_completed.html_name}}', type: 'select', options: [
57                             {% for value,text in tags %}
58                                 {value:'{{value|default:''}}', text:'{{text}}'} {% if not forloop.last %}, {% endif %}
59                             {% endfor %}
60                         ], description: '{{forms.text_save.stage_completed.help_text}}'},
61                     ],
62                     content_field_name: '{{forms.text_save.text.html_name}}',
63                     version_field_name: '{{forms.text_save.parent_revision.html_name}}'
64                 },
65
66                 documentRestoreForm: {
67                     fields: [
68                         {label: '{{forms.text_revert.comment.label}}', name: '{{forms.text_revert.comment.html_name}}', type: 'textarea'}
69                     ],
70                     version_field_name: '{{forms.text_revert.revision.html_name}}'
71                 }
72             };
73
74             {% if can_pubmark %}
75                 config.documentSaveForm.fields.push(
76                     {label: '{{forms.text_save.publishable.label}}', name: '{{forms.text_save.publishable.html_name}}', type: 'checkbox', description: '{{forms.text_save.publishable.help_text}}'}
77                 );
78             {% endif %}
79
80             {% if not request.user.is_authenticated %}
81                 config.documentSaveForm.fields.push(
82                     {label: '{{forms.text_save.author_name.label}}', name: '{{forms.text_save.author_name.html_name}}', type: 'input', description: '{{forms.text_save.author_name.help_text}}'},
83                     {label: '{{forms.text_save.author_email.label}}', name: '{{forms.text_save.author_email.html_name}}', type: 'input', description: '{{forms.text_save.author_email.help_text}}'}
84                 );
85
86                 config.documentRestoreForm.fields.push(
87                     {label: '{{forms.text_revert.author_name.label}}', name: '{{forms.text_revert.author_name.html_name}}', type: 'input', description: '{{forms.text_revert.author_name.help_text}}'},
88                     {label: '{{forms.text_revert.author_email.label}}', name: '{{forms.text_revert.author_email.html_name}}', type: 'input', description: '{{forms.text_revert.author_email.help_text}}'}
89                 );
90             {% endif %}
91
92             {% autoescape off%}
93             var data = {{serialized_document_data}},
94                 templates = {{serialized_templates}}
95             {%endautoescape%}
96
97             var editor_init = function(Editor) {            
98                 Editor.setBootstrappedData('data', data);
99                 Editor.setBootstrappedData('documentToolbar', templates);
100                 Editor.start(config);
101             };
102         </script>
103         <div id="editor_root"></div>
104     </body>
105 </html>