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