Files @ 43481c3d70ca
Branch filter:

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

Marcin Kuzminski
#399 added inheritance of permissions for users group on repos groups
f91d3f9b7230
fc286aed92fe
fc286aed92fe
fc286aed92fe
aa805ee6ee09
f91d3f9b7230
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
184557472f5c
f91d3f9b7230
f91d3f9b7230
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
f91d3f9b7230
defcf245f3e9
defcf245f3e9
fc286aed92fe
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
87f0800abc7b
87f0800abc7b
87f0800abc7b
fc286aed92fe
defcf245f3e9
f91d3f9b7230
defcf245f3e9
defcf245f3e9
fc286aed92fe
fc286aed92fe
7a46d67c263c
7a46d67c263c
7a46d67c263c
defcf245f3e9
9edd6ac132f0
9edd6ac132f0
f91d3f9b7230
7a46d67c263c
fc286aed92fe
fc286aed92fe
241a5167c4e0
a39c0e5fca89
a39c0e5fca89
a39c0e5fca89
a39c0e5fca89
a39c0e5fca89
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
f664d3b57fa4
f664d3b57fa4
9edd6ac132f0
ac0c4e600426
9edd6ac132f0
241a5167c4e0
9edd6ac132f0
9edd6ac132f0
9edd6ac132f0
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
9edd6ac132f0
fc286aed92fe
9edd6ac132f0
fc286aed92fe
9edd6ac132f0
9edd6ac132f0
f91d3f9b7230
9edd6ac132f0
9edd6ac132f0
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
f91d3f9b7230
f91d3f9b7230
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
fc286aed92fe
defcf245f3e9
fc286aed92fe
b1e1dffd595c
47d7bcbe5503
b1e1dffd595c
defcf245f3e9
b1e1dffd595c
9edd6ac132f0
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
f91d3f9b7230
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
f91d3f9b7230
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
f91d3f9b7230
defcf245f3e9
f91d3f9b7230
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
b9539c4df92f
b9539c4df92f
b9539c4df92f
f91d3f9b7230
defcf245f3e9
defcf245f3e9
defcf245f3e9
defcf245f3e9
9edd6ac132f0
f91d3f9b7230
f91d3f9b7230
f91d3f9b7230
f91d3f9b7230
<%page args="parent" />
    <div class="box">
        <!-- box / title -->
        <div class="title">
            <h5>
            <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}"/> ${parent.breadcrumbs()} <span id="repo_count">0</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 REPOSITORY'),h.url('admin_settings_create_repository'))}</span>
                  </li>
                </ul>
                %endif
            %endif
        </div>
        <!-- end box / title -->
        <div class="table">
           % if c.groups:
            <div id='groups_list_wrap' class="yui-skin-sam">
              <table id="groups_list">
                  <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.name,url('repos_group_home',group_name=gr.group_name))}
                            </div>
                        </td>
                        <td>${gr.group_description}</td>
                        ## this is commented out since for multi nested repos can be HEAVY!
                        ## in number of executed queries during traversing uncomment at will
                        ##<td><b>${gr.repositories_recursive_count}</b></td>
                    </tr>
                  % endfor

              </table>
            </div>
            <div style="height: 20px"></div>
            % endif
            <div id="welcome" style="display:none;text-align:center">
                <h1><a href="${h.url('home')}">${c.rhodecode_name} ${c.rhodecode_version}</a></h1>
            </div>
            <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">${_('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+1)%2}">
                    ##QUICK MENU
                    <td class="quick_repo_menu">
                      ${dt.quick_menu(repo['name'])}
                    </td>
                    ##REPO NAME AND ICONS
                    <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 DATE
                    <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>
                      %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>
    </div>
    <script>
      YUD.get('repo_count').innerHTML = ${cnt};
      var func = function(node){
          return node.parentNode.parentNode.parentNode.parentNode;
      }


      // groups table sorting
      var myColumnDefs = [
          {key:"name",label:"${_('Group Name')}",sortable:true,
              sortOptions: { sortFunction: groupNameSort }},
          {key:"desc",label:"${_('Description')}",sortable:true},
      ];

      var myDataSource = new YAHOO.util.DataSource(YUD.get("groups_list"));

      myDataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
      myDataSource.responseSchema = {
          fields: [
              {key:"name"},
              {key:"desc"},
          ]
      };

      var myDataTable = new YAHOO.widget.DataTable("groups_list_wrap", myColumnDefs, myDataSource,
              {
               sortedBy:{key:"name",dir:"asc"},
               MSG_SORTASC:"${_('Click to sort ascending')}",
               MSG_SORTDESC:"${_('Click to sort descending')}"
              }
      );

      // 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:"rss",label:"",sortable:false},
          {key:"atom",label:"",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:"rss"},
              {key:"atom"},
          ]
      };

      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();
          q_filter('q_filter',YUQ('div.table tr td a.repo_name'),func);
      });

    </script>