You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by sa...@apache.org on 2012/06/25 13:58:10 UTC

svn commit: r1353482 - in /ofbiz/trunk/framework/images/webapp/images: fieldlookup.js selectall.js

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();
 }