##// END OF EJS Templates
remember selected tab in my account page
marcink -
r2886:1f2c4bf3 beta
parent child Browse files
Show More
@@ -1,222 +1,246 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="/base/base.html"/>
2 <%inherit file="/base/base.html"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('My account')} ${c.rhodecode_user.username} - ${c.rhodecode_name}
5 ${_('My account')} ${c.rhodecode_user.username} - ${c.rhodecode_name}
6 </%def>
6 </%def>
7
7
8 <%def name="breadcrumbs_links()">
8 <%def name="breadcrumbs_links()">
9 ${_('My Account')}
9 ${_('My Account')}
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()">
17
17
18 <div class="box box-left">
18 <div class="box box-left">
19 <!-- box / title -->
19 <!-- box / title -->
20 <div class="title">
20 <div class="title">
21 ${self.breadcrumbs()}
21 ${self.breadcrumbs()}
22 </div>
22 </div>
23 <!-- end box / title -->
23 <!-- end box / title -->
24 ${c.form|n}
24 ${c.form|n}
25 </div>
25 </div>
26
26
27 <div class="box box-right">
27 <div class="box box-right">
28 <!-- box / title -->
28 <!-- box / title -->
29 <div class="title">
29 <div class="title">
30 <h5>
30 <h5>
31 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}" style="display: none"/>
31 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}" style="display: none"/>
32 </h5>
32 </h5>
33 <ul class="links" style="color:#DADADA">
33 <ul class="links" style="color:#DADADA">
34 <li>
34 <li>
35 <span><a id="show_perms" class="link-white current" href="#perms">${_('My permissions')}</a> </span>
35 <span><a id="show_perms" class="link-white current" href="#perms">${_('My permissions')}</a> </span>
36 </li>
36 </li>
37 <li>
37 <li>
38 <span><a id="show_my" class="link-white" href="#my">${_('My repos')}</a> </span>
38 <span><a id="show_my" class="link-white" href="#my">${_('My repos')}</a> </span>
39 </li>
39 </li>
40 <li>
40 <li>
41 <span><a id="show_pullrequests" class="link-white" href="#perms">${_('My pull requests')}</a> </span>
41 <span><a id="show_pullrequests" class="link-white" href="#pullrequests">${_('My pull requests')}</a> </span>
42 </li>
42 </li>
43 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
43 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
44 <li>
44 <li>
45 <span>${h.link_to(_('Add repo'),h.url('admin_settings_create_repository'))}</span>
45 <span>${h.link_to(_('Add repo'),h.url('admin_settings_create_repository'))}</span>
46 </li>
46 </li>
47 %endif
47 %endif
48 </ul>
48 </ul>
49 </div>
49 </div>
50 <!-- end box / title -->
50 <!-- end box / title -->
51 <div id="perms" class="table">
51 <div id="perms" class="table">
52 %for section in sorted(c.rhodecode_user.permissions.keys()):
52 %for section in sorted(c.rhodecode_user.permissions.keys()):
53 <div class="perms_section_head">${section.replace("_"," ").capitalize()}</div>
53 <div class="perms_section_head">${section.replace("_"," ").capitalize()}</div>
54
54
55 <div id='tbl_list_wrap_${section}' class="yui-skin-sam">
55 <div id='tbl_list_wrap_${section}' class="yui-skin-sam">
56 <table id="tbl_list_${section}">
56 <table id="tbl_list_${section}">
57 <thead>
57 <thead>
58 <tr>
58 <tr>
59 <th class="left">${_('Name')}</th>
59 <th class="left">${_('Name')}</th>
60 <th class="left">${_('Permission')}</th>
60 <th class="left">${_('Permission')}</th>
61 </thead>
61 </thead>
62 <tbody>
62 <tbody>
63 %for k in c.rhodecode_user.permissions[section]:
63 %for k in c.rhodecode_user.permissions[section]:
64 <%
64 <%
65 if section != 'global':
65 if section != 'global':
66 section_perm = c.rhodecode_user.permissions[section].get(k)
66 section_perm = c.rhodecode_user.permissions[section].get(k)
67 _perm = section_perm.split('.')[-1]
67 _perm = section_perm.split('.')[-1]
68 else:
68 else:
69 _perm = section_perm = None
69 _perm = section_perm = None
70 %>
70 %>
71 %if _perm not in ['none']:
71 %if _perm not in ['none']:
72 <tr>
72 <tr>
73 <td>
73 <td>
74 %if section == 'repositories':
74 %if section == 'repositories':
75 <a href="${h.url('summary_home',repo_name=k)}">${k}</a>
75 <a href="${h.url('summary_home',repo_name=k)}">${k}</a>
76 %elif section == 'repositories_groups':
76 %elif section == 'repositories_groups':
77 <a href="${h.url('repos_group_home',group_name=k)}">${k}</a>
77 <a href="${h.url('repos_group_home',group_name=k)}">${k}</a>
78 %else:
78 %else:
79 ${k}
79 ${k}
80 %endif
80 %endif
81 </td>
81 </td>
82 <td>
82 <td>
83 %if section == 'global':
83 %if section == 'global':
84 ${h.bool2icon(True)}
84 ${h.bool2icon(True)}
85 %else:
85 %else:
86 <span class="perm_tag ${_perm}">${section_perm}</span>
86 <span class="perm_tag ${_perm}">${section_perm}</span>
87 %endif
87 %endif
88 </td>
88 </td>
89 </tr>
89 </tr>
90 %endif
90 %endif
91 %endfor
91 %endfor
92 </tbody>
92 </tbody>
93 </table>
93 </table>
94 </div>
94 </div>
95 %endfor
95 %endfor
96 </div>
96 </div>
97 <div id="my" class="table" style="display:none">
97 <div id="my" class="table" style="display:none">
98 </div>
98 </div>
99 <div id="pullrequests" class="table" style="display:none"></div>
99 <div id="pullrequests" class="table" style="display:none"></div>
100 </div>
100 </div>
101
101
102
102
103
103
104 <script type="text/javascript">
104 <script type="text/javascript">
105 var filter_activate = function(){
105 var filter_activate = function(){
106 var nodes = YUQ('#my tr td a.repo_name');
106 var nodes = YUQ('#my tr td a.repo_name');
107 var func = function(node){
107 var func = function(node){
108 return node.parentNode.parentNode.parentNode.parentNode;
108 return node.parentNode.parentNode.parentNode.parentNode;
109 }
109 }
110 q_filter('q_filter',YUQ('#my tr td a.repo_name'),func);
110 q_filter('q_filter',YUQ('#my tr td a.repo_name'),func);
111 }
111 }
112 YUE.on('show_perms','click',function(e){
112
113 YUD.addClass('show_perms', 'current');
113 var show_perms = function(e){
114 YUD.removeClass('show_my','current');
114 YUD.addClass('show_perms', 'current');
115 YUD.removeClass('show_pullrequests','current');
115 YUD.removeClass('show_my','current');
116 YUD.removeClass('show_pullrequests','current');
116
117
117 YUD.setStyle('my','display','none');
118 YUD.setStyle('my','display','none');
118 YUD.setStyle('pullrequests','display','none');
119 YUD.setStyle('pullrequests','display','none');
119 YUD.setStyle('perms','display','');
120 YUD.setStyle('perms','display','');
120 YUD.setStyle('q_filter','display','none');
121 YUD.setStyle('q_filter','display','none');
121 YUE.preventDefault(e);
122 }
123 YUE.on('show_perms','click',function(e){
124 show_perms();
122 })
125 })
123 YUE.on('show_my','click',function(e){
126
127 var show_my = function(e){
124 YUD.addClass('show_my', 'current');
128 YUD.addClass('show_my', 'current');
125 YUD.removeClass('show_perms','current');
129 YUD.removeClass('show_perms','current');
126 YUD.removeClass('show_pullrequests','current');
130 YUD.removeClass('show_pullrequests','current');
127
131
128 YUD.setStyle('perms','display','none');
132 YUD.setStyle('perms','display','none');
129 YUD.setStyle('pullrequests','display','none');
133 YUD.setStyle('pullrequests','display','none');
130 YUD.setStyle('my','display','');
134 YUD.setStyle('my','display','');
131 YUD.setStyle('q_filter','display','');
135 YUD.setStyle('q_filter','display','');
132
136
133 YUE.preventDefault(e);
137
134 var url = "${h.url('admin_settings_my_repos')}";
138 var url = "${h.url('admin_settings_my_repos')}";
135 ypjax(url, 'my', function(){
139 ypjax(url, 'my', function(){
136 table_sort();
140 table_sort();
137 filter_activate();
141 filter_activate();
138 });
142 });
143 }
144 YUE.on('show_my','click',function(e){
145 show_my(e);
139 })
146 })
140 YUE.on('show_pullrequests','click',function(e){
147
148 var show_pullrequests = function(e){
141 YUD.addClass('show_pullrequests', 'current');
149 YUD.addClass('show_pullrequests', 'current');
142 YUD.removeClass('show_my','current');
150 YUD.removeClass('show_my','current');
143 YUD.removeClass('show_perms','current');
151 YUD.removeClass('show_perms','current');
144
152
145 YUD.setStyle('my','display','none');
153 YUD.setStyle('my','display','none');
146 YUD.setStyle('perms','display','none');
154 YUD.setStyle('perms','display','none');
147 YUD.setStyle('pullrequests','display','');
155 YUD.setStyle('pullrequests','display','');
148 YUD.setStyle('q_filter','display','none');
156 YUD.setStyle('q_filter','display','none');
149 YUE.preventDefault(e);
157
150 var url = "${h.url('admin_settings_my_pullrequests')}";
158 var url = "${h.url('admin_settings_my_pullrequests')}";
151 ypjax(url, 'pullrequests');
159 ypjax(url, 'pullrequests');
160 }
161 YUE.on('show_pullrequests','click',function(e){
162 show_pullrequests(e)
152 })
163 })
153
164
165 var tabs = {
166 'perms': show_perms,
167 'my': show_my,
168 'pullrequests': show_pullrequests
169 }
170 var url = location.href.split('#');
171 if (url[1]) {
172 //We have a hash
173 var tabHash = url[1];
174 console.log(tabs, tabHash)
175 tabs[tabHash]();
176 }
177
154 // main table sorting
178 // main table sorting
155 var myColumnDefs = [
179 var myColumnDefs = [
156 {key:"menu",label:"",sortable:false,className:"quick_repo_menu hidden"},
180 {key:"menu",label:"",sortable:false,className:"quick_repo_menu hidden"},
157 {key:"name",label:"${_('Name')}",sortable:true,
181 {key:"name",label:"${_('Name')}",sortable:true,
158 sortOptions: { sortFunction: nameSort }},
182 sortOptions: { sortFunction: nameSort }},
159 {key:"tip",label:"${_('Tip')}",sortable:true,
183 {key:"tip",label:"${_('Tip')}",sortable:true,
160 sortOptions: { sortFunction: revisionSort }},
184 sortOptions: { sortFunction: revisionSort }},
161 {key:"action1",label:"",sortable:false},
185 {key:"action1",label:"",sortable:false},
162 {key:"action2",label:"",sortable:false},
186 {key:"action2",label:"",sortable:false},
163 ];
187 ];
164
188
165 function table_sort(){
189 function table_sort(){
166 var myDataSource = new YAHOO.util.DataSource(YUD.get("repos_list"));
190 var myDataSource = new YAHOO.util.DataSource(YUD.get("repos_list"));
167 myDataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
191 myDataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
168 myDataSource.responseSchema = {
192 myDataSource.responseSchema = {
169 fields: [
193 fields: [
170 {key:"menu"},
194 {key:"menu"},
171 {key:"name"},
195 {key:"name"},
172 {key:"tip"},
196 {key:"tip"},
173 {key:"action1"},
197 {key:"action1"},
174 {key:"action2"},
198 {key:"action2"},
175 ]
199 ]
176 };
200 };
177 var trans_defs = {
201 var trans_defs = {
178 sortedBy:{key:"name",dir:"asc"},
202 sortedBy:{key:"name",dir:"asc"},
179 MSG_SORTASC:"${_('Click to sort ascending')}",
203 MSG_SORTASC:"${_('Click to sort ascending')}",
180 MSG_SORTDESC:"${_('Click to sort descending')}",
204 MSG_SORTDESC:"${_('Click to sort descending')}",
181 MSG_EMPTY:"${_('No records found.')}",
205 MSG_EMPTY:"${_('No records found.')}",
182 MSG_ERROR:"${_('Data error.')}",
206 MSG_ERROR:"${_('Data error.')}",
183 MSG_LOADING:"${_('Loading...')}",
207 MSG_LOADING:"${_('Loading...')}",
184 }
208 }
185 var myDataTable = new YAHOO.widget.DataTable("repos_list_wrap", myColumnDefs, myDataSource,trans_defs);
209 var myDataTable = new YAHOO.widget.DataTable("repos_list_wrap", myColumnDefs, myDataSource,trans_defs);
186 myDataTable.subscribe('postRenderEvent',function(oArgs) {
210 myDataTable.subscribe('postRenderEvent',function(oArgs) {
187 tooltip_activate();
211 tooltip_activate();
188 quick_repo_menu();
212 quick_repo_menu();
189 filter_activate();
213 filter_activate();
190 });
214 });
191
215
192 var permsColumnDefs = [
216 var permsColumnDefs = [
193 {key:"name",label:"${_('Name')}",sortable:true, sortOptions: { sortFunction: permNameSort }},
217 {key:"name",label:"${_('Name')}",sortable:true, sortOptions: { sortFunction: permNameSort }},
194 {key:"perm",label:"${_('Permission')}",sortable:false,},
218 {key:"perm",label:"${_('Permission')}",sortable:false,},
195 ];
219 ];
196
220
197 // perms repos table
221 // perms repos table
198 var myDataSource2 = new YAHOO.util.DataSource(YUD.get("tbl_list_repositories"));
222 var myDataSource2 = new YAHOO.util.DataSource(YUD.get("tbl_list_repositories"));
199 myDataSource2.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
223 myDataSource2.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
200 myDataSource2.responseSchema = {
224 myDataSource2.responseSchema = {
201 fields: [
225 fields: [
202 {key:"name"},
226 {key:"name"},
203 {key:"perm"},
227 {key:"perm"},
204 ]
228 ]
205 };
229 };
206
230
207 new YAHOO.widget.DataTable("tbl_list_wrap_repositories", permsColumnDefs, myDataSource2, trans_defs);
231 new YAHOO.widget.DataTable("tbl_list_wrap_repositories", permsColumnDefs, myDataSource2, trans_defs);
208
232
209 //perms groups table
233 //perms groups table
210 var myDataSource3 = new YAHOO.util.DataSource(YUD.get("tbl_list_repositories_groups"));
234 var myDataSource3 = new YAHOO.util.DataSource(YUD.get("tbl_list_repositories_groups"));
211 myDataSource3.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
235 myDataSource3.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
212 myDataSource3.responseSchema = {
236 myDataSource3.responseSchema = {
213 fields: [
237 fields: [
214 {key:"name"},
238 {key:"name"},
215 {key:"perm"},
239 {key:"perm"},
216 ]
240 ]
217 };
241 };
218
242
219 new YAHOO.widget.DataTable("tbl_list_wrap_repositories_groups", permsColumnDefs, myDataSource3, trans_defs);
243 new YAHOO.widget.DataTable("tbl_list_wrap_repositories_groups", permsColumnDefs, myDataSource3, trans_defs);
220 }
244 }
221 </script>
245 </script>
222 </%def>
246 </%def>
General Comments 0
You need to be logged in to leave comments. Login now