/* this code can & should be written differently
it is just to give you some idea
how to play with V2 */
// use kitchen-sink
// var app=new Framework7();
var obj={
params:{
r:app.views.current.router,
minPages:0,
maxPages:1000000,
path:'/prefix-',
title:'title ',
block:'content ',
firstPageBack:'index',
lastPageText:'last page',
nextTimeout:1000,
cssClass:'.page-content'
},
methods:{
get:function(k,i){
return obj.params[k]+i;
},
now:function(){
return new Date();
}
},
tmpl:{
cm:{
},
tm:{
block:'<div class="block" style="text-align:center;">\
{{block}}\
<br>\
{{subtitle}}\
</div>',
page:'<div class="page">\
<div class="navbar">\
<div class="navbar-inner sliding">\
<div class="left">\
<a href="#" class="link back">\
<i class="icon icon-back"></i>\
<span class="ios-only">{{back}}</span>\
</a>\
</div>\
<div class="title">{{title}}\
<div class="subtitle">{{subtitle}}</div>\
</div>\
</div>\
</div>\
<div class="page-content"></div>\
</div>'
},
compile:function(){
for(k in this.tm){
this.cm[k]=Template7.compile(this.tm[k]);
}
}
},
init:function(){
this.tmpl.compile();
var r=this.params.r;
app.utils.extend(r,{
routes:[],
params:{
stackPages:true,
animateWithJS:true
}
});
for(var i=this.params.minPages;i<this.params.maxPages;i++){
r.routes.push({
id:i,
path:obj.methods.get('path',i),
title:obj.methods.get('title',i+1),
block:obj.methods.get('block',i+1),
template:obj.tmpl.cm.page,
once:{
pageMounted:function(e,page){
var pageContext=page.route.context;
var pageContainer=page.$pageEl;
pageContainer.find(obj.params.cssClass).html(
obj.tmpl.cm.block(pageContext)
);
},
pageInit:function(e,page){
var pageContext=page.route.context;
var pageContainer=page.$pageEl;
var next=r.routes[pageContext.id+1];
if (!next) {
pageContainer.find(obj.params.cssClass).html(
obj.tmpl.cm.block(
app.utils.extend(pageContext,{
block:obj.params.lastPageText
})
)
);
return;
}
setTimeout(function(){
var context={
id:next.id,
title:next.title,
subtitle:obj.methods.now,
back:pageContext.title,
block:next.block
};
page.view.router.navigate(
next.path,{context:context,route:{context:context}}
);
},obj.params.nextTimeout);
}
}
});
}
var next=r.routes[this.params.minPages];
var context={
id:next.id,
title:next.title,
subtitle:this.methods.now,
back:this.params.firstPageBack,
block:next.block
};
r.navigate(next.path,{context:context,route:{context:context}});
}
};
obj.init();
What does this code do?