svn commit: r904922 - in /ofbiz/trunk/framework: images/webapp/images/fieldlookup.js widget/templates/htmlFormMacroLibrary.ftl

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

svn commit: r904922 - in /ofbiz/trunk/framework: images/webapp/images/fieldlookup.js widget/templates/htmlFormMacroLibrary.ftl

jleroux@apache.org
Author: jleroux
Date: Sun Jan 31 00:09:53 2010
New Revision: 904922

URL: http://svn.apache.org/viewvc?rev=904922&view=rev
Log:
Fix an issue when using the layer lookup with a fieldLookup3 style lookup (ie a lookup which shows name but uses and Id underneath).
This last fix allow to use the layer lookup in any cases already covert by OFBiz

Modified:
    ofbiz/trunk/framework/images/webapp/images/fieldlookup.js
    ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl

Modified: ofbiz/trunk/framework/images/webapp/images/fieldlookup.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/fieldlookup.js?rev=904922&r1=904921&r2=904922&view=diff
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/fieldlookup.js (original)
+++ ofbiz/trunk/framework/images/webapp/images/fieldlookup.js Sun Jan 31 00:09:53 2010
@@ -1,66 +1,80 @@
 /*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
 
 // ================= FIELD LOOKUP METHODS ============================
-var NS4 = (navigator.appName.indexOf("Netscape")>=0 && !document.getElementById)? true : false;
-var IE4 = (document.all && !document.getElementById)? true : false;
-var IE5 = (document.getElementById && document.all)? true : false;
-var NS6 = (document.getElementById && navigator.appName.indexOf("Netscape")>=0 )? true: false;
+var NS4 = (navigator.appName.indexOf("Netscape") >= 0 && ! document.getElementById)? true: false;
+var IE4 = (document.all && ! document.getElementById)? true: false;
+var IE5 = (document.getElementById && document.all)? true: false;
+var NS6 = (document.getElementById && navigator.appName.indexOf("Netscape") >= 0)? true: false;
 var mx, my;
 var CURRENT_LOOKUP = null;
 
 function moveobj(evt) {
     if (NS4 || NS6) {
-    mx=evt.screenX;
-        my=evt.screenY;
+        mx = evt.screenX;
+        my = evt.screenY;
     } else if (IE5 || IE4) {
-        mx=event.screenX;
-        my=event.screenY;
+        mx = event.screenX;
+        my = event.screenY;
     }
 }
 
 var target = null;
 var target2 = null;
-var lookups = [];
+var lookups =[];
 
-function call_fieldlookup(target, viewName, formName,viewWidth,viewheight) {
+function call_fieldlookup(target, viewName, formName, viewWidth, viewheight) {
     var fieldLookup = new fieldLookup1(target);
     if (! viewWidth) viewWidth = 350;
     if (! viewheight) viewheight = 200;
     fieldLookup.popup(viewName, formName, viewWidth, viewheight);
 }
 function call_fieldlookupLayer(target, viewName, lookupWidth, lookupHeight, lookupPosition) {
-    if(CURRENT_LOOKUP != null){
-        if(CURRENT_LOOKUP.parentTarget == target){
+    if (CURRENT_LOOKUP != null) {
+        if (CURRENT_LOOKUP.parentTarget == target) {
             CURRENT_LOOKUP.closeLookup();
             return;
         }
     }
-
     var fieldLookupPopup = new FieldLookupPopup(target, viewName, lookupWidth, lookupHeight, lookupPosition);
     fieldLookupPopup.showLookup();
     this.target = target;
 }
+
+function call_fieldlookupLayer3(target, target2, viewName, lookupWidth, lookupHeight, lookupPosition) {
+    if (CURRENT_LOOKUP != null) {
+        if (CURRENT_LOOKUP.parentTarget == target) {
+            CURRENT_LOOKUP.closeLookup();
+            return;
+        }
+    }
+    var fieldLookupPopup2 = new FieldLookupPopup2(target, target2, viewName, lookupWidth, lookupHeight, lookupPosition);
+    fieldLookupPopup2.showLookup();
+    this.target = target;
+    this.target2 = target2;
+}
+
 function call_fieldlookup2(target, viewName) {
     var fieldLookup = new fieldLookup1(target, arguments);
     fieldLookup.popup2(viewName);
 }
+
 function call_fieldlookup3(target, target2, viewName) {
     var fieldLookup = new fieldLookup2(target, target2);
     fieldLookup.popup2(viewName);
@@ -71,53 +85,53 @@
     // passing methods
     this.popup = lookup_popup1;
     this.popup2 = lookup_popup2;
-
+    
     // validate input parameters
-    if (!obj_target)
-        return lookup_error("Error calling the field lookup: no target control specified");
+    if (! obj_target)
+    return lookup_error("Error calling the field lookup: no target control specified");
     if (obj_target.value == null)
-        return lookup_error("Error calling the field lookup: parameter specified is not valid target control");
+    return lookup_error("Error calling the field lookup: parameter specified is not valid target control");
     //this.target = obj_target;
     target = obj_target;
-
+    
     // register in global collections
     //this.id = lookups.length;
     //lookups[this.id] = this;
 }
 function fieldLookup2(obj_target, obj_target2) {
     // passing methods
-    this.popup    = lookup_popup1;
-    this.popup2    = lookup_popup2;
+    this.popup = lookup_popup1;
+    this.popup2 = lookup_popup2;
     // validate input parameters
-    if (!obj_target)
-        return lookup_error("Error calling the field lookup: no target control specified");
+    if (! obj_target)
+    return lookup_error("Error calling the field lookup: no target control specified");
     if (obj_target.value == null)
-        return lookup_error("Error calling the field lookup: parameter specified is not valid target control");
+    return lookup_error("Error calling the field lookup: parameter specified is not valid target control");
     target = obj_target;
     // validate input parameters
-    if (!obj_target2)
-        return lookup_error("Error calling the field lookup: no target2 control specified");
+    if (! obj_target2)
+    return lookup_error("Error calling the field lookup: no target2 control specified");
     if (obj_target2.value == null)
-        return lookup_error("Error calling the field lookup: parameter specified is not valid target2 control");
+    return lookup_error("Error calling the field lookup: parameter specified is not valid target2 control");
     target2 = obj_target2;
-
-
+    
+    
     // register in global collections
     //this.id = lookups.length;
     //lookups[this.id] = this;
 }
 
-function lookup_popup1 (view_name, form_name, viewWidth, viewheight) {
-    var obj_lookupwindow = window.open(view_name + '?formName=' + form_name + '&id=' + this.id,'_blank', 'width='+viewWidth+',height='+viewheight+',scrollbars=yes,status=no,resizable=yes,top='+my+',left='+mx+',dependent=yes,alwaysRaised=yes');
+function lookup_popup1(view_name, form_name, viewWidth, viewheight) {
+    var obj_lookupwindow = window.open(view_name + '?formName=' + form_name + '&id=' + this.id, '_blank', 'width=' + viewWidth + ',height=' + viewheight + ',scrollbars=yes,status=no,resizable=yes,top=' + my + ',left=' + mx + ',dependent=yes,alwaysRaised=yes');
     obj_lookupwindow.opener = window;
     obj_lookupwindow.focus();
 }
-function lookup_popup2 (view_name) {
+function lookup_popup2(view_name) {
     var argString = "";
     if (this.args != null) {
         if (this.args.length > 2) {
-            for(var i=2; i < this.args.length; i++) {
-                argString += "&parm" + (i-2) + "=" + this.args[i];
+            for (var i = 2; i < this.args.length; i++) {
+                argString += "&parm" + (i - 2) + "=" + this.args[i];
             }
         }
     }
@@ -125,418 +139,614 @@
     if (view_name.indexOf("?") >= 0) {
         sep = "&";
     }
-    var obj_lookupwindow = window.open(view_name + sep + 'id=' + this.id + argString,'_blank', 'width=700,height=550,scrollbars=yes,status=no,resizable=yes,top='+my+',left='+mx+',dependent=yes,alwaysRaised=yes');
+    var obj_lookupwindow = window.open(view_name + sep + 'id=' + this.id + argString, '_blank', 'width=700,height=550,scrollbars=yes,status=no,resizable=yes,top=' + my + ',left=' + mx + ',dependent=yes,alwaysRaised=yes');
     obj_lookupwindow.opener = window;
     obj_lookupwindow.focus();
 }
-function lookup_error (str_message) {
-    alert (str_message);
+function lookup_error(str_message) {
+    alert(str_message);
     return null;
 }
 
 /*************************************
- * Fieldlookup Class & Methods
- *************************************/
+* Fieldlookup Class & Methods
+*************************************/
 
 //init KeyListener
-window.onload=function(){
+window.onload = function () {
     //Observe
     Event.observe(document, "keypress", key_event);
 }
 
 //if ESC is pressed, remove draged portlet + hoverDiv
-function key_event(evt)
-{
-    if(evt.keyCode == 27)  {
+function key_event(evt) {
+    if (evt.keyCode == 27) {
         //removes the hover div after the portlet is moved to another position
-        if(CURRENT_LOOKUP != null){
+        if (CURRENT_LOOKUP != null) {
             lookupHide();
         }
     }
 }
 
 /**
- * Class to create a lookup layer
- * target - target where the value should be passed
- * viewName - view name which will be opened
- * lookupWidth - layer width i.e. 500px, 27% ... [default: 700px]
- * lookupHeight - layer height i.e. 500px, 27% ... [default: 550px]
- * position - normal (under the target field), center (layer is centered) [default: normal] -- !work still in process
- */
+* Class to create a lookup layer
+* target - target where the value should be passed
+* viewName - view name which will be opened
+* lookupWidth - layer width i.e. 500px, 27% ... [default: 700px]
+* lookupHeight - layer height i.e. 500px, 27% ... [default: 550px]
+* position - normal (under the target field), center (layer is centered) [default: normal] -- !work still in process
+*/
 var FieldLookupPopup = Class.create({
-    initialize: function(target, viewName, lookupWidth, lookupHeight, position){
-        if(isEmpty(target) || isEmpty(viewName)){
-            return lookup_error("Lookup can't created, variabels missing");
+    initialize: function (target, viewName, lookupWidth, lookupHeight, position) {
+        if (isEmpty(target) || isEmpty(viewName)) {
+            return lookup_error("Lookup can't be created, variables missing");
         }
-
+        
         //removes a existing Lookup
-        if(CURRENT_LOOKUP != null){
+        if (CURRENT_LOOKUP != null) {
             CURRENT_LOOKUP.removeLayer();
         }
-
-
-        if(isEmpty(lookupWidth)){
+        
+        
+        if (isEmpty(lookupWidth)) {
             lookupWidth = '700px';
         }
         this.lookupWidth = lookupWidth;
-
-        if(isEmpty(lookupHeight)){
+        
+        if (isEmpty(lookupHeight)) {
             lookupHeight = '550px';
         }
         this.lookupHeight = lookupHeight;
-
+        
         this.parentTarget = target;
         this.viewName = viewName;
         this.position = position;
-
+        
         this.createElement();
         CURRENT_LOOKUP = this;
     },
-
-    showLookup: function(){
-        if($('fieldLookup') != null){
-            Effect.Appear('fieldLookup',{duration: 0.3});
+    
+    showLookup: function () {
+        if ($('fieldLookup') != null) {
+            Effect.Appear('fieldLookup', {duration: 0.3});
         }
     },
-
-    closeLookup: function(){
-        if($('fieldLookup') != null){
-            Effect.Fade('fieldLookup',{duration: 0.3});
+    
+    closeLookup: function () {
+        if ($('fieldLookup') != null) {
+            Effect.Fade('fieldLookup', {duration: 0.3});
         }
         // removes the layer after fading
         window.setTimeout('CURRENT_LOOKUP.removeLayer()', 400);
-
-
     },
-
-    createElement: function(){
+    
+    createElement: function () {
         var parent = this.parentTarget;
+        
+        //creates the lookup dom element
+        var lookupDiv = new Element('DIV', {
+            id: "fieldLookup",
+            style: "width: " + this.lookupWidth + "; height: " + this.lookupHeight + ""
+        });
+        lookupDiv.setAttribute("class", "fieldLookup");
+        lookupDiv.setAttribute("className", "fieldLookup");
+        //IE7 Hack
+        
+        //creates lookupHeader
+        var headerDiv = new Element('DIV', {
+            id: "fieldLookupHeader"
+        });
+        headerDiv.setAttribute("class", "fieldLookupHeader");
+        headerDiv.setAttribute("className", "fieldLookupHeader");
+        // IE 7 Hack
+        
+        //create close Button
+        var closeButton = new Element('SPAN', {
+        });
+        var closeButtonImg = new Element('DIV', {
+            onClick: "lookupHide()"
+        });
+        closeButtonImg.onclick = function () {
+            lookupHide();
+        };
+        
+        closeButton.appendChild(closeButtonImg);
+        headerDiv.appendChild(closeButton);
+        lookupDiv.appendChild(headerDiv);
+        
+        //get the lookup from an anjax request
+        this.loadContent(lookupDiv);
+        
+        lookupDiv.style.display = "none";
+        //creates the div as child of the form element (parent --> input field; parentNode --> form)
+        var pn = parent.parentNode;
+        
+        //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;
+            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);
+            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);
+            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;
+            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;
+            lookupDiv.style.left = lookupLeft + "px";
+            lookupDiv.style.top = lookupTop + "px";
+        } else {
+            //for 'normal', empty etc.
+            if (pn != null) {
+                // IE Fix
+                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
+        });
+    },
+    
+    makeResizeable: function (lookupDiv) {
+        new Resizeable(lookupDiv, {
+            top: 0,
+            left: 50,
+            resize: function (el) {
+                $('fieldLookupContent').setStyle({
+                    width: "100%",
+                    height: "90%"
+                });
+            }
+        });
+    },
+    
+    removeLayer: function () {
+        this.loopupDrag.destroy();
+        Element.stopObserving(document, "keypress");
+        CURRENT_LOOKUP.divRef.parentNode.removeChild(CURRENT_LOOKUP.divRef);
+        CURRENT_LOOKUP = null;
+        this.target = null;
+    }
+});
 
+/**
+* Class to create a lookup layer
+* target - target where the 1st value should be passed
+* target2 - target2 where the 2d value should be passed
+* viewName - view name which will be opened
+* lookupWidth - layer width i.e. 500px, 27% ... [default: 700px]
+* lookupHeight - layer height i.e. 500px, 27% ... [default: 550px]
+* position - normal (under the target field), center (layer is centered) [default: normal] -- !work still in process
+*/
+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");
+        }
+        
+        //removes a existing Lookup
+        if (CURRENT_LOOKUP != null) {
+            CURRENT_LOOKUP.removeLayer();
+        }
+        
+        
+        if (isEmpty(lookupWidth)) {
+            lookupWidth = '700px';
+        }
+        this.lookupWidth = lookupWidth;
+        
+        if (isEmpty(lookupHeight)) {
+            lookupHeight = '550px';
+        }
+        this.lookupHeight = lookupHeight;
+        
+        this.parentTarget = target;
+        this.parentTarget2 = target2;
+        this.viewName = viewName;
+        this.position = position;
+        
+        this.createElement();
+        CURRENT_LOOKUP = this;
+    },
+    
+    showLookup: function () {
+        if ($('fieldLookup') != null) {
+            Effect.Appear('fieldLookup', {duration: 0.3});
+        }
+    },
+    
+    closeLookup: function () {
+        if ($('fieldLookup') != null) {
+            Effect.Fade('fieldLookup', {duration: 0.3});
+        }
+        // removes the layer after fading
+        window.setTimeout('CURRENT_LOOKUP.removeLayer()', 400);
+    },
+    
+    createElement: function () {
+        var parent = this.parentTarget;
+        var parent2 = this.parentTarget2;
+        
         //creates the lookup dom element
         var lookupDiv = new Element('DIV', {
             id: "fieldLookup",
             style: "width: " + this.lookupWidth + "; height: " + this.lookupHeight + ""
-            });
+        });
         lookupDiv.setAttribute("class", "fieldLookup");
         lookupDiv.setAttribute("className", "fieldLookup"); //IE7 Hack
-
+        
         //creates lookupHeader
         var headerDiv = new Element('DIV', {
             id: "fieldLookupHeader"
-            });
+        });
         headerDiv.setAttribute("class", "fieldLookupHeader");
         headerDiv.setAttribute("className", "fieldLookupHeader"); // IE 7 Hack
-
+        
         //create close Button
         var closeButton = new Element('SPAN', {});
         var closeButtonImg = new Element('DIV', {
             onClick: "lookupHide()"
-            });
-        closeButtonImg.onclick = function(){ lookupHide(); };
-
+        });
+        closeButtonImg.onclick = function () {
+            lookupHide();
+        };
+        
         closeButton.appendChild(closeButtonImg);
         headerDiv.appendChild(closeButton);
         lookupDiv.appendChild(headerDiv);
-
+        
         //get the lookup from an anjax request
         this.loadContent(lookupDiv);
-
+        
         lookupDiv.style.display = "none";
         //creates the div as child of the form element (parent --> input field; parentNode --> form)
         var pn = parent.parentNode;
-
+        
         //set layer position
         var bdy = document.body;
-        if(this.position == "center"){
+        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;
+            lookupLeft = (bdy.offsetWidth / 2) - (dimensions.width / 2);
+            lookupTop = ((bdy.offsetHeight / 2) - (dimensions.height / 2)) + window.pageYOffset;
             lookupDiv.style.left = lookupLeft + "px";
             lookupDiv.style.top = lookupTop + "px";
-
-        }else if(this.position == "right"){
+        } 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);
+            lookupTop = (bdy.offsetHeight / 2) - (dimensions.height / 2);
             lookupDiv.style.left = lookupLeft + "px";
             lookupDiv.style.top = lookupTop + "px";
-
-        }else if(this.position == "left"){
+        } else if (this.position == "left") {
             bdy.appendChild(lookupDiv);
             var dimensions = lookupDiv.getDimensions();
             lookupLeft = 5;
-            lookupTop = (bdy.offsetHeight/2) - (dimensions.height/2);
+            lookupTop = (bdy.offsetHeight / 2) - (dimensions.height / 2);
             lookupDiv.style.left = lookupLeft + "px";
             lookupDiv.style.top = lookupTop + "px";
-
-        }else if(this.position == "topright"){
+        } else if (this.position == "topright") {
             bdy.appendChild(lookupDiv);
             var dimensions = lookupDiv.getDimensions();
             lookupLeft = (bdy.offsetWidth) - (dimensions.width + 5);
             lookupTop = 5;
             lookupDiv.style.left = lookupLeft + "px";
             lookupDiv.style.top = lookupTop + "px";
-
-        }else if(this.position == "topleft"){
+        } else if (this.position == "topleft") {
             bdy.appendChild(lookupDiv);
             var dimensions = lookupDiv.getDimensions();
             lookupLeft = 5;
             lookupTop = 5;
             lookupDiv.style.left = lookupLeft + "px";
             lookupDiv.style.top = lookupTop + "px";
-
-        }else{
+        } else {
             //for 'normal', empty etc.
             if(pn != null){ // IE Fix
                 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){
+    
+    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}
-                );
+    
+    makeDraggable: function (lookupDiv) {
+        this.loopupDrag = new Draggable(lookupDiv, {
+            handle: 'fieldLookupHeader', revert: false, ghosting: false
+        });
     },
-
-    makeResizeable: function(lookupDiv){
-        new Resizeable(lookupDiv,
-                {top: 0,
-                left: 50,
-                resize: function(el){
-                    $('fieldLookupContent').setStyle({
-                        width: "100%",
-                        height: "90%"
-                    });
-                }
-            });
+    
+    makeResizeable: function (lookupDiv) {
+        new Resizeable(lookupDiv, {
+            top: 0,
+            left: 50,
+            resize: function (el) {
+                $('fieldLookupContent').setStyle({
+                    width: "100%",
+                    height: "90%"
+                });
+            }
+        });
     },
-
-    removeLayer: function(){
-         this.loopupDrag.destroy();
-         Element.stopObserving(document, "keypress");
-         CURRENT_LOOKUP.divRef.parentNode.removeChild(CURRENT_LOOKUP.divRef);
-         CURRENT_LOOKUP = null;
-         this.target = null;
+    
+    removeLayer: function () {
+        this.loopupDrag.destroy();
+        Element.stopObserving(document, "keypress");
+        CURRENT_LOOKUP.divRef.parentNode.removeChild(CURRENT_LOOKUP.divRef);
+        CURRENT_LOOKUP = null;
+        this.target = null;
+        this.target2 = null;
     }
-
 });
 
-function lookupHide(){
-    if(CURRENT_LOOKUP != null){
+function lookupHide() {
+    if (CURRENT_LOOKUP != null) {
         CURRENT_LOOKUP.closeLookup();
     }
 }
 
 /**
- * returns true if a Stirng is empty
- * @param value - String value
- * @return
- */
-function isEmpty(value){
-    if(value == null || value == ""){
+* returns true if a Stirng is empty
+* @param value - String value
+* @return
+*/
+function isEmpty(value) {
+    if (value == null || value == "") {
         return true;
     }
     return false;
 }
 
 /**
- * Modify the Submit Button for the new lookup layer
- * @return
- */
-function modifySubmitButton(){
+* Modify the Submit Button for the new lookup layer
+* @return
+*/
+function modifySubmitButton() {
     /* changes form/submit behavior for Lookup Layer */
-    if($('fieldLookup')) {
-         //find the lookup form
-         var forms = $('fieldLookup').getElementsByTagName('form');
-         for(var i =0; i<forms.length; i++){
-             if(!isEmpty(forms[i].getAttribute('id'))){
-                 var lookupForm = $(forms[i].getAttribute('id'));
-             }
-         }
-
-         //diable the form action
-         var formAction = lookupForm.getAttribute('action');
-         lookupForm.setAttribute('action','');
-
-         //modify the form submit button
-         for (var i=0;i<lookupForm.length;i++) {
-             var ele = lookupForm.elements[i];
-             if ((ele.getAttribute('type')) == "submit") {
-               ele.style.display = "none";
-               var txt = ele.value;
-                  var submit = new Element('A',{
-
-                  });
-                  submit.onclick = function(){
-                                                  lookupFormAjaxRequest(formAction, lookupForm.getAttribute('id'));return false;
-                                               };
-                  submit.setAttribute("class", "smallSubmit");
+    if ($('fieldLookup')) {
+        //find the lookup form
+        var forms = $('fieldLookup').getElementsByTagName('form');
+        for (var i = 0; i < forms.length; i++) {
+            if (! isEmpty(forms[i].getAttribute('id'))) {
+                var lookupForm = $(forms[i].getAttribute('id'));
+            }
+        }
+        
+        //diable the form action
+        var formAction = lookupForm.getAttribute('action');
+        lookupForm.setAttribute('action', '');
+        
+        //modify the form submit button
+        for (var i = 0; i < lookupForm.length; i++) {
+            var ele = lookupForm.elements[i];
+            if ((ele.getAttribute('type')) == "submit") {
+                ele.style.display = "none";
+                var txt = ele.value;
+                var submit = new Element('A', {
+                });
+                submit.onclick = function () {
+                    lookupFormAjaxRequest(formAction, lookupForm.getAttribute('id'));
+                    return false;
+                };
+                submit.setAttribute("class", "smallSubmit");
                   submit.setAttribute("className", "smallSubmit"); // IE 7 Hack
-                  submit.href = "";
-
-                  var textNode = document.createTextNode(txt);
-                  submit.appendChild(textNode);
-                  ele.parentNode.appendChild(submit);
-                  Event.observe(document, "keypress", function(evt){if(Event.KEY_RETURN == evt.keyCode){lookupFormAjaxRequest(formAction, lookupForm.getAttribute('id'));}});
-                  ele.parentNode.removeChild(ele);
-                  //modifay nav-pager
-                  var navPager = $('fieldLookup').getElementsByClassName("nav-pager");
-                  if(navPager.length > 0){
-
-                      for (var j=0;j<navPager.length;j++) {
-                          var eleChild = navPager[j].getElementsByTagName("ul")[0].getElementsByTagName("li");
-                          for (var k=0;k<eleChild.length;k++) {
-                              var link = eleChild[k].getElementsByTagName("A");
-                              var select = eleChild[k].getElementsByTagName("SELECT");
-
-                              if(link.length > 0){
-                                  link[0].href = "javascript:lookupPaginationAjaxRequest('" + link[0].href + "', '" + lookupForm.getAttribute('id') + "', 'link')";
-                              }else if(select.length > 0){
-                                  try{
-                                      var oc = select[0].getAttribute("onchange");
+                submit.href = "";
+                
+                var textNode = document.createTextNode(txt);
+                submit.appendChild(textNode);
+                ele.parentNode.appendChild(submit);
+                Event.observe(document, "keypress", function (evt) {
+                    if (Event.KEY_RETURN == evt.keyCode) {
+                        lookupFormAjaxRequest(formAction, lookupForm.getAttribute('id'));
+                    }
+                });
+                ele.parentNode.removeChild(ele);
+                //modifay nav-pager
+                var navPager = $('fieldLookup').getElementsByClassName("nav-pager");
+                if (navPager.length > 0) {
+                    
+                    for (var j = 0; j < navPager.length; j++) {
+                        var eleChild = navPager[j].getElementsByTagName("ul")[0].getElementsByTagName("li");
+                        for (var k = 0; k < eleChild.length; k++) {
+                            var link = eleChild[k].getElementsByTagName("A");
+                            var select = eleChild[k].getElementsByTagName("SELECT");
+                            
+                            if (link.length > 0) {
+                                link[0].href = "javascript:lookupPaginationAjaxRequest('" + link[0].href + "', '" + lookupForm.getAttribute('id') + "', 'link')";
+                            } else if (select.length > 0) {
+                                try {
+                                    var oc = select[0].getAttribute("onchange");
                                       if((typeof oc) == "function"){ // IE6/7 Fix
-                                          oc = oc.toString();
-                                          var ocSub = oc.substring((oc.indexOf('=')+2),(oc.length - 4));
-                                          var searchPattern = /'\+this.value\+'/g;
-                                          var searchPattern2 = /'\+this.valu/g;
-
-                                          if(searchPattern.test(ocSub)){
-                                              var viewSize = select[0].value;
-                                              var spl = ocSub.split(searchPattern);
-                                              select[0].onchange = function(){lookupPaginationAjaxRequest(spl[0] + this.value + spl[1], lookupForm.getAttribute('id'), 'select');};
-                                          }else if(searchPattern2.test(ocSub)){
-                                              ocSub = ocSub.replace(searchPattern2, "");
-                                              if(searchPattern.test(ocSub)){
-                                                  ocSub.replace(searchPattern, viewSize);
-                                              }
-                                              select[0].onchange = function(){lookupPaginationAjaxRequest(ocSub + this.value, lookupForm.getAttribute('id'), 'select');};
-                                          }
-                                      }else{
-                                          var ocSub = oc.substring((oc.indexOf('=')+1),(oc.length - 1));
-                                          select[0].setAttribute("onchange", "lookupPaginationAjaxRequest(" + ocSub + ", '" + lookupForm.getAttribute('id') + "')");
-                                      }
-                                  }catch(ex){}
-                              }
-                          }
-                      }
-
-                  }
-
+                                        oc = oc.toString();
+                                        var ocSub = oc.substring((oc.indexOf('=') + 2),(oc.length - 4));
+                                        var searchPattern = /'\+this.value\+'/g;
+                                        var searchPattern2 = /'\+this.valu/g;
+                                        
+                                        if (searchPattern.test(ocSub)) {
+                                            var viewSize = select[0].value;
+                                            var spl = ocSub.split(searchPattern);
+                                            select[0].onchange = function () {
+                                                lookupPaginationAjaxRequest(spl[0] + this.value + spl[1], lookupForm.getAttribute('id'), 'select');
+                                            };
+                                        } else if (searchPattern2.test(ocSub)) {
+                                            ocSub = ocSub.replace(searchPattern2, "");
+                                            if (searchPattern.test(ocSub)) {
+                                                ocSub.replace(searchPattern, viewSize);
+                                            }
+                                            select[0].onchange = function () {
+                                                lookupPaginationAjaxRequest(ocSub + this.value, lookupForm.getAttribute('id'), 'select');
+                                            };
+                                        }
+                                    } else {
+                                        var ocSub = oc.substring((oc.indexOf('=') + 1),(oc.length - 1));
+                                        select[0].setAttribute("onchange", "lookupPaginationAjaxRequest(" + ocSub + ", '" + lookupForm.getAttribute('id') + "')");
+                                    }
+                                }
+                                catch (ex) {
+                                }
+                            }
+                        }
+                    }
+                }
             }
         }
     }
 }
 
 /**
- * Create an ajax request to get the search results
- * @param formAction - action target
- * @param form - formId
- * @return
- */
-function lookupFormAjaxRequest(formAction, form){
-    new Ajax.Request(formAction,{
+* Create an ajax request to get the search results
+* @param formAction - action target
+* @param form - formId
+* @return
+*/
+function lookupFormAjaxRequest(formAction, form) {
+    new Ajax.Request(formAction, {
         method: 'post',
-        parameters: $(form).serialize(), requestHeaders: {Accept: 'application/json'},
-        onSuccess: function(transport){
+        parameters: $(form).serialize(), requestHeaders: {
+            Accept: 'application/json'
+        },
+        onSuccess: function (transport) {
             var formRequest = transport.responseText;
             $('fieldLookupContent').remove();
-            $('fieldLookup').insert({bottom: "<div id='fieldLookupContent'>" + formRequest + "</div>"});
+            $('fieldLookup').insert({
+                bottom: "<div id='fieldLookupContent'>" + formRequest + "</div>"
+            });
             modifySubmitButton();
         }
     });
 }
 
-function lookupPaginationAjaxRequest(navAction, form, type){
-    if(type == 'link'){
-        navAction = navAction.substring(0, navAction.length-1);
+function lookupPaginationAjaxRequest(navAction, form, type) {
+    if (type == 'link') {
+        navAction = navAction.substring(0, navAction.length - 1);
     }
-    new Ajax.Request(navAction,{
+    new Ajax.Request(navAction, {
         method: 'get',
-        requestHeaders: {Accept: 'application/json'},
-        onSuccess: function(transport){
+        requestHeaders: {
+            Accept: 'application/json'
+        },
+        onSuccess: function (transport) {
             var formRequest = transport.responseText;
             $('fieldLookupContent').remove();
-            $('fieldLookup').insert({bottom: "<div id='fieldLookupContent'>" + formRequest + "</div>"});
+            $('fieldLookup').insert({
+                bottom: "<div id='fieldLookupContent'>" + formRequest + "</div>"
+            });
             modifySubmitButton();
         }
     });
 }
 
 /*******************************************************************************************************
- * This code inserts the value lookedup by a popup window back into the associated form element
- *******************************************************************************************************/
+* This code inserts the value lookedup by a popup window back into the associated form element
+*******************************************************************************************************/
 var re_id = new RegExp('id=(\\d+)');
-var num_id = (re_id.exec(String(window.location))
-        ? new Number(RegExp.$1) : 0);
-var obj_caller = (window.opener ? window.opener.lookups[num_id] : null);
-if (obj_caller == null && window.opener != null){
+var num_id = (re_id.exec(String(window.location))? new Number(RegExp.$1): 0);
+var obj_caller = (window.opener? window.opener.lookups[num_id]: null);
+if (obj_caller == null && window.opener != null) {
     obj_caller = window.opener;
-}
-else if(obj_caller == null && window.opener == null){
+} else if (obj_caller == null && window.opener == null) {
     obj_caller = parent;
 }
 
 var bkColor = "yellow";
-function setSourceColor(src){
-if(src != null)
-     src.style.backgroundColor = bkColor;
- }
+function setSourceColor(src) {
+    if (src != null)
+    src.style.backgroundColor = bkColor;
+}
 // function passing selected value to calling window
 function set_value(value) {
-        if (!obj_caller) return;
-        setSourceColor(obj_caller.target);
-        obj_caller.target.value = value;
-        closeLookup();
+    if (! obj_caller) return;
+    setSourceColor(obj_caller.target);
+    obj_caller.target.value = value;
+    closeLookup();
 }
 // function passing selected value to calling window
 function set_values(value, value2) {
-        set_value(value);
-        if (!obj_caller.target2) return;
-        if (obj_caller.target2 == null) return;
-        setSourceColor(obj_caller.target2);
-        obj_caller.target2.value = value2;
+    set_value(value);
+    if (! obj_caller.target2) return;
+    if (obj_caller.target2 == null) return;
+    setSourceColor(obj_caller.target2);
+    obj_caller.target2.value = value2;
 }
 function set_multivalues(value) {
     obj_caller.target.value = value;
     var thisForm = obj_caller.target.form;
     var evalString = "";
-
-    if (arguments.length > 2 ) {
-        for(var i=1; i < arguments.length; i=i+2) {
+    
+    if (arguments.length > 2) {
+        for (var i = 1; i < arguments.length; i = i + 2) {
             evalString = "setSourceColor(thisForm." + arguments[i] + ")";
             eval(evalString);
-            evalString = "thisForm." + arguments[i] + ".value='" + arguments[i+1] + "'";
+            evalString = "thisForm." + arguments[i] + ".value='" + arguments[i + 1] + "'";
             eval(evalString);
         }
     }
     closeLookup();
- }
-//close the window after passing the value
-function closeLookup(){
-     if(window.opener != null){
-         window.close();
-     } else {
-         parent.lookupHide();
-     }
 }
+//close the window after passing the value
+function closeLookup() {
+    if (window.opener != null) {
+        window.close();
+    } else {
+        parent.lookupHide();
+    }
+}
\ No newline at end of file

Modified: ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl?rev=904922&r1=904921&r2=904922&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl (original)
+++ ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl Sun Jan 31 00:09:53 2010
@@ -411,7 +411,9 @@
 <#macro renderLookupField className alert name value size maxlength id event action disabled autocomplete descriptionFieldName formName lookupFieldFormName targetParameterIter imgSrc ajaxUrl ajaxEnabled lookupPresentation lookupWidth lookupHeight lookupPosition>
 <div class="field-lookup"><ul>
 <li><input type="text" <@renderClass className alert /><#if name?has_content> name="${name}"</#if><#if value?has_content> value="${value}"</#if><#if size?has_content> size="${size}"</#if><#if maxlength?has_content> maxlength="${maxlength}"</#if><#if id?has_content> id="${id}"</#if><#rt/><#if disabled?has_content && disabled> disabled="disabled"</#if><#rt/><#if event?has_content && action?has_content> ${event}="${action}"</#if><#rt/><#if autocomplete?has_content> autocomplete="off"</#if>/><#rt/></li>
-<li><#if lookupPresentation?has_content && lookupPresentation == "layer">
+<li><#if lookupPresentation?has_content && descriptionFieldName?has_content && lookupPresentation == "layer">
+ <a href="javascript:call_fieldlookupLayer3(document.${formName?html}.${name?html}, document.${formName?html}.${descriptionFieldName},'${lookupFieldFormName}','${lookupWidth}','${lookupHeight}','${lookupPosition}'<#rt/>
+<#elseif lookupPresentation?has_content && lookupPresentation == "layer">
  <a href="javascript:call_fieldlookupLayer(document.${formName?html}.${name?html},'${lookupFieldFormName}','${lookupWidth}','${lookupHeight}','${lookupPosition}'<#rt/>
 <#elseif descriptionFieldName?has_content>
  <a href="javascript:call_fieldlookup3(document.${formName?html}.${name?html}, document.${formName?html}.${descriptionFieldName},'${lookupFieldFormName}'<#rt/>