##// END OF EJS Templates
issue-trackers: cache the fetched issue tracker paterns before loop iteration in summary and compare.
marcink -
r2446:acc26706 default
parent child Browse files
Show More
@@ -1,112 +1,117 b''
1 ## Changesets table !
1 ## Changesets table !
2 <%namespace name="base" file="/base/base.mako"/>
2 <%namespace name="base" file="/base/base.mako"/>
3
3
4 %if c.ancestor:
4 %if c.ancestor:
5 <div class="ancestor">${_('Common Ancestor Commit')}:
5 <div class="ancestor">${_('Common Ancestor Commit')}:
6 <a href="${h.route_path('repo_commit', repo_name=c.repo_name, commit_id=c.ancestor)}">
6 <a href="${h.route_path('repo_commit', repo_name=c.repo_name, commit_id=c.ancestor)}">
7 ${h.short_id(c.ancestor)}
7 ${h.short_id(c.ancestor)}
8 </a>. ${_('Compare was calculated based on this shared commit.')}
8 </a>. ${_('Compare was calculated based on this shared commit.')}
9 <input id="common_ancestor" type="hidden" name="common_ancestor" value="${c.ancestor}">
9 <input id="common_ancestor" type="hidden" name="common_ancestor" value="${c.ancestor}">
10 </div>
10 </div>
11 %endif
11 %endif
12
12
13 <div class="container">
13 <div class="container">
14 <input type="hidden" name="__start__" value="revisions:sequence">
14 <input type="hidden" name="__start__" value="revisions:sequence">
15 <table class="rctable compare_view_commits">
15 <table class="rctable compare_view_commits">
16 <tr>
16 <tr>
17 <th>${_('Time')}</th>
17 <th>${_('Time')}</th>
18 <th>${_('Author')}</th>
18 <th>${_('Author')}</th>
19 <th>${_('Commit')}</th>
19 <th>${_('Commit')}</th>
20 <th></th>
20 <th></th>
21 <th>${_('Description')}</th>
21 <th>${_('Description')}</th>
22 </tr>
22 </tr>
23 ## to speed up lookups cache some functions before the loop
24 <%
25 active_patterns = h.get_active_pattern_entries(c.repo_name)
26 urlify_commit_message = h.partial(h.urlify_commit_message, active_pattern_entries=active_patterns)
27 %>
23 %for commit in c.commit_ranges:
28 %for commit in c.commit_ranges:
24 <tr id="row-${commit.raw_id}"
29 <tr id="row-${commit.raw_id}"
25 commit_id="${commit.raw_id}"
30 commit_id="${commit.raw_id}"
26 class="compare_select"
31 class="compare_select"
27 style="${'display: none' if c.collapse_all_commits else ''}"
32 style="${'display: none' if c.collapse_all_commits else ''}"
28 >
33 >
29 <td class="td-time">
34 <td class="td-time">
30 ${h.age_component(commit.date)}
35 ${h.age_component(commit.date)}
31 </td>
36 </td>
32 <td class="td-user">
37 <td class="td-user">
33 ${base.gravatar_with_user(commit.author, 16)}
38 ${base.gravatar_with_user(commit.author, 16)}
34 </td>
39 </td>
35 <td class="td-hash">
40 <td class="td-hash">
36 <code>
41 <code>
37 <a href="${h.route_path('repo_commit', repo_name=c.target_repo.repo_name, commit_id=commit.raw_id)}">
42 <a href="${h.route_path('repo_commit', repo_name=c.target_repo.repo_name, commit_id=commit.raw_id)}">
38 r${commit.revision}:${h.short_id(commit.raw_id)}
43 r${commit.revision}:${h.short_id(commit.raw_id)}
39 </a>
44 </a>
40 ${h.hidden('revisions',commit.raw_id)}
45 ${h.hidden('revisions',commit.raw_id)}
41 </code>
46 </code>
42 </td>
47 </td>
43 <td class="expand_commit"
48 <td class="expand_commit"
44 data-commit-id="${commit.raw_id}"
49 data-commit-id="${commit.raw_id}"
45 title="${_( 'Expand commit message')}"
50 title="${_( 'Expand commit message')}"
46 >
51 >
47 <div class="show_more_col">
52 <div class="show_more_col">
48 <i class="show_more"></i>
53 <i class="show_more"></i>
49 </div>
54 </div>
50 </td>
55 </td>
51 <td class="mid td-description">
56 <td class="mid td-description">
52 <div class="log-container truncate-wrap">
57 <div class="log-container truncate-wrap">
53 <div
58 <div
54 id="c-${commit.raw_id}"
59 id="c-${commit.raw_id}"
55 class="message truncate"
60 class="message truncate"
56 data-message-raw="${commit.message}"
61 data-message-raw="${commit.message}"
57 >
62 >
58 ${h.urlify_commit_message(commit.message, c.repo_name)}
63 ${urlify_commit_message(commit.message, c.repo_name)}
59 </div>
64 </div>
60 </div>
65 </div>
61 </td>
66 </td>
62 </tr>
67 </tr>
63 %endfor
68 %endfor
64 <tr class="compare_select_hidden" style="${'' if c.collapse_all_commits else 'display: none'}">
69 <tr class="compare_select_hidden" style="${'' if c.collapse_all_commits else 'display: none'}">
65 <td colspan="5">
70 <td colspan="5">
66 ${_ungettext('%s commit hidden','%s commits hidden', len(c.commit_ranges)) % len(c.commit_ranges)},
71 ${_ungettext('%s commit hidden','%s commits hidden', len(c.commit_ranges)) % len(c.commit_ranges)},
67 <a href="#" onclick="$('.compare_select').show();$('.compare_select_hidden').hide(); return false">${_ungettext('show it','show them', len(c.commit_ranges))}</a>
72 <a href="#" onclick="$('.compare_select').show();$('.compare_select_hidden').hide(); return false">${_ungettext('show it','show them', len(c.commit_ranges))}</a>
68 </td>
73 </td>
69 </tr>
74 </tr>
70 % if not c.commit_ranges:
75 % if not c.commit_ranges:
71 <tr class="compare_select">
76 <tr class="compare_select">
72 <td colspan="5">
77 <td colspan="5">
73 ${_('No commits in this compare')}
78 ${_('No commits in this compare')}
74 </td>
79 </td>
75 </tr>
80 </tr>
76 % endif
81 % endif
77 </table>
82 </table>
78 <input type="hidden" name="__end__" value="revisions:sequence">
83 <input type="hidden" name="__end__" value="revisions:sequence">
79
84
80 </div>
85 </div>
81
86
82 <script>
87 <script>
83 $('.expand_commit').on('click',function(e){
88 $('.expand_commit').on('click',function(e){
84 var target_expand = $(this);
89 var target_expand = $(this);
85 var cid = target_expand.data('commitId');
90 var cid = target_expand.data('commitId');
86
91
87 // ## TODO: dan: extract styles into css, and just toggleClass('open') here
92 // ## TODO: dan: extract styles into css, and just toggleClass('open') here
88 if (target_expand.hasClass('open')){
93 if (target_expand.hasClass('open')){
89 $('#c-'+cid).css({
94 $('#c-'+cid).css({
90 'height': '1.5em',
95 'height': '1.5em',
91 'white-space': 'nowrap',
96 'white-space': 'nowrap',
92 'text-overflow': 'ellipsis',
97 'text-overflow': 'ellipsis',
93 'overflow':'hidden'
98 'overflow':'hidden'
94 });
99 });
95 target_expand.removeClass('open');
100 target_expand.removeClass('open');
96 }
101 }
97 else {
102 else {
98 $('#c-'+cid).css({
103 $('#c-'+cid).css({
99 'height': 'auto',
104 'height': 'auto',
100 'white-space': 'pre-line',
105 'white-space': 'pre-line',
101 'text-overflow': 'initial',
106 'text-overflow': 'initial',
102 'overflow':'visible'
107 'overflow':'visible'
103 });
108 });
104 target_expand.addClass('open');
109 target_expand.addClass('open');
105 }
110 }
106 });
111 });
107
112
108 $('.compare_select').on('click',function(e){
113 $('.compare_select').on('click',function(e){
109 var cid = $(this).attr('commit_id');
114 var cid = $(this).attr('commit_id');
110 $('#row-'+cid).toggleClass('hl', !$('#row-'+cid).hasClass('hl'));
115 $('#row-'+cid).toggleClass('hl', !$('#row-'+cid).hasClass('hl'));
111 });
116 });
112 </script>
117 </script>
@@ -1,136 +1,142 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%namespace name="base" file="/base/base.mako"/>
2 <%namespace name="base" file="/base/base.mako"/>
3 %if c.repo_commits:
3 %if c.repo_commits:
4 <table class="rctable repo_summary table_disp">
4 <table class="rctable repo_summary table_disp">
5 <tr>
5 <tr>
6
6
7 <th class="status" colspan="2"></th>
7 <th class="status" colspan="2"></th>
8 <th>${_('Commit')}</th>
8 <th>${_('Commit')}</th>
9 <th>${_('Commit message')}</th>
9 <th>${_('Commit message')}</th>
10 <th>${_('Age')}</th>
10 <th>${_('Age')}</th>
11 <th>${_('Author')}</th>
11 <th>${_('Author')}</th>
12 <th>${_('Refs')}</th>
12 <th>${_('Refs')}</th>
13 </tr>
13 </tr>
14
15 ## to speed up lookups cache some functions before the loop
16 <%
17 active_patterns = h.get_active_pattern_entries(c.repo_name)
18 urlify_commit_message = h.partial(h.urlify_commit_message, active_pattern_entries=active_patterns)
19 %>
14 %for cnt,cs in enumerate(c.repo_commits):
20 %for cnt,cs in enumerate(c.repo_commits):
15 <tr class="parity${cnt%2}">
21 <tr class="parity${cnt%2}">
16
22
17 <td class="td-status">
23 <td class="td-status">
18 %if c.statuses.get(cs.raw_id):
24 %if c.statuses.get(cs.raw_id):
19 <div class="changeset-status-ico shortlog">
25 <div class="changeset-status-ico shortlog">
20 %if c.statuses.get(cs.raw_id)[2]:
26 %if c.statuses.get(cs.raw_id)[2]:
21 <a class="tooltip" title="${_('Commit status: %s\nClick to open associated pull request #%s') % (c.statuses.get(cs.raw_id)[0], c.statuses.get(cs.raw_id)[2])}" href="${h.route_path('pullrequest_show',repo_name=c.statuses.get(cs.raw_id)[3],pull_request_id=c.statuses.get(cs.raw_id)[2])}">
27 <a class="tooltip" title="${_('Commit status: %s\nClick to open associated pull request #%s') % (c.statuses.get(cs.raw_id)[0], c.statuses.get(cs.raw_id)[2])}" href="${h.route_path('pullrequest_show',repo_name=c.statuses.get(cs.raw_id)[3],pull_request_id=c.statuses.get(cs.raw_id)[2])}">
22 <div class="${'flag_status {}'.format(c.statuses.get(cs.raw_id)[0])}"></div>
28 <div class="${'flag_status {}'.format(c.statuses.get(cs.raw_id)[0])}"></div>
23 </a>
29 </a>
24 %else:
30 %else:
25 <a class="tooltip" title="${_('Commit status: {}').format(h.commit_status_lbl(c.statuses.get(cs.raw_id)[0]))}" href="${h.route_path('repo_commit',repo_name=c.repo_name,commit_id=cs.raw_id,_anchor='comment-%s' % c.comments[cs.raw_id][0].comment_id)}">
31 <a class="tooltip" title="${_('Commit status: {}').format(h.commit_status_lbl(c.statuses.get(cs.raw_id)[0]))}" href="${h.route_path('repo_commit',repo_name=c.repo_name,commit_id=cs.raw_id,_anchor='comment-%s' % c.comments[cs.raw_id][0].comment_id)}">
26 <div class="${'flag_status {}'.format(c.statuses.get(cs.raw_id)[0])}"></div>
32 <div class="${'flag_status {}'.format(c.statuses.get(cs.raw_id)[0])}"></div>
27 </a>
33 </a>
28 %endif
34 %endif
29 </div>
35 </div>
30 %else:
36 %else:
31 <div class="tooltip flag_status not_reviewed" title="${_('Commit status: Not Reviewed')}"></div>
37 <div class="tooltip flag_status not_reviewed" title="${_('Commit status: Not Reviewed')}"></div>
32 %endif
38 %endif
33 </td>
39 </td>
34 <td class="td-comments">
40 <td class="td-comments">
35 %if c.comments.get(cs.raw_id,[]):
41 %if c.comments.get(cs.raw_id,[]):
36 <a title="${_('Commit has comments')}" href="${h.route_path('repo_commit',repo_name=c.repo_name,commit_id=cs.raw_id,_anchor='comment-%s' % c.comments[cs.raw_id][0].comment_id)}">
42 <a title="${_('Commit has comments')}" href="${h.route_path('repo_commit',repo_name=c.repo_name,commit_id=cs.raw_id,_anchor='comment-%s' % c.comments[cs.raw_id][0].comment_id)}">
37 <i class="icon-comment"></i> ${len(c.comments[cs.raw_id])}
43 <i class="icon-comment"></i> ${len(c.comments[cs.raw_id])}
38 </a>
44 </a>
39 %endif
45 %endif
40 </td>
46 </td>
41 <td class="td-commit">
47 <td class="td-commit">
42 <pre><a href="${h.route_path('repo_commit', repo_name=c.repo_name, commit_id=cs.raw_id)}">${h.show_id(cs)}</a></pre>
48 <pre><a href="${h.route_path('repo_commit', repo_name=c.repo_name, commit_id=cs.raw_id)}">${h.show_id(cs)}</a></pre>
43 </td>
49 </td>
44
50
45 <td class="td-description mid">
51 <td class="td-description mid">
46 <div class="log-container truncate-wrap">
52 <div class="log-container truncate-wrap">
47 <div class="message truncate" id="c-${cs.raw_id}">${h.urlify_commit_message(cs.message, c.repo_name)}</div>
53 <div class="message truncate" id="c-${cs.raw_id}">${urlify_commit_message(cs.message, c.repo_name)}</div>
48 </div>
54 </div>
49 </td>
55 </td>
50
56
51 <td class="td-time">
57 <td class="td-time">
52 ${h.age_component(cs.date)}
58 ${h.age_component(cs.date)}
53 </td>
59 </td>
54 <td class="td-user author">
60 <td class="td-user author">
55 ${base.gravatar_with_user(cs.author)}
61 ${base.gravatar_with_user(cs.author)}
56 </td>
62 </td>
57
63
58 <td class="td-tags">
64 <td class="td-tags">
59 <div class="autoexpand">
65 <div class="autoexpand">
60 %if h.is_hg(c.rhodecode_repo):
66 %if h.is_hg(c.rhodecode_repo):
61 %for book in cs.bookmarks:
67 %for book in cs.bookmarks:
62 <span class="booktag tag" title="${h.tooltip(_('Bookmark %s') % book)}">
68 <span class="booktag tag" title="${h.tooltip(_('Bookmark %s') % book)}">
63 <a href="${h.route_path('repo_files:default_path',repo_name=c.repo_name,commit_id=cs.raw_id, _query=dict(at=book))}"><i class="icon-bookmark"></i>${h.shorter(book)}</a>
69 <a href="${h.route_path('repo_files:default_path',repo_name=c.repo_name,commit_id=cs.raw_id, _query=dict(at=book))}"><i class="icon-bookmark"></i>${h.shorter(book)}</a>
64 </span>
70 </span>
65 %endfor
71 %endfor
66 %endif
72 %endif
67 ## tags
73 ## tags
68 %for tag in cs.tags:
74 %for tag in cs.tags:
69 <span class="tagtag tag" title="${h.tooltip(_('Tag %s') % tag)}">
75 <span class="tagtag tag" title="${h.tooltip(_('Tag %s') % tag)}">
70 <a href="${h.route_path('repo_files:default_path',repo_name=c.repo_name,commit_id=cs.raw_id, _query=dict(at=tag))}"><i class="icon-tag"></i>${h.shorter(tag)}</a>
76 <a href="${h.route_path('repo_files:default_path',repo_name=c.repo_name,commit_id=cs.raw_id, _query=dict(at=tag))}"><i class="icon-tag"></i>${h.shorter(tag)}</a>
71 </span>
77 </span>
72 %endfor
78 %endfor
73
79
74 ## branch
80 ## branch
75 %if cs.branch:
81 %if cs.branch:
76 <span class="branchtag tag" title="${h.tooltip(_('Branch %s') % cs.branch)}">
82 <span class="branchtag tag" title="${h.tooltip(_('Branch %s') % cs.branch)}">
77 <a href="${h.route_path('repo_changelog',repo_name=c.repo_name,_query=dict(branch=cs.branch))}"><i class="icon-code-fork"></i>${h.shorter(cs.branch)}</a>
83 <a href="${h.route_path('repo_changelog',repo_name=c.repo_name,_query=dict(branch=cs.branch))}"><i class="icon-code-fork"></i>${h.shorter(cs.branch)}</a>
78 </span>
84 </span>
79 %endif
85 %endif
80 </div>
86 </div>
81 </td>
87 </td>
82 </tr>
88 </tr>
83 %endfor
89 %endfor
84
90
85 </table>
91 </table>
86
92
87 <script type="text/javascript">
93 <script type="text/javascript">
88 $(document).pjax('#shortlog_data .pager_link','#shortlog_data', {timeout: 2000, scrollTo: false, push: false});
94 $(document).pjax('#shortlog_data .pager_link','#shortlog_data', {timeout: 2000, scrollTo: false, push: false});
89 $(document).on('pjax:success', function(){ timeagoActivate(); });
95 $(document).on('pjax:success', function(){ timeagoActivate(); });
90 </script>
96 </script>
91
97
92 <div class="pagination-wh pagination-left">
98 <div class="pagination-wh pagination-left">
93 ${c.repo_commits.pager('$link_previous ~2~ $link_next')}
99 ${c.repo_commits.pager('$link_previous ~2~ $link_next')}
94 </div>
100 </div>
95 %else:
101 %else:
96
102
97 %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
103 %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
98 <div class="quick_start">
104 <div class="quick_start">
99 <div class="fieldset">
105 <div class="fieldset">
100 <div class="left-label">${_('Add or upload files directly via RhodeCode:')}</div>
106 <div class="left-label">${_('Add or upload files directly via RhodeCode:')}</div>
101 <div class="right-content">
107 <div class="right-content">
102 <div id="add_node_id" class="add_node">
108 <div id="add_node_id" class="add_node">
103 <a href="${h.route_path('repo_files_add_file',repo_name=c.repo_name,commit_id=0, f_path='', _anchor='edit')}" class="btn btn-default">${_('Add New File')}</a>
109 <a href="${h.route_path('repo_files_add_file',repo_name=c.repo_name,commit_id=0, f_path='', _anchor='edit')}" class="btn btn-default">${_('Add New File')}</a>
104 </div>
110 </div>
105 </div>
111 </div>
106 %endif
112 %endif
107 </div>
113 </div>
108
114
109 %if not h.is_svn(c.rhodecode_repo):
115 %if not h.is_svn(c.rhodecode_repo):
110 <div class="fieldset">
116 <div class="fieldset">
111 <div class="left-label">${_('Push new repo:')}</div>
117 <div class="left-label">${_('Push new repo:')}</div>
112 <div class="right-content">
118 <div class="right-content">
113 <pre>
119 <pre>
114 ${c.rhodecode_repo.alias} clone ${c.clone_repo_url}
120 ${c.rhodecode_repo.alias} clone ${c.clone_repo_url}
115 ${c.rhodecode_repo.alias} add README # add first file
121 ${c.rhodecode_repo.alias} add README # add first file
116 ${c.rhodecode_repo.alias} commit -m "Initial" # commit with message
122 ${c.rhodecode_repo.alias} commit -m "Initial" # commit with message
117 ${c.rhodecode_repo.alias} push ${'origin master' if h.is_git(c.rhodecode_repo) else ''} # push changes back
123 ${c.rhodecode_repo.alias} push ${'origin master' if h.is_git(c.rhodecode_repo) else ''} # push changes back
118 </pre>
124 </pre>
119 </div>
125 </div>
120 </div>
126 </div>
121 <div class="fieldset">
127 <div class="fieldset">
122 <div class="left-label">${_('Existing repository?')}</div>
128 <div class="left-label">${_('Existing repository?')}</div>
123 <div class="right-content">
129 <div class="right-content">
124 <pre>
130 <pre>
125 %if h.is_git(c.rhodecode_repo):
131 %if h.is_git(c.rhodecode_repo):
126 git remote add origin ${c.clone_repo_url}
132 git remote add origin ${c.clone_repo_url}
127 git push -u origin master
133 git push -u origin master
128 %else:
134 %else:
129 hg push ${c.clone_repo_url}
135 hg push ${c.clone_repo_url}
130 %endif
136 %endif
131 </pre>
137 </pre>
132 </div>
138 </div>
133 </div>
139 </div>
134 %endif
140 %endif
135 </div>
141 </div>
136 %endif
142 %endif
General Comments 0
You need to be logged in to leave comments. Login now