Fix bug when resizing HTML table columns.
Monotone-Parent: ebecad29c1790b7953cfe00229ae3666abb9f896 Monotone-Revision: cff34552be80b43b382bf21a61aea5efb44ca8ab Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2009-06-08T19:24:28 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
parent
9c394ac8e6
commit
d4a8f3198f
|
@ -3,6 +3,7 @@
|
||||||
* Copyright (c) 2007 Andrew Tetlaw & Millstream Web Software
|
* Copyright (c) 2007 Andrew Tetlaw & Millstream Web Software
|
||||||
* http://www.millstream.com.au/view/code/tablekit/
|
* http://www.millstream.com.au/view/code/tablekit/
|
||||||
* Version: 1.3b 2008-03-23
|
* Version: 1.3b 2008-03-23
|
||||||
|
* Modified and improved by Inverse inc.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person
|
* Permission is hereby granted, free of charge, to any person
|
||||||
* obtaining a copy of this software and associated documentation
|
* obtaining a copy of this software and associated documentation
|
||||||
|
@ -342,7 +343,7 @@ TableKit.Sortable = {
|
||||||
if(TableKit.Resizable._onHandle) {return;}
|
if(TableKit.Resizable._onHandle) {return;}
|
||||||
e = TableKit.e(e);
|
e = TableKit.e(e);
|
||||||
Event.stop(e);
|
Event.stop(e);
|
||||||
var cell = Event.element(e);
|
var cell = e.element();
|
||||||
while(!(cell.tagName && cell.tagName.match(/td|th/gi))) {
|
while(!(cell.tagName && cell.tagName.match(/td|th/gi))) {
|
||||||
cell = cell.parentNode;
|
cell = cell.parentNode;
|
||||||
}
|
}
|
||||||
|
@ -616,7 +617,7 @@ TableKit.Resizable = {
|
||||||
TableKit.register(table,Object.extend(options || {},{resizable:true}));
|
TableKit.register(table,Object.extend(options || {},{resizable:true}));
|
||||||
var cells = TableKit.getHeaderCells(table);
|
var cells = TableKit.getHeaderCells(table);
|
||||||
cells.each(function(c){
|
cells.each(function(c){
|
||||||
c = $(c);
|
c = $(c);
|
||||||
Event.observe(c, 'mouseover', TableKit.Resizable.initDetect);
|
Event.observe(c, 'mouseover', TableKit.Resizable.initDetect);
|
||||||
Event.observe(c, 'mouseout', TableKit.Resizable.killDetect);
|
Event.observe(c, 'mouseout', TableKit.Resizable.killDetect);
|
||||||
});
|
});
|
||||||
|
@ -641,15 +642,15 @@ TableKit.Resizable = {
|
||||||
cell.setStyle({'width' : w + 'px'});
|
cell.setStyle({'width' : w + 'px'});
|
||||||
},
|
},
|
||||||
initDetect : function(e) {
|
initDetect : function(e) {
|
||||||
e = TableKit.e(e);
|
var cell = e.element();
|
||||||
var cell = Event.element(e);
|
if (cell.tagName != "TD") {return;}
|
||||||
Event.observe(cell, 'mousemove', TableKit.Resizable.detectHandle);
|
Event.observe(cell, 'mousemove', TableKit.Resizable.detectHandle);
|
||||||
Event.observe(cell, 'mousedown', TableKit.Resizable.startResize);
|
Event.observe(cell, 'mousedown', TableKit.Resizable.startResize);
|
||||||
},
|
},
|
||||||
detectHandle : function(e) {
|
detectHandle : function(e) {
|
||||||
e = TableKit.e(e);
|
e = TableKit.e(e);
|
||||||
var cell = Event.element(e);
|
var cell = e.element();
|
||||||
if(TableKit.Resizable.pointerPos(cell,Event.pointerX(e),Event.pointerY(e))){
|
if(TableKit.Resizable.pointerPos(cell,Event.pointerX(e),Event.pointerY(e))){
|
||||||
cell.addClassName(TableKit.option('resizeOnHandleClass', cell.up('table').id)[0]);
|
cell.addClassName(TableKit.option('resizeOnHandleClass', cell.up('table').id)[0]);
|
||||||
TableKit.Resizable._onHandle = true;
|
TableKit.Resizable._onHandle = true;
|
||||||
} else {
|
} else {
|
||||||
|
@ -658,17 +659,15 @@ TableKit.Resizable = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
killDetect : function(e) {
|
killDetect : function(e) {
|
||||||
e = TableKit.e(e);
|
|
||||||
TableKit.Resizable._onHandle = false;
|
TableKit.Resizable._onHandle = false;
|
||||||
var cell = Event.element(e);
|
var cell = e.element();
|
||||||
Event.stopObserving(cell, 'mousemove', TableKit.Resizable.detectHandle);
|
Event.stopObserving(cell, 'mousemove', TableKit.Resizable.detectHandle);
|
||||||
Event.stopObserving(cell, 'mousedown', TableKit.Resizable.startResize);
|
Event.stopObserving(cell, 'mousedown', TableKit.Resizable.startResize);
|
||||||
cell.removeClassName(TableKit.option('resizeOnHandleClass', cell.up('table').id)[0]);
|
cell.removeClassName(TableKit.option('resizeOnHandleClass', cell.up('table').id)[0]);
|
||||||
},
|
},
|
||||||
startResize : function(e) {
|
startResize : function(e) {
|
||||||
e = TableKit.e(e);
|
if(!TableKit.Resizable._onHandle) {return;}
|
||||||
if(!TableKit.Resizable._onHandle) {return;}
|
var cell = e.element();
|
||||||
var cell = Event.element(e);
|
|
||||||
Event.stopObserving(cell, 'mousemove', TableKit.Resizable.detectHandle);
|
Event.stopObserving(cell, 'mousemove', TableKit.Resizable.detectHandle);
|
||||||
Event.stopObserving(cell, 'mousedown', TableKit.Resizable.startResize);
|
Event.stopObserving(cell, 'mousedown', TableKit.Resizable.startResize);
|
||||||
Event.stopObserving(cell, 'mouseout', TableKit.Resizable.killDetect);
|
Event.stopObserving(cell, 'mouseout', TableKit.Resizable.killDetect);
|
||||||
|
@ -688,15 +687,16 @@ TableKit.Resizable = {
|
||||||
Event.stop(e);
|
Event.stop(e);
|
||||||
},
|
},
|
||||||
endResize : function(e) {
|
endResize : function(e) {
|
||||||
e = TableKit.e(e);
|
e = TableKit.e(e);
|
||||||
var cell = TableKit.Resizable._cell;
|
var cell = TableKit.Resizable._cell;
|
||||||
|
if (!cell) {return;}
|
||||||
TableKit.Resizable.resize(null, cell, (Event.pointerX(e) - cell.cumulativeOffset()[0]));
|
TableKit.Resizable.resize(null, cell, (Event.pointerX(e) - cell.cumulativeOffset()[0]));
|
||||||
Event.stopObserving(document, 'mousemove', TableKit.Resizable.drag);
|
Event.stopObserving(document, 'mousemove', TableKit.Resizable.drag);
|
||||||
Event.stopObserving(document, 'mouseup', TableKit.Resizable.endResize);
|
Event.stopObserving(document, 'mouseup', TableKit.Resizable.endResize);
|
||||||
if(TableKit.option('showHandle', TableKit.Resizable._tbl.id)[0]) {
|
if(TableKit.option('showHandle', TableKit.Resizable._tbl.id)[0]) {
|
||||||
$$('div.resize-handle').each(function(elm){
|
$$('div.resize-handle').each(function(elm){
|
||||||
document.body.removeChild(elm);
|
document.body.removeChild(elm);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Event.observe(cell, 'mouseout', TableKit.Resizable.killDetect);
|
Event.observe(cell, 'mouseout', TableKit.Resizable.killDetect);
|
||||||
TableKit.Resizable._tbl = TableKit.Resizable._handle = TableKit.Resizable._cell = null;
|
TableKit.Resizable._tbl = TableKit.Resizable._handle = TableKit.Resizable._cell = null;
|
||||||
|
|
Loading…
Reference in a new issue