source: trunk/skins/lemill/widget_pilot.pt @ 1897

Revision 1897, 32.9 KB checked in by gabor, 12 years ago (diff)

fixed #1472 spent 8h

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<!--  Expands from widget_chapter, look there if variable names are confusing  -->
12
13<!-- Here we can have images, audio files, keyword lists and research question lists. Conditioned responses... -->
14    <metal:view_macro define-macro="view" tal:define="value accessor;
15    valid_pilot python:here.buildXML(only_validate=True);
16    is_valid python:valid_pilot[0];
17    images_valid python:valid_pilot[1];
18    audio_valid python:valid_pilot[2];
19    keywords_valid python:valid_pilot[3]">
20
21            <metal:pilotplayer use-macro="here/widget_pilot/macros/pilot_viewer"/>
22
23        <tal:not_flash condition="not:is_valid">
24       
25        <label><tal:block i18n:translate="label_errors2">The movie is not finished because these parts are missing</tal:block>:</label>
26        <tal:needs_images condition="python: 'missing' in images_valid">
27            <tal:loop repeat="item images_valid">
28                <p  tal:condition="python:item=='missing'" tal:define="index repeat/item/index"><tal:ts i18n:translate="text_pilot_image_missing">There is no background image for scene <span i18n:name="scene_n" tal:replace="repeat/item/number"/></tal:ts>
29                (<a tal:attributes="href python:'%s/edit_scenes?edit=%s&b=0&#%s' % (here.absolute_url(), int(index)*3, int(index)*3)" i18n:domain="plone" i18n:translate="label_edit">Edit</a>)
30                </p>
31            </tal:loop>
32        </tal:needs_images>
33        <tal:needs_audio condition="python: 'missing' in audio_valid">
34            <tal:loop repeat="item audio_valid">
35                <p tal:condition="python:item=='missing'" tal:define="index repeat/item/index"><tal:ts i18n:translate="text_pilot_audio_missing">There is no voiceover audio for scene <span i18n:name="scene_n" tal:replace="repeat/item/number"/></tal:ts>
36                (<a tal:attributes="href python:'%s/edit_scenes?edit=%s&b=0&#%s' % (here.absolute_url(), int(index)*3, int(index)*3)" i18n:domain="plone" i18n:translate="label_edit">Edit</a>)
37                </p>
38            </tal:loop>
39        </tal:needs_audio>
40        <tal:needs_keywords condition="python: '' in keywords_valid">
41            <tal:loop repeat="item keywords_valid">
42                <p tal:condition="python:item==''" tal:define="index repeat/item/index"><tal:ts i18n:translate="text_pilot_keywords_missing">There are no keywords for scene <span i18n:name="scene_n" tal:replace="repeat/item/number"/></tal:ts>
43                (<a tal:attributes="href python:'%s/edit_scenes?edit=%s&b=0&#%s' % (here.absolute_url(), int(index)*3, int(index)*3)" i18n:domain="plone" i18n:translate="label_edit">Edit</a>)
44                </p>
45            </tal:loop>
46        </tal:needs_keywords>
47
48        <tal:chapters repeat="chapter value">
49            <tal:defs tal:define="UID python:field.isUid(chapter);
50                                  last repeat/chapter/end;
51                                  index repeat/chapter/index">
52                 <tal:scene_begin condition="python: int(index)%3==0">
53                 <label><tal:block i18n:translate="label_scene">Scene</tal:block> <span tal:replace="python: int(index)/3+1"/>:</label>
54                 </tal:scene_begin>             
55                <div tal:condition="not:UID"
56                    tal:define="keywords python:field.isKeywords(chapter) or (field.isQuestions(chapter) and not last);
57                                questions python:field.isQuestions(chapter) and last;">
58                 <tal:iskeywordlist condition="keywords">
59                   <label><tal:block i18n:translate="label_pilot_keywords">Keywords</tal:block>:</label>
60                     <ol>
61                     <span tal:repeat="word python:chapter[:3]" tal:omit-tag="">
62                      <li tal:content="word" />
63                     </span>
64                     </ol>
65                     </tal:iskeywordlist>
66                </div>
67                <div tal:condition="UID" tal:omit-tag="">
68                 <tal:piece define="piece python:field.getObjectByUID(context,UID);
69                 deleted python:piece and context.portal_workflow.getInfoFor(piece,'review_state',None) == 'deleted'">
70
71                 <tal:haspiece condition="python:piece and not deleted">
72                   <label tal:condition="piece/isImage"><tal:block i18n:translate="label_background_image">Background image</tal:block>:</label>
73                    <div tal:condition="piece/isImage" class="piece-edit-box">
74                        <a href="" tal:attributes="href piece/absolute_url">
75                        <img src="" tal:define="pieceurl piece/image_large/absolute_url"
76                        tal:attributes="src pieceurl" />
77                        </a>
78                    </div>
79                    <tal:isaudio condition="piece/isAudio">
80                      <label><tal:block i18n:translate="label_voiceover_audio">Voiceover audio</tal:block>:</label>
81                       <div style="height:20px" class="visualClear">&nbsp;</div>
82                      <metal:audioplayer use-macro="here/macros_audioplayer/macros/audioplayer"/>
83                    </tal:isaudio>
84                    <div class="visualClear" style="height:20px">&nbsp;</div>
85                 </tal:haspiece>
86                 <tal:hasnotpiece condition="python: not piece or deleted">
87                    <div tal:condition="python:field.isImageUID(chapter)" class="piece-edit-box">
88                        &nbsp;
89                    </div>
90                    <tal:isaudio condition="python:field.isAudioUID(chapter)">
91                        <p i18n:translate="text_no_audio">No audio set</p>
92                    </tal:isaudio>
93                    <div class="visualClear" style="height:20px">&nbsp;</div>
94                 </tal:hasnotpiece>
95                 </tal:piece>
96
97                </div>
98            </tal:defs>
99        </tal:chapters>
100        </tal:not_flash>
101    </metal:view_macro>
102
103    <metal:define define-macro="area_edit">
104      <tal:define
105          define="inputname fieldName;
106                  edit_chapter request/edit | python:0;
107                  edit_chapter python: int(edit_chapter);
108                  translation translation | python:0;
109                  chapter_count python:len(value);
110                  text_edit python:True;
111                  engineer python:request.get('engineer');
112                  ">
113        <input type="hidden" name="chapter_count" id="chapter_count" value="1"
114        tal:attributes="value chapter_count; name python:'%s_count' % fieldName; id python:'%s_count' % fieldName"/>
115        <input type="hidden" name="chapter_edited" id="chapter_edited" value="0"
116         tal:attributes="value edit_chapter; name python:'%s_edited' % fieldName ;id python:'%s_edited' % fieldName "/>
117        <input type="hidden" name="chapter_last_edited" id="chapter_last_edited" value="0"
118         tal:attributes="value edit_chapter; name python:'%s_last_edited' % fieldName ;id python:'%s_last_edited' % fieldName "/>
119        <input type="hidden" name="chapter_deleted" id="chapter_deleted" value="-1"
120         tal:attributes="name python:'%s_deleted' % fieldName;id python:'%s_deleted' % fieldName"/>
121        <input type="hidden" name="chapter_uploaded" id="chapter_uploaded" value="-1"
122         tal:attributes="name python:'%s_uploaded' % fieldName;id python:'%s_uploaded' % fieldName"/>
123        <input tal:condition="not:engineer" type="hidden" name="insert_point" id="insert_point" value="-1" />
124
125
126       <tal:chapters repeat="chapter value">
127          <tal:definitions define="index repeat/chapter/index;
128          last repeat/chapter/end;
129          keywords python:field.isKeywords(chapter) and not last;
130          questions last;
131          index python:int(index);
132          UID python:field.isUid(chapter);
133           ">
134
135            <a name="#" tal:attributes="name index"> </a>
136
137            <tal:view-mode condition="python: index&lt;edit_chapter or index&gt;edit_chapter+2">
138
139            <tal:scene_begin condition="python:index%3==0">
140             <span tal:replace="structure string:&lt;fieldset&gt;" />       
141             <legend>
142                 <tal:is_final condition="last">
143                   <span i18n:translate="label_final_scene">Final scene</span>
144                 </tal:is_final>
145                 <tal:is_not_final condition="not:last">                 
146                    <span tal:omit-tag="" i18n:translate="label_scene">Scene</span> <span tal:replace="python:(index+3)/3" />
147                 </tal:is_not_final>
148                <input class="context"
149                    tabindex=""
150                    type="submit"
151                    name="form.button.editScene"
152                    value="Edit" i18n:domain="plone"
153                    i18n:attributes="value label_edit;"
154                    tal:attributes="tabindex tabindex/next;
155                    disabled python:test(isLocked, 'disabled', None);
156                    onClick python:'''javascript:document.getElementById('%s_edited').value=%s''' % (fieldName, index)"                    />
157                <input class="context"
158                    tabindex=""
159                    type="submit"
160                    name="form.button.moveChapterUp"
161                    value="Move up" i18n:domain="lemill"
162                    i18n:attributes="value label_move_up;"
163                    tal:attributes="tabindex tabindex/next;
164                    disabled python:test(isLocked or not (index!=0 and index!=len(value)-3), 'disabled', None);
165                    onClick python:'''javascript:document.getElementById('%s_deleted').value=%s''' % (fieldName, index)"
166                    />
167                <input class="context"
168                    tabindex=""
169                    type="submit"
170                    name="form.button.moveChapterDown"
171                    value="Move down" i18n:domain="lemill"
172                    i18n:attributes="value label_move_down;"
173                    tal:attributes="tabindex tabindex/next;
174                    disabled python:test(isLocked or not (index!=len(value)-3 and index!=len(value)-6), 'disabled', None);
175                    onClick python:'''javascript:document.getElementById('%s_deleted').value=%s''' % (fieldName, index)"
176                    />
177
178
179                <input class="context deleteButtonPosition"
180                    tabindex=""
181                    type="submit"
182                    name="form.button.delScene"
183                    value="Delete" i18n:domain="plone"
184                    i18n:attributes="value;"
185                    tal:attributes="tabindex tabindex/next;
186                    disabled python:test(isLocked, 'disabled', None);
187                    onClick python:'''javascript:document.getElementById('%s_deleted').value=%s''' % (fieldName, index)"
188                    tal:condition="python: index!=len(value)-3"
189                    />
190             </legend>
191            </tal:scene_begin>
192
193           
194            <tal:piecechapter condition="UID">
195                <tal:defs define="piece python:field.getObjectByUID(context,UID);
196                    image piece/isImage | python:field.isImageUID(UID);
197                    audio piece/isAudio | python:field.isAudioUID(UID);
198                    deleted python:context.portal_workflow.getInfoFor(piece,'review_state',None) == 'deleted' ">
199
200
201            <tal:image condition="image">
202
203              <label><tal:block i18n:translate="label_background_image">Background image</tal:block>:</label>
204
205                <div class="piece-edit-box">
206                  <tal:have_piece condition="python:piece and not deleted">
207                  <img src="" tal:define="pieceurl piece/image_large/absolute_url"
208                              tal:attributes="src pieceurl" />
209                  </tal:have_piece>
210                </div>
211                <div class="visualClear" style="height:20px">&nbsp;</div>
212            </tal:image>
213
214            <tal:audio condition="audio">
215              <label><tal:block i18n:translate="label_voiceover_audio">Voiceover audio</tal:block>:</label>
216              <tal:pieceexists condition="python:piece and not deleted">
217              <br/>
218              <metal:audioplayer use-macro="here/macros_audioplayer/macros/audioplayer"/>
219              <br/>
220              </tal:pieceexists>
221              <tal:pieceexists condition="not:piece">
222               <p i18n:translate="text_no_audio">No audio set</p>
223              </tal:pieceexists>
224            </tal:audio>
225                </tal:defs>
226            </tal:piecechapter>
227
228            <tal:keywords condition="keywords">
229             <label><tal:block i18n:translate="label_pilot_keywords">Keywords</tal:block>:</label>
230             <ol>
231             <span tal:repeat="word chapter" tal:omit-tag="">
232               <li tal:content="word"/>
233             </span>
234             </ol>
235             <span tal:replace="structure string:&lt;/fieldset&gt;" />
236            </tal:keywords>
237           
238            <tal:questions condition="questions">
239              <label><tal:block i18n:translate="label_pilot_questions">Research questions</tal:block>:</label>
240              <ol>
241               <span tal:repeat="question chapter" tal:omit-tag="">
242                <li tal:content="question" />
243               </span>
244              </ol>             
245             <span tal:replace="structure string:&lt;/fieldset&gt;" />
246            </tal:questions>
247             <input type="hidden" tal:attributes="id python:'%s_%s' % (fieldName,index);
248                                                   name python:'%s_%s' % (fieldName,index);
249                                                   value python:test(keywords or questions, widget.merge_keywords(chapter), chapter)" />
250            </tal:view-mode>
251           
252
253            <tal:edit-mode condition="python: index&gt;=edit_chapter and index&lt;edit_chapter+3">
254            <tal:piecechapter condition="UID">
255                <tal:defs define="piece python:field.getObjectByUID(context,UID);
256                    image piece/isImage | python:field.isImageUID(UID);
257                    audio piece/isAudio | python:field.isAudioUID(UID); ">
258
259
260            <tal:image condition="image">
261             <span tal:replace="structure string:&lt;fieldset&gt;" />
262             <legend>
263                 <tal:is_final condition="last">
264                   <span i18n:translate="label_final_scene">Final scene</span>
265                 </tal:is_final>
266                 <tal:is_not_final condition="not:last">                 
267                    <span tal:omit-tag="" i18n:translate="label_scene">Scene</span> <span tal:replace="python:(index+3)/3" />
268                 </tal:is_not_final>
269             </legend>
270             <label><tal:block i18n:translate="label_background_image">Background image</tal:block>:</label>
271             <metal:block metal:use-macro="here/widget_pilot/macros/image_edit" />
272            </tal:image>
273
274            <tal:audio condition="audio">
275             <label><tal:block i18n:translate="label_voiceover_audio">Voiceover audio</tal:block>:</label>
276             <metal:block metal:use-macro="here/widget_pilot/macros/audio_edit" />
277            </tal:audio>
278            </tal:defs>
279
280            </tal:piecechapter>
281
282            <tal:keywords condition="keywords">
283             <label><tal:block i18n:translate="label_pilot_keywords">Keywords</tal:block>:</label>
284             <br/>
285             <ol>
286             <span tal:repeat="word chapter" tal:omit-tag="">
287             <tal:indexdef define="i repeat/word/index">           
288             <li>
289              <input type="text" size="40" maxlength="255"               
290               tal:attributes="value word;
291                   id python:'%s_keyword_%s_%s' % (fieldName,index,i);
292                   name python:'%s_keyword_%s_%s' % (fieldName,index,i);
293                   tabindex tabindex/next;
294                   style python:test(i>2, 'background-color: #ccffcc','');" />
295              </li>
296              </tal:indexdef>
297             </span>
298             </ol>
299             <span tal:replace="structure string:&lt;/fieldset&gt;" />
300            </tal:keywords>
301            <tal:questions condition="questions">
302             <label><tal:block i18n:translate="label_pilot_questions">Research questions</tal:block>:</label>
303             <ol>
304             <span tal:repeat="word chapter" tal:omit-tag="">
305             <li>
306              <input type="text" size="60" maxlength="255" class="pilot_research_question_textbox"
307               tal:define="i repeat/word/index"
308               tal:attributes="value word;
309                   id python:'%s_keyword_%s_%s' % (fieldName,index,i);
310                   name python:'%s_keyword_%s_%s' % (fieldName,index,i);
311                   tabindex tabindex/next" />
312              </li>
313             </span>
314             </ol>
315             <span tal:replace="structure string:&lt;/fieldset&gt;" />
316            </tal:questions>
317             <input type="hidden" tal:attributes="id python:'%s_%s' % (fieldName,index);
318                                                   name python:'%s_%s' % (fieldName,index);
319                                                   value python:test(keywords or questions, widget.merge_keywords(chapter), chapter)" />
320            </tal:edit-mode>
321      </tal:definitions>
322       </tal:chapters>
323
324<p i18n:translate="text_pilot_add_scenes_guide">Add additional scenes with keywords before the scene with research questions.</p>
325
326
327
328       <tal:buttons condition="not:translation">
329           <input class="context"
330               tabindex=""
331               type="submit"
332               name="form.button.add_scene"
333               value="Add scene"
334               i18n:attributes="value label_add_scene;"
335               tal:attributes="tabindex tabindex/next"
336               />
337
338        <tal:engineer condition="engineer">
339        Insertion point:
340           <input class="context"
341               type="text"
342               size="2"
343               name="insert_point"
344               value="-1"/>
345        </tal:engineer>
346       </tal:buttons>
347
348      </tal:define>
349    </metal:define>
350
351    <metal:define define-macro="area_format">
352      <tal:define
353          define="field_text_format string:${fieldName}_${index}_text_format;
354                  contentType python:request.get(field_text_format, here.getContentType(fieldName));
355                  allowable_ct python:getattr(field, 'allowable_content_types', ());
356                  mimetypes python:[t for t in allowable_ct if t.startswith('text/')];
357                  contenttype python:hasattr(field, 'getContentType') and field.getContentType(here) or ''">
358
359        <tal:condition condition="python:len(mimetypes) &gt; 1">
360        <div style="text-align: right; margin-right: 0.75em;">
361          <label i18n:domain="plone" i18n:translate="label_format">Format</label>
362          <select tal:attributes="id string:${fieldName}_text_format;
363                                  name string:${fieldName}_text_format;
364                                  tabindex tabindex/next">
365            <option selected="selected"
366                    value=""
367                    tal:attributes="value contentType"
368                    tal:condition="python:contenttype not in mimetypes">
369              (no change)
370            </option>
371            <option tal:repeat="item mimetypes"
372                    tal:content="python:here.lookupMime(item)"
373                    tal:attributes="value item;
374                                    selected python:test(here.checkSelected(item, contenttype, contenttypes=1), 'selected', None);"
375                    />
376          </select>
377        </div>
378        </tal:condition>
379       </tal:define>
380    </metal:define>
381
382    <metal:define define-macro="edit">
383       <metal:use use-macro="field_macro | here/field/macros/edit">
384        <metal:fill fill-slot="widget_body">
385          <metal:block use-macro="here/widget_pilot/macros/area_edit" />
386        </metal:fill>
387      </metal:use>
388    </metal:define>
389
390    <metal:define define-macro="search">
391      <metal:use use-macro="here/widgets/field/macros/edit">
392        <metal:fill fill-slot="widget_body">
393
394          <metal:block use-macro="here/widget_pilot/macros/area_edit" />
395
396        </metal:fill>
397      </metal:use>
398    </metal:define>
399
400
401    <metal:define define-macro="pilot_viewer">
402    <div class="pilot_flash_area">
403        <script language="javascript" tal:content="python:'
404            AC_FL_RunContent(\n
405                \'codebase\', \'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\',\n
406                \'width\', \'500\',\n
407                \'height\', \'415\',\n
408                \'src\', \'player\',\n
409                \'quality\', \'high\',\n
410                \'pluginspage\', \'http://www.macromedia.com/go/getflashplayer\',\n
411                \'align\', \'middle\',\n
412                \'play\', \'true\',\n
413                \'loop\', \'false\',\n
414                \'scale\', \'showall\',\n
415                \'wmode\', \'window\',\n
416                \'devicefont\', \'false\',\n
417                \'id\', \'player\',\n
418                \'bgcolor\', \'#666666\',\n
419                \'name\', \'player\',\n
420                \'menu\', \'true\',\n
421                \'allowFullScreen\', \'false\',\n
422                \'allowScriptAccess\',\'sameDomain\',\n
423                \'movie\', \'player\',\n
424                \'salign\', \'\',\n
425                \'flashvars\', \'xml=%s/buildXML\'\n
426            );' % here_url">
427        </script>
428        <noscript>
429            <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="500" height="415" id="player" align="middle">
430            <param name="allowScriptAccess" value="sameDomain" />
431            <param name="allowFullScreen" value="false" />
432            <param name="movie" value="player.swf" />
433            <param name="loop" value="false" />
434            <param name="quality" value="high" />
435            <param name="bgcolor" value="#666666" />
436            <param name="flashvars" tal:attributes="value python:'xml=%s/buildXML' % here_url" value="xml=something" />
437            <embed src="player.swf" loop="false" quality="high" bgcolor="#666666" width="500" height="415" name="player" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="xml=something" tal:attributes="flashvars python:'xml=%s/buildXML' % here_url" />
438            </object>
439        </noscript>
440    </div>
441    </metal:define>
442
443
444
445
446    <metal:define define-macro="audio_edit">
447                <tal:if_collection
448                        condition="widget/collections_only"
449                        define="vocab python:field.Vocabulary(here);
450                                    vlen python:len(vocab);
451                                    format python:widget.format">
452
453                    <select tal:attributes="name fieldName;
454                                            id fieldName;
455                                            tabindex tabindex/next;">
456                        <option tal:repeat="item vocab"
457                                tal:attributes="value item;"
458                                                tal:content="python:context.getImageName(vocab.getValue(item))"
459                                />
460                    </select>
461                    <input type="submit" i18n:attributes="value label_add_audio;" name="form.button.addImage" value="Add audio file" />
462
463
464                </tal:if_collection>
465                <tal:if_collection condition="not:widget/collections_only">
466                <table style="width:100%">
467                    <tr>
468                        <td style="width:550px">
469                <div class="one-piece"
470                    tal:define="piece python:field.getObjectByUID(context,UID);
471                                piece_id piece/getId | python:0;
472                                piece_uid UID | python:0;
473                                piece_desc piece/getDescription | string:;
474                                isAudio piece/isAudio | python:0;
475                                deleted python:context.portal_workflow.getInfoFor(piece,'review_state',None) == 'deleted' ">
476                    <div id="piece-edit-box"
477                    tal:attributes="id python:'piece-edit-box-%s' % index; ">
478
479                        <div style="height:50px" class="visualClear" tal:condition="python:isAudio and not deleted">
480                           <metal:block metal:use-macro="here/macros_audioplayer/macros/audioplayer" />
481
482                        </div>
483                        <div style="height:20px" class="visualClear">&nbsp;</div>
484   
485                        <div>
486                            <span id="pres-text" i18n:translate="label_upload_audio">Upload audio file ...</span>
487                            <input type="hidden"
488                                   value="0"
489                                   name="piece_uid"
490                                   id="piece_uid"
491                                   tal:attributes="value piece_uid | python:0"
492                            />
493                            <input id="material-file"
494                                   type="file"
495                                   value=""
496                                   name="file_box"
497                                   tal:attributes="id string:${fieldName}_file_${index};
498                                                   name string:${fieldName}_file_${index}"
499                            />
500                            <input id="piece-uploadbutton"
501                                   type="submit"
502                                   name="form.button.uploadAudio"
503                                   value="Upload file"
504                                   tal:attributes="onClick python:'''javascript:document.getElementById('%s_uploaded').value=%s''' % (fieldName, index)"
505                                   i18n:attributes="value label_upload_media;"
506                            />
507                        </div>
508                        <div style="height:20px" class="visualClear">&nbsp;</div>
509                        <div>
510                            <span id="pres-text" i18n:translate="label_or_search_from_pieces">... or search from media pieces: </span>
511                            <input id="piece-search-0"
512                                   type="text"
513                                   value=""
514                                   name="search_box"
515                                   onkeypress="if(event.keyCode==13) { document.getElementById('piece-searchbutton').onclick(); return false; }"                                   
516                                   tal:attributes="id python:'piece-search-%s' % index"/>
517                            <input id="piece-searchbutton"
518                                   type="button"
519                                   value="Search"
520                                   name="searchButton"
521                                   i18n:attributes="value label_search;" i18n:domain="plone"
522                                   onclick="javascript:search_for_pieces()"
523                                   tal:attributes="onclick python:'''javascript:search_for_pieces(event,%s,'audio=True')''' % index"
524                            />
525                        </div>
526                        <div style="height:20px" class="visualClear">&nbsp;</div>
527
528                        </div>
529   
530                    </div>
531                <div id="insertHere"></div>
532
533            </td>
534            <td style="width:130px">
535                <div id="audio-search-results">
536                    <div id="audio-search-results-body">
537                    &nbsp;
538                    </div>
539                </div>
540            </td>
541            </tr>
542                </table>
543            </tal:if_collection>
544    </metal:define>
545
546
547    <metal:define define-macro="image_edit">
548                <tal:if_collection
549                        condition="widget/collections_only"
550                        define="vocab python:field.Vocabulary(here);
551                                    vlen python:len(vocab);
552                                    format python:widget.format">
553
554                    <select tal:attributes="name fieldName;
555                                            id fieldName;
556                                            tabindex tabindex/next;">
557                        <option tal:repeat="item vocab"
558                                tal:attributes="value item;"
559                                                tal:content="python:context.getImageName(vocab.getValue(item))"
560                                />
561                    </select>
562                    <input type="submit" i18n:attributes="value label_add_image;" name="form.button.addImage" value="Add image" />
563
564
565                </tal:if_collection>
566                <tal:if_collection condition="not:widget/collections_only">
567                <table style="width:100%">
568                    <tr>
569                        <td style="width:550px">
570                <div class="one-piece"
571                    tal:define="piece python:field.getObjectByUID(context,UID);
572                                piece_id piece/getId | python:0;
573                                piece_uid UID | python:0;
574                                piece_desc piece/getDescription | string:;
575                                deleted python:context.portal_workflow.getInfoFor(piece,'review_state',None) == 'deleted' ">
576                    <div class="piece-edit-box" id="piece-edit-box"
577                        tal:attributes="style python:test(piece_id!=0 and not deleted, 'background-image:url(\''+str(piece_id)+'/image_large\')', '');
578                        id python:'piece-edit-box-%s' % index; ">
579                        <div style="height:20px" class="visualClear">&nbsp;</div>
580   
581                        <div>
582                            <div id="pres-text"><tal:trans i18n:translate="label_upload_image_file">Upload image file</tal:trans>...</div>
583                            <br />
584                            <input type="hidden"
585                                   value="0"
586                                   name="piece_uid"
587                                   id="piece_uid"
588                                   tal:attributes="value piece_uid | python:0;
589                                                   id string:piece_uid_${index};
590                                                   name string:piece_uid_${index}"
591
592                            />
593                            <input id="material-file"
594                                   type="file"
595                                   value=""
596                                   name="file_box"
597                                   tal:attributes="id string:${fieldName}_file_${index};
598                                                   name string:${fieldName}_file_${index}"
599                            />
600                            <input id="piece-uploadbutton"
601                                   type="submit"
602                                   name="form.button.uploadSlide"
603                                   value="Upload file"
604                                   tal:attributes="onClick python:'''javascript:document.getElementById('%s_uploaded').value=%s''' % (fieldName, index)"
605                                   i18n:attributes="value label_upload_file;"
606                            />
607                        </div>
608                        <div style="height:50px" class="visualClear">&nbsp;</div>
609                        <div>
610                            <div id="pres-text" i18n:translate="label_or_search_from_pieces">... or search from media pieces: </div>
611                            <div style="height:5px" class="visualClear">&nbsp;</div>
612                            <br />
613                            <input id="piece-search-0"
614                                   type="text"
615                                   value=""
616                                   name="search_box"
617                                   tal:attributes="id python:'piece-search-%s' % index"/>
618                            <input id="piece-searchbutton"
619                                   type="button"
620                                   value="Search"
621                                   name="searchButton"
622                                   i18n:attributes="value label_search;" i18n:domain="plone"
623                                   onclick="javascript:search_for_pieces()"
624                                   tal:attributes="onclick python:'''javascript:search_for_pieces(event,%s,'audio=False')''' % index"
625                            />
626                        </div>
627                        </div>
628   
629                    </div>
630                <div id="insertHere"></div>
631            </td>
632            <td style="width:130px">
633                <div id="piece-search-results">
634                    <b i18n:domain="plone" i18n:translate="heading_search_results">Search results</b>
635                    <div id="piece-search-results-body">
636                        search results here!
637                    </div>
638                </div>
639            </td>
640            </tr>
641                </table>
642            </tal:if_collection>
643    </metal:define>
644
645
646
647  </body>
648
649</html>
Note: See TracBrowser for help on using the repository browser.