##// END OF EJS Templates
Show pull request link also on regular comments that are now attached to separate changesets
Show pull request link also on regular comments that are now attached to separate changesets

File last commit:

r3179:cd50d1b5 merge default
r3190:786236aa beta
Show More
user_edit_my_account.html
278 lines | 8.7 KiB | text/html | HtmlLexer
/ rhodecode / templates / admin / users / user_edit_my_account.html
renamed project to rhodecode
r547 ## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>
<%def name="title()">
#38 updated RhodeCode titles
r619 ${_('My account')} ${c.rhodecode_user.username} - ${c.rhodecode_name}
renamed project to rhodecode
r547 </%def>
<%def name="breadcrumbs_links()">
${_('My Account')}
</%def>
<%def name="page_nav()">
${self.menu('admin')}
</%def>
<%def name="main()">
<div class="box box-left">
<!-- box / title -->
<div class="title">
White-space cleanup
r1888 ${self.breadcrumbs()}
renamed project to rhodecode
r547 </div>
<!-- end box / title -->
highly improved performance of my_account page by removing super heavy htmlfill call on whole page
r2353 ${c.form|n}
White-space cleanup
r1888 </div>
renamed project to rhodecode
r547
<div class="box box-right">
<!-- box / title -->
<div class="title">
White-space cleanup
r1888 <h5>
Improvements to my account page...
r2624 <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}" style="display: none"/>
added add repository to my view
r766 </h5>
Improvements to my account page...
r2624 <ul class="links" style="color:#DADADA">
<li>
<span><a id="show_perms" class="link-white current" href="#perms">${_('My permissions')}</a> </span>
</li>
<li>
<span><a id="show_my" class="link-white" href="#my">${_('My repos')}</a> </span>
</li>
added add repository to my view
r766 <li>
remember selected tab in my account page
r2886 <span><a id="show_pullrequests" class="link-white" href="#pullrequests">${_('My pull requests')}</a> </span>
White-space cleanup
r1888 </li>
Improvements to my account page...
r2624 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
<li>
<span>${h.link_to(_('Add repo'),h.url('admin_settings_create_repository'))}</span>
</li>
%endif
White-space cleanup
r1888 </ul>
renamed project to rhodecode
r547 </div>
<!-- end box / title -->
Use common function for generation of grid data...
r3154 <div id="perms_container" class="table">
implemented #377 Users view own permissions...
r2127 %for section in sorted(c.rhodecode_user.permissions.keys()):
<div class="perms_section_head">${section.replace("_"," ").capitalize()}</div>
#399 added inheritance of permissions for users group on repos groups
r2129
implemented #377 Users view own permissions...
r2127 <div id='tbl_list_wrap_${section}' class="yui-skin-sam">
<table id="tbl_list_${section}">
<thead>
<tr>
<th class="left">${_('Name')}</th>
<th class="left">${_('Permission')}</th>
</thead>
<tbody>
%for k in c.rhodecode_user.permissions[section]:
don't show empty permissions on my account page
r2131 <%
if section != 'global':
section_perm = c.rhodecode_user.permissions[section].get(k)
_perm = section_perm.split('.')[-1]
else:
_perm = section_perm = None
%>
%if _perm not in ['none']:
implemented #377 Users view own permissions...
r2127 <tr>
linkify perms and make global ones display better
r2128 <td>
%if section == 'repositories':
<a href="${h.url('summary_home',repo_name=k)}">${k}</a>
%elif section == 'repositories_groups':
<a href="${h.url('repos_group_home',group_name=k)}">${k}</a>
%else:
${k}
%endif
</td>
implemented #377 Users view own permissions...
r2127 <td>
%if section == 'global':
linkify perms and make global ones display better
r2128 ${h.bool2icon(True)}
implemented #377 Users view own permissions...
r2127 %else:
don't show empty permissions on my account page
r2131 <span class="perm_tag ${_perm}">${section_perm}</span>
implemented #377 Users view own permissions...
r2127 %endif
</td>
</tr>
don't show empty permissions on my account page
r2131 %endif
implemented #377 Users view own permissions...
r2127 %endfor
</tbody>
</table>
</div>
%endfor
renamed project to rhodecode
r547 </div>
Use common function for generation of grid data...
r3154 <div id="my_container" style="display:none">
<div class="table yui-skin-sam" id="repos_list_wrap"></div>
<div id="user-paginator" style="padding: 0px 0px 0px 20px"></div>
white space cleanup
r2673 </div>
Use common function for generation of grid data...
r3154 <div id="pullrequests_container" class="table" style="display:none">
## loaded via AJAX
whitespace cleanup
r3168 ${_('Loading...')}
Use common function for generation of grid data...
r3154 </div>
renamed project to rhodecode
r547 </div>
fixed missing div on my_account + added nothing here yet when there are no...
r2722
one generic qfilter function.
r1653 <script type="text/javascript">
remember selected tab in my account page
r2886
var show_perms = function(e){
YUD.addClass('show_perms', 'current');
YUD.removeClass('show_my','current');
YUD.removeClass('show_pullrequests','current');
white space cleanup
r2673
Use common function for generation of grid data...
r3154 YUD.setStyle('my_container','display','none');
YUD.setStyle('pullrequests_container','display','none');
YUD.setStyle('perms_container','display','');
white space cleanup
r2907 YUD.setStyle('q_filter','display','none');
remember selected tab in my account page
r2886 }
YUE.on('show_perms','click',function(e){
show_perms();
implemented #377 Users view own permissions...
r2127 })
remember selected tab in my account page
r2886
var show_my = function(e){
Improvements to my account page...
r2624 YUD.addClass('show_my', 'current');
YUD.removeClass('show_perms','current');
YUD.removeClass('show_pullrequests','current');
white space cleanup
r2673
Use common function for generation of grid data...
r3154 YUD.setStyle('perms_container','display','none');
YUD.setStyle('pullrequests_container','display','none');
YUD.setStyle('my_container','display','');
Improvements to my account page...
r2624 YUD.setStyle('q_filter','display','');
Use common function for generation of grid data...
r3154 if(!YUD.hasClass('show_my', 'loaded')){
table_renderer(${c.data |n});
YUD.addClass('show_my', 'loaded');
}
remember selected tab in my account page
r2886 }
YUE.on('show_my','click',function(e){
show_my(e);
Improvements to my account page...
r2624 })
remember selected tab in my account page
r2886
var show_pullrequests = function(e){
Improvements to my account page...
r2624 YUD.addClass('show_pullrequests', 'current');
YUD.removeClass('show_my','current');
YUD.removeClass('show_perms','current');
Use common function for generation of grid data...
r3154 YUD.setStyle('my_container','display','none');
YUD.setStyle('perms_container','display','none');
YUD.setStyle('pullrequests_container','display','');
Improvements to my account page...
r2624 YUD.setStyle('q_filter','display','none');
white space cleanup
r2907
Improvements to my account page...
r2624 var url = "${h.url('admin_settings_my_pullrequests')}";
Use common function for generation of grid data...
r3154 ypjax(url, 'pullrequests_container');
remember selected tab in my account page
r2886 }
YUE.on('show_pullrequests','click',function(e){
show_pullrequests(e)
implemented #377 Users view own permissions...
r2127 })
remember selected tab in my account page
r2886 var tabs = {
'perms': show_perms,
'my': show_my,
'pullrequests': show_pullrequests
}
white space cleanup
r2907 var url = location.href.split('#');
if (url[1]) {
//We have a hash
remember selected tab in my account page
r2886 var tabHash = url[1];
fix small issue with anchor autolinks
r3120 var func = tabs[tabHash]
if (func){
func();
}
remember selected tab in my account page
r2886 }
Use common function for generation of grid data...
r3154 function table_renderer(data){
var myDataSource = new YAHOO.util.DataSource(data);
myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
myDataSource.responseSchema = {
resultsList: "records",
fields: [
{key:"menu"},
{key:"raw_name"},
{key:"name"},
{key:"last_changeset"},
{key:"action"},
]
};
myDataSource.doBeforeCallback = function(req,raw,res,cb) {
// This is the filter function
var data = res.results || [],
filtered = [],
i,l;
if (req) {
req = req.toLowerCase();
for (i = 0; i<data.length; i++) {
var pos = data[i].raw_name.toLowerCase().indexOf(req)
if (pos != -1) {
filtered.push(data[i]);
}
}
res.results = filtered;
}
return res;
}
whitespace cleanup
r3168
Use common function for generation of grid data...
r3154 // main table sorting
var myColumnDefs = [
{key:"menu",label:"",sortable:false,className:"quick_repo_menu hidden"},
{key:"name",label:"${_('Name')}",sortable:true,
sortOptions: { sortFunction: nameSort }},
{key:"last_changeset",label:"${_('Tip')}",sortable:true,
whitespace cleanup
r3168 sortOptions: { sortFunction: revisionSort }},
Use common function for generation of grid data...
r3154 {key:"action",label:"${_('Action')}",sortable:false},
];
implemented #377 Users view own permissions...
r2127
Use common function for generation of grid data...
r3154 var myDataTable = new YAHOO.widget.DataTable("repos_list_wrap", myColumnDefs, myDataSource,{
sortedBy:{key:"name",dir:"asc"},
paginator: new YAHOO.widget.Paginator({
rowsPerPage: 50,
alwaysVisible: false,
template : "{PreviousPageLink} {FirstPageLink} {PageLinks} {LastPageLink} {NextPageLink}",
pageLinks: 5,
containerClass: 'pagination-wh',
currentPageClass: 'pager_curpage',
pageLinkClass: 'pager_link',
nextPageLinkLabel: '&gt;',
previousPageLinkLabel: '&lt;',
firstPageLinkLabel: '&lt;&lt;',
lastPageLinkLabel: '&gt;&gt;',
containers:['user-paginator']
}),
MSG_SORTASC:"${_('Click to sort ascending')}",
MSG_SORTDESC:"${_('Click to sort descending')}",
MSG_EMPTY:"${_('No records found.')}",
MSG_ERROR:"${_('Data error.')}",
MSG_LOADING:"${_('Loading...')}",
}
);
myDataTable.subscribe('postRenderEvent',function(oArgs) {
tooltip_activate();
quick_repo_menu();
});
var filterTimeout = null;
implemented #377 Users view own permissions...
r2127
Use common function for generation of grid data...
r3154 updateFilter = function() {
// Reset timeout
filterTimeout = null;
implemented #377 Users view own permissions...
r2127
Use common function for generation of grid data...
r3154 // Reset sort
var state = myDataTable.getState();
state.sortedBy = {key:'name', dir:YAHOO.widget.DataTable.CLASS_ASC};
implemented #377 Users view own permissions...
r2127
Use common function for generation of grid data...
r3154 // Get filtered data
myDataSource.sendRequest(YUD.get('q_filter').value,{
success : myDataTable.onDataReturnInitializeTable,
failure : myDataTable.onDataReturnInitializeTable,
scope : myDataTable,
argument: state
});
implemented #377 Users view own permissions...
r2127
Use common function for generation of grid data...
r3154 };
YUE.on('q_filter','click',function(){
if(!YUD.hasClass('q_filter', 'loaded')){
YUD.get('q_filter').value = '';
//TODO: load here full list later to do search within groups
YUD.addClass('q_filter', 'loaded');
}
});
implemented #377 Users view own permissions...
r2127
Use common function for generation of grid data...
r3154 YUE.on('q_filter','keyup',function (e) {
clearTimeout(filterTimeout);
filterTimeout = setTimeout(updateFilter,600);
});
}
one generic qfilter function.
r1653 </script>
White-space cleanup
r1888 </%def>