Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var Sorter = Class.create({
- initialize: function(element,columns){
- this.table=element;
- this.des=new SortableTable(element,columns);
- this.asc= new SortableTableOne(element,columns);
- this.initDOMReferences();
- this.lastColumnOrder=null;
- },
- initDOMReferences: function(){
- this.handler = this.order.bind(this);
- var headerColumns = this.table.down('thead').childElements()[1].childElements();
- headerColumns.each(function(column,i){
- column._id = i+1;
- column._orderId = parseInt(((i+1)/2).toFixed(0))-1;
- });
- this.table.observe('click',this.handler);
- },
- order: function(e){
- var element = e.element();
- if('_id' in element){
- if (element.className.endsWith('up')){
- this.up(element);
- }else{
- this.down(element);
- }
- }
- },
- sortByIndex:function(index){
- var i = parseInt(((index)/2).toFixed(0))-1;
- if ((index%2) > 0){
- this.up(i);
- }else{
- this.down(i);
- }
- },
- up: function(column){
- if (this.shouldSort(column)){
- this.des.sort(column._orderId);
- this.toggle(this.lastColumnOrder);
- this.toggle(column);
- this.lastColumnOrder = column;
- }
- },
- down: function(column){
- downEvent++;
- if (this.shouldSort(column)){
- this.asc.sort(column._orderId);
- this.toggle(this.lastColumnOrder);
- this.toggle(column);
- this.lastColumnOrder = column;
- }
- },
- toggle: function(column){
- if(column != null){
- if (column.className.endsWith('up')){
- column.className = (column.className == "selectedup"?"up":"selectedup");
- }else{
- column.className = (column.className == "selecteddown"?"down":"selecteddown");
- }
- }
- },
- shouldSort: function(column){
- var value = false;
- if (this.lastColumnOrder == null){
- value=true;
- }else if ((this.lastColumnOrder._id != column._id)){
- value=true;
- }
- return value;
- }
- }); //Sorter Class
Add Comment
Please, Sign In to add comment