##// END OF EJS Templates
html: don't use tabs
Mads Kiilerich -
r3197:b4f40152 beta
parent child Browse files
Show More
@@ -3,13 +3,13 b''
3 3 {% block sidebarlogo %}
4 4 <h3>Support RhodeCode development.</h3>
5 5 <div style="text-align:center">
6 <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
7 <input type="hidden" name="cmd" value="_s-xclick">
8 <input type="hidden" name="hosted_button_id" value="8U2LLRPLBKWDU">
9 <input style="border:0px !important" type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif"
10 border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
11 <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
12 </form>
6 <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
7 <input type="hidden" name="cmd" value="_s-xclick">
8 <input type="hidden" name="hosted_button_id" value="8U2LLRPLBKWDU">
9 <input style="border:0px !important" type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif"
10 border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
11 <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
12 </form>
13 13 <div style="padding:5px">
14 14 <a href="http://flattr.com/thing/167489/RhodeCode" target="_blank">
15 15 <img src="http://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0" /></a>
@@ -16,39 +16,39 b''
16 16 </%def>
17 17
18 18 <%def name="page_nav()">
19 ${self.menu('admin')}
19 ${self.menu('admin')}
20 20 </%def>
21 21 <%def name="main()">
22 22 <div class="box">
23 <!-- box / title -->
24 <div class="title">
25 ${self.breadcrumbs()}
26 </div>
27 <!-- end box / title -->
28 <div class="table">
29 <div id="user_log">
30 ${c.log_data}
31 </div>
32 </div>
23 <!-- box / title -->
24 <div class="title">
25 ${self.breadcrumbs()}
26 </div>
27 <!-- end box / title -->
28 <div class="table">
29 <div id="user_log">
30 ${c.log_data}
31 </div>
32 </div>
33 33 </div>
34 34
35 35 <script>
36 36 YUE.on('j_filter','click',function(){
37 var jfilter = YUD.get('j_filter');
38 if(YUD.hasClass(jfilter, 'initial')){
39 jfilter.value = '';
40 }
37 var jfilter = YUD.get('j_filter');
38 if(YUD.hasClass(jfilter, 'initial')){
39 jfilter.value = '';
40 }
41 41 });
42 42 var fix_j_filter_width = function(len){
43 43 YUD.setStyle(YUD.get('j_filter'),'width',Math.max(80, len*6.50)+'px');
44 44 }
45 45 YUE.on('j_filter','keyup',function(){
46 fix_j_filter_width(YUD.get('j_filter').value.length);
46 fix_j_filter_width(YUD.get('j_filter').value.length);
47 47 });
48 48 YUE.on('filter_form','submit',function(e){
49 YUE.preventDefault(e)
49 YUE.preventDefault(e)
50 50 var val = YUD.get('j_filter').value;
51 window.location = "${url.current(filter='__FILTER__')}".replace('__FILTER__',val);
51 window.location = "${url.current(filter='__FILTER__')}".replace('__FILTER__',val);
52 52 });
53 53 fix_j_filter_width(YUD.get('j_filter').value.length);
54 54 </script>
@@ -1,40 +1,40 b''
1 1 ## -*- coding: utf-8 -*-
2 2 %if c.users_log:
3 3 <table>
4 <tr>
5 <th class="left">${_('Username')}</th>
6 <th class="left">${_('Action')}</th>
7 <th class="left">${_('Repository')}</th>
8 <th class="left">${_('Date')}</th>
9 <th class="left">${_('From IP')}</th>
10 </tr>
4 <tr>
5 <th class="left">${_('Username')}</th>
6 <th class="left">${_('Action')}</th>
7 <th class="left">${_('Repository')}</th>
8 <th class="left">${_('Date')}</th>
9 <th class="left">${_('From IP')}</th>
10 </tr>
11 11
12 %for cnt,l in enumerate(c.users_log):
13 <tr class="parity${cnt%2}">
14 <td>
12 %for cnt,l in enumerate(c.users_log):
13 <tr class="parity${cnt%2}">
14 <td>
15 15 %if l.user is not None:
16 16 ${h.link_to(l.user.username,h.url('edit_user', id=l.user.user_id))}
17 17 %else:
18 18 ${l.username}
19 19 %endif
20 20 </td>
21 <td>${h.action_parser(l)[0]()}
22 <div class="journal_action_params">
21 <td>${h.action_parser(l)[0]()}
22 <div class="journal_action_params">
23 23 ${h.literal(h.action_parser(l)[1]())}
24 24 </div>
25 </td>
26 <td>
27 %if l.repository is not None:
28 ${h.link_to(l.repository.repo_name,h.url('summary_home',repo_name=l.repository.repo_name))}
29 %else:
30 ${l.repository_name}
31 %endif
32 </td>
25 </td>
26 <td>
27 %if l.repository is not None:
28 ${h.link_to(l.repository.repo_name,h.url('summary_home',repo_name=l.repository.repo_name))}
29 %else:
30 ${l.repository_name}
31 %endif
32 </td>
33 33
34 <td>${h.fmt_date(l.action_date)}</td>
35 <td>${l.user_ip}</td>
36 </tr>
37 %endfor
34 <td>${h.fmt_date(l.action_date)}</td>
35 <td>${l.user_ip}</td>
36 </tr>
37 %endfor
38 38 </table>
39 39
40 40 <script type="text/javascript">
@@ -60,5 +60,5 b''
60 60 ${c.users_log.pager('$link_previous ~2~ $link_next')}
61 61 </div>
62 62 %else:
63 ${_('No actions yet')}
63 ${_('No actions yet')}
64 64 %endif
@@ -12,7 +12,7 b''
12 12 </%def>
13 13
14 14 <%def name="page_nav()">
15 ${self.menu('admin')}
15 ${self.menu('admin')}
16 16 </%def>
17 17
18 18 <%def name="main()">
@@ -25,7 +25,7 b''
25 25 <div class="form">
26 26 <div class="fields">
27 27
28 <h3>${_('Connection settings')}</h3>
28 <h3>${_('Connection settings')}</h3>
29 29 <div class="field">
30 30 <div class="label label-checkbox"><label for="ldap_active">${_('Enable LDAP')}</label></div>
31 31 <div class="checkboxes"><div class="checkbox">${h.checkbox('ldap_active',True,class_='small')}</div></div>
@@ -54,7 +54,7 b''
54 54 <div class="label"><label for="ldap_tls_reqcert">${_('Certificate Checks')}</label></div>
55 55 <div class="select">${h.select('ldap_tls_reqcert',c.tls_reqcert_cur,c.tls_reqcert_choices,class_='small')}</div>
56 56 </div>
57 <h3>${_('Search settings')}</h3>
57 <h3>${_('Search settings')}</h3>
58 58 <div class="field">
59 59 <div class="label"><label for="ldap_base_dn">${_('Base DN')}</label></div>
60 60 <div class="input">${h.text('ldap_base_dn',class_='small')}</div>
@@ -67,7 +67,7 b''
67 67 <div class="label"><label for="ldap_search_scope">${_('LDAP Search Scope')}</label></div>
68 68 <div class="select">${h.select('ldap_search_scope',c.search_scope_cur,c.search_scope_choices,class_='small')}</div>
69 69 </div>
70 <h3>${_('Attribute mappings')}</h3>
70 <h3>${_('Attribute mappings')}</h3>
71 71 <div class="field">
72 72 <div class="label"><label for="ldap_attr_login">${_('Login Attribute')}</label></div>
73 73 <div class="input">${h.text('ldap_attr_login',class_='small')}</div>
@@ -10,7 +10,7 b''
10 10 </%def>
11 11
12 12 <%def name="page_nav()">
13 ${self.menu('admin')}
13 ${self.menu('admin')}
14 14 </%def>
15 15
16 16 <%def name="main()">
@@ -59,7 +59,7 b" YUE.on('mark_all_read','click',function("
59 59
60 60 var current_filter = "${c.current_filter}";
61 61 if (YUD.get(current_filter)){
62 YUD.addClass(current_filter, 'active');
62 YUD.addClass(current_filter, 'active');
63 63 }
64 64 </script>
65 65 </%def>
@@ -12,7 +12,7 b''
12 12 </%def>
13 13
14 14 <%def name="page_nav()">
15 ${self.menu('admin')}
15 ${self.menu('admin')}
16 16 </%def>
17 17
18 18 <%def name="main()">
@@ -36,49 +36,49 b''
36 36 </div>
37 37 </div>
38 38 </div>
39 <div class="field">
40 <div class="label">
41 <label for="default_repo_perm">${_('Repository')}:</label>
42 </div>
43 <div class="select">
44 ${h.select('default_repo_perm','',c.repo_perms_choices)}
39 <div class="field">
40 <div class="label">
41 <label for="default_repo_perm">${_('Repository')}:</label>
42 </div>
43 <div class="select">
44 ${h.select('default_repo_perm','',c.repo_perms_choices)}
45 45
46 ${h.checkbox('overwrite_default_repo','true')}
47 <label for="overwrite_default_repo">
48 <span class="tooltip"
49 title="${h.tooltip(_('All default permissions on each repository will be reset to choosen permission, note that all custom default permission on repositories will be lost'))}">
50 ${_('overwrite existing settings')}</span> </label>
51 </div>
52 </div>
53 <div class="field">
54 <div class="label">
55 <label for="default_group_perm">${_('Repository group')}:</label>
56 </div>
57 <div class="select">
58 ${h.select('default_group_perm','',c.group_perms_choices)}
46 ${h.checkbox('overwrite_default_repo','true')}
47 <label for="overwrite_default_repo">
48 <span class="tooltip"
49 title="${h.tooltip(_('All default permissions on each repository will be reset to choosen permission, note that all custom default permission on repositories will be lost'))}">
50 ${_('overwrite existing settings')}</span> </label>
51 </div>
52 </div>
53 <div class="field">
54 <div class="label">
55 <label for="default_group_perm">${_('Repository group')}:</label>
56 </div>
57 <div class="select">
58 ${h.select('default_group_perm','',c.group_perms_choices)}
59 59 ${h.checkbox('overwrite_default_group','true')}
60 60 <label for="overwrite_default_group">
61 61 <span class="tooltip"
62 62 title="${h.tooltip(_('All default permissions on each repository group will be reset to choosen permission, note that all custom default permission on repositories group will be lost'))}">
63 63 ${_('overwrite existing settings')}</span> </label>
64 64
65 </div>
66 </div>
67 <div class="field">
68 <div class="label">
69 <label for="default_register">${_('Registration')}:</label>
70 </div>
71 <div class="select">
72 ${h.select('default_register','',c.register_choices)}
73 </div>
74 </div>
65 </div>
66 </div>
67 <div class="field">
68 <div class="label">
69 <label for="default_register">${_('Registration')}:</label>
70 </div>
71 <div class="select">
72 ${h.select('default_register','',c.register_choices)}
73 </div>
74 </div>
75 75 <div class="field">
76 76 <div class="label">
77 77 <label for="default_create">${_('Repository creation')}:</label>
78 78 </div>
79 <div class="select">
80 ${h.select('default_create','',c.create_choices)}
81 </div>
79 <div class="select">
80 ${h.select('default_create','',c.create_choices)}
81 </div>
82 82 </div>
83 83 <div class="field">
84 84 <div class="label">
@@ -88,10 +88,10 b''
88 88 ${h.select('default_fork','',c.fork_choices)}
89 89 </div>
90 90 </div>
91 <div class="buttons">
91 <div class="buttons">
92 92 ${h.submit('save',_('Save'),class_="ui-btn large")}
93 93 ${h.reset('reset',_('Reset'),class_="ui-btn large")}
94 </div>
94 </div>
95 95 </div>
96 96 </div>
97 97 ${h.end_form()}
@@ -14,15 +14,15 b''
14 14 </%def>
15 15
16 16 <%def name="page_nav()">
17 ${self.menu('admin')}
17 ${self.menu('admin')}
18 18 </%def>
19 19
20 20 <%def name="main()">
21 <div class="box">
22 <!-- box / title -->
23 <div class="title">
24 ${self.breadcrumbs()}
25 </div>
21 <div class="box">
22 <!-- box / title -->
23 <div class="title">
24 ${self.breadcrumbs()}
25 </div>
26 26 <%include file="repo_add_base.html"/>
27 27 </div>
28 28 </%def>
@@ -6,11 +6,11 b''
6 6 </%def>
7 7
8 8 <%def name="breadcrumbs_links()">
9 ${_('add new repository')}
9 ${_('add new repository')}
10 10 </%def>
11 11
12 12 <%def name="page_nav()">
13 ${self.menu('admin')}
13 ${self.menu('admin')}
14 14 </%def>
15 15
16 16 <%def name="main()">
@@ -14,7 +14,7 b''
14 14 </%def>
15 15
16 16 <%def name="page_nav()">
17 ${self.menu('admin')}
17 ${self.menu('admin')}
18 18 </%def>
19 19
20 20 <%def name="main()">
@@ -35,24 +35,24 b''
35 35 ${h.text('repo_name',class_="medium")}
36 36 </div>
37 37 </div>
38 <div class="field">
39 <div class="label">
40 <label for="clone_uri">${_('Clone uri')}:</label>
41 </div>
42 <div class="input">
43 ${h.text('clone_uri',class_="medium")}
38 <div class="field">
39 <div class="label">
40 <label for="clone_uri">${_('Clone uri')}:</label>
41 </div>
42 <div class="input">
43 ${h.text('clone_uri',class_="medium")}
44 44 <span class="help-block">${_('Optional http[s] url from which repository should be cloned.')}</span>
45 </div>
46 </div>
47 <div class="field">
48 <div class="label">
49 <label for="repo_group">${_('Repository group')}:</label>
50 </div>
51 <div class="input">
52 ${h.select('repo_group','',c.repo_groups,class_="medium")}
45 </div>
46 </div>
47 <div class="field">
48 <div class="label">
49 <label for="repo_group">${_('Repository group')}:</label>
50 </div>
51 <div class="input">
52 ${h.select('repo_group','',c.repo_groups,class_="medium")}
53 53 <span class="help-block">${_('Optional select a group to put this repository into.')}</span>
54 </div>
55 </div>
54 </div>
55 </div>
56 56 <div class="field">
57 57 <div class="label">
58 58 <label for="repo_type">${_('Type')}:</label>
@@ -104,10 +104,10 b' function ajaxActionUser(user_id, field_i'
104 104 function ajaxActionUsersGroup(users_group_id,field_id){
105 105 var sUrl = "${h.url('delete_repo_users_group',repo_name=c.repo_name)}";
106 106 var callback = {
107 success:function(o){
108 var tr = YUD.get(String(field_id));
109 tr.parentNode.removeChild(tr);
110 },
107 success:function(o){
108 var tr = YUD.get(String(field_id));
109 tr.parentNode.removeChild(tr);
110 },
111 111 failure:function(o){
112 112 alert("${_('Failed to remove users group')}");
113 113 },
@@ -9,7 +9,7 b''
9 9 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}"/> ${h.link_to(_('Admin'),h.url('admin_home'))} &raquo; <span id="repo_count">0</span> ${_('repositories')}
10 10 </%def>
11 11 <%def name="page_nav()">
12 ${self.menu('admin')}
12 ${self.menu('admin')}
13 13 </%def>
14 14 <%def name="main()">
15 15 <div class="box">
@@ -69,7 +69,7 b''
69 69 var myColumnDefs = [
70 70 {key:"menu",label:"",sortable:false,className:"quick_repo_menu hidden"},
71 71 {key:"name",label:"${_('Name')}",sortable:true,
72 sortOptions: { sortFunction: nameSort }},
72 sortOptions: { sortFunction: nameSort }},
73 73 {key:"desc",label:"${_('Description')}",sortable:true},
74 74 {key:"last_changeset",label:"${_('Tip')}",sortable:true,
75 75 sortOptions: { sortFunction: revisionSort }},
@@ -126,11 +126,11 b''
126 126
127 127 };
128 128 YUE.on('q_filter','click',function(){
129 if(!YUD.hasClass('q_filter', 'loaded')){
130 YUD.get('q_filter').value = '';
131 //TODO: load here full list later to do search within groups
132 YUD.addClass('q_filter', 'loaded');
133 }
129 if(!YUD.hasClass('q_filter', 'loaded')){
130 YUD.get('q_filter').value = '';
131 //TODO: load here full list later to do search within groups
132 YUD.addClass('q_filter', 'loaded');
133 }
134 134 });
135 135
136 136 YUE.on('q_filter','keyup',function (e) {
@@ -113,7 +113,7 b' YUE.onDOMReady(function () {'
113 113 YUD.setStyle('add_perm_input', 'display', 'none');
114 114 }
115 115 YAHOO.util.Event.addListener('add_perm', 'click', function () {
116 addPermAction(${_tmpl}, ${c.users_array|n}, ${c.users_groups_array|n});
116 addPermAction(${_tmpl}, ${c.users_array|n}, ${c.users_groups_array|n});
117 117 });
118 118 });
119 119
@@ -41,23 +41,23 b''
41 41 </div>
42 42 </div>
43 43
44 <div class="field">
45 <div class="label label-textarea">
46 <label for="group_description">${_('Description')}:</label>
47 </div>
48 <div class="textarea text-area editor">
49 ${h.textarea('group_description',cols=23,rows=5,class_="medium")}
50 </div>
51 </div>
44 <div class="field">
45 <div class="label label-textarea">
46 <label for="group_description">${_('Description')}:</label>
47 </div>
48 <div class="textarea text-area editor">
49 ${h.textarea('group_description',cols=23,rows=5,class_="medium")}
50 </div>
51 </div>
52 52
53 <div class="field">
54 <div class="label">
55 <label for="group_parent_id">${_('Group parent')}:</label>
56 </div>
57 <div class="input">
58 ${h.select('group_parent_id','',c.repo_groups,class_="medium")}
59 </div>
60 </div>
53 <div class="field">
54 <div class="label">
55 <label for="group_parent_id">${_('Group parent')}:</label>
56 </div>
57 <div class="input">
58 ${h.select('group_parent_id','',c.repo_groups,class_="medium")}
59 </div>
60 </div>
61 61 <div class="field">
62 62 <div class="label">
63 63 <label for="input">${_('Permissions')}:</label>
@@ -10,7 +10,7 b''
10 10 </%def>
11 11
12 12 <%def name="page_nav()">
13 ${self.menu('admin')}
13 ${self.menu('admin')}
14 14 </%def>
15 15
16 16 <%def name="main()">
@@ -26,15 +26,15 b''
26 26 <div class="fields">
27 27 % for hook in c.hooks:
28 28 <div class="field">
29 <div class="label label">
30 <label for="${hook.ui_key}">${hook.ui_key}</label>
31 </div>
32 <div class="input" style="margin-left:280px">
29 <div class="label label">
30 <label for="${hook.ui_key}">${hook.ui_key}</label>
31 </div>
32 <div class="input" style="margin-left:280px">
33 33 ${h.text(hook.ui_key,hook.ui_value,size=60,readonly="readonly")}
34 </div>
34 </div>
35 35 </div>
36 36 % endfor
37 </div>
37 </div>
38 38 </div>
39 39
40 40 <h3>${_('Custom hooks')}</h3>
@@ -10,7 +10,7 b''
10 10 </%def>
11 11
12 12 <%def name="page_nav()">
13 ${self.menu('admin')}
13 ${self.menu('admin')}
14 14 </%def>
15 15
16 16 <%def name="main()">
@@ -27,20 +27,20 b''
27 27 <!-- fields -->
28 28
29 29 <div class="fields">
30 <div class="field">
31 <div class="label label-checkbox">
32 <label for="destroy">${_('rescan option')}:</label>
33 </div>
34 <div class="checkboxes">
35 <div class="checkbox">
36 ${h.checkbox('destroy',True)}
37 <label for="destroy">
38 <span class="tooltip" title="${h.tooltip(_('In case a repository was deleted from filesystem and there are leftovers in the database check this option to scan obsolete data in database and remove it.'))}">
39 ${_('destroy old data')}</span> </label>
40 </div>
30 <div class="field">
31 <div class="label label-checkbox">
32 <label for="destroy">${_('rescan option')}:</label>
33 </div>
34 <div class="checkboxes">
35 <div class="checkbox">
36 ${h.checkbox('destroy',True)}
37 <label for="destroy">
38 <span class="tooltip" title="${h.tooltip(_('In case a repository was deleted from filesystem and there are leftovers in the database check this option to scan obsolete data in database and remove it.'))}">
39 ${_('destroy old data')}</span> </label>
40 </div>
41 41 <span class="help-block">${_('Rescan repositories location for new repositories. Also deletes obsolete if `destroy` flag is checked ')}</span>
42 </div>
43 </div>
42 </div>
43 </div>
44 44
45 45 <div class="buttons">
46 46 ${h.submit('rescan',_('Rescan repositories'),class_="ui-btn large")}
@@ -196,12 +196,12 b''
196 196 <label>${_('Web')}:</label>
197 197 </div>
198 198 <div class="checkboxes">
199 <div class="checkbox">
200 ${h.checkbox('web_push_ssl', 'True')}
201 <label for="web_push_ssl">${_('require ssl for vcs operations')}</label>
202 </div>
199 <div class="checkbox">
200 ${h.checkbox('web_push_ssl', 'True')}
201 <label for="web_push_ssl">${_('require ssl for vcs operations')}</label>
202 </div>
203 203 <span class="help-block">${_('RhodeCode will require SSL for pushing or pulling. If SSL is missing it will return HTTP Error 406: Not Acceptable')}</span>
204 </div>
204 </div>
205 205 </div>
206 206
207 207 <div class="field">
@@ -209,14 +209,14 b''
209 209 <label>${_('Hooks')}:</label>
210 210 </div>
211 211 <div class="checkboxes">
212 <div class="checkbox">
213 ${h.checkbox('hooks_changegroup_update','True')}
214 <label for="hooks_changegroup_update">${_('Update repository after push (hg update)')}</label>
215 </div>
216 <div class="checkbox">
217 ${h.checkbox('hooks_changegroup_repo_size','True')}
218 <label for="hooks_changegroup_repo_size">${_('Show repository size after push')}</label>
219 </div>
212 <div class="checkbox">
213 ${h.checkbox('hooks_changegroup_update','True')}
214 <label for="hooks_changegroup_update">${_('Update repository after push (hg update)')}</label>
215 </div>
216 <div class="checkbox">
217 ${h.checkbox('hooks_changegroup_repo_size','True')}
218 <label for="hooks_changegroup_repo_size">${_('Show repository size after push')}</label>
219 </div>
220 220 <div class="checkbox">
221 221 ${h.checkbox('hooks_changegroup_push_logger','True')}
222 222 <label for="hooks_changegroup_push_logger">${_('Log user push commands')}</label>
@@ -225,7 +225,7 b''
225 225 ${h.checkbox('hooks_outgoing_pull_logger','True')}
226 226 <label for="hooks_outgoing_pull_logger">${_('Log user pull commands')}</label>
227 227 </div>
228 </div>
228 </div>
229 229 <div class="input" style="margin-top:10px">
230 230 ${h.link_to(_('advanced setup'),url('admin_edit_setting',setting_id='hooks'),class_="ui-btn")}
231 231 </div>
@@ -257,9 +257,9 b''
257 257 </div>
258 258 <div class="input">
259 259 ${h.text('paths_root_path',size=30,readonly="readonly")}
260 <span id="path_unlock" class="tooltip"
261 title="${h.tooltip(_('This a crucial application setting. If you are really sure you need to change this, you must restart application in order to make this setting take effect. Click this label to unlock.'))}">
262 ${_('unlock')}</span>
260 <span id="path_unlock" class="tooltip"
261 title="${h.tooltip(_('This a crucial application setting. If you are really sure you need to change this, you must restart application in order to make this setting take effect. Click this label to unlock.'))}">
262 ${_('unlock')}</span>
263 263 <span class="help-block">${_('Location where repositories are stored. After changing this value a restart, and rescan is required')}</span>
264 264 </div>
265 265 </div>
@@ -329,8 +329,8 b''
329 329
330 330 <script type="text/javascript">
331 331 YUE.on('expand_modules','click',function(e){
332 YUD.setStyle('expand_modules_table','display','');
333 YUD.setStyle('expand_modules','display','none');
332 YUD.setStyle('expand_modules_table','display','');
333 YUD.setStyle('expand_modules','display','none');
334 334 })
335 335 </script>
336 336
@@ -13,7 +13,7 b''
13 13 </%def>
14 14
15 15 <%def name="page_nav()">
16 ${self.menu('admin')}
16 ${self.menu('admin')}
17 17 </%def>
18 18
19 19 <%def name="main()">
@@ -93,7 +93,7 b''
93 93 <div class="buttons">
94 94 ${h.submit('save',_('save'),class_="ui-btn large")}
95 95 </div>
96 </div>
96 </div>
97 97 </div>
98 98 ${h.end_form()}
99 99 </div>
@@ -14,7 +14,7 b''
14 14 </%def>
15 15
16 16 <%def name="page_nav()">
17 ${self.menu('admin')}
17 ${self.menu('admin')}
18 18 </%def>
19 19
20 20 <%def name="main()">
@@ -137,7 +137,7 b''
137 137 ${h.submit('save',_('Save'),class_="ui-btn large")}
138 138 ${h.reset('reset',_('Reset'),class_="ui-btn large")}
139 139 </div>
140 </div>
140 </div>
141 141 </div>
142 142 ${h.end_form()}
143 143 </div>
@@ -10,7 +10,7 b''
10 10 </%def>
11 11
12 12 <%def name="page_nav()">
13 ${self.menu('admin')}
13 ${self.menu('admin')}
14 14 </%def>
15 15
16 16 <%def name="main()">
@@ -132,12 +132,12 b' var show_my = function(e){'
132 132 YUD.setStyle('my_container','display','');
133 133 YUD.setStyle('q_filter','display','');
134 134 if(!YUD.hasClass('show_my', 'loaded')){
135 table_renderer(${c.data |n});
135 table_renderer(${c.data |n});
136 136 YUD.addClass('show_my', 'loaded');
137 137 }
138 138 }
139 139 YUE.on('show_my','click',function(e){
140 show_my(e);
140 show_my(e);
141 141 })
142 142
143 143 var show_pullrequests = function(e){
@@ -154,7 +154,7 b' var show_pullrequests = function(e){'
154 154 ypjax(url, 'pullrequests_container');
155 155 }
156 156 YUE.on('show_pullrequests','click',function(e){
157 show_pullrequests(e)
157 show_pullrequests(e)
158 158 })
159 159
160 160 var tabs = {
@@ -173,19 +173,19 b' if (url[1]) {'
173 173 }
174 174
175 175 function table_renderer(data){
176 var myDataSource = new YAHOO.util.DataSource(data);
177 myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
176 var myDataSource = new YAHOO.util.DataSource(data);
177 myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
178 178
179 myDataSource.responseSchema = {
180 resultsList: "records",
181 fields: [
182 {key:"menu"},
183 {key:"raw_name"},
184 {key:"name"},
185 {key:"last_changeset"},
186 {key:"action"},
187 ]
188 };
179 myDataSource.responseSchema = {
180 resultsList: "records",
181 fields: [
182 {key:"menu"},
183 {key:"raw_name"},
184 {key:"name"},
185 {key:"last_changeset"},
186 {key:"action"},
187 ]
188 };
189 189 myDataSource.doBeforeCallback = function(req,raw,res,cb) {
190 190 // This is the filter function
191 191 var data = res.results || [],
@@ -205,76 +205,76 b' function table_renderer(data){'
205 205 return res;
206 206 }
207 207
208 // main table sorting
209 var myColumnDefs = [
210 {key:"menu",label:"",sortable:false,className:"quick_repo_menu hidden"},
211 {key:"name",label:"${_('Name')}",sortable:true,
212 sortOptions: { sortFunction: nameSort }},
213 {key:"last_changeset",label:"${_('Tip')}",sortable:true,
214 sortOptions: { sortFunction: revisionSort }},
215 {key:"action",label:"${_('Action')}",sortable:false},
216 ];
208 // main table sorting
209 var myColumnDefs = [
210 {key:"menu",label:"",sortable:false,className:"quick_repo_menu hidden"},
211 {key:"name",label:"${_('Name')}",sortable:true,
212 sortOptions: { sortFunction: nameSort }},
213 {key:"last_changeset",label:"${_('Tip')}",sortable:true,
214 sortOptions: { sortFunction: revisionSort }},
215 {key:"action",label:"${_('Action')}",sortable:false},
216 ];
217 217
218 var myDataTable = new YAHOO.widget.DataTable("repos_list_wrap", myColumnDefs, myDataSource,{
219 sortedBy:{key:"name",dir:"asc"},
220 paginator: new YAHOO.widget.Paginator({
221 rowsPerPage: 50,
222 alwaysVisible: false,
223 template : "{PreviousPageLink} {FirstPageLink} {PageLinks} {LastPageLink} {NextPageLink}",
224 pageLinks: 5,
225 containerClass: 'pagination-wh',
226 currentPageClass: 'pager_curpage',
227 pageLinkClass: 'pager_link',
228 nextPageLinkLabel: '&gt;',
229 previousPageLinkLabel: '&lt;',
230 firstPageLinkLabel: '&lt;&lt;',
231 lastPageLinkLabel: '&gt;&gt;',
232 containers:['user-paginator']
233 }),
218 var myDataTable = new YAHOO.widget.DataTable("repos_list_wrap", myColumnDefs, myDataSource,{
219 sortedBy:{key:"name",dir:"asc"},
220 paginator: new YAHOO.widget.Paginator({
221 rowsPerPage: 50,
222 alwaysVisible: false,
223 template : "{PreviousPageLink} {FirstPageLink} {PageLinks} {LastPageLink} {NextPageLink}",
224 pageLinks: 5,
225 containerClass: 'pagination-wh',
226 currentPageClass: 'pager_curpage',
227 pageLinkClass: 'pager_link',
228 nextPageLinkLabel: '&gt;',
229 previousPageLinkLabel: '&lt;',
230 firstPageLinkLabel: '&lt;&lt;',
231 lastPageLinkLabel: '&gt;&gt;',
232 containers:['user-paginator']
233 }),
234 234
235 MSG_SORTASC:"${_('Click to sort ascending')}",
236 MSG_SORTDESC:"${_('Click to sort descending')}",
237 MSG_EMPTY:"${_('No records found.')}",
238 MSG_ERROR:"${_('Data error.')}",
239 MSG_LOADING:"${_('Loading...')}",
240 }
241 );
242 myDataTable.subscribe('postRenderEvent',function(oArgs) {
243 tooltip_activate();
244 quick_repo_menu();
245 });
235 MSG_SORTASC:"${_('Click to sort ascending')}",
236 MSG_SORTDESC:"${_('Click to sort descending')}",
237 MSG_EMPTY:"${_('No records found.')}",
238 MSG_ERROR:"${_('Data error.')}",
239 MSG_LOADING:"${_('Loading...')}",
240 }
241 );
242 myDataTable.subscribe('postRenderEvent',function(oArgs) {
243 tooltip_activate();
244 quick_repo_menu();
245 });
246 246
247 var filterTimeout = null;
247 var filterTimeout = null;
248 248
249 updateFilter = function() {
250 // Reset timeout
251 filterTimeout = null;
249 updateFilter = function() {
250 // Reset timeout
251 filterTimeout = null;
252 252
253 // Reset sort
254 var state = myDataTable.getState();
255 state.sortedBy = {key:'name', dir:YAHOO.widget.DataTable.CLASS_ASC};
253 // Reset sort
254 var state = myDataTable.getState();
255 state.sortedBy = {key:'name', dir:YAHOO.widget.DataTable.CLASS_ASC};
256 256
257 // Get filtered data
258 myDataSource.sendRequest(YUD.get('q_filter').value,{
259 success : myDataTable.onDataReturnInitializeTable,
260 failure : myDataTable.onDataReturnInitializeTable,
261 scope : myDataTable,
262 argument: state
263 });
257 // Get filtered data
258 myDataSource.sendRequest(YUD.get('q_filter').value,{
259 success : myDataTable.onDataReturnInitializeTable,
260 failure : myDataTable.onDataReturnInitializeTable,
261 scope : myDataTable,
262 argument: state
263 });
264 264
265 };
266 YUE.on('q_filter','click',function(){
267 if(!YUD.hasClass('q_filter', 'loaded')){
268 YUD.get('q_filter').value = '';
269 //TODO: load here full list later to do search within groups
270 YUD.addClass('q_filter', 'loaded');
271 }
272 });
265 };
266 YUE.on('q_filter','click',function(){
267 if(!YUD.hasClass('q_filter', 'loaded')){
268 YUD.get('q_filter').value = '';
269 //TODO: load here full list later to do search within groups
270 YUD.addClass('q_filter', 'loaded');
271 }
272 });
273 273
274 YUE.on('q_filter','keyup',function (e) {
275 clearTimeout(filterTimeout);
276 filterTimeout = setTimeout(updateFilter,600);
277 });
278 }
274 YUE.on('q_filter','keyup',function (e) {
275 clearTimeout(filterTimeout);
276 filterTimeout = setTimeout(updateFilter,600);
277 });
278 }
279 279 </script>
280 280 </%def>
@@ -10,7 +10,7 b''
10 10 </%def>
11 11
12 12 <%def name="page_nav()">
13 ${self.menu('admin')}
13 ${self.menu('admin')}
14 14 </%def>
15 15
16 16 <%def name="main()">
@@ -36,7 +36,7 b''
36 36 myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
37 37
38 38 myDataSource.responseSchema = {
39 resultsList: "records",
39 resultsList: "records",
40 40 fields: [
41 41 {key: "gravatar"},
42 42 {key: "raw_username"},
@@ -60,7 +60,7 b''
60 60 if (req) {
61 61 req = req.toLowerCase();
62 62 for (i = 0; i<data.length; i++) {
63 var pos = data[i].raw_username.toLowerCase().indexOf(req)
63 var pos = data[i].raw_username.toLowerCase().indexOf(req)
64 64 if (pos != -1) {
65 65 filtered.push(data[i]);
66 66 }
@@ -75,12 +75,12 b''
75 75 var myColumnDefs = [
76 76 {key:"gravatar",label:"",sortable:false,},
77 77 {key:"username",label:"${_('username')}",sortable:true,
78 sortOptions: { sortFunction: linkSort }
78 sortOptions: { sortFunction: linkSort }
79 79 },
80 80 {key:"firstname",label:"${_('firstname')}",sortable:true,},
81 81 {key:"lastname",label:"${_('lastname')}",sortable:true,},
82 82 {key:"last_login",label:"${_('last login')}",sortable:true,
83 sortOptions: { sortFunction: lastLoginSort }},
83 sortOptions: { sortFunction: lastLoginSort }},
84 84 {key:"active",label:"${_('active')}",sortable:true,},
85 85 {key:"admin",label:"${_('admin')}",sortable:true,},
86 86 {key:"ldap",label:"${_('ldap')}",sortable:true,},
@@ -27,62 +27,62 b''
27 27 ${h.form(url('users_group', id=c.users_group.users_group_id),method='put', id='edit_users_group')}
28 28 <div class="form">
29 29 <!-- fields -->
30 <div class="fields">
31 <div class="field">
32 <div class="label">
33 <label for="users_group_name">${_('Group name')}:</label>
34 </div>
35 <div class="input">
36 ${h.text('users_group_name',class_='small')}
37 </div>
38 </div>
30 <div class="fields">
31 <div class="field">
32 <div class="label">
33 <label for="users_group_name">${_('Group name')}:</label>
34 </div>
35 <div class="input">
36 ${h.text('users_group_name',class_='small')}
37 </div>
38 </div>
39 39
40 <div class="field">
41 <div class="label label-checkbox">
42 <label for="users_group_active">${_('Active')}:</label>
43 </div>
44 <div class="checkboxes">
45 ${h.checkbox('users_group_active',value=True)}
46 </div>
47 </div>
48 <div class="field">
40 <div class="field">
41 <div class="label label-checkbox">
42 <label for="users_group_active">${_('Active')}:</label>
43 </div>
44 <div class="checkboxes">
45 ${h.checkbox('users_group_active',value=True)}
46 </div>
47 </div>
48 <div class="field">
49 49 <div class="label">
50 50 <label for="users_group_active">${_('Members')}:</label>
51 51 </div>
52 52 <div class="select">
53 <table>
54 <tr>
55 <td>
56 <div>
57 <div style="float:left">
58 <div class="text" style="padding: 0px 0px 6px;">${_('Choosen group members')}</div>
59 ${h.select('users_group_members',[x[0] for x in c.group_members],c.group_members,multiple=True,size=8,style="min-width:210px")}
60 <div id="remove_all_elements" style="cursor:pointer;text-align:center">
61 ${_('Remove all elements')}
62 <img alt="remove" style="vertical-align:text-bottom" src="${h.url('/images/icons/arrow_right.png')}"/>
63 </div>
64 </div>
65 <div style="float:left;width:20px;padding-top:50px">
66 <img alt="add" id="add_element"
67 style="padding:2px;cursor:pointer"
68 src="${h.url('/images/icons/arrow_left.png')}"/>
69 <br />
70 <img alt="remove" id="remove_element"
71 style="padding:2px;cursor:pointer"
72 src="${h.url('/images/icons/arrow_right.png')}"/>
73 </div>
74 <div style="float:left">
75 <div class="text" style="padding: 0px 0px 6px;">${_('Available members')}</div>
76 ${h.select('available_members',[],c.available_members,multiple=True,size=8,style="min-width:210px")}
77 <div id="add_all_elements" style="cursor:pointer;text-align:center">
78 <img alt="add" style="vertical-align:text-bottom" src="${h.url('/images/icons/arrow_left.png')}"/>
79 ${_('Add all elements')}
80 </div>
81 </div>
82 </div>
83 </td>
84 </tr>
85 </table>
53 <table>
54 <tr>
55 <td>
56 <div>
57 <div style="float:left">
58 <div class="text" style="padding: 0px 0px 6px;">${_('Choosen group members')}</div>
59 ${h.select('users_group_members',[x[0] for x in c.group_members],c.group_members,multiple=True,size=8,style="min-width:210px")}
60 <div id="remove_all_elements" style="cursor:pointer;text-align:center">
61 ${_('Remove all elements')}
62 <img alt="remove" style="vertical-align:text-bottom" src="${h.url('/images/icons/arrow_right.png')}"/>
63 </div>
64 </div>
65 <div style="float:left;width:20px;padding-top:50px">
66 <img alt="add" id="add_element"
67 style="padding:2px;cursor:pointer"
68 src="${h.url('/images/icons/arrow_left.png')}"/>
69 <br />
70 <img alt="remove" id="remove_element"
71 style="padding:2px;cursor:pointer"
72 src="${h.url('/images/icons/arrow_right.png')}"/>
73 </div>
74 <div style="float:left">
75 <div class="text" style="padding: 0px 0px 6px;">${_('Available members')}</div>
76 ${h.select('available_members',[],c.available_members,multiple=True,size=8,style="min-width:210px")}
77 <div id="add_all_elements" style="cursor:pointer;text-align:center">
78 <img alt="add" style="vertical-align:text-bottom" src="${h.url('/images/icons/arrow_left.png')}"/>
79 ${_('Add all elements')}
80 </div>
81 </div>
82 </div>
83 </td>
84 </tr>
85 </table>
86 86 </div>
87 87
88 88 </div>
@@ -40,10 +40,10 b''
40 40 <p class="footer-link">
41 41 <a href="${h.url('bugtracker')}">${_('Submit a bug')}</a>
42 42 </p>
43 <p class="footer-link-right">
44 <a href="${h.url('rhodecode_official')}">RhodeCode${'-%s' % c.rhodecode_instanceid if c.rhodecode_instanceid else ''}</a>
45 ${c.rhodecode_version} &copy; 2010-${h.datetime.today().year} by Marcin Kuzminski
46 </p>
43 <p class="footer-link-right">
44 <a href="${h.url('rhodecode_official')}">RhodeCode${'-%s' % c.rhodecode_instanceid if c.rhodecode_instanceid else ''}</a>
45 ${c.rhodecode_version} &copy; 2010-${h.datetime.today().year} by Marcin Kuzminski
46 </p>
47 47 </div>
48 48 </div>
49 49 </div>
@@ -131,37 +131,37 b''
131 131 </%def>
132 132
133 133 <%def name="menu(current=None)">
134 <%
135 def is_current(selected):
136 if selected == current:
137 return h.literal('class="current"')
138 %>
139 %if current not in ['home','admin']:
140 ##REGULAR MENU
141 <ul id="quick">
142 <!-- repo switcher -->
143 <li>
144 <a class="menu_link" id="repo_switcher" title="${_('Switch repository')}" href="#">
134 <%
135 def is_current(selected):
136 if selected == current:
137 return h.literal('class="current"')
138 %>
139 %if current not in ['home','admin']:
140 ##REGULAR MENU
141 <ul id="quick">
142 <!-- repo switcher -->
143 <li>
144 <a class="menu_link" id="repo_switcher" title="${_('Switch repository')}" href="#">
145 145 <span class="icon">
146 146 <img src="${h.url('/images/icons/database.png')}" alt="${_('Products')}" />
147 147 </span>
148 148 <span>&darr;</span>
149 </a>
150 <ul id="repo_switcher_list" class="repo_switcher">
149 </a>
150 <ul id="repo_switcher_list" class="repo_switcher">
151 151 <li>
152 152 <a href="#">${_('loading...')}</a>
153 153 </li>
154 </ul>
155 </li>
154 </ul>
155 </li>
156 156
157 <li ${is_current('summary')}>
158 <a class="menu_link" title="${_('Summary')}" href="${h.url('summary_home',repo_name=c.repo_name)}">
159 <span class="icon">
160 <img src="${h.url('/images/icons/clipboard_16.png')}" alt="${_('Summary')}" />
161 </span>
162 <span>${_('Summary')}</span>
163 </a>
164 </li>
157 <li ${is_current('summary')}>
158 <a class="menu_link" title="${_('Summary')}" href="${h.url('summary_home',repo_name=c.repo_name)}">
159 <span class="icon">
160 <img src="${h.url('/images/icons/clipboard_16.png')}" alt="${_('Summary')}" />
161 </span>
162 <span>${_('Summary')}</span>
163 </a>
164 </li>
165 165 <li ${is_current('changelog')}>
166 166 <a class="menu_link" title="${_('Changelog')}" href="${h.url('changelog_home',repo_name=c.repo_name)}">
167 167 <span class="icon">
@@ -207,14 +207,14 b''
207 207 %endif
208 208 %endif
209 209
210 <li>${h.link_to(_('fork'),h.url('repo_fork_home',repo_name=c.repo_name),class_='fork')}</li>
210 <li>${h.link_to(_('fork'),h.url('repo_fork_home',repo_name=c.repo_name),class_='fork')}</li>
211 211 %if h.is_hg(c.rhodecode_repo):
212 212 <li>${h.link_to(_('open new pull request'),h.url('pullrequest_home',repo_name=c.repo_name),class_='pull_request')}</li>
213 213 %endif
214 214 %if c.rhodecode_db_repo.fork:
215 215 <li>${h.link_to(_('compare fork'),h.url('compare_url',repo_name=c.repo_name,org_ref_type='branch',org_ref=request.GET.get('branch') or 'default',other_ref_type='branch',other_ref='default',repo=c.rhodecode_db_repo.fork.repo_name),class_='compare_request')}</li>
216 216 %endif
217 <li>${h.link_to(_('search'),h.url('search_repo',search_repo=c.repo_name),class_='search')}</li>
217 <li>${h.link_to(_('search'),h.url('search_repo',search_repo=c.repo_name),class_='search')}</li>
218 218
219 219 %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name) and c.rhodecode_db_repo.enable_locking:
220 220 %if c.rhodecode_db_repo.locked[0]:
@@ -272,7 +272,7 b''
272 272 </a>
273 273 </li>
274 274 ${usermenu()}
275 </ul>
275 </ul>
276 276 <script type="text/javascript">
277 277 YUE.on('repo_switcher','mouseover',function(){
278 278 function qfilter(){
@@ -306,8 +306,8 b''
306 306 return false;
307 307 });
308 308 </script>
309 %else:
310 ##ROOT MENU
309 %else:
310 ##ROOT MENU
311 311 <ul id="quick">
312 312 <li>
313 313 <a class="menu_link" title="${_('Home')}" href="${h.url('home')}">
@@ -345,7 +345,7 b''
345 345 </a>
346 346 </li>
347 347
348 %if h.HasPermissionAll('hg.admin')('access admin main page'):
348 %if h.HasPermissionAll('hg.admin')('access admin main page'):
349 349 <li ${is_current('admin')}>
350 350 <a class="menu_link" title="${_('Admin')}" href="${h.url('admin_home')}">
351 351 <span class="icon">
@@ -355,8 +355,8 b''
355 355 </a>
356 356 ${admin_menu()}
357 357 </li>
358 %endif
358 %endif
359 359 ${usermenu()}
360 </ul>
361 %endif
360 </ul>
361 %endif
362 362 </%def>
@@ -21,18 +21,18 b''
21 21
22 22 %if c.ga_code:
23 23 <!-- Analytics -->
24 <script type="text/javascript">
25 var _gaq = _gaq || [];
26 _gaq.push(['_setAccount', '${c.ga_code}']);
27 _gaq.push(['_trackPageview']);
24 <script type="text/javascript">
25 var _gaq = _gaq || [];
26 _gaq.push(['_setAccount', '${c.ga_code}']);
27 _gaq.push(['_trackPageview']);
28 28
29 (function() {
30 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
31 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
32 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
33 })();
34 </script>
35 %endif
29 (function() {
30 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
31 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
32 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
33 })();
34 </script>
35 %endif
36 36
37 37 ## JAVASCRIPT ##
38 38 <%def name="js()">
@@ -94,7 +94,7 b''
94 94 YUD.addClass('quick_login_link','enabled');
95 95 var usr = YUD.get('username');
96 96 if(usr){
97 usr.focus();
97 usr.focus();
98 98 }
99 99 }
100 100 });
@@ -2,15 +2,15 b''
2 2 <div id="table_wrap" class="yui-skin-sam">
3 3 <table id="bookmarks_data">
4 4 <thead>
5 <tr>
5 <tr>
6 6 <th class="left">${_('Name')}</th>
7 7 <th class="left">${_('Date')}</th>
8 8 <th class="left">${_('Author')}</th>
9 9 <th class="left">${_('Revision')}</th>
10 </tr>
10 </tr>
11 11 </thead>
12 %for cnt,book in enumerate(c.repo_bookmarks.items()):
13 <tr class="parity${cnt%2}">
12 %for cnt,book in enumerate(c.repo_bookmarks.items()):
13 <tr class="parity${cnt%2}">
14 14 <td>
15 15 <span class="logbooks">
16 16 <span class="bookbook">${h.link_to(book[0],
@@ -18,16 +18,16 b''
18 18 </span>
19 19 </td>
20 20 <td><span class="tooltip" title="${h.tooltip(h.age(book[1].date))}">${h.fmt_date(book[1].date)}</span></td>
21 <td title="${book[1].author}">${h.person(book[1].author)}</td>
22 <td>
21 <td title="${book[1].author}">${h.person(book[1].author)}</td>
22 <td>
23 23 <div>
24 24 <pre><a href="${h.url('files_home',repo_name=c.repo_name,revision=book[1].raw_id)}">r${book[1].revision}:${h.short_id(book[1].raw_id)}</a></pre>
25 25 </div>
26 26 </td>
27 </tr>
28 %endfor
27 </tr>
28 %endfor
29 29 </table>
30 30 </div>
31 31 %else:
32 ${_('There are no bookmarks yet')}
32 ${_('There are no bookmarks yet')}
33 33 %endif
@@ -34,16 +34,16 b''
34 34 </div>
35 35 <script type="text/javascript">
36 36 YUE.on('compare_branches','click',function(e){
37 YUE.preventDefault(e);
38 var org = YUQ('input[name=compare_org]:checked')[0];
39 var other = YUQ('input[name=compare_other]:checked')[0];
37 YUE.preventDefault(e);
38 var org = YUQ('input[name=compare_org]:checked')[0];
39 var other = YUQ('input[name=compare_other]:checked')[0];
40 40
41 if(org && other){
42 var compare_url = "${h.url('compare_url',repo_name=c.repo_name,org_ref_type='branch',org_ref='__ORG__',other_ref_type='branch',other_ref='__OTHER__')}";
43 var u = compare_url.replace('__ORG__',org.value)
44 .replace('__OTHER__',other.value);
45 window.location=u;
46 }
41 if(org && other){
42 var compare_url = "${h.url('compare_url',repo_name=c.repo_name,org_ref_type='branch',org_ref='__ORG__',other_ref_type='branch',other_ref='__OTHER__')}";
43 var u = compare_url.replace('__ORG__',org.value)
44 .replace('__OTHER__',other.value);
45 window.location=u;
46 }
47 47 });
48 48 // main table sorting
49 49 var myColumnDefs = [
@@ -10,8 +10,8 b''
10 10 <th class="left">${_('Compare')}</th>
11 11 </tr>
12 12 </thead>
13 %for cnt,branch in enumerate(c.repo_branches.items()):
14 <tr class="parity${cnt%2}">
13 %for cnt,branch in enumerate(c.repo_branches.items()):
14 <tr class="parity${cnt%2}">
15 15 <td>
16 16 <span class="logtags">
17 17 <span class="branchtag">${h.link_to(branch[0],
@@ -29,8 +29,8 b''
29 29 <input class="branch-compare" type="radio" name="compare_org" value="${branch[0]}"/>
30 30 <input class="branch-compare" type="radio" name="compare_other" value="${branch[0]}"/>
31 31 </td>
32 </tr>
33 %endfor
32 </tr>
33 %endfor
34 34 % if hasattr(c,'repo_closed_branches') and c.repo_closed_branches:
35 35 %for cnt,branch in enumerate(c.repo_closed_branches.items()):
36 36 <tr class="parity${cnt%2}">
@@ -16,7 +16,7 b''
16 16 </%def>
17 17
18 18 <%def name="page_nav()">
19 ${self.menu('changelog')}
19 ${self.menu('changelog')}
20 20 </%def>
21 21
22 22 <%def name="main()">
@@ -26,12 +26,12 b''
26 26 ${self.breadcrumbs()}
27 27 </div>
28 28 <div class="table">
29 % if c.pagination:
30 <div id="graph">
31 <div id="graph_nodes">
32 <canvas id="graph_canvas"></canvas>
33 </div>
34 <div id="graph_content">
29 % if c.pagination:
30 <div id="graph">
31 <div id="graph_nodes">
32 <canvas id="graph_canvas"></canvas>
33 </div>
34 <div id="graph_content">
35 35 <div class="info_box" style="clear: both;padding: 10px 6px;vertical-align: right;text-align: right;">
36 36 <a href="#" class="ui-btn small" id="rev_range_container" style="display:none"></a>
37 37 <a href="#" class="ui-btn small" id="rev_range_clear" style="display:none">${_('Clear selection')}</a>
@@ -43,38 +43,38 b''
43 43 <a id="open_new_pr" href="${h.url('pullrequest_home',repo_name=c.repo_name)}" class="ui-btn small">${_('open new pull request')}</a>
44 44 %endif
45 45 </div>
46 <div class="container_header">
47 ${h.form(h.url.current(),method='get')}
48 <div class="info_box" style="float:left">
49 ${h.submit('set',_('Show'),class_="ui-btn")}
50 ${h.text('size',size=1,value=c.size)}
51 ${_('revisions')}
52 </div>
53 ${h.end_form()}
46 <div class="container_header">
47 ${h.form(h.url.current(),method='get')}
48 <div class="info_box" style="float:left">
49 ${h.submit('set',_('Show'),class_="ui-btn")}
50 ${h.text('size',size=1,value=c.size)}
51 ${_('revisions')}
52 </div>
53 ${h.end_form()}
54 54 <div style="float:right">${h.select('branch_filter',c.branch_name,c.branch_filters)}</div>
55 </div>
55 </div>
56 56
57 %for cnt,cs in enumerate(c.pagination):
58 <div id="chg_${cnt+1}" class="container ${'tablerow%s' % (cnt%2)}">
59 <div class="left">
60 <div>
61 ${h.checkbox(cs.raw_id,class_="changeset_range")}
62 <span class="tooltip" title="${h.tooltip(h.age(cs.date))}"><a href="${h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id)}"><span class="changeset_id">${cs.revision}:<span class="changeset_hash">${h.short_id(cs.raw_id)}</span></span></a></span>
63 </div>
64 <div class="author">
65 <div class="gravatar">
66 <img alt="gravatar" src="${h.gravatar_url(h.email_or_none(cs.author),16)}"/>
67 </div>
68 <div title="${cs.author}" class="user">${h.shorter(h.person(cs.author),22)}</div>
69 </div>
57 %for cnt,cs in enumerate(c.pagination):
58 <div id="chg_${cnt+1}" class="container ${'tablerow%s' % (cnt%2)}">
59 <div class="left">
60 <div>
61 ${h.checkbox(cs.raw_id,class_="changeset_range")}
62 <span class="tooltip" title="${h.tooltip(h.age(cs.date))}"><a href="${h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id)}"><span class="changeset_id">${cs.revision}:<span class="changeset_hash">${h.short_id(cs.raw_id)}</span></span></a></span>
63 </div>
64 <div class="author">
65 <div class="gravatar">
66 <img alt="gravatar" src="${h.gravatar_url(h.email_or_none(cs.author),16)}"/>
67 </div>
68 <div title="${cs.author}" class="user">${h.shorter(h.person(cs.author),22)}</div>
69 </div>
70 70 <div class="date">${h.fmt_date(cs.date)}</div>
71 </div>
72 <div class="mid">
71 </div>
72 <div class="mid">
73 73 <div class="message">${h.urlify_commit(cs.message, c.repo_name,h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</div>
74 74 <div class="expand"><span class="expandtext">&darr; ${_('show more')} &darr;</span></div>
75 </div>
76 <div class="right">
77 <div class="changes">
75 </div>
76 <div class="right">
77 <div class="changes">
78 78 <div id="changed_total_${cs.raw_id}" style="float:right;" class="changed_total tooltip" title="${h.tooltip(_('Affected number of files, click to show more details'))}">${len(cs.affected_files)}</div>
79 79 <div class="comments-container">
80 80 %if len(c.comments.get(cs.raw_id,[])) > 0:
@@ -98,27 +98,27 b''
98 98 </div>
99 99 %endif
100 100 </div>
101 </div>
102 %if cs.parents:
103 %for p_cs in reversed(cs.parents):
104 <div class="parent">${_('Parent')}
105 <span class="changeset_id">${p_cs.revision}:<span class="changeset_hash">${h.link_to(h.short_id(p_cs.raw_id),
106 h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)}</span></span>
107 </div>
108 %endfor
109 %else:
101 </div>
102 %if cs.parents:
103 %for p_cs in reversed(cs.parents):
104 <div class="parent">${_('Parent')}
105 <span class="changeset_id">${p_cs.revision}:<span class="changeset_hash">${h.link_to(h.short_id(p_cs.raw_id),
106 h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)}</span></span>
107 </div>
108 %endfor
109 %else:
110 110 <div class="parent">${_('No parents')}</div>
111 111 %endif
112 112
113 <span class="logtags">
114 %if len(cs.parents)>1:
115 <span class="merge">${_('merge')}</span>
116 %endif
117 %if cs.branch:
118 <span class="branchtag" title="${'%s %s' % (_('branch'),cs.branch)}">
119 ${h.link_to(h.shorter(cs.branch),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}
113 <span class="logtags">
114 %if len(cs.parents)>1:
115 <span class="merge">${_('merge')}</span>
116 %endif
117 %if cs.branch:
118 <span class="branchtag" title="${'%s %s' % (_('branch'),cs.branch)}">
119 ${h.link_to(h.shorter(cs.branch),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}
120 120 </span>
121 %endif
121 %endif
122 122 %if h.is_hg(c.rhodecode_repo):
123 123 %for book in cs.bookmarks:
124 124 <span class="bookbook" title="${'%s %s' % (_('bookmark'),book)}">
@@ -126,24 +126,24 b''
126 126 </span>
127 127 %endfor
128 128 %endif
129 %for tag in cs.tags:
130 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
131 ${h.link_to(h.shorter(tag),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
132 %endfor
133 </span>
134 </div>
135 </div>
129 %for tag in cs.tags:
130 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
131 ${h.link_to(h.shorter(tag),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
132 %endfor
133 </span>
134 </div>
135 </div>
136 136
137 %endfor
138 <div class="pagination-wh pagination-left">
139 ${c.pagination.pager('$link_previous ~2~ $link_next')}
140 </div>
141 </div>
142 </div>
137 %endfor
138 <div class="pagination-wh pagination-left">
139 ${c.pagination.pager('$link_previous ~2~ $link_next')}
140 </div>
141 </div>
142 </div>
143 143
144 <script type="text/javascript" src="${h.url('/js/graph.js')}"></script>
145 <script type="text/javascript">
146 YAHOO.util.Event.onDOMReady(function(){
144 <script type="text/javascript" src="${h.url('/js/graph.js')}"></script>
145 <script type="text/javascript">
146 YAHOO.util.Event.onDOMReady(function(){
147 147
148 148 //Monitor range checkboxes and build a link to changesets
149 149 //ranges
@@ -151,7 +151,7 b''
151 151 var url_tmpl = "${h.url('changeset_home',repo_name=c.repo_name,revision='__REVRANGE__')}";
152 152 var pr_tmpl = "${h.url('pullrequest_home',repo_name=c.repo_name)}";
153 153 YUE.on(checkboxes,'click',function(e){
154 var clicked_cb = e.currentTarget;
154 var clicked_cb = e.currentTarget;
155 155 var checked_checkboxes = [];
156 156 for (pos in checkboxes){
157 157 if(checkboxes[pos].checked){
@@ -169,32 +169,32 b''
169 169 }
170 170
171 171 if(checked_checkboxes.length>0){
172 var rev_end = checked_checkboxes[0].name;
173 var rev_start = checked_checkboxes[checked_checkboxes.length-1].name;
172 var rev_end = checked_checkboxes[0].name;
173 var rev_start = checked_checkboxes[checked_checkboxes.length-1].name;
174 174
175 // now select all checkboxes in the middle.
176 var checked = false;
177 for (var i=0; i<checkboxes.length; i++){
178 var cb = checkboxes[i];
179 var rev = cb.name;
175 // now select all checkboxes in the middle.
176 var checked = false;
177 for (var i=0; i<checkboxes.length; i++){
178 var cb = checkboxes[i];
179 var rev = cb.name;
180 180
181 if (rev == rev_end){
182 checked = true;
183 }
181 if (rev == rev_end){
182 checked = true;
183 }
184 184 if (checked){
185 185 cb.checked = true;
186 186 }
187 187 else{
188 188 cb.checked = false;
189 189 }
190 if (rev == rev_start){
190 if (rev == rev_start){
191 191 checked = false;
192 192 }
193 193
194 }
194 }
195 195
196 196 var url = url_tmpl.replace('__REVRANGE__',
197 rev_start+'...'+rev_end);
197 rev_start+'...'+rev_end);
198 198
199 199 var link = _TM['Show selected changes __S -> __E'];
200 200 link = link.replace('__S',rev_start.substr(0,6));
@@ -208,8 +208,8 b''
208 208
209 209 }
210 210 else{
211 YUD.setStyle('rev_range_container','display','none');
212 YUD.setStyle('rev_range_clear','display','none');
211 YUD.setStyle('rev_range_container','display','none');
212 YUD.setStyle('rev_range_clear','display','none');
213 213 }
214 214 });
215 215 YUE.on('rev_range_clear','click',function(e){
@@ -224,22 +224,22 b''
224 224 var el = YUQ('#graph_content .container')[0];
225 225 var row_h = el.clientHeight;
226 226 for(var i=0;i<msgs.length;i++){
227 var m = msgs[i];
227 var m = msgs[i];
228 228
229 var h = m.clientHeight;
230 var pad = YUD.getStyle(m,'padding');
231 if(h > row_h){
232 var offset = row_h - (h+12);
233 YUD.setStyle(m.nextElementSibling,'display','block');
234 YUD.setStyle(m.nextElementSibling,'margin-top',offset+'px');
235 };
229 var h = m.clientHeight;
230 var pad = YUD.getStyle(m,'padding');
231 if(h > row_h){
232 var offset = row_h - (h+12);
233 YUD.setStyle(m.nextElementSibling,'display','block');
234 YUD.setStyle(m.nextElementSibling,'margin-top',offset+'px');
235 };
236 236 }
237 237 YUE.on(YUQ('.expand'),'click',function(e){
238 var elem = e.currentTarget.parentNode.parentNode;
239 YUD.setStyle(e.currentTarget,'display','none');
240 YUD.setStyle(elem,'height','auto');
238 var elem = e.currentTarget.parentNode.parentNode;
239 YUD.setStyle(e.currentTarget,'display','none');
240 YUD.setStyle(elem,'height','auto');
241 241
242 //redraw the graph, line_count and jsdata are global vars
242 //redraw the graph, line_count and jsdata are global vars
243 243 set_canvas(100);
244 244
245 245 var r = new BranchRenderer();
@@ -249,58 +249,58 b''
249 249
250 250 // Fetch changeset details
251 251 YUE.on(YUD.getElementsByClassName('changed_total'),'click',function(e){
252 var id = e.currentTarget.id;
253 var url = "${h.url('changelog_details',repo_name=c.repo_name,cs='__CS__')}";
254 var url = url.replace('__CS__',id.replace('changed_total_',''));
255 ypjax(url,id,function(){tooltip_activate()});
252 var id = e.currentTarget.id;
253 var url = "${h.url('changelog_details',repo_name=c.repo_name,cs='__CS__')}";
254 var url = url.replace('__CS__',id.replace('changed_total_',''));
255 ypjax(url,id,function(){tooltip_activate()});
256 256 });
257 257
258 258 // change branch filter
259 259 YUE.on(YUD.get('branch_filter'),'change',function(e){
260 var selected_branch = e.currentTarget.options[e.currentTarget.selectedIndex].value;
261 var url_main = "${h.url('changelog_home',repo_name=c.repo_name)}";
262 var url = "${h.url('changelog_home',repo_name=c.repo_name,branch='__BRANCH__')}";
263 var url = url.replace('__BRANCH__',selected_branch);
264 if(selected_branch != ''){
265 window.location = url;
266 }else{
267 window.location = url_main;
268 }
260 var selected_branch = e.currentTarget.options[e.currentTarget.selectedIndex].value;
261 var url_main = "${h.url('changelog_home',repo_name=c.repo_name)}";
262 var url = "${h.url('changelog_home',repo_name=c.repo_name,branch='__BRANCH__')}";
263 var url = url.replace('__BRANCH__',selected_branch);
264 if(selected_branch != ''){
265 window.location = url;
266 }else{
267 window.location = url_main;
268 }
269 269
270 270 });
271 271
272 function set_canvas(width) {
273 var c = document.getElementById('graph_nodes');
274 var t = document.getElementById('graph_content');
275 canvas = document.getElementById('graph_canvas');
276 var div_h = t.clientHeight;
277 c.style.height=div_h+'px';
278 canvas.setAttribute('height',div_h);
279 c.style.height=width+'px';
280 canvas.setAttribute('width',width);
281 };
282 var heads = 1;
283 var line_count = 0;
284 var jsdata = ${c.jsdata|n};
272 function set_canvas(width) {
273 var c = document.getElementById('graph_nodes');
274 var t = document.getElementById('graph_content');
275 canvas = document.getElementById('graph_canvas');
276 var div_h = t.clientHeight;
277 c.style.height=div_h+'px';
278 canvas.setAttribute('height',div_h);
279 c.style.height=width+'px';
280 canvas.setAttribute('width',width);
281 };
282 var heads = 1;
283 var line_count = 0;
284 var jsdata = ${c.jsdata|n};
285 285
286 for (var i=0;i<jsdata.length;i++) {
286 for (var i=0;i<jsdata.length;i++) {
287 287 var in_l = jsdata[i][2];
288 288 for (var j in in_l) {
289 289 var m = in_l[j][1];
290 290 if (m > line_count)
291 291 line_count = m;
292 292 }
293 }
294 set_canvas(100);
293 }
294 set_canvas(100);
295 295
296 var r = new BranchRenderer();
297 r.render(jsdata,100,line_count);
296 var r = new BranchRenderer();
297 r.render(jsdata,100,line_count);
298 298
299 });
300 </script>
301 %else:
302 ${_('There are no changes yet')}
303 %endif
299 });
300 </script>
301 %else:
302 ${_('There are no changes yet')}
303 %endif
304 304 </div>
305 305 </div>
306 306 </%def>
@@ -31,7 +31,7 b''
31 31 AJAX_COMMENT_DELETE_URL = "${url('changeset_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}";
32 32 </script>
33 33 <div class="table">
34 <div class="diffblock">
34 <div class="diffblock">
35 35 <div class="parents">
36 36 %if c.changeset.parents:
37 37 %for n, p_cs in enumerate(reversed(c.changeset.parents)):
@@ -52,7 +52,7 b''
52 52 <span>${_('No children')}</span>
53 53 %endif
54 54 </div>
55 <div class="code-header banner">
55 <div class="code-header banner">
56 56
57 57 <div class="hash">
58 58 r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)}
@@ -75,56 +75,56 b''
75 75 </div>
76 76 <div class="comments-number" style="float:right;padding-right:5px">${ungettext("%d comment", "%d comments", len(c.comments)) % len(c.comments)} ${ungettext("(%d inline)", "(%d inline)", c.inline_cnt) % c.inline_cnt}</div>
77 77 </div>
78 </div>
79 <div id="changeset_content">
80 <div class="container">
81 <div class="left">
82 <div class="author">
83 <div class="gravatar">
84 <img alt="gravatar" src="${h.gravatar_url(h.email_or_none(c.changeset.author),20)}"/>
85 </div>
86 <span>${h.person(c.changeset.author)}</span><br/>
87 <span><a href="mailto:${h.email_or_none(c.changeset.author)}">${h.email_or_none(c.changeset.author)}</a></span><br/>
88 </div>
89 <div class="message">${h.urlify_commit(c.changeset.message, c.repo_name)}</div>
90 </div>
91 <div class="right">
92 <div class="changes">
78 </div>
79 <div id="changeset_content">
80 <div class="container">
81 <div class="left">
82 <div class="author">
83 <div class="gravatar">
84 <img alt="gravatar" src="${h.gravatar_url(h.email_or_none(c.changeset.author),20)}"/>
85 </div>
86 <span>${h.person(c.changeset.author)}</span><br/>
87 <span><a href="mailto:${h.email_or_none(c.changeset.author)}">${h.email_or_none(c.changeset.author)}</a></span><br/>
88 </div>
89 <div class="message">${h.urlify_commit(c.changeset.message, c.repo_name)}</div>
90 </div>
91 <div class="right">
92 <div class="changes">
93 93 % if (len(c.changeset.affected_files) <= c.affected_files_cut_off) or c.fulldiff:
94 <span class="removed" title="${_('removed')}">${len(c.changeset.removed)}</span>
95 <span class="changed" title="${_('changed')}">${len(c.changeset.changed)}</span>
96 <span class="added" title="${_('added')}">${len(c.changeset.added)}</span>
97 % else:
94 <span class="removed" title="${_('removed')}">${len(c.changeset.removed)}</span>
95 <span class="changed" title="${_('changed')}">${len(c.changeset.changed)}</span>
96 <span class="added" title="${_('added')}">${len(c.changeset.added)}</span>
97 % else:
98 98 <span class="removed" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
99 99 <span class="changed" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
100 100 <span class="added" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span>
101 % endif
102 </div>
101 % endif
102 </div>
103 103
104 <span class="logtags">
104 <span class="logtags">
105 105 %if len(c.changeset.parents)>1:
106 106 <span class="merge">${_('merge')}</span>
107 107 %endif
108 %if c.changeset.branch:
108 %if c.changeset.branch:
109 109 <span class="branchtag" title="${'%s %s' % (_('branch'),c.changeset.branch)}">
110 ${h.link_to(c.changeset.branch,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}
110 ${h.link_to(c.changeset.branch,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}
111 111 </span>
112 112 %endif
113 %for tag in c.changeset.tags:
114 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
115 ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</span>
116 %endfor
117 </span>
118 </div>
119 </div>
120 <span>
113 %for tag in c.changeset.tags:
114 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
115 ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</span>
116 %endfor
117 </span>
118 </div>
119 </div>
120 <span>
121 121 % if c.limited_diff:
122 122 ${ungettext('%s file changed','%s files changed',len(c.changeset.affected_files)) % (len(c.changeset.affected_files))}:
123 123 % else:
124 ${ungettext('%s file changed with %s insertions and %s deletions','%s files changed with %s insertions and %s deletions', len(c.changeset.affected_files)) % (len(c.changeset.affected_files),c.lines_added,c.lines_deleted)}:
125 %endif
124 ${ungettext('%s file changed with %s insertions and %s deletions','%s files changed with %s insertions and %s deletions', len(c.changeset.affected_files)) % (len(c.changeset.affected_files),c.lines_added,c.lines_deleted)}:
125 %endif
126 126 </span>
127 <div class="cs_files">
127 <div class="cs_files">
128 128 %for FID, (cs1, cs2, change, path, diff, stats) in c.changes[c.changeset.raw_id].iteritems():
129 129 <div class="cs_${change}">
130 130 <div class="node">
@@ -136,8 +136,8 b''
136 136 % if c.limited_diff:
137 137 <h5>${_('Changeset was too big and was cut off...')}</h5>
138 138 % endif
139 </div>
140 </div>
139 </div>
140 </div>
141 141
142 142 </div>
143 143
@@ -6,14 +6,14 b''
6 6 <%def name="comment_block(co)">
7 7 <div class="comment" id="comment-${co.comment_id}" line="${co.line_no}">
8 8 <div class="comment-wrapp">
9 <div class="meta">
9 <div class="meta">
10 10 <div style="float:left"> <img src="${h.gravatar_url(co.author.email, 20)}" /> </div>
11 <div class="user">
12 ${co.author.username}
13 </div>
14 <div class="date">
15 ${h.age(co.modified_at)} <a class="permalink" href="#comment-${co.comment_id}">&para;</a>
16 </div>
11 <div class="user">
12 ${co.author.username}
13 </div>
14 <div class="date">
15 ${h.age(co.modified_at)} <a class="permalink" href="#comment-${co.comment_id}">&para;</a>
16 </div>
17 17 %if co.status_change:
18 18 <div style="float:left" class="changeset-status-container">
19 19 <div style="float:left;padding:0px 2px 0px 2px"><span style="font-size: 18px;">&rsaquo;</span></div>
@@ -41,10 +41,10 b''
41 41 <span onClick="deleteComment(${co.comment_id})" class="delete-comment ui-btn">${_('Delete')}</span>
42 42 </div>
43 43 %endif
44 </div>
45 <div class="text">
46 ${h.rst_w_mentions(co.text)|n}
47 </div>
44 </div>
45 <div class="text">
46 ${h.rst_w_mentions(co.text)|n}
47 </div>
48 48 </div>
49 49 </div>
50 50 </%def>
@@ -60,7 +60,7 b''
60 60 <div class="comment-help">${_('Commenting on line {1}.')}
61 61 ${(_('Comments parsed using %s syntax with %s support.') % (
62 62 ('<a href="%s">RST</a>' % h.url('rst_help')),
63 ('<span style="color:#003367" class="tooltip" title="%s">@mention</span>' % _('Use @username inside this text to send notification to this RhodeCode user'))
63 ('<span style="color:#003367" class="tooltip" title="%s">@mention</span>' % _('Use @username inside this text to send notification to this RhodeCode user'))
64 64 )
65 65 )|n
66 66 }
@@ -134,8 +134,8 b''
134 134 <div class="clearfix">
135 135 <div class="comment-help">
136 136 ${(_('Comments parsed using %s syntax with %s support.') % (('<a href="%s">RST</a>' % h.url('rst_help')),
137 '<span style="color:#003367" class="tooltip" title="%s">@mention</span>' %
138 _('Use @username inside this text to send notification to this RhodeCode user')))|n}
137 '<span style="color:#003367" class="tooltip" title="%s">@mention</span>' %
138 _('Use @username inside this text to send notification to this RhodeCode user')))|n}
139 139 %if change_status:
140 140 | <label for="show_changeset_status_box" class="tooltip" title="${_('Check this to change current status of code-review for this changeset')}"> ${_('change status')}</label>
141 141 <input style="vertical-align: bottom;margin-bottom:-2px" id="show_changeset_status_box" type="checkbox" name="change_changeset_status" />
@@ -178,12 +178,12 b' YUE.onDOMReady(function () {'
178 178 }
179 179 })
180 180 YUE.on(YUQ('.status_change_radio'), 'change',function(e){
181 var val = e.currentTarget.value;
182 if (val == 'approved' || val == 'rejected') {
183 YUD.removeClass('save_close', 'hidden');
184 }else{
185 YUD.addClass('save_close', 'hidden');
186 }
181 var val = e.currentTarget.value;
182 if (val == 'approved' || val == 'rejected') {
183 YUD.removeClass('save_close', 'hidden');
184 }else{
185 YUD.addClass('save_close', 'hidden');
186 }
187 187 })
188 188
189 189 });
@@ -24,17 +24,17 b''
24 24 ${self.breadcrumbs()}
25 25 </div>
26 26 <div class="table">
27 <div id="body" class="diffblock">
28 <div class="code-header cv">
29 <h3 class="code-header-title">${_('Compare View')} / ${h.link_to(_('Show combined compare'),h.url('compare_url',repo_name=c.repo_name,org_ref_type='rev',org_ref=getattr(c.cs_ranges[0].parents[0] if c.cs_ranges[0].parents else h.EmptyChangeset(),'raw_id'),other_ref_type='rev',other_ref=c.cs_ranges[-1].raw_id))}</h3>
27 <div id="body" class="diffblock">
28 <div class="code-header cv">
29 <h3 class="code-header-title">${_('Compare View')} / ${h.link_to(_('Show combined compare'),h.url('compare_url',repo_name=c.repo_name,org_ref_type='rev',org_ref=getattr(c.cs_ranges[0].parents[0] if c.cs_ranges[0].parents else h.EmptyChangeset(),'raw_id'),other_ref_type='rev',other_ref=c.cs_ranges[-1].raw_id))}</h3>
30 30 <div>
31 ${_('Changesets')} - r${c.cs_ranges[0].revision}:${h.short_id(c.cs_ranges[0].raw_id)} -> r${c.cs_ranges[-1].revision}:${h.short_id(c.cs_ranges[-1].raw_id)}
32 </div>
33 </div>
34 </div>
35 <div id="changeset_compare_view_content">
36 <div class="container">
37 <table class="compare_view_commits noborder">
31 ${_('Changesets')} - r${c.cs_ranges[0].revision}:${h.short_id(c.cs_ranges[0].raw_id)} -> r${c.cs_ranges[-1].revision}:${h.short_id(c.cs_ranges[-1].raw_id)}
32 </div>
33 </div>
34 </div>
35 <div id="changeset_compare_view_content">
36 <div class="container">
37 <table class="compare_view_commits noborder">
38 38 %for cnt,cs in enumerate(c.cs_ranges):
39 39 <tr>
40 40 <td><div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(h.email_or_none(cs.author),14)}"/></div></td>
@@ -50,17 +50,17 b''
50 50 </tr>
51 51 %endfor
52 52 </table>
53 </div>
54 <div style="font-size:1.1em;font-weight: bold;clear:both;padding-top:10px">${_('Files affected')}</div>
55 <div class="cs_files">
56 %for cs in c.cs_ranges:
57 <div class="cur_cs">${h.link_to('r%s:%s' % (cs.revision,h.short_id(cs.raw_id)),h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</div>
58 %for FID, (cs1, cs2, change, path, diff, stats) in c.changes[cs.raw_id].iteritems():
59 <div class="cs_${change}">${h.link_to(h.safe_unicode(path),h.url.current(anchor=FID))}</div>
60 %endfor
61 %endfor
62 </div>
63 </div>
53 </div>
54 <div style="font-size:1.1em;font-weight: bold;clear:both;padding-top:10px">${_('Files affected')}</div>
55 <div class="cs_files">
56 %for cs in c.cs_ranges:
57 <div class="cur_cs">${h.link_to('r%s:%s' % (cs.revision,h.short_id(cs.raw_id)),h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</div>
58 %for FID, (cs1, cs2, change, path, diff, stats) in c.changes[cs.raw_id].iteritems():
59 <div class="cs_${change}">${h.link_to(h.safe_unicode(path),h.url.current(anchor=FID))}</div>
60 %endfor
61 %endfor
62 </div>
63 </div>
64 64
65 65 </div>
66 66 <%namespace name="comment" file="/changeset/changeset_file_comment.html"/>
@@ -8,45 +8,45 b''
8 8 <link rel="icon" href="${h.url('/images/icons/database_gear.png')}" type="image/png" />
9 9
10 10 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
11 %if c.redirect_time:
12 <meta http-equiv="refresh" content="${c.redirect_time}; url=${c.url_redirect}"/>
13 %endif
11 %if c.redirect_time:
12 <meta http-equiv="refresh" content="${c.redirect_time}; url=${c.url_redirect}"/>
13 %endif
14 14
15 15 <!-- stylesheets -->
16 16 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css')}" media="screen" />
17 <style type="text/css">
18 #main_div{
19 border: 0px solid #000;
20 width: 500px;
21 margin: auto;
22 text-align: center;
23 margin-top: 200px;
24 font-size: 1.6em;
25 }
26 .error_message{
27 text-align: center;
28 color:#003367;
29 font-size: 1.6em;
30 margin:10px;
31 }
32 </style>
17 <style type="text/css">
18 #main_div{
19 border: 0px solid #000;
20 width: 500px;
21 margin: auto;
22 text-align: center;
23 margin-top: 200px;
24 font-size: 1.6em;
25 }
26 .error_message{
27 text-align: center;
28 color:#003367;
29 font-size: 1.6em;
30 margin:10px;
31 }
32 </style>
33 33
34 34 </head>
35 35 <body>
36 36
37 37 <div id="login">
38 38 <div class="table">
39 <div id="main_div">
40 <div style="font-size:2.0em;margin: 10px">${c.rhodecode_name}</div>
41 <h1 class="error_message">${c.error_message}</h1>
39 <div id="main_div">
40 <div style="font-size:2.0em;margin: 10px">${c.rhodecode_name}</div>
41 <h1 class="error_message">${c.error_message}</h1>
42 42
43 <p>${c.error_explanation}</p>
43 <p>${c.error_explanation}</p>
44 44
45 %if c.redirect_time:
46 <p>${_('You will be redirected to %s in %s seconds') % (c.redirect_module,c.redirect_time)}</p>
47 %endif
45 %if c.redirect_time:
46 <p>${_('You will be redirected to %s in %s seconds') % (c.redirect_module,c.redirect_time)}</p>
47 %endif
48 48
49 </div>
49 </div>
50 50 </div>
51 51 <!-- end login -->
52 52 </div>
@@ -24,16 +24,16 b''
24 24 <!-- box / title -->
25 25 <div class="title">
26 26 ${self.breadcrumbs()}
27 <ul class="links">
28 <li>
29 <span style="text-transform: uppercase;"><a href="#">${_('branch')}: ${c.changeset.branch}</a></span>
30 </li>
31 </ul>
27 <ul class="links">
28 <li>
29 <span style="text-transform: uppercase;"><a href="#">${_('branch')}: ${c.changeset.branch}</a></span>
30 </li>
31 </ul>
32 32 </div>
33 33 <div class="table">
34 <div id="files_data">
35 <%include file='files_ypjax.html'/>
36 </div>
34 <div id="files_data">
35 <%include file='files_ypjax.html'/>
36 </div>
37 37 </div>
38 38 </div>
39 39
@@ -50,10 +50,10 b' var node_history_url = \'${h.url("files_h'
50 50 var ypjax_links = function(){
51 51 YUE.on(YUQ('.ypjax-link'), 'click',function(e){
52 52
53 //don't do ypjax on middle click
54 if(e.which == 2 || !History.enabled){
55 return true;
56 }
53 //don't do ypjax on middle click
54 if(e.which == 2 || !History.enabled){
55 return true;
56 }
57 57
58 58 var el = e.currentTarget;
59 59 var url = el.href;
@@ -64,12 +64,12 b' var ypjax_links = function(){'
64 64 //extract rev and the f_path from url.
65 65 parts = url.split(_base_url)
66 66 if(parts.length != 2){
67 return false;
67 return false;
68 68 }
69 69
70 70 var parts2 = parts[1].split('/');
71 var rev = parts2.shift(); // pop the first element which is the revision
72 var f_path = parts2.join('/');
71 var rev = parts2.shift(); // pop the first element which is the revision
72 var f_path = parts2.join('/');
73 73
74 74 var title = "${_('%s files') % c.repo_name}" + " - " + f_path;
75 75
@@ -93,7 +93,7 b' var callbacks = function(State){'
93 93 fileBrowserListeners(State.url, State.data.node_list_url, State.data.url_base);
94 94
95 95 if(YUD.get('hlcode')){
96 YUE.on('hlcode', 'mouseup', getSelectionLink);
96 YUE.on('hlcode', 'mouseup', getSelectionLink);
97 97 }
98 98 //console.log(State);
99 99 if(YUD.get('load_node_history')){
@@ -102,7 +102,7 b' var callbacks = function(State){'
102 102 YUE.on('load_node_history', 'click', function(e){
103 103 var _url = node_history_url.replace('__REV__',State.data.rev).replace('__FPATH__', State.data.f_path);
104 104 ypjax(_url, 'node_history', function(o){
105 tooltip_activate();
105 tooltip_activate();
106 106 })
107 107 });
108 108 }
@@ -132,11 +132,11 b' YUE.onDOMReady(function(){'
132 132 }
133 133 else{
134 134 ypjax(State.url,container,function(o){
135 //callbacks after ypjax call
136 callbacks(State);
137 if (o !== undefined){
138 //store our request in cache
139 var _expire_on = new Date().getTime()+CACHE_EXPIRE;
135 //callbacks after ypjax call
136 callbacks(State);
137 if (o !== undefined){
138 //store our request in cache
139 var _expire_on = new Date().getTime()+CACHE_EXPIRE;
140 140 CACHE[cache_key] = [_expire_on, o.responseText];
141 141 }
142 142 });
@@ -20,7 +20,7 b''
20 20 </%def>
21 21
22 22 <%def name="page_nav()">
23 ${self.menu('files')}
23 ${self.menu('files')}
24 24 </%def>
25 25 <%def name="main()">
26 26 <div class="box">
@@ -35,8 +35,8 b''
35 35 </ul>
36 36 </div>
37 37 <div class="table">
38 <div id="files_data">
39 ${h.form(h.url.current(),method='post',id='eform',enctype="multipart/form-data")}
38 <div id="files_data">
39 ${h.form(h.url.current(),method='post',id='eform',enctype="multipart/form-data")}
40 40 <h3>${_('Add new file')}</h3>
41 41 <div class="form">
42 42 <div class="fields">
@@ -69,24 +69,24 b''
69 69 </div>
70 70 </div>
71 71 </div>
72 <div id="body" class="codeblock">
73 <div id="editor_container">
72 <div id="body" class="codeblock">
73 <div id="editor_container">
74 74 <pre id="editor_pre"></pre>
75 <textarea id="editor" name="content" style="display:none"></textarea>
75 <textarea id="editor" name="content" style="display:none"></textarea>
76 76 </div>
77 <div style="padding: 10px;color:#666666">${_('commit message')}</div>
78 <textarea id="commit" name="message" style="height: 100px;width: 99%;margin-left:4px"></textarea>
79 </div>
80 <div style="text-align: l;padding-top: 5px">
77 <div style="padding: 10px;color:#666666">${_('commit message')}</div>
78 <textarea id="commit" name="message" style="height: 100px;width: 99%;margin-left:4px"></textarea>
79 </div>
80 <div style="text-align: l;padding-top: 5px">
81 81 ${h.submit('commit',_('Commit changes'),class_="ui-btn")}
82 82 ${h.reset('reset',_('Reset'),class_="ui-btn")}
83 </div>
84 ${h.end_form()}
85 <script type="text/javascript">
86 var reset_url = "${h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path)}";
87 initCodeMirror('editor',reset_url);
88 </script>
89 </div>
83 </div>
84 ${h.end_form()}
85 <script type="text/javascript">
86 var reset_url = "${h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path)}";
87 initCodeMirror('editor',reset_url);
88 </script>
89 </div>
90 90 </div>
91 91 </div>
92 92 </%def>
@@ -1,27 +1,27 b''
1 1 <%def name="file_class(node)">
2 %if node.is_file():
3 <%return "browser-file" %>
4 %else:
5 <%return "browser-dir"%>
6 %endif
2 %if node.is_file():
3 <%return "browser-file" %>
4 %else:
5 <%return "browser-dir"%>
6 %endif
7 7 </%def>
8 8 <div id="body" class="browserblock">
9 9 <div class="browser-header">
10 <div class="browser-nav">
11 ${h.form(h.url.current())}
12 <div class="info_box">
13 <span class="rev">${_('view')}@rev</span>
14 <a class="ui-btn ypjax-link" href="${c.url_prev}" title="${_('previous revision')}">&laquo;</a>
15 ${h.text('at_rev',value=c.changeset.revision,size=5)}
16 <a class="ui-btn ypjax-link" href="${c.url_next}" title="${_('next revision')}">&raquo;</a>
17 ## ${h.submit('view',_('view'),class_="ui-btn")}
18 </div>
19 ${h.end_form()}
20 </div>
21 <div class="browser-branch">
22 ${h.checkbox('stay_at_branch',c.changeset.branch,c.changeset.branch==c.branch)}
23 <label>${_('follow current branch')}</label>
24 </div>
10 <div class="browser-nav">
11 ${h.form(h.url.current())}
12 <div class="info_box">
13 <span class="rev">${_('view')}@rev</span>
14 <a class="ui-btn ypjax-link" href="${c.url_prev}" title="${_('previous revision')}">&laquo;</a>
15 ${h.text('at_rev',value=c.changeset.revision,size=5)}
16 <a class="ui-btn ypjax-link" href="${c.url_next}" title="${_('next revision')}">&raquo;</a>
17 ## ${h.submit('view',_('view'),class_="ui-btn")}
18 </div>
19 ${h.end_form()}
20 </div>
21 <div class="browser-branch">
22 ${h.checkbox('stay_at_branch',c.changeset.branch,c.changeset.branch==c.branch)}
23 <label>${_('follow current branch')}</label>
24 </div>
25 25 <div class="browser-search">
26 26 <div id="search_activate_id" class="search_activate">
27 27 <a class="ui-btn" id="filter_activate" href="#">${_('search file list')}</a>
@@ -40,77 +40,77 b''
40 40 </div>
41 41 </div>
42 42
43 <div class="browser-body">
44 <table class="code-browser">
45 <thead>
46 <tr>
47 <th>${_('Name')}</th>
48 <th>${_('Size')}</th>
49 <th>${_('Mimetype')}</th>
50 <th>${_('Last Revision')}</th>
51 <th>${_('Last modified')}</th>
52 <th>${_('Last commiter')}</th>
53 </tr>
54 </thead>
43 <div class="browser-body">
44 <table class="code-browser">
45 <thead>
46 <tr>
47 <th>${_('Name')}</th>
48 <th>${_('Size')}</th>
49 <th>${_('Mimetype')}</th>
50 <th>${_('Last Revision')}</th>
51 <th>${_('Last modified')}</th>
52 <th>${_('Last commiter')}</th>
53 </tr>
54 </thead>
55 55
56 56 <tbody id="tbody">
57 %if c.file.parent:
58 <tr class="parity0">
59 <td>
60 ${h.link_to('..',h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.file.parent.path),class_="browser-dir ypjax-link")}
61 </td>
62 <td></td>
63 <td></td>
64 <td></td>
65 <td></td>
66 <td></td>
67 </tr>
68 %endif
57 %if c.file.parent:
58 <tr class="parity0">
59 <td>
60 ${h.link_to('..',h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.file.parent.path),class_="browser-dir ypjax-link")}
61 </td>
62 <td></td>
63 <td></td>
64 <td></td>
65 <td></td>
66 <td></td>
67 </tr>
68 %endif
69 69
70 %for cnt,node in enumerate(c.file):
71 <tr class="parity${cnt%2}">
72 <td>
70 %for cnt,node in enumerate(c.file):
71 <tr class="parity${cnt%2}">
72 <td>
73 73 %if node.is_submodule():
74 74 ${h.link_to(node.name,node.url or '#',class_="submodule-dir ypjax-link")}
75 75 %else:
76 76 ${h.link_to(node.name, h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=h.safe_unicode(node.path)),class_=file_class(node)+" ypjax-link")}
77 77 %endif:
78 </td>
79 <td>
80 %if node.is_file():
81 ${h.format_byte_size(node.size,binary=True)}
82 %endif
83 </td>
84 <td>
85 %if node.is_file():
86 ${node.mimetype}
87 %endif
88 </td>
89 <td>
90 %if node.is_file():
91 <div class="tooltip" title="${h.tooltip(node.last_changeset.message)}">
92 <pre>${'r%s:%s' % (node.last_changeset.revision,node.last_changeset.short_id)}</pre>
78 </td>
79 <td>
80 %if node.is_file():
81 ${h.format_byte_size(node.size,binary=True)}
82 %endif
83 </td>
84 <td>
85 %if node.is_file():
86 ${node.mimetype}
87 %endif
88 </td>
89 <td>
90 %if node.is_file():
91 <div class="tooltip" title="${h.tooltip(node.last_changeset.message)}">
92 <pre>${'r%s:%s' % (node.last_changeset.revision,node.last_changeset.short_id)}</pre>
93 93 </div>
94 %endif
95 </td>
96 <td>
97 %if node.is_file():
98 <span class="tooltip" title="${h.tooltip(h.fmt_date(node.last_changeset.date))}">
94 %endif
95 </td>
96 <td>
97 %if node.is_file():
98 <span class="tooltip" title="${h.tooltip(h.fmt_date(node.last_changeset.date))}">
99 99 ${h.age(node.last_changeset.date)}</span>
100 %endif
101 </td>
102 <td>
103 %if node.is_file():
104 <span title="${node.last_changeset.author}">
100 %endif
101 </td>
102 <td>
103 %if node.is_file():
104 <span title="${node.last_changeset.author}">
105 105 ${h.person(node.last_changeset.author)}
106 106 </span>
107 %endif
108 </td>
109 </tr>
110 %endfor
107 %endif
108 </td>
109 </tr>
110 %endfor
111 111 </tbody>
112 112 <tbody id="tbody_filtered" style="display:none">
113 113 </tbody>
114 </table>
115 </div>
114 </table>
115 </div>
116 116 </div>
@@ -20,7 +20,7 b''
20 20 </%def>
21 21
22 22 <%def name="page_nav()">
23 ${self.menu('files')}
23 ${self.menu('files')}
24 24 </%def>
25 25 <%def name="main()">
26 26 <div class="box">
@@ -35,10 +35,10 b''
35 35 </ul>
36 36 </div>
37 37 <div class="table">
38 <div id="files_data">
39 <h3 class="files_location">${_('Location')}: ${h.files_breadcrumbs(c.repo_name,c.cs.revision,c.file.path)}</h3>
40 ${h.form(h.url.current(),method='post',id='eform')}
41 <div id="body" class="codeblock">
38 <div id="files_data">
39 <h3 class="files_location">${_('Location')}: ${h.files_breadcrumbs(c.repo_name,c.cs.revision,c.file.path)}</h3>
40 ${h.form(h.url.current(),method='post',id='eform')}
41 <div id="body" class="codeblock">
42 42 <div class="code-header">
43 43 <div class="stats">
44 44 <div class="left"><img src="${h.url('/images/icons/file.png')}"/></div>
@@ -58,21 +58,21 b''
58 58 </div>
59 59 <div class="commit">${_('Editing file')}: ${c.file.unicode_path}</div>
60 60 </div>
61 <pre id="editor_pre"></pre>
62 <textarea id="editor" name="content" style="display:none">${h.escape(c.file.content)|n}</textarea>
63 <div style="padding: 10px;color:#666666">${_('commit message')}</div>
64 <textarea id="commit" name="message" style="height: 60px;width: 99%;margin-left:4px"></textarea>
65 </div>
66 <div style="text-align: left;padding-top: 5px">
61 <pre id="editor_pre"></pre>
62 <textarea id="editor" name="content" style="display:none">${h.escape(c.file.content)|n}</textarea>
63 <div style="padding: 10px;color:#666666">${_('commit message')}</div>
64 <textarea id="commit" name="message" style="height: 60px;width: 99%;margin-left:4px"></textarea>
65 </div>
66 <div style="text-align: left;padding-top: 5px">
67 67 ${h.submit('commit',_('Commit changes'),class_="ui-btn")}
68 68 ${h.reset('reset',_('Reset'),class_="ui-btn")}
69 </div>
70 ${h.end_form()}
71 <script type="text/javascript">
72 var reset_url = "${h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.file.path)}";
73 initCodeMirror('editor',reset_url);
74 </script>
75 </div>
69 </div>
70 ${h.end_form()}
71 <script type="text/javascript">
72 var reset_url = "${h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.file.path)}";
73 initCodeMirror('editor',reset_url);
74 </script>
75 </div>
76 76 </div>
77 77 </div>
78 78 </%def>
@@ -10,7 +10,7 b''
10 10
11 11
12 12 <div id="body" class="codeblock">
13 <div class="code-header">
13 <div class="code-header">
14 14 <div class="stats">
15 15 <div class="left img"><img src="${h.url('/images/icons/file.png')}"/></div>
16 16 <div class="left item"><pre class="tooltip" title="${h.tooltip(h.fmt_date(c.file_changeset.date))}">${h.link_to("r%s:%s" % (c.file_changeset.revision,h.short_id(c.file_changeset.raw_id)),h.url('changeset_home',repo_name=c.repo_name,revision=c.file_changeset.raw_id))}</pre></div>
@@ -37,24 +37,24 b''
37 37 </div>
38 38 <div title="${c.file_changeset.author}" class="user">${h.person(c.file_changeset.author)}</div>
39 39 </div>
40 <div class="commit">${h.urlify_commit(c.file_changeset.message,c.repo_name)}</div>
41 </div>
42 <div class="code-body">
43 %if c.file.is_binary:
44 ${_('Binary file (%s)') % c.file.mimetype}
45 %else:
46 % if c.file.size < c.cut_off_limit:
40 <div class="commit">${h.urlify_commit(c.file_changeset.message,c.repo_name)}</div>
41 </div>
42 <div class="code-body">
43 %if c.file.is_binary:
44 ${_('Binary file (%s)') % c.file.mimetype}
45 %else:
46 % if c.file.size < c.cut_off_limit:
47 47 %if c.annotate:
48 48 ${h.pygmentize_annotation(c.repo_name,c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")}
49 49 %else:
50 ${h.pygmentize(c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")}
50 ${h.pygmentize(c.file,linenos=True,anchorlinenos=True,lineanchors='L',cssclass="code-highlight")}
51 51 %endif
52 %else:
53 ${_('File is too big to display')} ${h.link_to(_('show as raw'),
54 h.url('files_raw_home',repo_name=c.repo_name,revision=c.file_changeset.raw_id,f_path=c.f_path))}
55 %endif
52 %else:
53 ${_('File is too big to display')} ${h.link_to(_('show as raw'),
54 h.url('files_raw_home',repo_name=c.repo_name,revision=c.file_changeset.raw_id,f_path=c.f_path))}
55 %endif
56 56 %endif
57 </div>
57 </div>
58 58 </div>
59 59
60 60 <script type="text/javascript">
@@ -95,7 +95,7 b' YUE.onDOMReady(function(){'
95 95 YUE.on('load_node_history', 'click', function(e){
96 96 var _url = node_history_url.replace('__REV__','${c.file_changeset.raw_id}').replace('__FPATH__', '${c.f_path}');
97 97 ypjax(_url, 'node_history', function(o){
98 tooltip_activate();
98 tooltip_activate();
99 99 })
100 100 });
101 101
@@ -20,9 +20,9 b''
20 20 YUE.onDOMReady(function(){
21 21 YUE.delegate("followers","click",function(e, matchedEl, container){
22 22 ypjax(e.target.href,"followers",function(){
23 show_more_event();
24 tooltip_activate();
25 show_changeset_tooltip();
23 show_more_event();
24 tooltip_activate();
25 show_changeset_tooltip();
26 26 });
27 27 YUE.preventDefault(e);
28 28 },'.pager_link');
@@ -14,7 +14,7 b''
14 14 </%def>
15 15
16 16 <%def name="page_nav()">
17 ${self.menu('')}
17 ${self.menu('')}
18 18 </%def>
19 19 <%def name="main()">
20 20 <div class="box">
@@ -90,9 +90,9 b''
90 90 <span class="help-block">${_('Checkout source after making a clone')}</span>
91 91 </div>
92 92 </div>
93 <div class="buttons">
94 ${h.submit('',_('fork this repository'),class_="ui-btn large")}
95 </div>
93 <div class="buttons">
94 ${h.submit('',_('fork this repository'),class_="ui-btn large")}
95 </div>
96 96 </div>
97 97 </div>
98 98 ${h.end_form()}
@@ -1,36 +1,36 b''
1 1 ## -*- coding: utf-8 -*-
2 2
3 3 % if c.forks_pager:
4 % for f in c.forks_pager:
5 <div>
6 <div class="fork_user">
7 <div class="gravatar">
8 <img alt="gravatar" src="${h.gravatar_url(f.user.email,24)}"/>
9 </div>
10 <span style="font-size: 20px">
11 <b>${f.user.username}</b> (${f.user.name} ${f.user.lastname}) /
12 ${h.link_to(f.repo_name,h.url('summary_home',repo_name=f.repo_name))}
13 </span>
14 <div style="padding:5px 3px 3px 42px;">${f.description}</div>
15 </div>
16 <div style="clear:both;padding-top: 10px"></div>
17 <div class="follower_date">${_('forked')} -
18 <span class="tooltip" title="${h.tooltip(h.fmt_date(f.created_on))}"> ${h.age(f.created_on)}</span>
4 % for f in c.forks_pager:
5 <div>
6 <div class="fork_user">
7 <div class="gravatar">
8 <img alt="gravatar" src="${h.gravatar_url(f.user.email,24)}"/>
9 </div>
10 <span style="font-size: 20px">
11 <b>${f.user.username}</b> (${f.user.name} ${f.user.lastname}) /
12 ${h.link_to(f.repo_name,h.url('summary_home',repo_name=f.repo_name))}
13 </span>
14 <div style="padding:5px 3px 3px 42px;">${f.description}</div>
15 </div>
16 <div style="clear:both;padding-top: 10px"></div>
17 <div class="follower_date">${_('forked')} -
18 <span class="tooltip" title="${h.tooltip(h.fmt_date(f.created_on))}"> ${h.age(f.created_on)}</span>
19 19 <a title="${_('compare fork with %s' % c.repo_name)}"
20 20 href="${h.url('compare_url',repo_name=f.repo_name,org_ref_type='branch',org_ref='default',other_ref_type='branch',other_ref='default', repo=c.repo_name)}"
21 21 class="ui-btn small">${_('Compare fork')}</a>
22 22 </div>
23 <div style="border-bottom: 1px solid #DDD;margin:10px 0px 10px 0px"></div>
24 </div>
25 % endfor
23 <div style="border-bottom: 1px solid #DDD;margin:10px 0px 10px 0px"></div>
24 </div>
25 % endfor
26 26 <div class="pagination-wh pagination-left">
27 27 <script type="text/javascript">
28 28 YUE.onDOMReady(function(){
29 29 YUE.delegate("forks","click",function(e, matchedEl, container){
30 30 ypjax(e.target.href,"forks",function(){
31 show_more_event();
32 tooltip_activate();
33 show_changeset_tooltip();
31 show_more_event();
32 tooltip_activate();
33 show_changeset_tooltip();
34 34 });
35 35 YUE.preventDefault(e);
36 36 },'.pager_link');
@@ -39,5 +39,5 b''
39 39 ${c.forks_pager.pager('$link_previous ~2~ $link_next')}
40 40 </div>
41 41 % else:
42 ${_('There are no forks yet')}
42 ${_('There are no forks yet')}
43 43 % endif
@@ -174,7 +174,7 b''
174 174 {key:"last_change",label:"${_('Last Change')}",sortable:true,
175 175 sortOptions: { sortFunction: ageSort }},
176 176 {key:"tip",label:"${_('Tip')}",sortable:true,
177 sortOptions: { sortFunction: revisionSort }},
177 sortOptions: { sortFunction: revisionSort }},
178 178 {key:"owner",label:"${_('Owner')}",sortable:true},
179 179 {key:"rss",label:"",sortable:false},
180 180 {key:"atom",label:"",sortable:false},
@@ -200,7 +200,7 b''
200 200
201 201 var myDataTable = new YAHOO.widget.DataTable("repos_list_wrap", myColumnDefs, myDataSource,
202 202 {
203 sortedBy:{key:"name",dir:"asc"},
203 sortedBy:{key:"name",dir:"asc"},
204 204 MSG_SORTASC:"${_('Click to sort ascending')}",
205 205 MSG_SORTDESC:"${_('Click to sort descending')}",
206 206 MSG_EMPTY:"${_('No records found.')}",
@@ -15,7 +15,7 b''
15 15 </h5>
16 16 </%def>
17 17 <%def name="page_nav()">
18 ${self.menu('home')}
18 ${self.menu('home')}
19 19 </%def>
20 20 <%def name="head_extra()">
21 21 <link href="${h.url('journal_atom', api_key=c.rhodecode_user.api_key)}" rel="alternate" title="${_('ATOM journal feed')}" type="application/atom+xml" />
@@ -24,8 +24,8 b''
24 24 <%def name="main()">
25 25
26 26 <div class="box box-left">
27 <!-- box / title -->
28 <div class="title">
27 <!-- box / title -->
28 <div class="title">
29 29 ${self.breadcrumbs()}
30 30 <ul class="links">
31 31 <li>
@@ -38,8 +38,8 b''
38 38 <span><a href="${h.url('journal_atom', api_key=c.rhodecode_user.api_key)}"><img class="icon" title="${_('ATOM feed')}" alt="${_('ATOM feed')}" src="${h.url('/images/icons/atom.png')}"/></a></span>
39 39 </li>
40 40 </ul>
41 </div>
42 <div id="journal">${c.journal_data}</div>
41 </div>
42 <div id="journal">${c.journal_data}</div>
43 43 </div>
44 44 <div class="box box-right">
45 45 <!-- box / title -->
@@ -124,7 +124,7 b''
124 124 show_my(e);
125 125 })
126 126 var show_watched = function(e){
127 YUD.setStyle('my_container','display','none');
127 YUD.setStyle('my_container','display','none');
128 128 YUD.setStyle('watched_container','display','');
129 129 YUD.setStyle('q_filter_watched','display','');
130 130 YUD.setStyle('q_filter','display','none');
@@ -132,7 +132,7 b''
132 132 YUD.addClass('show_watched', 'current');
133 133 YUD.removeClass('show_my','current');
134 134 if(!YUD.hasClass('show_watched', 'loaded')){
135 watched_renderer(${c.watched_data |n});
135 watched_renderer(${c.watched_data |n});
136 136 YUD.addClass('show_watched', 'loaded');
137 137 }
138 138
@@ -160,7 +160,7 b''
160 160 var tabHash = url[1];
161 161 var func = tabs[tabHash]
162 162 if (func){
163 func();
163 func();
164 164 }
165 165 }
166 166 function watched_renderer(data){
@@ -4,34 +4,34 b''
4 4 %for day,items in c.journal_day_aggreagate:
5 5 <div class="journal_day">${day}</div>
6 6 % for user,entries in items:
7 <div class="journal_container">
8 <div class="gravatar">
9 <img alt="gravatar" src="${h.gravatar_url(user.email if user else 'anonymous@rhodecode.org',24)}"/>
10 </div>
7 <div class="journal_container">
8 <div class="gravatar">
9 <img alt="gravatar" src="${h.gravatar_url(user.email if user else 'anonymous@rhodecode.org',24)}"/>
10 </div>
11 11 %if user:
12 <div class="journal_user">${user.name} ${user.lastname}</div>
12 <div class="journal_user">${user.name} ${user.lastname}</div>
13 13 %else:
14 14 <div class="journal_user deleted">${entries[0].username}</div>
15 15 %endif
16 <div class="journal_action_container">
17 % for entry in entries:
18 <div class="journal_icon"> ${h.action_parser(entry)[2]()}</div>
19 <div class="journal_action">${h.action_parser(entry)[0]()}</div>
20 <div class="journal_repo">
21 <span class="journal_repo_name">
22 %if entry.repository is not None:
23 ${h.link_to(entry.repository.repo_name,
24 h.url('summary_home',repo_name=entry.repository.repo_name))}
25 %else:
26 ${entry.repository_name}
27 %endif
28 </span>
29 </div>
30 <div class="journal_action_params">${h.literal(h.action_parser(entry)[1]())}</div>
31 <div class="date"><span class="tooltip" title="${h.tooltip(h.fmt_date(entry.action_date))}">${h.age(entry.action_date)}</span></div>
32 %endfor
33 </div>
34 </div>
16 <div class="journal_action_container">
17 % for entry in entries:
18 <div class="journal_icon"> ${h.action_parser(entry)[2]()}</div>
19 <div class="journal_action">${h.action_parser(entry)[0]()}</div>
20 <div class="journal_repo">
21 <span class="journal_repo_name">
22 %if entry.repository is not None:
23 ${h.link_to(entry.repository.repo_name,
24 h.url('summary_home',repo_name=entry.repository.repo_name))}
25 %else:
26 ${entry.repository_name}
27 %endif
28 </span>
29 </div>
30 <div class="journal_action_params">${h.literal(h.action_parser(entry)[1]())}</div>
31 <div class="date"><span class="tooltip" title="${h.tooltip(h.fmt_date(entry.action_date))}">${h.age(entry.action_date)}</span></div>
32 %endfor
33 </div>
34 </div>
35 35 %endfor
36 36 %endfor
37 37
@@ -39,11 +39,11 b''
39 39 <script type="text/javascript">
40 40 YUE.onDOMReady(function(){
41 41 YUE.delegate("journal","click",function(e, matchedEl, container){
42 ypjax(e.target.href,"journal",function(){
43 show_more_event();
44 tooltip_activate();
45 show_changeset_tooltip();
46 });
42 ypjax(e.target.href,"journal",function(){
43 show_more_event();
44 tooltip_activate();
45 show_changeset_tooltip();
46 });
47 47 YUE.preventDefault(e);
48 48 },'.pager_link');
49 49 });
@@ -4,10 +4,10 b''
4 4 ${_('Journal')} - ${c.rhodecode_name}
5 5 </%def>
6 6 <%def name="breadcrumbs()">
7 ${c.rhodecode_name}
7 ${c.rhodecode_name}
8 8 </%def>
9 9 <%def name="page_nav()">
10 ${self.menu('home')}
10 ${self.menu('home')}
11 11 </%def>
12 12 <%def name="head_extra()">
13 13 <link href="${h.url('public_journal_atom')}" rel="alternate" title="${_('ATOM public journal feed')}" type="application/atom+xml" />
@@ -69,7 +69,7 b''
69 69 ${h.end_form()}
70 70 <script type="text/javascript">
71 71 YUE.onDOMReady(function(){
72 YUD.get('username').focus();
72 YUD.get('username').focus();
73 73 })
74 74 </script>
75 75 </div>
@@ -7,37 +7,37 b''
7 7
8 8 <div id="register">
9 9
10 <div class="title top-left-rounded-corner top-right-rounded-corner">
11 <h5>${_('Reset your password to')} ${c.rhodecode_name}</h5>
12 </div>
13 <div class="inner">
14 ${h.form(url('password_reset'))}
15 <div class="form">
16 <!-- fields -->
17 <div class="fields">
10 <div class="title top-left-rounded-corner top-right-rounded-corner">
11 <h5>${_('Reset your password to')} ${c.rhodecode_name}</h5>
12 </div>
13 <div class="inner">
14 ${h.form(url('password_reset'))}
15 <div class="form">
16 <!-- fields -->
17 <div class="fields">
18 18
19 <div class="field">
20 <div class="label">
21 <label for="email">${_('Email address')}:</label>
22 </div>
23 <div class="input">
24 ${h.text('email')}
25 </div>
26 </div>
19 <div class="field">
20 <div class="label">
21 <label for="email">${_('Email address')}:</label>
22 </div>
23 <div class="input">
24 ${h.text('email')}
25 </div>
26 </div>
27 27
28 <div class="buttons">
29 <div class="nohighlight">
30 ${h.submit('send',_('Reset my password'),class_="ui-btn large")}
31 <div class="activation_msg">${_('Password reset link will be send to matching email address')}</div>
32 </div>
33 </div>
34 </div>
35 </div>
36 ${h.end_form()}
28 <div class="buttons">
29 <div class="nohighlight">
30 ${h.submit('send',_('Reset my password'),class_="ui-btn large")}
31 <div class="activation_msg">${_('Password reset link will be send to matching email address')}</div>
32 </div>
33 </div>
34 </div>
35 </div>
36 ${h.end_form()}
37 37 <script type="text/javascript">
38 38 YUE.onDOMReady(function(){
39 39 YUD.get('email').focus();
40 40 })
41 41 </script>
42 </div>
42 </div>
43 43 </div>
@@ -137,10 +137,10 b''
137 137 var other_repos_info = ${c.other_repos_info|n};
138 138
139 139 var loadPreview = function(){
140 YUD.setStyle(YUD.get('pull_request_overview_url').parentElement,'display','none');
140 YUD.setStyle(YUD.get('pull_request_overview_url').parentElement,'display','none');
141 141 var url = "${h.url('compare_url',
142 repo_name='org_repo',
143 org_ref_type='org_ref_type', org_ref='org_ref',
142 repo_name='org_repo',
143 org_ref_type='org_ref_type', org_ref='org_ref',
144 144 other_ref_type='other_ref_type', other_ref='other_ref',
145 145 repo='other_repo',
146 146 as_form=True, bundle=False,
@@ -175,21 +175,21 b''
175 175 }
176 176
177 177 YUE.on('other_repo', 'change', function(e){
178 var repo_name = e.currentTarget.value;
179 // replace the <select> of changed repo
180 YUD.get('other_ref').innerHTML = other_repos_info[repo_name]['revs'];
178 var repo_name = e.currentTarget.value;
179 // replace the <select> of changed repo
180 YUD.get('other_ref').innerHTML = other_repos_info[repo_name]['revs'];
181 181 });
182 182
183 183 ypjax(url,'pull_request_overview', function(data){
184 var sel_box = YUQ('#pull_request_form #other_repo')[0];
185 var repo_name = sel_box.options[sel_box.selectedIndex].value;
186 YUD.get('pull_request_overview_url').href = url;
187 YUD.setStyle(YUD.get('pull_request_overview_url').parentElement,'display','');
188 YUD.get('other_repo_gravatar').src = other_repos_info[repo_name]['gravatar'];
189 YUD.get('other_repo_desc').innerHTML = other_repos_info[repo_name]['description'];
190 YUD.get('other_ref').innerHTML = other_repos_info[repo_name]['revs'];
191 // select back the revision that was just compared
192 setSelectValue(YUD.get('other_ref'), rev_data['other_ref']);
184 var sel_box = YUQ('#pull_request_form #other_repo')[0];
185 var repo_name = sel_box.options[sel_box.selectedIndex].value;
186 YUD.get('pull_request_overview_url').href = url;
187 YUD.setStyle(YUD.get('pull_request_overview_url').parentElement,'display','');
188 YUD.get('other_repo_gravatar').src = other_repos_info[repo_name]['gravatar'];
189 YUD.get('other_repo_desc').innerHTML = other_repos_info[repo_name]['description'];
190 YUD.get('other_ref').innerHTML = other_repos_info[repo_name]['revs'];
191 // select back the revision that was just compared
192 setSelectValue(YUD.get('other_ref'), rev_data['other_ref']);
193 193 })
194 194 }
195 195 YUE.on('refresh','click',function(e){
@@ -189,7 +189,7 b''
189 189
190 190 <script type="text/javascript">
191 191 YUE.onDOMReady(function(){
192 PullRequestAutoComplete('user', 'reviewers_container', _USERS_AC_DATA, _GROUPS_AC_DATA);
192 PullRequestAutoComplete('user', 'reviewers_container', _USERS_AC_DATA, _GROUPS_AC_DATA);
193 193
194 194 YUE.on(YUQ('.show-inline-comments'),'change',function(e){
195 195 var show = 'none';
@@ -218,7 +218,7 b''
218 218 renderInlineComments(file_comments);
219 219
220 220 YUE.on(YUD.get('update_pull_request'),'click',function(e){
221 updateReviewers();
221 updateReviewers();
222 222 })
223 223 })
224 224 </script>
@@ -7,31 +7,31 b''
7 7
8 8 <div id="register">
9 9
10 <div class="title top-left-rounded-corner top-right-rounded-corner">
11 <h5>${_('Sign Up to')} ${c.rhodecode_name}</h5>
12 </div>
13 <div class="inner">
14 ${h.form(url('register'))}
15 <div class="form">
16 <!-- fields -->
17 <div class="fields">
18 <div class="field">
19 <div class="label">
20 <label for="username">${_('Username')}:</label>
21 </div>
22 <div class="input">
23 ${h.text('username',class_="medium")}
24 </div>
25 </div>
10 <div class="title top-left-rounded-corner top-right-rounded-corner">
11 <h5>${_('Sign Up to')} ${c.rhodecode_name}</h5>
12 </div>
13 <div class="inner">
14 ${h.form(url('register'))}
15 <div class="form">
16 <!-- fields -->
17 <div class="fields">
18 <div class="field">
19 <div class="label">
20 <label for="username">${_('Username')}:</label>
21 </div>
22 <div class="input">
23 ${h.text('username',class_="medium")}
24 </div>
25 </div>
26 26
27 <div class="field">
28 <div class="label">
29 <label for="password">${_('Password')}:</label>
30 </div>
31 <div class="input">
32 ${h.password('password',class_="medium")}
33 </div>
34 </div>
27 <div class="field">
28 <div class="label">
29 <label for="password">${_('Password')}:</label>
30 </div>
31 <div class="input">
32 ${h.password('password',class_="medium")}
33 </div>
34 </div>
35 35
36 36 <div class="field">
37 37 <div class="label">
@@ -42,50 +42,50 b''
42 42 </div>
43 43 </div>
44 44
45 <div class="field">
46 <div class="label">
47 <label for="firstname">${_('First Name')}:</label>
48 </div>
49 <div class="input">
50 ${h.text('firstname',class_="medium")}
51 </div>
52 </div>
45 <div class="field">
46 <div class="label">
47 <label for="firstname">${_('First Name')}:</label>
48 </div>
49 <div class="input">
50 ${h.text('firstname',class_="medium")}
51 </div>
52 </div>
53 53
54 <div class="field">
55 <div class="label">
56 <label for="lastname">${_('Last Name')}:</label>
57 </div>
58 <div class="input">
59 ${h.text('lastname',class_="medium")}
60 </div>
61 </div>
54 <div class="field">
55 <div class="label">
56 <label for="lastname">${_('Last Name')}:</label>
57 </div>
58 <div class="input">
59 ${h.text('lastname',class_="medium")}
60 </div>
61 </div>
62 62
63 <div class="field">
64 <div class="label">
65 <label for="email">${_('Email')}:</label>
66 </div>
67 <div class="input">
68 ${h.text('email',class_="medium")}
69 </div>
70 </div>
63 <div class="field">
64 <div class="label">
65 <label for="email">${_('Email')}:</label>
66 </div>
67 <div class="input">
68 ${h.text('email',class_="medium")}
69 </div>
70 </div>
71 71
72 <div class="buttons">
73 <div class="nohighlight">
74 ${h.submit('sign_up',_('Sign Up'),class_="ui-btn large")}
75 %if c.auto_active:
76 <div class="activation_msg">${_('Your account will be activated right after registration')}</div>
77 %else:
78 <div class="activation_msg">${_('Your account must wait for activation by administrator')}</div>
79 %endif
80 </div>
81 </div>
82 </div>
83 </div>
84 ${h.end_form()}
72 <div class="buttons">
73 <div class="nohighlight">
74 ${h.submit('sign_up',_('Sign Up'),class_="ui-btn large")}
75 %if c.auto_active:
76 <div class="activation_msg">${_('Your account will be activated right after registration')}</div>
77 %else:
78 <div class="activation_msg">${_('Your account must wait for activation by administrator')}</div>
79 %endif
80 </div>
81 </div>
82 </div>
83 </div>
84 ${h.end_form()}
85 85 <script type="text/javascript">
86 86 YUE.onDOMReady(function(){
87 87 YUD.get('username').focus();
88 88 })
89 89 </script>
90 </div>
90 </div>
91 91 </div>
@@ -2,63 +2,63 b''
2 2 <%inherit file="/base/base.html"/>
3 3 <%def name="title()">
4 4 %if c.cur_query:
5 %if c.repo_name:
6 ${_('Search "%s" in repository: %s') % (c.cur_query, c.repo_name)}
7 %else:
8 ${_('Search "%s" in all repositories') % c.cur_query}
9 %endif
5 %if c.repo_name:
6 ${_('Search "%s" in repository: %s') % (c.cur_query, c.repo_name)}
7 %else:
8 ${_('Search "%s" in all repositories') % c.cur_query}
9 %endif
10 10 %else:
11 %if c.repo_name:
12 ${_('Search in repository: %s') % c.repo_name}
13 %else:
14 ${_('Search in all repositories')}
15 %endif
11 %if c.repo_name:
12 ${_('Search in repository: %s') % c.repo_name}
13 %else:
14 ${_('Search in all repositories')}
15 %endif
16 16 %endif
17 - ${c.rhodecode_name}
17 - ${c.rhodecode_name}
18 18 </%def>
19 19 <%def name="breadcrumbs()">
20 ${c.rhodecode_name}
20 ${c.rhodecode_name}
21 21 </%def>
22 22 <%def name="page_nav()">
23 ${self.menu('home')}
23 ${self.menu('home')}
24 24 </%def>
25 25 <%def name="main()">
26 26
27 27 <div class="box">
28 <!-- box / title -->
29 <div class="title">
30 <h5>
31 %if c.repo_name:
32 ${_('Search in repository: %s') % c.repo_name}
33 %else:
34 ${_('Search in all repositories')}
35 %endif
36 </h5>
37 </div>
38 <!-- end box / title -->
39 %if c.repo_name:
40 ${h.form(h.url('search_repo',search_repo=c.repo_name),method='get')}
41 %else:
42 ${h.form(h.url('search'),method='get')}
43 %endif
44 <div class="form">
45 <div class="fields">
46 <div class="field field-first field-noborder">
28 <!-- box / title -->
29 <div class="title">
30 <h5>
31 %if c.repo_name:
32 ${_('Search in repository: %s') % c.repo_name}
33 %else:
34 ${_('Search in all repositories')}
35 %endif
36 </h5>
37 </div>
38 <!-- end box / title -->
39 %if c.repo_name:
40 ${h.form(h.url('search_repo',search_repo=c.repo_name),method='get')}
41 %else:
42 ${h.form(h.url('search'),method='get')}
43 %endif
44 <div class="form">
45 <div class="fields">
46 <div class="field field-first field-noborder">
47 47 <div class="label">
48 48 <label for="q">${_('Search term')}</label>
49 49 </div>
50 <div class="input">${h.text('q',c.cur_query,class_="small")}
51 <div class="button highlight">
52 <input type="submit" value="${_('Search')}" class="ui-button"/>
53 </div>
54 </div>
55 <div style="font-weight: bold;clear:Both;margin-left:200px">${c.runtime}</div>
56 </div>
50 <div class="input">${h.text('q',c.cur_query,class_="small")}
51 <div class="button highlight">
52 <input type="submit" value="${_('Search')}" class="ui-button"/>
53 </div>
54 </div>
55 <div style="font-weight: bold;clear:Both;margin-left:200px">${c.runtime}</div>
56 </div>
57 57
58 <div class="field">
59 <div class="label">
60 <label for="type">${_('Search in')}</label>
61 </div>
58 <div class="field">
59 <div class="label">
60 <label for="type">${_('Search in')}</label>
61 </div>
62 62 <div class="select">
63 63 ${h.select('type',c.cur_type,[('content',_('File contents')),
64 64 ('commit',_('Commit messages')),
@@ -68,9 +68,9 b''
68 68 </div>
69 69 </div>
70 70
71 </div>
72 </div>
73 ${h.end_form()}
71 </div>
72 </div>
73 ${h.end_form()}
74 74 <div class="search">
75 75 %if c.cur_type == 'content':
76 76 <%include file='search_content.html'/>
@@ -2,19 +2,19 b''
2 2
3 3 %for cnt,sr in enumerate(c.formated_results):
4 4 %if h.HasRepoPermissionAny('repository.write','repository.read','repository.admin')(sr['repository'],'search results check'):
5 <div class="search_path">
6 <div class="link">
7 ${h.link_to(h.literal('%s &raquo; %s' % (sr['repository'],sr['f_path'])),
8 h.url('files_home',repo_name=sr['repository'],revision='tip',f_path=sr['f_path']))}
9 </div>
10 </div>
5 <div class="search_path">
6 <div class="link">
7 ${h.link_to(h.literal('%s &raquo; %s' % (sr['repository'],sr['f_path'])),
8 h.url('files_home',repo_name=sr['repository'],revision='tip',f_path=sr['f_path']))}
9 </div>
10 </div>
11 11 %else:
12 12 %if cnt == 0:
13 <div class="error">
14 <div class="link">
15 ${_('Permission denied')}
16 </div>
17 </div>
13 <div class="error">
14 <div class="link">
15 ${_('Permission denied')}
16 </div>
17 </div>
18 18 %endif
19 19
20 20 %endif
@@ -34,15 +34,15 b''
34 34 ${h.text('repo_name',class_="small")}
35 35 </div>
36 36 </div>
37 <div class="field">
38 <div class="label">
39 <label for="clone_uri">${_('Clone uri')}:</label>
40 </div>
41 <div class="input">
42 ${h.text('clone_uri',class_="medium")}
37 <div class="field">
38 <div class="label">
39 <label for="clone_uri">${_('Clone uri')}:</label>
40 </div>
41 <div class="input">
42 ${h.text('clone_uri',class_="medium")}
43 43 <span class="help-block">${_('Optional http[s] url from which repository should be cloned.')}</span>
44 </div>
45 </div>
44 </div>
45 </div>
46 46 <div class="field">
47 47 <div class="label">
48 48 <label for="repo_group">${_('Repository group')}:</label>
@@ -31,9 +31,9 b''
31 31 </div>
32 32 <!-- end box / title -->
33 33 <div class="table">
34 <div id="shortlog_data">
35 ${c.shortlog_data}
36 </div>
34 <div id="shortlog_data">
35 ${c.shortlog_data}
36 </div>
37 37 </div>
38 38 </div>
39 39 </%def>
@@ -1,16 +1,16 b''
1 1 ## -*- coding: utf-8 -*-
2 2 %if c.repo_changesets:
3 3 <table class="table_disp">
4 <tr>
5 <th class="left">${_('revision')}</th>
4 <tr>
5 <th class="left">${_('revision')}</th>
6 6 <th class="left">${_('commit message')}</th>
7 <th class="left">${_('age')}</th>
8 <th class="left">${_('author')}</th>
9 <th class="left">${_('branch')}</th>
10 <th class="left">${_('tags')}</th>
11 </tr>
7 <th class="left">${_('age')}</th>
8 <th class="left">${_('author')}</th>
9 <th class="left">${_('branch')}</th>
10 <th class="left">${_('tags')}</th>
11 </tr>
12 12 %for cnt,cs in enumerate(c.repo_changesets):
13 <tr class="parity${cnt%2}">
13 <tr class="parity${cnt%2}">
14 14 <td>
15 15 <div>
16 16 <div class="changeset-status-container">
@@ -35,24 +35,24 b''
35 35 <td><span class="tooltip" title="${h.tooltip(h.fmt_date(cs.date))}">
36 36 ${h.age(cs.date)}</span>
37 37 </td>
38 <td title="${cs.author}">${h.person(cs.author)}</td>
39 <td>
40 <span class="logtags">
38 <td title="${cs.author}">${h.person(cs.author)}</td>
39 <td>
40 <span class="logtags">
41 41 %if cs.branch:
42 <span class="branchtag">
42 <span class="branchtag">
43 43 ${cs.branch}
44 44 </span>
45 45 %endif
46 </span>
47 </td>
48 <td>
49 <span class="logtags">
50 %for tag in cs.tags:
51 <span class="tagtag">${tag}</span>
52 %endfor
53 </span>
54 </td>
55 </tr>
46 </span>
47 </td>
48 <td>
49 <span class="logtags">
50 %for tag in cs.tags:
51 <span class="tagtag">${tag}</span>
52 %endfor
53 </span>
54 </td>
55 </tr>
56 56 %endfor
57 57
58 58 </table>
@@ -13,7 +13,7 b''
13 13 </%def>
14 14
15 15 <%def name="page_nav()">
16 ${self.menu('summary')}
16 ${self.menu('summary')}
17 17 </%def>
18 18
19 19 <%def name="head_extra()">
@@ -35,14 +35,14 b''
35 35 ${self.breadcrumbs()}
36 36 </div>
37 37 <!-- end box / title -->
38 <div class="form">
39 <div id="summary" class="fields">
38 <div class="form">
39 <div id="summary" class="fields">
40 40
41 <div class="field">
42 <div class="label-summary">
43 <label>${_('Name')}:</label>
44 </div>
45 <div class="input ${summary(c.show_stats)}">
41 <div class="field">
42 <div class="label-summary">
43 <label>${_('Name')}:</label>
44 </div>
45 <div class="input ${summary(c.show_stats)}">
46 46 <div style="float:right;padding:5px 0px 0px 5px">
47 47 %if c.rhodecode_user.username != 'default':
48 48 ${h.link_to(_('RSS'),h.url('rss_feed_home',repo_name=c.dbrepo.repo_name,api_key=c.rhodecode_user.api_key),class_='rss_icon')}
@@ -73,119 +73,119 b''
73 73 %endif
74 74 %endif
75 75 ##REPO TYPE
76 %if h.is_hg(c.dbrepo):
77 <img style="margin-bottom:2px" class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="${h.url('/images/icons/hgicon.png')}"/>
78 %endif
79 %if h.is_git(c.dbrepo):
80 <img style="margin-bottom:2px" class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="${h.url('/images/icons/giticon.png')}"/>
81 %endif
76 %if h.is_hg(c.dbrepo):
77 <img style="margin-bottom:2px" class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="${h.url('/images/icons/hgicon.png')}"/>
78 %endif
79 %if h.is_git(c.dbrepo):
80 <img style="margin-bottom:2px" class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="${h.url('/images/icons/giticon.png')}"/>
81 %endif
82 82
83 83 ##PUBLIC/PRIVATE
84 %if c.dbrepo.private:
85 <img style="margin-bottom:2px" class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="${h.url('/images/icons/lock.png')}"/>
86 %else:
87 <img style="margin-bottom:2px" class="icon" title="${_('public repository')}" alt="${_('public repository')}" src="${h.url('/images/icons/lock_open.png')}"/>
88 %endif
84 %if c.dbrepo.private:
85 <img style="margin-bottom:2px" class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="${h.url('/images/icons/lock.png')}"/>
86 %else:
87 <img style="margin-bottom:2px" class="icon" title="${_('public repository')}" alt="${_('public repository')}" src="${h.url('/images/icons/lock_open.png')}"/>
88 %endif
89 89
90 ##REPO NAME
91 <span class="repo_name" title="${_('Non changable ID %s') % c.dbrepo.repo_id}">${h.repo_link(c.dbrepo.groups_and_repo)}</span>
90 ##REPO NAME
91 <span class="repo_name" title="${_('Non changable ID %s') % c.dbrepo.repo_id}">${h.repo_link(c.dbrepo.groups_and_repo)}</span>
92 92
93 93 ##FORK
94 %if c.dbrepo.fork:
95 <div style="margin-top:5px;clear:both"">
96 <a href="${h.url('summary_home',repo_name=c.dbrepo.fork.repo_name)}"><img class="icon" alt="${_('public')}" title="${_('Fork of')} ${c.dbrepo.fork.repo_name}" src="${h.url('/images/icons/arrow_divide.png')}"/>
97 ${_('Fork of')} ${c.dbrepo.fork.repo_name}
98 </a>
99 </div>
100 %endif
101 ##REMOTE
102 %if c.dbrepo.clone_uri:
94 %if c.dbrepo.fork:
95 <div style="margin-top:5px;clear:both"">
96 <a href="${h.url('summary_home',repo_name=c.dbrepo.fork.repo_name)}"><img class="icon" alt="${_('public')}" title="${_('Fork of')} ${c.dbrepo.fork.repo_name}" src="${h.url('/images/icons/arrow_divide.png')}"/>
97 ${_('Fork of')} ${c.dbrepo.fork.repo_name}
98 </a>
99 </div>
100 %endif
101 ##REMOTE
102 %if c.dbrepo.clone_uri:
103 103 <div style="margin-top:5px;clear:both">
104 104 <a href="${h.url(str(h.hide_credentials(c.dbrepo.clone_uri)))}"><img class="icon" alt="${_('remote clone')}" title="${_('Clone from')} ${h.hide_credentials(c.dbrepo.clone_uri)}" src="${h.url('/images/icons/connect.png')}"/>
105 105 ${_('Clone from')} ${h.hide_credentials(c.dbrepo.clone_uri)}
106 106 </a>
107 107 </div>
108 %endif
109 </div>
110 </div>
108 %endif
109 </div>
110 </div>
111 111
112 <div class="field">
113 <div class="label-summary">
114 <label>${_('Description')}:</label>
115 </div>
112 <div class="field">
113 <div class="label-summary">
114 <label>${_('Description')}:</label>
115 </div>
116 116 %if c.visual.stylify_metatags:
117 117 <div class="input ${summary(c.show_stats)} desc">${h.urlify_text(h.desc_stylize(c.dbrepo.description))}</div>
118 118 %else:
119 119 <div class="input ${summary(c.show_stats)} desc">${h.urlify_text(c.dbrepo.description)}</div>
120 120 %endif
121 </div>
121 </div>
122 122
123 <div class="field">
124 <div class="label-summary">
125 <label>${_('Contact')}:</label>
126 </div>
127 <div class="input ${summary(c.show_stats)}">
128 <div class="gravatar">
129 <img alt="gravatar" src="${h.gravatar_url(c.dbrepo.user.email)}"/>
130 </div>
131 ${_('Username')}: ${c.dbrepo.user.username}<br/>
132 ${_('Name')}: ${c.dbrepo.user.name} ${c.dbrepo.user.lastname}<br/>
133 ${_('Email')}: <a href="mailto:${c.dbrepo.user.email}">${c.dbrepo.user.email}</a>
134 </div>
135 </div>
123 <div class="field">
124 <div class="label-summary">
125 <label>${_('Contact')}:</label>
126 </div>
127 <div class="input ${summary(c.show_stats)}">
128 <div class="gravatar">
129 <img alt="gravatar" src="${h.gravatar_url(c.dbrepo.user.email)}"/>
130 </div>
131 ${_('Username')}: ${c.dbrepo.user.username}<br/>
132 ${_('Name')}: ${c.dbrepo.user.name} ${c.dbrepo.user.lastname}<br/>
133 ${_('Email')}: <a href="mailto:${c.dbrepo.user.email}">${c.dbrepo.user.email}</a>
134 </div>
135 </div>
136 136
137 <div class="field">
138 <div class="label-summary">
139 <label>${_('Clone url')}:</label>
140 </div>
141 <div class="input ${summary(c.show_stats)}">
137 <div class="field">
138 <div class="label-summary">
139 <label>${_('Clone url')}:</label>
140 </div>
141 <div class="input ${summary(c.show_stats)}">
142 142 <div style="display:none" id="clone_by_name" class="ui-btn clone">${_('Show by Name')}</div>
143 143 <div id="clone_by_id" class="ui-btn clone">${_('Show by ID')}</div>
144 <input style="width:80%;margin-left:105px" type="text" id="clone_url" readonly="readonly" value="${c.clone_repo_url}"/>
144 <input style="width:80%;margin-left:105px" type="text" id="clone_url" readonly="readonly" value="${c.clone_repo_url}"/>
145 145 <input style="display:none;width:80%;margin-left:105px" type="text" id="clone_url_id" readonly="readonly" value="${c.clone_repo_url_id}"/>
146 </div>
147 </div>
146 </div>
147 </div>
148 148
149 <div class="field">
150 <div class="label-summary">
151 <label>${_('Trending files')}:</label>
152 </div>
153 <div class="input ${summary(c.show_stats)}">
149 <div class="field">
150 <div class="label-summary">
151 <label>${_('Trending files')}:</label>
152 </div>
153 <div class="input ${summary(c.show_stats)}">
154 154 %if c.show_stats:
155 <div id="lang_stats"></div>
155 <div id="lang_stats"></div>
156 156 %else:
157 157 ${_('Statistics are disabled for this repository')}
158 158 %if h.HasPermissionAll('hg.admin')('enable stats on from summary'):
159 159 ${h.link_to(_('enable'),h.url('edit_repo',repo_name=c.repo_name),class_="ui-btn")}
160 160 %endif
161 161 %endif
162 </div>
163 </div>
162 </div>
163 </div>
164 164
165 <div class="field">
166 <div class="label-summary">
167 <label>${_('Download')}:</label>
168 </div>
169 <div class="input ${summary(c.show_stats)}">
170 %if len(c.rhodecode_repo.revisions) == 0:
171 ${_('There are no downloads yet')}
172 %elif c.enable_downloads is False:
173 ${_('Downloads are disabled for this repository')}
165 <div class="field">
166 <div class="label-summary">
167 <label>${_('Download')}:</label>
168 </div>
169 <div class="input ${summary(c.show_stats)}">
170 %if len(c.rhodecode_repo.revisions) == 0:
171 ${_('There are no downloads yet')}
172 %elif c.enable_downloads is False:
173 ${_('Downloads are disabled for this repository')}
174 174 %if h.HasPermissionAll('hg.admin')('enable downloads on from summary'):
175 175 ${h.link_to(_('enable'),h.url('edit_repo',repo_name=c.repo_name),class_="ui-btn")}
176 176 %endif
177 %else:
178 ${h.select('download_options',c.rhodecode_repo.get_changeset().raw_id,c.download_options)}
179 <span id="${'zip_link'}">${h.link_to(_('Download as zip'), h.url('files_archive_home',repo_name=c.dbrepo.repo_name,fname='tip.zip'),class_="archive_icon ui-btn")}</span>
177 %else:
178 ${h.select('download_options',c.rhodecode_repo.get_changeset().raw_id,c.download_options)}
179 <span id="${'zip_link'}">${h.link_to(_('Download as zip'), h.url('files_archive_home',repo_name=c.dbrepo.repo_name,fname='tip.zip'),class_="archive_icon ui-btn")}</span>
180 180 <span style="vertical-align: bottom">
181 181 <input id="archive_subrepos" type="checkbox" name="subrepos" />
182 182 <label for="archive_subrepos" class="tooltip" title="${h.tooltip(_('Check this to download archive with subrepos'))}" >${_('with subrepos')}</label>
183 183 </span>
184 %endif
185 </div>
186 </div>
187 </div>
188 </div>
184 %endif
185 </div>
186 </div>
187 </div>
188 </div>
189 189 </div>
190 190
191 191 %if c.show_stats:
@@ -210,12 +210,12 b''
210 210 <div style="clear: both;height: 10px"></div>
211 211 <div id="overview" style="width:450px;height:100px;float:left"></div>
212 212
213 <div id="legend_data" style="clear:both;margin-top:10px;">
214 <div id="legend_container"></div>
215 <div id="legend_choices">
216 <table id="legend_choices_tables" class="noborder" style="font-size:smaller;color:#545454"></table>
217 </div>
218 </div>
213 <div id="legend_data" style="clear:both;margin-top:10px;">
214 <div id="legend_container"></div>
215 <div id="legend_choices">
216 <table id="legend_choices_tables" class="noborder" style="font-size:smaller;color:#545454"></table>
217 </div>
218 </div>
219 219 </div>
220 220 </div>
221 221 %endif
@@ -279,13 +279,13 b" YUE.on('clone_by_name','click',function("
279 279 })
280 280 YUE.on('clone_by_id','click',function(e){
281 281
282 // show url by id and hide id button
283 YUD.setStyle('clone_by_id','display','none');
282 // show url by id and hide id button
283 YUD.setStyle('clone_by_id','display','none');
284 284 YUD.setStyle('clone_url_id','display','');
285 285
286 286 // hide url by name and show id button
287 YUD.setStyle('clone_by_name','display','');
288 YUD.setStyle('clone_url','display','none');
287 YUD.setStyle('clone_by_name','display','');
288 YUD.setStyle('clone_url','display','none');
289 289 })
290 290
291 291
@@ -323,7 +323,7 b" var tbl = document.createElement('table'"
323 323 tbl.setAttribute('class','trending_language_tbl');
324 324 var cnt = 0;
325 325 for (var i=0;i<data.length;i++){
326 total+= data[i][1].count;
326 total+= data[i][1].count;
327 327 }
328 328 for (var i=0;i<data.length;i++){
329 329 cnt += 1;
@@ -2,16 +2,16 b''
2 2 <div id="table_wrap" class="yui-skin-sam">
3 3 <table id="tags_data">
4 4 <thead>
5 <tr>
5 <tr>
6 6 <th class="left">${_('Name')}</th>
7 7 <th class="left">${_('Date')}</th>
8 8 <th class="left">${_('Author')}</th>
9 9 <th class="left">${_('Revision')}</th>
10 10 <th class="left">${_('Compare')}</th>
11 </tr>
11 </tr>
12 12 </thead>
13 %for cnt,tag in enumerate(c.repo_tags.items()):
14 <tr class="parity${cnt%2}">
13 %for cnt,tag in enumerate(c.repo_tags.items()):
14 <tr class="parity${cnt%2}">
15 15 <td>
16 16 <span class="logtags">
17 17 <span class="tagtag">${h.link_to(tag[0],
@@ -20,8 +20,8 b''
20 20 </span>
21 21 </td>
22 22 <td><span class="tooltip" title="${h.tooltip(h.age(tag[1].date))}">${h.fmt_date(tag[1].date)}</span></td>
23 <td title="${tag[1].author}">${h.person(tag[1].author)}</td>
24 <td>
23 <td title="${tag[1].author}">${h.person(tag[1].author)}</td>
24 <td>
25 25 <div>
26 26 <pre><a href="${h.url('files_home',repo_name=c.repo_name,revision=tag[1].raw_id)}">r${tag[1].revision}:${h.short_id(tag[1].raw_id)}</a></pre>
27 27 </div>
@@ -30,10 +30,10 b''
30 30 <input class="branch-compare" type="radio" name="compare_org" value="${tag[0]}"/>
31 31 <input class="branch-compare" type="radio" name="compare_other" value="${tag[0]}"/>
32 32 </td>
33 </tr>
34 %endfor
33 </tr>
34 %endfor
35 35 </table>
36 36 </div>
37 37 %else:
38 ${_('There are no tags yet')}
38 ${_('There are no tags yet')}
39 39 %endif
General Comments 0
You need to be logged in to leave comments. Login now