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