|
Author: jleroux
Date: Thu Feb 4 15:30:50 2010 New Revision: 906524 URL: http://svn.apache.org/viewvc?rev=906524&view=rev Log: A slightly modifief patch from Sascha Rodekamp "The positioning mechanism of the new lookups is only working with the bizznesstime theme" (https://issues.apache.org/jira/browse/OFBIZ-3430) - OFBIZ-3430 For the moment I only removed comments around an error which is useful. I guess Sascha was blocked by it during his tests and forgot to remove it. BTW I improved the error and one related (variables names explicit) I will certainly do a review on the format later to avoid both in the same commit (if any changes are needed anyway) Modified: ofbiz/trunk/framework/images/webapp/images/fieldlookup.js ofbiz/trunk/framework/widget/dtd/widget-form.xsd Modified: ofbiz/trunk/framework/images/webapp/images/fieldlookup.js URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/fieldlookup.js?rev=906524&r1=906523&r2=906524&view=diff ============================================================================== --- ofbiz/trunk/framework/images/webapp/images/fieldlookup.js (original) +++ ofbiz/trunk/framework/images/webapp/images/fieldlookup.js Thu Feb 4 15:30:50 2010 @@ -179,7 +179,7 @@ var FieldLookupPopup = Class.create({ initialize: function (target, viewName, lookupWidth, lookupHeight, position) { if (isEmpty(target) || isEmpty(viewName)) { - return lookup_error("Lookup can't be created, variables missing"); + return lookup_error("Lookup can't be created, one of these variables is missing" + target + viewName); } //removes a existing Lookup @@ -259,73 +259,95 @@ lookupDiv.style.display = "none"; //creates the div as child of the form element (parent --> input field; parentNode --> form) - var pn = parent.parentNode; - + this.pn = parent.parentNode; + + //set the layer position + this.setPosition(lookupDiv); + + this.divRef = lookupDiv; + + //make layer draggable + this.makeDraggable(lookupDiv); + + //make the window resiable + this.makeResizeable(lookupDiv); + }, + + loadContent: function (lookupDiv) { + new Ajax.Request(this.viewName, { + onSuccess: function (transport) { + var lookupContent = transport.responseText; + lookupDiv.insert({ + bottom: "<div id='fieldLookupContent'>" + lookupContent + "</div>" + }); + modifySubmitButton(); + } + }); + }, + + setPosition: function(lookupDiv){ //set layer position var bdy = document.body; if (this.position == "center") { bdy.appendChild(lookupDiv); var dimensions = lookupDiv.getDimensions(); lookupLeft = (bdy.offsetWidth / 2) - (dimensions.width / 2); - lookupTop = ((bdy.offsetHeight / 2) - (dimensions.height / 2)) + window.pageYOffset; + var scrollOffY = document.viewport.getScrollOffsets().top; + var winHeight = document.viewport.getHeight(); + lookupTop = (scrollOffY + winHeight/2) - (dimensions.height/2); lookupDiv.style.left = lookupLeft + "px"; lookupDiv.style.top = lookupTop + "px"; } else if (this.position == "right") { bdy.appendChild(lookupDiv); var dimensions = lookupDiv.getDimensions(); lookupLeft = (bdy.offsetWidth) - (dimensions.width + 5); - lookupTop = (bdy.offsetHeight / 2) - (dimensions.height / 2); + var scrollOffY = document.viewport.getScrollOffsets().top; + var winHeight = document.viewport.getHeight(); + lookupTop = (scrollOffY + winHeight/2) - (dimensions.height/2); lookupDiv.style.left = lookupLeft + "px"; lookupDiv.style.top = lookupTop + "px"; } else if (this.position == "left") { bdy.appendChild(lookupDiv); var dimensions = lookupDiv.getDimensions(); lookupLeft = 5; - lookupTop = (bdy.offsetHeight / 2) - (dimensions.height / 2); + var scrollOffY = document.viewport.getScrollOffsets().top; + var winHeight = document.viewport.getHeight(); + lookupTop = (scrollOffY + winHeight/2) - (dimensions.height/2); lookupDiv.style.left = lookupLeft + "px"; lookupDiv.style.top = lookupTop + "px"; } else if (this.position == "topright") { bdy.appendChild(lookupDiv); var dimensions = lookupDiv.getDimensions(); lookupLeft = (bdy.offsetWidth) - (dimensions.width + 5); - lookupTop = 5; + var scrollOffY = document.viewport.getScrollOffsets().top; + lookupTop = 5 + scrollOffY; lookupDiv.style.left = lookupLeft + "px"; lookupDiv.style.top = lookupTop + "px"; } else if (this.position == "topleft") { bdy.appendChild(lookupDiv); var dimensions = lookupDiv.getDimensions(); lookupLeft = 5; - lookupTop = 5; + var scrollOffY = document.viewport.getScrollOffsets().top; + lookupTop = 5 + scrollOffY; + lookupDiv.style.left = lookupLeft + "px"; + lookupDiv.style.top = lookupTop + "px"; + } else if (this.position == "topcenter") { + bdy.appendChild(lookupDiv); + var dimensions = lookupDiv.getDimensions(); + lookupLeft = (bdy.offsetWidth / 2) - (dimensions.width / 2); + var scrollOffY = document.viewport.getScrollOffsets().top; + lookupTop = 5 + scrollOffY; lookupDiv.style.left = lookupLeft + "px"; lookupDiv.style.top = lookupTop + "px"; - } else { + }else { //for 'normal', empty etc. - if (pn != null) { + if (this.pn != null) { // IE Fix - pn.appendChild(lookupDiv); + this.pn.appendChild(lookupDiv); } } - this.divRef = lookupDiv; - - //make layer draggable - this.makeDraggable(lookupDiv); - - //make the window resiable - this.makeResizeable(lookupDiv); }, - - loadContent: function (lookupDiv) { - new Ajax.Request(this.viewName, { - onSuccess: function (transport) { - var lookupContent = transport.responseText; - lookupDiv.insert({ - bottom: "<div id='fieldLookupContent'>" + lookupContent + "</div>" - }); - modifySubmitButton(); - } - }); - }, - + makeDraggable: function (lookupDiv) { this.loopupDrag = new Draggable(lookupDiv, { handle: 'fieldLookupHeader', revert: false, ghosting: false @@ -365,10 +387,11 @@ */ var FieldLookupPopup2 = Class.create({ initialize: function (target, target2, viewName, lookupWidth, lookupHeight, position) { + if (isEmpty(target) || isEmpty(target2) || isEmpty(viewName)) { - return lookup_error("Lookup can't be created, variables missing"); + return lookup_error("Lookup can't be created, one of these variables is missing" + target + target2 + viewName); } - + //removes a existing Lookup if (CURRENT_LOOKUP != null) { CURRENT_LOOKUP.removeLayer(); @@ -445,70 +468,93 @@ lookupDiv.style.display = "none"; //creates the div as child of the form element (parent --> input field; parentNode --> form) - var pn = parent.parentNode; - + this.pn = parent.parentNode; + + //set the layer position + this.setPosition(lookupDiv); + + this.divRef = lookupDiv; + + //make layer draggable + this.makeDraggable(lookupDiv); + + //make the window resiable + this.makeResizeable(lookupDiv); + }, + + loadContent: function (lookupDiv) { + new Ajax.Request(this.viewName, { + onSuccess: function (transport) { + var lookupContent = transport.responseText; + lookupDiv.insert({bottom: "<div id='fieldLookupContent'>" + lookupContent + "</div>"}); + modifySubmitButton(); + } + }); + }, + + setPosition: function(lookupDiv){ //set layer position var bdy = document.body; if (this.position == "center") { bdy.appendChild(lookupDiv); var dimensions = lookupDiv.getDimensions(); lookupLeft = (bdy.offsetWidth / 2) - (dimensions.width / 2); - lookupTop = ((bdy.offsetHeight / 2) - (dimensions.height / 2)) + window.pageYOffset; + var scrollOffY = document.viewport.getScrollOffsets().top; + var winHeight = document.viewport.getHeight(); + lookupTop = (scrollOffY + winHeight/2) - (dimensions.height/2); lookupDiv.style.left = lookupLeft + "px"; lookupDiv.style.top = lookupTop + "px"; } else if (this.position == "right") { bdy.appendChild(lookupDiv); var dimensions = lookupDiv.getDimensions(); lookupLeft = (bdy.offsetWidth) - (dimensions.width + 5); - lookupTop = (bdy.offsetHeight / 2) - (dimensions.height / 2); + var scrollOffY = document.viewport.getScrollOffsets().top; + var winHeight = document.viewport.getHeight(); + lookupTop = (scrollOffY + winHeight/2) - (dimensions.height/2); lookupDiv.style.left = lookupLeft + "px"; lookupDiv.style.top = lookupTop + "px"; } else if (this.position == "left") { bdy.appendChild(lookupDiv); var dimensions = lookupDiv.getDimensions(); lookupLeft = 5; - lookupTop = (bdy.offsetHeight / 2) - (dimensions.height / 2); + var scrollOffY = document.viewport.getScrollOffsets().top; + var winHeight = document.viewport.getHeight(); + lookupTop = (scrollOffY + winHeight/2) - (dimensions.height/2); lookupDiv.style.left = lookupLeft + "px"; lookupDiv.style.top = lookupTop + "px"; } else if (this.position == "topright") { bdy.appendChild(lookupDiv); var dimensions = lookupDiv.getDimensions(); lookupLeft = (bdy.offsetWidth) - (dimensions.width + 5); - lookupTop = 5; + var scrollOffY = document.viewport.getScrollOffsets().top; + lookupTop = 5 + scrollOffY; lookupDiv.style.left = lookupLeft + "px"; lookupDiv.style.top = lookupTop + "px"; } else if (this.position == "topleft") { bdy.appendChild(lookupDiv); var dimensions = lookupDiv.getDimensions(); lookupLeft = 5; - lookupTop = 5; + var scrollOffY = document.viewport.getScrollOffsets().top; + lookupTop = 5 + scrollOffY; lookupDiv.style.left = lookupLeft + "px"; lookupDiv.style.top = lookupTop + "px"; - } else { + } else if (this.position == "topcenter") { + bdy.appendChild(lookupDiv); + var dimensions = lookupDiv.getDimensions(); + lookupLeft = (bdy.offsetWidth / 2) - (dimensions.width / 2); + var scrollOffY = document.viewport.getScrollOffsets().top; + lookupTop = 5 + scrollOffY; + lookupDiv.style.left = lookupLeft + "px"; + lookupDiv.style.top = lookupTop + "px"; + }else { //for 'normal', empty etc. - if(pn != null){ // IE Fix - pn.appendChild(lookupDiv); + if (this.pn != null) { + // IE Fix + this.pn.appendChild(lookupDiv); } } - this.divRef = lookupDiv; - - //make layer draggable - this.makeDraggable(lookupDiv); - - //make the window resiable - this.makeResizeable(lookupDiv); }, - - loadContent: function (lookupDiv) { - new Ajax.Request(this.viewName, { - onSuccess: function (transport) { - var lookupContent = transport.responseText; - lookupDiv.insert({bottom: "<div id='fieldLookupContent'>" + lookupContent + "</div>"}); - modifySubmitButton(); - } - }); - }, - + makeDraggable: function (lookupDiv) { this.loopupDrag = new Draggable(lookupDiv, { handle: 'fieldLookupHeader', revert: false, ghosting: false Modified: ofbiz/trunk/framework/widget/dtd/widget-form.xsd URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/dtd/widget-form.xsd?rev=906524&r1=906523&r2=906524&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/dtd/widget-form.xsd (original) +++ ofbiz/trunk/framework/widget/dtd/widget-form.xsd Thu Feb 4 15:30:50 2010 @@ -928,6 +928,7 @@ <xs:enumeration value="right"/> <xs:enumeration value="topleft"/> <xs:enumeration value="topright"/> + <xs:enumeration value="topcenter"/> </xs:restriction> </xs:simpleType> </xs:attribute> |
| Free forum by Nabble | Edit this page |
