## -*- 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}↑</a> %else: <a href="?sort=-${name_slug}">${name}↓</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 c.rhodecode_user.username != 'default': %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 %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): <tr class="parity${cnt%2}"> <td> <div style="white-space: nowrap"> ## TYPE OF REPO %if repo['dbrepo']['repo_type'] =='hg': <img class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="${h.url("/images/icons/hgicon.png")}"/> %elif repo['dbrepo']['repo_type'] =='git': <img class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="${h.url("/images/icons/giticon.png")}"/> %else: %endif ##PRIVATE/PUBLIC %if repo['dbrepo']['private']: <img class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="${h.url("/images/icons/lock.png")}"/> %else: <img class="icon" title="${_('public repository')}" alt="${_('public repository')}" src="${h.url("/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['dbrepo_fork']: <a href="${h.url('summary_home',repo_name=repo['dbrepo_fork']['repo_name'])}"> <img class="icon" alt="${_('fork')}" title="${_('Fork of')} ${repo['dbrepo_fork']['repo_name']}" src="${h.url("/images/icons/arrow_divide.png")}"/></a> %endif </div> </td> ##DESCRIPTION <td><span class="tooltip" title="${h.tooltip(repo['description'])}"> ${h.truncate(repo['description'],60)}</span> </td> ##LAST CHANGE <td> <span class="tooltip" title="${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", 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> %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 div a.repo_name'); var req = D.get('q_filter').value; for (n in nodes){ D.setStyle(nodes[n].parentNode.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.parentNode,'display','none'); } } } } E.on(q_filter,'keyup',function(e){ clearTimeout(F.filterTimeout); setTimeout(F.updateFilter,600); }); </script> </%def>