diff rhodecode/templates/admin/repos/repos.html @ 2031:82a88013a3fd

merge 1.3 into stable
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 26 Feb 2012 17:25:09 +0200
parents bf263968da47 f91d3f9b7230
children 6c6718c06ea2
line wrap: on
line diff
--- a/rhodecode/templates/admin/repos/repos.html	Sun Feb 19 20:21:14 2012 +0200
+++ b/rhodecode/templates/admin/repos/repos.html	Sun Feb 26 17:25:09 2012 +0200
@@ -14,75 +14,111 @@
 </%def>
 <%def name="main()">
 <div class="box">
-    <!-- box / title -->
+
     <div class="title">
         ${self.breadcrumbs()}
         <ul class="links">
           <li>
-            <span>${h.link_to(_(u'ADD NEW REPOSITORY'),h.url('new_repo'))}</span>
-          </li>          
-        </ul>        
+            <span>${h.link_to(_(u'ADD REPOSITORY'),h.url('new_repo'))}</span>
+          </li>
+        </ul>
     </div>
-    <!-- end box / title -->
+
     <div class="table">
-        <table class="table_disp">
-        <tr class="header">
-	        <th class="left">${_('Name')}</th>
-	        <th class="left">${_('Description')}</th>
-	        <th class="left">${_('Last change')}</th>
-	        <th class="left">${_('Tip')}</th>
-	        <th class="left">${_('Contact')}</th>
-            <th class="left">${_('action')}</th>
-        </tr>
-            %for cnt,repo in enumerate(c.repos_list):
-            <tr class="parity${cnt%2}">
-                 <td>
-                 ## 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 REPO                  
-                 %if repo['dbrepo']['private']:
-                    <img alt="${_('private')}" src="${h.url('/images/icons/lock.png')}"/>
-                 %else:
-                    <img alt="${_('public')}" src="${h.url('/images/icons/lock_open.png')}"/>
-                 %endif         
-                ${h.link_to(repo['name'],h.url('edit_repo',repo_name=repo['name']))}
-                
-	            %if repo['dbrepo_fork']:
-	            	<a href="${h.url('summary_home',repo_name=repo['dbrepo_fork']['repo_name'])}">
-	            	<img class="icon" alt="${_('public')}"
-	            	title="${_('Fork of')} ${repo['dbrepo_fork']['repo_name']}" 
-	            	src="${h.url("/images/icons/arrow_divide.png")}"/></a>
-	            %endif                
-                </td>
-				<td title="${repo['description']}">${h.truncate(repo['description'],60)}</td>
-	            <td>${h.age(repo['last_change'])}</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>
-                  ${h.form(url('repo', repo_name=repo['name']),method='delete')}
-                    ${h.submit('remove_%s' % repo['name'],_('delete'),class_="delete_icon action_button",onclick="return confirm('"+_('Confirm to delete this repository')+"');")}
-                  ${h.end_form()}
-                </td>
-            </tr>
-            %endfor
+        <div id='repos_list_wrap' class="yui-skin-sam">
+        <%cnt=0%>
+        <%namespace name="dt" file="/_data_table/_dt_elements.html"/>
+
+        <table id="repos_list">
+         <thead>
+          <tr>
+            <th class="left"></th>
+  	        <th class="left">${_('Name')}</th>
+  	        <th class="left">${_('Description')}</th>
+  	        <th class="left">${_('Last change')}</th>
+  	        <th class="left">${_('Tip')}</th>
+  	        <th class="left">${_('Contact')}</th>
+            <th class="left">${_('Action')}</th>
+          </tr>
+         </thead>
+
+          %for cnt,repo in enumerate(c.repos_list,1):
+          <tr class="parity${cnt%2}">
+              <td class="quick_repo_menu">
+                ${dt.quick_menu(repo['name'])}
+              </td>
+              <td class="reponame">
+                ${dt.repo_name(repo['name'],repo['dbrepo']['repo_type'],repo['dbrepo']['private'],repo['dbrepo_fork'].get('repo_name'))}
+              </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>
+              ##LAST REVISION
+              <td>
+                  ${dt.revision(repo['name'],repo['rev'],repo['tip'],repo['author'],repo['last_msg'])}
+              </td>
+            <td title="${repo['contact']}">${h.person(repo['contact'])}</td>
+              <td>
+                ${h.form(url('repo', repo_name=repo['name']),method='delete')}
+                  ${h.submit('remove_%s' % repo['name'],_('delete'),class_="delete_icon action_button",onclick="return confirm('"+_('Confirm to delete this repository: %s') % repo['name']+"');")}
+                ${h.end_form()}
+              </td>
+          </tr>
+          %endfor
         </table>
+        </div>
     </div>
-</div> 
-		   
-</%def>    
+</div>
+<script>
+
+  // 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:"tip",label:"${_('Tip')}",sortable:true,
+          sortOptions: { sortFunction: revisionSort }},
+      {key:"owner",label:"${_('Owner')}",sortable:true},
+      {key:"action",label:"${_('Action')}",sortable:false},
+  ];
+
+  var myDataSource = new YAHOO.util.DataSource(YUD.get("repos_list"));
+
+  myDataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
+
+  myDataSource.responseSchema = {
+      fields: [
+          {key:"menu"},
+          {key:"name"},
+          {key:"desc"},
+          {key:"last_change"},
+          {key:"tip"},
+          {key:"owner"},
+          {key:"action"},
+      ]
+  };
+
+  var myDataTable = new YAHOO.widget.DataTable("repos_list_wrap", myColumnDefs, myDataSource,
+          {
+            sortedBy:{key:"name",dir:"asc"},
+            MSG_SORTASC:"${_('Click to sort ascending')}",
+            MSG_SORTDESC:"${_('Click to sort descending')}",
+            MSG_EMPTY:"${_('No records found.')}",
+            MSG_ERROR:"${_('Data error.')}",
+            MSG_LOADING:"${_('Loading...')}",
+          }
+  );
+  myDataTable.subscribe('postRenderEvent',function(oArgs) {
+      tooltip_activate();
+      quick_repo_menu();
+  });
+</script>
+</%def>