mercurial/hgweb.py
changeset 1897 58b6784cf9f1
parent 1896 f8f818a04f5b
child 1898 e517189f168d
equal deleted inserted replaced
1896:f8f818a04f5b 1897:58b6784cf9f1
    12 demandload(globals(), "mdiff time re socket zlib errno ui hg ConfigParser")
    12 demandload(globals(), "mdiff time re socket zlib errno ui hg ConfigParser")
    13 demandload(globals(), "zipfile tempfile StringIO tarfile BaseHTTPServer util")
    13 demandload(globals(), "zipfile tempfile StringIO tarfile BaseHTTPServer util")
    14 demandload(globals(), "mimetypes templater")
    14 demandload(globals(), "mimetypes templater")
    15 from node import *
    15 from node import *
    16 from i18n import gettext as _
    16 from i18n import gettext as _
    17 
       
    18 def templatepath():
       
    19     for f in "templates", "../templates":
       
    20         p = os.path.join(os.path.dirname(__file__), f)
       
    21         if os.path.isdir(p):
       
    22             return os.path.normpath(p)
       
    23 
    17 
    24 def up(p):
    18 def up(p):
    25     if p[0] != "/":
    19     if p[0] != "/":
    26         p = "/" + p
    20         p = "/" + p
    27     if p[-1] == "/":
    21     if p[-1] == "/":
   781 
   775 
   782         self.refresh()
   776         self.refresh()
   783 
   777 
   784         expand_form(req.form)
   778         expand_form(req.form)
   785 
   779 
   786         t = self.repo.ui.config("web", "templates", templatepath())
   780         t = self.repo.ui.config("web", "templates", templater.templatepath())
   787         static = self.repo.ui.config("web", "static", os.path.join(t,"static"))
   781         static = self.repo.ui.config("web", "static", os.path.join(t,"static"))
   788         m = os.path.join(t, "map")
   782         m = os.path.join(t, "map")
   789         style = self.repo.ui.config("web", "style", "")
   783         style = self.repo.ui.config("web", "style", "")
   790         if req.form.has_key('style'):
   784         if req.form.has_key('style'):
   791             style = req.form['style'][0]
   785             style = req.form['style'][0]
  1025             yield tmpl("header", **map)
  1019             yield tmpl("header", **map)
  1026 
  1020 
  1027         def footer(**map):
  1021         def footer(**map):
  1028             yield tmpl("footer", **map)
  1022             yield tmpl("footer", **map)
  1029 
  1023 
  1030         m = os.path.join(templatepath(), "map")
  1024         m = os.path.join(templater.templatepath(), "map")
  1031         tmpl = templater(m, common_filters,
  1025         tmpl = templater(m, common_filters,
  1032                          {"header": header, "footer": footer})
  1026                          {"header": header, "footer": footer})
  1033 
  1027 
  1034         def entries(**map):
  1028         def entries(**map):
  1035             parity = 0
  1029             parity = 0
  1073                     req.write(tmpl("error", error=str(inst)))
  1067                     req.write(tmpl("error", error=str(inst)))
  1074             else:
  1068             else:
  1075                 req.write(tmpl("notfound", repo=virtual))
  1069                 req.write(tmpl("notfound", repo=virtual))
  1076         else:
  1070         else:
  1077             if req.form.has_key('static'):
  1071             if req.form.has_key('static'):
  1078                 static = os.path.join(templatepath(), "static")
  1072                 static = os.path.join(templater.templatepath(), "static")
  1079                 fname = req.form['static'][0]
  1073                 fname = req.form['static'][0]
  1080                 req.write(staticfile(static, fname)
  1074                 req.write(staticfile(static, fname)
  1081                           or tmpl("error", error="%r not found" % fname))
  1075                           or tmpl("error", error="%r not found" % fname))
  1082             else:
  1076             else:
  1083                 req.write(tmpl("index", entries=entries))
  1077                 req.write(tmpl("index", entries=entries))