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>