##// END OF EJS Templates
Moved out reposcan into hg Model....
Moved out reposcan into hg Model. Rewrote repo scann and caching of repositories, all is in hgModel. Changed invalidate cache calls. mergeds main repo list and repo switcher list into one new based on hgModel.

File last commit:

r647:5e209dcd beta
r665:070f3274 beta
Show More
index.html
165 lines | 5.9 KiB | text/html | HtmlLexer
## -*- coding: utf-8 -*-
<%inherit file="base/base.html"/>
<%def name="title()">
${_('Dashboard')} - ${c.rhodecode_name}
</%def>
<%def name="breadcrumbs()">
${c.rhodecode_name}
</%def>
<%def name="page_nav()">
${self.menu('home')}
</%def>
<%def name="main()">
<%def name="get_sort(name)">
<%name_slug = name.lower().replace(' ','_') %>
%if name_slug == c.sort_slug:
%if c.sort_by.startswith('-'):
<a href="?sort=${name_slug}">${name}&uarr;</a>
%else:
<a href="?sort=-${name_slug}">${name}&darr;</a>
%endif:
%else:
<a href="?sort=${name_slug}">${name}</a>
%endif
</%def>
<div class="box">
<!-- box / title -->
<div class="title">
<h5>${_('Dashboard')}
<input class="top-right-rounded-corner top-left-rounded-corner bottom-left-rounded-corner bottom-right-rounded-corner" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
</h5>
%if h.HasPermissionAny('hg.admin','hg.create.repository')():
<ul class="links">
<li>
<span>${h.link_to(_('ADD NEW REPOSITORY'),h.url('admin_settings_create_repository'))}</span>
</li>
</ul>
%endif
</div>
<!-- end box / title -->
<div class="table">
<table>
<thead>
<tr>
<th class="left">${get_sort(_('Name'))}</th>
<th class="left">${get_sort(_('Description'))}</th>
<th class="left">${get_sort(_('Last change'))}</th>
<th class="left">${get_sort(_('Tip'))}</th>
<th class="left">${get_sort(_('Owner'))}</th>
<th class="left">${_('RSS')}</th>
<th class="left">${_('Atom')}</th>
</tr>
</thead>
<tbody>
%for cnt,repo in enumerate(c.repos_list):
%if h.HasRepoPermissionAny('repository.write','repository.read','repository.admin')(repo['name'],'main page check'):
<tr class="parity${cnt%2}">
<td>
## TYPE OF REPO
%if repo['repo'].dbrepo.repo_type =='hg':
<img class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="/images/icons/hgicon.png"/>
%elif repo['repo'].dbrepo.repo_type =='git':
<img class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="/images/icons/giticon.png"/>
%else:
%endif
##PRIVATE/PUBLIC
%if repo['repo'].dbrepo.private:
<img class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="/images/icons/lock.png"/>
%else:
<img class="icon" title="${_('public repository')}" alt="${_('public repository')}" src="/images/icons/lock_open.png"/>
%endif
##NAME
${h.link_to(repo['name'],
h.url('summary_home',repo_name=repo['name']),class_="repo_name")}
%if repo['repo'].dbrepo.fork:
<a href="${h.url('summary_home',repo_name=repo['repo'].dbrepo.fork.repo_name)}">
<img class="icon" alt="${_('fork')}"
title="${_('Fork of')} ${repo['repo'].dbrepo.fork.repo_name}"
src="/images/icons/arrow_divide.png"/></a>
%endif
</td>
##DESCRIPTION
<td><span class="tooltip" tooltip_title="${repo['description']}">
${h.truncate(repo['description'],60)}</span>
</td>
##LAST CHANGE
<td>
<span>${repo['last_change']} - ${h.age(repo['last_change'])} </span>
</td>
<td>
%if repo['rev']>=0:
${h.link_to('r%s:%s' % (repo['rev'],h.short_id(repo['tip'])),
h.url('changeset_home',repo_name=repo['name'],revision=repo['tip']),
class_="tooltip",
tooltip_title=h.tooltip(repo['last_msg']))}
%else:
${_('No changesets yet')}
%endif
</td>
<td title="${repo['contact']}">${h.person(repo['contact'])}</td>
<td>
<a title="${_('Subscribe to %s rss feed')%repo['name']}" class="rss_icon" href="${h.url('rss_feed_home',repo_name=repo['name'])}"></a>
</td>
<td>
<a title="${_('Subscribe to %s atom feed')%repo['name']}" class="atom_icon" href="${h.url('atom_feed_home',repo_name=repo['name'])}"></a>
</td>
</tr>
%endif
%endfor
</tbody>
</table>
</div>
</div>
<script type="text/javascript">
var D = YAHOO.util.Dom;
var E = YAHOO.util.Event;
var S = YAHOO.util.Selector;
var q_filter = D.get('q_filter');
var F = YAHOO.namespace('q_filter');
E.on(q_filter,'click',function(){
q_filter.value = '';
});
F.filterTimeout = null;
F.updateFilter = function() {
// Reset timeout
F.filterTimeout = null;
var obsolete = [];
var nodes = S.query('div.table tr td a.repo_name');
var req = D.get('q_filter').value;
for (n in nodes){
D.setStyle(nodes[n].parentNode.parentNode,'display','')
}
if (req){
for (n in nodes){
if (nodes[n].innerHTML.toLowerCase().indexOf(req) == -1) {
obsolete.push(nodes[n]);
}
}
if(obsolete){
for (n in obsolete){
D.setStyle(obsolete[n].parentNode.parentNode,'display','none');
}
}
}
}
E.on(q_filter,'keyup',function(e){
clearTimeout(F.filterTimeout);
setTimeout(F.updateFilter,600);
});
</script>
</%def>