##// END OF EJS Templates
html: random indentation fixes
Mads Kiilerich -
r3198:c20adbaf beta
parent child Browse files
Show More
@@ -1,18 +1,18 b''
1 1 {% extends "basic/layout.html" %}
2 2
3 3 {% block sidebarlogo %}
4 4 <h3>Support RhodeCode development.</h3>
5 5 <div style="text-align:center">
6 6 <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
7 <input type="hidden" name="cmd" value="_s-xclick">
8 <input type="hidden" name="hosted_button_id" value="8U2LLRPLBKWDU">
9 <input style="border:0px !important" type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif"
10 border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
11 <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
7 <input type="hidden" name="cmd" value="_s-xclick">
8 <input type="hidden" name="hosted_button_id" value="8U2LLRPLBKWDU">
9 <input style="border:0px !important" type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif"
10 border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
11 <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
12 12 </form>
13 13 <div style="padding:5px">
14 14 <a href="http://flattr.com/thing/167489/RhodeCode" target="_blank">
15 15 <img src="http://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0" /></a>
16 </div>
16 </div>
17 17 </div>
18 18 {% endblock %}}
@@ -1,64 +1,64 b''
1 1 ## -*- coding: utf-8 -*-
2 2 %if c.users_log:
3 3 <table>
4 4 <tr>
5 5 <th class="left">${_('Username')}</th>
6 6 <th class="left">${_('Action')}</th>
7 7 <th class="left">${_('Repository')}</th>
8 8 <th class="left">${_('Date')}</th>
9 9 <th class="left">${_('From IP')}</th>
10 10 </tr>
11 11
12 12 %for cnt,l in enumerate(c.users_log):
13 13 <tr class="parity${cnt%2}">
14 14 <td>
15 15 %if l.user is not None:
16 16 ${h.link_to(l.user.username,h.url('edit_user', id=l.user.user_id))}
17 17 %else:
18 18 ${l.username}
19 19 %endif
20 20 </td>
21 21 <td>${h.action_parser(l)[0]()}
22 <div class="journal_action_params">
23 ${h.literal(h.action_parser(l)[1]())}
24 </div>
22 <div class="journal_action_params">
23 ${h.literal(h.action_parser(l)[1]())}
24 </div>
25 25 </td>
26 26 <td>
27 %if l.repository is not None:
28 ${h.link_to(l.repository.repo_name,h.url('summary_home',repo_name=l.repository.repo_name))}
29 %else:
30 ${l.repository_name}
31 %endif
27 %if l.repository is not None:
28 ${h.link_to(l.repository.repo_name,h.url('summary_home',repo_name=l.repository.repo_name))}
29 %else:
30 ${l.repository_name}
31 %endif
32 32 </td>
33 33
34 34 <td>${h.fmt_date(l.action_date)}</td>
35 35 <td>${l.user_ip}</td>
36 36 </tr>
37 37 %endfor
38 38 </table>
39 39
40 40 <script type="text/javascript">
41 41 YUE.onDOMReady(function(){
42 42 YUE.delegate("user_log","click",function(e, matchedEl, container){
43 43 ypjax(e.target.href,"user_log",function(){
44 44 show_more_event();
45 45 tooltip_activate();
46 46 show_changeset_tooltip();
47 47 });
48 48 YUE.preventDefault(e);
49 49 },'.pager_link');
50 50
51 51 YUE.delegate("user_log","click",function(e,matchedEl,container){
52 52 var el = e.target;
53 53 YUD.setStyle(YUD.get(el.id.substring(1)),'display','');
54 54 YUD.setStyle(el.parentNode,'display','none');
55 55 },'.show_more');
56 56 });
57 57 </script>
58 58
59 59 <div class="pagination-wh pagination-left">
60 60 ${c.users_log.pager('$link_previous ~2~ $link_next')}
61 61 </div>
62 62 %else:
63 63 ${_('No actions yet')}
64 64 %endif
@@ -1,95 +1,95 b''
1 1 ## -*- coding: utf-8 -*-
2 2 <%inherit file="/base/base.html"/>
3 3
4 4 <%def name="title()">
5 5 ${_('LDAP administration')} - ${c.rhodecode_name}
6 6 </%def>
7 7
8 8 <%def name="breadcrumbs_links()">
9 9 ${h.link_to(_('Admin'),h.url('admin_home'))}
10 10 &raquo;
11 11 ${_('Ldap')}
12 12 </%def>
13 13
14 14 <%def name="page_nav()">
15 15 ${self.menu('admin')}
16 16 </%def>
17 17
18 18 <%def name="main()">
19 19 <div class="box">
20 20 <!-- box / title -->
21 21 <div class="title">
22 22 ${self.breadcrumbs()}
23 23 </div>
24 24 ${h.form(url('ldap_settings'))}
25 25 <div class="form">
26 26 <div class="fields">
27 27
28 <h3>${_('Connection settings')}</h3>
28 <h3>${_('Connection settings')}</h3>
29 29 <div class="field">
30 30 <div class="label label-checkbox"><label for="ldap_active">${_('Enable LDAP')}</label></div>
31 31 <div class="checkboxes"><div class="checkbox">${h.checkbox('ldap_active',True,class_='small')}</div></div>
32 32 </div>
33 33 <div class="field">
34 34 <div class="label"><label for="ldap_host">${_('Host')}</label></div>
35 35 <div class="input">${h.text('ldap_host',class_='small')}</div>
36 36 </div>
37 37 <div class="field">
38 38 <div class="label"><label for="ldap_port">${_('Port')}</label></div>
39 39 <div class="input">${h.text('ldap_port',class_='small')}</div>
40 40 </div>
41 41 <div class="field">
42 42 <div class="label"><label for="ldap_dn_user">${_('Account')}</label></div>
43 43 <div class="input">${h.text('ldap_dn_user',class_='small')}</div>
44 44 </div>
45 45 <div class="field">
46 46 <div class="label"><label for="ldap_dn_pass">${_('Password')}</label></div>
47 47 <div class="input">${h.password('ldap_dn_pass',class_='small')}</div>
48 48 </div>
49 49 <div class="field">
50 50 <div class="label"><label for="ldap_tls_kind">${_('Connection security')}</label></div>
51 51 <div class="select">${h.select('ldap_tls_kind',c.tls_kind_cur,c.tls_kind_choices,class_='small')}</div>
52 52 </div>
53 53 <div class="field">
54 54 <div class="label"><label for="ldap_tls_reqcert">${_('Certificate Checks')}</label></div>
55 55 <div class="select">${h.select('ldap_tls_reqcert',c.tls_reqcert_cur,c.tls_reqcert_choices,class_='small')}</div>
56 56 </div>
57 <h3>${_('Search settings')}</h3>
57 <h3>${_('Search settings')}</h3>
58 58 <div class="field">
59 59 <div class="label"><label for="ldap_base_dn">${_('Base DN')}</label></div>
60 60 <div class="input">${h.text('ldap_base_dn',class_='small')}</div>
61 61 </div>
62 62 <div class="field">
63 63 <div class="label"><label for="ldap_filter">${_('LDAP Filter')}</label></div>
64 64 <div class="input">${h.text('ldap_filter',class_='small')}</div>
65 65 </div>
66 66 <div class="field">
67 67 <div class="label"><label for="ldap_search_scope">${_('LDAP Search Scope')}</label></div>
68 68 <div class="select">${h.select('ldap_search_scope',c.search_scope_cur,c.search_scope_choices,class_='small')}</div>
69 69 </div>
70 <h3>${_('Attribute mappings')}</h3>
70 <h3>${_('Attribute mappings')}</h3>
71 71 <div class="field">
72 72 <div class="label"><label for="ldap_attr_login">${_('Login Attribute')}</label></div>
73 73 <div class="input">${h.text('ldap_attr_login',class_='small')}</div>
74 74 </div>
75 75 <div class="field">
76 76 <div class="label"><label for="ldap_attr_firstname">${_('First Name Attribute')}</label></div>
77 77 <div class="input">${h.text('ldap_attr_firstname',class_='small')}</div>
78 78 </div>
79 79 <div class="field">
80 80 <div class="label"><label for="ldap_attr_lastname">${_('Last Name Attribute')}</label></div>
81 81 <div class="input">${h.text('ldap_attr_lastname',class_='small')}</div>
82 82 </div>
83 83 <div class="field">
84 84 <div class="label"><label for="ldap_attr_email">${_('E-mail Attribute')}</label></div>
85 85 <div class="input">${h.text('ldap_attr_email',class_='small')}</div>
86 86 </div>
87 87
88 88 <div class="buttons">
89 89 ${h.submit('save',_('Save'),class_="ui-btn large")}
90 90 </div>
91 91 </div>
92 92 </div>
93 93 ${h.end_form()}
94 94 </div>
95 95 </%def>
@@ -1,86 +1,86 b''
1 1 ## -*- coding: utf-8 -*-
2 2 <%inherit file="/base/base.html"/>
3 3
4 4 <%def name="title()">
5 5 ${_('Edit repos group')} ${c.repos_group.name} - ${c.rhodecode_name}
6 6 </%def>
7 7 <%def name="breadcrumbs_links()">
8 8 ${h.link_to(_('Admin'),h.url('admin_home'))}
9 9 &raquo;
10 10 ${h.link_to(_('Repos groups'),h.url('repos_groups'))}
11 11 &raquo;
12 12 ${_('edit repos group')} "${c.repos_group.name}"
13 13 </%def>
14 14
15 15 <%def name="page_nav()">
16 16 ${self.menu('admin')}
17 17 </%def>
18 18
19 19 <%def name="main()">
20 20 <div class="box">
21 21 <!-- box / title -->
22 22 <div class="title">
23 23 ${self.breadcrumbs()}
24 24 <ul class="links">
25 25 <li>
26 26 <span>${h.link_to(_(u'ADD NEW CHILD GROUP'),h.url('new_repos_group', parent_group=c.repos_group.group_id))}</span>
27 27 </li>
28 28 </ul>
29 29 </div>
30 30 <!-- end box / title -->
31 31 ${h.form(url('repos_group',id=c.repos_group.group_id),method='put')}
32 32 <div class="form">
33 33 <!-- fields -->
34 34 <div class="fields">
35 <div class="field">
35 <div class="field">
36 36 <div class="label">
37 37 <label for="group_name">${_('Group name')}:</label>
38 38 </div>
39 39 <div class="input">
40 40 ${h.text('group_name',class_='medium')}
41 41 </div>
42 </div>
42 </div>
43 43
44 44 <div class="field">
45 45 <div class="label label-textarea">
46 46 <label for="group_description">${_('Description')}:</label>
47 47 </div>
48 48 <div class="textarea text-area editor">
49 49 ${h.textarea('group_description',cols=23,rows=5,class_="medium")}
50 50 </div>
51 </div>
51 </div>
52 52
53 <div class="field">
54 <div class="label">
55 <label for="group_parent_id">${_('Group parent')}:</label>
56 </div>
57 <div class="input">
58 ${h.select('group_parent_id','',c.repo_groups,class_="medium")}
59 </div>
60 </div>
53 <div class="field">
54 <div class="label">
55 <label for="group_parent_id">${_('Group parent')}:</label>
56 </div>
57 <div class="input">
58 ${h.select('group_parent_id','',c.repo_groups,class_="medium")}
59 </div>
60 </div>
61 61 <div class="field">
62 62 <div class="label">
63 63 <label for="input">${_('Permissions')}:</label>
64 64 </div>
65 65 <div class="input">
66 66 <%include file="repos_group_edit_perms.html"/>
67 67 </div>
68 68 </div>
69 69 <div class="field">
70 70 <div class="label label-checkbox">
71 71 <label for="enable_locking">${_('Enable locking')}:</label>
72 72 </div>
73 73 <div class="checkboxes">
74 74 ${h.checkbox('enable_locking',value="True")}
75 75 <span class="help-block">${_('Enable lock-by-pulling on group. This option will be applied to all other groups and repositories inside')}</span>
76 76 </div>
77 77 </div>
78 78 <div class="buttons">
79 79 ${h.submit('save',_('Save'),class_="ui-btn large")}
80 80 ${h.reset('reset',_('Reset'),class_="ui-btn large")}
81 81 </div>
82 82 </div>
83 83 </div>
84 84 ${h.end_form()}
85 85 </div>
86 86 </%def>
@@ -1,96 +1,96 b''
1 1 ## -*- coding: utf-8 -*-
2 2 <%inherit file="/base/base.html"/>
3 3
4 4 <%def name="title()">
5 5 ${_('Settings administration')} - ${c.rhodecode_name}
6 6 </%def>
7 7
8 8 <%def name="breadcrumbs_links()">
9 9 ${h.link_to(_('Admin'),h.url('admin_home'))} &raquo; ${_('Settings')}
10 10 </%def>
11 11
12 12 <%def name="page_nav()">
13 13 ${self.menu('admin')}
14 14 </%def>
15 15
16 16 <%def name="main()">
17 17 <div class="box">
18 18 <!-- box / title -->
19 19 <div class="title">
20 20 ${self.breadcrumbs()}
21 21 </div>
22 22 <!-- end box / title -->
23 23
24 24 <h3>${_('Built in hooks - read only')}</h3>
25 25 <div class="form">
26 26 <div class="fields">
27 27 % for hook in c.hooks:
28 <div class="field">
29 <div class="label label">
30 <label for="${hook.ui_key}">${hook.ui_key}</label>
28 <div class="field">
29 <div class="label label">
30 <label for="${hook.ui_key}">${hook.ui_key}</label>
31 </div>
32 <div class="input" style="margin-left:280px">
33 ${h.text(hook.ui_key,hook.ui_value,size=60,readonly="readonly")}
34 </div>
31 35 </div>
32 <div class="input" style="margin-left:280px">
33 ${h.text(hook.ui_key,hook.ui_value,size=60,readonly="readonly")}
34 </div>
35 </div>
36 36 % endfor
37 37 </div>
38 38 </div>
39 39
40 40 <h3>${_('Custom hooks')}</h3>
41 41 ${h.form(url('admin_setting', setting_id='hooks'),method='put')}
42 42 <div class="form">
43 43 <div class="fields">
44 44
45 45 % for hook in c.custom_hooks:
46 46 <div class="field" id="${'id%s' % hook.ui_id }">
47 47 <div class="label label">
48 48 <label for="${hook.ui_key}">${hook.ui_key}</label>
49 49 </div>
50 50 <div class="input" style="margin-left:280px">
51 51 ${h.hidden('hook_ui_key',hook.ui_key)}
52 52 ${h.hidden('hook_ui_value',hook.ui_value)}
53 53 ${h.text('hook_ui_value_new',hook.ui_value,size=60)}
54 54 <span class="delete_icon action_button"
55 55 onclick="ajaxActionHook(${hook.ui_id},'${'id%s' % hook.ui_id }')">
56 56 ${_('remove')}
57 57 </span>
58 58 </div>
59 59 </div>
60 60 % endfor
61 61
62 62 <div class="field">
63 63 <div class="input" style="margin-left:-180px;position: absolute;">
64 64 <div class="input">
65 65 ${h.text('new_hook_ui_key',size=30)}
66 66 </div>
67 67 </div>
68 68 <div class="input" style="margin-left:280px">
69 69 ${h.text('new_hook_ui_value',size=60)}
70 70 </div>
71 71 </div>
72 72 <div class="buttons" style="margin-left:280px">
73 73 ${h.submit('save',_('Save'),class_="ui-btn large")}
74 74 </div>
75 75 </div>
76 76 </div>
77 77 ${h.end_form()}
78 78 </div>
79 79 <script type="text/javascript">
80 80 function ajaxActionHook(hook_id,field_id) {
81 81 var sUrl = "${h.url('admin_setting', setting_id='hooks')}";
82 82 var callback = {
83 83 success: function (o) {
84 84 var elem = YUD.get(""+field_id);
85 85 elem.parentNode.removeChild(elem);
86 86 },
87 87 failure: function (o) {
88 88 alert("${_('Failed to remove hook')}");
89 89 },
90 90 };
91 91 var postData = '_method=delete&hook_id=' + hook_id;
92 92 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
93 93 };
94 94 </script>
95 95
96 96 </%def>
@@ -1,338 +1,338 b''
1 1 ## -*- coding: utf-8 -*-
2 2 <%inherit file="/base/base.html"/>
3 3
4 4 <%def name="title()">
5 5 ${_('Settings administration')} - ${c.rhodecode_name}
6 6 </%def>
7 7
8 8 <%def name="breadcrumbs_links()">
9 9 ${h.link_to(_('Admin'),h.url('admin_home'))} &raquo; ${_('Settings')}
10 10 </%def>
11 11
12 12 <%def name="page_nav()">
13 13 ${self.menu('admin')}
14 14 </%def>
15 15
16 16 <%def name="main()">
17 17 <div class="box">
18 18 <!-- box / title -->
19 19 <div class="title">
20 20 ${self.breadcrumbs()}
21 21 </div>
22 22 <!-- end box / title -->
23 23
24 24 <h3>${_('Remap and rescan repositories')}</h3>
25 25 ${h.form(url('admin_setting', setting_id='mapping'),method='put')}
26 26 <div class="form">
27 27 <!-- fields -->
28 28
29 29 <div class="fields">
30 30 <div class="field">
31 31 <div class="label label-checkbox">
32 32 <label for="destroy">${_('rescan option')}:</label>
33 33 </div>
34 34 <div class="checkboxes">
35 35 <div class="checkbox">
36 36 ${h.checkbox('destroy',True)}
37 37 <label for="destroy">
38 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 39 ${_('destroy old data')}</span> </label>
40 40 </div>
41 41 <span class="help-block">${_('Rescan repositories location for new repositories. Also deletes obsolete if `destroy` flag is checked ')}</span>
42 42 </div>
43 43 </div>
44 44
45 45 <div class="buttons">
46 46 ${h.submit('rescan',_('Rescan repositories'),class_="ui-btn large")}
47 47 </div>
48 48 </div>
49 49 </div>
50 50 ${h.end_form()}
51 51
52 52 <h3>${_('Whoosh indexing')}</h3>
53 53 ${h.form(url('admin_setting', setting_id='whoosh'),method='put')}
54 54 <div class="form">
55 55 <!-- fields -->
56 56
57 57 <div class="fields">
58 58 <div class="field">
59 59 <div class="label label-checkbox">
60 60 <label>${_('index build option')}:</label>
61 61 </div>
62 62 <div class="checkboxes">
63 63 <div class="checkbox">
64 64 ${h.checkbox('full_index',True)}
65 65 <label for="full_index">${_('build from scratch')}</label>
66 66 </div>
67 67 </div>
68 68 </div>
69 69
70 70 <div class="buttons">
71 71 ${h.submit('reindex',_('Reindex'),class_="ui-btn large")}
72 72 </div>
73 73 </div>
74 74 </div>
75 75 ${h.end_form()}
76 76
77 77 <h3>${_('Global application settings')}</h3>
78 78 ${h.form(url('admin_setting', setting_id='global'),method='put')}
79 79 <div class="form">
80 80 <!-- fields -->
81 81
82 82 <div class="fields">
83 83
84 84 <div class="field">
85 85 <div class="label">
86 86 <label for="rhodecode_title">${_('Application name')}:</label>
87 87 </div>
88 88 <div class="input">
89 89 ${h.text('rhodecode_title',size=30)}
90 90 </div>
91 91 </div>
92 92
93 93 <div class="field">
94 94 <div class="label">
95 95 <label for="rhodecode_realm">${_('Realm text')}:</label>
96 96 </div>
97 97 <div class="input">
98 98 ${h.text('rhodecode_realm',size=30)}
99 99 </div>
100 100 </div>
101 101
102 102 <div class="field">
103 103 <div class="label">
104 104 <label for="rhodecode_ga_code">${_('GA code')}:</label>
105 105 </div>
106 106 <div class="input">
107 107 ${h.text('rhodecode_ga_code',size=30)}
108 108 </div>
109 109 </div>
110 110
111 111 <div class="buttons">
112 112 ${h.submit('save',_('Save settings'),class_="ui-btn large")}
113 113 ${h.reset('reset',_('Reset'),class_="ui-btn large")}
114 114 </div>
115 115 </div>
116 116 </div>
117 117 ${h.end_form()}
118 118
119 119 <h3>${_('Visualisation settings')}</h3>
120 120 ${h.form(url('admin_setting', setting_id='visual'),method='put')}
121 121 <div class="form">
122 122 <!-- fields -->
123 123
124 124 <div class="fields">
125 125 <div class="field">
126 126 <div class="label label-checkbox">
127 127 <label>${_('General')}:</label>
128 128 </div>
129 129 <div class="checkboxes">
130 130 <div class="checkbox">
131 131 ${h.checkbox('rhodecode_lightweight_dashboard','True')}
132 132 <label for="rhodecode_lightweight_dashboard">${_('Use lightweight dashboard')}</label>
133 133 </div>
134 134 </div>
135 135 </div>
136 136
137 137 <div class="field">
138 138 <div class="label label-checkbox">
139 139 <label>${_('Icons')}:</label>
140 140 </div>
141 141 <div class="checkboxes">
142 142 <div class="checkbox">
143 143 ${h.checkbox('rhodecode_show_public_icon','True')}
144 144 <label for="rhodecode_show_public_icon">${_('Show public repo icon on repositories')}</label>
145 145 </div>
146 146 <div class="checkbox">
147 147 ${h.checkbox('rhodecode_show_private_icon','True')}
148 148 <label for="rhodecode_show_private_icon">${_('Show private repo icon on repositories')}</label>
149 149 </div>
150 150 </div>
151 151 </div>
152 152
153 153 <div class="field">
154 154 <div class="label label-checkbox">
155 155 <label>${_('Meta-Tagging')}:</label>
156 156 </div>
157 157 <div class="checkboxes">
158 158 <div class="checkbox">
159 159 ${h.checkbox('rhodecode_stylify_metatags','True')}
160 160 <label for="rhodecode_stylify_metatags">${_('Stylify recognised metatags:')}</label>
161 161 </div>
162 162 <div style="padding-left: 20px;">
163 163 <ul> <!-- Fix style here -->
164 164 <li>[featured] <span class="metatag" tag="featured">featured</span></li>
165 165 <li>[stale] <span class="metatag" tag="stale">stale</span></li>
166 166 <li>[dead] <span class="metatag" tag="dead">dead</span></li>
167 167 <li>[lang =&gt; lang] <span class="metatag" tag="lang" >lang</span></li>
168 168 <li>[license =&gt; License] <span class="metatag" tag="license"><a href="http://www.opensource.org/licenses/License" >License</a></span></li>
169 169 <li>[requires =&gt; Repo] <span class="metatag" tag="requires" >requires =&gt; <a href="#" >Repo</a></span></li>
170 170 <li>[recommends =&gt; Repo] <span class="metatag" tag="recommends" >recommends =&gt; <a href="#" >Repo</a></span></li>
171 171 <li>[see =&gt; URI] <span class="metatag" tag="see">see =&gt; <a href="#">URI</a> </span></li>
172 172 </ul>
173 173 </div>
174 174 </div>
175 175 </div>
176 176
177 177 <div class="buttons">
178 178 ${h.submit('save',_('Save settings'),class_="ui-btn large")}
179 179 ${h.reset('reset',_('Reset'),class_="ui-btn large")}
180 180 </div>
181 181
182 182 </div>
183 183 </div>
184 184 ${h.end_form()}
185 185
186 186
187 187 <h3>${_('VCS settings')}</h3>
188 188 ${h.form(url('admin_setting', setting_id='vcs'),method='put')}
189 189 <div class="form">
190 190 <!-- fields -->
191 191
192 192 <div class="fields">
193 193
194 194 <div class="field">
195 195 <div class="label label-checkbox">
196 196 <label>${_('Web')}:</label>
197 197 </div>
198 198 <div class="checkboxes">
199 <div class="checkbox">
200 ${h.checkbox('web_push_ssl', 'True')}
201 <label for="web_push_ssl">${_('require ssl for vcs operations')}</label>
202 </div>
199 <div class="checkbox">
200 ${h.checkbox('web_push_ssl', 'True')}
201 <label for="web_push_ssl">${_('require ssl for vcs operations')}</label>
202 </div>
203 203 <span class="help-block">${_('RhodeCode will require SSL for pushing or pulling. If SSL is missing it will return HTTP Error 406: Not Acceptable')}</span>
204 </div>
204 </div>
205 205 </div>
206 206
207 207 <div class="field">
208 208 <div class="label label-checkbox">
209 209 <label>${_('Hooks')}:</label>
210 210 </div>
211 211 <div class="checkboxes">
212 <div class="checkbox">
213 ${h.checkbox('hooks_changegroup_update','True')}
214 <label for="hooks_changegroup_update">${_('Update repository after push (hg update)')}</label>
215 </div>
216 <div class="checkbox">
217 ${h.checkbox('hooks_changegroup_repo_size','True')}
218 <label for="hooks_changegroup_repo_size">${_('Show repository size after push')}</label>
219 </div>
212 <div class="checkbox">
213 ${h.checkbox('hooks_changegroup_update','True')}
214 <label for="hooks_changegroup_update">${_('Update repository after push (hg update)')}</label>
215 </div>
216 <div class="checkbox">
217 ${h.checkbox('hooks_changegroup_repo_size','True')}
218 <label for="hooks_changegroup_repo_size">${_('Show repository size after push')}</label>
219 </div>
220 220 <div class="checkbox">
221 221 ${h.checkbox('hooks_changegroup_push_logger','True')}
222 222 <label for="hooks_changegroup_push_logger">${_('Log user push commands')}</label>
223 223 </div>
224 224 <div class="checkbox">
225 225 ${h.checkbox('hooks_outgoing_pull_logger','True')}
226 226 <label for="hooks_outgoing_pull_logger">${_('Log user pull commands')}</label>
227 227 </div>
228 </div>
228 </div>
229 229 <div class="input" style="margin-top:10px">
230 230 ${h.link_to(_('advanced setup'),url('admin_edit_setting',setting_id='hooks'),class_="ui-btn")}
231 231 </div>
232 232 </div>
233 233 <div class="field">
234 234 <div class="label label-checkbox">
235 235 <label>${_('Mercurial Extensions')}:</label>
236 236 </div>
237 237 <div class="checkboxes">
238 238 <div class="checkbox">
239 239 ${h.checkbox('extensions_largefiles','True')}
240 240 <label for="extensions_hgsubversion">${_('largefiles extensions')}</label>
241 241 </div>
242 242 <div class="checkbox">
243 243 ${h.checkbox('extensions_hgsubversion','True')}
244 244 <label for="extensions_hgsubversion">${_('hgsubversion extensions')}</label>
245 245 </div>
246 246 <span class="help-block">${_('Requires hgsubversion library installed. Allows clonning from svn remote locations')}</span>
247 247 ##<div class="checkbox">
248 248 ## ${h.checkbox('extensions_hggit','True')}
249 249 ## <label for="extensions_hggit">${_('hg-git extensions')}</label>
250 250 ##</div>
251 251 ##<span class="help-block">${_('Requires hg-git library installed. Allows clonning from git remote locations')}</span>
252 252 </div>
253 253 </div>
254 254 <div class="field">
255 255 <div class="label">
256 256 <label for="paths_root_path">${_('Repositories location')}:</label>
257 257 </div>
258 258 <div class="input">
259 259 ${h.text('paths_root_path',size=30,readonly="readonly")}
260 <span id="path_unlock" class="tooltip"
261 title="${h.tooltip(_('This a crucial application setting. If you are really sure you need to change this, you must restart application in order to make this setting take effect. Click this label to unlock.'))}">
262 ${_('unlock')}</span>
260 <span id="path_unlock" class="tooltip"
261 title="${h.tooltip(_('This a crucial application setting. If you are really sure you need to change this, you must restart application in order to make this setting take effect. Click this label to unlock.'))}">
262 ${_('unlock')}</span>
263 263 <span class="help-block">${_('Location where repositories are stored. After changing this value a restart, and rescan is required')}</span>
264 264 </div>
265 265 </div>
266 266
267 267 <div class="buttons">
268 268 ${h.submit('save',_('Save settings'),class_="ui-btn large")}
269 269 ${h.reset('reset',_('Reset'),class_="ui-btn large")}
270 270 </div>
271 271 </div>
272 272 </div>
273 273 ${h.end_form()}
274 274
275 275 <script type="text/javascript">
276 276 YAHOO.util.Event.onDOMReady(function(){
277 277 YAHOO.util.Event.addListener('path_unlock','click',function(){
278 278 YAHOO.util.Dom.get('paths_root_path').removeAttribute('readonly');
279 279 });
280 280 });
281 281 </script>
282 282
283 283 <h3>${_('Test Email')}</h3>
284 284 ${h.form(url('admin_setting', setting_id='email'),method='put')}
285 285 <div class="form">
286 286 <!-- fields -->
287 287
288 288 <div class="fields">
289 289 <div class="field">
290 290 <div class="label">
291 291 <label for="test_email">${_('Email to')}:</label>
292 292 </div>
293 293 <div class="input">
294 294 ${h.text('test_email',size=30)}
295 295 </div>
296 296 </div>
297 297
298 298 <div class="buttons">
299 299 ${h.submit('send',_('Send'),class_="ui-btn large")}
300 300 </div>
301 301 </div>
302 302 </div>
303 303 ${h.end_form()}
304 304
305 305 <h3>${_('System Info and Packages')}</h3>
306 306 <div class="form">
307 307 <div>
308 308 <h5 id="expand_modules" style="cursor: pointer">&darr; ${_('show')} &darr;</h5>
309 309 </div>
310 310 <div id="expand_modules_table" style="display:none">
311 311 <h5>Python - ${c.py_version}</h5>
312 312 <h5>System - ${c.platform}</h5>
313 313
314 314 <table class="table" style="margin:0px 0px 0px 20px">
315 315 <colgroup>
316 316 <col style="width:220px">
317 317 </colgroup>
318 318 <tbody>
319 319 %for key, value in c.modules:
320 320 <tr>
321 321 <th style="text-align: right;padding-right:5px;">${key}</th>
322 322 <td>${value}</td>
323 323 </tr>
324 324 %endfor
325 325 </tbody>
326 326 </table>
327 327 </div>
328 328 </div>
329 329
330 330 <script type="text/javascript">
331 331 YUE.on('expand_modules','click',function(e){
332 YUD.setStyle('expand_modules_table','display','');
333 YUD.setStyle('expand_modules','display','none');
332 YUD.setStyle('expand_modules_table','display','');
333 YUD.setStyle('expand_modules','display','none');
334 334 })
335 335 </script>
336 336
337 337 </div>
338 338 </%def>
@@ -1,280 +1,280 b''
1 1 ## -*- coding: utf-8 -*-
2 2 <%inherit file="/base/base.html"/>
3 3
4 4 <%def name="title()">
5 5 ${_('My account')} ${c.rhodecode_user.username} - ${c.rhodecode_name}
6 6 </%def>
7 7
8 8 <%def name="breadcrumbs_links()">
9 9 ${_('My Account')}
10 10 </%def>
11 11
12 12 <%def name="page_nav()">
13 13 ${self.menu('admin')}
14 14 </%def>
15 15
16 16 <%def name="main()">
17 17
18 18 <div class="box box-left">
19 19 <!-- box / title -->
20 20 <div class="title">
21 21 ${self.breadcrumbs()}
22 22 </div>
23 23 <!-- end box / title -->
24 24 ${c.form|n}
25 25 </div>
26 26
27 27 <div class="box box-right">
28 28 <!-- box / title -->
29 29 <div class="title">
30 30 <h5>
31 31 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}" style="display: none"/>
32 32 </h5>
33 33 <ul class="links" style="color:#DADADA">
34 34 <li>
35 35 <span><a id="show_perms" class="link-white current" href="#perms">${_('My permissions')}</a> </span>
36 36 </li>
37 37 <li>
38 38 <span><a id="show_my" class="link-white" href="#my">${_('My repos')}</a> </span>
39 39 </li>
40 40 <li>
41 41 <span><a id="show_pullrequests" class="link-white" href="#pullrequests">${_('My pull requests')}</a> </span>
42 42 </li>
43 43 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
44 44 <li>
45 45 <span>${h.link_to(_('Add repo'),h.url('admin_settings_create_repository'))}</span>
46 46 </li>
47 47 %endif
48 48 </ul>
49 49 </div>
50 50 <!-- end box / title -->
51 51 <div id="perms_container">
52 52 <div id="perms" class="table">
53 53 %for section in sorted(c.rhodecode_user.permissions.keys()):
54 54 <div class="perms_section_head">${section.replace("_"," ").capitalize()}</div>
55 55
56 56 <div id='tbl_list_wrap_${section}' class="yui-skin-sam">
57 57 <table id="tbl_list_${section}">
58 58 <thead>
59 59 <tr>
60 60 <th class="left">${_('Name')}</th>
61 61 <th class="left">${_('Permission')}</th>
62 62 </thead>
63 63 <tbody>
64 64 %for k in c.rhodecode_user.permissions[section]:
65 65 <%
66 66 if section != 'global':
67 67 section_perm = c.rhodecode_user.permissions[section].get(k)
68 68 _perm = section_perm.split('.')[-1]
69 69 else:
70 70 _perm = section_perm = None
71 71 %>
72 72 %if _perm not in ['none']:
73 73 <tr>
74 74 <td>
75 75 %if section == 'repositories':
76 76 <a href="${h.url('summary_home',repo_name=k)}">${k}</a>
77 77 %elif section == 'repositories_groups':
78 78 <a href="${h.url('repos_group_home',group_name=k)}">${k}</a>
79 79 %else:
80 80 ${k}
81 81 %endif
82 82 </td>
83 83 <td>
84 84 %if section == 'global':
85 85 ${h.bool2icon(True)}
86 86 %else:
87 87 <span class="perm_tag ${_perm}">${section_perm}</span>
88 88 %endif
89 89 </td>
90 90 </tr>
91 91 %endif
92 92 %endfor
93 93 </tbody>
94 94 </table>
95 95 </div>
96 96 %endfor
97 97 </div>
98 98 </div>
99 99 <div id="my_container" style="display:none">
100 100 <div class="table yui-skin-sam" id="repos_list_wrap"></div>
101 101 <div id="user-paginator" style="padding: 0px 0px 0px 20px"></div>
102 102 </div>
103 103 <div id="pullrequests_container" class="table" style="display:none">
104 104 ## loaded via AJAX
105 105 ${_('Loading...')}
106 106 </div>
107 107 </div>
108 108
109 109 <script type="text/javascript">
110 110
111 111 var show_perms = function(e){
112 112 YUD.addClass('show_perms', 'current');
113 113 YUD.removeClass('show_my','current');
114 114 YUD.removeClass('show_pullrequests','current');
115 115
116 116 YUD.setStyle('my_container','display','none');
117 117 YUD.setStyle('pullrequests_container','display','none');
118 118 YUD.setStyle('perms_container','display','');
119 119 YUD.setStyle('q_filter','display','none');
120 120 }
121 121 YUE.on('show_perms','click',function(e){
122 122 show_perms();
123 123 })
124 124
125 125 var show_my = function(e){
126 126 YUD.addClass('show_my', 'current');
127 127 YUD.removeClass('show_perms','current');
128 128 YUD.removeClass('show_pullrequests','current');
129 129
130 130 YUD.setStyle('perms_container','display','none');
131 131 YUD.setStyle('pullrequests_container','display','none');
132 132 YUD.setStyle('my_container','display','');
133 133 YUD.setStyle('q_filter','display','');
134 134 if(!YUD.hasClass('show_my', 'loaded')){
135 135 table_renderer(${c.data |n});
136 136 YUD.addClass('show_my', 'loaded');
137 137 }
138 138 }
139 139 YUE.on('show_my','click',function(e){
140 140 show_my(e);
141 141 })
142 142
143 143 var show_pullrequests = function(e){
144 144 YUD.addClass('show_pullrequests', 'current');
145 145 YUD.removeClass('show_my','current');
146 146 YUD.removeClass('show_perms','current');
147 147
148 148 YUD.setStyle('my_container','display','none');
149 149 YUD.setStyle('perms_container','display','none');
150 150 YUD.setStyle('pullrequests_container','display','');
151 151 YUD.setStyle('q_filter','display','none');
152 152
153 153 var url = "${h.url('admin_settings_my_pullrequests')}";
154 154 ypjax(url, 'pullrequests_container');
155 155 }
156 156 YUE.on('show_pullrequests','click',function(e){
157 157 show_pullrequests(e)
158 158 })
159 159
160 160 var tabs = {
161 161 'perms': show_perms,
162 162 'my': show_my,
163 163 'pullrequests': show_pullrequests
164 164 }
165 165 var url = location.href.split('#');
166 166 if (url[1]) {
167 167 //We have a hash
168 168 var tabHash = url[1];
169 169 var func = tabs[tabHash]
170 170 if (func){
171 171 func();
172 172 }
173 173 }
174 174
175 175 function table_renderer(data){
176 var myDataSource = new YAHOO.util.DataSource(data);
177 myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
176 var myDataSource = new YAHOO.util.DataSource(data);
177 myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
178 178
179 myDataSource.responseSchema = {
180 resultsList: "records",
181 fields: [
182 {key:"menu"},
183 {key:"raw_name"},
184 {key:"name"},
185 {key:"last_changeset"},
186 {key:"action"},
187 ]
188 };
189 myDataSource.doBeforeCallback = function(req,raw,res,cb) {
190 // This is the filter function
191 var data = res.results || [],
192 filtered = [],
193 i,l;
179 myDataSource.responseSchema = {
180 resultsList: "records",
181 fields: [
182 {key:"menu"},
183 {key:"raw_name"},
184 {key:"name"},
185 {key:"last_changeset"},
186 {key:"action"},
187 ]
188 };
189 myDataSource.doBeforeCallback = function(req,raw,res,cb) {
190 // This is the filter function
191 var data = res.results || [],
192 filtered = [],
193 i,l;
194 194
195 if (req) {
196 req = req.toLowerCase();
197 for (i = 0; i<data.length; i++) {
198 var pos = data[i].raw_name.toLowerCase().indexOf(req)
199 if (pos != -1) {
200 filtered.push(data[i]);
201 }
202 }
203 res.results = filtered;
204 }
205 return res;
206 }
195 if (req) {
196 req = req.toLowerCase();
197 for (i = 0; i<data.length; i++) {
198 var pos = data[i].raw_name.toLowerCase().indexOf(req)
199 if (pos != -1) {
200 filtered.push(data[i]);
201 }
202 }
203 res.results = filtered;
204 }
205 return res;
206 }
207 207
208 208 // main table sorting
209 209 var myColumnDefs = [
210 210 {key:"menu",label:"",sortable:false,className:"quick_repo_menu hidden"},
211 211 {key:"name",label:"${_('Name')}",sortable:true,
212 212 sortOptions: { sortFunction: nameSort }},
213 213 {key:"last_changeset",label:"${_('Tip')}",sortable:true,
214 214 sortOptions: { sortFunction: revisionSort }},
215 215 {key:"action",label:"${_('Action')}",sortable:false},
216 216 ];
217 217
218 218 var myDataTable = new YAHOO.widget.DataTable("repos_list_wrap", myColumnDefs, myDataSource,{
219 219 sortedBy:{key:"name",dir:"asc"},
220 220 paginator: new YAHOO.widget.Paginator({
221 221 rowsPerPage: 50,
222 222 alwaysVisible: false,
223 223 template : "{PreviousPageLink} {FirstPageLink} {PageLinks} {LastPageLink} {NextPageLink}",
224 224 pageLinks: 5,
225 225 containerClass: 'pagination-wh',
226 226 currentPageClass: 'pager_curpage',
227 227 pageLinkClass: 'pager_link',
228 228 nextPageLinkLabel: '&gt;',
229 229 previousPageLinkLabel: '&lt;',
230 230 firstPageLinkLabel: '&lt;&lt;',
231 231 lastPageLinkLabel: '&gt;&gt;',
232 232 containers:['user-paginator']
233 233 }),
234 234
235 235 MSG_SORTASC:"${_('Click to sort ascending')}",
236 236 MSG_SORTDESC:"${_('Click to sort descending')}",
237 237 MSG_EMPTY:"${_('No records found.')}",
238 238 MSG_ERROR:"${_('Data error.')}",
239 239 MSG_LOADING:"${_('Loading...')}",
240 240 }
241 241 );
242 242 myDataTable.subscribe('postRenderEvent',function(oArgs) {
243 243 tooltip_activate();
244 244 quick_repo_menu();
245 245 });
246 246
247 247 var filterTimeout = null;
248 248
249 249 updateFilter = function() {
250 250 // Reset timeout
251 251 filterTimeout = null;
252 252
253 253 // Reset sort
254 254 var state = myDataTable.getState();
255 255 state.sortedBy = {key:'name', dir:YAHOO.widget.DataTable.CLASS_ASC};
256 256
257 257 // Get filtered data
258 258 myDataSource.sendRequest(YUD.get('q_filter').value,{
259 259 success : myDataTable.onDataReturnInitializeTable,
260 260 failure : myDataTable.onDataReturnInitializeTable,
261 261 scope : myDataTable,
262 262 argument: state
263 263 });
264 264
265 265 };
266 266 YUE.on('q_filter','click',function(){
267 267 if(!YUD.hasClass('q_filter', 'loaded')){
268 268 YUD.get('q_filter').value = '';
269 269 //TODO: load here full list later to do search within groups
270 270 YUD.addClass('q_filter', 'loaded');
271 271 }
272 272 });
273 273
274 274 YUE.on('q_filter','keyup',function (e) {
275 275 clearTimeout(filterTimeout);
276 276 filterTimeout = setTimeout(updateFilter,600);
277 277 });
278 278 }
279 279 </script>
280 280 </%def>
@@ -1,362 +1,362 b''
1 1 ## -*- coding: utf-8 -*-
2 2 <%inherit file="root.html"/>
3 3
4 4 <!-- HEADER -->
5 5 <div id="header">
6 6 <div id="header-inner" class="title hover">
7 7 <div id="logo">
8 8 <h1><a href="${h.url('home')}">${c.rhodecode_name}</a></h1>
9 9 </div>
10 10 <!-- MENU -->
11 11 ${self.page_nav()}
12 12 <!-- END MENU -->
13 13 ${self.body()}
14 14 </div>
15 15 </div>
16 16 <!-- END HEADER -->
17 17
18 18 <!-- CONTENT -->
19 19 <div id="content">
20 20 <div class="flash_msg">
21 21 <% messages = h.flash.pop_messages() %>
22 22 % if messages:
23 23 <ul id="flash-messages">
24 24 % for message in messages:
25 25 <li class="${message.category}_msg">${message}</li>
26 26 % endfor
27 27 </ul>
28 28 % endif
29 29 </div>
30 30 <div id="main">
31 31 ${next.main()}
32 32 </div>
33 33 </div>
34 34 <!-- END CONTENT -->
35 35
36 36 <!-- FOOTER -->
37 37 <div id="footer">
38 38 <div id="footer-inner" class="title">
39 39 <div>
40 40 <p class="footer-link">
41 41 <a href="${h.url('bugtracker')}">${_('Submit a bug')}</a>
42 42 </p>
43 43 <p class="footer-link-right">
44 44 <a href="${h.url('rhodecode_official')}">RhodeCode${'-%s' % c.rhodecode_instanceid if c.rhodecode_instanceid else ''}</a>
45 45 ${c.rhodecode_version} &copy; 2010-${h.datetime.today().year} by Marcin Kuzminski
46 46 </p>
47 47 </div>
48 48 </div>
49 49 </div>
50 50 <!-- END FOOTER -->
51 51
52 52 ### MAKO DEFS ###
53 53 <%def name="page_nav()">
54 54 ${self.menu()}
55 55 </%def>
56 56
57 57 <%def name="breadcrumbs()">
58 58 <div class="breadcrumbs">
59 59 ${self.breadcrumbs_links()}
60 60 </div>
61 61 </%def>
62 62
63 63 <%def name="usermenu()">
64 64 <div class="user-menu">
65 65 <div class="container">
66 66 <div class="gravatar" id="quick_login_link">
67 67 <img alt="gravatar" src="${h.gravatar_url(c.rhodecode_user.email,24)}" />
68 68 </div>
69 69 %if c.rhodecode_user.username != 'default' and c.unread_notifications != 0:
70 70 <div class="notifications">
71 71 <a id="notification_counter" href="${h.url('notifications')}">${c.unread_notifications}</a>
72 72 </div>
73 73 %endif
74 74 </div>
75 75 <div id="quick_login" style="display:none">
76 76 %if c.rhodecode_user.username == 'default':
77 77 <h4>${_('Login to your account')}</h4>
78 78 ${h.form(h.url('login_home',came_from=h.url.current()))}
79 79 <div class="form">
80 80 <div class="fields">
81 81 <div class="field">
82 82 <div class="label">
83 83 <label for="username">${_('Username')}:</label>
84 84 </div>
85 85 <div class="input">
86 86 ${h.text('username',class_='focus',size=40)}
87 87 </div>
88 88
89 89 </div>
90 90 <div class="field">
91 91 <div class="label">
92 92 <label for="password">${_('Password')}:</label>
93 93 </div>
94 94 <div class="input">
95 95 ${h.password('password',class_='focus',size=40)}
96 96 </div>
97 97
98 98 </div>
99 99 <div class="buttons">
100 100 <div class="password_forgoten">${h.link_to(_('Forgot password ?'),h.url('reset_password'))}</div>
101 101 <div class="register">
102 102 %if h.HasPermissionAny('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')():
103 103 ${h.link_to(_("Don't have an account ?"),h.url('register'))}
104 104 %endif
105 105 </div>
106 106 <div class="submit">
107 107 ${h.submit('sign_in',_('Log In'),class_="ui-btn xsmall")}
108 108 </div>
109 109 </div>
110 110 </div>
111 111 </div>
112 112 ${h.end_form()}
113 113 %else:
114 114 <div class="links_left">
115 115 <div class="full_name">${c.rhodecode_user.full_name_or_username}</div>
116 116 <div class="email">${c.rhodecode_user.email}</div>
117 117 <div class="big_gravatar"><img alt="gravatar" src="${h.gravatar_url(c.rhodecode_user.email,48)}" /></div>
118 118 <div class="inbox"><a href="${h.url('notifications')}">${_('Inbox')}: ${c.unread_notifications}</a></div>
119 119 </div>
120 120 <div class="links_right">
121 121 <ol class="links">
122 122 <li>${h.link_to(_(u'Home'),h.url('home'))}</li>
123 123 <li>${h.link_to(_(u'Journal'),h.url('journal'))}</li>
124 124 <li>${h.link_to(_(u'My account'),h.url('admin_settings_my_account'))}</li>
125 125 <li class="logout">${h.link_to(_(u'Log Out'),h.url('logout_home'))}</li>
126 126 </ol>
127 127 </div>
128 128 %endif
129 129 </div>
130 130 </div>
131 131 </%def>
132 132
133 133 <%def name="menu(current=None)">
134 134 <%
135 135 def is_current(selected):
136 136 if selected == current:
137 137 return h.literal('class="current"')
138 138 %>
139 139 %if current not in ['home','admin']:
140 ##REGULAR MENU
140 ##REGULAR MENU
141 141 <ul id="quick">
142 142 <!-- repo switcher -->
143 143 <li>
144 144 <a class="menu_link" id="repo_switcher" title="${_('Switch repository')}" href="#">
145 145 <span class="icon">
146 146 <img src="${h.url('/images/icons/database.png')}" alt="${_('Products')}" />
147 147 </span>
148 148 <span>&darr;</span>
149 149 </a>
150 150 <ul id="repo_switcher_list" class="repo_switcher">
151 151 <li>
152 152 <a href="#">${_('loading...')}</a>
153 153 </li>
154 154 </ul>
155 155 </li>
156 156
157 157 <li ${is_current('summary')}>
158 158 <a class="menu_link" title="${_('Summary')}" href="${h.url('summary_home',repo_name=c.repo_name)}">
159 159 <span class="icon">
160 160 <img src="${h.url('/images/icons/clipboard_16.png')}" alt="${_('Summary')}" />
161 161 </span>
162 162 <span>${_('Summary')}</span>
163 163 </a>
164 164 </li>
165 165 <li ${is_current('changelog')}>
166 166 <a class="menu_link" title="${_('Changelog')}" href="${h.url('changelog_home',repo_name=c.repo_name)}">
167 167 <span class="icon">
168 168 <img src="${h.url('/images/icons/time.png')}" alt="${_('Changelog')}" />
169 169 </span>
170 170 <span>${_('Changelog')}</span>
171 171 </a>
172 172 </li>
173 173
174 174 <li ${is_current('switch_to')}>
175 175 <a class="menu_link" id="branch_tag_switcher" title="${_('Switch to')}" href="#">
176 176 <span class="icon">
177 177 <img src="${h.url('/images/icons/arrow_switch.png')}" alt="${_('Switch to')}" />
178 178 </span>
179 179 <span>${_('Switch to')}</span>
180 180 </a>
181 181 <ul id="switch_to_list" class="switch_to">
182 182 <li><a href="#">${_('loading...')}</a></li>
183 183 </ul>
184 184 </li>
185 185 <li ${is_current('files')}>
186 186 <a class="menu_link" title="${_('Files')}" href="${h.url('files_home',repo_name=c.repo_name)}">
187 187 <span class="icon">
188 188 <img src="${h.url('/images/icons/file.png')}" alt="${_('Files')}" />
189 189 </span>
190 190 <span>${_('Files')}</span>
191 191 </a>
192 192 </li>
193 193
194 194 <li ${is_current('options')}>
195 195 <a class="menu_link" title="${_('Options')}" href="#">
196 196 <span class="icon">
197 197 <img src="${h.url('/images/icons/table_gear.png')}" alt="${_('Admin')}" />
198 198 </span>
199 199 <span>${_('Options')}</span>
200 200 </a>
201 201 <ul>
202 202 %if h.HasRepoPermissionAll('repository.admin')(c.repo_name):
203 203 %if h.HasPermissionAll('hg.admin')('access settings on repository'):
204 204 <li>${h.link_to(_('repository settings'),h.url('edit_repo',repo_name=c.repo_name),class_='settings')}</li>
205 205 %else:
206 206 <li>${h.link_to(_('repository settings'),h.url('repo_settings_home',repo_name=c.repo_name),class_='settings')}</li>
207 207 %endif
208 208 %endif
209 209
210 <li>${h.link_to(_('fork'),h.url('repo_fork_home',repo_name=c.repo_name),class_='fork')}</li>
210 <li>${h.link_to(_('fork'),h.url('repo_fork_home',repo_name=c.repo_name),class_='fork')}</li>
211 211 %if h.is_hg(c.rhodecode_repo):
212 212 <li>${h.link_to(_('open new pull request'),h.url('pullrequest_home',repo_name=c.repo_name),class_='pull_request')}</li>
213 213 %endif
214 214 %if c.rhodecode_db_repo.fork:
215 215 <li>${h.link_to(_('compare fork'),h.url('compare_url',repo_name=c.repo_name,org_ref_type='branch',org_ref=request.GET.get('branch') or 'default',other_ref_type='branch',other_ref='default',repo=c.rhodecode_db_repo.fork.repo_name),class_='compare_request')}</li>
216 216 %endif
217 <li>${h.link_to(_('search'),h.url('search_repo',search_repo=c.repo_name),class_='search')}</li>
217 <li>${h.link_to(_('search'),h.url('search_repo',search_repo=c.repo_name),class_='search')}</li>
218 218
219 219 %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name) and c.rhodecode_db_repo.enable_locking:
220 220 %if c.rhodecode_db_repo.locked[0]:
221 221 <li>${h.link_to(_('unlock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_del')}</li>
222 222 %else:
223 223 <li>${h.link_to(_('lock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_add')}</li>
224 224 %endif
225 225 %endif
226 226
227 227 % if h.HasPermissionAll('hg.admin')('access admin main page'):
228 228 <li>
229 229 ${h.link_to(_('admin'),h.url('admin_home'),class_='admin')}
230 230 <%def name="admin_menu()">
231 231 <ul>
232 232 <li>${h.link_to(_('journal'),h.url('admin_home'),class_='journal')}</li>
233 233 <li>${h.link_to(_('repositories'),h.url('repos'),class_='repos')}</li>
234 234 <li>${h.link_to(_('repositories groups'),h.url('repos_groups'),class_='repos_groups')}</li>
235 235 <li>${h.link_to(_('users'),h.url('users'),class_='users')}</li>
236 236 <li>${h.link_to(_('users groups'),h.url('users_groups'),class_='groups')}</li>
237 237 <li>${h.link_to(_('permissions'),h.url('edit_permission',id='default'),class_='permissions')}</li>
238 238 <li>${h.link_to(_('ldap'),h.url('ldap_home'),class_='ldap')}</li>
239 239 <li>${h.link_to(_('defaults'),h.url('defaults'),class_='defaults')}</li>
240 240 <li class="last">${h.link_to(_('settings'),h.url('admin_settings'),class_='settings')}</li>
241 241 </ul>
242 242 </%def>
243 243 ## ADMIN MENU
244 244 ${admin_menu()}
245 245 </li>
246 246 % endif
247 247 </ul>
248 248 </li>
249 249
250 250 <li>
251 251 <a class="menu_link" title="${_('Followers')}" href="${h.url('repo_followers_home',repo_name=c.repo_name)}">
252 252 <span class="icon_short">
253 253 <img src="${h.url('/images/icons/heart.png')}" alt="${_('Followers')}" />
254 254 </span>
255 255 <span id="current_followers_count" class="short">${c.repository_followers}</span>
256 256 </a>
257 257 </li>
258 258 <li>
259 259 <a class="menu_link" title="${_('Forks')}" href="${h.url('repo_forks_home',repo_name=c.repo_name)}">
260 260 <span class="icon_short">
261 261 <img src="${h.url('/images/icons/arrow_divide.png')}" alt="${_('Forks')}" />
262 262 </span>
263 263 <span class="short">${c.repository_forks}</span>
264 264 </a>
265 265 </li>
266 266 <li>
267 267 <a class="menu_link" title="${_('Pull requests')}" href="${h.url('pullrequest_show_all',repo_name=c.repo_name)}">
268 268 <span class="icon_short">
269 269 <img src="${h.url('/images/icons/arrow_join.png')}" alt="${_('Pull requests')}" />
270 270 </span>
271 271 <span class="short">${c.repository_pull_requests}</span>
272 272 </a>
273 273 </li>
274 274 ${usermenu()}
275 275 </ul>
276 276 <script type="text/javascript">
277 277 YUE.on('repo_switcher','mouseover',function(){
278 278 function qfilter(){
279 279 var nodes = YUQ('ul#repo_switcher_list li a.repo_name');
280 280 var target = 'q_filter_rs';
281 281 var func = function(node){
282 282 return node.parentNode;
283 283 }
284 284 q_filter(target,nodes,func);
285 285 }
286 286 var loaded = YUD.hasClass('repo_switcher','loaded');
287 287 if(!loaded){
288 288 YUD.addClass('repo_switcher','loaded');
289 289 ypjax("${h.url('repo_switcher')}",'repo_switcher_list',
290 290 function(o){qfilter();},
291 291 function(o){YUD.removeClass('repo_switcher','loaded');}
292 292 ,null);
293 293 }
294 294 return false;
295 295 });
296 296
297 297 YUE.on('branch_tag_switcher','mouseover',function(){
298 298 var loaded = YUD.hasClass('branch_tag_switcher','loaded');
299 299 if(!loaded){
300 300 YUD.addClass('branch_tag_switcher','loaded');
301 301 ypjax("${h.url('branch_tag_switcher',repo_name=c.repo_name)}",'switch_to_list',
302 302 function(o){},
303 303 function(o){YUD.removeClass('branch_tag_switcher','loaded');}
304 304 ,null);
305 305 }
306 306 return false;
307 307 });
308 308 </script>
309 309 %else:
310 310 ##ROOT MENU
311 311 <ul id="quick">
312 312 <li>
313 313 <a class="menu_link" title="${_('Home')}" href="${h.url('home')}">
314 314 <span class="icon">
315 315 <img src="${h.url('/images/icons/home_16.png')}" alt="${_('Home')}" />
316 316 </span>
317 317 <span>${_('Home')}</span>
318 318 </a>
319 319 </li>
320 320 %if c.rhodecode_user.username != 'default':
321 321 <li>
322 322 <a class="menu_link" title="${_('Journal')}" href="${h.url('journal')}">
323 323 <span class="icon">
324 324 <img src="${h.url('/images/icons/book.png')}" alt="${_('Journal')}" />
325 325 </span>
326 326 <span>${_('Journal')}</span>
327 327 </a>
328 328 </li>
329 329 %else:
330 330 <li>
331 331 <a class="menu_link" title="${_('Public journal')}" href="${h.url('public_journal')}">
332 332 <span class="icon">
333 333 <img src="${h.url('/images/icons/book.png')}" alt="${_('Public journal')}" />
334 334 </span>
335 335 <span>${_('Public journal')}</span>
336 336 </a>
337 337 </li>
338 338 %endif
339 339 <li>
340 340 <a class="menu_link" title="${_('Search')}" href="${h.url('search')}">
341 341 <span class="icon">
342 342 <img src="${h.url('/images/icons/search_16.png')}" alt="${_('Search')}" />
343 343 </span>
344 344 <span>${_('Search')}</span>
345 345 </a>
346 346 </li>
347 347
348 348 %if h.HasPermissionAll('hg.admin')('access admin main page'):
349 349 <li ${is_current('admin')}>
350 350 <a class="menu_link" title="${_('Admin')}" href="${h.url('admin_home')}">
351 351 <span class="icon">
352 352 <img src="${h.url('/images/icons/cog_edit.png')}" alt="${_('Admin')}" />
353 353 </span>
354 354 <span>${_('Admin')}</span>
355 355 </a>
356 356 ${admin_menu()}
357 357 </li>
358 358 %endif
359 359 ${usermenu()}
360 360 </ul>
361 361 %endif
362 362 </%def>
@@ -1,123 +1,123 b''
1 1 ## -*- coding: utf-8 -*-
2 2 <!DOCTYPE html>
3 3 <html xmlns="http://www.w3.org/1999/xhtml">
4 4 <head>
5 5 <title>${self.title()}</title>
6 6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
7 7 <meta name="robots" content="index, nofollow"/>
8 8 <link rel="icon" href="${h.url('/images/icons/database_gear.png')}" type="image/png" />
9 9
10 10 ## CSS ###
11 11 <%def name="css()">
12 12 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css', ver=c.rhodecode_version)}" media="screen"/>
13 13 <link rel="stylesheet" type="text/css" href="${h.url('/css/pygments.css', ver=c.rhodecode_version)}"/>
14 14 ## EXTRA FOR CSS
15 15 ${self.css_extra()}
16 16 </%def>
17 17 <%def name="css_extra()">
18 18 </%def>
19 19
20 20 ${self.css()}
21 21
22 22 %if c.ga_code:
23 23 <!-- Analytics -->
24 <script type="text/javascript">
25 var _gaq = _gaq || [];
26 _gaq.push(['_setAccount', '${c.ga_code}']);
27 _gaq.push(['_trackPageview']);
24 <script type="text/javascript">
25 var _gaq = _gaq || [];
26 _gaq.push(['_setAccount', '${c.ga_code}']);
27 _gaq.push(['_trackPageview']);
28 28
29 (function() {
30 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
31 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
32 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
33 })();
34 </script>
29 (function() {
30 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
31 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
32 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
33 })();
34 </script>
35 35 %endif
36 36
37 37 ## JAVASCRIPT ##
38 38 <%def name="js()">
39 39 <script type="text/javascript">
40 40 //JS translations map
41 41 var TRANSLATION_MAP = {
42 42 'add another comment':'${_("add another comment")}',
43 43 'Stop following this repository':"${_('Stop following this repository')}",
44 44 'Start following this repository':"${_('Start following this repository')}",
45 45 'Group':"${_('Group')}",
46 46 'members':"${_('members')}",
47 47 'loading...':"${_('loading...')}",
48 48 'search truncated': "${_('search truncated')}",
49 49 'no matching files': "${_('no matching files')}",
50 50 'Open new pull request': "${_('Open new pull request')}",
51 51 'Open new pull request for selected changesets': "${_('Open new pull request for selected changesets')}",
52 52 'Show selected changes __S -> __E': "${_('Show selected changes __S -> __E')}",
53 53 'Selection link': "${_('Selection link')}",
54 54 };
55 55 var _TM = TRANSLATION_MAP;
56 56 var TOGGLE_FOLLOW_URL = "${h.url('toggle_following')}";
57 57 var LAZY_CS_URL = "${h.url('changeset_info', repo_name='__NAME__', revision='__REV__')}"
58 58 </script>
59 59 <script type="text/javascript" src="${h.url('/js/yui.2.9.js', ver=c.rhodecode_version)}"></script>
60 60 <!--[if lt IE 9]>
61 61 <script language="javascript" type="text/javascript" src="${h.url('/js/excanvas.min.js')}"></script>
62 62 <![endif]-->
63 63 <script type="text/javascript" src="${h.url('/js/yui.flot.js', ver=c.rhodecode_version)}"></script>
64 64 <script type="text/javascript" src="${h.url('/js/native.history.js', ver=c.rhodecode_version)}"></script>
65 65 <script type="text/javascript" src="${h.url('/js/rhodecode.js', ver=c.rhodecode_version)}"></script>
66 66 ## EXTRA FOR JS
67 67 ${self.js_extra()}
68 68 <script type="text/javascript">
69 69 (function(window,undefined){
70 70 // Prepare
71 71 var History = window.History; // Note: We are using a capital H instead of a lower h
72 72 if ( !History.enabled ) {
73 73 // History.js is disabled for this browser.
74 74 // This is because we can optionally choose to support HTML4 browsers or not.
75 75 return false;
76 76 }
77 77 })(window);
78 78
79 79 YUE.onDOMReady(function(){
80 80 tooltip_activate();
81 81 show_more_event();
82 82 show_changeset_tooltip();
83 83
84 84 YUE.on('quick_login_link','click',function(e){
85 85 // make sure we don't redirect
86 86 YUE.preventDefault(e);
87 87
88 88 if(YUD.hasClass('quick_login_link','enabled')){
89 89 YUD.setStyle('quick_login','display','none');
90 90 YUD.removeClass('quick_login_link','enabled');
91 91 }
92 92 else{
93 93 YUD.setStyle('quick_login','display','');
94 94 YUD.addClass('quick_login_link','enabled');
95 95 var usr = YUD.get('username');
96 96 if(usr){
97 97 usr.focus();
98 98 }
99 99 }
100 100 });
101 101 })
102 102 </script>
103 103 </%def>
104 104 <%def name="js_extra()"></%def>
105 105 ${self.js()}
106 106 <%def name="head_extra()"></%def>
107 107 ${self.head_extra()}
108 108 </head>
109 109 <body id="body">
110 110 ## IE hacks
111 111 <!--[if IE 7]>
112 112 <script>YUD.addClass(document.body,'ie7')</script>
113 113 <![endif]-->
114 114 <!--[if IE 8]>
115 115 <script>YUD.addClass(document.body,'ie8')</script>
116 116 <![endif]-->
117 117 <!--[if IE 9]>
118 118 <script>YUD.addClass(document.body,'ie9')</script>
119 119 <![endif]-->
120 120
121 121 ${next.body()}
122 122 </body>
123 123 </html>
@@ -1,33 +1,33 b''
1 1 %if c.repo_bookmarks:
2 2 <div id="table_wrap" class="yui-skin-sam">
3 3 <table id="bookmarks_data">
4 <thead>
4 <thead>
5 5 <tr>
6 6 <th class="left">${_('Name')}</th>
7 7 <th class="left">${_('Date')}</th>
8 8 <th class="left">${_('Author')}</th>
9 9 <th class="left">${_('Revision')}</th>
10 10 </tr>
11 </thead>
12 %for cnt,book in enumerate(c.repo_bookmarks.items()):
11 </thead>
12 %for cnt,book in enumerate(c.repo_bookmarks.items()):
13 13 <tr class="parity${cnt%2}">
14 14 <td>
15 15 <span class="logbooks">
16 16 <span class="bookbook">${h.link_to(book[0],
17 17 h.url('files_home',repo_name=c.repo_name,revision=book[1].raw_id))}</span>
18 18 </span>
19 19 </td>
20 20 <td><span class="tooltip" title="${h.tooltip(h.age(book[1].date))}">${h.fmt_date(book[1].date)}</span></td>
21 21 <td title="${book[1].author}">${h.person(book[1].author)}</td>
22 22 <td>
23 23 <div>
24 24 <pre><a href="${h.url('files_home',repo_name=c.repo_name,revision=book[1].raw_id)}">r${book[1].revision}:${h.short_id(book[1].raw_id)}</a></pre>
25 25 </div>
26 26 </td>
27 27 </tr>
28 %endfor
28 %endfor
29 29 </table>
30 30 </div>
31 31 %else:
32 32 ${_('There are no bookmarks yet')}
33 33 %endif
@@ -1,92 +1,92 b''
1 1 <%inherit file="/base/base.html"/>
2 2
3 3 <%def name="title()">
4 4 ${_('%s Edit file') % c.repo_name} - ${c.rhodecode_name}
5 5 </%def>
6 6
7 7 <%def name="js_extra()">
8 8 <script type="text/javascript" src="${h.url('/js/codemirror.js')}"></script>
9 9 </%def>
10 10 <%def name="css_extra()">
11 11 <link rel="stylesheet" type="text/css" href="${h.url('/css/codemirror.css')}"/>
12 12 </%def>
13 13
14 14 <%def name="breadcrumbs_links()">
15 15 ${h.link_to(_(u'Home'),h.url('/'))}
16 16 &raquo;
17 17 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
18 18 &raquo;
19 19 ${_('add file')} @ R${c.cs.revision}:${h.short_id(c.cs.raw_id)}
20 20 </%def>
21 21
22 22 <%def name="page_nav()">
23 ${self.menu('files')}
23 ${self.menu('files')}
24 24 </%def>
25 25 <%def name="main()">
26 26 <div class="box">
27 27 <!-- box / title -->
28 28 <div class="title">
29 29 ${self.breadcrumbs()}
30 30 <ul class="links">
31 31 <li>
32 32 <span style="text-transform: uppercase;">
33 33 <a href="#">${_('branch')}: ${c.cs.branch}</a></span>
34 34 </li>
35 35 </ul>
36 36 </div>
37 37 <div class="table">
38 38 <div id="files_data">
39 39 ${h.form(h.url.current(),method='post',id='eform',enctype="multipart/form-data")}
40 40 <h3>${_('Add new file')}</h3>
41 41 <div class="form">
42 42 <div class="fields">
43 43 <div id="filename_container" class="field file">
44 44 <div class="label">
45 45 <label for="filename">${_('File Name')}:</label>
46 46 </div>
47 47 <div class="input">
48 48 <input type="text" value="" size="30" name="filename" id="filename">
49 49 ${_('or')} <span class="ui-btn" id="upload_file_enable">${_('Upload file')}</span>
50 50 </div>
51 51 </div>
52 52 <div id="upload_file_container" class="field" style="display:none">
53 53 <div class="label">
54 54 <label for="location">${_('Upload file')}</label>
55 55 </div>
56 56 <div class="file">
57 57 <input type="file" size="30" name="upload_file" id="upload_file">
58 58 ${_('or')} <span class="ui-btn" id="file_enable">${_('Create new file')}</span>
59 59 </div>
60 60 </div>
61 61 <div class="field">
62 62 <div class="label">
63 63 <label for="location">${_('Location')}</label>
64 64 </div>
65 65 <div class="input">
66 66 <input type="text" value="${c.f_path}" size="30" name="location" id="location">
67 67 ${_('use / to separate directories')}
68 68 </div>
69 69 </div>
70 70 </div>
71 71 </div>
72 72 <div id="body" class="codeblock">
73 73 <div id="editor_container">
74 74 <pre id="editor_pre"></pre>
75 75 <textarea id="editor" name="content" style="display:none"></textarea>
76 76 </div>
77 77 <div style="padding: 10px;color:#666666">${_('commit message')}</div>
78 78 <textarea id="commit" name="message" style="height: 100px;width: 99%;margin-left:4px"></textarea>
79 79 </div>
80 80 <div style="text-align: l;padding-top: 5px">
81 81 ${h.submit('commit',_('Commit changes'),class_="ui-btn")}
82 82 ${h.reset('reset',_('Reset'),class_="ui-btn")}
83 83 </div>
84 84 ${h.end_form()}
85 85 <script type="text/javascript">
86 86 var reset_url = "${h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path)}";
87 87 initCodeMirror('editor',reset_url);
88 88 </script>
89 89 </div>
90 90 </div>
91 91 </div>
92 92 </%def>
@@ -1,116 +1,116 b''
1 1 <%def name="file_class(node)">
2 2 %if node.is_file():
3 3 <%return "browser-file" %>
4 4 %else:
5 5 <%return "browser-dir"%>
6 6 %endif
7 7 </%def>
8 8 <div id="body" class="browserblock">
9 9 <div class="browser-header">
10 10 <div class="browser-nav">
11 11 ${h.form(h.url.current())}
12 12 <div class="info_box">
13 13 <span class="rev">${_('view')}@rev</span>
14 14 <a class="ui-btn ypjax-link" href="${c.url_prev}" title="${_('previous revision')}">&laquo;</a>
15 15 ${h.text('at_rev',value=c.changeset.revision,size=5)}
16 16 <a class="ui-btn ypjax-link" href="${c.url_next}" title="${_('next revision')}">&raquo;</a>
17 17 ## ${h.submit('view',_('view'),class_="ui-btn")}
18 18 </div>
19 19 ${h.end_form()}
20 20 </div>
21 21 <div class="browser-branch">
22 22 ${h.checkbox('stay_at_branch',c.changeset.branch,c.changeset.branch==c.branch)}
23 23 <label>${_('follow current branch')}</label>
24 24 </div>
25 25 <div class="browser-search">
26 26 <div id="search_activate_id" class="search_activate">
27 27 <a class="ui-btn" id="filter_activate" href="#">${_('search file list')}</a>
28 28 </div>
29 29 % if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
30 30 <div id="add_node_id" class="add_node">
31 31 <a class="ui-btn" href="${h.url('files_add_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.f_path)}">${_('add new file')}</a>
32 32 </div>
33 33 % endif
34 34 <div>
35 35 <div id="node_filter_box_loading" style="display:none">${_('Loading file list...')}</div>
36 36 <div id="node_filter_box" style="display:none">
37 37 ${h.files_breadcrumbs(c.repo_name,c.changeset.raw_id,c.file.path)}/<input class="init" type="text" value="type to search..." name="filter" size="25" id="node_filter" autocomplete="off">
38 38 </div>
39 39 </div>
40 40 </div>
41 41 </div>
42 42
43 43 <div class="browser-body">
44 44 <table class="code-browser">
45 <thead>
46 <tr>
47 <th>${_('Name')}</th>
48 <th>${_('Size')}</th>
49 <th>${_('Mimetype')}</th>
50 <th>${_('Last Revision')}</th>
51 <th>${_('Last modified')}</th>
52 <th>${_('Last commiter')}</th>
53 </tr>
54 </thead>
45 <thead>
46 <tr>
47 <th>${_('Name')}</th>
48 <th>${_('Size')}</th>
49 <th>${_('Mimetype')}</th>
50 <th>${_('Last Revision')}</th>
51 <th>${_('Last modified')}</th>
52 <th>${_('Last commiter')}</th>
53 </tr>
54 </thead>
55 55
56 <tbody id="tbody">
57 %if c.file.parent:
58 <tr class="parity0">
59 <td>
60 ${h.link_to('..',h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.file.parent.path),class_="browser-dir ypjax-link")}
61 </td>
62 <td></td>
63 <td></td>
64 <td></td>
65 <td></td>
66 <td></td>
56 <tbody id="tbody">
57 %if c.file.parent:
58 <tr class="parity0">
59 <td>
60 ${h.link_to('..',h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.file.parent.path),class_="browser-dir ypjax-link")}
61 </td>
62 <td></td>
63 <td></td>
64 <td></td>
65 <td></td>
66 <td></td>
67 67 </tr>
68 %endif
68 %endif
69 69
70 70 %for cnt,node in enumerate(c.file):
71 71 <tr class="parity${cnt%2}">
72 72 <td>
73 73 %if node.is_submodule():
74 74 ${h.link_to(node.name,node.url or '#',class_="submodule-dir ypjax-link")}
75 75 %else:
76 76 ${h.link_to(node.name, h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=h.safe_unicode(node.path)),class_=file_class(node)+" ypjax-link")}
77 77 %endif:
78 78 </td>
79 79 <td>
80 80 %if node.is_file():
81 81 ${h.format_byte_size(node.size,binary=True)}
82 82 %endif
83 83 </td>
84 84 <td>
85 85 %if node.is_file():
86 86 ${node.mimetype}
87 87 %endif
88 88 </td>
89 89 <td>
90 90 %if node.is_file():
91 91 <div class="tooltip" title="${h.tooltip(node.last_changeset.message)}">
92 92 <pre>${'r%s:%s' % (node.last_changeset.revision,node.last_changeset.short_id)}</pre>
93 93 </div>
94 94 %endif
95 95 </td>
96 96 <td>
97 97 %if node.is_file():
98 98 <span class="tooltip" title="${h.tooltip(h.fmt_date(node.last_changeset.date))}">
99 99 ${h.age(node.last_changeset.date)}</span>
100 100 %endif
101 101 </td>
102 102 <td>
103 103 %if node.is_file():
104 104 <span title="${node.last_changeset.author}">
105 105 ${h.person(node.last_changeset.author)}
106 106 </span>
107 107 %endif
108 108 </td>
109 109 </tr>
110 110 %endfor
111 </tbody>
112 <tbody id="tbody_filtered" style="display:none">
113 </tbody>
111 </tbody>
112 <tbody id="tbody_filtered" style="display:none">
113 </tbody>
114 114 </table>
115 115 </div>
116 116 </div>
@@ -1,78 +1,78 b''
1 1 <%inherit file="/base/base.html"/>
2 2
3 3 <%def name="title()">
4 4 ${_('%s Edit file') % c.repo_name} - ${c.rhodecode_name}
5 5 </%def>
6 6
7 7 <%def name="js_extra()">
8 8 <script type="text/javascript" src="${h.url('/js/codemirror.js')}"></script>
9 9 </%def>
10 10 <%def name="css_extra()">
11 11 <link rel="stylesheet" type="text/css" href="${h.url('/css/codemirror.css')}"/>
12 12 </%def>
13 13
14 14 <%def name="breadcrumbs_links()">
15 15 ${h.link_to(_(u'Home'),h.url('/'))}
16 16 &raquo;
17 17 ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
18 18 &raquo;
19 19 ${_('edit file')} @ R${c.cs.revision}:${h.short_id(c.cs.raw_id)}
20 20 </%def>
21 21
22 22 <%def name="page_nav()">
23 ${self.menu('files')}
23 ${self.menu('files')}
24 24 </%def>
25 25 <%def name="main()">
26 26 <div class="box">
27 27 <!-- box / title -->
28 28 <div class="title">
29 29 ${self.breadcrumbs()}
30 30 <ul class="links">
31 31 <li>
32 32 <span style="text-transform: uppercase;">
33 33 <a href="#">${_('branch')}: ${c.cs.branch}</a></span>
34 34 </li>
35 35 </ul>
36 36 </div>
37 37 <div class="table">
38 38 <div id="files_data">
39 39 <h3 class="files_location">${_('Location')}: ${h.files_breadcrumbs(c.repo_name,c.cs.revision,c.file.path)}</h3>
40 40 ${h.form(h.url.current(),method='post',id='eform')}
41 41 <div id="body" class="codeblock">
42 42 <div class="code-header">
43 43 <div class="stats">
44 44 <div class="left"><img src="${h.url('/images/icons/file.png')}"/></div>
45 45 <div class="left item">${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))}</div>
46 46 <div class="left item">${h.format_byte_size(c.file.size,binary=True)}</div>
47 47 <div class="left item last">${c.file.mimetype}</div>
48 48 <div class="buttons">
49 49 ${h.link_to(_('show annotation'),h.url('files_annotate_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-btn")}
50 50 ${h.link_to(_('show as raw'),h.url('files_raw_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-btn")}
51 51 ${h.link_to(_('download as raw'),h.url('files_rawfile_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-btn")}
52 52 % if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
53 53 % if not c.file.is_binary:
54 54 ${h.link_to(_('source'),h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.f_path),class_="ui-btn")}
55 55 % endif
56 56 % endif
57 57 </div>
58 58 </div>
59 59 <div class="commit">${_('Editing file')}: ${c.file.unicode_path}</div>
60 60 </div>
61 61 <pre id="editor_pre"></pre>
62 62 <textarea id="editor" name="content" style="display:none">${h.escape(c.file.content)|n}</textarea>
63 63 <div style="padding: 10px;color:#666666">${_('commit message')}</div>
64 64 <textarea id="commit" name="message" style="height: 60px;width: 99%;margin-left:4px"></textarea>
65 65 </div>
66 66 <div style="text-align: left;padding-top: 5px">
67 67 ${h.submit('commit',_('Commit changes'),class_="ui-btn")}
68 68 ${h.reset('reset',_('Reset'),class_="ui-btn")}
69 69 </div>
70 70 ${h.end_form()}
71 71 <script type="text/javascript">
72 72 var reset_url = "${h.url('files_home',repo_name=c.repo_name,revision=c.cs.raw_id,f_path=c.file.path)}";
73 73 initCodeMirror('editor',reset_url);
74 74 </script>
75 75 </div>
76 76 </div>
77 77 </div>
78 78 </%def>
@@ -1,100 +1,100 b''
1 1 ## -*- coding: utf-8 -*-
2 2 <%inherit file="/base/base.html"/>
3 3
4 4 <%def name="title()">
5 5 ${_('%s Fork') % c.repo_name} - ${c.rhodecode_name}
6 6 </%def>
7 7
8 8 <%def name="breadcrumbs_links()">
9 9 ${h.link_to(_(u'Home'),h.url('/'))}
10 10 &raquo;
11 11 ${h.link_to(c.repo_info.repo_name,h.url('summary_home',repo_name=c.repo_info.repo_name))}
12 12 &raquo;
13 13 ${_('fork')}
14 14 </%def>
15 15
16 16 <%def name="page_nav()">
17 17 ${self.menu('')}
18 18 </%def>
19 19 <%def name="main()">
20 20 <div class="box">
21 21 <!-- box / title -->
22 22 <div class="title">
23 23 ${self.breadcrumbs()}
24 24 </div>
25 25 ${h.form(url('repo_fork_create_home',repo_name=c.repo_info.repo_name))}
26 26 <div class="form">
27 27 <!-- fields -->
28 28 <div class="fields">
29 29 <div class="field">
30 30 <div class="label">
31 31 <label for="repo_name">${_('Fork name')}:</label>
32 32 </div>
33 33 <div class="input">
34 34 ${h.text('repo_name',class_="small")}
35 35 ${h.hidden('repo_type',c.repo_info.repo_type)}
36 36 ${h.hidden('fork_parent_id',c.repo_info.repo_id)}
37 37 </div>
38 38 </div>
39 39 <div class="field">
40 40 <div class="label">
41 41 <label for="landing_rev">${_('Landing revision')}:</label>
42 42 </div>
43 43 <div class="input">
44 44 ${h.select('landing_rev','',c.landing_revs,class_="medium")}
45 45 <span class="help-block">${_('Default revision for files page, downloads, whoosh and readme')}</span>
46 46 </div>
47 47 </div>
48 48 <div class="field">
49 49 <div class="label">
50 50 <label for="repo_group">${_('Repository group')}:</label>
51 51 </div>
52 52 <div class="input">
53 53 ${h.select('repo_group','',c.repo_groups,class_="medium")}
54 54 <span class="help-block">${_('Optionaly select a group to put this repository into.')}</span>
55 55 </div>
56 56 </div>
57 57 <div class="field">
58 58 <div class="label label-textarea">
59 59 <label for="description">${_('Description')}:</label>
60 60 </div>
61 61 <div class="textarea text-area editor">
62 62 ${h.textarea('description',cols=23,rows=5)}
63 63 <span class="help-block">${_('Keep it short and to the point. Use a README file for longer descriptions.')}</span>
64 64 </div>
65 65 </div>
66 66 <div class="field">
67 67 <div class="label label-checkbox">
68 68 <label for="private">${_('Private')}:</label>
69 69 </div>
70 70 <div class="checkboxes">
71 71 ${h.checkbox('private',value="True")}
72 72 <span class="help-block">${_('Private repositories are only visible to people explicitly added as collaborators.')}</span>
73 73 </div>
74 74 </div>
75 75 <div class="field">
76 76 <div class="label label-checkbox">
77 77 <label for="private">${_('Copy permissions')}:</label>
78 78 </div>
79 79 <div class="checkboxes">
80 80 ${h.checkbox('copy_permissions',value="True", checked="checked")}
81 81 <span class="help-block">${_('Copy permissions from forked repository')}</span>
82 82 </div>
83 83 </div>
84 84 <div class="field">
85 85 <div class="label label-checkbox">
86 86 <label for="private">${_('Update after clone')}:</label>
87 87 </div>
88 88 <div class="checkboxes">
89 89 ${h.checkbox('update_after_clone',value="True")}
90 90 <span class="help-block">${_('Checkout source after making a clone')}</span>
91 91 </div>
92 </div>
92 </div>
93 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 95 </div>
96 96 </div>
97 97 </div>
98 98 ${h.end_form()}
99 99 </div>
100 100 </%def>
@@ -1,43 +1,43 b''
1 1 ## -*- coding: utf-8 -*-
2 2
3 3 % if c.forks_pager:
4 4 % for f in c.forks_pager:
5 5 <div>
6 6 <div class="fork_user">
7 7 <div class="gravatar">
8 8 <img alt="gravatar" src="${h.gravatar_url(f.user.email,24)}"/>
9 9 </div>
10 10 <span style="font-size: 20px">
11 11 <b>${f.user.username}</b> (${f.user.name} ${f.user.lastname}) /
12 12 ${h.link_to(f.repo_name,h.url('summary_home',repo_name=f.repo_name))}
13 </span>
14 <div style="padding:5px 3px 3px 42px;">${f.description}</div>
13 </span>
14 <div style="padding:5px 3px 3px 42px;">${f.description}</div>
15 15 </div>
16 16 <div style="clear:both;padding-top: 10px"></div>
17 17 <div class="follower_date">${_('forked')} -
18 <span class="tooltip" title="${h.tooltip(h.fmt_date(f.created_on))}"> ${h.age(f.created_on)}</span>
19 <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)}"
21 class="ui-btn small">${_('Compare fork')}</a>
22 </div>
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)}"
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>
22 </div>
23 23 <div style="border-bottom: 1px solid #DDD;margin:10px 0px 10px 0px"></div>
24 24 </div>
25 25 % endfor
26 26 <div class="pagination-wh pagination-left">
27 27 <script type="text/javascript">
28 28 YUE.onDOMReady(function(){
29 29 YUE.delegate("forks","click",function(e, matchedEl, container){
30 30 ypjax(e.target.href,"forks",function(){
31 31 show_more_event();
32 32 tooltip_activate();
33 33 show_changeset_tooltip();
34 34 });
35 35 YUE.preventDefault(e);
36 36 },'.pager_link');
37 37 });
38 38 </script>
39 39 ${c.forks_pager.pager('$link_previous ~2~ $link_next')}
40 40 </div>
41 41 % else:
42 42 ${_('There are no forks yet')}
43 43 % endif
@@ -1,91 +1,91 b''
1 1 ## -*- coding: utf-8 -*-
2 2 <%inherit file="base/root.html"/>
3 3
4 4 <%def name="title()">
5 5 ${_('Sign Up')} - ${c.rhodecode_name}
6 6 </%def>
7 7
8 8 <div id="register">
9 9
10 10 <div class="title top-left-rounded-corner top-right-rounded-corner">
11 11 <h5>${_('Sign Up to')} ${c.rhodecode_name}</h5>
12 12 </div>
13 13 <div class="inner">
14 14 ${h.form(url('register'))}
15 15 <div class="form">
16 16 <!-- fields -->
17 17 <div class="fields">
18 <div class="field">
18 <div class="field">
19 19 <div class="label">
20 20 <label for="username">${_('Username')}:</label>
21 21 </div>
22 22 <div class="input">
23 23 ${h.text('username',class_="medium")}
24 24 </div>
25 </div>
25 </div>
26 26
27 <div class="field">
27 <div class="field">
28 28 <div class="label">
29 29 <label for="password">${_('Password')}:</label>
30 30 </div>
31 31 <div class="input">
32 32 ${h.password('password',class_="medium")}
33 33 </div>
34 </div>
34 </div>
35 35
36 <div class="field">
37 <div class="label">
38 <label for="password">${_('Re-enter password')}:</label>
39 </div>
40 <div class="input">
41 ${h.password('password_confirmation',class_="medium")}
42 </div>
43 </div>
36 <div class="field">
37 <div class="label">
38 <label for="password">${_('Re-enter password')}:</label>
39 </div>
40 <div class="input">
41 ${h.password('password_confirmation',class_="medium")}
42 </div>
43 </div>
44 44
45 <div class="field">
45 <div class="field">
46 46 <div class="label">
47 47 <label for="firstname">${_('First Name')}:</label>
48 48 </div>
49 49 <div class="input">
50 50 ${h.text('firstname',class_="medium")}
51 51 </div>
52 </div>
52 </div>
53 53
54 <div class="field">
54 <div class="field">
55 55 <div class="label">
56 56 <label for="lastname">${_('Last Name')}:</label>
57 57 </div>
58 58 <div class="input">
59 59 ${h.text('lastname',class_="medium")}
60 60 </div>
61 </div>
61 </div>
62 62
63 <div class="field">
63 <div class="field">
64 64 <div class="label">
65 65 <label for="email">${_('Email')}:</label>
66 66 </div>
67 67 <div class="input">
68 68 ${h.text('email',class_="medium")}
69 69 </div>
70 </div>
70 </div>
71 71
72 72 <div class="buttons">
73 73 <div class="nohighlight">
74 74 ${h.submit('sign_up',_('Sign Up'),class_="ui-btn large")}
75 75 %if c.auto_active:
76 76 <div class="activation_msg">${_('Your account will be activated right after registration')}</div>
77 77 %else:
78 78 <div class="activation_msg">${_('Your account must wait for activation by administrator')}</div>
79 79 %endif
80 80 </div>
81 81 </div>
82 82 </div>
83 83 </div>
84 84 ${h.end_form()}
85 85 <script type="text/javascript">
86 86 YUE.onDOMReady(function(){
87 87 YUD.get('username').focus();
88 88 })
89 89 </script>
90 90 </div>
91 91 </div>
General Comments 0
You need to be logged in to leave comments. Login now