// CUSTOM ELEMENT INFO variables.CUSTOM_ELEMENT = ""; variables.CE_FIELD = ""; // Must have the matching case as the field name in the element. variables.SEARCH_FIELDS = ""; variables.ORDER_FIELD = ""; // Display Text for the Chooser Items ( Defaults to the ORDER_FIELD ) variables.DISPLAY_FIELD = ""; // Item Display Thumbnail Image Field (If specified will render 2 DIVs in each drag & drop Item) variables.SELECT_ITEM_IMAGE_FIELD = ""; // STYLES variables.MAIN_WIDTH = 530; variables.SECTION1_WIDTH = 270; variables.SECTION2_WIDTH = 270; variables.SECTION3_WIDTH = variables.MAIN_WIDTH; variables.SELECT_BOX_HEIGHT = 350; variables.SELECT_BOX_WIDTH = 240; variables.SELECT_ITEM_HEIGHT = 30; variables.SELECT_ITEM_WIDTH = 200; variables.SELECT_ITEM_LEFTCELL_WIDTH = 60; variables.SELECT_ITEM_CLASS = "ui-state-default"; // Only used if SELECT_ITEM_IMAGE_FIELD has been assigned variables.SELECT_ITEM_IMAGE_HEIGHT = 30; variables.SELECT_ITEM_IMAGE_WIDTH = variables.SELECT_ITEM_IMAGE_HEIGHT; // Deprecated Setting - MOVED to the CFT props //variables.JQUERY_UI_THEME = "ui-lightness"; // VARIABLES for v1.1 variables.SHOW_SEARCH = true; // Boolean variables.SHOW_ALL_LINK = true; // Boolean variables.SHOW_ADD_LINK = true; // Boolean variables.SHOW_EDIT_DELETE_LINKS = false; // Boolean - 'false' Disables both Edit and Delete options, 'true' Enables the SHOW_EDIT_LINKS and SHOW_DELETE_LINKS options // VARIABLES for v1.2 for ADF 1.6.2+ variables.AVAILABLE_LABEL = "Available Items"; variables.SELECTED_LABEL = "Selected Items"; variables.NEW_ITEM_LABEL = "Add New Item"; variables.SHOW_EDIT_LINKS = false; // Boolean - SHOW_EDIT_DELETE_LINKS must be true to enable this option variables.SHOW_DELETE_LINKS = false; // Boolean - SHOW_EDIT_DELETE_LINKS must be true to enable this option variables.SHOW_INSTRUCTIONS = true; // Boolean var itm = 1; var thisParam = ""; var argStr = ""; var reHTML = ""; var argsData = StructNew(); // Set the chooserApp if not passed in if ( !StructKeyExists(arguments,"chooserApp") OR LEN(TRIM(arguments.chooserApp)) EQ 0 ) arguments.chooserApp = "ADF"; // Set the bean name is not passed in if ( !StructKeyExists(arguments,"chooserBean") OR LEN(TRIM(arguments.chooserBean)) EQ 0 ) arguments.chooserBean = ListLast(getMetaData().name,"."); // loop through request.params parameters to get arguments for( itm=1; itm lte listLen(structKeyList(arguments)); itm=itm+1 ) { thisParam = listGetAt(structKeyList(arguments), itm); if( thisParam neq "method" and thisParam neq "bean" and thisParam neq "chooserMethod" and thisParam neq "appName" ) argsData[thisParam] = arguments[thisParam]; } // Call the chooser method with params to process the request reHTML = application.ADF.utils.runCommand(beanName=arguments.chooserBean, methodName=arguments.chooserMethod, args=argsData, appName=arguments.chooserApp); return reHTML; var initArgs = StructNew(); initArgs.fieldName = arguments.fieldName; initArgs.formname = arguments.formname; initArgs.currentValue = arguments.currentValue; initArgs.readOnly = arguments.readOnly; initArgs.rendertabindex = arguments.rendertabindex; initArgs.fieldID = arguments.fieldName; initArgs.csPageID = request.page.id; initArgs.dataPageID = structKeyExists(request.params, "dataPageID") ? request.params.dataPageID : structKeyExists(request.params, "pageID") ? request.params.pageID : request.page.id; initArgs.controlID = structKeyExists(request.params, "controlID") ? request.params.controlID : 0; initArgs.inputParameters = arguments.inputParameters; initArgs.gcCustomParams = getCustomGCparams(); return initArgs; var selectionArgs = StructNew(); selectionArgs.fieldName = arguments.fieldName; selectionArgs.formname = arguments.formname; selectionArgs.item = arguments.currentValue; selectionArgs.queryType = "selected"; // default initial selected GET selectionArgs.fieldID = arguments.fieldName; selectionArgs.readOnly = arguments.readOnly; selectionArgs.csPageID = request.page.id; selectionArgs.dataPageID = structKeyExists(request.params, "dataPageID") ? request.params.dataPageID : structKeyExists(request.params, "pageID") ? request.params.pageID : request.page.id; selectionArgs.controlID = structKeyExists(request.params, "controlID") ? request.params.controlID : 0; selectionArgs.inputParameters = arguments.inputParameters; selectionArgs.gcCustomParams = getCustomGCparams(); return selectionArgs; var custParams = StructNew(); // Custom Parameters // - Category ID Filter Default // -- Option 1: Just set the default // custParams.categoryID = ""; // -- Option 2: Allow the Category to be pre-selected by passing in the categoryID from calling page (?categoryID=) // custParams.categoryID = StructKeyExists(request.params,"categoryID") ? request.params.categoryID : ""; return custParams; var retInitHTML = ""; var itemCellRightHeight = ""; if ( StructKeyExists(variables,"SELECT_ITEM_HEIGHT") AND IsNumeric(variables.SELECT_ITEM_HEIGHT) ) itemCellRightHeight = (variables.SELECT_ITEM_HEIGHT-4); // Backward Compatibility - if a SELECT_ITEM_IMAGE_FIELD value not given or is not defined if ( !StructKeyExists(variables,"SELECT_ITEM_IMAGE_FIELD") ) variables.SELECT_ITEM_IMAGE_FIELD = ""; // Backward Compatibility - if a SELECT_ITEM_LEFTCELL_WIDTH value not given or is not defined if ( !StructKeyExists(variables,"SELECT_ITEM_LEFTCELL_WIDTH") ) variables.SELECT_ITEM_LEFTCELL_WIDTH = 60; // Allow Space for the Edit and/or Delete links if ( variables.SHOW_EDIT_DELETE_LINKS AND (variables.SHOW_EDIT_LINKS OR variables.SHOW_DELETE_LINKS) AND IsNumeric(variables.SELECT_ITEM_HEIGHT) ) itemCellRightHeight = (variables.SELECT_ITEM_HEIGHT-20); var passthroughParamsStr = getPassthroughParamsString(arguments.inputParameters); var cftGeneralChooserFooterJS = ''; // Set inputParameters Default values if ( NOT StructKeyExists(arguments.inputParameters,"chooserCFCName") ) arguments.inputParameters.chooserCFCName = ListLast(getMetadata().name,"."); if ( NOT StructKeyExists(arguments.inputParameters,"chooserAppName") ) arguments.inputParameters.chooserAppName = ""; if ( NOT StructKeyExists(arguments.inputParameters,"req") ) arguments.inputParameters.req = false; if ( NOT StructKeyExists(arguments.inputParameters,"loadAvailable") ) arguments.inputParameters.loadAvailable = 0; if( NOT StructKeyExists(arguments.inputParameters, "loadAvailableOption") ) arguments.inputParameters.loadAvailableOption = "useServerSide"; // useServerSide or useJavascript if ( NOT StructKeyExists(arguments.inputParameters,"minSelections") ) arguments.inputParameters.minSelections = ""; if ( NOT StructKeyExists(arguments.inputParameters,"maxSelections") ) arguments.inputParameters.maxSelections = ""; application.ADF.scripts.addFooterJS(cftGeneralChooserFooterJS,"TERTIARY"); var retSearchBoxHTML = ""; var cftChooserSearchBoxJS = ""; // Backward compatibility to allow the variables from General Chooser v1.0 site and app override GC files to honored if ( StructKeyExists(variables,"SHOW_SECTION1") ) variables.SHOW_SEARCH = variables.SHOW_SECTION1; application.ADF.scripts.addFooterJS(cftChooserSearchBoxJS,"TERTIARY"); var retAddLinkHTML = ""; var ceFormID = 0; var passthroughParamsStr = getPassthroughParamsString(arguments.inputParameters); var cftChooserAddNewBtnJS = ''; // Backward Compatibility to allow the variables from General Chooser v1.0 site and app override GC files to be honored // - if the section2 variable is used and set to false... not ADD button should be displayed if ( StructKeyExists(variables,"SHOW_SECTION2") AND variables.SHOW_SECTION2 EQ false ) variables.SHOW_ADD_LINK = false; // - if SHOW_ADD_LINK is still true (and SHOW_SECTION2 is true) then check for the ADD_NEW_FLAG variable if ( StructKeyExists(variables,"ADD_NEW_FLAG") AND variables.SHOW_ADD_LINK NEQ false ) variables.SHOW_ADD_LINK = variables.ADD_NEW_FLAG; application.ADF.scripts.addFooterJS(cftChooserAddNewBtnJS,"TERTIARY"); var retItemLinksHTML = ""; var editMethod = "renderAddEditForm"; var deleteMethod = "renderDeleteForm"; var editButtonHTML = ""; var deleteButtonHTML = ""; if ( variables.SHOW_EDIT_DELETE_LINKS AND !arguments.readonly ) { retItemLinksHTML = ""; // Build the ITEM Edit button if ( variables.SHOW_EDIT_LINKS ) { editButtonHTML = loadEditItemLink(fieldName=arguments.fieldName,bean=arguments.bean,method=editMethod,formid=arguments.formid,csPageID=arguments.csPageID,readonly=arguments.readonly,displayText=arguments.displayText); if ( LEN(TRIM(editButtonHTML)) ) { retItemLinksHTML = retItemLinksHTML & ""; } } // Build the ITEM Delete button if ( variables.SHOW_DELETE_LINKS ) { deleteButtonHTML = loadDeleteItemLink(fieldName=arguments.fieldName,bean=arguments.bean,method=deleteMethod,formid=arguments.formid,csPageID=arguments.csPageID,readonly=arguments.readonly,displayText=arguments.displayText); if ( LEN(TRIM(deleteButtonHTML)) ) { retItemLinksHTML = retItemLinksHTML & ""; } } retItemLinksHTML = retItemLinksHTML & "
"; retItemLinksHTML = retItemLinksHTML & TRIM(editButtonHTML); retItemLinksHTML = retItemLinksHTML & ""; retItemLinksHTML = retItemLinksHTML & TRIM(deleteButtonHTML); retItemLinksHTML = retItemLinksHTML & "
"; } return retItemLinksHTML;
var retEditLinkHTML = ""; var retDeleteLinkHTML = ""; var retLabelHTML = ""; var aLabel = variables.AVAILABLE_LABEL; #aLabel#: (DISABLED) var retLabelHTML = ""; var sLabel = variables.SELECTED_LABEL; #sLabel#: (DISABLED) var retInstructionsHTML = ""; var aLabel = variables.AVAILABLE_LABEL; var sLabel = variables.SELECTED_LABEL; var renderInstructions = true; if ( StructKeyExists(variables,"SHOW_INSTRUCTIONS") AND variables.SHOW_INSTRUCTIONS ) variables.SHOW_INSTRUCTIONS = false; Select the records you want to include in the selections by dragging items into or out of the '#aLabel#' list. Order the columns within the datasheet by dragging items within the '#sLabel#' field. var retHTML = ""; var i = 1; var displayTextTrimSize = 26; var itemCls = ""; var editDeleteLinks = ""; var editDeleteButtonHTML = ""; var itemEditDeleteCls = "itemEditDelete"; var ceDataArray = ArrayNew(1); var displayText = ''; var imgURL = ""; var imgData = StructNew(); var retHTMLImg = ""; // Backward Compatibility - if SELECT_ITEM_IMAGE_FIELD and SELECT_ITEM_IMAGE_HEIGHT values are not given or not defined if ( !StructKeyExists(variables,"SELECT_ITEM_IMAGE_FIELD") ) variables.SELECT_ITEM_IMAGE_FIELD = ""; if ( !StructKeyExists(variables,"SELECT_ITEM_IMAGE_HEIGHT") ) variables.SELECT_ITEM_IMAGE_HEIGHT = (variables.SELECT_ITEM_HEIGHT - 4); // Look for additional arguments/values passed in that match the gcCustomParams for ( key IN arguments.gcCustomParams ) { if ( StructKeyExists(arguments,key) ) arguments.gcCustomParams[key] = arguments[key]; } // Get the Items to display ceDataArray = getChooserData(item=arguments.item, queryType=arguments.queryType, searchValues=arguments.searchValues, csPageID=arguments.csPageID, gcCustomParams=arguments.gcCustomParams); // Backward Compatibility - if a DISPLAY_TEXT variable not given or is not defined the ORDER_FIELD will still be used for the Item display text if ( NOT StructKeyExists(variables,"DISPLAY_FIELD") OR LEN(TRIM(variables.DISPLAY_FIELD)) EQ 0 ) variables.DISPLAY_FIELD = variables.ORDER_FIELD; // Loop over the data for ( i=1; i LTE ArrayLen(ceDataArray); i=i+1) { // Assemble the render HTML if ( StructKeyExists(ceDataArray[i].Values, "#variables.DISPLAY_FIELD#") AND LEN(ceDataArray[i].Values[variables.DISPLAY_FIELD]) AND StructKeyExists(ceDataArray[i].Values, "#variables.CE_FIELD#") AND LEN(ceDataArray[i].Values[variables.CE_FIELD]) ) { // Reset the item class on every loop iteration itemCls = variables.SELECT_ITEM_CLASS; // Build the Edit/Delete links if ( variables.SHOW_EDIT_DELETE_LINKS AND !arguments.readonly ) { // Render the Buttons HTML editDeleteButtonHTML = loadEditDeleteItemLinks(fieldName=arguments.fieldID,formid=ceDataArray[i].formID,csPageID=ceDataArray[i].pageID,readonly=arguments.readonly,displayText=ceDataArray[i].Values[variables.DISPLAY_FIELD]); if ( LEN(TRIM(editDeleteButtonHTML)) ) { editDeleteLinks = "
"; editDeleteLinks = editDeleteLinks & TRIM(editDeleteButtonHTML); editDeleteLinks = editDeleteLinks & "
"; // Set the item class to add the spacing for the edit/delete links itemCls = itemCls & " " & itemEditDeleteCls; } } // Update: Now trimmed with CSS overflow: hidden displayText = ceDataArray[i].Values[variables.DISPLAY_FIELD]; // Set the display text and determine if need "..." //displayText = LEFT(ceDataArray[i].Values[variables.DISPLAY_FIELD], displayTextTrimSize); //if ( LEN(displayText) GT displayTextTrimSize ) // displayText = displayText & "..."; if ( StructKeyExists(variables,"SELECT_ITEM_IMAGE_FIELD") AND LEN(TRIM(variables.SELECT_ITEM_IMAGE_FIELD)) AND StructKeyExists(ceDataArray[i].Values,variables.SELECT_ITEM_IMAGE_FIELD) ) { // Render a thumbnail image. use a blank 1x1 gif if the image field is not required and has no value. retHTMLImg = ""; imgURL = ""; imgData = StructNew(); if ( LEN(TRIM(ceDataArray[i].Values[variables.SELECT_ITEM_IMAGE_FIELD])) ) { imgData = application.ADF.csData.decipherCPIMAGE(ceDataArray[i].Values[variables.SELECT_ITEM_IMAGE_FIELD]); if ( IsStruct(imgData) AND structKeyExists(imgData,"resolvedURL") and structKeyExists(imgData.resolvedURL,"serverRelative") and len(imgData.resolvedURL.serverRelative) ) imgURL = imgData.resolvedURL.serverRelative; if ( LEN(TRIM(imgURL)) ) retHTMLImg = ""; } // Build the item, image, and add the Edit/Delete links displayText = "
#retHTMLImg#
#displayText#
"; } // Build the item, and add the Edit/Delete links retHTML = retHTML & "
  • "; retHTML = retHTML & displayText & editDeleteLinks; retHTML = retHTML & "
  • "; } } // Check if we had any values if ( LEN(TRIM(retHTML)) EQ 0 ) retHTML = "No records to display."; return retHTML;
    // Initialize the return variable var retHTML = ""; // Get the CE Data var dataArray = ArrayNew(1); // clean the search text if ( arguments.queryType eq "search" ) arguments.searchValues = cleanChooserSearchText(arguments.searchValues); // Get custom element data // Check if we are returning all the records when items is empty string and querytype is NOTselected if ( (arguments.queryType EQ "notselected") AND (LEN(arguments.item) LTE 0) ) dataArray = getCEData(variables.CUSTOM_ELEMENT); else dataArray = getCEData(variables.CUSTOM_ELEMENT, variables.CE_FIELD, arguments.item, arguments.queryType, arguments.searchValues, variables.SEARCH_FIELDS); // if are returning the selected items // sort the dataArray array order to match the passed in items ID order if ( arguments.queryType NEQ "selected" ) { // sort the dataArray dataArray = arrayOfCEDataSort(dataArray, variables.ORDER_FIELD); } return dataArray; var retText = arguments.inText; // remove the single quote // 12-16-2016 - GAC - This single "straight" quote filter is no longer needed //retText = Replace(retText,chr(39),"&##39;","all"); // remove the double quote // 12-16-2016 - GAC - This double "straight" quotes filter is no longer needed // retText = Replace(retText,chr(34),"&##34;","all"); // Escape all special characters // Not needed at this time //retText = server.commonspot.udf.html.escape(retText); return retText; function getPassthroughParamsString(inputParameters) { var passthroughParamsStr = ""; var aParams= ""; var i = 0; if (structKeyExists(arguments.inputParameters, "passthroughParams") && arguments.inputParameters.passthroughParams != "") { aParams = listToArray(arguments.inputParameters.passthroughParams); for (i = 1; i <= arrayLen(aParams); i++) { if (structKeyExists(request.params, aParams[i])) passthroughParamsStr = "#passthroughParamsStr#&#aParams[i]#=#request.params[aParams[i]]#"; } } return passthroughParamsStr; }