svn commit: r906524 - in /ofbiz/trunk/framework: images/webapp/images/fieldlookup.js widget/dtd/widget-form.xsd

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r906524 - in /ofbiz/trunk/framework: images/webapp/images/fieldlookup.js widget/dtd/widget-form.xsd

jleroux@apache.org
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>