source: trunk/skins/lemill/widget_slides.pt @ 1306

Revision 1306, 18.2 KB checked in by pjotr, 13 years ago (diff)

Fixes #1112, all Delete buttons for all teh widgets behave like that now

Line 
1<html xmlns="http://www.w3.org/1999/xhtml"
2      xmlns:tal="http://xml.zope.org/namespaces/tal"
3      xmlns:metal="http://xml.zope.org/namespaces/metal"
4      xmlns:i18n="http://xml.zope.org/namespaces/i18n"
5      i18n:domain="lemill">
6
7  <head><title></title></head>
8
9  <body>
10
11    <!--  Copies much from widget_chapter, look there if variable names are confusing  -->
12
13    <metal:view_macro define-macro="view" tal:define="value accessor">
14        <tal:chapters repeat="chapter value">           
15            <tal:defs tal:define="UID python:field.isUid(chapter);
16                            ">
17            <div tal:condition="not:UID">
18            <tal:caption content="structure chapter" />
19            <div class="visualClear" style="height:30px">&nbsp;</div>
20            </div>
21            <div tal:condition="UID" class="piece-edit-box"
22                tal:define="fullscreen_view python: here.REQUEST.URL.endswith('fullscreen_view');">
23                <img src="" tal:condition="python: (piece) and not (fullscreen_view)" tal:define="piece python:field.getObjectByUID(context,UID);
24                                        pieceurl piece/image_large/absolute_url | nothing"
25                             tal:attributes="src pieceurl" />
26                <img src="" tal:condition="python: (piece) and (fullscreen_view)" tal:define="piece python:field.getObjectByUID(context,UID);
27                                        pieceurl piece/image_large/absolute_url | nothing"
28                             tal:attributes="src pieceurl" class="media_piece" />
29            <div class="visualClear" style="height:10px">&nbsp;</div>
30            </div>
31            </tal:defs>
32        </tal:chapters>
33    </metal:view_macro>
34
35    <metal:define define-macro="area_edit">
36      <tal:define
37          define="inputname fieldName;
38                  edit_chapter request/edit | python:0;
39                  edit_chapter python: int(edit_chapter);
40                  translation translation | python:0;
41                  chapter_count python:len(value);
42                  text_edit python:True;
43                  engineer python:request.get('engineer');
44                  ">
45        <input type="hidden" name="chapter_count" id="chapter_count" value="1" tal:attributes="value chapter_count; name python:'%s_count' % fieldName; id python:'%s_count' % fieldName"/>
46        <input type="hidden" name="chapter_edited" id="chapter_edited" value="0" tal:attributes="value edit_chapter; name python:'%s_edited' % fieldName ;id python:'%s_edited' % fieldName "/>
47        <input type="hidden" name="chapter_deleted" id="chapter_deleted" value="-1" tal:attributes="name python:'%s_deleted' % fieldName;id python:'%s_deleted' % fieldName"/>
48        <input type="hidden" name="chapter_uploaded" id="chapter_uploaded" value="-1" tal:attributes="name python:'%s_uploaded' % fieldName;id python:'%s_uploaded' % fieldName"/>
49        <input type="hidden" name="translation" id="translation" value="0" tal:attributes="value translation"/>
50        <input tal:condition="not:engineer" type="hidden" name="insert_point" id="insert_point" value="-1" />
51
52        <div class="visualClear" style="height:20px">&nbsp;</div>
53
54        <input class="context"
55            tabindex=""
56            type="submit"
57            name="form.button.mass_uploader"
58            value="   Upload many slides   " i18n:domain="lemill"
59            i18n:attributes="value label_upload_many_slides;"
60            tal:attributes="tabindex tabindex/next;"
61            />
62
63
64
65       <tal:chapters repeat="chapter value">
66          <tal:definitions define="index repeat/chapter/index;
67          caption repeat/chapter/odd;
68          slide repeat/chapter/even;
69          index python:int(index);
70          block python:'block';
71          UID python:field.isUid(chapter);
72           ">       
73
74
75            <a name="#" tal:attributes="name index"></a>
76
77           
78            <tal:slide condition="slide">
79             <span tal:replace="structure string:&lt;fieldset&gt;" />       
80
81             <legend>
82                 <span tal:omit-tag="" i18n:translate="">Slide</span> <span tal:replace="python:(index+2)/2" />
83                     <input class="context"
84                     style="display:inline"
85                         tabindex=""
86                         type="button"
87                         name="form.button.editSlide"
88                         value="Edit" i18n:domain="plone"
89                         i18n:attributes="value label_edit;"
90                         tal:attributes="tabindex tabindex/next;
91                         disabled python:test(isLocked, 'disabled', None);
92                         id python:'edit_button_'+str(index);
93                         onClick python:'''javascript:edit_slide('%s') ''' % (index)"
94                         />
95                     <input class="context"
96                         style="display:none"
97                         tabindex=""
98                         type="submit"
99                         name="form.button.Save"
100                         value="Save" i18n:domain="plone"
101                         i18n:attributes="value label_save;"
102                         tal:attributes="tabindex tabindex/next;
103                         id python:'save_button_'+str(index);
104                         disabled python:test(isLocked, 'disabled', None)"
105                         />
106                         
107                <input class="context"
108                    tabindex=""
109                    type="submit"
110                    name="form.button.moveChapterUp"
111                    value="Move up" i18n:domain="lemill"
112                    tal:condition="python: index!=0"
113                    i18n:attributes="value label_move_up;"
114                    tal:attributes="tabindex tabindex/next;
115                    disabled python:test(isLocked, 'disabled', None);
116                    onClick python:'''javascript:document.getElementById('%s_deleted').value=%s''' % (fieldName, index)"
117                    />
118                <input class="context"
119                    tabindex=""
120                    type="submit"
121                    name="form.button.moveChapterDown"
122                    value="Move down" i18n:domain="lemill"
123                    tal:condition="python: index!=len(value)-2"
124                    i18n:attributes="value label_move_down;"
125                    tal:attributes="tabindex tabindex/next;
126                    disabled python:test(isLocked, 'disabled', None);
127                    onClick python:'''javascript:document.getElementById('%s_deleted').value=%s''' % (fieldName, index)"
128                    />
129
130                <input class="context deleteButtonPosition"
131                    tabindex=""
132                    type="submit"
133                    name="form.button.delSlide"
134                    value="Delete" i18n:domain="plone"
135                    i18n:attributes="value"
136                    tal:attributes="tabindex tabindex/next;
137                    disabled python:test(isLocked, 'disabled', None);
138                    onClick python:'''javascript:document.getElementById('%s_deleted').value=%s''' % (fieldName, index)"
139                    />
140             </legend>
141
142             <input type="hidden" tal:attributes="id python:'%s_%s' % (fieldName,index);
143                                                   name python:'%s_%s' % (fieldName,index);
144                                                   value chapter" />
145                                                   
146             <metal:block metal:use-macro="here/widget_slides/macros/piece_edit" />
147             
148             </tal:slide>
149                 <tal:caption condition="caption">
150            <legend>Caption</legend>
151           
152            <div class="translatedTt"
153                  tal:condition="translation">
154                  <label i18n:translate="label_original_field">
155                  Original
156                         <span i18n:name="field" >:</span>
157                  </label>
158                  <div tal:define="transfield python:source.getField(fieldName);
159                      transchapter python:transfield.getChapter(context, index);"  class="text_to_translate">
160                          <span tal:replace="structure python:transchapter"/>           
161                  </div>
162              </div>
163              <div style="display:none" tal:attributes="id python:'edit_field_'+str(index)">
164            <textarea tal:attributes="name python:'%s_%s' % (fieldName, index); id python:'%s_%s' % (fieldName, index)"
165             tal:content="chapter" style="width:550px" rows="4">
166         </textarea>
167     </div>
168     <div tal:attributes="id python:'view_field_'+str(index)">
169         <span tal:content="chapter" tal:omit-tag="" />
170         </div>
171            <span tal:replace="structure string:&lt;/fieldset&gt;" />
172                </tal:caption>
173          </tal:definitions>
174       </tal:chapters>
175
176       <tal:buttons condition="not:translation">
177           <input class="context"
178               tabindex=""
179               type="submit"
180               name="form.button.add_slides"
181               value="Add slide"
182               i18n:attributes="value label_add_slide;"
183               tal:attributes="tabindex tabindex/next"
184               />
185        <tal:engineer condition="engineer">
186        Insertion point:
187           <input class="context"
188               type="text"
189               size="2"
190               name="insert_point"
191               value="-1"/>
192        </tal:engineer>
193       </tal:buttons>
194
195
196
197      </tal:define>
198    </metal:define>
199
200    <metal:define define-macro="area_format">
201      <tal:define
202          define="field_text_format string:${fieldName}_${index}_text_format;
203                  contentType python:request.get(field_text_format, here.getContentType(fieldName));
204                  allowable_ct python:getattr(field, 'allowable_content_types', ());
205                  mimetypes python:[t for t in allowable_ct if t.startswith('text/')];
206                  contenttype python:hasattr(field, 'getContentType') and field.getContentType(here) or ''">
207
208        <tal:condition condition="python:len(mimetypes) &gt; 1">
209        <div style="text-align: right; margin-right: 0.75em;">
210          <label i18n:domain="plone" i18n:translate="label_format">Format</label>
211          <select tal:attributes="id string:${fieldName}_text_format;
212                                  name string:${fieldName}_text_format;
213                                  tabindex tabindex/next">
214            <option selected="selected"
215                    value=""
216                    tal:attributes="value contentType"
217                    tal:condition="python:contenttype not in mimetypes">
218              (no change)
219            </option>
220            <option tal:repeat="item mimetypes"
221                    tal:content="python:here.lookupMime(item)"
222                    tal:attributes="value item;
223                                    selected python:test(here.checkSelected(item, contenttype, contenttypes=1), 'selected', None);"
224                    />
225          </select>
226        </div>
227        </tal:condition>
228      </tal:define>
229    </metal:define>
230
231    <metal:define define-macro="edit">
232       <metal:use use-macro="field_macro | here/field/macros/edit">
233        <metal:fill fill-slot="widget_body">
234          <metal:block use-macro="here/widget_slides/macros/area_edit" />
235        </metal:fill>
236      </metal:use>
237    </metal:define>
238
239    <metal:define define-macro="search">
240      <metal:use use-macro="here/widgets/field/macros/edit">
241        <metal:fill fill-slot="widget_body">
242
243          <metal:block use-macro="here/widget_slides/macros/area_edit" />
244
245        </metal:fill>
246      </metal:use>
247    </metal:define>
248
249
250    <metal:define define-macro="piece_edit">
251                <tal:if_collection
252                        condition="widget/collections_only"
253                        define="vocab python:field.Vocabulary(here);
254                                    vlen python:len(vocab);
255                                    format python:widget.format">
256
257                    <select tal:attributes="name fieldName;
258                                            id fieldName;
259                                            tabindex tabindex/next;">
260                        <option tal:repeat="item vocab"
261                                tal:attributes="value item;"
262                                                tal:content="python:context.getImageName(vocab.getValue(item))"
263                                />
264                            </select>
265
266                    <input type="submit" i18n:attributes="value label_add_image;" name="form.button.addImage" value="Add image" />
267
268
269                </tal:if_collection>
270                <tal:if_collection condition="not:widget/collections_only">
271                <table style="width:100%">
272                    <tr>
273                        <td style="width:550px">
274                <div class="one-piece"
275                    tal:define="piece python:field.getObjectByUID(context,UID);
276                                piece_id piece/getId | python:0;
277                                piece_uid UID | python:0;
278                                piece_desc piece/getDescription | string:">
279                    <div class="piece-edit-box" id="piece-edit-box"
280                        tal:attributes="style python:test(piece_id!=0, 'background-image:url(\''+str(piece_id)+'/image_large\')', '');
281                        id python:'piece-edit-box-%s' % index; ">
282                        <div style="height:20px" class="visualClear">&nbsp;</div>
283   
284                        <div style="display:none" tal:attributes="id python:'edit_upload_'+str(index)">
285                            <div id="pres-text"><tal:trans i18n:translate="label_upload_image_file">Upload image file</tal:trans>...</div>
286                            <br />
287                            <input type="hidden"
288                                   value="0"
289                                   name="piece_uid"
290                                   id="piece_uid"
291                                   tal:attributes="value piece_uid | python:0;
292                                                   id string:piece_uid_${index};
293                                                   name string:piece_uid_${index}"
294
295                            />
296                            <input id="material-file"
297                                   type="file"
298                                   value=""
299                                   name="file_box"
300                                   tal:attributes="id string:${fieldName}_file_${index};
301                                                   name string:${fieldName}_file_${index}"
302                            />
303                            <input id="piece-uploadbutton"
304                                   type="submit"
305                                   name="form.button.uploadSlide"
306                                   value="Upload file"
307                                   tal:attributes="onClick python:'''javascript:document.getElementById('%s_uploaded').value=%s''' % (fieldName, index)"
308                                   i18n:attributes="value label_upload_file;"
309                            />
310                        </div>
311                        <div style="height:50px" class="visualClear">&nbsp;</div>
312                        <div style="display:none" tal:attributes="id python:'edit_search_'+str(index)">
313                            <div id="pres-text" i18n:translate="label_or_search_from_pieces">... or search from media pieces: </div>
314                            <div style="height:5px" class="visualClear">&nbsp;</div>
315                            <br />
316                            <input id="piece-search-0"
317                                   type="text"
318                                   value=""
319                                   name="search_box"
320                                   tal:attributes="id python:'piece-search-%s' % index"/>
321                            <input id="piece-searchbutton"
322                                   type="button"
323                                   value="Search"
324                                   name="searchButton"
325                                   i18n:attributes="value label_search;" i18n:domain="plone"
326                                   onclick="javascript:search_for_pieces()"
327                                   tal:attributes="onclick python:'''javascript:search_for_pieces(event,%s,'audio=False')''' % index"
328                            />
329                        </div>
330                        </div>
331   
332                    </div>
333                <div id="insertHere"></div>
334            </td>
335            <td style="width:130px">
336                <div id="piece-search-results">
337                    <b i18n:domain="plone" i18n:translate="heading_search_results">Search results</b>
338                    <div id="piece-search-results-body">
339                        search results here!
340                    </div>
341                </div>
342            </td>
343            </tr>
344                </table>
345            </tal:if_collection>
346    </metal:define>
347   
348    <metal:define define-macro="show_small_images">
349        <tal:def define="global le_sum_in_a_row python:0"></tal:def>
350        <input type="hidden" name="toBeRemoved" id="toBeRemoved" value="1" />
351        <tal:imgs repeat="ref context/getRefsToImages">
352       
353            <tal:cond condition="python:le_sum_in_a_row==6">
354                <tal:def define="global le_sum_in_a_row python:0"></tal:def>
355                <div style="clear:both"></div>
356            </tal:cond>
357
358            <div style="width:120px;height:140px;border:1px solid blue;float:left;margin:3px;overflow:hidden">
359                <img tal:attributes="src python:ref.absolute_url()+'/image_small'"/>
360                <div style="clear:both"></div>
361                <div style="width:120px;text-align:center">
362                    <input type="submit"
363                        value="Remove"
364                        onclick="" i18n:domain="plone"
365            i18n:attributes="value label_remove;"
366                        tal:attributes="onclick string:javascript:setValue('toBeRemoved', '${ref/UID}');"
367                        name="form.button.removeImage"
368                        style="width:118px;height:18px"
369                        />
370                </div>
371            </div>
372            <tal:plus tal:define="global le_sum_in_a_row python:le_sum_in_a_row+1"></tal:plus>
373        </tal:imgs>
374        <div style="clear:both"></div>
375    </metal:define>
376
377
378
379
380  </body>
381
382</html>
Note: See TracBrowser for help on using the repository browser.