Author: sascharodekamp
Date: Mon Jun 25 11:58:10 2012
New Revision: 1353482

URL: http://svn.apache.org/viewvc?rev=1353482&view=rev
Log:
Fix IE7 Bug in javaScript files, restructuring lookup -> modifySubmitButton 
function

Modified:
    ofbiz/trunk/framework/images/webapp/images/fieldlookup.js
    ofbiz/trunk/framework/images/webapp/images/selectall.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=1353482&r1=1353481&r2=1353482&view=diff
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/fieldlookup.js (original)
+++ ofbiz/trunk/framework/images/webapp/images/fieldlookup.js Mon Jun 25 
11:58:10 2012
@@ -322,7 +322,7 @@ var Lookup = function(options) {
 
                        success : function(data) {
                                _lookupContainer.html(data);
-                               new 
ButtonModifier(_lookupId).modifySubmitButton();
+                               new 
ButtonModifier(_lookupId).modifyLookupLinks();
                        },
 
                        error : function(xhr, reason, exception) {
@@ -330,7 +330,7 @@ var Lookup = function(options) {
                                        alert("An error occurred while 
communicating with the server:\n\n\nreason=" + reason + "\n\nexception=" + 
exception);
                                }
                                location.reload(true);
-                       },
+                       }
                });
        }
 
@@ -456,14 +456,55 @@ var GLOBAL_LOOKUP_REF = new FieldLookupC
  
******************************************************************************/
 var ButtonModifier = function(lookupDiv) {
 
-       function _modifySubmitButton() {
+       function _modifyLookupLinks() {
                if (!lookupDiv) {
                        return;
                }
 
                _modifyCollapseable();
 
-               // find the lookup form and input button
+               _modifySubmitButton();
+
+               _modifyPagination();
+
+               _modifyResultTable();
+       }
+
+       function _modifyCollapseable() {
+
+               var slTitleBars = jQuery("#" + lookupDiv + " 
.screenlet-title-bar");
+
+               jQuery.each(slTitleBars, function(i) {
+                       var slTitleBar = slTitleBars[i];
+                       var ul = slTitleBar.firstChild;
+                       if ((typeof ul) != 'object') {
+                               return true;
+                       }
+                       var childElements = ul.childNodes;
+
+                       for (j in childElements) {
+                               if (childElements[j].className == 'expanded' || 
childElements[j].className == 'collapsed') {
+                                       break;
+                               }
+                       }
+
+                       _getNextCollapseSeq();
+                       var childEle = childElements[j].firstChild;
+
+                       childEle.setAttribute('onclick', 
"javascript:toggleScreenlet(this, 'lec" + COLLAPSE_SEQUENCE_NUMBER
+                                       + "', 'true', 'Expand', 'Collapse');");
+                       childEle.href = "javascript:void(0);"
+                       jQuery(slTitleBar).next('div').attr('id', 'lec' + 
COLLAPSE_SEQUENCE_NUMBER);
+
+               });
+       }
+
+       function _getNextCollapseSeq() {
+               COLLAPSE_SEQUENCE_NUMBER++;
+               return COLLAPSE_SEQUENCE_NUMBER;
+       }
+
+       function _modifySubmitButton() {
                var lookupForm = jQuery("#" + lookupDiv + " form:first");
 
                // set new form name and id
@@ -471,10 +512,12 @@ var ButtonModifier = function(lookupDiv)
                lookupForm.attr("name", "form_" + lookupDiv);
                lookupForm.attr("id", "form_" + lookupDiv);
                lookupForm = jQuery("#form_" + lookupDiv);
+
                // set new links for lookups
                var newLookups = jQuery("#" + lookupDiv + " .field-lookup");
 
                var formAction = lookupForm.attr("action");
+
                // remove the form action
                lookupForm.attr("action", "");
                var input = jQuery("#" + lookupDiv + " 
input[type=submit]").css({
@@ -482,7 +525,6 @@ var ButtonModifier = function(lookupDiv)
                });
 
                // remove the original input button and replace with a new one
-
                var txt = input.attr("value");
                (input.parent()).append(jQuery("<button/>", {
                        id : "lookupSubmitButton",
@@ -495,6 +537,9 @@ var ButtonModifier = function(lookupDiv)
                }));
 
                input.remove();
+       }
+
+       function _modifyPagination() {
                // modify nav-pager
                var navPagers = jQuery("#" + lookupDiv + " .nav-pager a");
                jQuery.each(navPagers, function(navPager) {
@@ -504,105 +549,72 @@ var ButtonModifier = function(lookupDiv)
 
                var navPagersSelect = jQuery("#" + lookupDiv + " .nav-pager 
select");
                jQuery.each(navPagersSelect, function(navPager) {
-                       // that's quite weird maybe someone have a better idea 
...
-                       // that's
-                       // where the magic happens
-                       try {
-                               var oc = 
jQuery(navPagersSelect[navPager]).attr("onchange");
-                               if ((typeof oc) == "function") { // IE6/7 Fix
-                                       oc = oc.toString();
-                                       var ocSub = 
oc.substring((oc.indexOf('=') + 3), (oc.length - 4));
-                                       // define search pattern we must 
seperate between IE and
-                                       // Other Browser
-                                       var searchPattern = /" \+ this.value \+ 
"/g;
-                                       var searchPattern_IE = 
/'\+this.value\+'/g;
-                                       var searchPattern2 = /" \+ this.valu/g;
-                                       var searchPattern2_IE = /'\+this.valu/g;
-
+                       var onChangeEvent = 
jQuery(navPagersSelect[navPager]).attr("onchange");
+                       if ((typeof onChangeEvent) == "function") { // IE6/7 Fix
+                               onChangeEvent = onChangeEvent.toString();
+                               var ocSub = 
onChangeEvent.substring((onChangeEvent.indexOf('=') + 3), (onChangeEvent.length 
- 4));
+                               // define search pattern we must seperate 
between IE and
+                               // Other Browser
+                               var searchPattern = /" \+ this.value \+ "/g;
+                               var searchPattern_IE = /'\+this.value\+'/g;
+                               var searchPattern2 = /" \+ this.valu/g;
+                               var searchPattern2_IE = /'\+this.valu/g;
+
+                               if (searchPattern.test(ocSub)) {
+                                       var viewSize = 
navPagersSelect[navPager].value;
+                                       var spl = ocSub.split(searchPattern);
+                                       navPagersSelect[navPager].onchange = 
function() {
+                                               
lookupPaginationAjaxRequest(spl[0] + this.value + spl[1], 'select');
+                                       };
+                               } else if (searchPattern_IE.test(ocSub)) {
+                                       var viewSize = 
navPagersSelect[navPager].value;
+                                       var spl = ocSub.split(searchPattern_IE);
+                                       navPagersSelect[navPager].onchange = 
function() {
+                                               lookupPaginationAjaxRequest("/" 
+ spl[0] + this.value + spl[1], 'select');
+                                       };
+                               } else if (searchPattern2.test(ocSub)) {
+                                       ocSub = ocSub.replace(searchPattern2, 
"");
                                        if (searchPattern.test(ocSub)) {
-                                               var viewSize = 
navPagersSelect[navPager].value;
-                                               var spl = 
ocSub.split(searchPattern);
-                                               
navPagersSelect[navPager].onchange = function() {
-                                                       
lookupPaginationAjaxRequest(spl[0] + this.value + spl[1], 'select');
-                                               };
-                                       } else if 
(searchPattern_IE.test(ocSub)) {
-                                               var viewSize = 
navPagersSelect[navPager].value;
-                                               var spl = 
ocSub.split(searchPattern_IE);
-                                               
navPagersSelect[navPager].onchange = function() {
-                                                       
lookupPaginationAjaxRequest("/" + spl[0] + this.value + spl[1], 'select');
-                                               };
-                                       } else if (searchPattern2.test(ocSub)) {
-                                               ocSub = 
ocSub.replace(searchPattern2, "");
-                                               if (searchPattern.test(ocSub)) {
-                                                       
ocSub.replace(searchPattern, viewSize);
-                                               }
-                                               
navPagersSelect[navPager].onchange = function() {
-                                                       
lookupPaginationAjaxRequest(ocSub + this.value, 'select');
-                                               };
-                                       } else if 
(searchPattern2_IE.test(ocSub)) {
-                                               ocSub = 
ocSub.replace(searchPattern2_IE, "");
-                                               if 
(searchPattern_IE.test(ocSub)) {
-                                                       
ocSub.replace(searchPattern_IE, viewSize);
-                                               }
-                                               
navPagersSelect[navPager].onchange = function() {
-                                                       
lookupPaginationAjaxRequest("/" + ocSub + this.value, 'select');
-                                               };
-                                       }
-                               } else {
-                                       var ocSub = 
oc.substring((oc.indexOf('=') + 1), (oc.length - 1));
-                                       
navPagersSelect[navPager].setAttribute("onchange", 
"lookupPaginationAjaxRequest(" + ocSub + ",'')");
-                               }
-
-                               if (resultTable == null) {
-                                       return;
-                               }
-                               resultTable = resultTable.childElements()[0];
-                               var resultElements = 
resultTable.childElements();
-                               for (i in resultElements) {
-                                       var childElements = 
resultElements[i].childElements();
-                                       if (childElements.size() == 1) {
-                                               continue;
+                                               ocSub.replace(searchPattern, 
viewSize);
                                        }
-                                       for (k = 1; k < childElements.size(); 
k++) {
-                                               var cell = childElements[k];
-                                               var cellChild = null;
-                                               cellChild = 
cell.childElements();
-                                               if (cellChild.size() > 0) {
-                                                       for (l in cellChild) {
-                                                               var cellElement 
= cellChild[l];
-                                                               if 
(cellElement.tagName == 'A') {
-                                                                       var 
link = cellElement.href;
-                                                                       var 
liSub = link.substring(link.lastIndexOf('/') + 1, (link.length));
-                                                                       if 
(liSub.indexOf("javascript:set_") != -1) {
-                                                                               
cellElement.href = link;
-                                                                       } else {
-                                                                               
cellElement.href = "javascript:lookupAjaxRequest('" + liSub + 
"&presentation=layer')";
-                                                                       }
-                                                               }
-                                                       }
-                                               }
+                                       navPagersSelect[navPager].onchange = 
function() {
+                                               
lookupPaginationAjaxRequest(ocSub + this.value, 'select');
+                                       };
+                               } else if (searchPattern2_IE.test(ocSub)) {
+                                       ocSub = 
ocSub.replace(searchPattern2_IE, "");
+                                       if (searchPattern_IE.test(ocSub)) {
+                                               ocSub.replace(searchPattern_IE, 
viewSize);
                                        }
+                                       navPagersSelect[navPager].onchange = 
function() {
+                                               lookupPaginationAjaxRequest("/" 
+ ocSub + this.value, 'select');
+                                       };
                                }
-                       } catch (ex) {
+                       } else {
+                               var ocSub = 
onChangeEvent.substring((onChangeEvent.indexOf('=') + 1), (onChangeEvent.length 
- 1));
+                               
navPagersSelect[navPager].setAttribute("onchange", 
"lookupPaginationAjaxRequest(" + ocSub + ",'')");
                        }
                });
-               // modify links in result table ...
+       }
+
+       function _modifyResultTable() {
                var resultTable = jQuery("#" + lookupDiv + " #search-results 
table:first tbody");
-               var tableChildren = resultTable.children();
-               jQuery.each(tableChildren, function(tableChild) {
-                       var childElements = jQuery(tableChildren[tableChild]);
-                       var tableRow = childElements.children();
-                       jQuery.each(tableRow, function(cell) {
-                               var cellChild = null;
-                               cellChild = jQuery(tableRow[cell]).children();
-                               jQuery.each(cellChild, function(child) {
-                                       if (cellChild[child].tagName == "A") {
-                                               var link = 
cellChild[child].href;
+               var tableChilds = resultTable.children();
+
+               jQuery.each(tableChilds, function(tableChild) {
+                       var childElements = jQuery(tableChilds[tableChild]);
+                       var tableRows = childElements.children();
+
+                       jQuery.each(tableRows, function(cell) {
+                               var cellChilds = 
jQuery(tableRows[cell]).children();
+
+                               jQuery.each(cellChilds, function(child) {
+                                       if (cellChilds[child].tagName == "A") {
+                                               var link = 
cellChilds[child].href;
                                                var liSub = 
link.substring(link.lastIndexOf('/') + 1, (link.length));
                                                if 
(liSub.indexOf("javascript:set_") != -1) {
-                                                       cellChild[child].href = 
link;
+                                                       cellChilds[child].href 
= link;
                                                } else {
-                                                       cellChild[child].href = 
"javascript:lookupAjaxRequest('" + liSub + "&presentation=layer')";
+                                                       cellChilds[child].href 
= "javascript:lookupAjaxRequest('" + liSub + "&presentation=layer')";
                                                }
                                        }
                                });
@@ -612,42 +624,8 @@ var ButtonModifier = function(lookupDiv)
                });
        }
 
-       function _modifyCollapseable() {
-
-               var slTitleBars = jQuery("#" + lookupDiv + " 
.screenlet-title-bar");
-
-               jQuery.each(slTitleBars, function(i) {
-                       var slTitleBar = slTitleBars[i];
-                       var ul = slTitleBar.firstChild;
-                       if ((typeof ul) != 'object') {
-                               return true;
-                       }
-                       var childElements = ul.childNodes;
-
-                       for (j in childElements) {
-                               if (childElements[j].className == 'expanded' || 
childElements[j].className == 'collapsed') {
-                                       break;
-                               }
-                       }
-
-                       _getNextCollapseSeq();
-                       var childEle = childElements[j].firstChild;
-
-                       childEle.setAttribute('onclick', 
"javascript:toggleScreenlet(this, 'lec" + COLLAPSE_SEQUENCE_NUMBER
-                                       + "', 'true', 'Expand', 'Collapse');");
-                       childEle.href = "javascript:void(0);"
-                       jQuery(slTitleBar).next('div').attr('id', 'lec' + 
COLLAPSE_SEQUENCE_NUMBER);
-
-               });
-       }
-
-       function _getNextCollapseSeq() {
-               COLLAPSE_SEQUENCE_NUMBER++;
-               return COLLAPSE_SEQUENCE_NUMBER;
-       }
-
        return {
-               modifySubmitButton : _modifySubmitButton
+               modifyLookupLinks : _modifyLookupLinks
        }
 }
 
@@ -660,7 +638,7 @@ function lookupAjaxRequest(request) {
        request = request.substring(0, request.indexOf('?'));
        lookupId = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).lookupId;
        jQuery("#" + lookupId).load(request, arg, function(data) {
-               new ButtonModifier(lookupId).modifySubmitButton();
+               new ButtonModifier(lookupId).modifyLookupLinks();
        });
 }
 
@@ -694,7 +672,7 @@ function lookupFormAjaxRequest(formActio
                                jQuery("span.indicator").remove();
                        }
                        jQuery("#" + lookupId).html(result);
-                       new ButtonModifier(lookupId).modifySubmitButton();
+                       new ButtonModifier(lookupId).modifyLookupLinks();
                }
        });
 }
@@ -729,7 +707,7 @@ function lookupPaginationAjaxRequest(nav
                                jQuery("span.indicator").remove();
                        }
                        jQuery("#" + lookupId).html(result);
-                       new ButtonModifier(lookupId).modifySubmitButton();
+                       new ButtonModifier(lookupId).modifyLookupLinks();
                }
        });
 }

Modified: ofbiz/trunk/framework/images/webapp/images/selectall.js
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/selectall.js?rev=1353482&r1=1353481&r2=1353482&view=diff
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/selectall.js (original)
+++ ofbiz/trunk/framework/images/webapp/images/selectall.js Mon Jun 25 11:58:10 
2012
@@ -304,7 +304,7 @@ function ajaxUpdateAreaPeriodic(areaId, 
                 },
                 error: function(data) {waitSpinnerHide()}
             });
-            
+
         }
     });
 }
@@ -398,19 +398,19 @@ function ajaxSubmitFormUpdateAreas(form,
 function ajaxAutoCompleter(areaCsvString, showDescription, defaultMinLength, 
defaultDelay, formName){
     var areaArray = areaCsvString.replace(/&amp;/g, '&').split(",");
     var numAreas = parseInt(areaArray.length / 3);
-    
+
     for (var i = 0; i < numAreas * 3; i = i + 3) {
         var initUrl = areaArray[i + 1];
         if (initUrl.indexOf("?") > -1)
             var url = initUrl + "&" + areaArray[i + 2];
-        else 
+        else
             var url = initUrl + "?" + areaArray[i + 2];
         var div = areaArray[i];
         // create a separated div where the result JSON Opbject will be placed
         if ((jQuery("#" + div + "_auto")).length < 1) {
             jQuery("<div id='" + div + "_auto'></div>").insertBefore("#" + 
areaArray[i]);
         }
-        
+
         jQuery("#" + div).autocomplete({
             minLength: defaultMinLength,
             delay: defaultDelay,
@@ -447,13 +447,13 @@ function ajaxAutoCompleter(areaCsvString
                         if(exception != 'abort') {
                             alert("An error occurred while communicating with 
the server:\n\n\nreason=" + reason + "\n\nexception=" + exception);
                         }
-                    },
+                    }
                 });
             },
             select: function(event, ui){
                 //jQuery("#" + areaArray[0]).html(ui.item);
-                jQuery("#" + areaArray[0]).val(ui.item.value); // setting a 
text field   
-                if (showDescription && (ui.item.value != undefined && 
ui.item.value != '')) { 
+                jQuery("#" + areaArray[0]).val(ui.item.value); // setting a 
text field
+                if (showDescription && (ui.item.value != undefined && 
ui.item.value != '')) {
                     setLookDescription(areaArray[0], ui.item.label, 
areaArray[2], formName, showDescription)
                 }
             }
@@ -473,8 +473,8 @@ function setLookDescription(textFieldId,
         var start = description.lastIndexOf(' [');
         if (start != -1) {
             description = description.substring(0, start);
-            
-            // This sets a (possibly hidden) dependent field if a 
description-field-name is provided  
+
+            // This sets a (possibly hidden) dependent field if a 
description-field-name is provided
             var dependentField = 
params.substring(params.indexOf("searchValueFieldName"));
             dependentField = jQuery("#" + formName + "_" + 
dependentField.substring(dependentField.indexOf("=") + 1));
             var dependentFieldValue = description.substring(0, 
description.lastIndexOf(' '))
@@ -534,7 +534,7 @@ function ajaxAutoCompleteDropDown() {
                         }) );
                     },
                     select: function( event, ui ) {
-                        ui.item.option.selected = true;                        
+                        ui.item.option.selected = true;
                         //select.val( ui.item.option.value );
                         self._trigger( "selected", event, {
                             item: ui.item.option
@@ -752,7 +752,7 @@ function submitFormEnableButton(button) 
 
 /**
  * Expands or collapses all groups of one portlet
- * 
+ *
  * @param bool <code>true</code> to expand, <code>false</code> otherwise
  * @param portalPortletId The id of the portlet
  */
@@ -767,7 +767,7 @@ function expandAllP(bool, portalPortletI
 
 /**
  * Expands or collapses all groups of the page
- * 
+ *
  * @param bool <code>true</code> to expand, <code>false</code> otherwise
  */
 function expandAll(bool) {
@@ -800,7 +800,7 @@ function waitSpinnerShow() {
     lookupTop = (scrollOffY + winHeight / 2) - (jSpinner.height() / 2);
 
     jSpinner.css("display", "block");
-    jSpinner.css("left", lookupLeft + "px"); 
+    jSpinner.css("left", lookupLeft + "px");
     jSpinner.css("top", lookupTop + "px");
     jSpinner.show();
 }


Reply via email to