diff --git a/direct/src/http/LandingPage.py b/direct/src/http/LandingPage.py index e24d2f8408..ae421ee692 100755 --- a/direct/src/http/LandingPage.py +++ b/direct/src/http/LandingPage.py @@ -5,13 +5,14 @@ class LandingPage: self.headerTemplate = LandingPageHTML.header self.footerTemplate = LandingPageHTML.footer - #self.title = LandingPageHTML.title - #self.contactInfo = LandingPageHTML.contactInfo - self.menu = {} self.uriToTitle = {} + self.quickStats = [[],{}] + + self.addQuickStat("Pages Served", 0, 0) + def addTab(self, title, uri): self.menu[title] = uri self.uriToTitle[uri] = title @@ -54,10 +55,16 @@ class LandingPage: LandingPageHTML.mainPageBody = body def setTitle(self, title): - LandingPageHTML.title = title + if LandingPageHTML.title == LandingPageHTML.defaultTitle: + LandingPageHTML.title = title + else: + LandingPageHTML.title = LandingPageHTML.title + " + " + title def setDescription(self,desc): - LandingPageHTML.description = desc + if LandingPageHTML.description == LandingPageHTML.defaultDesc: + LandingPageHTML.description = desc + else: + LandingPageHTML.description = LandingPageHTML.description + "

\n

" + desc def setContactInfo(self,info): LandingPageHTML.contactInfo = info @@ -65,12 +72,31 @@ class LandingPage: def getDescription(self): return LandingPageHTML.description + def getQuickStatsTable(self): + return LandingPageHTML.getQuickStatsTable(self.quickStats) + def getMainPage(self): - return LandingPageHTML.mainPageBody - - def getQuickStatsTable(self, quickStats): - return LandingPageHTML.getQuickStatsTable(quickStats) - + return LandingPageHTML.mainPageBody % {"description" : self.getDescription(), + "quickstats" : self.getQuickStatsTable()} + def skin(self, body, uri): title = self.uriToTitle.get(uri,"Services") return self.getHeader(title) + body + self.getFooter() + + def addQuickStat(self,item,value,position): + if item in self.quickStats[1]: + self.notify.warning("Ignoring duplicate addition of quickstat %s." % item) + return + + self.quickStats[0].insert(position,item) + self.quickStats[1][item] = value + + def updateQuickStat(self,item,value): + assert item in self.quickStats[1] + + self.quickStats[1][item] = value + + def incrementQuickStat(self,item): + assert item in self.quickStats[1] + + self.quickStats[1][item] += 1 diff --git a/direct/src/http/LandingPageHTML.py b/direct/src/http/LandingPageHTML.py index 517f9f944d..99afec909f 100755 --- a/direct/src/http/LandingPageHTML.py +++ b/direct/src/http/LandingPageHTML.py @@ -1,7 +1,11 @@ # -- Text content for the landing page. You should change these for yours! -- title = "Landing Page" +defaultTitle = title + description = "To set this description, call WebRequestDispatcher.setDescription!

You can also add stats to the table below by calling WebRequestDispatcher.addQuickStat(Name,Value,PositionInTable)." +defaultDesc = description + contactInfo = "M. Ian Graham - ian.graham@dig.com - 818-623-3219" diff --git a/direct/src/http/WebRequest.py b/direct/src/http/WebRequest.py index 0299d70bdd..7a4b3dbfac 100755 --- a/direct/src/http/WebRequest.py +++ b/direct/src/http/WebRequest.py @@ -86,9 +86,6 @@ class WebRequestDispatcher(object): notify = notify - quickStats = [["Pages Served"], - {"Pages Served" : 0}] - def __new__(self, *a, **kw): obj = object.__new__(self, *a, **kw) obj.__dict__ = self._shared_state @@ -121,7 +118,7 @@ class WebRequestDispatcher(object): """ assert req.getRequestType() == "GET" - self.incrementQuickStat("Pages Served") + self.landingPage.incrementQuickStat("Pages Served") uri = req.getURI() args = req.dictFromGET() @@ -216,13 +213,10 @@ class WebRequestDispatcher(object): if enable: if not self.__dict__.has_key("landingPage"): self.landingPage = LandingPage() - self.setTitle(self.__class__.__name__) self.registerGETHandler("/", self._main, returnsResponse = True, autoSkin = True) self.registerGETHandler("/services", self._services, returnsResponse = True, autoSkin = True) self.landingPage.addTab("Main", "/") self.landingPage.addTab("Services", "/services") - else: - self.setTitle(self.__class__.__name__) else: self.landingPage = None self.unregisterGETHandler("/") @@ -230,35 +224,7 @@ class WebRequestDispatcher(object): def _main(self): - return self.landingPage.getMainPage() % {"description" : self.landingPage.getDescription(), - "quickstats" : self.landingPage.getQuickStatsTable(self.quickStats)} + return self.landingPage.getMainPage() def _services(self): return self.landingPage.getServicesPage(self.uriToHandler) - - def setTitle(self,title): - self.landingPage.setTitle(title) - - def setDescription(self,desc): - self.landingPage.setDescription(desc) - - def setContactInfo(self,info): - self.landingPage.setContactInfo(info) - - def addQuickStat(self,item,value,position): - if item in self.quickStats[1]: - self.notify.warning("Ignoring duplicate addition of quickstat %s." % item) - return - - self.quickStats[0].insert(position,item) - self.quickStats[1][item] = value - - def updateQuickStat(self,item,value): - assert item in self.quickStats[1] - - self.quickStats[1][item] = value - - def incrementQuickStat(self,item): - assert item in self.quickStats[1] - - self.quickStats[1][item] += 1