diff --git a/mercurial/hgweb/hgwebdir_mod.py b/mercurial/hgweb/hgwebdir_mod.py --- a/mercurial/hgweb/hgwebdir_mod.py +++ b/mercurial/hgweb/hgwebdir_mod.py @@ -90,6 +90,18 @@ class hgwebdir(object): "node": nodeid, "url": url} def entries(sortcolumn="", descending=False, **map): + def sessionvars(**map): + fields = [] + if req.form.has_key('style'): + style = req.form['style'][0] + if style != get('web', 'style', ''): + fields.append(('style', style)) + + separator = url[-1] == '?' and ';' or '?' + for name, value in fields: + yield dict(name=name, value=value, separator=separator) + separator = ';' + rows = [] parity = 0 for name, path in self.repos: @@ -123,6 +135,7 @@ class hgwebdir(object): description_sort=description.upper() or "unknown", lastchange=d, lastchange_sort=d[1]-d[0], + sessionvars=sessionvars, archives=archivelist(u, "tip", url)) if (not sortcolumn or (sortcolumn, descending) == self.repos_sorted): diff --git a/templates/gitweb/map b/templates/gitweb/map --- a/templates/gitweb/map +++ b/templates/gitweb/map @@ -49,7 +49,7 @@ shortlog = shortlog.tmpl shortlogentry = '#date|age# ago#author##desc|strip|firstline|escape#changeset | manifest' filelogentry = '#date|age# ago#desc|strip|firstline|escape#file | annotate #rename%filelogrename#' archiveentry = ' | #type|escape# ' -indexentry = '#name|escape##description##contact|obfuscate##lastchange|age# ago #archives%archiveentry#' +indexentry = '#name|escape##description##contact|obfuscate##lastchange|age# ago #archives%archiveentry#' index = index.tmpl urlparameter = '#separator##name#=#value|urlescape#' hiddenformentry = '' diff --git a/templates/map b/templates/map --- a/templates/map +++ b/templates/map @@ -46,7 +46,7 @@ filediffparent = '