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

Revision 1960, 33.0 KB checked in by gabor, 12 years ago (diff)

fixed #1432 spent 2h

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