factorisation
[Portfolio.git] / skins / photo_layout_macros.pt
index 1ab636a..68d9f1d 100644 (file)
@@ -11,9 +11,8 @@
                      mayBeDropable exists:dropable;
                      dropable python:True if mayBeDropable and dropable else False"
          i18n:domain="portfolio">
                      mayBeDropable exists:dropable;
                      dropable python:True if mayBeDropable and dropable 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'">
       <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;
           <span tal:define="size info/thumbSize;
                             margin_top python:(slide_size - size['height']) / 2;
                             margin_left python:(slide_size - size['width']) / 2;
@@ -26,7 +25,7 @@
                                    alt info/title;
                                    height size/height;
                                    width size/width;
                                    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">
             </a>
             <tal:block tal:condition="python:features.has_key('select')">
               <span class="button slide-select" tal:condition="not:selected">
         </span>
       </div>
       <br clear="all"/>
         </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'),
-                     document.getElementById('lightbox_toolbar'));
+      <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"
       </script>
       <script type="text/javascript"
               tal:condition="dropable"
               (function(){
                 var lb = document.getElementById('lightbox');
                 new Lightbox(lb,
               (function(){
                 var lb = document.getElementById('lightbox');
                 new Lightbox(lb,
-                             document.getElementById('lightbox_toolbar'));
+                             document.getElementById('lightbox_toolbar'),
+                             %(complete)s,
+                             '%(container_type)s');
                 var uploadUrl = '%(putUrl)s';
                 var options = {'slideSize' : %(slideSize)d,
                                'thumbnailSize' : %(thumbnailSize)d};
                 var uploadUrl = '%(putUrl)s';
                 var options = {'slideSize' : %(slideSize)d,
                                'thumbnailSize' : %(thumbnailSize)d};
               })();
               ''' % {'putUrl' : '%s/put_upload' % here.absolute_url(),
                      'slideSize' : portal_object.slide_size,
               })();
               ''' % {'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')}">
       </script>
     </div>
     <div metal:define-macro="film_bar" tal:omit-tag="">
       <div id="film_bar">
         <table cellspacing="0">
       </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;
             <td tal:repeat="info contextInfos/infos">
               <a tal:attributes="href info/href;
+                                 title info/title;
                                  class info/className;
                                  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"
                 <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;
                                      alt info/title;
                                      height size/height;
                                      width size/width;