Merge branch 'dd_ordering' into zope-2.13
[Portfolio.git] / skins / photo_layout_macros.pt
index b13e237..f68f193 100644 (file)
@@ -9,24 +9,26 @@
     <div metal:define-macro="grid"
          tal:define="slide_size portal_object/slide_size;
                      mayBeDropable exists:dropable;
-                     dropable python:True if mayBeDropable and dropable else False"
+                     dropable python:True if mayBeDropable and dropable else False;
+                     mayBeOrderable exists:orderable;
+                     orderable python:True if mayBeOrderable and orderable else False"
          i18n:domain="portfolio">
-      <div metal:use-macro="here/batch_macros/macros/navigation">batch navigation</div>
       <div id="lightbox" tal:attributes="class python:'lightbox photo-drop-target' if dropable else 'lightbox'">
-        <span tal:repeat="info infos" tal:omit-tag="">
+        <span metal:define-macro="thumbnails" tal:repeat="info infos" tal:omit-tag="">
           <span tal:define="size info/thumbSize;
                             margin_top python:(slide_size - size['height']) / 2;
                             margin_left python:(slide_size - size['width']) / 2;
                             selected info/selected|nothing"
                 tal:attributes="class info/className;
                                 name info/cmf_uid"
-                metal:define-macro="thumbnail">
+                metal:define-macro="thumbnail"
+                draggable="true">
             <a class="slide" tal:attributes="href info/href; title info/title">
               <img tal:attributes="src info/thumbUrl;
                                    alt info/title;
                                    height size/height;
                                    width size/width;
-                                   style string:margin-top : ${margin_top}px ;;margin-left:${margin_left}px;"/>
+                                   style string:margin-top:${margin_top}px;; margin-left:${margin_left}px;"/>
             </a>
             <tal:block tal:condition="python:features.has_key('select')">
               <span class="button slide-select" tal:condition="not:selected">
                      i18n:attributes="alt"/>
               </a>
             </span>
+            <span class="button cb" tal:condition="features/checkbox|nothing">
+              <input type="checkbox" name="uids:list"
+                     tal:attributes="value info/cmf_uid"/>
+            </span>
             <tal:block tal:condition="features/hideAnonymous|nothing">
               <span class="button slide-hide"
                     tal:define="mtop python:margin_top + 4;
         </span>
       </div>
       <br clear="all"/>
-      <div metal:use-macro="here/batch_macros/macros/navigation">batch navigation</div>
-      <script type="text/javascript" tal:condition="not:dropable">
-        new Lightbox(document.getElementById('lightbox'));
+      <noscript>
+        <div metal:use-macro="here/batch_macros/macros/navigation">batch navigation</div>
+      </noscript>
+      <script type="text/javascript" tal:condition="not:dropable"
+              tal:content="structure python:'''
+              new Lightbox(document.getElementById('lightbox'),
+                           document.getElementById('lightbox_toolbar'),
+                           %(complete)s,
+                           '%(container_type)s');
+                           ''' % {'complete' : 'true' if not batch.next else 'false',
+                                  'container_type' : options.get('container_type', 'portfolio')}">
       </script>
       <script type="text/javascript"
               tal:condition="dropable"
               tal:content="structure python:'''
               (function(){
                 var lb = document.getElementById('lightbox');
-                new Lightbox(lb);
+                new Lightbox(lb,
+                             document.getElementById('lightbox_toolbar'),
+                             %(complete)s,
+                             '%(container_type)s',
+                             %(orderable)s);
                 var uploadUrl = '%(putUrl)s';
                 var options = {'slideSize' : %(slideSize)d,
                                'thumbnailSize' : %(thumbnailSize)d};
               })();
               ''' % {'putUrl' : '%s/put_upload' % here.absolute_url(),
                      'slideSize' : portal_object.slide_size,
-                     'thumbnailSize' : portal_object.thumb_size}">
+                     'thumbnailSize' : portal_object.thumb_size,
+                     'complete': 'true' if not batch.next else 'false',
+                     'container_type' : options.get('container_type', 'portfolio'),
+                     'orderable' : 'true' if orderable else 'false'}">
       </script>
     </div>
     <div metal:define-macro="film_bar" tal:omit-tag="">
       <div id="film_bar">
         <table cellspacing="0">
-          <tr tal:define="slide_size python:portal_object.thumb_size/2 + 10">
+          <tr tal:define="slide_size python:portal_object.thumb_size/2 + 10;
+                          blank_img string:$portal_url/transparent.gif">
             <td tal:repeat="info contextInfos/infos">
               <a tal:attributes="href info/href;
+                                 title info/title;
                                  class info/className;
-                                 portfolio:position info/index">
+                                 portfolio:position info/index;">
                 <img tal:define="size info/thumbSize;
                                  margin_top python:(slide_size - size['height']) / 2"
-                     tal:attributes="src info/src;
+                     tal:attributes="src python:info['src'] if info['displayed'] else blank_img;
                                      alt info/title;
                                      height size/height;
                                      width size/width;