Files @ 0eceb478c720
Branch filter:

Location: kallithea/rhodecode/templates/index.html

Marcin Kuzminski
fixed issue #165 trending source files are now stored in cache as ext only, and translated to description only when displaying, so future changes of mappings will take affect right away.
Also changes the way how map is generating, ie. autogenerate from pygments lexers, and than complete with user defined mappings.
## -*- 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">${c.repo_cnt}</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">
            <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;
     
     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');
		        }
	        }
        }
        // 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>