You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2010/05/19 09:26:08 UTC

svn commit: r946061 - /ofbiz/trunk/framework/images/webapp/images/fieldlookup.js

Author: jleroux
Date: Wed May 19 07:26:08 2010
New Revision: 946061

URL: http://svn.apache.org/viewvc?rev=946061&view=rev
Log:
A patch from Atul Vani (modified from a Sascha Rodekamp's patch) "Allow to open a layer lookup from a layer lookup recursively" (https://issues.apache.org/jira/browse/OFBIZ-3693) - OFBIZ-3693

Modified:
    ofbiz/trunk/framework/images/webapp/images/fieldlookup.js

Modified: ofbiz/trunk/framework/images/webapp/images/fieldlookup.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/fieldlookup.js?rev=946061&r1=946060&r2=946061&view=diff
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/fieldlookup.js (original)
+++ ofbiz/trunk/framework/images/webapp/images/fieldlookup.js Wed May 19 07:26:08 2010
@@ -596,15 +596,28 @@ function modifySubmitButton (lookupDiv) 
         var lookupForm = null;
         for (var i = 0; i < forms.length; i++) {
             if (! isEmpty(forms[i].getAttribute('id'))) {
-                lookupForm = $(forms[i].getAttribute('id'));
+                lookupForm = $(forms[i]);
             }
         }
         
         if (lookupForm == null) {
             return;
         }
+        
+        //set new form name and id
+        oldFormName = lookupForm.getAttribute('name');
+        lookupForm.setAttribute('name', 'form_' + GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).globalRef);
+        lookupForm.setAttribute('id', 'form_' + GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).globalRef);
+        lookupForm = $('form_' + GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).globalRef);
+        
+        //set new links for lookups
+        var newLookups = $A(lookupDiv.getElementsByClassName('field-lookup'));
+        newLookups.each(function(newLookup){
+        	var link = newLookup.getElementsByTagName('a')[0].href;
+        	newLookup.getElementsByTagName('a')[0].href = String.replace(link, 'document.'+oldFormName, 'document.'+'form_' + GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).globalRef);
+        });
 
-        //diable the form action
+        //disable the form action
         var formAction = lookupForm.getAttribute('action');
         lookupForm.setAttribute('action', '');
 
@@ -612,13 +625,14 @@ function modifySubmitButton (lookupDiv) 
         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', {
                     id: 'lookupSubmitButton'
                 });
                 submit.onclick = function () {
-                    lookupFormAjaxRequest(formAction, lookupForm.getAttribute('id'));
+                    lookupFormAjaxRequest(formAction, lookupForm.id);
                     return false;
                 };
                 submit.setAttribute("class", "smallSubmit");
@@ -630,7 +644,7 @@ function modifySubmitButton (lookupDiv) 
                 ele.parentNode.appendChild(submit);
                 Event.observe(document, "keypress", function (evt) {
                     if (Event.KEY_RETURN == evt.keyCode) {
-                        lookupFormAjaxRequest(formAction, lookupForm.getAttribute('id'));
+                        lookupFormAjaxRequest(formAction, lookupForm.id);
                     }
                 });
                 ele.parentNode.removeChild(ele);
@@ -646,7 +660,7 @@ function modifySubmitButton (lookupDiv) 
                             var select = eleChild[k].getElementsByTagName("SELECT");
 
                             if (link.length > 0) {
-                            	link[0].href = "javascript:lookupPaginationAjaxRequest('" + link[0].href + "', '" + lookupForm.getAttribute('id') + "', 'link')";
+                            	link[0].href = "javascript:lookupPaginationAjaxRequest('" + link[0].href + "', '" + lookupForm.id + "', 'link')";
                             } else if (select.length > 0) {
                                 try {
                                     var oc = select[0].getAttribute("onchange");
@@ -660,7 +674,7 @@ function modifySubmitButton (lookupDiv) 
                                             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');
+                                                lookupPaginationAjaxRequest(spl[0] + this.value + spl[1], lookupForm.id, 'select');
                                             };
                                         } else if (searchPattern2.test(ocSub)) {
                                             ocSub = ocSub.replace(searchPattern2, "");
@@ -668,12 +682,12 @@ function modifySubmitButton (lookupDiv) 
                                                 ocSub.replace(searchPattern, viewSize);
                                             }
                                             select[0].onchange = function () {
-                                                lookupPaginationAjaxRequest(ocSub + this.value, lookupForm.getAttribute('id'), 'select');
+                                                lookupPaginationAjaxRequest(ocSub + this.value, lookupForm.id, 'select');
                                             };
                                         }
                                     } else {
                                         var ocSub = oc.substring((oc.indexOf('=') + 1),(oc.length - 1));
-                                        select[0].setAttribute("onchange", "lookupPaginationAjaxRequest(" + ocSub + ", '" + lookupForm.getAttribute('id') +"')");
+                                        select[0].setAttribute("onchange", "lookupPaginationAjaxRequest(" + ocSub + ", '" + lookupForm.id +"')");
                                     }
                                 }
                                 catch (ex) {
@@ -838,7 +852,7 @@ function setSourceColor(src) {
 // function passing selected value to calling window
 function set_value (value) {
 	if(GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP)){
-    obj_caller.target = $(GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).parentTarget.id);
+    obj_caller.target = $(GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).parentTarget);
 	}
 	else{
 	obj_caller.target = obj_caller.targetW;