fix links to local files in editor
[redakcja.git] / apps / wiki / templates / wiki / bootstrap.html
index 5d59d78..8428a60 100644 (file)
@@ -4,15 +4,26 @@
 <!DOCTYPE html>
 <html>
     <head>
-
+        {% if RAVEN_CONFIG %}
+            <script src="https://cdn.ravenjs.com/1.1.7/jquery,native/raven.min.js"></script>
+            <script>
+                Raven.config('{{RAVEN_CONFIG.SENTRY_URL}}', {{RAVEN_CONFIG.SETTINGS|default:'{}'}}).install();
+                {% if request.user.is_authenticated %}
+                    Raven.setUser({
+                        name: '{{request.user.username}}',
+                        email: '{{request.user.email}}',
+                        id: {{request.user.id}}
+                    });
+                {% endif %}
+            </script>
+        {% endif %}
         <script src="{% url 'django.views.i18n.javascript_catalog' %}"></script>
-        <script src="http://cdnjs.cloudflare.com/ajax/libs/ace/1.1.01/ace.js" type="text/javascript" charset="utf-8"></script>
         
         {% if DEBUG %}
-            <link rel="stylesheet/less" type="text/css" href="{% static 'wiki/rng/src/editor/styles/main.less' %}"/>
+            <link rel="stylesheet/less" type="text/css" href="{% static 'wiki/editor/src/editor/styles/main.less' %}"/>
             <script type="text/javascript">less = {relativeUrls: true};</script>
-            <script src="{% static 'wiki/rng/libs/less-1.3.3.min.js' %}"></script>
-            <script src="{% static 'wiki/rng/libs/require.js' %}" data-main="{% static 'wiki/rng/src/editor/entrypoint.js' %}" ></script>
+            <script src="{% static 'wiki/editor/libs/less-1.3.3.min.js' %}"></script>
+            <script src="{% static 'wiki/editor/libs/require.js' %}" data-main="{% static 'wiki/editor/src/editor/entrypoint.js' %}" ></script>
         {% else %}
             <link href="{% static 'wiki/build/rng.css' %}" rel="stylesheet">
             <script src="{% static 'wiki/build/rng.js' %}"></script>
             var config = {
                 rootSelector: '#editor_root',
                 jsonifySentPayload: false,
+
+                {% if request.user.is_authenticated %}
+                user: {
+                    name: '{{request.user.username}}',
+                    email: '{{request.user.email}}',
+                    id: {{request.user.id}}
+                },
+                {% endif %}
+
+                logging: {
+                    handlers: {
+                        'sentry': {
+                            level: 'info',
+                            handler: 'raven',
+                            formatter: 'noop'
+                        },
+                        'console': {
+                            level: 'debug',
+                            handler: 'console',
+                            formatter: 'simple'
+                        }
+                    },
+                    loggers: {
+                        '': {
+                            level: 'debug',
+                            handlers: ['console', 'sentry']
+                        }
+                    }
+                },
+              
+                documentSummaryView: {
+                    title: '{% trans 'Informations about lesson' %}',
+                    properties: [
+                        {name: 'version', label: '{% trans 'Version' %}'},
+                        {name: 'stage', label: '{% trans 'Stage' %}'},
+                        {name: 'assignment', label: '{% trans 'Assignment' %}'}
+                    ]
+                },
+
+                plugins: {
+                    core: {
+                        templates: {{serialized_templates|safe}},
+                        metadata: [
+                            {key: 'audience', values: [
+                                 'gimnazjum',
+                                 'liceum',
+                                 'master',
+                                 'minimum',
+                                 'optimum',
+                                 'przedszkole',
+                                 'sp1-3',
+                                 'sp4-6',
+                                 'studia'
+                            ]},
+                            {key: 'creator.scenario'},
+                            {key: 'creator.methodologist'},
+                            {key: 'creator.expert'},
+                            {key: 'creator.textbook'},
+                            {key: 'description', values: ['Publikacja zrealizowana w ramach projektu Cyfrowa Przyszłość, dofinansowanego ze środków Ministerstwa Kultury i Dziedzictwa Narodowego', 'Publikacja zrealizowana w ramach projektu Cybernauci - kompleksowy projekt kształtowania bezpiecznych zachowań w sieci, finansowanego ze środków Ministra Edukacji Narodowej.']},
+                            {key: 'type', values: ['course', 'synthetic', 'project']},
+                            {key: 'subject.curriculum', values: [
+                                '2012/0/wychowanie-przedszkolne/c1',
+                                '2012/0/wychowanie-przedszkolne/c2',
+                                '2012/0/wychowanie-przedszkolne/c3',
+                                '2012/0/wychowanie-przedszkolne/c4',
+                                '2012/0/wychowanie-przedszkolne/c5',
+                                '2012/0/wychowanie-przedszkolne/t1',
+                                '2012/0/wychowanie-przedszkolne/t10',
+                                '2012/0/wychowanie-przedszkolne/t11',
+                                '2012/0/wychowanie-przedszkolne/t12',
+                                '2012/0/wychowanie-przedszkolne/t13',
+                                '2012/0/wychowanie-przedszkolne/t14',
+                                '2012/0/wychowanie-przedszkolne/t15',
+                                '2012/0/wychowanie-przedszkolne/t17',
+                                '2012/0/wychowanie-przedszkolne/t2',
+                                '2012/0/wychowanie-przedszkolne/t3',
+                                '2012/0/wychowanie-przedszkolne/t4',
+                                '2012/0/wychowanie-przedszkolne/t5',
+                                '2012/0/wychowanie-przedszkolne/t6',
+                                '2012/0/wychowanie-przedszkolne/t7',
+                                '2012/0/wychowanie-przedszkolne/t8',
+                                '2012/0/wychowanie-przedszkolne/t9',
+                                '2012/I/edukacja-matematyczna/t1',
+                                '2012/I/edukacja-plastyczna/t1',
+                                '2012/I/edukacja-plastyczna/t2',
+                                '2012/I/edukacja-plastyczna/t3',
+                                '2012/I/edukacja-plastyczna/t4',
+                                '2012/I/edukacja-plastyczna/t5',
+                                '2012/I/edukacja-plastyczna/t6',
+                                '2012/I/edukacja-polonistyczna/t1',
+                                '2012/I/edukacja-polonistyczna/t10',
+                                '2012/I/edukacja-polonistyczna/t11',
+                                '2012/I/edukacja-polonistyczna/t2',
+                                '2012/I/edukacja-polonistyczna/t3',
+                                '2012/I/edukacja-polonistyczna/t4',
+                                '2012/I/edukacja-polonistyczna/t5',
+                                '2012/I/edukacja-polonistyczna/t6',
+                                '2012/I/edukacja-polonistyczna/t7',
+                                '2012/I/edukacja-polonistyczna/t8',
+                                '2012/I/edukacja-polonistyczna/t9',
+                                '2012/I/edukacja-przyrodnicza/t1',
+                                '2012/I/edukacja-społeczna/t1',
+                                '2012/I/edukacja-społeczna/t2',
+                                '2012/I/edukacja-społeczna/t3',
+                                '2012/I/edukacja-społeczna/t4',
+                                '2012/I/edukacja-społeczna/t5',
+                                '2012/I/edukacja-społeczna/t6',
+                                '2012/I/ETYKA/t1',
+                                '2012/I/ETYKA/t2',
+                                '2012/I/ETYKA/t3',
+                                '2012/II/ETYKA/c1',
+                                '2012/II/ETYKA/c3',
+                                '2012/II/ETYKA/C4',
+                                '2012/II/ETYKA/c5',
+                                '2012/II/ETYKA/t2',
+                                '2012/II/ETYKA/t3',
+                                '2012/II/ETYKA/t4',
+                                '2012/II/ETYKA/t5',
+                                '2012/II/ETYKA/t6',
+                                '2012/II/ETYKA/t7',
+                                '2012/II/HISTORIA_I_SPOLECZENSTWO/c4',
+                                '2012/II/HISTORIA_I_SPOLECZENSTWO/t1',
+                                '2012/II/HISTORIA_I_SPOLECZENSTWO/t4',
+                                '2012/II/HISTORIA_I_SPOLECZENSTWO/t5',
+                                '2012/II/HISTORIA_I_SPOLECZENSTWO/t7',
+                                '2012/III/ETYKA/c1',
+                                '2012/III/ETYKA/c4',
+                                '2012/III/ETYKA/t1',
+                                '2012/III/ETYKA/t11',
+                                '2012/III/ETYKA/t5',
+                                '2012/III/ETYKA/t9',
+                                '2012/III/INFORMATYKA/c1',
+                                '2012/III/INFORMATYKA/c2',
+                                '2012/III/INFORMATYKA/c5',
+                                '2012/III/PLASTYKA/c1',
+                                '2012/III/PLASTYKA/c2',
+                                '2012/III/PLASTYKA/c3',
+                                '2012/III/POLSKI/c1',
+                                '2012/III/POLSKI/c2',
+                                '2012/III/POLSKI/c3',
+                                '2012/III/WOS/c1',
+                                '2012/III/WOS/c2',
+                                '2012/III/WOS/c3',
+                                '2012/III/WOS/c4',
+                                '2012/III/WOS/c5',
+                                '2012/III/WOS/t1',
+                                '2012/III/WOS/t10',
+                                '2012/III/WOS/t11',
+                                '2012/III/WOS/t2',
+                                '2012/III/WOS/t24',
+                                '2012/III/WOS/t25',
+                                '2012/III/WOS/t26',
+                                '2012/III/WOS/t3',
+                                '2012/III/WOS/t4',
+                                '2012/III/WOS/t5',
+                                '2012/III/WOS/t6',
+                                '2012/III/WOS/t9',
+                                '2012/II/PLASTYKA/C1',
+                                '2012/II/PLASTYKA/C2',
+                                '2012/II/PLASTYKA/C3',
+                                '2012/II/PLASTYKA/T1',
+                                '2012/II/PLASTYKA/T2',
+                                '2012/II/PLASTYKA/T3',
+                                '2012/II/POLSKI/C1',
+                                '2012/II/POLSKI/C2',
+                                '2012/II/POLSKI/C3',
+                                '2012/II/POLSKI/t1',
+                                '2012/II/POLSKI/T10',
+                                '2012/II/POLSKI/T11',
+                                '2012/II/POLSKI/T12',
+                                '2012/II/POLSKI/T13',
+                                '2012/II/POLSKI/T14',
+                                '2012/II/POLSKI/T15',
+                                '2012/II/POLSKI/T16',
+                                '2012/II/POLSKI/T17',
+                                '2012/II/POLSKI/T18',
+                                '2012/II/POLSKI/T3',
+                                '2012/II/POLSKI/T4',
+                                '2012/II/POLSKI/T5',
+                                '2012/II/POLSKI/T6',
+                                '2012/II/POLSKI/T7',
+                                '2012/II/POLSKI/T9',
+                                '2012/II/WYCHOWANIE_DO_ZYCIA_W_RODZINIE/T10',
+                                '2012/II/WYCHOWANIE_DO_ZYCIA_W_RODZINIE/T11',
+                                '2012/II/WYCHOWANIE_DO_ZYCIA_W_RODZINIE/T13',
+                                '2012/II/ZAJECIA_KOMPUTEROWE/c1',
+                                '2012/II/ZAJECIA_KOMPUTEROWE/c2',
+                                '2012/II/ZAJECIA_KOMPUTEROWE/c3',
+                                '2012/II/ZAJECIA_KOMPUTEROWE/c5',
+                                '2012/II/ZAJECIA_KOMPUTEROWE/T4',
+                                '2012/II/ZAJECIA_KOMPUTEROWE/T6',
+                                '2012/II/ZAJECIA_KOMPUTEROWE/T7',
+                                '2012/IV/ETYKA/c1',
+                                '2012/IV/ETYKA/c2',
+                                '2012/IV/ETYKA/t11',
+                                '2012/IV/ETYKA/t4',
+                                '2012/IV/ETYKA/t6',
+                                '2012/IV/ETYKA/t8',
+                                '2012/IV/INFORMATYKA/c1',
+                                '2012/IV/INFORMATYKA/c2',
+                                '2012/IV/INFORMATYKA/c4',
+                                '2012/IV/INFORMATYKA/c5',
+                                '2012/IV/INFORMATYKA/t1',
+                                '2012/IV/INFORMATYKA/t2',
+                                '2012/IV/INFORMATYKA/t3',
+                                '2012/IV/INFORMATYKA/t4',
+                                '2012/IV/INFORMATYKA/t7',
+                                '2012/IV/POLSKI/c1',
+                                '2012/IV/POLSKI/c2',
+                                '2012/IV/POLSKI/c3',
+                                '2012/IV/WOK/c1',
+                                '2012/IV/WOK/c2',
+                                '2012/IV/WOK/c3',
+                                '2012/IV/WOS/c1',
+                                '2012/IV/WOS/c2',
+                                '2012/IV/WOS/c3',
+                                '2012/IV/WOS/c4',
+                                '2012/IV/WOS/c6',
+                                '2012/IV/WOS/c6/roz',
+                                '2012/IV/WOS/t1',
+                                '2012/IV/WOS/t10/roz',
+                                '2012/IV/WOS/t13/roz',
+                                '2012/IV/WOS/t14/roz',
+                                '2012/IV/WOS/t15/roz',
+                                '2012/IV/WOS/t2',
+                                '2012/IV/WOS/t27/roz',
+                                '2012/IV/WOS/t2/roz',
+                                '2012/IV/WOS/t3',
+                                '2012/IV/WOS/t32/roz',
+                                '2012/IV/WOS/t36/roz',
+                                '2012/IV/WOS/t5',
+                                '2012/IV/WOS/t6',
+                                '2012/IV/WOS/t8/roz',
+                                '2012/I/wychowanie-przedszkolne/t16',
+                                '2012/I/ZAJECIA_KOMPUTEROWE/t1',
+                                '2012/I/ZAJECIA_KOMPUTEROWE/t2',
+                                '2012/I/ZAJECIA_KOMPUTEROWE/t3',
+                                '2012/I/ZAJECIA_KOMPUTEROWE/t4',
+                                '2012/I/ZAJECIA_KOMPUTEROWE/t5'
+                            ]},
+                            {key: 'subject.curriculum.new'},
+                            {key: 'subject.competence', values: [
+                                'Anonimowość - Bezpieczeństwo w komunikacji i mediach',
+                                'Bezpieczeństwo komunikacji, pracy i transakcji - Bezpieczeństwo w komunikacji i mediach',
+                                'Finansowanie mediów i wybrane sposoby zarabiania w nowych mediach - Ekonomiczne aspekty działania mediów',
+                                'Funkcje komunikatów medialnych - Język mediów',
+                                'Informacja jako dobro ekonomiczne - Ekonomiczne aspekty działania mediów',
+                                'Językowa natura mediów - Język mediów',
+                                'Komunikacja i media jako przedmiot refleksji etycznej - Etyka i wartości w komunikacji i mediach',
+                                'Komunikacja - Relacje w środowisku medialnym',
+                                'Kultura komunikacji medialnej - Język mediów',
+                                'Media a prawa człowieka, obywatela i dziecka - Prawo w komunikacji i mediach',
+                                'Nadzór nad siecią - Bezpieczeństwo w komunikacji i mediach',
+                                'Ochrona danych osobowych - Prawo w komunikacji i mediach',
+                                'Ochrona prywatności i wizerunku - Bezpieczeństwo w komunikacji i mediach',
+                                'Otoczenie - Relacje w środowisku medialnym',
+                                'Podejście krytyczne do informacji - Korzystanie z informacji',
+                                'Polityka medialna - Ekonomiczne aspekty działania mediów',
+                                'Prawa osób niepełnosprawnych - Prawo w komunikacji i mediach',
+                                'Prawa wyłączne i monopole intelektualne - Prawo w komunikacji i mediach',
+                                'Prawo mediów i media publiczne - Prawo w komunikacji i mediach',
+                                'Prawo telekomunikacyjne - Prawo w komunikacji i mediach',
+                                'Prezentowanie - Kreatywne korzystanie z mediów',
+                                'Przetwarzanie - Kreatywne korzystanie z mediów',
+                                'Rodzaje, źródła i praktyka stosowania prawa w kontekście mediów - Prawo w komunikacji i mediach',
+                                'Rynek mediów - Ekonomiczne aspekty działania mediów',
+                                'Tworzenie - Kreatywne korzystanie z mediów',
+                                'Uzależnienia i higiena korzystania z mediów - Bezpieczeństwo w komunikacji i mediach',
+                                'Wizerunek - Relacje w środowisku medialnym',
+                                'Wykorzystanie informacji - Korzystanie z informacji',
+                                'Wyszukiwanie informacji - Korzystanie z informacji',
+                                'Wyzwania etyczne a normy prawa w mediach i komunikacji - Etyka i wartości w komunikacji i mediach',
+                                'Wyzwania etyczne a treści mediów i komunikacji - Etyka i wartości w komunikacji i mediach',
+                                'Wyzwania etyczne w relacjach przez media - Etyka i wartości w komunikacji i mediach',
+                                'Źródła informacji - Korzystanie z informacji'
+                            ]}
+                        ]
+                    }
+                },
+
+                toolbar: [
+                    ['core.undo', 'core.redo'],
+                    
+                    [
+                    {actionName: 'core.switchToHeader'},
+                    {actionName: 'core.switchToParagraph'},
+                    'core.toggleBulletList', 'core.toggleEnumList'
+                    ],
+
+                    [
+                        {actionName: 'core.emphasis', actionConfig: {label: 'wyróżnienie'}},
+                        {actionName: 'core.cite', actionConfig: {label: 'cytat'}},
+                        {actionName: 'core.link'}
+                    ],
+                    
+                    ['core.template'],
+                    ['core.showMetadataEditor'],
+                    [
+                        'core.insertOrderExercise',
+                        'core.insertChoiceSingleExercise',
+                        'core.insertChoiceMultiExercise',
+                        'core.insertChoiceTrueOrFalseExercise',
+                        'core.insertGapsExercise',
+                        'core.insertReplaceExercise'
+                    ]
+                ],
                 
                 documentSaveUrl: function(id) { return '/editor/text/' + id + '/'; },
                 documentHistoryUrl: function(id) { return '/editor/history/' + id + '/'},
+                documentDiffUrl: function(id) { return '/editor/diff/' + id + '/'; },
+                documentRestoreUrl: function(id) { return '/editor/revert/' + id + '/'},
+                documentAttachmentUrl: function(attachmentName) {
+                    return '{{MEDIA_URL}}{{IMAGE_DIR}}{{gallery}}/' + attachmentName;
+                },
+                documentUrl: function(id, version) {
+                    var url = '{% url 'wiki_editor' slug %}';
+                    if(version) {
+                        url = url + '?version=' + version;
+                    }
+                    return url;
+                },
 
                 documentSaveForm: {
                     fields: [
                             {% for value,text in tags %}
                                 {value:'{{value|default:''}}', text:'{{text}}'} {% if not forloop.last %}, {% endif %}
                             {% endfor %}
-                        ], description: '{{forms.text_save.stage_completed.help_text}}'},
+                        ], description: '{{forms.text_save.stage_completed.help_text}}'}
                     ],
                     content_field_name: '{{forms.text_save.text.html_name}}',
                     version_field_name: '{{forms.text_save.parent_revision.html_name}}'
+                },
+
+                documentRestoreForm: {
+                    fields: [
+                        {label: '{{forms.text_revert.comment.label}}', name: '{{forms.text_revert.comment.html_name}}', type: 'textarea'}
+                    ],
+                    version_field_name: '{{forms.text_revert.revision.html_name}}'
                 }
             };
 
             {% if can_pubmark %}
-                config.documentSaveForm.fields.push(
-                    {label: '{{forms.text_save.publishable.label}}', name: '{{forms.text_save.publishable.html_name}}', type: 'checkbox', description: '{{forms.text_save.publishable.help_text}}'}
-                );
+                config.documentSaveForm.fields.push({
+                    label: '{{forms.text_save.publishable.label}}',
+                    name: '{{forms.text_save.publishable.html_name}}',
+                    type: 'checkbox',
+                    description: '{{forms.text_save.publishable.help_text}}',
+                    checked: {{ forms.text_save.publishable.field.initial|yesno:"true,false" }}
+                });
+                config.documentSaveForm.fields.push({
+                    label: '{{forms.text_save.for_cybernauts.label}}',
+                    name: '{{forms.text_save.for_cybernauts.html_name}}',
+                    type: 'checkbox',
+                    description: '{{forms.text_save.for_cybernauts.help_text}}',
+                    checked: {{ forms.text_save.for_cybernauts.field.initial|yesno:"true,false" }}
+                });
             {% endif %}
 
             {% if not request.user.is_authenticated %}
                     {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}}'},
                     {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}}'}
                 );
+
+                config.documentRestoreForm.fields.push(
+                    {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}}'},
+                    {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}}'}
+                );
             {% endif %}
 
-            var data = {% autoescape off%}{{serialized_document_data}}{%endautoescape%};
+            {% autoescape off%}
+            var data = {{serialized_document_data}};
+            {%endautoescape%}
 
             var editor_init = function(Editor) {            
                 Editor.setBootstrappedData('data', data);