##// END OF EJS Templates
Fixed issue with inproper handling of diff parsing that could lead to infinit loops....
Fixed issue with inproper handling of diff parsing that could lead to infinit loops. This was an edge case when diff contained diff data inside. Regresion test was added

File last commit:

r2973:9937afa7 beta
r3022:0ed42ca7 beta
Show More
index_base.html
331 lines | 13.0 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':
%if h.HasPermissionAny('hg.admin','hg.create.repository')():
<ul class="links">
<li>
#401 repository group is automatically pre-selected when adding repos inside a repository group
r2130 %if c.group:
<span>${h.link_to(_('ADD REPOSITORY'),h.url('admin_settings_create_repository',parent_group=c.group.group_id))}</span>
%else:
Implements #304...
r1770 <span>${h.link_to(_('ADD REPOSITORY'),h.url('admin_settings_create_repository'))}</span>
White space cleanup
r2150 %endif
White-space cleanup
r1888 </li>
</ul>
fixes #209, repos groups and index page now share same common page.
r1403 %endif
%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
White-space cleanup
r1888
fixes #229 repo sorting is not working....
r1778 </table>
</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};
one generic qfilter function.
r1653 var func = function(node){
fixes #229 repo sorting is not working....
r1778 return node.parentNode.parentNode.parentNode.parentNode;
one generic qfilter function.
r1653 }
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({
rowsPerPage: 5,
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')}"
});
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,
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"));
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,
{
Added lightweight dashboard option. ref #500
r2936 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();
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 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;
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"},
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 }},
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({
rowsPerPage: 15,
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();
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(){
YUD.get('q_filter').value = '';
});
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