X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=js%2Fpages.js;h=9cf7fbb0ea8d26b9ac7d9035032881d0629de883;hp=2f0abfcc939f70b2013a2b0e46a0f026c9c1437e;hb=5d9992368bb386d2e606ae037c5478fe10ac70e8;hpb=85dc0facbc2b2de826978fac3768db7949a6b92f diff --git a/js/pages.js b/js/pages.js index 2f0abfc..9cf7fbb 100644 --- a/js/pages.js +++ b/js/pages.js @@ -20,7 +20,7 @@ /** - * Gestion des pages. + * Pages manager. */ euphorik.Pages = function(fragment, communication) { this.fragment = fragment; @@ -31,11 +31,14 @@ euphorik.Pages = function(fragment, communication) { }; /** - * Accepte soit un objet soit un string. - * un string correspond au nom de la page, par exemple : "page" -> "page.html" - * @defaut si vrai alors la page est la page par défaut + * Add a new page, must be done one time per page after the website is loaded. + * Accept a string or a Page object. + * If a string is given then a static object page is automatically created. + * A string is the name of the page without the 'html' extension, for example + * "page" -> "page.html" + * @defaultPage If true then the page will be flaged as 'default'. It must be only one default page. */ -euphorik.Pages.prototype.ajouterPage = function(page, defaut) { +euphorik.Pages.prototype.addPage = function(page, defaultPage) { if (typeof page === "string") { page = new euphorik.PageStatique(page, this.communication); } @@ -43,27 +46,33 @@ euphorik.Pages.prototype.ajouterPage = function(page, defaut) { page.pages = this; // la magie des langages dynamiques : le foutoire page.fragment = this.fragment; - this.pages[page.nom] = page; + this.pages[page.name] = page; - if (defaut) { + if (defaultPage) { this.pageDefaut = page; } }; -euphorik.Pages.prototype.afficherPage = function(nomPage, forcerChargement) { - forcerChargement = forcerChargement || false; +/** + * Display a given page. + * If no page name given the the default page will be loaded. + * @pageName [optional] The page name to load. + * @forceToLoad [optional] If true then the page will be reloaded even it already displayed. + */ +euphorik.Pages.prototype.displayPage = function(pageName, forceToLoad) { + forceToLoad = forceToLoad || false; // si le nom de la page n'est pas donné on le prend du fragment - if (!nomPage) { - nomPage = this.fragment.getVal("page"); + if (!pageName) { + pageName = this.fragment.getVal("page"); } - var page = this.pages[nomPage]; + var page = this.pages[pageName]; if (!page) { page = this.pageDefaut; } - if (!page || (!forcerChargement && page === this.pageCourante)) { + if (!page || (!forceToLoad && page === this.pageCourante)) { return; } @@ -72,20 +81,21 @@ euphorik.Pages.prototype.afficherPage = function(nomPage, forcerChargement) { } $("#menu li").removeClass("courante"); - $("#menu li." + page.nom).addClass("courante"); + $("#menu li." + page.name).addClass("courante"); this.pageCourante = page; var contenu = this.pageCourante.contenu(); $("#page").html(contenu).removeClass().addClass( - this.pageCourante.nom + - (this.pageCourante.classes ? " " + this.pageCourante.classes() : "") // l'objet peut fournire des classes css supplémentaires sous la forme d'un string + this.pageCourante.name + + // A page can bring some additionnals CSS classes + (this.pageCourante.classes ? " " + this.pageCourante.classes() : "") ); if (this.pageCourante.charger) { this.pageCourante.charger(); } - this.fragment.setVal("page", this.pageCourante.nom); + this.fragment.setVal("page", this.pageCourante.name); this.fragment.write(); };