mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-08-09 08:25:03 +02:00
Fixed a lot of problems regarding centralized JavaScript code; et2_dataview_view_resizeable is current WIP; now building etemplate2 DOM-Tree to a DocumentFragment first, which brings a significant performance gain
This commit is contained in:
@ -16,7 +16,8 @@
|
||||
* This set of functions is currently only supporting resizing in ew-direction
|
||||
*/
|
||||
|
||||
(function() {
|
||||
(function ()
|
||||
{
|
||||
|
||||
// Define some constants
|
||||
var RESIZE_BORDER = 7;
|
||||
@ -31,14 +32,9 @@
|
||||
return (ol > (_elem.outerWidth(true) - RESIZE_BORDER));
|
||||
}
|
||||
|
||||
var helper = null;
|
||||
var overlay = null;
|
||||
var didResize = false;
|
||||
var resizeWidth = 0;
|
||||
|
||||
function startResize(_outerElem, _elem, _callback)
|
||||
{
|
||||
if (overlay == null || helper == null)
|
||||
if (this.overlay == null || this.helper == null)
|
||||
{
|
||||
// Prevent text selection
|
||||
_elem[0].onselectstart = function() {
|
||||
@ -46,11 +42,11 @@
|
||||
}
|
||||
|
||||
// Reset the "didResize" flag
|
||||
didResize = false;
|
||||
this.didResize = false;
|
||||
|
||||
// Create the resize helper
|
||||
var left = _elem.offset().left;
|
||||
helper = $j(document.createElement("div"))
|
||||
this.helper = $j(document.createElement("div"))
|
||||
.addClass("egwResizeHelper")
|
||||
.appendTo("body")
|
||||
.css("top", _elem.offset().top + "px")
|
||||
@ -58,7 +54,7 @@
|
||||
.css("height", _outerElem.outerHeight(true) + "px");
|
||||
|
||||
// Create the overlay which will be catching the mouse movements
|
||||
overlay = $j(document.createElement("div"))
|
||||
this.overlay = $j(document.createElement("div"))
|
||||
.addClass("egwResizeOverlay")
|
||||
|
||||
.bind("mousemove", function(e) {
|
||||
@ -69,7 +65,7 @@
|
||||
})
|
||||
|
||||
.bind("mouseup", function() {
|
||||
stopResize();
|
||||
stopResize.call();
|
||||
|
||||
// Reset text selection
|
||||
_elem[0].onselectstart = null;
|
||||
@ -99,7 +95,19 @@
|
||||
}
|
||||
}
|
||||
|
||||
this.et2_dataview_makeResizeable = function(_elem, _callback, _context)
|
||||
/**
|
||||
* Constructor of the et2_dataview_resizeable class. et2_dataview_resizeable
|
||||
* is instanciated for each dataview grid.
|
||||
*/
|
||||
function et2_dataview_resizeable(_body)
|
||||
{
|
||||
var helper = null;
|
||||
var overlay = null;
|
||||
var didResize = false;
|
||||
var resizeWidth = 0;
|
||||
}
|
||||
|
||||
et2_dataview_resizeable.prototype.makeResizeable = function(_elem, _callback, _context)
|
||||
{
|
||||
// Get the table surrounding the given element - this element is used to
|
||||
// align the helper properly
|
||||
@ -115,7 +123,7 @@
|
||||
if (inResizeRegion(e.clientX, _elem))
|
||||
{
|
||||
// Start the resizing
|
||||
startResize(outerTable, _elem, function(_w) {
|
||||
startResize.call(this, outerTable, _elem, function(_w) {
|
||||
_callback.call(_context, _w);
|
||||
});
|
||||
}
|
||||
@ -124,10 +132,15 @@
|
||||
});
|
||||
}
|
||||
|
||||
this.et2_dataview_resetResizeable = function(_elem)
|
||||
et2_dataview_resizeable.prototype.resetResizeable = function(_elem)
|
||||
{
|
||||
// Remove all events in the ".resize" namespace from the element
|
||||
_elem.unbind(".resize");
|
||||
}
|
||||
|
||||
// Publish the et2_dataview_resizeable class
|
||||
this.et2_dataview_resizeable = et2_dataview_resizeable;
|
||||
}
|
||||
|
||||
}).call(window);
|
||||
|
||||
|
Reference in New Issue
Block a user