Example #1
0
		fetch: function () {
			if(conf.clientOnly){
				this.fetched = true;
				var self = this;
				var htmls = foldify(conf.paths.html, {whitelist: [conf.displayType+"/*", "shared/*"], recursive: true});
				for(var name in htmls)
					self.add({id: name, template: htmls[name]});
				process.nextTick(function(){
					self.trigger('fetched');
				});
			}else{
				return Backbone.fetch.apply(this, arguments);			
			}
	    }     
Example #2
0
var View = require('../../shared/View');
var foldify = require('foldify');
var mixins = foldify('./mixins');

module.exports = function(options){
	var FinalView = mixins["post-"+options.type]
		? BaseView.extend(mixins["post-"+options.type])
		: BaseView;
	return new FinalView(options);
}

var BaseView = View.extend({
	className: 'post',
	prerender: function(){
		if(this.prerendered) return		
		if(!this.rendered){
			var rendered = this.html.render("content.html", { 
				'.goback a': { href: this.post.collection.length === 1 ? "/" : "/articles/"+this.typeSlug },
				'.page-title span': this.post.get('title')
			});
			this.$el.html( rendered );
		}
		this.prerendered = true;
		if(this.post.fetched) return Backbone.transition( this.render().$el, {level:2} ); 

		this.prerendering = true;
		var init = Backbone.transition( this.$el, {level:2} );
		function signal(e){ 
			this.prerendering = false;
			this.trigger("prerendered");
		};