Changeset - b02a5406924f
[Not reviewed]
beta
0 1 0
Marcin Kuzminski - 12 years ago 2013-06-03 03:28:04
marcin@python-works.com
Hide add repository button in admin repositories view if we
don't have permission to create repositories
1 file changed with 2 insertions and 0 deletions:
0 comments (0 inline, 0 general)
rhodecode/templates/admin/repos/repos.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
<%inherit file="/base/base.html"/>
 

	
 
<%def name="title()">
 
    ${_('Repositories administration')} &middot; ${c.rhodecode_name}
 
</%def>
 

	
 
<%def name="breadcrumbs_links()">
 
    <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/> ${h.link_to(_('Admin'),h.url('admin_home'))} &raquo; <span id="repo_count">0</span> ${_('repositories')}
 
</%def>
 
<%def name="page_nav()">
 
    ${self.menu('admin')}
 
</%def>
 
<%def name="main()">
 
<div class="box">
 

	
 
    <div class="title">
 
        ${self.breadcrumbs()}
 
        <ul class="links">
 
         %if h.HasPermissionAny('hg.admin','hg.create.repository')():
 
          <li>
 
            <span>${h.link_to(_(u'Add repository'),h.url('new_repo'))}</span>
 
          </li>
 
         %endif
 
        </ul>
 
    </div>
 
    <div class="table yui-skin-sam" id="repos_list_wrap"></div>
 
    <div id="user-paginator" style="padding: 0px 0px 0px 20px"></div>
 

	
 

	
 
</div>
 
<script>
 
  var url = "${h.url('formatted_users', format='json')}";
 
  var data = ${c.data|n};
 
  var myDataSource = new YAHOO.util.DataSource(data);
 
  myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
 

	
 
  myDataSource.responseSchema = {
 
      resultsList: "records",
 
      fields: [
 
         {key:"menu"},
 
         {key:"raw_name"},
 
         {key:"name"},
 
         {key:"desc"},
 
         {key:"last_changeset"},
 
         {key:"owner"},
 
         {key:"action"},
 
      ]
 
   };
 
  myDataSource.doBeforeCallback = function(req,raw,res,cb) {
 
      // This is the filter function
 
      var data     = res.results || [],
 
          filtered = [],
 
          i,l;
 

	
 
      if (req) {
 
          req = req.toLowerCase();
 
          for (i = 0; i<data.length; i++) {
 
              var pos = data[i].raw_name.toLowerCase().indexOf(req)
 
              if (pos != -1) {
 
                  filtered.push(data[i]);
 
              }
 
          }
 
          res.results = filtered;
 
      }
 
      YUD.get('repo_count').innerHTML = res.results.length;
 
      return res;
 
  }
 

	
 
  // 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_changeset",label:"${_('Tip')}",sortable:true,
 
          sortOptions: { sortFunction: revisionSort }},
 
      {key:"owner",label:"${_('Owner')}",sortable:true},
 
      {key:"action",label:"${_('Action')}",sortable:false},
 
  ];
 

	
 
  var myDataTable = new YAHOO.widget.DataTable("repos_list_wrap", myColumnDefs, myDataSource,{
 
    sortedBy:{key:"name",dir:"asc"},
 
    paginator: YUI_paginator(25, ['user-paginator']),
 

	
 
    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();
 
  });
 

	
 
  var filterTimeout = null;
 

	
 
  updateFilter  = function () {
 
      // Reset timeout
 
      filterTimeout = null;
 

	
 
      // Reset sort
 
      var state = myDataTable.getState();
 
      state.sortedBy = {key:'name', dir:YAHOO.widget.DataTable.CLASS_ASC};
 

	
 
      // Get filtered data
 
      myDataSource.sendRequest(YUD.get('q_filter').value,{
 
          success : myDataTable.onDataReturnInitializeTable,
 
          failure : myDataTable.onDataReturnInitializeTable,
 
          scope   : myDataTable,
 
          argument: state
 
      });
 

	
 
  };
 
  YUE.on('q_filter','click',function(){
 
      if(!YUD.hasClass('q_filter', 'loaded')){
 
          //TODO: load here full list later to do search within groups
 
          YUD.addClass('q_filter', 'loaded');
0 comments (0 inline, 0 general)