Uproszczenie implementacji wzorca observer.
[redakcja.git] / project / templates / explorer / panels / gallery.html
index 4f5ea91..0d66972 100644 (file)
@@ -1,29 +1,47 @@
 <div class="toolbar" style="height: 24px">
 <div class="toolbar" style="height: 24px">
-       <select name="folders" class="id_folders">
-               <option value="" selected="selected">-- Wybierz folder z obrazkami --</option>
-        <option value="andersen_basnie">andersen_basnie</option>
-       </select>
+    {{ form.folders }}
 </div>
 
 <div class="images-wrap" style="position: absolute; top: 24px; left:0px; right:0px; bottom: 0px;">
 </div>
 
 <div class="images-wrap" style="position: absolute; top: 24px; left:0px; right:0px; bottom: 0px;">
-       <div class="images"><!-- To jest div na obrazki, które są wstawiane później --></div>
+    <div class="images"><!-- To jest div na obrazki, które są wstawiane później --></div>
 </div>
 <script type="text/javascript" charset="utf-8">
 
 panel_hooks = {
 </div>
 <script type="text/javascript" charset="utf-8">
 
 panel_hooks = {
-       load: function() {
-               var contentDiv = this.contentDiv;
-               $('.id_folders', contentDiv).change(function() {
-               $('.images', contentDiv).fadeOut('slow', function() { 
-                   $(this).html('').load('{% url folder_image_ajax %}' + $('.id_folders', contentDiv).val() + '/',  function() {
+    load: function() {
+        var contentDiv = this.contentDiv;
+        $('select[name=folders]', contentDiv).change(function() {
+            var select = this;
+            $('.images', contentDiv).fadeOut('slow', function() { 
+                $(this).html('').load('{% url folder_image_ajax %}' + $(select).val() + '/',  function() {
+                    $('.images', contentDiv).fadeIn('slow');
                     $('.images-wrap', contentDiv).data('lazyload:lastCheckedScrollTop', -10000);
                     $('.images-wrap', contentDiv).data('lazyload:lastCheckedScrollTop', -10000);
+                    $('.image-box').click(function() {
+                        var src = $('img', $(this)).attr('src');
+                        var idx = src.lastIndexOf('/');
+                        var bigSrc = src.substring(0, idx) + '/big' + src.substring(idx, src.length);
+                        var zoom = $('<div style="position: absolute; top: 0; left: 0; right: 0; bottom: 0; overflow: scroll">'
+                            + '<img src="' + bigSrc + '" />'
+                            + '</div>').click(function() {
+                                $(this).remove();
+                            })
+                        zoom.appendTo(contentDiv);
+                    });
                 });
                 });
-                   })
-               });
-               
-               $('.images-wrap', contentDiv).lazyload('.image-box', 
-                       {threshold: 640 * 10, scrollTreshold: 640 * 5}
-               );
-       }
+            })
+        });
+        
+        $('.images-wrap', contentDiv).lazyload('.image-box', 
+            {threshold: 640 * 10, scrollTreshold: 640 * 5}
+        );
+        
+        this._endload();
+    },
+    refresh: function() {
+        return true; // gallery is always fresh
+    },
+    dirty: function() {
+        return true; // and it doesn't get dirty 
+    }
 };
 </script>
 };
 </script>