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