Poprawienie nazwy zmiennej "availble_themes" -> "available_themes".
[redakcja.git] / platforma / static / js / views / gallery.js
old mode 100644 (file)
new mode 100755 (executable)
index 7449344..d6844c6
@@ -10,10 +10,11 @@ var ImageGalleryView = View.extend({
   init: function(element, model, parent, template) 
   {    
     console.log("init for gallery");
-    this._super(element, model, template);
+    var submodel = model.contentModels['gallery'];
+    this._super(element, submodel, template);
     this.parent = parent;
 
-    console.log("galley model", this.model);
+    console.log("gallery model", this.model);
        
     this.model
       .addObserver(this, 'data', this.modelDataChanged.bind(this))
@@ -25,12 +26,15 @@ var ImageGalleryView = View.extend({
   },
   
   modelDataChanged: function(property, value) 
-  {    
-    if( property == 'data')
-    {
-        this.render();
-        this.gotoPage(this.currentPage);        
-    }   
+  {   
+    console.log(this.model.get('state'), value, value.length);
+    if ((this.model.get('state') == 'synced') && (value.length == 0)) {
+      console.log('tutaj');
+      this.render('image-gallery-empty-template');
+    } else {
+      this.render();
+      this.gotoPage(this.currentPage);
+    }
   },
 
   gotoPage: function(index) 
@@ -85,9 +89,12 @@ var ImageGalleryView = View.extend({
   
   modelStateChanged: function(property, value) {   
     if (value == 'loading') {
-      this.parent.freeze('Ładowanie...');
+      this.freeze('Ładowanie...');
     } else {
-      this.parent.unfreeze();
+      if ((value == 'synced') && (this.model.get('data').length == 0)) {
+        this.render('image-gallery-empty-template');
+      }
+      this.unfreeze();
     }
   },
 
@@ -102,8 +109,7 @@ var ImageGalleryView = View.extend({
     $page.hide();
     $('img', $page).unbind();
     
-    $page.empty();
-    
+    $page.empty();    
     this.setPageViewOffset($page, {x:0, y:0});
   },
 
@@ -183,7 +189,11 @@ var ImageGalleryView = View.extend({
           offset.y = vp_height-MARGIN;               
       
       $page.css({left: offset.x, top: offset.y});           
-  }, 
+  },
+
+  reload: function() {
+    this.model.load(true);
+  },
   
   renderImage: function(target) 
   {
@@ -207,23 +217,26 @@ var ImageGalleryView = View.extend({
         mousedown(this.pageDragStart.bind(this));    
   },
 
-  render: function() 
+  render: function(template
   {
-      if(!this.model) return;            
-      
-      /* first unbind all */    
-      if(this.$nextButton) this.$nextButton.unbind();
-      if(this.$prevButton) this.$prevButton.unbind();
-      if(this.$jumpButton) this.$jumpButton.unbind();
-      if(this.$pageInput) this.$pageInput.unbind();
-
-      if(this.$zoomInButton) this.$zoomInButton.unbind();
-      if(this.$zoomOutButton) this.$zoomOutButton.unbind();
-      if(this.$zoomResetButton) this.$zoomResetButton.unbind();
-
+    if(!this.model) return;            
+    
+    $('.choose-gallery-button', this.element).unbind();
+    
+    /* first unbind all */    
+    if(this.$nextButton) this.$nextButton.unbind();
+    if(this.$prevButton) this.$prevButton.unbind();
+    if(this.$jumpButton) this.$jumpButton.unbind();
+    if(this.$pageInput) this.$pageInput.unbind();
+
+    if(this.$zoomInButton) this.$zoomInButton.unbind();
+    if(this.$zoomOutButton) this.$zoomOutButton.unbind();
+    if(this.$zoomResetButton) this.$zoomResetButton.unbind();
+    
+    if (!template) {
       /* render */
       this._super();
-
+      
       /* fetch important parts */
       this.$pageListRoot = $('.image-gallery-page-list', this.element);
       this.$pages = $('.image-gallery-page-container', this.$pageListRoot);
@@ -249,6 +262,15 @@ var ImageGalleryView = View.extend({
 
       this.gotoPage(this.currentPage);
       this.changePageZoom(this.pageZoom);
+    } else {
+      this._super(template);
+      
+      var self = this;
+      $('.choose-gallery-button', self.element).click(function() {
+        console.log('CLICK CLICK')
+        self.model.setGallery($('#id_subpath', self.element).val());
+      });
+    }
   },
 
   jumpToPage: function() {