##// END OF EJS Templates
downloads: added more archive options that we support. Exposing this to users so they actually...
dan -
r4450:9a24f7d4 default
parent child
Show More
Add another comment
@@ -86,6 +86,7 from rhodecode.lib.utils2 import (
86 from rhodecode.lib.markup_renderer import MarkupRenderer, relative_links
86 from rhodecode.lib.markup_renderer import MarkupRenderer, relative_links
87 from rhodecode.lib.vcs.exceptions import CommitDoesNotExistError
87 from rhodecode.lib.vcs.exceptions import CommitDoesNotExistError
88 from rhodecode.lib.vcs.backends.base import BaseChangeset, EmptyCommit
88 from rhodecode.lib.vcs.backends.base import BaseChangeset, EmptyCommit
89 from rhodecode.lib.vcs.conf.settings import ARCHIVE_SPECS
89 from rhodecode.lib.index.search_utils import get_matching_line_offsets
90 from rhodecode.lib.index.search_utils import get_matching_line_offsets
90 from rhodecode.config.conf import DATE_FORMAT, DATETIME_FORMAT
91 from rhodecode.config.conf import DATE_FORMAT, DATETIME_FORMAT
91 from rhodecode.model.changeset_status import ChangesetStatusModel
92 from rhodecode.model.changeset_status import ChangesetStatusModel
@@ -41,7 +41,7 BACKENDS = {
41
41
42
42
43 ARCHIVE_SPECS = [
43 ARCHIVE_SPECS = [
44 ('tbz2', 'application/x-bzip2', 'tbz2'),
44 ('tbz2', 'application/x-bzip2', '.tbz2'),
45 ('tbz2', 'application/x-bzip2', '.tar.bz2'),
45 ('tbz2', 'application/x-bzip2', '.tar.bz2'),
46
46
47 ('tgz', 'application/x-gzip', '.tgz'),
47 ('tgz', 'application/x-gzip', '.tgz'),
@@ -262,10 +262,17 input[type="button"] {
262 }
262 }
263
263
264
264
265 .btn-action-switcher-container{
265 .btn-action-switcher-container {
266 position: absolute;
266 position: absolute;
267 top: 100%;
267 top: 100%;
268 right: 0;
268
269 &.left-align {
270 left: 0;
271 }
272 &.right-align {
273 right: 0;
274 }
275
269 }
276 }
270
277
271 .btn-action-switcher {
278 .btn-action-switcher {
@@ -28,7 +28,7
28 <i class="icon-down"></i>
28 <i class="icon-down"></i>
29 </a>
29 </a>
30
30
31 <div class="btn-action-switcher-container">
31 <div class="btn-action-switcher-container right-align">
32 <ul class="btn-action-switcher" role="menu" style="min-width: 200px">
32 <ul class="btn-action-switcher" role="menu" style="min-width: 200px">
33 <li>
33 <li>
34 <a class="action_button" href="${h.route_path('repo_files_upload_file',repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path)}">
34 <a class="action_button" href="${h.route_path('repo_files_upload_file',repo_name=c.repo_name,commit_id=c.commit.raw_id,f_path=c.f_path)}">
@@ -516,7 +516,7
516 <i class="icon-down"></i>
516 <i class="icon-down"></i>
517 </a>
517 </a>
518
518
519 <div class="btn-action-switcher-container" id="update-commits-switcher">
519 <div class="btn-action-switcher-container right-align" id="update-commits-switcher">
520 <ul class="btn-action-switcher" role="menu" style="min-width: 300px;">
520 <ul class="btn-action-switcher" role="menu" style="min-width: 300px;">
521 <li>
521 <li>
522 <a href="#forceUpdate" onclick="updateController.forceUpdateCommits(this); return false">
522 <a href="#forceUpdate" onclick="updateController.forceUpdateCommits(this); return false">
@@ -184,14 +184,37
184 ${h.link_to(_('Enable downloads'),h.route_path('edit_repo',repo_name=c.repo_name, _anchor='repo_enable_downloads'))}
184 ${h.link_to(_('Enable downloads'),h.route_path('edit_repo',repo_name=c.repo_name, _anchor='repo_enable_downloads'))}
185 % endif
185 % endif
186 % else:
186 % else:
187 <span class="enabled">
187 <div class="enabled pull-left" style="margin-right: 10px">
188
189 <div class="btn-group btn-group-actions">
190 <a class="archive_link btn btn-small" data-ext=".zip" href="${h.route_path('repo_archivefile',repo_name=c.rhodecode_db_repo.repo_name, fname=c.rhodecode_db_repo.landing_ref_name+'.zip')}">
191 <i class="icon-download"></i>
192 ${c.rhodecode_db_repo.landing_ref_name}.zip
193 ## replaced by some JS on select
194 </a>
195
196 <a class="tooltip btn btn-primary" style="margin-left: -1px" data-toggle="dropdown" aria-pressed="false" role="button" title="${_('more download options')}">
197 <i class="icon-down"></i>
198 </a>
188
199
189 <a id="archive_link" class="btn btn-small" href="${h.route_path('repo_archivefile',repo_name=c.rhodecode_db_repo.repo_name, fname=c.rhodecode_db_repo.landing_ref_name+'.zip')}">
200 <div class="btn-action-switcher-container left-align">
190 <i class="icon-download"></i>
201 <ul class="btn-action-switcher" role="menu" style="min-width: 200px">
191 ${c.rhodecode_db_repo.landing_ref_name}.zip
202 % for a_type, content_type, extension in h.ARCHIVE_SPECS:
192 ## replaced by some JS on select
203 % if extension not in ['.zip']:
193 </a>
204 <li>
194 </span>
205
206 <a class="archive_link" data-ext="${extension}" href="${h.route_path('repo_archivefile',repo_name=c.rhodecode_db_repo.repo_name, fname=c.rhodecode_db_repo.landing_ref_name+extension)}">
207 <i class="icon-download"></i>
208 ${c.rhodecode_db_repo.landing_ref_name+extension}
209 </a>
210 </li>
211 % endif
212 % endfor
213 </ul>
214 </div>
215 </div>
216
217 </div>
195 ${h.hidden('download_options')}
218 ${h.hidden('download_options')}
196 % endif
219 % endif
197 </div>
220 </div>
@@ -87,16 +87,22
87 // on change of download options
87 // on change of download options
88 $('#download_options').on('change', function(e) {
88 $('#download_options').on('change', function(e) {
89 // format of Object {text: "v0.0.3", type: "tag", id: "rev"}
89 // format of Object {text: "v0.0.3", type: "tag", id: "rev"}
90 var ext = '.zip';
90 var selectedReference = e.added;
91 var selected_cs = e.added;
92 var fname = e.added.raw_id + ext;
93 var href = pyroutes.url('repo_archivefile', {'repo_name': templateContext.repo_name, 'fname':fname});
94 // set new label
95 var ico = '<i class="icon-download"></i>';
91 var ico = '<i class="icon-download"></i>';
96 $('#archive_link').html(ico+' {0}{1}'.format(escapeHtml(e.added.text), ext));
97
92
98 // set new url to button,
93 $.each($('.archive_link'), function (key, val) {
99 $('#archive_link').attr('href', href)
94 var ext = $(this).data('ext');
95 var fname = selectedReference.raw_id + ext;
96 var href = pyroutes.url('repo_archivefile', {
97 'repo_name': templateContext.repo_name,
98 'fname': fname
99 });
100 // set new label
101 $(this).html(ico + ' {0}{1}'.format(escapeHtml(e.added.text), ext));
102 // set new url to button,
103 $(this).attr('href', href)
104 });
105
100 });
106 });
101
107
102
108
General Comments 0
You need to be logged in to leave comments. Login now