##// END OF EJS Templates
artifacts: expose a special auth-token based artifacts download urls....
artifacts: expose a special auth-token based artifacts download urls. This will allow sharing download to external locations used new generated artifact download tokens. This feature allows also serving downloads using secret urls with all the fancy logic of our auth tokens.

File last commit:

r3774:2d2d2139 new-ui
r4003:09f31efc default
Show More
changelog.mako
326 lines | 12.9 KiB | application/x-mako | MakoHtmlLexer
changelog: rename changelog to commits pages
r3742 ## -*- coding: utf-8 -*-
<%inherit file="/base/base.mako"/>
<%def name="title()">
${_('%s Changelog') % c.repo_name}
%if c.changelog_for_path:
/${c.changelog_for_path}
%endif
%if c.rhodecode_name:
&middot; ${h.branding(c.rhodecode_name)}
%endif
</%def>
<%def name="breadcrumbs_links()">
%if c.changelog_for_path:
/${c.changelog_for_path}
%endif
</%def>
<%def name="menu_bar_nav()">
${self.menu_items(active='repositories')}
</%def>
<%def name="menu_bar_subnav()">
${self.repo_menu(active='commits')}
</%def>
<%def name="main()">
<div class="box">
dan
commits: new commits page based on new UI
r3758
changelog: rename changelog to commits pages
r3742 <div class="title">
dan
commits: new commits page based on new UI
r3758 <div id="filter_changelog">
${h.hidden('branch_filter')}
%if c.selected_name:
<div class="btn btn-default" id="clear_filter" >
${_('Clear filter')}
</div>
%endif
</div>
<div class="pull-left obsolete-toggle">
% if h.is_hg(c.rhodecode_repo):
% if c.show_hidden:
<a class="action-link" href="${h.current_route_path(request, evolve=0)}">${_('Hide obsolete/hidden')}</a>
% else:
<a class="action-link" href="${h.current_route_path(request, evolve=1)}">${_('Show obsolete/hidden')}</a>
% endif
% else:
<span class="action-link disabled">${_('Show hidden')}</span>
% endif
</div>
changelog: rename changelog to commits pages
r3742 <ul class="links">
<li>
dan
commits: new commits page based on new UI
r3758
changelog: rename changelog to commits pages
r3742 %if c.rhodecode_db_repo.fork:
<span>
<a id="compare_fork_button"
title="${h.tooltip(_('Compare fork with %s' % c.rhodecode_db_repo.fork.repo_name))}"
class="btn btn-small"
href="${h.route_path('repo_compare',
repo_name=c.rhodecode_db_repo.fork.repo_name,
source_ref_type=c.rhodecode_db_repo.landing_rev[0],
source_ref=c.rhodecode_db_repo.landing_rev[1],
target_ref_type='branch' if request.GET.get('branch') else c.rhodecode_db_repo.landing_rev[0],
target_ref=request.GET.get('branch') or c.rhodecode_db_repo.landing_rev[1],
_query=dict(merge=1, target_repo=c.repo_name))}"
>
${_('Compare fork with Parent (%s)' % c.rhodecode_db_repo.fork.repo_name)}
</a>
</span>
%endif
## pr open link
%if h.is_hg(c.rhodecode_repo) or h.is_git(c.rhodecode_repo):
<span>
<a id="open_new_pull_request" class="btn btn-small btn-success" href="${h.route_path('pullrequest_new',repo_name=c.repo_name)}">
${_('Open new pull request')}
</a>
</span>
%endif
</li>
</ul>
</div>
% if c.pagination:
<script type="text/javascript" src="${h.asset('js/src/plugins/jquery.commits-graph.js')}"></script>
<div class="graph-header">
${self.breadcrumbs('breadcrumbs_light')}
</div>
<div id="graph">
<div class="graph-col-wrapper">
<div id="graph_nodes">
<div id="graph_canvas"></div>
</div>
dan
commits: new commits page based on new UI
r3758 <div id="graph_content" class="graph_full_width">
changelog: rename changelog to commits pages
r3742
<div class="table">
<table id="changesets" class="rctable">
<tr>
## checkbox
dan
commits: new commits page based on new UI
r3758 <th colspan="4">
## clear selection
<div title="${_('Clear selection')}" class="btn btn-sm" id="rev_range_clear" style="display:none">
<i class="icon-cancel-circled2"></i>
</div>
<div class="btn btn-sm disabled" disabled="disabled" id="rev_range_more" style="display:none;">${_('Select second commit')}</div>
<a href="#" class="btn btn-success btn-sm" id="rev_range_container" style="display:none;"></a>
</th>
changelog: rename changelog to commits pages
r3742
## commit message expand arrow
<th></th>
<th>${_('Commit Message')}</th>
<th>${_('Age')}</th>
<th>${_('Author')}</th>
<th>${_('Refs')}</th>
## comments
<th></th>
</tr>
<tbody class="commits-range">
<%include file='changelog_elements.mako'/>
</tbody>
</table>
</div>
</div>
<div class="pagination-wh pagination-left">
${c.pagination.pager('$link_previous ~2~ $link_next')}
</div>
dan
commits: new commits page based on new UI
r3758 <div id="commit-counter" data-total=${c.total_cs} class="pull-right">
${_ungettext('showing %d out of %d commit', 'showing %d out of %d commits', c.showing_commits) % (c.showing_commits, c.total_cs)}
</div>
changelog: rename changelog to commits pages
r3742 </div>
<script type="text/javascript">
var cache = {};
$(function(){
// Create links to commit ranges when range checkboxes are selected
var $commitCheckboxes = $('.commit-range');
// cache elements
dan
commits: new commits page based on new UI
r3758 var $commitRangeMore = $('#rev_range_more');
changelog: rename changelog to commits pages
r3742 var $commitRangeContainer = $('#rev_range_container');
var $commitRangeClear = $('#rev_range_clear');
var checkboxRangeSelector = function(e){
var selectedCheckboxes = [];
for (pos in $commitCheckboxes){
if($commitCheckboxes[pos].checked){
selectedCheckboxes.push($commitCheckboxes[pos]);
}
}
var open_new_pull_request = $('#open_new_pull_request');
dan
commits: new commits page based on new UI
r3758
if (open_new_pull_request) {
var selected_changes = selectedCheckboxes.length;
open_new_pull_request.hide();
if (selected_changes == 1) {
open_new_pull_request.html(_gettext('Open new pull request for selected commit'));
} else {
open_new_pull_request.html(_gettext('Open new pull request'));
}
open_new_pull_request.show();
changelog: rename changelog to commits pages
r3742 }
dan
commits: new commits page based on new UI
r3758 if (selectedCheckboxes.length > 0) {
$('#compare_fork_button').hide();
var commitStart = $(selectedCheckboxes[selectedCheckboxes.length-1]).data();
var revStart = commitStart.commitId;
var commitEnd = $(selectedCheckboxes[0]).data();
var revEnd = commitEnd.commitId;
changelog: rename changelog to commits pages
r3742
commits: use short-id for range selector
r3774 var lbl_start = '{0}'.format(commitStart.commitIdx, commitStart.shortId);
var lbl_end = '{0}'.format(commitEnd.commitIdx, commitEnd.shortId);
ui: fixed commits page details
r3771
dan
commits: new commits page based on new UI
r3758 var url = pyroutes.url('repo_commit', {'repo_name': '${c.repo_name}', 'commit_id': revStart+'...'+revEnd});
ui: fixed commits page details
r3771 var link = _gettext('Show commit range {0} ... {1}').format(lbl_start, lbl_end);
dan
commits: new commits page based on new UI
r3758
if (selectedCheckboxes.length > 1) {
$commitRangeClear.show();
$commitRangeMore.hide();
changelog: rename changelog to commits pages
r3742
dan
commits: new commits page based on new UI
r3758 $commitRangeContainer
.attr('href',url)
.html(link)
.show();
changelog: rename changelog to commits pages
r3742
dan
commits: new commits page based on new UI
r3758 } else {
$commitRangeContainer.hide();
$commitRangeClear.show();
$commitRangeMore.show();
}
changelog: rename changelog to commits pages
r3742
dan
commits: new commits page based on new UI
r3758 // pull-request link
if (selectedCheckboxes.length == 1){
var _url = pyroutes.url('pullrequest_new', {'repo_name': '${c.repo_name}', 'commit': revEnd});
open_new_pull_request.attr('href', _url);
} else {
var _url = pyroutes.url('pullrequest_new', {'repo_name': '${c.repo_name}'});
open_new_pull_request.attr('href', _url);
}
changelog: rename changelog to commits pages
r3742 } else {
$commitRangeContainer.hide();
$commitRangeClear.hide();
dan
commits: new commits page based on new UI
r3758 $commitRangeMore.hide();
changelog: rename changelog to commits pages
r3742
%if c.branch_name:
dan
commits: new commits page based on new UI
r3758 var _url = pyroutes.url('pullrequest_new', {'repo_name': '${c.repo_name}', 'branch':'${c.branch_name}'});
changelog: rename changelog to commits pages
r3742 open_new_pull_request.attr('href', _url);
%else:
dan
commits: new commits page based on new UI
r3758 var _url = pyroutes.url('pullrequest_new', {'repo_name': '${c.repo_name}'});
changelog: rename changelog to commits pages
r3742 open_new_pull_request.attr('href', _url);
%endif
$('#compare_fork_button').show();
}
};
$commitCheckboxes.on('click', checkboxRangeSelector);
$commitRangeClear.on('click',function(e) {
$commitCheckboxes.attr('checked', false);
checkboxRangeSelector();
e.preventDefault();
});
// make sure the buttons are consistent when navigate back and forth
checkboxRangeSelector();
var msgs = $('.message');
// get first element height
var el = $('#graph_content .container')[0];
var row_h = el.clientHeight;
for (var i=0; i < msgs.length; i++) {
var m = msgs[i];
var h = m.clientHeight;
var pad = $(m).css('padding');
if (h > row_h) {
var offset = row_h - (h+12);
$(m.nextElementSibling).css('display','block');
$(m.nextElementSibling).css('margin-top',offset+'px');
}
}
$("#clear_filter").on("click", function() {
var filter = {'repo_name': '${c.repo_name}'};
window.location = pyroutes.url('repo_commits', filter);
});
$("#branch_filter").select2({
'dropdownAutoWidth': true,
'width': 'resolve',
dan
commits: new commits page based on new UI
r3758 'placeholder': "${c.selected_name or _('Branch filter')}",
changelog: rename changelog to commits pages
r3742 containerCssClass: "drop-menu",
dropdownCssClass: "drop-menu-dropdown",
query: function(query){
var key = 'cache';
var cached = cache[key] ;
if(cached) {
var data = {results: []};
//filter results
$.each(cached.results, function(){
var section = this.text;
var children = [];
$.each(this.children, function(){
if(query.term.length == 0 || this.text.toUpperCase().indexOf(query.term.toUpperCase()) >= 0 ){
children.push({'id': this.id, 'text': this.text, 'type': this.type})
}
});
data.results.push({'text': section, 'children': children});
query.callback({results: data.results});
});
}else{
$.ajax({
url: pyroutes.url('repo_refs_changelog_data', {'repo_name': '${c.repo_name}'}),
data: {},
dataType: 'json',
type: 'GET',
success: function(data) {
cache[key] = data;
query.callback({results: data.results});
}
})
}
}
});
$('#branch_filter').on('change', function(e){
var data = $('#branch_filter').select2('data');
//type: branch_closed
var selected = data.text;
var filter = {'repo_name': '${c.repo_name}'};
if(data.type == 'branch' || data.type == 'branch_closed'){
filter["branch"] = selected;
if (data.type == 'branch_closed') {
filter["evolve"] = '1';
}
}
else if (data.type == 'book'){
filter["bookmark"] = selected;
}
window.location = pyroutes.url('repo_commits', filter);
});
commitsController = new CommitsController();
% if not c.changelog_for_path:
commitsController.reloadGraph();
% endif
});
</script>
</div>
% else:
${_('There are no changes yet')}
% endif
</div>
</%def>