Files @ dc960653f8d2
Branch filter:

Location: kallithea/rhodecode/templates/index.html - annotation

Marcin Kuzminski
Added new random directory for each test to be better sandboxed
1e757ac98988
1e757ac98988
1e757ac98988
a1ec653f5f95
1e757ac98988
1e757ac98988
b75b77ef649d
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
01fe71db71f6
01fe71db71f6
01fe71db71f6
01fe71db71f6
01fe71db71f6
eee3cb592099
fdb984a94d5b
81c173490971
81c173490971
81c173490971
81c173490971
81c173490971
81c173490971
81c173490971
81c173490971
81c173490971
1e757ac98988
1e757ac98988
1e757ac98988
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
eee3cb592099
a04fe5986109
a04fe5986109
a04fe5986109
a04fe5986109
fdb984a94d5b
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
fcf599cd3404
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
dff6d5cb8bba
5e209dcd3821
3fc9183e05dd
90eadff2c2a8
3fc9183e05dd
90eadff2c2a8
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
5e209dcd3821
3fc9183e05dd
90eadff2c2a8
fdb984a94d5b
90eadff2c2a8
5e209dcd3821
5e209dcd3821
5e209dcd3821
fdb984a94d5b
fdb984a94d5b
3fc9183e05dd
3fc9183e05dd
fdb984a94d5b
3fc9183e05dd
90eadff2c2a8
fdb984a94d5b
dff6d5cb8bba
fdb984a94d5b
5e209dcd3821
1294f2baf2bc
fdb984a94d5b
fdb984a94d5b
5e209dcd3821
5e209dcd3821
82aaf4e71817
6d37fe113da0
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
82aaf4e71817
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
31e82d872631
31e82d872631
31e82d872631
31e82d872631
31e82d872631
fdb984a94d5b
fdb984a94d5b
31e82d872631
31e82d872631
31e82d872631
fdb984a94d5b
31e82d872631
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
a04fe5986109
fdb984a94d5b
fdb984a94d5b
1e757ac98988
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
eee3cb592099
eee3cb592099
eee3cb592099
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
eee3cb592099
d87997ed6ef1
fdb984a94d5b
dff6d5cb8bba
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
dff6d5cb8bba
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
7d2c16725be6
eee3cb592099
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
fdb984a94d5b
1e757ac98988
## -*- 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><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...')}"/>
	        
	        ${_('Dashboard')}  - <span id="repo_count"></span> ${_('repositories')} 
	        </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">
           % if c.groups:
            <table>
            
                <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="${_('Repositories group')}" src="${h.url('/images/icons/database_link.png')}"/>
                          ${h.link_to(gr.group_name,url('repos_group',id=gr.group_id))}
                          </div>
                      </td>
                      <td>${gr.group_description}</td>
                      <td><b>${gr.repositories.count()}</b></td>
                  </tr>
                % endfor
                
            </table>
            <div style="height: 20px"></div>
            % endif
            <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>
		              %if c.rhodecode_user.username != 'default':
		                <a title="${_('Subscribe to %s rss feed')%repo['name']}" class="rss_icon"  href="${h.url('rss_feed_home',repo_name=repo['name'],api_key=c.rhodecode_user.api_key)}"></a>
                      %else:
                        <a title="${_('Subscribe to %s rss feed')%repo['name']}" class="rss_icon"  href="${h.url('rss_feed_home',repo_name=repo['name'])}"></a>
                      %endif:		                
		            </td>        
		            <td>
		              %if c.rhodecode_user.username != 'default':
		                <a title="${_('Subscribe to %s atom feed')%repo['name']}"  class="atom_icon" href="${h.url('atom_feed_home',repo_name=repo['name'],api_key=c.rhodecode_user.api_key)}"></a>
		              %else:
		                <a title="${_('Subscribe to %s atom feed')%repo['name']}"  class="atom_icon" href="${h.url('atom_feed_home',repo_name=repo['name'])}"></a>
		              %endif:
		            </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;
     
     //set initial count for repos
     var nodes = S.query('div.table tr td div a.repo_name');
     YUD.get('repo_count').innerHTML = nodes.length;
     F.updateFilter  = function() { 
    	// Reset timeout 
        F.filterTimeout = null;
    	
        var obsolete = [];
        nodes = S.query('div.table tr td div a.repo_name');
        var req = q_filter.value.toLowerCase();
        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');
		        }
	        }
        }
        // set new count into dashboard
        YUD.get('repo_count').innerHTML = nodes.length - obsolete.length;      
     }
     
     E.on(q_filter,'keyup',function(e){
    	 clearTimeout(F.filterTimeout); 
    	 setTimeout(F.updateFilter,600); 
     });
     
    </script>
    	
</%def>