Editor update - editor now builds with its own copy of ace.js
[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.7/jquery,native/raven.min.js"></script>
9             <script>
10                 Raven.config('{{RAVEN_CONFIG.SENTRY_URL}}', {{RAVEN_CONFIG.SETTINGS|default:'{}'}}).install();
11                 {% if request.user.is_authenticated %}
12                     Raven.setUser({
13                         name: '{{request.user.username}}',
14                         email: '{{request.user.email}}',
15                         id: {{request.user.id}}
16                     });
17                 {% endif %}
18             </script>
19         {% endif %}
20         <script src="{% url 'django.views.i18n.javascript_catalog' %}"></script>
21         
22         {% if DEBUG %}
23             <link rel="stylesheet/less" type="text/css" href="{% static 'wiki/editor/src/editor/styles/main.less' %}"/>
24             <script type="text/javascript">less = {relativeUrls: true};</script>
25             <script src="{% static 'wiki/editor/libs/less-1.3.3.min.js' %}"></script>
26             <script src="{% static 'wiki/editor/libs/require.js' %}" data-main="{% static 'wiki/editor/src/editor/entrypoint.js' %}" ></script>
27         {% else %}
28             <link href="{% static 'wiki/build/rng.css' %}" rel="stylesheet">
29             <script src="{% static 'wiki/build/rng.js' %}"></script>
30         {% endif %}
31     </head>
32     <body>
33         <script type="text/javascript">
34
35             var config = {
36                 rootSelector: '#editor_root',
37                 jsonifySentPayload: false,
38
39                 {% if request.user.is_authenticated %}
40                 user: {
41                     name: '{{request.user.username}}',
42                     email: '{{request.user.email}}',
43                     id: {{request.user.id}}
44                 },
45                 {% endif %}
46
47                 logging: {
48                     handlers: {
49                         'sentry': {
50                             level: 'info',
51                             handler: 'raven',
52                             formatter: 'noop'
53                         },
54                         'console': {
55                             level: 'debug',
56                             handler: 'console',
57                             formatter: 'simple'
58                         }
59                     },
60                     loggers: {
61                         '': {
62                             level: 'debug',
63                             handlers: ['console', 'sentry']
64                         }
65                     }
66                 },
67               
68                 metadata: [
69                     {key: 'audience', values: [
70                          'gimnazjum',
71                          'liceum',
72                          'master',
73                          'minimum',
74                          'optimum',
75                          'przedszkole',
76                          'sp1-3',
77                          'sp4-6',
78                          'studia'
79                     ]},
80                     {key: 'creator.scenario'},
81                     {key: 'creator.methodologist'},
82                     {key: 'description'},
83                     {key: 'type', values: ['course', 'synthetic', 'project']},
84                     {key: 'subject.curriculum', values: [
85                         '2012/III/ETYKA/c4',
86                         '2012/III/ETYKA/t5',
87                         '2012/III/ETYKA/t9',
88                         '2012/III/ETYKA/t11',
89                         '2012/IV/WOS/c4',
90                         '2012/IV/WOS/c6',
91                         '2012/IV/WOS/t1',
92                         '2012/IV/WOS/t2',
93                         '2012/IV/WOS/t5',
94                         '2012/IV/INFORMATYKA/c5',
95                         '2012/II/POLSKI/C3',
96                         '2012/II/POLSKI/C2',
97                         '2012/II/POLSKI/C1',
98                         '2012/II/PLASTYKA/C1',
99                         '2012/II/PLASTYKA/C2',
100                         '2012/II/PLASTYKA/C3',
101                         '2012/II/ETYKA/C4',
102                         '2012/IV/WOS/c6/roz',
103                         '2012/II/WYCHOWANIE_DO_ZYCIA_W_RODZINIE/T11',
104                         '2012/II/POLSKI/T3',
105                         '2012/II/POLSKI/T5',
106                         '2012/II/POLSKI/T4',
107                         '2012/II/POLSKI/T7',
108                         '2012/II/POLSKI/T9',
109                         '2012/II/POLSKI/T10',
110                         '2012/II/POLSKI/T11',
111                         '2012/II/POLSKI/T12',
112                         '2012/II/POLSKI/T13',
113                         '2012/II/POLSKI/T14',
114                         '2012/II/POLSKI/T15',
115                         '2012/II/POLSKI/T16',
116                         '2012/II/POLSKI/T17',
117                         '2012/II/POLSKI/T18',
118                         '2012/II/PLASTYKA/T1',
119                         '2012/II/PLASTYKA/T2',
120                         '2012/II/PLASTYKA/T3',
121                         '2012/II/POLSKI/T6',
122                         '2012/II/ZAJECIA_KOMPUTEROWE/T6',
123                         '2012/II/ZAJECIA_KOMPUTEROWE/T7',
124                         '2012/II/POLSKI/t1',
125                         '2012/II/ZAJECIA_KOMPUTEROWE/T4',
126                         '2012/II/WYCHOWANIE_DO_ZYCIA_W_RODZINIE/T13',
127                         '2012/II/WYCHOWANIE_DO_ZYCIA_W_RODZINIE/T10',
128                         '2012/IV/WOS/t3',
129                         '2012/IV/WOS/t2/roz',
130                         '2012/IV/INFORMATYKA/t1',
131                         '2012/IV/INFORMATYKA/t7',
132                         '2012/IV/ETYKA/c2',
133                         '2012/IV/ETYKA/t4',
134                         '2012/IV/WOS/t8/roz',
135                         '2012/IV/WOS/c3',
136                         '2012/IV/ETYKA/c1',
137                         '2012/III/POLSKI/c1',
138                         '2012/III/POLSKI/c2',
139                         '2012/III/POLSKI/c3',
140                         '2012/III/PLASTYKA/c1',
141                         '2012/III/PLASTYKA/c2',
142                         '2012/III/PLASTYKA/c3',
143                         '2012/III/WOS/c1',
144                         '2012/III/WOS/c2',
145                         '2012/III/WOS/c3',
146                         '2012/III/WOS/c4',
147                         '2012/III/WOS/c5',
148                         '2012/III/WOS/t1',
149                         '2012/III/WOS/t2',
150                         '2012/III/WOS/t3',
151                         '2012/III/WOS/t4',
152                         '2012/III/WOS/t5',
153                         '2012/III/WOS/t6',
154                         '2012/III/WOS/t9',
155                         '2012/III/WOS/t10',
156                         '2012/III/WOS/t11',
157                         '2012/III/WOS/t24',
158                         '2012/III/WOS/t25',
159                         '2012/III/WOS/t26',
160                         '2012/III/INFORMATYKA/c1',
161                         '2012/III/INFORMATYKA/c2',
162                         '2012/III/INFORMATYKA/c5',
163                         '2012/III/ETYKA/c1',
164                         '2012/III/ETYKA/t1',
165                         '2012/IV/INFORMATYKA/c2',
166                         '2012/IV/INFORMATYKA/c4',
167                         '2012/IV/INFORMATYKA/t2',
168                         '2012/IV/INFORMATYKA/t3',
169                         '2012/IV/INFORMATYKA/t4',
170                         '2012/IV/POLSKI/c1',
171                         '2012/IV/POLSKI/c2',
172                         '2012/IV/POLSKI/c3',
173                         '2012/IV/INFORMATYKA/c2',
174                         '2012/IV/INFORMATYKA/c4',
175                         '2012/IV/INFORMATYKA/t2',
176                         '2012/IV/INFORMATYKA/t3',
177                         '2012/IV/INFORMATYKA/t4',
178                         '2012/IV/POLSKI/c1',
179                         '2012/IV/POLSKI/c2',
180                         '2012/IV/POLSKI/c3',
181                         '2012/IV/WOK/c1',
182                         '2012/IV/WOK/c2',
183                         '2012/IV/WOK/c3',
184                         '2012/IV/ETYKA/t11',
185                         '2012/IV/WOS/c1',
186                         '2012/IV/WOS/t13/roz',
187                         '2012/IV/WOS/c2',
188                         '2012/IV/ETYKA/t6',
189                         '2012/IV/ETYKA/t8',
190                         '2012/II/ZAJECIA_KOMPUTEROWE/c1',
191                         '2012/II/ZAJECIA_KOMPUTEROWE/c2',
192                         '2012/II/ZAJECIA_KOMPUTEROWE/c3',
193                         '2012/II/ZAJECIA_KOMPUTEROWE/c5',
194                         '2012/II/HISTORIA_I_SPOLECZENSTWO/c4',
195                         '2012/II/HISTORIA_I_SPOLECZENSTWO/t1',
196                         '2012/II/HISTORIA_I_SPOLECZENSTWO/t4',
197                         '2012/II/HISTORIA_I_SPOLECZENSTWO/t5',
198                         '2012/II/ETYKA/c1',
199                         '2012/II/ETYKA/c3',
200                         '2012/II/ETYKA/c5',
201                         '2012/II/ETYKA/t2',
202                         '2012/II/ETYKA/t3',
203                         '2012/II/ETYKA/t4',
204                         '2012/II/ETYKA/t5',
205                         '2012/II/ETYKA/t6',
206                         '2012/II/ETYKA/t7',
207                         '2012/IV/WOS/t6',
208                         '2012/IV/WOS/t10/roz',
209                         '2012/IV/WOS/t14/roz',
210                         '2012/IV/WOS/t15/roz',
211                         '2012/IV/WOS/t27/roz',
212                         '2012/IV/WOS/t32/roz',
213                         '2012/IV/WOS/t36/roz',
214                         '2012/IV/INFORMATYKA/c1',
215                         '2012/II/HISTORIA_I_SPOLECZENSTWO/t7'
216                     ]},
217                     {key: 'subject.competence', values: [
218                         'Anonimowość - Bezpieczeństwo w komunikacji i mediach',
219                         'Bezpieczeństwo komunikacji, pracy i transakcji - Bezpieczeństwo w komunikacji i mediach',
220                         'Finansowanie mediów i wybrane sposoby zarabiania w nowych mediach - Ekonomiczne aspekty działania mediów',
221                         'Funkcje komunikatów medialnych - Język mediów',
222                         'Informacja jako dobro ekonomiczne - Ekonomiczne aspekty działania mediów',
223                         'Językowa natura mediów - Język mediów',
224                         'Komunikacja i media jako przedmiot refleksji etycznej - Etyka i wartości w komunikacji i mediach',
225                         'Komunikacja - Relacje w środowisku medialnym',
226                         'Kultura komunikacji medialnej - Język mediów',
227                         'Media a prawa człowieka, obywatela i dziecka - Prawo w komunikacji i mediach',
228                         'Nadzór nad siecią - Bezpieczeństwo w komunikacji i mediach',
229                         'Ochrona danych osobowych - Prawo w komunikacji i mediach',
230                         'Ochrona prywatności i wizerunku - Bezpieczeństwo w komunikacji i mediach',
231                         'Otoczenie - Relacje w środowisku medialnym',
232                         'Podejście krytyczne do informacji - Korzystanie z informacji',
233                         'Polityka medialna - Ekonomiczne aspekty działania mediów',
234                         'Prawa osób niepełnosprawnych - Prawo w komunikacji i mediach',
235                         'Prawa wyłączne i monopole intelektualne - Prawo w komunikacji i mediach',
236                         'Prawo mediów i media publiczne - Prawo w komunikacji i mediach',
237                         'Prawo telekomunikacyjne - Prawo w komunikacji i mediach',
238                         'Prezentowanie - Kreatywne korzystanie z mediów',
239                         'Przetwarzanie - Kreatywne korzystanie z mediów',
240                         'Rodzaje, źródła i praktyka stosowania prawa w kontekście mediów - Prawo w komunikacji i mediach',
241                         'Rynek mediów - Ekonomiczne aspekty działania mediów',
242                         'Tworzenie - Kreatywne korzystanie z mediów',
243                         'Uzależnienia i higiena korzystania z mediów - Bezpieczeństwo w komunikacji i mediach',
244                         'Wizerunek - Relacje w środowisku medialnym',
245                         'Wykorzystanie informacji - Korzystanie z informacji',
246                         'Wyszukiwanie informacji - Korzystanie z informacji',
247                         'Wyzwania etyczne a normy prawa w mediach i komunikacji - Etyka i wartości w komunikacji i mediach',
248                         'Wyzwania etyczne a treści mediów i komunikacji - Etyka i wartości w komunikacji i mediach',
249                         'Wyzwania etyczne w relacjach przez media - Etyka i wartości w komunikacji i mediach',
250                         'Źródła informacji - Korzystanie z informacji'
251                     ]}
252                 ],
253
254                 documentSummaryView: {
255                     title: '{% trans 'Informations about lesson' %}',
256                     properties: [
257                         {name: 'version', label: '{% trans 'Version' %}'},
258                         {name: 'stage', label: '{% trans 'Stage' %}'},
259                         {name: 'assignment', label: '{% trans 'Assignment' %}'},
260                     ]
261                 },
262
263                 plugins: {
264                     core: {templates: {{serialized_templates|safe}}}
265                 },
266
267                 toolbar: [
268                     ['core.undo', 'core.redo'],
269                     
270                     [
271                     {actionName: 'core.switchToHeader'},
272                     {actionName: 'core.switchToParagraph'},
273                     'core.toggleBulletList', 'core.toggleEnumList'
274                     ],
275
276                     [
277                         {actionName: 'core.emphasis', actionConfig: {label: 'wyróżnienie'}},
278                         {actionName: 'core.cite', actionConfig: {label: 'cytat'}},
279                         {actionName: 'core.link'}
280                     ],
281                     
282                     ['core.template']
283                 ],
284                 
285                 documentSaveUrl: function(id) { return '/editor/text/' + id + '/'; },
286                 documentHistoryUrl: function(id) { return '/editor/history/' + id + '/'},
287                 documentDiffUrl: function(id) { return '/editor/diff/' + id + '/'; },
288                 documentRestoreUrl: function(id) { return '/editor/revert/' + id + '/'},
289                 documentAttachmentUrl: function(attachmentName) {
290                     return '{{MEDIA_URL}}{{IMAGE_DIR}}{{slug}}/' + attachmentName;
291                 },
292
293                 documentSaveForm: {
294                     fields: [
295                         {label: '{{forms.text_save.comment.label}}', name: '{{forms.text_save.comment.html_name}}', type: 'textarea'},
296                         {label: '{{forms.text_save.stage_completed.label}}', name: '{{forms.text_save.stage_completed.html_name}}', type: 'select', options: [
297                             {% for value,text in tags %}
298                                 {value:'{{value|default:''}}', text:'{{text}}'} {% if not forloop.last %}, {% endif %}
299                             {% endfor %}
300                         ], description: '{{forms.text_save.stage_completed.help_text}}'},
301                     ],
302                     content_field_name: '{{forms.text_save.text.html_name}}',
303                     version_field_name: '{{forms.text_save.parent_revision.html_name}}'
304                 },
305
306                 documentRestoreForm: {
307                     fields: [
308                         {label: '{{forms.text_revert.comment.label}}', name: '{{forms.text_revert.comment.html_name}}', type: 'textarea'}
309                     ],
310                     version_field_name: '{{forms.text_revert.revision.html_name}}'
311                 }
312             };
313
314             {% if can_pubmark %}
315                 config.documentSaveForm.fields.push(
316                     {label: '{{forms.text_save.publishable.label}}', name: '{{forms.text_save.publishable.html_name}}', type: 'checkbox', description: '{{forms.text_save.publishable.help_text}}'}
317                 );
318             {% endif %}
319
320             {% if not request.user.is_authenticated %}
321                 config.documentSaveForm.fields.push(
322                     {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}}'},
323                     {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}}'}
324                 );
325
326                 config.documentRestoreForm.fields.push(
327                     {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}}'},
328                     {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}}'}
329                 );
330             {% endif %}
331
332             {% autoescape off%}
333             var data = {{serialized_document_data}};
334             {%endautoescape%}
335
336             var editor_init = function(Editor) {            
337                 Editor.setBootstrappedData('data', data);
338                 Editor.start(config);
339             };
340         </script>
341         <div id="editor_root"></div>
342     </body>
343 </html>