ee332c33e400735f6ba7c80511bbc1ae998ba832
[redakcja.git] / project / templates / explorer / file_xml.html
1 {% extends "base.html" %}
2
3 {% block extrahead %}
4     <script src="/static/js/jquery.fieldselection.js" type="text/javascript" charset="utf-8"></script>
5     <script src="/static/js/jquery.lazyload.js" type="text/javascript" charset="utf-8"></script>
6     <script src="/static/js/codemirror/codemirror.js" type="text/javascript" charset="utf-8"></script>
7     <script src="/static/js/jquery.autoscroll.js" type="text/javascript" charset="utf-8"></script>
8     <script type="text/javascript" charset="utf-8">        
9         $(function() {
10             $('#id_folders').change(function() {
11                 $('#images').load('{% url folder_image_ajax %}' + $('#id_folders').val() + '/', function() {
12                     $('#images').data('lastScroll', -1000);
13                 });
14             });
15             
16             function resizePanels() {
17                 $('iframe').width($(window).width() - $('#sidebar').outerWidth());
18                 $('iframe').height($(window).height() - 100);
19                 $('#images-wrap, #toggle-sidebar').height($(window).height() - 100);
20             }
21             
22             $('#toggle-sidebar').toggle(function() {
23                 $('#images-wrap').width(480);
24                 $('#sidebar').width(488);
25                 resizePanels();
26             }, function() {
27                 $('#images-wrap').width(0);
28                 $('#sidebar').width(8);
29                 resizePanels();
30             })
31             
32             $(window).resize(function() {
33                 resizePanels();
34             })
35             
36             var editor = CodeMirror.fromTextArea("id_text", {
37                 parserfile: 'parsexml.js',
38                 path: "/static/js/codemirror/",
39                 stylesheet: "/static/css/xmlcolors.css",
40                 parserConfig: {useHTMLKludges: false},
41                 initCallback: function() {
42                     $('#images').autoscroll('iframe');
43                     $('.toggleAutoscroll').toggle(function() {
44                         $(this).html('Synchronizuj przewijanie');
45                         $('#images').disableAutoscroll();
46                     }, function() {
47                         $(this).html('Nie synchronizuj przewijania');
48                         $('#images').enableAutoscroll();
49                     })
50                     
51                     // Toolbar
52                     $('#toolbar-tabs li').click(function() {
53                         var id = $(this).attr('p:button-list');
54                         $('#toolbar-tabs li').removeClass('active');
55                         $(this).addClass('active');
56                         if (!$('#' + id).is(':visible')) {
57                             $('#toolbar-buttons ol').not('#' + id).hide();
58                             $('#' + id).show();
59                         }
60                     })
61
62                     var keys = {};
63                     $('#toolbar-buttons li').each(function() {
64                         var tag = $(this).attr('p:tag');
65                         var handler = function() {
66                             var text = editor.selection();
67                             editor.replaceSelection('<' + tag + '>' + text + '</' + tag + '>');
68                             if (text.length == 0) {
69                                 var pos = editor.cursorPosition();
70                                 editor.selectLines(pos.line, pos.character + tag.length + 2);
71                             }
72                         }
73                         if ($(this).attr('p:key')) {
74                             keys[$(this).attr('p:key')] = handler;
75                         }
76                         $(this).click(handler)
77                     });
78                     
79                     editor.grabKeys(function(event) { 
80                         console.log('handle', event, event.keyCode)
81                         if (keys[event.keyCode]) {
82                             keys[event.keyCode]();
83                         }
84                     }, function(event) { return event.ctrlKey && event.keyCode != 17; });
85
86                     resizePanels();
87                 }
88             });
89             
90             $('#images-wrap').lazyload('.image-box', {threshold: 640 * 10, scrollTreshold: 640 * 5});
91         });
92
93     </script>
94 {% endblock extrahead %}
95
96 {% block breadcrumbs %}<a href="{% url file_list %}">Platforma Redakcyjna</a> ❯ plik {{ hash }}{% endblock breadcrumbs %}
97
98 {% block maincontent %}
99     <div id="toolbar">
100         <ol id="toolbar-tabs">
101             <li p:button-list="naglowki">Nagłówki</li>
102             <li p:button-list="struktr">Struktr. i mastery</li>
103             <li p:button-list="dramat">Dramat wiersz.</li>
104             <li p:button-list="poczatkowe">Elementy początk.</li>
105             <li p:button-list="akapity">Akapity i dł. cyt.</li>
106             <li p:button-list="style">Style znakowe</li>
107             <li p:button-list="polecenia">Polecenia</li>
108             <li p:button-list="wersy">Wersy</li>
109         </ol>
110         <div style="clear: both; height: 0; width: 0">&nbsp;</div>
111         <div id="toolbar-buttons">
112             <ol id="naglowki" style="display:none">
113                 <li p:tag="czesc" p:key="65">część/księga</li>
114                 <li p:tag="rozdzial" p:key="83">rozdział</li>
115                 <li p:tag="podrozdzial">podrozdział</li>
116                 <li p:tag="srodtytul">śródtytuł</li>
117                 <li p:tag="akt">akt</li>
118             </ol>
119             <ol id="struktr" style="display:none">
120                 <li p:tag="utwor">tagi główne</li>
121                 <li p:tag="opowiadanie">opowiadanie</li>
122                 <li p:tag="powiesc">powieść</li>
123                 <li p:tag="dramat_wierszowany_l">dramat wiersz.</li>
124                 <li p:tag="dramat_wierszowany_lp">dramat wiersz./w. łam</li>
125                 <li p:tag="dramat_wspolczesny">dramat współcz.</li>
126                 <li p:tag="liryka_l">liryka</li>
127                 <li p:tag="liryka_lp">liryka/w. łam</li>
128                 <li p:tag="wywiad">wywiad</li>
129             </ol>
130             <ol id="dramat" style="display:none">
131                 <li p:tag="wers_wciety">wers m. wcięty</li>
132                 <li p:tag="wers_cd">wers cd.</li>
133                 <li p:tag="wers_wciety">wers wcięty</li>
134                 <li p:tag="wers_akap">wers akap.</li>
135                 <li p:tag="strofa">kwestiostrofa cd.</li>
136                 <li p:tag="kwestia">kwestia</li>
137                 <li p:tag="strofa">kwestiostrofa</li>
138                 <li p:tag="strofa">strofa</li>
139                 <li p:tag="strofa">strofa cd.</li>
140                 <li p:tag="didaskalia">didask.</li>
141                 <li p:tag="akap">kwestioakap</li>
142             </ol>
143             <ol id="poczatkowe" style="display:none">
144                 <li p:tag="autor">autor</li>
145                 <li p:tag="tytul">tytuł</li>
146                 <li p:tag="podtytul">podtytuł</li>
147                 <li p:tag="nota">nota</li>
148                 <li p:tag="dedykacja">dedykacja</li>
149                 <li p:tag="motto">motto</li>
150                 <li p:tag="motto_podpis">motto-podp.</li>
151                 <li p:tag="dzielo_nadrzedne">dzieło nadrzędne</li>
152             </ol>
153             <ol id="akapity" style="display:none">
154                 <li p:tag="akap">akapit</li>
155                 <li p:tag="akap_cd">akap. cd.</li>
156                 <li p:tag="akap_dialog">dialog</li>
157                 <li p:tag="dlugi_cyt">długi cyt.</li>
158                 <li p:tag="poezja_cyt">długi cyt. poet.</li>
159             </ol>
160             <ol id="style" style="display:none">
161                 <li p:tag="wyroznienie">wyróżnienie</li>
162                 <li p:tag="tytul_dziela">tytuł dzieła</li>
163                 <li p:tag="slowo_obce">słowo obce</li>
164                 <li p:tag="mat">matemat.</li>
165                 <li p:tag="www">www</li>
166                 <li p:tag="didaskalia">didaskalia wewn.</li>
167                 <li p:tag="osoba">osoba</li>
168                 <li p:tag="uwaga">uwaga</li>
169                 <li p:tag="extra">extra</li>
170             </ol>
171             <ol id="polecenia" style="display:none">
172                 <li p:tag="sekcja_swiatlo">sep. światło</li>
173                 <li p:tag="separator_asterysk">sep. asterysk</li>
174                 <li p:tag="separator_linia">sep. linia</li>
175                 <li p:tag="sekcja_swiatlo">zastępnik wersu</li>
176             </ol>
177             <ol id="wersy" style="display:none">
178                 <li p:tag="strofa">strofa</li>
179                 <li p:tag="strofa">strofa cd.</li>
180                 <li p:tag="wers_akap">wers akap.</li>
181                 <li p:tag="wers_wciety">wers wcięty</li>
182                 <li p:tag="wers_wciety">wers m. wcięty</li>
183                 <li p:tag="wers_cd">wers cd.</li>
184             </ol>
185             <div style="clear: both; height: 0; width: 0">&nbsp;</div>
186         </div>
187     </div>
188     
189     <form action="." method="post" accept-charset="utf-8">
190         <div id="panels">
191             <div id="sidebar">
192                 <div id="images-wrap">
193                     <div id="images">
194                         <p>Aby zobaczyć obrazki wybierz folder poniżej:</p>
195                         <p>{{ image_folders_form.folders }}</p>
196                     </div>
197                 </div>
198                 <div id="toggle-sidebar"></div>
199             </div>
200             <textarea id="id_text" name="text" width="480px">{{ form.text.field.initial }}</textarea>
201         </div>
202         
203         <div id="status-bar">
204             {{ form.user.errors }} {{ form.commit_message.errors }}
205             <p>
206                 Użytkownik: {{ form.user }}
207                 Opis zmian: {{ form.commit_message }}
208                 <input type="submit" value="Zapisz"/>
209                 <a href="#" class="toggleAutoscroll" style="float: right">Nie synchronizuj przewijania</a>
210             </p>
211         </div>
212     </form>
213 {% endblock maincontent %}