60 lines
No EOL
1.2 KiB
JavaScript
60 lines
No EOL
1.2 KiB
JavaScript
app.views.Photos = Backbone.View.extend({
|
|
|
|
events : {},
|
|
|
|
initialize : function(options) {
|
|
this.photos = this.model;
|
|
this.collection = this.model.photos;
|
|
|
|
this.setupEvents();
|
|
this.setupLightbox();
|
|
},
|
|
|
|
setupEvents : function(){
|
|
this.photos.bind("fetched", this.removeLoader, this)
|
|
this.collection.bind("add", this.addPhoto, this);
|
|
},
|
|
|
|
addPhoto : function(photo) {
|
|
var photoView = new app.views.Photo({ model: photo });
|
|
|
|
$(this.el)[
|
|
(this.collection.at(0).id == photo.id)
|
|
? "prepend"
|
|
: "append"
|
|
](photoView.render().el);
|
|
|
|
return this;
|
|
},
|
|
|
|
render : function(evt) {
|
|
if(evt) {evt.preventDefault(); }
|
|
|
|
if(this.model.fetch()) {
|
|
this.appendLoader();
|
|
};
|
|
|
|
return this;
|
|
},
|
|
|
|
appendLoader: function(){
|
|
$("#paginate").html($("<img>", {
|
|
src : "/images/static-loader.png",
|
|
"class" : "loader"
|
|
}));
|
|
},
|
|
|
|
removeLoader: function() {
|
|
$("#paginate").empty();
|
|
},
|
|
|
|
setupLightbox : function(){
|
|
this.lightbox = Diaspora.BaseWidget.instantiate("Lightbox");
|
|
this.lightbox.set({
|
|
imageParent: '#main_stream',
|
|
imageSelector: 'img.photo'
|
|
});
|
|
$(this.el).delegate("a.photo-link", "click", this.lightbox.lightboxImageClicked);
|
|
},
|
|
|
|
}); |