diff --git a/rhodecode/controllers/files.py b/rhodecode/controllers/files.py --- a/rhodecode/controllers/files.py +++ b/rhodecode/controllers/files.py @@ -271,6 +271,7 @@ class FilesController(BaseRepoController fileformat = None revision = None ext = None + subrepos = request.GET.get('subrepos') == 'true' for a_type, ext_data in ARCHIVE_SPECS.items(): archive_spec = fname.split(ext_data[1]) @@ -300,7 +301,7 @@ class FilesController(BaseRepoController import tempfile archive = tempfile.mkstemp()[1] t = open(archive, 'wb') - cs.fill_archive(stream=t, kind=fileformat) + cs.fill_archive(stream=t, kind=fileformat, subrepos=subrepos) def get_chunked_archive(archive): stream = open(archive, 'rb') diff --git a/rhodecode/templates/summary/summary.html b/rhodecode/templates/summary/summary.html --- a/rhodecode/templates/summary/summary.html +++ b/rhodecode/templates/summary/summary.html @@ -164,6 +164,9 @@ h.url('files_archive_home',repo_name=c.dbrepo.repo_name, fname='tip'+archive['extension']),class_="archive_icon")} %endfor + + ${_('with subrepos')} + %endif @@ -278,27 +281,28 @@ 'display','none'); }) - - YUE.on('download_options','change',function(e){ - var new_cs = e.target.options[e.target.selectedIndex]; - var tmpl_links = {} - %for cnt,archive in enumerate(c.rhodecode_repo._get_archives()): - tmpl_links['${archive['type']}'] = '${h.link_to(archive['type'], - h.url('files_archive_home',repo_name=c.dbrepo.repo_name, - fname='__CS__'+archive['extension']),class_="archive_icon")}'; - %endfor - + var tmpl_links = {} + %for cnt,archive in enumerate(c.rhodecode_repo._get_archives()): + tmpl_links['${archive['type']}'] = '${h.link_to(archive['type'], + h.url('files_archive_home',repo_name=c.dbrepo.repo_name, + fname='__CS__'+archive['extension'],subrepos='__SUB__'),class_="archive_icon")}'; + %endfor + + YUE.on(['download_options','archive_subrepos'],'change',function(e){ + var sm = YUD.get('download_options'); + var new_cs = sm.options[sm.selectedIndex]; for(k in tmpl_links){ - var s = YUD.get(k+'_link') + var s = YUD.get(k+'_link'); title_tmpl = "${_('Download %s as %s') % ('__CS_NAME__','__CS_EXT__')}"; s.title = title_tmpl.replace('__CS_NAME__',new_cs.text); s.title = s.title.replace('__CS_EXT__',k); - s.innerHTML = tmpl_links[k].replace('__CS__',new_cs.value); + var url = tmpl_links[k].replace('__CS__',new_cs.value); + var subrepos = YUD.get('archive_subrepos').checked + url = url.replace('__SUB__',subrepos); + s.innerHTML = url } - - }) - + });