mercurial/hgweb/hgwebdir_mod.py
changeset 2514 419c42223bee
parent 2509 6350b01d173f
child 2535 b8ccf6386db7
equal deleted inserted replaced
2513:f22e3e8fd457 2514:419c42223bee
     6 # This software may be used and distributed according to the terms
     6 # This software may be used and distributed according to the terms
     7 # of the GNU General Public License, incorporated herein by reference.
     7 # of the GNU General Public License, incorporated herein by reference.
     8 
     8 
     9 import os
     9 import os
    10 from mercurial.demandload import demandload
    10 from mercurial.demandload import demandload
    11 demandload(globals(), "ConfigParser")
    11 demandload(globals(), "ConfigParser mimetools cStringIO")
    12 demandload(globals(), "mercurial:ui,hg,util,templater")
    12 demandload(globals(), "mercurial:ui,hg,util,templater")
    13 demandload(globals(), "mercurial.hgweb.hgweb_mod:hgweb")
    13 demandload(globals(), "mercurial.hgweb.hgweb_mod:hgweb")
    14 demandload(globals(), "mercurial.hgweb.common:get_mtime,staticfile")
    14 demandload(globals(), "mercurial.hgweb.common:get_mtime,staticfile")
    15 from mercurial.i18n import gettext as _
    15 from mercurial.i18n import gettext as _
    16 
    16 
    46                         self.repos.append((name.lstrip(os.sep), repo))
    46                         self.repos.append((name.lstrip(os.sep), repo))
    47             self.repos.sort()
    47             self.repos.sort()
    48 
    48 
    49     def run(self, req):
    49     def run(self, req):
    50         def header(**map):
    50         def header(**map):
    51             yield tmpl("header", **map)
    51             header_file = cStringIO.StringIO(''.join(tmpl("header", **map)))
       
    52             msg = mimetools.Message(header_file, 0)
       
    53             req.header(msg.items())
       
    54             yield header_file.read()
    52 
    55 
    53         def footer(**map):
    56         def footer(**map):
    54             yield tmpl("footer", motd=self.motd, **map)
    57             yield tmpl("footer", motd=self.motd, **map)
    55 
    58 
    56         m = os.path.join(templater.templatepath(), "map")
    59         m = os.path.join(templater.templatepath(), "map")
   130                 req.write(tmpl("notfound", repo=virtual))
   133                 req.write(tmpl("notfound", repo=virtual))
   131         else:
   134         else:
   132             if req.form.has_key('static'):
   135             if req.form.has_key('static'):
   133                 static = os.path.join(templater.templatepath(), "static")
   136                 static = os.path.join(templater.templatepath(), "static")
   134                 fname = req.form['static'][0]
   137                 fname = req.form['static'][0]
   135                 req.write(staticfile(static, fname)
   138                 req.write(staticfile(static, fname, req)
   136                           or tmpl("error", error="%r not found" % fname))
   139                           or tmpl("error", error="%r not found" % fname))
   137             else:
   140             else:
   138                 sortable = ["name", "description", "contact", "lastchange"]
   141                 sortable = ["name", "description", "contact", "lastchange"]
   139                 sortcolumn, descending = self.repos_sorted
   142                 sortcolumn, descending = self.repos_sorted
   140                 if req.form.has_key('sort'):
   143                 if req.form.has_key('sort'):