|
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"/> |
| Free forum by Nabble | Edit this page |
