You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by er...@apache.org on 2012/07/02 13:03:02 UTC
svn commit: r1356181 [5/8] - in /ofbiz/branches/20120329_portletWidget: ./
applications/accounting/ applications/accounting/data/
applications/accounting/script/org/ofbiz/accounting/payment/
applications/accounting/src/org/ofbiz/accounting/payment/ app...
Modified: ofbiz/branches/20120329_portletWidget/framework/images/webapp/images/fieldlookup.js
URL: http://svn.apache.org/viewvc/ofbiz/branches/20120329_portletWidget/framework/images/webapp/images/fieldlookup.js?rev=1356181&r1=1356180&r2=1356181&view=diff
==============================================================================
--- ofbiz/branches/20120329_portletWidget/framework/images/webapp/images/fieldlookup.js (original)
+++ ofbiz/branches/20120329_portletWidget/framework/images/webapp/images/fieldlookup.js Mon Jul 2 11:02:34 2012
@@ -1,842 +1,878 @@
/*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-
-// ================= FIELD LOOKUP METHODS ============================
-var NS4 = (navigator.appName.indexOf("Netscape") >= 0 && ! document.getElementById)? true: false;
-var IE4 = (document.all && ! document.getElementById)? true: false;
-var IE5 = (document.getElementById && document.all)? true: false;
-var NS6 = (document.getElementById && navigator.appName.indexOf("Netscape") >= 0)? true: false;
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
var mx, my;
var ACTIVATED_LOOKUP = null;
var LOOKUP_DIV = null;
var INITIALLY_COLLAPSED = null;
var SHOW_DESCRIPTION = false;
-
-
-function moveobj(evt) {
- if (NS4 || NS6) {
- mx = evt.screenX;
- my = evt.screenY;
- } else if (IE5 || IE4) {
- mx = event.screenX;
- my = event.screenY;
- }
-}
+var COLLAPSE_SEQUENCE_NUMBER = 1999;
var target = null;
var target2 = null;
var targetW = null;
-var lookups =[];
+var lookups = [];
-function call_fieldlookup(target, viewName, formName, viewWidth, viewheight) {
- var fieldLookup = new fieldLookup1(target);
- if (! viewWidth) viewWidth = 350;
- if (! viewheight) viewheight = 200;
- fieldLookup.popup(viewName, formName, viewWidth, viewheight);
-}
-function call_fieldlookupLayer(target, viewName, lookupWidth, lookupHeight, lookupPosition, fadeBackground, initiallyCollapsed) {
- if (isEmpty(target) || isEmpty(viewName)) {
- return lookup_error("Lookup can't be created, one of these variables is missing: target=" + target + " viewName=" + viewName);
- }
-
- var fieldLookupPopup = new FieldLookupPopup(target, viewName, lookupWidth, lookupHeight, lookupPosition, fadeBackground, initiallyCollapsed, arguments);
- fieldLookupPopup.showLookup();
- this.target = target;
-}
-
-function call_fieldlookupLayer3(target, target2, viewName, lookupWidth, lookupHeight, lookupPosition, fadeBackground, initiallyCollapsed) {
- if (isEmpty(target) || isEmpty(target2) || isEmpty(viewName)) {
- return lookup_error("Lookup can't be created, one of these variables is missing: target=" + target + " target2=" + target2 + " viewName=" + viewName);
- }
-
- var fieldLookupPopup = new FieldLookupPopup(target, viewName, lookupWidth, lookupHeight, lookupPosition, fadeBackground, initiallyCollapsed, arguments);
- fieldLookupPopup.showLookup();
- this.target = target;
- this.target2 = target2;
+function getViewNameWithSeparator(view_name) {
+ var sep = "?";
+ if (view_name.indexOf("?") >= 0) {
+ sep = "&";
+ }
+ return view_name + sep;
}
-function call_fieldlookup2(target, viewName, presentation) {
- var fieldLookup = new fieldLookup1(target, arguments, presentation);
- fieldLookup.popup2(viewName);
+function lookup_error(str_message) {
+ var CommonErrorMessage2 = getJSONuiLabel("CommonUiLabels", "CommonErrorMessage2");
+ showErrorAlert(CommonErrorMessage2, str_message);
}
-function call_fieldlookup3(target, target2, viewName, presentation) {
- var fieldLookup = new fieldLookup2(target, target2, arguments, presentation);
- fieldLookup.popup2(viewName);
+function lookup_popup1(view_name, form_name, viewWidth, viewheight) {
+ var obj_lookupwindow = window.open(getViewNameWithSeparator(view_name) + 'formName=' + form_name + '&presentation=' + this.presentation
+ + '&id=' + this.id, '_blank', 'width=' + viewWidth + ',height=' + viewheight + ',scrollbars=yes,status=no,resizable=yes,top='
+ + my + ',left=' + mx + ',dependent=yes,alwaysRaised=yes');
+ obj_lookupwindow.opener = window;
+ obj_lookupwindow.focus();
+}
+
+function lookup_popup2(view_name) {
+ var argString = "";
+ if (this.args !== null) {
+ if (this.args.length > 2) {
+ var i;
+ for (i = 2; i < this.args.length; i++) {
+ argString += "&parm" + (i - 3) + "=" + this.args[i];
+ }
+ }
+ }
+
+ var obj_lookupwindow = window.open(getViewNameWithSeparator(view_name) + 'presentation=' + this.presentation + '&id=' + this.id
+ + argString, '_blank', 'width=900,height=700,scrollbars=yes,status=no,resizable=yes,top=' + my + ',left=' + mx
+ + ',dependent=yes,alwaysRaised=yes');
+ obj_lookupwindow.opener = window;
+ obj_lookupwindow.focus();
}
function fieldLookup1(obj_target, args, presentation) {
- this.args = args;
- this.presentation = presentation;
- // passing methods
- this.popup = lookup_popup1;
- this.popup2 = lookup_popup2;
-
- // validate input parameters
- if (! obj_target) return lookup_error("Error calling the field lookup: no target control specified");
- if (obj_target.value == null) return lookup_error("Error calling the field lookup: parameter specified is not valid target control");
- targetW = obj_target;
+ this.args = args;
+ this.presentation = presentation;
+ // passing methods
+ this.popup = lookup_popup1;
+ this.popup2 = lookup_popup2;
+
+ // validate input parameters
+ if (!obj_target) {
+ return lookup_error("Error calling the field lookup: no target control specified");
+ }
+ if (obj_target.value === null) {
+ return lookup_error("Error calling the field lookup: parameter specified is not valid target control");
+ }
+ targetW = obj_target;
}
function fieldLookup2(obj_target, obj_target2, args, presentation) {
- this.args = args;
- this.presentation = presentation;
- // passing methods
- this.popup = lookup_popup1;
- this.popup2 = lookup_popup2;
- // validate input parameters
- if (! obj_target) return lookup_error("Error calling the field lookup: no target control specified");
- if (obj_target.value == null) return lookup_error("Error calling the field lookup: parameter specified is not valid target control");
- targetW = obj_target;
- // validate input parameters
- if (! obj_target2) return lookup_error("Error calling the field lookup: no target2 control specified");
- if (obj_target2.value == null) return lookup_error("Error calling the field lookup: parameter specified is not valid target2 control");
- target2 = obj_target2;
-
+ this.args = args;
+ this.presentation = presentation;
+ // passing methods
+ this.popup = lookup_popup1;
+ this.popup2 = lookup_popup2;
+ // validate input parameters
+ if (!obj_target) {
+ return lookup_error("Error calling the field lookup: no target control specified");
+ }
+ if (obj_target.value === null) {
+ return lookup_error("Error calling the field lookup: parameter specified is not valid target control");
+ }
+ targetW = obj_target;
+ // validate input parameters
+ if (!obj_target2) {
+ return lookup_error("Error calling the field lookup: no target2 control specified");
+ }
+ if (obj_target2.value === null) {
+ return lookup_error("Error calling the field lookup: parameter specified is not valid target2 control");
+ }
+ target2 = obj_target2;
}
-function lookup_popup1(view_name, form_name, viewWidth, viewheight) {
- var obj_lookupwindow = window.open(getViewNameWithSeparator(view_name) + 'formName=' + form_name + '&presentation=' + this.presentation + '&id=' + this.id, '_blank', 'width=' + viewWidth + ',height=' + viewheight + ',scrollbars=yes,status=no,resizable=yes,top=' + my + ',left=' + mx + ',dependent=yes,alwaysRaised=yes');
- obj_lookupwindow.opener = window;
- obj_lookupwindow.focus();
+function call_fieldlookup3(target, target2, viewName, presentation) {
+ var fieldLookup = new fieldLookup2(target, target2, arguments, presentation);
+ fieldLookup.popup2(viewName);
}
-function lookup_popup2(view_name) {
- var argString = "";
- if (this.args != null) {
- if (this.args.length > 2) {
- for (var i = 2; i < this.args.length; i++) {
- argString += "&parm" + (i - 3) + "=" + this.args[i];
- }
- }
- }
-
- var obj_lookupwindow = window.open(getViewNameWithSeparator(view_name) + 'presentation=' + this.presentation + '&id=' + this.id + argString, '_blank', 'width=900,height=700,scrollbars=yes,status=no,resizable=yes,top=' + my + ',left=' + mx + ',dependent=yes,alwaysRaised=yes');
- obj_lookupwindow.opener = window;
- obj_lookupwindow.focus();
+
+function call_fieldlookup(target, viewName, formName, viewWidth, viewheight) {
+ var fieldLookup = new fieldLookup1(target);
+ if (!viewWidth) {
+ viewWidth = 350;
+ }
+ if (!viewheight) {
+ viewheight = 200;
+ }
+ fieldLookup.popup(viewName, formName, viewWidth, viewheight);
}
-function lookup_error(str_message) {
- var CommonErrorMessage2 = getJSONuiLabel("CommonUiLabels", "CommonErrorMessage2");
- showErrorAlert(CommonErrorMessage2, str_message);
- return null;
+
+function call_fieldlookup2(target, viewName, presentation) {
+ var fieldLookup = new fieldLookup1(target, arguments, presentation);
+ fieldLookup.popup2(viewName);
}
-function getViewNameWithSeparator(view_name) {
- var sep = "?";
- if (view_name.indexOf("?") >= 0) {
- sep = "&";
- }
- return view_name + sep;
+function CollapsePanel(link, areaId) {
+ var container, liElement;
+
+ container = jQuery(areaId);
+ liElement = jQuery(link).up('li');
+
+ liElement.removeClassName('expanded');
+ liElement.addClassName('collapsed');
+ Effect.toggle(container, 'appear');
}
function initiallyCollapse() {
- if ((!LOOKUP_DIV) || (INITIALLY_COLLAPSED != "true")) return;
- var slTitleBars = LOOKUP_DIV.getElementsByClassName('screenlet-title-bar');
- for (i in slTitleBars) {
- var slTitleBar = slTitleBars[i];
- var ul = slTitleBar.firstChild;
- if ((typeof ul) != 'object') continue;
-
- var childElements = ul.childNodes;
- for (j in childElements) {
- if (childElements[j].className == 'expanded' || childElements[j].className == 'collapsed') {
- break;
- }
- }
- var childEle = childElements[j].firstChild;
- CollapsePanel(childEle, 'lec' + COLLAPSE);
- break;
- }
-}
-
-function CollapsePanel(link, areaId){
- var container = $(areaId);
- var liElement = $(link).up('li');
- liElement.removeClassName('expanded');
- liElement.addClassName('collapsed');
- Effect.toggle(container, 'appear');
+ if ((!LOOKUP_DIV) || (INITIALLY_COLLAPSED != "true")) {
+ return;
+ }
+
+ var i, j, childEle, childElements, ul, slTitleBar, slTitleBars = LOOKUP_DIV.getElementsByClassName('screenlet-title-bar');
+ for (i in slTitleBars) {
+ slTitleBar = slTitleBars[i];
+ ul = slTitleBar.firstChild;
+ if ((typeof ul) != 'object') {
+ continue;
+ }
+
+ childElements = ul.childNodes;
+ for (j in childElements) {
+ if (childElements[j].className === 'expanded' || childElements[j].className === 'collapsed') {
+ break;
+ }
+ }
+
+ childEle = childElements[j].firstChild;
+ new CollapsePanel(childEle, 'lec' + COLLAPSE_SEQUENCE_NUMBER);
+ break;
+ }
}
function initiallyCollapseDelayed() {
- setTimeout("initiallyCollapse()", 400);
+ setTimeout("initiallyCollapse()", 400);
}
-
-/*************************************
-* Fieldlookup Class & Methods
-*************************************/
-function ConstructLookup(requestUrl, inputFieldId, dialogTarget, dialogOptionalTarget, formName, width, height, position, modal, ajaxUrl, showDescription, presentation, defaultMinLength, defaultDelay, args) {
- // add the presentation attribute to the request url to let the request know which decorator should be loaded
- if(!presentation) {
- var presentation = "layer"
- }
-
- // create Link Element with unique Key
- var lookupId = GLOBAL_LOOKUP_REF.createNextKey();
- var inputBox = document.getElementById(inputFieldId);
- newInputBoxId = lookupId + "_" + inputFieldId;
- inputBox.id = newInputBoxId;
- var parent = inputBox.parentNode;
-
- var link = document.createElement('A');
- link.href = "javascript:void(0);";
- link.id = lookupId + "_button";
-
- parent.appendChild(link);
-
- var hiddenDiv = document.createElement("DIV");
- hiddenDiv.id = lookupId;
- hiddenDiv.css = "{display: none;}";
- hiddenDiv.title = "";
-
- parent.appendChild(hiddenDiv);
-
- // createAjax autocomplete
- if (ajaxUrl != "" && showDescription != "") {
- SHOW_DESCRIPTION = showDescription;
- //write the new input box id in the ajaxUrl Array
- ajaxUrl = ajaxUrl.replace(ajaxUrl.substring(0, ajaxUrl.indexOf(",")), newInputBoxId);
- new ajaxAutoCompleter(ajaxUrl, showDescription, defaultMinLength, defaultDelay, formName);
- }
-
- var positioning = null;
- if (position == "topleft") {
- positioning = ['left', 'top'];
- } else if (position == "topcenter") {
- positioning = ['center', 'top'];
- } else if (position == "topright") {
- positioning = ['right', 'top'];
- } else if (position == "center") {
- positioning = 'center';
- } else if (position == "left") {
- positioning = 'left';
- } else if (position == "right") {
- positioning = 'right';
- } else {
- positioning = ['left', 'top'];
- }
-
- var lookupFormAction = null;
- function lookup_onKeyEnter(event) {
- if (event.which == 13) {
- lookupFormAjaxRequest(lookupFormAction, "form_" + lookupId);
- return false;
- }
- }
-
- // Lookup Configuration
- var dialogOpts = {
- modal: (modal == "true") ? true : false,
- bgiframe: true,
- autoOpen: false,
- height: (height != "") ? parseInt(height) : 500,
- width: (width != "") ? parseInt(width) : 620,
- position: positioning,
- draggable: true,
- resizeable: true,
- open: function(event,ui) {
- waitSpinnerShow();
- jQuery("#" + lookupId).empty();
-
- var queryArgs = "presentation=" + presentation;
- if (typeof args == "object" && jQuery.isArray(args)) {
- for (var i = 0; i < args.length; i++) {
- queryArgs += "&parm" + i + "=" + jQuery(args[i]).val();
- }
- }
-
- jQuery.ajax({
- type: "post",
- url: requestUrl,
- data: queryArgs,
- timeout: AJAX_REQUEST_TIMEOUT,
- cache: false,
- dataFilter: function(data, dataType) {
- waitSpinnerHide();
- return data;
- },
- success: function(data) {
- jQuery("#" + lookupId).html(data);
-
- lookupFormAction = jQuery("#" + lookupId + " form:first").attr("action");
- modifySubmitButton(lookupId);
- jQuery("#" + lookupId).bind("keypress", lookup_onKeyEnter);
- // set up the window chaining
- // if the ACTIVATED_LOOKUP var is set there have to be more than one lookup,
- // before registrating the new lookup we store the id of the old lookup in the
- // preLookup variable of the new lookup object. I.e. lookup_1 calls lookup_8, the lookup_8
- // object need a reference to lookup_1, this reference is set here
- var prevLookup = null
- if (ACTIVATED_LOOKUP) {
- prevLookup = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).lookupId;
- }
- identifyLookup(lookupId);
-
- if (prevLookup) {
- GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).prevLookup = prevLookup;
- }
- },
- error: function(xhr, reason, exception) {
- if(exception != 'abort') {
- alert("An error occurred while communicating with the server:\n\n\nreason=" + reason + "\n\nexception=" + exception);
- }
- location.reload(true);
- },
- });
- },
- close: function() {
- jQuery("#" + lookupId).unbind("keypress", lookup_onKeyEnter);
-
- waitSpinnerHide();
-
- //when the window is closed the prev Lookup get the focus (if exists)
- if (ACTIVATED_LOOKUP) {
- var prevLookup = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).prevLookup;
- }
- if (prevLookup) {
- identifyLookup(prevLookup);
- } else {
- ACTIVATED_LOOKUP = null;
- }
- }
- };
-
- // init Dialog and register
- // create an object with all Lookup Informationes that are needed
- var dialogRef = jQuery("#" + lookupId).dialog(dialogOpts);
-
- //setting up global variabels, for external access
- this.inputBoxId = inputBox.id;
- this.lookupId = lookupId;
- this.formName = formName;
- this.target = null;
- this.presentation = presentation;
- if (dialogOptionalTarget != null) {
- this.target2 = null;
- }
- this.prevLookup = null;
- this.dialogRef = dialogRef;
- //write external settings in global window manager
- GLOBAL_LOOKUP_REF.setReference(lookupId, this);
-
- // bind click Event to Dialog button
- jQuery("#" + lookupId + "_button").click(
- function (){
- jQuery("#" + lookupId).dialog("open");
- jQuery("#" + lookupId).dialog(dialogOpts);
- GLOBAL_LOOKUP_REF.getReference(lookupId).target = jQuery(dialogTarget);
- if (dialogOptionalTarget != null) {
- //the target2 have to be set here, because the input field is not created before
- GLOBAL_LOOKUP_REF.getReference(lookupId).target2 = jQuery(dialogOptionalTarget);
- }
- return false;
- }
- );
-
- // close the dialog when clicking outside the dialog area
- jQuery(".ui-widget-overlay").live("click", function() {
- if(!ACTIVATED_LOOKUP || lookupId==ACTIVATED_LOOKUP){
- jQuery("#" + lookupId).dialog("close");
- }
- });
-}
-
-function FieldLookupCounter() {
- this.refArr = {};
-
- this.setReference = function (key, ref) {
- //if key doesn't exist in the array and
- for (itm in this.refArr) {
- if (itm == key) {
- prefix = key.substring(0, key.indexOf("_"));
- key = prefix + "_" + key;
- this.refArr[""+ key + ""] = ref;
- return this.refArr[key];
- }
- }
- this.refArr[""+ key + ""] = ref;
- return this.refArr[key];
- };
-
- this.getReference = function (key) {
- // when key does not exist return null?
- return this.refArr[key] != null ? this.refArr[key] : null;
- };
-
- this.getLastReference = function () {
- return (this.countFields() -1) + "_lookupId";
- }
-
- this.createNextKey = function () {
- return this.countFields() + "_lookupId";
- };
-
- this.countFields = function () {
- var count = 0;
- jQuery.each(this.refArr, function (itm) {count++;});
- return count;
- };
-
- this.removeReference = function (key) {
- // deletes the Array entry (doesn't effect the array length)
- delete this.refArr[key];
- };
-
+/*******************************************************************************
+ * Lookup Object
+ ******************************************************************************/
+var Lookup = function(options) {
+ var _newInputBoxId, _lookupId, _inputBox, _lookupContainer, _backgroundCloseClickEvent;
+
+ options = {
+ requestUrl : options.requestUrl || "",
+ inputFieldId : options.inputFieldId || "",
+ dialogTarget : options.dialogTarget || "",
+ dialogOptionalTarget : options.dialogOptionalTarget || "",
+ formName : options.formName || "",
+ width : options.width || "620",
+ height : options.height || "500",
+ position : options.position || "topleft",
+ modal : options.modal || "true",
+ ajaxUrl : options.ajaxUrl || "",
+ showDescription : options.showDescription || "",
+ presentation : options.presentation || "layer",
+ defaultMinLength : options.defaultMinLength || "",
+ defaultDelay : options.defaultDelay || "",
+ args : options.args || ""
+ }
+
+ function _init() {
+ _lookupId = GLOBAL_LOOKUP_REF.createNextKey();
+ _modifyContainer();
+ _createAjaxAutoComplete();
+
+ _lookupContainer = jQuery("#" + _lookupId);
+ var dialogOpts = _createDialogOptions(_lookupContainer);
+
+ // init Dialog and register
+ // create an object with all Lookup Informationes that are needed
+ var dialogRef = _lookupContainer.dialog(dialogOpts);
+
+ // setting up global variabels, for external access
+ this.inputBoxId = _inputBox.id;
+ this.lookupId = _lookupId;
+ this.formName = options.formName;
+ this.target = null;
+ this.presentation = options.presentation;
+ if (options.dialogOptionalTarget != null) {
+ this.target2 = null;
+ }
+ this.prevLookup = null;
+ this.dialogRef = dialogRef;
+
+ // write external settings in global window manager
+ GLOBAL_LOOKUP_REF.setReference(_lookupId, this);
+
+ _addOpenEvent(dialogRef);
+ }
+
+ function _modifyContainer() {
+ _inputBox = document.getElementById(options.inputFieldId);
+ _newInputBoxId = _lookupId + "_" + options.inputFieldId;
+ _inputBox.id = _newInputBoxId;
+ var parent = _inputBox.parentNode;
+
+ var link = document.createElement('A');
+ link.href = "javascript:void(0);";
+ link.id = _lookupId + "_button";
+
+ parent.appendChild(link);
+
+ var hiddenDiv = document.createElement("DIV");
+ hiddenDiv.id = _lookupId;
+ hiddenDiv.css = "{display: none;}";
+ hiddenDiv.title = "";
+
+ parent.appendChild(hiddenDiv);
+ }
+
+ function _createAjaxAutoComplete() {
+ if (options.ajaxUrl != "" && options.showDescription != "") {
+ SHOW_DESCRIPTION = options.showDescription;
+ // write the new input box id in the ajaxUrl Array
+ options.ajaxUrl = options.ajaxUrl.replace(options.ajaxUrl.substring(0, options.ajaxUrl.indexOf(",")), _newInputBoxId);
+ new ajaxAutoCompleter(options.ajaxUrl, options.showDescription, options.defaultMinLength, options.defaultDelay,
+ options.formName);
+ }
+ }
+
+ function _createDialogOptions(_lookupContainer) {
+ var positioning = _positioning();
+
+ var dialogOpts = {
+ modal : (options.modal == "true") ? true : false,
+ bgiframe : true,
+ autoOpen : false,
+ height : parseInt(options.height),
+ width : parseInt(options.width),
+ position : positioning,
+ draggable : true,
+ resizeable : true,
+ open : _dialogOpen,
+ close : _dialogClose
+ };
+
+ return dialogOpts;
+ }
+
+ function _positioning() {
+ var positioning = null;
+ if (options.position == "topleft") {
+ positioning = [ 'left', 'top' ];
+ } else if (options.position == "topcenter") {
+ positioning = [ 'center', 'top' ];
+ } else if (options.position == "topright") {
+ positioning = [ 'right', 'top' ];
+ } else if (options.position == "center") {
+ positioning = 'center';
+ } else if (options.position == "left") {
+ positioning = 'left';
+ } else if (options.position == "right") {
+ positioning = 'right';
+ } else {
+ positioning = [ 'left', 'top' ];
+ }
+
+ return positioning;
+ }
+
+ function _dialogOpen(event, ui) {
+ waitSpinnerShow();
+ _lookupContainer.empty();
+
+ var queryArgs = "presentation=" + options.presentation;
+ if (typeof options.args == "object" && jQuery.isArray(options.args)) {
+ for ( var i = 0; i < options.args.length; i++) {
+ queryArgs += "&parm" + i + "=" + jQuery(options.args[i]).val();
+ }
+ }
+
+ _lookupChaining();
+ _addCloseEventForClickingOnBackgroundLayer();
+
+ // load lookup data from server
+ jQuery.ajax({
+ type : "POST",
+ url : options.requestUrl,
+ data : queryArgs,
+ timeout : AJAX_REQUEST_TIMEOUT,
+ cache : false,
+ dataFilter : function(data, dataType) {
+ waitSpinnerHide();
+ return data;
+ },
+
+ success : function(data) {
+ _lookupContainer.html(data);
+ new ButtonModifier(_lookupId).modifyLookupLinks();
+ },
+
+ error : function(xhr, reason, exception) {
+ if (exception != 'abort') {
+ alert("An error occurred while communicating with the server:\n\n\nreason=" + reason + "\n\nexception=" + exception);
+ }
+ location.reload(true);
+ }
+ });
+ }
+
+ function _lookupChaining() {
+ /*
+ * set up the window chaining if the ACTIVATED_LOOKUP var is set there
+ * have to be more than one lookup, before registrating the new lookup
+ * we store the id of the old lookup in the preLookup variable of the
+ * new lookup object. I.e. lookup_1 calls lookup_8, the lookup_8 object
+ * need a reference to lookup_1, this reference is set here
+ */
+
+ var prevLookup = null
+ if (ACTIVATED_LOOKUP) {
+ prevLookup = ACTIVATED_LOOKUP;
+ }
+
+ _activateLookup(_lookupId);
+
+ GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).prevLookup = prevLookup;
+ }
+
+ function _activateLookup(newAl) {
+ if (ACTIVATED_LOOKUP != newAl) {
+ ACTIVATED_LOOKUP = newAl;
+ }
+ }
+
+ function _addCloseEventForClickingOnBackgroundLayer() {
+ _backgroundCloseClickEvent = function() {
+ if (ACTIVATED_LOOKUP && ACTIVATED_LOOKUP == _lookupId) {
+ GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).dialogRef.dialog("close");
+ }
+ }
+
+ jQuery(".ui-widget-overlay").click(_backgroundCloseClickEvent);
+ }
+
+ function _dialogClose() {
+ jQuery(".ui-widget-overlay").unbind("click", _backgroundCloseClickEvent)
+
+ var prevLookup = null;
+ if (ACTIVATED_LOOKUP) {
+ prevLookup = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).prevLookup;
+ }
+
+ if (prevLookup) {
+ _activateLookup(prevLookup);
+ } else {
+ ACTIVATED_LOOKUP = null;
+ }
+ }
+
+ function _addOpenEvent(dialogReference) {
+ jQuery("#" + _lookupId + "_button").click(function() {
+ dialogReference.dialog("open");
+
+ GLOBAL_LOOKUP_REF.getReference(_lookupId).target = jQuery(options.dialogTarget);
+ if (options.dialogOptionalTarget != null) {
+ GLOBAL_LOOKUP_REF.getReference(_lookupId).target2 = jQuery(options.dialogOptionalTarget);
+ }
+ });
+
+ }
+
+ return {
+ init : _init
+ }
};
-var GLOBAL_LOOKUP_REF = new FieldLookupCounter;
-/**
-* returns true if a String is empty
-* @param value - String value
-* @return
-*/
-function isEmpty(value) {
- if (value == null || value == "") {
- return true;
- }
- return false;
-}
-
-function identifyLookup (newAl) {
- if (ACTIVATED_LOOKUP != newAl) {
- ACTIVATED_LOOKUP = newAl;
- }
-}
-
-//global expand/col button var
-var COLLAPSE = 1999;
-function getNextCollapseSeq() {
- COLLAPSE++;
- return COLLAPSE;
-}
-
-//modify expande/collapse button
-function modifyCollapseable(lookupDiv){
- if (!lookupDiv) {
- return;
- }
- var slTitleBars = jQuery("#" + lookupDiv + " .screenlet-title-bar");
- //jQuery("#" + lookupDiv + " li.expanded");
-
- 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 +"', 'true', 'Expand', 'Collapse');");
- childEle.href = "javascript:void(0);"
- jQuery(slTitleBar).next('div').attr('id', 'lec' + COLLAPSE);
-
- });
-}
-
-function modifySubmitButton (lookupDiv) {
- /* changes form/submit behavior for Lookup Layer */
- if (lookupDiv) {
- modifyCollapseable(lookupDiv);
-
- //find the lookup form and input button
- var lookupForm = jQuery("#" + lookupDiv + " form:first");
-
- //set new form name and id
- oldFormName = lookupForm.attr("name");
- 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({display: "block"});
-
- // remove the original input button and replace with a new one
-
- var txt = input.attr("value");
- (input.parent()).append(jQuery("<button/>", {
- id: "lookupSubmitButton",
- href: "javascript:void(0);",
- click: function () {
- lookupFormAjaxRequest(formAction, lookupForm.attr("id"));
- return false;
- },
- text: txt
- }));
-
- input.remove();
- //modify nav-pager
- var navPagers = jQuery("#" + lookupDiv + " .nav-pager a");
- jQuery.each(navPagers, function(navPager) {
- jQuery(navPagers[navPager]).attr("href", "javascript:lookupPaginationAjaxRequest('" + encodeURI(jQuery(navPagers[navPager]).attr("href")) + "','link')");
- });
-
- 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;
-
- 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;
- }
- 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')";
- }
- }
- }
- }
- }
- }
- }
- catch (ex) {
- }
- });
- // modify links in result table ...
- 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 liSub = link.substring(link.lastIndexOf('/')+1,(link.length));
- if (liSub.indexOf("javascript:set_") != -1) {
- cellChild[child].href = link;
- } else {
- cellChild[child].href = "javascript:lookupAjaxRequest('" + liSub + "&presentation=layer')";
- }
- }
- });
+/*******************************************************************************
+ * Lookup Counter Object
+ ******************************************************************************/
+var FieldLookupCounter = function() {
+ this.refArr = {};
+
+ this.setReference = function(key, ref) {
+ // if key doesn't exist in the array and
+ var itm;
+ for (itm in this.refArr) {
+ if (itm == key) {
+ prefix = key.substring(0, key.indexOf("_"));
+ key = prefix + "_" + key;
+ this.refArr["" + key + ""] = ref;
+ return this.refArr[key];
+ }
+ }
+ this.refArr["" + key + ""] = ref;
+ return this.refArr[key];
+ };
+
+ this.getReference = function(key) {
+ // when key does not exist return null?
+ return this.refArr[key] != null ? this.refArr[key] : null;
+ };
+
+ this.getLastReference = function() {
+ return (this.countFields() - 1) + "_lookupId";
+ }
+
+ this.createNextKey = function() {
+ return this.countFields() + "_lookupId";
+ };
+
+ this.countFields = function() {
+ var count = 0;
+ jQuery.each(this.refArr, function(itm) {
+ count++;
+ });
+ return count;
+ };
+
+ this.removeReference = function(key) {
+ // deletes the Array entry (doesn't effect the array length)
+ delete this.refArr[key];
+ };
- });
+};
+var GLOBAL_LOOKUP_REF = new FieldLookupCounter;
- });
- }
-}
-/**
- * Create an ajax Request
- */
+/*******************************************************************************
+ * Button Modifier Object
+ ******************************************************************************/
+var ButtonModifier = function(lookupDiv) {
+
+ function _modifyLookupLinks() {
+ if (!lookupDiv) {
+ return;
+ }
+
+ _modifyCollapseable();
+
+ _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
+ var oldFormName = lookupForm.attr("name");
+ 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({
+ display : "block"
+ });
+
+ // remove the original input button and replace with a new one
+ var txt = input.attr("value");
+ (input.parent()).append(jQuery("<button/>", {
+ id : "lookupSubmitButton",
+ href : "javascript:void(0);",
+ click : function() {
+ lookupFormAjaxRequest(formAction, lookupForm.attr("id"));
+ return false;
+ },
+ text : txt
+ }));
+
+ input.remove();
+ }
+
+ function _modifyPagination() {
+ // modify nav-pager
+ var navPagers = jQuery("#" + lookupDiv + " .nav-pager a");
+ jQuery.each(navPagers, function(navPager) {
+ jQuery(navPagers[navPager]).attr("href",
+ "javascript:lookupPaginationAjaxRequest('" + encodeURI(jQuery(navPagers[navPager]).attr("href")) + "','link')");
+ });
+
+ var navPagersSelect = jQuery("#" + lookupDiv + " .nav-pager select");
+ jQuery.each(navPagersSelect, function(navPager) {
+ 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)) {
+ 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 = onChangeEvent.substring((onChangeEvent.indexOf('=') + 1), (onChangeEvent.length - 1));
+ navPagersSelect[navPager].setAttribute("onchange", "lookupPaginationAjaxRequest(" + ocSub + ",'')");
+ }
+ });
+ }
+
+ function _modifyResultTable() {
+ var resultTable = jQuery("#" + lookupDiv + " #search-results table:first tbody");
+ 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) {
+ cellChilds[child].href = link;
+ } else {
+ cellChilds[child].href = "javascript:lookupAjaxRequest('" + liSub + "&presentation=layer')";
+ }
+ }
+ });
+
+ });
+
+ });
+ }
+
+ return {
+ modifyLookupLinks : _modifyLookupLinks
+ }
+}
+
+/*******************************************************************************
+ * Ajax Request Helper
+ ******************************************************************************/
function lookupAjaxRequest(request) {
- // get request arguments
- var arg = request.substring(request.indexOf('?')+1,(request.length));
- request = request.substring(0, request.indexOf('?'));
- lookupId = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).lookupId;
- jQuery("#" + lookupId).load(request, arg, function(data) {
- modifySubmitButton(lookupId);
- });
+ // get request arguments
+ var arg = request.substring(request.indexOf('?') + 1, (request.length));
+ request = request.substring(0, request.indexOf('?'));
+ lookupId = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).lookupId;
+ jQuery("#" + lookupId).load(request, arg, function(data) {
+ new ButtonModifier(lookupId).modifyLookupLinks();
+ });
}
-/**
-* Create an ajax request to get the search results
-* @param formAction - action target
-* @param form - formId
-* @return
-*/
function lookupFormAjaxRequest(formAction, form) {
- lookupId = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).lookupId;
- var data = jQuery("#" + form).serialize();
- data = data + "&presentation=" + GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).presentation;
- /*jQuery("#" + lookupId).load(formAction, data, function(data) {
- modifySubmitButton(lookupId);
- });*/
- var screenletTitleBar= jQuery("#"+lookupId+" .screenlet-title-bar :visible:first");
- jQuery.ajax({
- url: formAction,
- data: data,
- beforeSend: function(jqXHR, settings) {
- //Here we append the spinner to the lookup screenlet and it will shown till the ajax request is processed.
- var indicator = screenletTitleBar.find("span.indicator");
- //Check that if spinner is already in execution then don't add new spinner
- if (indicator.length == 0) {
- jQuery("<span class='indicator'><img src='/images/ajax-loader.gif' alt='' /></span>").appendTo(screenletTitleBar);
- }
- },
- success: function(result) {
- if (result.search(/loginform/) != -1) {
- window.location.href = window.location.href;
- return;
- }
- // Here we are removing the spinner.
- var indicator = screenletTitleBar.find("span.indicator");
- if (indicator != undefined) {
- jQuery("span.indicator").remove();
- }
- jQuery("#" + lookupId).html(result);
- modifySubmitButton(lookupId);
- }
- });
+ var lookupId = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).lookupId;
+ var data = jQuery("#" + form).serialize();
+ data = data + "&presentation=" + GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).presentation;
+
+ var screenletTitleBar = jQuery("#" + lookupId + " .screenlet-title-bar :visible:first");
+ jQuery.ajax({
+ url : formAction,
+ data : data,
+ beforeSend : function(jqXHR, settings) {
+ // Here we append the spinner to the lookup screenlet and it will
+ // shown till the ajax request is processed.
+ var indicator = screenletTitleBar.find("span.indicator");
+ // Check that if spinner is already in execution then don't add new
+ // spinner
+ if (indicator.length == 0) {
+ jQuery("<span class='indicator'><img src='/images/ajax-loader.gif' alt='' /></span>").appendTo(screenletTitleBar);
+ }
+ },
+ success : function(result) {
+ if (result.search(/loginform/) != -1) {
+ window.location.href = window.location.href;
+ return;
+ }
+ // Here we are removing the spinner.
+ var indicator = screenletTitleBar.find("span.indicator");
+ if (indicator != undefined) {
+ jQuery("span.indicator").remove();
+ }
+ jQuery("#" + lookupId).html(result);
+ new ButtonModifier(lookupId).modifyLookupLinks();
+ }
+ });
}
function lookupPaginationAjaxRequest(navAction, type) {
- lookupDiv = (GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).divRef);
- lookupContent = (GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).contentRef);
+ var lookupDiv = (GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).divRef);
+ var lookupContent = (GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).contentRef);
- lookupId = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).lookupId;
- /*jQuery("#" + lookupId).load(navAction, function(data) {
- modifySubmitButton(lookupId);
- });*/
- var screenletTitleBar= jQuery("#"+lookupId+" .screenlet-title-bar :visible:first");
- jQuery.ajax({
- url: navAction,
- beforeSend: function(jqXHR, settings) {
- //Here we append the spinner to the lookup screenlet and it will shown till the ajax request is processed.
- var indicator = screenletTitleBar.find("span.indicator");
- //Check that if spinner is already in execution then don't add new spinner
- if (indicator.length == 0) {
- jQuery("<span class='indicator'><img src='/images/ajax-loader.gif' alt='' /></span>").appendTo(screenletTitleBar);
- }
- },
- success: function(result) {
- if (result.search(/loginform/) != -1) {
- window.location.href = window.location.href;
- return;
- }
- // Here we are removing the spinner.
- var indicator = screenletTitleBar.find("span.indicator");
- if (indicator != undefined) {
- jQuery("span.indicator").remove();
- }
- jQuery("#" + lookupId).html(result);
- modifySubmitButton(lookupId);
- }
- });
-}
-
-/*******************************************************************************************************
-* This code inserts the value lookedup by a popup window back into the associated form element
-*******************************************************************************************************/
+ var lookupId = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).lookupId;
+ var screenletTitleBar = jQuery("#" + lookupId + " .screenlet-title-bar :visible:first");
+
+ jQuery.ajax({
+ url : navAction,
+ beforeSend : function(jqXHR, settings) {
+ // Here we append the spinner to the lookup screenlet and it will
+ // shown till the ajax request is processed.
+ var indicator = screenletTitleBar.find("span.indicator");
+ // Check that if spinner is already in execution then don't add new
+ // spinner
+ if (indicator.length == 0) {
+ jQuery("<span class='indicator'><img src='/images/ajax-loader.gif' alt='' /></span>").appendTo(screenletTitleBar);
+ }
+ },
+ success : function(result) {
+ if (result.search(/loginform/) != -1) {
+ window.location.href = window.location.href;
+ return;
+ }
+ // Here we are removing the spinner.
+ var indicator = screenletTitleBar.find("span.indicator");
+ if (indicator != undefined) {
+ jQuery("span.indicator").remove();
+ }
+ jQuery("#" + lookupId).html(result);
+ new ButtonModifier(lookupId).modifyLookupLinks();
+ }
+ });
+}
+
+/*******************************************************************************
+ * This code inserts the value lookedup by a popup window back into the
+ * associated form element
+ ******************************************************************************/
var re_id = new RegExp('id=(\\d+)');
-var num_id = (re_id.exec(String(window.location))? new Number(RegExp.$1): 0);
-var obj_caller = (window.opener? window.opener.lookups[num_id]: null);
+var num_id = (re_id.exec(String(window.location)) ? new Number(RegExp.$1) : 0);
+var obj_caller = (window.opener ? window.opener.lookups[num_id] : null);
if (obj_caller == null && window.opener != null) {
- obj_caller = window.opener;
+ obj_caller = window.opener;
} else if (obj_caller == null && window.opener == null) {
- obj_caller = parent;
+ obj_caller = parent;
}
function setSourceColor(src) {
- if (target && target != null) {
- src.css("background-color", "yellow");
- }
-}
-// function passing selected value to calling window, using only in the TimeDuration case
-function set_duration_value (value) {
- if(GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP)){
- obj_caller.target = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).target;
- }
- else {
- obj_caller.target = jQuery(obj_caller.targetW);
- }
- var target = obj_caller.target;
+ if (target && target != null) {
+ src.css("background-color", "yellow");
+ }
+}
+// function passing selected value to calling window, using only in the
+// TimeDuration case
+function set_duration_value(value) {
+ if (GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP)) {
+ obj_caller.target = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).target;
+ } else {
+ obj_caller.target = jQuery(obj_caller.targetW);
+ }
+ var target = obj_caller.target;
- write_value(value, target);
- closeLookup();
+ write_value(value, target);
+ closeLookup();
}
// 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).target;
- }
- else {
- obj_caller.target = jQuery(obj_caller.targetW);
- }
-
- var target = obj_caller.target;
- write_value(value, target);
+function set_value(value) {
+ if (GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP)) {
+ obj_caller.target = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).target;
+ } else {
+ obj_caller.target = jQuery(obj_caller.targetW);
+ }
+
+ var target = obj_caller.target;
+ write_value(value, target);
- closeLookup();
+ closeLookup();
}
// function passing selected value to calling window
-function set_values (value, value2) {
- if(GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP)){
- obj_caller.target = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).target;
- obj_caller.target2 = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).target2;
- }
- else {
- obj_caller.target = jQuery(obj_caller.targetW);
- }
- var target = obj_caller.target;
- var target2 = obj_caller.target2;
- write_value(value, target);
- write_value(value2, target2)
- if (SHOW_DESCRIPTION) setLookDescription(target.attr("id"), value + " " + value2, "", "", SHOW_DESCRIPTION);
-
- closeLookup();
-}
-
-function write_value (value, target) {
- if (target && target != null) {
- setSourceColor(target);
- target.val(value);
- target.trigger("lookup:changed");
- }
+function set_values(value, value2) {
+ if (GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP)) {
+ obj_caller.target = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).target;
+ obj_caller.target2 = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).target2;
+ } else {
+ obj_caller.target = jQuery(obj_caller.targetW);
+ }
+ var target = obj_caller.target;
+ var target2 = obj_caller.target2;
+ write_value(value, target);
+ write_value(value2, target2)
+ if (SHOW_DESCRIPTION) {
+ setLookDescription(target.attr("id"), value + " " + value2, "", "", SHOW_DESCRIPTION);
+ }
+
+ closeLookup();
+}
+
+function write_value(value, target) {
+ if (target && target != null) {
+ setSourceColor(target);
+ target.val(value);
+ target.trigger("lookup:changed");
+ }
}
function set_multivalues(value) {
- obj_caller.target.value = value;
- field = jQuery("#" + target.attr('id')); // TODO: Not tested (should be ok)we need to fix 1st the window lookup (see OFBIZ-3933)
- field.trigger("lookup:changed"); // If we decide to keep it (only used in Example, though it's needed also for Themes and Languages but not the same way)
- if (field.change != null) {
- field.click().change()
- }
-
- var thisForm = obj_caller.target.form;
- var evalString = "";
-
- if (arguments.length > 2) {
- for (var i = 1; i < arguments.length; i = i + 2) {
- evalString = "setSourceColor(thisForm." + arguments[i] + ")";
- eval(evalString);
- evalString = "thisForm." + arguments[i] + ".value='" + arguments[i + 1] + "'";
- eval(evalString);
- }
- }
- closeLookup();
+ obj_caller.target.value = value;
+ field = jQuery("#" + target.attr('id'));
+ field.trigger("lookup:changed");
+ /*
+ * If we decide to keep it (only used in Example, though it's needed also
+ * for Themes and Languages but not the same way)
+ */
+ if (field.change != null) {
+ field.click().change()
+ }
+
+ var thisForm = obj_caller.target.form;
+ var evalString = "";
+
+ if (arguments.length > 2) {
+ for ( var i = 1; i < arguments.length; i = i + 2) {
+ evalString = "setSourceColor(thisForm." + arguments[i] + ")";
+ eval(evalString);
+ evalString = "thisForm." + arguments[i] + ".value='" + arguments[i + 1] + "'";
+ eval(evalString);
+ }
+ }
+ closeLookup();
}
-//close the window after passing the value
+// close the window after passing the value
function closeLookup() {
- if (window.opener != null && GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP) == null) {
- window.close();
- } else {
- obj = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).lookupId;
- jQuery("#" + obj).dialog("close");
- }
+ if (window.opener != null && GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP) == null) {
+ window.close();
+ } else {
+ var lookupId = GLOBAL_LOOKUP_REF.getReference(ACTIVATED_LOOKUP).lookupId;
+ jQuery("#" + lookupId).dialog("close");
+ }
}
-//load description for lookup fields
+/*******************************************************************************
+ * Lookup Description Helper
+ ******************************************************************************/
+// load description for lookup fields
var lookupDescriptionLoaded = function(fieldId, url, params, formName) {
- this.init(fieldId, url, params, formName);
+ this.init(fieldId, url, params, formName);
}
-lookupDescriptionLoaded.prototype.init = function (fieldId, url, params, formName) {
- this.fieldId = fieldId;
- this.url = url;
- this.params = params;
- this.formName = formName;
-}
-lookupDescriptionLoaded.prototype.update = function (){
- var tooltipElement = jQuery("#" + this.fieldId + '_lookupDescription');
- if (tooltipElement.length) {//first remove current description
- tooltipElement.remove();
- }
- //actual server call
- var fieldName = this.params.substring(this.params.indexOf("searchValueFieldName"));
- fieldName = fieldName.substring(fieldName.indexOf("=") + 1);
- if (jQuery("input[name=" + fieldName + "]").val()) {
- var fieldSerialized = jQuery("input[name=" + fieldName + "]", jQuery("form[name=" + this.formName + "]")).serialize();
- this.allParams = this.params + '&' + fieldSerialized + '&' + 'searchType=EQUALS';
- _fieldId = this.fieldId;
-
- jQuery.ajax({
- url: this.url,
- type: "POST",
- data: this.allParams,
- async: false,
- success: function(result){
- // This would be far more reliable if we were removing the widget boundaries in LookupDecorator using widgetVerbose in context :/
- if (result.split("ajaxAutocompleteOptions.ftl -->")[1]) {
- setLookDescription(_fieldId, result.split("ajaxAutocompleteOptions.ftl -->")[1].trim().split("<!--")[0].trim(), "", "");
- }
- }
- });
- }
-}
-
-if(typeof String.prototype.trim !== 'function') { // Needed because IE8 does not implement trim yet
- String.prototype.trim = function() {
- return this.replace(/^\s+|\s+$/g, '');
- }
+lookupDescriptionLoaded.prototype.init = function(fieldId, url, params, formName) {
+ this.fieldId = fieldId;
+ this.url = url;
+ this.params = params;
+ this.formName = formName;
+}
+lookupDescriptionLoaded.prototype.update = function() {
+ var tooltipElement = jQuery("#" + this.fieldId + '_lookupDescription');
+ if (tooltipElement.length) {// first remove current description
+ tooltipElement.remove();
+ }
+
+ var indexOf = this.params.indexOf("searchValueFieldName");
+ if (indexOf == -1) {
+ return;
+ }
+
+ // actual server call
+ var fieldName = this.params.substring(indexOf);
+ fieldName = fieldName.substring(fieldName.indexOf("=") + 1);
+ if (jQuery("input[name=" + fieldName + "]").val()) {
+ var fieldSerialized = jQuery("input[name=" + fieldName + "]", jQuery("form[name=" + this.formName + "]")).serialize();
+ this.allParams = this.params + '&' + fieldSerialized + '&' + 'searchType=EQUALS';
+ var _fieldId = this.fieldId;
+
+ jQuery
+ .ajax({
+ url : this.url,
+ type : "POST",
+ data : this.allParams,
+ async : false,
+ success : function(result) {
+ // This would be far more reliable if we were removing
+ // the widget boundaries in LookupDecorator using
+ // widgetVerbose in context :/
+ if (result.split("ajaxAutocompleteOptions.ftl -->")[1]) {
+ setLookDescription(_fieldId, result.split("ajaxAutocompleteOptions.ftl -->")[1].trim().split("<!--")[0].trim(),
+ "", "");
+ }
+ }
+ });
+ }
+}
+
+// Needed because IE8 does not implement trim yet
+if (typeof String.prototype.trim !== 'function') {
+ String.prototype.trim = function() {
+ return this.replace(/^\s+|\s+$/g, '');
+ }
}
\ No newline at end of file
Modified: ofbiz/branches/20120329_portletWidget/framework/images/webapp/images/selectall.js
URL: http://svn.apache.org/viewvc/ofbiz/branches/20120329_portletWidget/framework/images/webapp/images/selectall.js?rev=1356181&r1=1356180&r2=1356181&view=diff
==============================================================================
--- ofbiz/branches/20120329_portletWidget/framework/images/webapp/images/selectall.js (original)
+++ ofbiz/branches/20120329_portletWidget/framework/images/webapp/images/selectall.js Mon Jul 2 11:02:34 2012
@@ -327,7 +327,7 @@ function ajaxUpdateAreaPeriodic(areaId,
},
error: function(data) {waitSpinnerHide()}
});
-
+
}
});
}
@@ -434,19 +434,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,
@@ -483,13 +483,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)
}
}
@@ -509,8 +509,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(' '))
@@ -570,7 +570,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
@@ -788,7 +788,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
*/
@@ -803,7 +803,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) {
@@ -836,7 +836,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();
}
Modified: ofbiz/branches/20120329_portletWidget/framework/jetty/ofbiz-component.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/20120329_portletWidget/framework/jetty/ofbiz-component.xml?rev=1356181&r1=1356180&r2=1356181&view=diff
==============================================================================
--- ofbiz/branches/20120329_portletWidget/framework/jetty/ofbiz-component.xml (original)
+++ ofbiz/branches/20120329_portletWidget/framework/jetty/ofbiz-component.xml Mon Jul 2 11:02:34 2012
@@ -24,4 +24,61 @@ under the License.
<resource-loader name="main" type="component"/>
<classpath type="jar" location="lib/*"/>
<classpath type="jar" location="build/lib/*"/>
+
+ <container name="jetty-container" class="org.ofbiz.jetty.container.JettyContainer">
+ <property name="default-server" value="server">
+ <property name="send-server-version" value="false"/>
+ <!-- thread pool config -->
+ <property name="min-threads" value="5"/>
+ <property name="max-threads" value="100"/>
+ <property name="max-idle-time-ms" value="30000"/>
+ <property name="max-stop-time-ms" value="5000"/>
+ <!-- connectors -->
+ <!--
+ <property name="http-connector" value="connector">
+ <property name="type" value="http"/>
+ <property name="host" value="0.0.0.0"/>
+ <property name="port" value="8080"/>
+ </property>
+ <property name="https-connector" value="connector">
+ <property name="type" value="https"/>
+ <property name="host" value="0.0.0.0"/>
+ <property name="port" value="8443"/>
+ <property name="keystore" value="framework/base/config/ofbizssl.jks"/>
+ <property name="password" value="changeit"/>
+ <property name="key-password" value="changeit"/>
+ <property name="client-auth" value="false"/>
+ </property>
+ -->
+ <property name="nio-http-connector" value="connector">
+ <property name="type" value="nio-http"/>
+ <property name="host" value="0.0.0.0"/>
+ <property name="port" value="8080"/>
+ </property>
+ <property name="nio-https-connector" value="connector">
+ <property name="type" value="nio-https"/>
+ <property name="host" value="0.0.0.0"/>
+ <property name="port" value="8443"/>
+ <property name="keystore" value="framework/base/config/ofbizssl.jks"/>
+ <property name="password" value="changeit"/>
+ <property name="key-password" value="changeit"/>
+ <property name="client-auth" value="false"/>
+ </property>
+ <!--
+ <property name="ajp13-connector" value="connector">
+ <property name="type" value="ajp13"/>
+ <property name="host" value="0.0.0.0"/>
+ <property name="port" value="8009"/>
+ </property>
+ -->
+ <!-- request logs -->
+ <property name="request-log" value="request-log">
+ <property name="filename" value="runtime/logs/yyyy_mm_dd.request.log"/>
+ <property name="append" value="true"/>
+ <property name="extended" value="true"/>
+ <property name="timezone" value="GMT"/>
+ <property name="retain-days" value="90"/>
+ </property>
+ </property>
+ </container>
</ofbiz-component>
Modified: ofbiz/branches/20120329_portletWidget/framework/jetty/src/org/ofbiz/jetty/container/JettyContainer.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/20120329_portletWidget/framework/jetty/src/org/ofbiz/jetty/container/JettyContainer.java?rev=1356181&r1=1356180&r2=1356181&view=diff
==============================================================================
--- ofbiz/branches/20120329_portletWidget/framework/jetty/src/org/ofbiz/jetty/container/JettyContainer.java (original)
+++ ofbiz/branches/20120329_portletWidget/framework/jetty/src/org/ofbiz/jetty/container/JettyContainer.java Mon Jul 2 11:02:34 2012
@@ -58,13 +58,14 @@ public class JettyContainer implements C
public static final String module = JettyContainer.class.getName();
+ private String name;
private Map<String, Server> servers = new HashMap<String, Server>();
/**
* @see org.ofbiz.base.container.Container#init(java.lang.String[], java.lang.String)
*/
- public void init(String[] args, String configFile) throws ContainerException {
-
+ public void init(String[] args, String name, String configFile) throws ContainerException {
+ this.name = name;
// configure JSSE properties
SSLUtil.loadJsseProperties();
@@ -77,7 +78,7 @@ public class JettyContainer implements C
}
// get the jetty container config
- ContainerConfig.Container jettyContainerConfig = ContainerConfig.getContainer("jetty-container", configFile);
+ ContainerConfig.Container jettyContainerConfig = ContainerConfig.getContainer(name, configFile);
// create the servers
for (ContainerConfig.Container.Property serverConfig : jettyContainerConfig.getPropertiesWithValue("server")) {
@@ -376,4 +377,8 @@ public class JettyContainer implements C
}
}
+ public String getName() {
+ return name;
+ }
+
}
Modified: ofbiz/branches/20120329_portletWidget/framework/minilang/src/org/ofbiz/minilang/method/callops/CallScript.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/20120329_portletWidget/framework/minilang/src/org/ofbiz/minilang/method/callops/CallScript.java?rev=1356181&r1=1356180&r2=1356181&view=diff
==============================================================================
--- ofbiz/branches/20120329_portletWidget/framework/minilang/src/org/ofbiz/minilang/method/callops/CallScript.java (original)
+++ ofbiz/branches/20120329_portletWidget/framework/minilang/src/org/ofbiz/minilang/method/callops/CallScript.java Mon Jul 2 11:02:34 2012
@@ -22,7 +22,6 @@ import org.ofbiz.base.util.ScriptUtil;
import org.ofbiz.base.util.Scriptlet;
import org.ofbiz.base.util.StringUtil;
import org.ofbiz.base.util.UtilXml;
-import org.ofbiz.base.util.string.FlexibleStringExpander;
import org.ofbiz.minilang.MiniLangException;
import org.ofbiz.minilang.MiniLangRuntimeException;
import org.ofbiz.minilang.MiniLangUtil;
@@ -33,7 +32,9 @@ import org.ofbiz.minilang.method.MethodO
import org.w3c.dom.Element;
/**
- * Executes a script.
+ * Implements the <script> element.
+ *
+ * @see <a href="https://cwiki.apache.org/OFBADMIN/mini-language-reference.html#Mini-languageReference-{{%3Cscript%3E}}">Mini-language Reference</a>
*/
public final class CallScript extends MethodOperation {
@@ -70,17 +71,11 @@ public final class CallScript extends Me
if (elementModified && MiniLangUtil.autoCorrectOn()) {
MiniLangUtil.flagDocumentAsCorrected(element);
}
- String inlineScript = element.getAttribute("script");
- if (inlineScript.length() == 0) {
- inlineScript = UtilXml.elementValue(element);
- }
- if (inlineScript != null && MiniLangUtil.containsScript(inlineScript)) {
- this.scriptlet = new Scriptlet(StringUtil.convertOperatorSubstitutions(inlineScript));
+ String scriptLocation = element.getAttribute("location");
+ if (scriptLocation.isEmpty()) {
this.location = null;
this.method = null;
} else {
- this.scriptlet = null;
- String scriptLocation = element.getAttribute("location");
int pos = scriptLocation.lastIndexOf("#");
if (pos == -1) {
this.location = scriptLocation;
@@ -90,22 +85,32 @@ public final class CallScript extends Me
this.method = scriptLocation.substring(pos + 1);
}
}
+ String inlineScript = element.getAttribute("script");
+ if (inlineScript.isEmpty()) {
+ inlineScript = UtilXml.elementValue(element);
+ }
+ if (inlineScript != null && MiniLangUtil.containsScript(inlineScript)) {
+ this.scriptlet = new Scriptlet(StringUtil.convertOperatorSubstitutions(inlineScript));
+ } else {
+ this.scriptlet = null;
+ }
}
@Override
public boolean exec(MethodContext methodContext) throws MiniLangException {
+ if (this.location != null) {
+ if (location.endsWith(".xml")) {
+ SimpleMethod.runSimpleMethod(location, method, methodContext);
+ } else {
+ ScriptUtil.executeScript(this.location, this.method, methodContext.getEnvMap());
+ }
+ }
if (this.scriptlet != null) {
try {
this.scriptlet.executeScript(methodContext.getEnvMap());
} catch (Exception e) {
throw new MiniLangRuntimeException(e.getMessage(), this);
}
- return true;
- }
- if (location.endsWith(".xml")) {
- SimpleMethod.runSimpleMethod(location, method, methodContext);
- } else {
- ScriptUtil.executeScript(this.location, this.method, methodContext.getEnvMap());
}
return true;
}
@@ -123,25 +128,30 @@ public final class CallScript extends Me
@Override
public String toString() {
StringBuilder sb = new StringBuilder("<script ");
- if (this.location != null && this.location.length() > 0) {
+ if (this.location != null) {
sb.append("location=\"").append(this.location);
- if (this.method != null && this.method.length() > 0) {
+ if (this.method != null) {
sb.append("#").append(this.method);
}
sb.append("\" ");
}
if (this.scriptlet != null) {
- sb.append("scriptlet=\"").append(this.scriptlet).append("\" ");
+ sb.append("script=\"").append(this.scriptlet).append("\" ");
}
sb.append("/>");
return sb.toString();
}
+ /**
+ * A factory for the <script> element.
+ */
public static final class CallScriptFactory implements Factory<CallScript> {
+ @Override
public CallScript createMethodOperation(Element element, SimpleMethod simpleMethod) throws MiniLangException {
return new CallScript(element, simpleMethod);
}
+ @Override
public String getName() {
return "script";
}
Modified: ofbiz/branches/20120329_portletWidget/framework/minilang/src/org/ofbiz/minilang/method/entityops/FindByAnd.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/20120329_portletWidget/framework/minilang/src/org/ofbiz/minilang/method/entityops/FindByAnd.java?rev=1356181&r1=1356180&r2=1356181&view=diff
==============================================================================
--- ofbiz/branches/20120329_portletWidget/framework/minilang/src/org/ofbiz/minilang/method/entityops/FindByAnd.java (original)
+++ ofbiz/branches/20120329_portletWidget/framework/minilang/src/org/ofbiz/minilang/method/entityops/FindByAnd.java Mon Jul 2 11:02:34 2012
@@ -18,10 +18,12 @@
*******************************************************************************/
package org.ofbiz.minilang.method.entityops;
+import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.base.util.collections.FlexibleMapAccessor;
import org.ofbiz.base.util.string.FlexibleStringExpander;
import org.ofbiz.entity.Delegator;
@@ -38,6 +40,8 @@ import org.w3c.dom.Element;
/**
* Implements the <find-by-and> element.
+ *
+ * @see <a href="https://cwiki.apache.org/OFBADMIN/mini-language-reference.html#Mini-languageReference-{{%3Cfindbyand%3E}}">Mini-language Reference</a>
*/
public final class FindByAnd extends MethodOperation {
@@ -45,6 +49,7 @@ public final class FindByAnd extends Met
private final FlexibleStringExpander delegatorNameFse;
private final FlexibleStringExpander entityNameFse;
+ private final FlexibleMapAccessor<Collection<String>> fieldsToSelectListFma;
private final FlexibleMapAccessor<Object> listFma;
private final FlexibleMapAccessor<Map<String, ? extends Object>> mapFma;
private final FlexibleMapAccessor<List<String>> orderByListFma;
@@ -54,15 +59,16 @@ public final class FindByAnd extends Met
public FindByAnd(Element element, SimpleMethod simpleMethod) throws MiniLangException {
super(element, simpleMethod);
if (MiniLangValidate.validationOn()) {
- MiniLangValidate.attributeNames(simpleMethod, element, "entity-name", "use-cache", "use-iterator", "list", "map", "order-by-list", "delegator-name");
+ MiniLangValidate.attributeNames(simpleMethod, element, "entity-name", "use-cache", "fields-to-select-list", "use-iterator", "list", "map", "order-by-list", "delegator-name");
MiniLangValidate.requiredAttributes(simpleMethod, element, "entity-name", "list", "map");
- MiniLangValidate.expressionAttributes(simpleMethod, element, "list", "map", "order-by-list");
+ MiniLangValidate.expressionAttributes(simpleMethod, element, "list", "map", "fields-to-select-list", "order-by-list");
MiniLangValidate.noChildElements(simpleMethod, element);
}
entityNameFse = FlexibleStringExpander.getInstance(element.getAttribute("entity-name"));
listFma = FlexibleMapAccessor.getInstance(element.getAttribute("list"));
mapFma = FlexibleMapAccessor.getInstance(element.getAttribute("map"));
orderByListFma = FlexibleMapAccessor.getInstance(element.getAttribute("order-by-list"));
+ fieldsToSelectListFma = FlexibleMapAccessor.getInstance(element.getAttribute("fields-to-select-list"));
useCacheFse = FlexibleStringExpander.getInstance(element.getAttribute("use-cache"));
useIteratorFse = FlexibleStringExpander.getInstance(element.getAttribute("use-iterator"));
delegatorNameFse = FlexibleStringExpander.getInstance(element.getAttribute("delegator-name"));
@@ -75,19 +81,21 @@ public final class FindByAnd extends Met
boolean useCache = "true".equals(useCacheFse.expandString(methodContext.getEnvMap()));
boolean useIterator = "true".equals(useIteratorFse.expandString(methodContext.getEnvMap()));
List<String> orderByNames = orderByListFma.get(methodContext.getEnvMap());
+ Collection<String> fieldsToSelectList = fieldsToSelectListFma.get(methodContext.getEnvMap());
Delegator delegator = methodContext.getDelegator();
if (!delegatorName.isEmpty()) {
delegator = DelegatorFactory.getDelegator(delegatorName);
}
try {
+ EntityCondition whereCond = null;
+ Map<String, ? extends Object> fieldMap = mapFma.get(methodContext.getEnvMap());
+ if (fieldMap != null) {
+ whereCond = EntityCondition.makeCondition(fieldMap);
+ }
if (useIterator) {
- EntityCondition whereCond = null;
- if (!mapFma.isEmpty()) {
- whereCond = EntityCondition.makeCondition(mapFma.get(methodContext.getEnvMap()));
- }
- listFma.put(methodContext.getEnvMap(), delegator.find(entityName, whereCond, null, null, orderByNames, null));
+ listFma.put(methodContext.getEnvMap(), delegator.find(entityName, whereCond, null, UtilMisc.toSet(fieldsToSelectList), orderByNames, null));
} else {
- listFma.put(methodContext.getEnvMap(), delegator.findByAnd(entityName, mapFma.get(methodContext.getEnvMap()), orderByNames, useCache));
+ listFma.put(methodContext.getEnvMap(), delegator.findList(entityName, whereCond, UtilMisc.toSet(fieldsToSelectList), orderByNames, null, useCache));
}
} catch (GenericEntityException e) {
String errMsg = "Exception thrown while performing entity find: " + e.getMessage();
@@ -122,6 +130,9 @@ public final class FindByAnd extends Met
if (!orderByListFma.isEmpty()) {
sb.append("order-by-list=\"").append(this.orderByListFma).append("\" ");
}
+ if (!fieldsToSelectListFma.isEmpty()) {
+ sb.append("fields-to-select-list=\"").append(this.fieldsToSelectListFma).append("\" ");
+ }
if (!useCacheFse.isEmpty()) {
sb.append("use-cache=\"").append(this.useCacheFse).append("\" ");
}
Modified: ofbiz/branches/20120329_portletWidget/framework/minilang/src/org/ofbiz/minilang/method/entityops/FindByPrimaryKey.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/20120329_portletWidget/framework/minilang/src/org/ofbiz/minilang/method/entityops/FindByPrimaryKey.java?rev=1356181&r1=1356180&r2=1356181&view=diff
==============================================================================
--- ofbiz/branches/20120329_portletWidget/framework/minilang/src/org/ofbiz/minilang/method/entityops/FindByPrimaryKey.java (original)
+++ ofbiz/branches/20120329_portletWidget/framework/minilang/src/org/ofbiz/minilang/method/entityops/FindByPrimaryKey.java Mon Jul 2 11:02:34 2012
@@ -41,6 +41,8 @@ import org.w3c.dom.Element;
/**
* Implements the <find-by-primary-key> element.
+ *
+ * @see <a href="https://cwiki.apache.org/OFBADMIN/mini-language-reference.html#Mini-languageReference-{{%3Cfindbyprimarykey%3E}}">Mini-language Reference</a>
*/
public final class FindByPrimaryKey extends MethodOperation {
@@ -92,7 +94,7 @@ public final class FindByPrimaryKey exte
Collection<String> fieldsToSelectList = fieldsToSelectListFma.get(methodContext.getEnvMap());
try {
if (fieldsToSelectList != null) {
- valueFma.put(methodContext.getEnvMap(), delegator.findByPrimaryKeyPartial(delegator.makePK(entityName, inMap), UtilMisc.makeSetWritable(fieldsToSelectList)));
+ valueFma.put(methodContext.getEnvMap(), delegator.findByPrimaryKeyPartial(delegator.makePK(entityName, inMap), UtilMisc.toSet(fieldsToSelectList)));
} else {
valueFma.put(methodContext.getEnvMap(), delegator.findOne(entityName, inMap, useCache));
}
Modified: ofbiz/branches/20120329_portletWidget/framework/resources/templates/AdminUserLoginData.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/20120329_portletWidget/framework/resources/templates/AdminUserLoginData.xml?rev=1356181&r1=1356180&r2=1356181&view=diff
==============================================================================
--- ofbiz/branches/20120329_portletWidget/framework/resources/templates/AdminUserLoginData.xml (original)
+++ ofbiz/branches/20120329_portletWidget/framework/resources/templates/AdminUserLoginData.xml Mon Jul 2 11:02:34 2012
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<entity-engine-xml>
<UserLogin userLoginId="@userLoginId@" currentPassword="{SHA}47ca69ebb4bdc9ae0adec130880165d2cc05db1a" requirePasswordChange="Y"/>
- <UserLoginSecurityGroup groupId="FULLADMIN" userLoginId="@userLoginId@" fromDate="2001-01-01 12:00:00.0"/>
+ <UserLoginSecurityGroup groupId="SUPER" userLoginId="@userLoginId@" fromDate="2001-01-01 12:00:00.0"/>
</entity-engine-xml>
\ No newline at end of file
Propchange: ofbiz/branches/20120329_portletWidget/framework/security/data/PasswordSecurityData.xml
------------------------------------------------------------------------------
Merged /ofbiz/trunk/framework/security/data/PasswordSecurityData.xml:r1351867-1355999
Modified: ofbiz/branches/20120329_portletWidget/framework/security/ofbiz-component.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/20120329_portletWidget/framework/security/ofbiz-component.xml?rev=1356181&r1=1356180&r2=1356181&view=diff
==============================================================================
--- ofbiz/branches/20120329_portletWidget/framework/security/ofbiz-component.xml (original)
+++ ofbiz/branches/20120329_portletWidget/framework/security/ofbiz-component.xml Mon Jul 2 11:02:34 2012
@@ -26,8 +26,8 @@ under the License.
<classpath type="dir" location="dtd"/>
<classpath type="jar" location="build/lib/*"/>
<entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel.xml"/>
- <entity-resource type="data" reader-name="security" loader="main" location="data/SecurityData.xml"/>
+ <entity-resource type="data" reader-name="seed" loader="main" location="data/SecurityPermissionSeedData.xml"/>
<!-- NOTE: comment this line out to ensure no resetting of passwords -->
<entity-resource type="data" reader-name="demo" loader="main" location="data/PasswordSecurityData.xml"/>
- <entity-resource type="data" reader-name="demo" loader="main" location="data/SecurityDemoData.xml"/>
+ <entity-resource type="data" reader-name="demo" loader="main" location="data/SecurityGroupDemoData.xml"/>
</ofbiz-component>
Modified: ofbiz/branches/20120329_portletWidget/framework/service/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/20120329_portletWidget/framework/service/entitydef/entitymodel.xml?rev=1356181&r1=1356180&r2=1356181&view=diff
==============================================================================
--- ofbiz/branches/20120329_portletWidget/framework/service/entitydef/entitymodel.xml (original)
+++ ofbiz/branches/20120329_portletWidget/framework/service/entitydef/entitymodel.xml Mon Jul 2 11:02:34 2012
@@ -51,6 +51,7 @@ under the License.
<field name="serviceName" type="name"></field>
<field name="loaderName" type="name"></field>
<field name="maxRetry" type="numeric"></field>
+ <field name="currentRetryCount" type="numeric"></field>
<field name="authUserLoginId" type="id-vlong"></field>
<field name="runAsUser" type="id-vlong"></field>
<field name="runtimeDataId" type="id"></field>
@@ -62,6 +63,7 @@ under the License.
<field name="startDateTime" type="date-time"></field>
<field name="finishDateTime" type="date-time"></field>
<field name="cancelDateTime" type="date-time"></field>
+ <field name="jobResult" type="value"></field>
<prim-key field="jobId"/>
<relation type="one" fk-name="JOB_SNDBX_RECINFO" rel-entity-name="RecurrenceInfo">
<key-map field-name="recurrenceInfoId"/>