##// END OF EJS Templates
fixed AGE funtion for future dates, testa are now cleaner with dateutil usage
fixed AGE funtion for future dates, testa are now cleaner with dateutil usage

File last commit:

r3241:12f2547c beta
r3261:54a439ed beta
Show More
index_base.html
344 lines | 13.9 KiB | text/html | HtmlLexer
White-space cleanup
r1888 <%page args="parent" />
fixes #209, repos groups and index page now share same common page.
r1403 <div class="box">
<!-- box / title -->
<div class="title">
fixes code view issue on chrome
r1475 <h5>
White-space cleanup
r1888 <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')}
fixes #209, repos groups and index page now share same common page.
r1403 </h5>
%if c.rhodecode_user.username != 'default':
Group management delegation:...
r3222 <ul class="links">
fixes #209, repos groups and index page now share same common page.
r1403 %if h.HasPermissionAny('hg.admin','hg.create.repository')():
<li>
#401 repository group is automatically pre-selected when adding repos inside a repository group
r2130 %if c.group:
hide add repository button when you don't have at least write permission in group...
r3241 %if h.HasReposGroupPermissionAny('group.write', 'group.admin')(c.group.group_name):
<span>${h.link_to(_('Add repository'),h.url('admin_settings_create_repository',parent_group=c.group.group_id))}</span>
%endif
#401 repository group is automatically pre-selected when adding repos inside a repository group
r2130 %else:
whitespace cleanup
r3224 <span>${h.link_to(_('Add repository'),h.url('admin_settings_create_repository'))}</span>
White space cleanup
r2150 %endif
White-space cleanup
r1888 </li>
fixes #209, repos groups and index page now share same common page.
r1403 %endif
Group management delegation:...
r3222 %if c.group and h.HasReposGroupPermissionAny('group.admin')(c.group.group_name):
<li>
<span>${h.link_to(_('Edit group'),h.url('edit_repos_group',group_name=c.group.group_name), title=_('You have admin right to this group, and can edit it'))}</span>
</li>
%endif
</ul>
fixes #209, repos groups and index page now share same common page.
r1403 %endif
</div>
<!-- end box / title -->
<div class="table">
% if c.groups:
fixes #229 repo sorting is not working....
r1778 <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>
White-space cleanup
r1888
fixes #229 repo sorting is not working....
r1778 ## REPO GROUPS
% for gr in c.groups:
fixes #209, repos groups and index page now share same common page.
r1403 <tr>
fixes #229 repo sorting is not working....
r1778 <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>
merged + fixed pull request #62: Implemented metatags and visualisation options....
r2674 %if c.visual.stylify_metatags:
urlify group description also
r2785 <td>${h.urlify_text(h.desc_stylize(gr.group_description))}</td>
merged + fixed pull request #62: Implemented metatags and visualisation options....
r2674 %else:
<td>${gr.group_description}</td>
%endif
#227 Initial version of repository groups permissions system...
r1982 ## 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>
fixes #209, repos groups and index page now share same common page.
r1403 </tr>
fixes #229 repo sorting is not working....
r1778 % endfor
</table>
</div>
fixes issues with groups paginator
r3155 <div id="group-user-paginator" style="padding: 0px 0px 0px 0px"></div>
fixes #209, repos groups and index page now share same common page.
r1403 <div style="height: 20px"></div>
% endif
added welcome message if no repositories are present in current view
r1437 <div id="welcome" style="display:none;text-align:center">
<h1><a href="${h.url('home')}">${c.rhodecode_name} ${c.rhodecode_version}</a></h1>
</div>
Added lightweight dashboard option. ref #500
r2936 <%cnt=0%>
<%namespace name="dt" file="/data_table/_dt_elements.html"/>
% if c.visual.lightweight_dashboard is False:
## old full detailed version
fixes #229 repo sorting is not working....
r1778 <div id='repos_list_wrap' class="yui-skin-sam">
added welcome message if no repositories are present in current view
r1437 <table id="repos_list">
fixes #209, repos groups and index page now share same common page.
r1403 <thead>
<tr>
Added quick menu for each repo in main page.
r1423 <th class="left"></th>
removed obsolete sort code
r1482 <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>
fixes #209, repos groups and index page now share same common page.
r1403 <th class="left">${_('RSS')}</th>
<th class="left">${_('Atom')}</th>
</tr>
</thead>
<tbody>
p2.5 fixes
r2068 %for cnt,repo in enumerate(c.repos_list):
<tr class="parity${(cnt+1)%2}">
Added sorting into journal and admin pages...
r1779 ##QUICK MENU
removed obsolete class from quick menu
r1424 <td class="quick_repo_menu">
Added sorting into journal and admin pages...
r1779 ${dt.quick_menu(repo['name'])}
Added quick menu for each repo in main page.
r1423 </td>
Added sorting into journal and admin pages...
r1779 ##REPO NAME AND ICONS
<td class="reponame">
Added lightweight dashboard option. ref #500
r2936 ${dt.repo_name(repo['name'],repo['dbrepo']['repo_type'],repo['dbrepo']['private'],h.AttributeDict(repo['dbrepo_fork']),pageargs.get('short_repo_names'))}
fixes #209, repos groups and index page now share same common page.
r1403 </td>
##DESCRIPTION
<td><span class="tooltip" title="${h.tooltip(repo['description'])}">
merged + fixed pull request #62: Implemented metatags and visualisation options....
r2674 %if c.visual.stylify_metatags:
${h.urlify_text(h.desc_stylize(h.truncate(repo['description'],60)))}</span>
%else:
fixes #209, repos groups and index page now share same common page.
r1403 ${h.truncate(repo['description'],60)}</span>
merged + fixed pull request #62: Implemented metatags and visualisation options....
r2674 %endif
fixes #209, repos groups and index page now share same common page.
r1403 </td>
Added sorting into journal and admin pages...
r1779 ##LAST CHANGE DATE
fixes #209, repos groups and index page now share same common page.
r1403 <td>
Update last_change from VCS data on request....
r2937 ${dt.last_change(repo['last_change'])}
fixes #209, repos groups and index page now share same common page.
r1403 </td>
Added sorting into journal and admin pages...
r1779 ##LAST REVISION
<td>
White-space cleanup
r1888 ${dt.revision(repo['name'],repo['rev'],repo['tip'],repo['author'],repo['last_msg'])}
Added sorting into journal and admin pages...
r1779 </td>
##
fixes #209, repos groups and index page now share same common page.
r1403 <td title="${repo['contact']}">${h.person(repo['contact'])}</td>
<td>
Added lightweight dashboard option. ref #500
r2936 ${dt.rss(repo['name'])}
White-space cleanup
r1888 </td>
fixes #209, repos groups and index page now share same common page.
r1403 <td>
Added lightweight dashboard option. ref #500
r2936 ${dt.atom(repo['name'])}
fixes #209, repos groups and index page now share same common page.
r1403 </td>
</tr>
%endfor
</tbody>
</table>
</div>
Added lightweight dashboard option. ref #500
r2936 % else:
## lightweight version
<div class="yui-skin-sam" id="repos_list_wrap"></div>
<div id="user-paginator" style="padding: 0px 0px 0px 0px"></div>
% endif
fixes #229 repo sorting is not working....
r1778 </div>
fixes #209, repos groups and index page now share same common page.
r1403 </div>
Added lightweight dashboard option. ref #500
r2936 % if c.visual.lightweight_dashboard is False:
one generic qfilter function.
r1653 <script>
fix issue #458 wrong count when no repos are present
r2454 YUD.get('repo_count').innerHTML = ${cnt+1 if cnt else 0};
Added sorting into journal and admin pages...
r1779
fixes #229 repo sorting is not working....
r1778 // groups table sorting
var myColumnDefs = [
Added lightweight dashboard option. ref #500
r2936 {key:"name",label:"${_('Group name')}",sortable:true,
fixes #229 repo sorting is not working....
r1778 sortOptions: { sortFunction: groupNameSort }},
{key:"desc",label:"${_('Description')}",sortable:true},
];
var myDataSource = new YAHOO.util.DataSource(YUD.get("groups_list"));
White-space cleanup
r1888
fixes #229 repo sorting is not working....
r1778 myDataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
myDataSource.responseSchema = {
fields: [
{key:"name"},
{key:"desc"},
]
};
Added lightweight dashboard option. ref #500
r2936 var myDataTable = new YAHOO.widget.DataTable("groups_list_wrap", myColumnDefs, myDataSource,{
sortedBy:{key:"name",dir:"asc"},
paginator: new YAHOO.widget.Paginator({
fixes issues with groups paginator
r3155 rowsPerPage: 50,
Added lightweight dashboard option. ref #500
r2936 alwaysVisible: false,
template : "{PreviousPageLink} {FirstPageLink} {PageLinks} {LastPageLink} {NextPageLink}",
pageLinks: 5,
containerClass: 'pagination-wh',
currentPageClass: 'pager_curpage',
pageLinkClass: 'pager_link',
nextPageLinkLabel: '&gt;',
previousPageLinkLabel: '&lt;',
firstPageLinkLabel: '&lt;&lt;',
lastPageLinkLabel: '&gt;&gt;',
fixes issues with groups paginator
r3155 containers:['group-user-paginator']
whitespace cleanup
r2973 }),
Added lightweight dashboard option. ref #500
r2936 MSG_SORTASC:"${_('Click to sort ascending')}",
MSG_SORTDESC:"${_('Click to sort descending')}"
});
White-space cleanup
r1888
fixes #229 repo sorting is not working....
r1778 // 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,
Mads Kiilerich
html: don't use tabs
r3197 sortOptions: { sortFunction: revisionSort }},
fixes #229 repo sorting is not working....
r1778 {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"));
White-space cleanup
r1888
fixes #229 repo sorting is not working....
r1778 myDataSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
White-space cleanup
r1888
fixes #229 repo sorting is not working....
r1778 myDataSource.responseSchema = {
fields: [
{key:"menu"},
Added lightweight dashboard option. ref #500
r2936 //{key:"raw_name"},
fixes #229 repo sorting is not working....
r1778 {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,
{
Mads Kiilerich
html: don't use tabs
r3197 sortedBy:{key:"name",dir:"asc"},
fixes #229 repo sorting is not working....
r1778 MSG_SORTASC:"${_('Click to sort ascending')}",
Translations fixes for Data table
r1780 MSG_SORTDESC:"${_('Click to sort descending')}",
MSG_EMPTY:"${_('No records found.')}",
MSG_ERROR:"${_('Data error.')}",
White-space cleanup
r1888 MSG_LOADING:"${_('Loading...')}",
fixes #229 repo sorting is not working....
r1778 }
);
myDataTable.subscribe('postRenderEvent',function(oArgs) {
tooltip_activate();
Added sorting into journal and admin pages...
r1779 quick_repo_menu();
Use common function for generation of grid data...
r3154 var func = function(node){
return node.parentNode.parentNode.parentNode.parentNode;
whitespace cleanup
r3168 }
White-space cleanup
r1888 q_filter('q_filter',YUQ('div.table tr td a.repo_name'),func);
});
</script>
Added lightweight dashboard option. ref #500
r2936 % else:
<script>
var data = ${c.data|n};
var myDataSource = new YAHOO.util.DataSource(data);
myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
whitespace cleanup
r2973
Added lightweight dashboard option. ref #500
r2936 myDataSource.responseSchema = {
resultsList: "records",
fields: [
{key:"menu"},
{key:"raw_name"},
{key:"name"},
{key:"desc"},
Update last_change from VCS data on request....
r2937 {key:"last_change"},
Use common function for generation of grid data...
r3154 {key:"last_changeset"},
Added lightweight dashboard option. ref #500
r2936 {key:"owner"},
{key:"rss"},
{key:"atom"},
]
};
myDataSource.doBeforeCallback = function(req,raw,res,cb) {
// This is the filter function
var data = res.results || [],
filtered = [],
i,l;
whitespace cleanup
r2973
Added lightweight dashboard option. ref #500
r2936 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;
}
whitespace cleanup
r2973
Added lightweight dashboard option. ref #500
r2936 // 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},
Update last_change from VCS data on request....
r2937 {key:"last_change",label:"${_('Last Change')}",sortable:true,
sortOptions: { sortFunction: ageSort }},
Use common function for generation of grid data...
r3154 {key:"last_changeset",label:"${_('Tip')}",sortable:true,
white space cleanup
r3149 sortOptions: { sortFunction: revisionSort }},
Added lightweight dashboard option. ref #500
r2936 {key:"owner",label:"${_('Owner')}",sortable:true},
{key:"rss",label:"",sortable:false},
{key:"atom",label:"",sortable:false},
];
whitespace cleanup
r2973
Added lightweight dashboard option. ref #500
r2936 var myDataTable = new YAHOO.widget.DataTable("repos_list_wrap", myColumnDefs, myDataSource,{
sortedBy:{key:"name",dir:"asc"},
paginator: new YAHOO.widget.Paginator({
added option to ini file to define lightweight dashboard items per page before pagination
r3087 rowsPerPage: ${c.visual.lightweight_dashboard_items},
Added lightweight dashboard option. ref #500
r2936 alwaysVisible: false,
template : "{PreviousPageLink} {FirstPageLink} {PageLinks} {LastPageLink} {NextPageLink}",
pageLinks: 5,
containerClass: 'pagination-wh',
currentPageClass: 'pager_curpage',
pageLinkClass: 'pager_link',
nextPageLinkLabel: '&gt;',
previousPageLinkLabel: '&lt;',
firstPageLinkLabel: '&lt;&lt;',
lastPageLinkLabel: '&gt;&gt;',
containers:['user-paginator']
}),
whitespace cleanup
r2973
Added lightweight dashboard option. ref #500
r2936 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();
});
whitespace cleanup
r2973
Added lightweight dashboard option. ref #500
r2936 var filterTimeout = null;
whitespace cleanup
r2973
Added lightweight dashboard option. ref #500
r2936 updateFilter = function () {
// Reset timeout
filterTimeout = null;
whitespace cleanup
r2973
Added lightweight dashboard option. ref #500
r2936 // Reset sort
var state = myDataTable.getState();
Use common function for generation of grid data...
r3154 state.sortedBy = {key:'name', dir:YAHOO.widget.DataTable.CLASS_ASC};
whitespace cleanup
r2973
Added lightweight dashboard option. ref #500
r2936 // Get filtered data
myDataSource.sendRequest(YUD.get('q_filter').value,{
success : myDataTable.onDataReturnInitializeTable,
failure : myDataTable.onDataReturnInitializeTable,
scope : myDataTable,
argument: state
});
whitespace cleanup
r2973
Added lightweight dashboard option. ref #500
r2936 };
YUE.on('q_filter','click',function(){
Use common function for generation of grid data...
r3154 if(!YUD.hasClass('q_filter', 'loaded')){
YUD.get('q_filter').value = '';
//TODO: load here full list later to do search within groups
YUD.addClass('q_filter', 'loaded');
}
Added lightweight dashboard option. ref #500
r2936 });
whitespace cleanup
r2973
Added lightweight dashboard option. ref #500
r2936 YUE.on('q_filter','keyup',function (e) {
clearTimeout(filterTimeout);
filterTimeout = setTimeout(updateFilter,600);
});
</script>
% endif