##// END OF EJS Templates
don't show empty permissions on my account page
marcink -
r2131:d683d8bc beta
parent child Browse files
Show More
@@ -1,304 +1,313 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 <div>
25 25 ${h.form(url('admin_settings_my_account_update'),method='put')}
26 26 <div class="form">
27 27
28 28 <div class="field">
29 29 <div class="gravatar_box">
30 30 <div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(c.user.email)}"/></div>
31 31 <p>
32 32 %if c.use_gravatar:
33 33 <strong>${_('Change your avatar at')} <a href="http://gravatar.com">gravatar.com</a></strong>
34 34 <br/>${_('Using')} ${c.user.email}
35 35 %else:
36 36 <br/>${c.user.email}
37 37 %endif
38 38 </p>
39 39 </div>
40 40 </div>
41 41 <div class="field">
42 42 <div class="label">
43 43 <label>${_('API key')}</label> ${c.user.api_key}
44 44 </div>
45 45 </div>
46 46 <div class="fields">
47 47 <div class="field">
48 48 <div class="label">
49 49 <label for="username">${_('Username')}:</label>
50 50 </div>
51 51 <div class="input">
52 52 ${h.text('username',class_="medium")}
53 53 </div>
54 54 </div>
55 55
56 56 <div class="field">
57 57 <div class="label">
58 58 <label for="new_password">${_('New password')}:</label>
59 59 </div>
60 60 <div class="input">
61 61 ${h.password('new_password',class_="medium",autocomplete="off")}
62 62 </div>
63 63 </div>
64 64
65 65 <div class="field">
66 66 <div class="label">
67 67 <label for="password_confirmation">${_('New password confirmation')}:</label>
68 68 </div>
69 69 <div class="input">
70 70 ${h.password('password_confirmation',class_="medium",autocomplete="off")}
71 71 </div>
72 72 </div>
73 73
74 74 <div class="field">
75 75 <div class="label">
76 76 <label for="name">${_('First Name')}:</label>
77 77 </div>
78 78 <div class="input">
79 79 ${h.text('name',class_="medium")}
80 80 </div>
81 81 </div>
82 82
83 83 <div class="field">
84 84 <div class="label">
85 85 <label for="lastname">${_('Last Name')}:</label>
86 86 </div>
87 87 <div class="input">
88 88 ${h.text('lastname',class_="medium")}
89 89 </div>
90 90 </div>
91 91
92 92 <div class="field">
93 93 <div class="label">
94 94 <label for="email">${_('Email')}:</label>
95 95 </div>
96 96 <div class="input">
97 97 ${h.text('email',class_="medium")}
98 98 </div>
99 99 </div>
100 100
101 101 <div class="buttons">
102 102 ${h.submit('save',_('Save'),class_="ui-button")}
103 103 ${h.reset('reset',_('Reset'),class_="ui-button")}
104 104 </div>
105 105 </div>
106 106 </div>
107 107 ${h.end_form()}
108 108 </div>
109 109 </div>
110 110
111 111 <div class="box box-right">
112 112 <!-- box / title -->
113 113 <div class="title">
114 114 <h5>
115 115 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
116 116 <a id="show_my" class="link-white" href="#my">${_('My repos')}</a> / <a id="show_perms" class="link-white" href="#perms">${_('My permissions')}</a>
117 117 </h5>
118 118 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
119 119 <ul class="links">
120 120 <li>
121 121 <span>${h.link_to(_('ADD'),h.url('admin_settings_create_repository'))}</span>
122 122 </li>
123 123 </ul>
124 124 %endif
125 125 </div>
126 126 <!-- end box / title -->
127 127 <div id="my" class="table">
128 128 <div id='repos_list_wrap' class="yui-skin-sam">
129 129 <table id="repos_list">
130 130 <thead>
131 131 <tr>
132 132 <th></th>
133 133 <th class="left">${_('Name')}</th>
134 134 <th class="left">${_('Revision')}</th>
135 135 <th class="left">${_('Action')}</th>
136 136 <th class="left">${_('Action')}</th>
137 137 </thead>
138 138 <tbody>
139 139 <%namespace name="dt" file="/_data_table/_dt_elements.html"/>
140 140 %if c.user_repos:
141 141 %for repo in c.user_repos:
142 142 <tr>
143 143 ##QUICK MENU
144 144 <td class="quick_repo_menu">
145 145 ${dt.quick_menu(repo['name'])}
146 146 </td>
147 147 ##REPO NAME AND ICONS
148 148 <td class="reponame">
149 149 ${dt.repo_name(repo['name'],repo['dbrepo']['repo_type'],repo['dbrepo']['private'],repo['dbrepo_fork'].get('repo_name'))}
150 150 </td>
151 151 ##LAST REVISION
152 152 <td>
153 153 ${dt.revision(repo['name'],repo['rev'],repo['tip'],repo['author'],repo['last_msg'])}
154 154 </td>
155 155 <td><a href="${h.url('repo_settings_home',repo_name=repo['name'])}" title="${_('edit')}"><img class="icon" alt="${_('private')}" src="${h.url('/images/icons/application_form_edit.png')}"/></a></td>
156 156 <td>
157 157 ${h.form(url('repo_settings_delete', repo_name=repo['name']),method='delete')}
158 158 ${h.submit('remove_%s' % repo['name'],'',class_="delete_icon action_button",onclick="return confirm('"+_('Confirm to delete this repository: %s') % repo['name']+"');")}
159 159 ${h.end_form()}
160 160 </td>
161 161 </tr>
162 162 %endfor
163 163 %else:
164 164 <div style="padding:5px 0px 10px 0px;">
165 165 ${_('No repositories yet')}
166 166 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
167 167 ${h.link_to(_('create one now'),h.url('admin_settings_create_repository'),class_="ui-btn")}
168 168 %endif
169 169 </div>
170 170 %endif
171 171 </tbody>
172 172 </table>
173 173 </div>
174 174 </div>
175 175 <div id="perms" class="table" style="display:none">
176 176 %for section in sorted(c.rhodecode_user.permissions.keys()):
177 177 <div class="perms_section_head">${section.replace("_"," ").capitalize()}</div>
178 178
179 179 <div id='tbl_list_wrap_${section}' class="yui-skin-sam">
180 180 <table id="tbl_list_${section}">
181 181 <thead>
182 182 <tr>
183 183 <th class="left">${_('Name')}</th>
184 184 <th class="left">${_('Permission')}</th>
185 185 </thead>
186 186 <tbody>
187 187 %for k in c.rhodecode_user.permissions[section]:
188 <%
189 if section != 'global':
190 section_perm = c.rhodecode_user.permissions[section].get(k)
191 _perm = section_perm.split('.')[-1]
192 else:
193 _perm = section_perm = None
194 %>
195 %if _perm not in ['none']:
188 196 <tr>
189 197 <td>
190 198 %if section == 'repositories':
191 199 <a href="${h.url('summary_home',repo_name=k)}">${k}</a>
192 200 %elif section == 'repositories_groups':
193 201 <a href="${h.url('repos_group_home',group_name=k)}">${k}</a>
194 202 %else:
195 203 ${k}
196 204 %endif
197 205 </td>
198 206 <td>
199 207 %if section == 'global':
200 208 ${h.bool2icon(True)}
201 209 %else:
202 <span class="perm_tag ${c.rhodecode_user.permissions[section].get(k).split('.')[-1] }">${c.rhodecode_user.permissions[section].get(k)}</span>
210 <span class="perm_tag ${_perm}">${section_perm}</span>
203 211 %endif
204 212 </td>
205 213 </tr>
214 %endif
206 215 %endfor
207 216 </tbody>
208 217 </table>
209 218 </div>
210 219 %endfor
211 220 </div>
212 221 </div>
213 222 <script type="text/javascript">
214 223 var filter_activate = function(){
215 224 var nodes = YUQ('#my tr td a.repo_name');
216 225 var func = function(node){
217 226 return node.parentNode.parentNode.parentNode.parentNode;
218 227 }
219 228 q_filter('q_filter',YUQ('#my tr td a.repo_name'),func);
220 229 }
221 230
222 231 YUE.on('show_my','click',function(e){
223 232 YUD.setStyle('perms','display','none');
224 233 YUD.setStyle('my','display','');
225 234 YUD.get('q_filter').removeAttribute('disabled');
226 235 filter_activate();
227 236 YUE.preventDefault(e);
228 237 })
229 238 YUE.on('show_perms','click',function(e){
230 239 YUD.setStyle('my','display','none');
231 240 YUD.setStyle('perms','display','');
232 241 YUD.setAttribute('q_filter','disabled','disabled');
233 242 YUE.preventDefault(e);
234 243 })
235 244
236 245
237 246 // main table sorting
238 247 var myColumnDefs = [
239 248 {key:"menu",label:"",sortable:false,className:"quick_repo_menu hidden"},
240 249 {key:"name",label:"${_('Name')}",sortable:true,
241 250 sortOptions: { sortFunction: nameSort }},
242 251 {key:"tip",label:"${_('Tip')}",sortable:true,
243 252 sortOptions: { sortFunction: revisionSort }},
244 253 {key:"action1",label:"",sortable:false},
245 254 {key:"action2",label:"",sortable:false},
246 255 ];
247 256
248 257 var myDataSource = new YAHOO.util.DataSource(YUD.get("repos_list"));
249 258 myDataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
250 259 myDataSource.responseSchema = {
251 260 fields: [
252 261 {key:"menu"},
253 262 {key:"name"},
254 263 {key:"tip"},
255 264 {key:"action1"},
256 265 {key:"action2"},
257 266 ]
258 267 };
259 268 var trans_defs = {
260 269 sortedBy:{key:"name",dir:"asc"},
261 270 MSG_SORTASC:"${_('Click to sort ascending')}",
262 271 MSG_SORTDESC:"${_('Click to sort descending')}",
263 272 MSG_EMPTY:"${_('No records found.')}",
264 273 MSG_ERROR:"${_('Data error.')}",
265 274 MSG_LOADING:"${_('Loading...')}",
266 275 }
267 276 var myDataTable = new YAHOO.widget.DataTable("repos_list_wrap", myColumnDefs, myDataSource,trans_defs);
268 277 myDataTable.subscribe('postRenderEvent',function(oArgs) {
269 278 tooltip_activate();
270 279 quick_repo_menu();
271 280 filter_activate();
272 281 });
273 282
274 283 var permsColumnDefs = [
275 284 {key:"name",label:"${_('Name')}",sortable:true, sortOptions: { sortFunction: permNameSort }},
276 285 {key:"perm",label:"${_('Permission')}",sortable:false,},
277 286 ];
278 287
279 288 // perms repos table
280 289 var myDataSource2 = new YAHOO.util.DataSource(YUD.get("tbl_list_repositories"));
281 290 myDataSource2.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
282 291 myDataSource2.responseSchema = {
283 292 fields: [
284 293 {key:"name"},
285 294 {key:"perm"},
286 295 ]
287 296 };
288 297
289 298 new YAHOO.widget.DataTable("tbl_list_wrap_repositories", permsColumnDefs, myDataSource2, trans_defs);
290 299
291 300 //perms groups table
292 301 var myDataSource3 = new YAHOO.util.DataSource(YUD.get("tbl_list_repositories_groups"));
293 302 myDataSource3.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
294 303 myDataSource3.responseSchema = {
295 304 fields: [
296 305 {key:"name"},
297 306 {key:"perm"},
298 307 ]
299 308 };
300 309
301 310 new YAHOO.widget.DataTable("tbl_list_wrap_repositories_groups", permsColumnDefs, myDataSource3, trans_defs);
302 311
303 312 </script>
304 313 </%def>
General Comments 0
You need to be logged in to leave comments. Login now