##// END OF EJS Templates
caches: use individual namespaces per user to prevent beaker caching problems....
caches: use individual namespaces per user to prevent beaker caching problems. - especially for mysql in case large number of data in caches there could be critical errors storing cache, and thus preventing users from authentication. This is caused by the fact that we used single namespace for ALL users. It means it grew as number of users grew reaching mysql single column limit. This changes the behaviour and now we use namespace per-user it means that each user-id will have it's own cache namespace fragmenting maximum column data to a single user cache. Which we should never reach.

File last commit:

r2486:669f4133 default
r2591:36829a17 stable
Show More
changelog.mako
314 lines | 12.5 KiB | application/x-mako | MakoHtmlLexer
templating: use .mako as extensions for template files.
r1282 ## -*- 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='changelog')}
</%def>
<%def name="main()">
<div class="box">
<div class="title">
${self.repo_page_title(c.rhodecode_db_repo)}
<ul class="links">
<li>
<a href="#" class="btn btn-small" id="rev_range_container" style="display:none;"></a>
%if c.rhodecode_db_repo.fork:
<span>
<a id="compare_fork_button"
dan
tooltip: use consistent h.tooltip usage to set tooltips.
r1843 title="${h.tooltip(_('Compare fork with %s' % c.rhodecode_db_repo.fork.repo_name))}"
templating: use .mako as extensions for template files.
r1282 class="btn btn-small"
compare: migrated code from pylons to pyramid views.
r1957 href="${h.route_path('repo_compare',
templating: use .mako as extensions for template files.
r1282 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],
compare: migrated code from pylons to pyramid views.
r1957 _query=dict(merge=1, target_repo=c.repo_name))}"
html: fixed found syntax problems
r1283 >
compare: migrated code from pylons to pyramid views.
r1957 ${_('Compare fork with Parent (%s)' % c.rhodecode_db_repo.fork.repo_name)}
templating: use .mako as extensions for template files.
r1282 </a>
</span>
%endif
## pr open link
%if h.is_hg(c.rhodecode_repo) or h.is_git(c.rhodecode_repo):
<span>
pull-requests: migrated code from pylons to pyramid
r1974 <a id="open_new_pull_request" class="btn btn-small btn-success" href="${h.route_path('pullrequest_new',repo_name=c.repo_name)}">
templating: use .mako as extensions for template files.
r1282 ${_('Open new pull request')}
</a>
</span>
%endif
## clear selection
<div title="${_('Clear selection')}" class="btn" id="rev_range_clear" style="display:none">
${_('Clear selection')}
</div>
</li>
</ul>
</div>
% if c.pagination:
js: organized and updated JS packages....
r2123 <script type="text/javascript" src="${h.asset('js/src/plugins/jquery.commits-graph.js')}"></script>
templating: use .mako as extensions for template files.
r1282
<div class="graph-header">
<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>
${self.breadcrumbs('breadcrumbs_light')}
commits: hide evolve commits. Fixes #5392
r2144 <div class="pull-right">
% 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: added dynamic loaders to extend number of commits inside changelog....
r1379 <div id="commit-counter" data-total=${c.total_cs} class="pull-right">
changelog: ported to pyramid views.
r1931 ${_ungettext('showing %d out of %d commit', 'showing %d out of %d commits', c.showing_commits) % (c.showing_commits, c.total_cs)}
changelog: added dynamic loaders to extend number of commits inside changelog....
r1379 </div>
templating: use .mako as extensions for template files.
r1282 </div>
changelog: added dynamic loaders to extend number of commits inside changelog....
r1379 <div id="graph">
<div class="graph-col-wrapper">
<div id="graph_nodes">
<div id="graph_canvas"></div>
</div>
<div id="graph_content" class="main-content graph_full_width">
templating: use .mako as extensions for template files.
r1282
changelog: added dynamic loaders to extend number of commits inside changelog....
r1379 <div class="table">
<table id="changesets" class="rctable">
<tr>
## checkbox
<th></th>
<th colspan="2"></th>
templating: use .mako as extensions for template files.
r1282
changelog: added dynamic loaders to extend number of commits inside changelog....
r1379 <th>${_('Commit')}</th>
commits: hide evolve commits. Fixes #5392
r2144 ## Mercurial phase/evolve state
<th></th>
changelog: added dynamic loaders to extend number of commits inside changelog....
r1379 ## commit message expand arrow
<th></th>
<th>${_('Commit Message')}</th>
templating: use .mako as extensions for template files.
r1282
changelog: added dynamic loaders to extend number of commits inside changelog....
r1379 <th>${_('Age')}</th>
<th>${_('Author')}</th>
<th>${_('Refs')}</th>
</tr>
templating: use .mako as extensions for template files.
r1282
changelog: added dynamic loaders to extend number of commits inside changelog....
r1379 <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>
</div>
templating: use .mako as extensions for template files.
r1282
changelog: added dynamic loaders to extend number of commits inside changelog....
r1379 <script type="text/javascript">
templating: use .mako as extensions for template files.
r1282 var cache = {};
$(function(){
// Create links to commit ranges when range checkboxes are selected
changelog: added dynamic loaders to extend number of commits inside changelog....
r1379 var $commitCheckboxes = $('.commit-range');
templating: use .mako as extensions for template files.
r1282 // cache elements
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');
if(open_new_pull_request){
var selected_changes = selectedCheckboxes.length;
pull-requests: allow opening PR from changelog based on selected refs for git as well as hg.
r2486 if (selected_changes > 1 || selected_changes == 1 && templateContext.repo_type == 'svn') {
templating: use .mako as extensions for template files.
r1282 open_new_pull_request.hide();
} else {
if (selected_changes == 1) {
open_new_pull_request.html(_gettext('Open new pull request for selected commit'));
} else if (selected_changes == 0) {
open_new_pull_request.html(_gettext('Open new pull request'));
}
open_new_pull_request.show();
}
}
if (selectedCheckboxes.length>0){
var revEnd = selectedCheckboxes[0].name;
var revStart = selectedCheckboxes[selectedCheckboxes.length-1].name;
repo-commits: ported changeset code into pyramid views....
r1951 var url = pyroutes.url('repo_commit',
templating: use .mako as extensions for template files.
r1282 {'repo_name': '${c.repo_name}',
repo-commits: ported changeset code into pyramid views....
r1951 'commit_id': revStart+'...'+revEnd});
templating: use .mako as extensions for template files.
r1282
var link = (revStart == revEnd)
? _gettext('Show selected commit __S')
: _gettext('Show selected commits __S ... __E');
link = link.replace('__S', revStart.substr(0,6));
link = link.replace('__E', revEnd.substr(0,6));
$commitRangeContainer
.attr('href',url)
.html(link)
.show();
$commitRangeClear.show();
pull-requests: migrated code from pylons to pyramid
r1974 var _url = pyroutes.url('pullrequest_new',
templating: use .mako as extensions for template files.
r1282 {'repo_name': '${c.repo_name}',
'commit': revEnd});
open_new_pull_request.attr('href', _url);
$('#compare_fork_button').hide();
} else {
$commitRangeContainer.hide();
$commitRangeClear.hide();
%if c.branch_name:
pull-requests: migrated code from pylons to pyramid
r1974 var _url = pyroutes.url('pullrequest_new',
templating: use .mako as extensions for template files.
r1282 {'repo_name': '${c.repo_name}',
'branch':'${c.branch_name}'});
open_new_pull_request.attr('href', _url);
%else:
pull-requests: migrated code from pylons to pyramid
r1974 var _url = pyroutes.url('pullrequest_new',
templating: use .mako as extensions for template files.
r1282 {'repo_name': '${c.repo_name}'});
open_new_pull_request.attr('href', _url);
%endif
$('#compare_fork_button').show();
}
};
$commitCheckboxes.on('click', checkboxRangeSelector);
$commitRangeClear.on('click',function(e) {
html: fixed found syntax problems
r1283 $commitCheckboxes.attr('checked', false);
templating: use .mako as extensions for template files.
r1282 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}'};
changelog: ported to pyramid views.
r1931 window.location = pyroutes.url('repo_changelog', filter);
templating: use .mako as extensions for template files.
r1282 });
$("#branch_filter").select2({
'dropdownAutoWidth': true,
'width': 'resolve',
'placeholder': "${c.selected_name or _('Filter changelog')}",
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');
commits: hide evolve commits. Fixes #5392
r2144 //type: branch_closed
templating: use .mako as extensions for template files.
r1282 var selected = data.text;
var filter = {'repo_name': '${c.repo_name}'};
if(data.type == 'branch' || data.type == 'branch_closed'){
filter["branch"] = selected;
commits: hide evolve commits. Fixes #5392
r2144 if (data.type == 'branch_closed') {
filter["evolve"] = '1';
}
templating: use .mako as extensions for template files.
r1282 }
else if (data.type == 'book'){
filter["bookmark"] = selected;
}
changelog: ported to pyramid views.
r1931 window.location = pyroutes.url('repo_changelog', filter);
templating: use .mako as extensions for template files.
r1282 });
changelog: added dynamic loaders to extend number of commits inside changelog....
r1379 commitsController = new CommitsController();
% if not c.changelog_for_path:
commitsController.reloadGraph();
% endif
templating: use .mako as extensions for template files.
r1282
});
</script>
changelog: added dynamic loaders to extend number of commits inside changelog....
r1379 </div>
% else:
templating: use .mako as extensions for template files.
r1282 ${_('There are no changes yet')}
changelog: added dynamic loaders to extend number of commits inside changelog....
r1379 % endif
templating: use .mako as extensions for template files.
r1282 </div>
</%def>