Files
@ 1aee8b0cea70
Branch filter:
Location: kallithea/rhodecode/templates/index_base.html - annotation
1aee8b0cea70
7.6 KiB
text/html
show link to usergroups if we have a create usergroup permission
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 | f91d3f9b7230 fc286aed92fe fc286aed92fe fc286aed92fe aa805ee6ee09 690a955ba785 fc286aed92fe fc286aed92fe b4daef4cc26d 069884383cc7 fc286aed92fe 5242b1619603 77e6e941001f 667630c98eaa 667630c98eaa fe2bb88bf7ac 5242b1619603 77e6e941001f 667630c98eaa 667630c98eaa 667630c98eaa a8c9c0094ddf f91d3f9b7230 fc286aed92fe b4daef4cc26d b4daef4cc26d b4daef4cc26d b4daef4cc26d b4daef4cc26d b4daef4cc26d fc286aed92fe fc286aed92fe fc286aed92fe fc286aed92fe fc286aed92fe defcf245f3e9 defcf245f3e9 defcf245f3e9 defcf245f3e9 defcf245f3e9 defcf245f3e9 defcf245f3e9 defcf245f3e9 defcf245f3e9 f91d3f9b7230 defcf245f3e9 defcf245f3e9 fc286aed92fe defcf245f3e9 defcf245f3e9 5706f6ab60cf defcf245f3e9 defcf245f3e9 defcf245f3e9 a221706dab50 f1f01e951008 a221706dab50 a221706dab50 a221706dab50 87f0800abc7b 87f0800abc7b 87f0800abc7b fc286aed92fe defcf245f3e9 defcf245f3e9 defcf245f3e9 0cb48c083c6b fc286aed92fe fc286aed92fe 7a46d67c263c 7a46d67c263c 7a46d67c263c 1e5bb8ed77d6 1e5bb8ed77d6 1e5bb8ed77d6 1e5bb8ed77d6 defcf245f3e9 fc286aed92fe 9edd6ac132f0 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 9937afa7f093 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 d439d408b415 0226b6d6b2b5 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 9937afa7f093 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 9937afa7f093 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 d439d408b415 d439d408b415 0226b6d6b2b5 68f9c216377d 62e493c7f436 62e493c7f436 62e493c7f436 9937afa7f093 62e493c7f436 62e493c7f436 13241a4075e9 9937afa7f093 62e493c7f436 62e493c7f436 79c980b628e3 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 9937afa7f093 62e493c7f436 9937afa7f093 62e493c7f436 62e493c7f436 62e493c7f436 9937afa7f093 62e493c7f436 62e493c7f436 0226b6d6b2b5 9937afa7f093 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 9937afa7f093 62e493c7f436 62e493c7f436 0226b6d6b2b5 0226b6d6b2b5 0226b6d6b2b5 0226b6d6b2b5 62e493c7f436 9937afa7f093 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 62e493c7f436 | <%page args="parent" />
<div class="box">
<!-- box / title -->
<div class="title">
<h5>
<input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/> ${parent.breadcrumbs()} <span id="repo_count">0</span> ${_('repositories')}
</h5>
%if c.rhodecode_user.username != 'default':
<ul class="links">
%if h.HasPermissionAny('hg.admin','hg.create.repository')() or h.HasReposGroupPermissionAny('group.write', 'group.admin')(c.group.group_name if c.group else None):
<li>
%if c.group:
<span>${h.link_to(_('Add repository'),h.url('new_repo',parent_group=c.group.group_id))}</span>
%if h.HasPermissionAny('hg.admin')() or h.HasReposGroupPermissionAny('group.admin')(c.group.group_name):
<span>${h.link_to(_(u'Add group'),h.url('new_repos_group', parent_group=c.group.group_id))}</span>
%endif
%else:
<span>${h.link_to(_('Add repository'),h.url('new_repo'))}</span>
%if h.HasPermissionAny('hg.admin')():
<span>${h.link_to(_(u'Add group'),h.url('new_repos_group'))}</span>
%endif
%endif
</li>
%endif
%if c.group and h.HasReposGroupPermissionAny('group.admin')(c.group.group_name):
<li>
<span>${h.link_to(_('Edit group'),h.url('edit_repos_group',group_name=c.group.group_name), title=_('You have admin right to this group, and can edit it'))}</span>
</li>
%endif
</ul>
%endif
</div>
<!-- end box / title -->
<div class="table">
% if c.groups:
<div id='groups_list_wrap' class="yui-skin-sam">
<table id="groups_list">
<thead>
<tr>
<th class="left"><a href="#">${_('Group name')}</a></th>
<th class="left"><a href="#">${_('Description')}</a></th>
##<th class="left"><a href="#">${_('Number of repositories')}</a></th>
</tr>
</thead>
## REPO GROUPS
% for gr in c.groups:
<tr>
<td>
<div style="white-space: nowrap">
<img class="icon" alt="${_('Repository group')}" src="${h.url('/images/icons/database_link.png')}"/>
${h.link_to(gr.name,url('repos_group_home',group_name=gr.group_name))}
</div>
</td>
%if c.visual.stylify_metatags:
<td>${h.urlify_text(h.desc_stylize(gr.group_description))}</td>
%else:
<td>${gr.group_description}</td>
%endif
## this is commented out since for multi nested repos can be HEAVY!
## in number of executed queries during traversing uncomment at will
##<td><b>${gr.repositories_recursive_count}</b></td>
</tr>
% endfor
</table>
</div>
<div id="group-user-paginator" style="padding: 0px 0px 0px 0px"></div>
<div style="height: 20px"></div>
% endif
<div id="welcome" style="display:none;text-align:center">
<h1><a href="${h.url('home')}">${c.rhodecode_name} ${c.rhodecode_version}</a></h1>
</div>
<%cnt=0%>
<%namespace name="dt" file="/data_table/_dt_elements.html"/>
<div class="yui-skin-sam" id="repos_list_wrap"></div>
<div id="user-paginator" style="padding: 0px 0px 0px 0px"></div>
</div>
</div>
<script>
var data = ${c.data|n};
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:"desc"},
{key:"last_change"},
{key:"last_changeset"},
{key:"owner"},
{key:"atom"},
]
};
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;
}
YUD.get('repo_count').innerHTML = res.results.length;
return res;
}
// 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:"desc",label:"${_('Description')}",sortable:true},
{key:"last_change",label:"${_('Last Change')}",sortable:true,
sortOptions: { sortFunction: ageSort }},
{key:"last_changeset",label:"${_('Tip')}",sortable:true,
sortOptions: { sortFunction: revisionSort }},
{key:"owner",label:"${_('Owner')}",sortable:true},
{key:"atom",label:"",sortable:false},
];
var myDataTable = new YAHOO.widget.DataTable("repos_list_wrap", myColumnDefs, myDataSource,{
sortedBy:{key:"name",dir:"asc"},
paginator: YUI_paginator(${c.visual.dashboard_items},['user-paginator']),
MSG_SORTASC:"${_('Click to sort ascending')}",
MSG_SORTDESC:"${_('Click to sort descending')}",
MSG_EMPTY:"${_('No repositories found.')}",
MSG_ERROR:"${_('Data error.')}",
MSG_LOADING:"${_('Loading...')}",
}
);
myDataTable.subscribe('postRenderEvent',function(oArgs) {
tooltip_activate();
quick_repo_menu();
});
var filterTimeout = null;
updateFilter = function () {
// Reset timeout
filterTimeout = null;
// Reset sort
var state = myDataTable.getState();
state.sortedBy = {key:'name', dir:YAHOO.widget.DataTable.CLASS_ASC};
// Get filtered data
myDataSource.sendRequest(YUD.get('q_filter').value,{
success : myDataTable.onDataReturnInitializeTable,
failure : myDataTable.onDataReturnInitializeTable,
scope : myDataTable,
argument: state
});
};
YUE.on('q_filter','click',function(){
if(!YUD.hasClass('q_filter', 'loaded')){
//TODO: load here full list later to do search within groups
YUD.addClass('q_filter', 'loaded');
}
});
YUE.on('q_filter','keyup',function (e) {
clearTimeout(filterTimeout);
filterTimeout = setTimeout(updateFilter,600);
});
</script>
|