Mercurial > kallithea
diff rhodecode/public/js/rhodecode.js @ 1778:defcf245f3e9 beta
fixes #229 repo sorting is not working.
- implemented repo sorting using YUI dataTable
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 16 Dec 2011 20:13:23 +0200 |
parents | c83d3d42ab92 |
children | 9edd6ac132f0 |
line wrap: on
line diff
--- a/rhodecode/public/js/rhodecode.js Sun Dec 11 00:52:37 2011 +0200 +++ b/rhodecode/public/js/rhodecode.js Fri Dec 16 20:13:23 2011 +0200 @@ -597,3 +597,82 @@ var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData); }; + + +/** + * TABLE SORTING + */ + +// returns a node from given html; +var fromHTML = function(html){ + var _html = document.createElement('element'); + _html.innerHTML = html; + return _html; +} +var get_rev = function(node){ + var n = node.firstElementChild.firstElementChild; + + if (n===null){ + return -1 + } + else{ + out = n.firstElementChild.innerHTML.split(':')[0].replace('r',''); + return parseInt(out); + } +} + +var get_name = function(node){ + var name = node.firstElementChild.children[2].innerHTML; + return name +} +var get_group_name = function(node){ + var name = node.firstElementChild.children[1].innerHTML; + return name +} +var revisionSort = function(a, b, desc, field) { + + var a_ = fromHTML(a.getData(field)); + var b_ = fromHTML(b.getData(field)); + + // extract revisions from string nodes + a_ = get_rev(a_) + b_ = get_rev(b_) + + var comp = YAHOO.util.Sort.compare; + var compState = comp(a_, b_, desc); + return compState; +}; +var ageSort = function(a, b, desc, field) { + var a_ = a.getData(field); + var b_ = b.getData(field); + + var comp = YAHOO.util.Sort.compare; + var compState = comp(a_, b_, desc); + return compState; +}; + +var nameSort = function(a, b, desc, field) { + var a_ = fromHTML(a.getData(field)); + var b_ = fromHTML(b.getData(field)); + + // extract name from table + a_ = get_name(a_) + b_ = get_name(b_) + + var comp = YAHOO.util.Sort.compare; + var compState = comp(a_, b_, desc); + return compState; +}; + +var groupNameSort = function(a, b, desc, field) { + var a_ = fromHTML(a.getData(field)); + var b_ = fromHTML(b.getData(field)); + + // extract name from table + a_ = get_group_name(a_) + b_ = get_group_name(b_) + + var comp = YAHOO.util.Sort.compare; + var compState = comp(a_, b_, desc); + return compState; +}; \ No newline at end of file