56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
/*globals $,ibuyproperties,window*/
|
|
|
|
ibuyproperties.router=(function(){
|
|
var allRoutes=[];
|
|
|
|
function route() {
|
|
var hash = window.location.hash;
|
|
var lastLocation = null;
|
|
|
|
if (!hash) {
|
|
window.location.hash = "#Home";
|
|
}
|
|
|
|
if (lastLocation != hash) {
|
|
this.lastLocation=hash;
|
|
|
|
// Generic routing based on template names
|
|
$.each(ibuyproperties.templates.getType("mainPages"),function(pos,name){
|
|
var re=new RegExp("^#" + name + "[/]*");
|
|
if (ibuyproperties.isDebugMode) { console.log("Generic Router - test ",name);}
|
|
// debugger;
|
|
if (hash.match(re)) {
|
|
if (ibuyproperties.isDebugMode) { console.log("Generic Router - match ",name);}
|
|
if ($("#pnl_" +name).length === 0) {
|
|
$("#content").empty().append(ibuyproperties.templateHelper.get(name)({templateName:name}));
|
|
}
|
|
ibuyproperties.navShow('mainScreen',name);
|
|
$('.in,.open').removeClass('in open');
|
|
}
|
|
});
|
|
|
|
// Dynamic route handling
|
|
$.each(allRoutes,function(pos,theRoute){
|
|
if (ibuyproperties.isDebugMode) { console.log("Dynamic Router - test ",hash ,theRoute);}
|
|
|
|
var re=new RegExp(theRoute.re);
|
|
if (hash.match(re)) {
|
|
if (ibuyproperties.isDebugMode) { console.log("Dynamic Router - match ",hash,theRoute);}
|
|
theRoute.cb.call();
|
|
return false; // exit the loop
|
|
}
|
|
});
|
|
|
|
}
|
|
}
|
|
|
|
function addRoute(re, callBack){
|
|
var theRoute={re:re,cb:callBack};
|
|
allRoutes.push(theRoute);
|
|
|
|
}
|
|
return {
|
|
route:route,
|
|
addRoute:addRoute
|
|
};
|
|
}()); |