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

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

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

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