/* renderStandard() - override to do a FULL width Field with Label above */ public void function renderStandard(required string fieldName, required string fieldDomID, required string value, required string description, required boolean isRequired, required string displayMode) { var showDescr = (arguments.description != "" && useDescription()); var inputParameters = setDefaultParameters(argumentCollection=arguments); arguments.renderLabelAbove = inputParameters.renderFieldLabelAbove; // indentation here mostly reflects dom structure, except where logic is needed if (arguments.displayMode == "hidden") renderControlHidden(argumentCollection=arguments); else { if ( inputParameters.renderFieldLabelAbove OR inputParameters.hideFieldLabelContainer ) { renderFieldContainerStart(argumentCollection=arguments); if ( !inputParameters.hideFieldLabelContainer ) { renderLabelContainerStart(argumentCollection=arguments); renderLabelWrapper(argumentCollection=arguments); renderLabelContainerEnd(argumentCollection=arguments); } renderControlContainerStart(argumentCollection=arguments); renderControlWrapper(argumentCollection=arguments); // handles control UI itself, required indicator, validation js, and field permission if (showDescr) { renderDescrContainerStart(argumentCollection=arguments); renderDescriptionWrapper(argumentCollection=arguments); renderDescrContainerEnd(); } renderControlContainerEnd(argumentCollection=arguments); renderFieldContainerEnd(argumentCollection=arguments); } else { // Use the Standard CFT Rendering super.renderStandard(argumentCollection=arguments); } } } /* renderLabelContainerStart() - override to do a FULL width Field with Label above */ public void function renderLabelContainerStart(boolean isRequired=0, string id="", string labelClass="", string fieldDomID="") { var idHTML = (arguments.fieldDomID != "") ? ' id="#arguments.fieldDomID#_label"': ''; var classTag = getClassTag ( standardClasses="CS_FormFieldLabelContainer #arguments.labelClass#", componentName="FormFieldLabelContainer" ); if ( !StructKeyExists(arguments,"renderLabelAbove") ) arguments.renderLabelAbove = false; if ( arguments.renderLabelAbove ) { // add the styles to render the label full width above writeOutput(''); } else super.renderLabelContainerStart(argumentCollection=arguments); } /* renderLabelContainerEnd() - override to do a FULL width Field with Label above */ public void function renderLabelContainerEnd() { if ( !StructKeyExists(arguments,"renderLabelAbove") ) arguments.renderLabelAbove = false; super.renderLabelContainerEnd(argumentCollection=arguments); if ( arguments.renderLabelAbove ) { // add the clear:both writeOutput('
'); } }
var allAtrs = getAllAttributes(); var inputParameters = application.ADF.data.duplicateStruct(arguments.parameters); var uniqueTableAppend = arguments.fieldID; var ceFormID = arguments.formID; var elementType = ''; var parentFormLabel = ''; var infoArgs = StructNew(); var infoMethod = "getInfo"; var parentElementObj = ''; var childElementObj = Server.CommonSpot.ObjectFactory.getObject('CustomElement'); var datamanagerObj = ''; var parentFormDetails = QueryNew(''); var childElementDetails = QueryNew(''); var childFormName = ''; var ext = ''; var fileName = ''; var fileNameWithExt = ''; var widthVal = "600px"; var heightVal = "150px"; var curPageID = 0; var allFieldsQuery = arguments.fieldQuery; var getDataDetails = QueryNew(''); var getClass = QueryNew(''); var dsn = request.site.datasource; var newData = ''; // Path to component in the ADF var componentOverridePath = "#request.site.csAppsURL#components"; var ajaxBeanName = 'customElementDataManager'; select count(*) as CNT from Data_fieldValue where FormID = AND PageID = AND ControlID = newData = (getDataDetails.cnt == 0) ? 1 : 0; if (NOT IsNumeric(newData)) { if (StructKeyExists(Request.Params, 'newData') AND IsNumeric(Request.Params.newData)) newData = Request.Params.newData; else newData = (StructKeyExists(allAtrs.currentValues, 'AuthorID') AND allAtrs.currentValues.AuthorID GT 0) ? 0 : 1; } if (arguments.formType NEQ 'Custom Metadata Form' AND NOT ListFindNoCase(inputParameters.interfaceOptions, 'disableDatamanager')) request.showSaveAndContinue = 0; else request.showSaveAndContinue = newData; // forces showing or hiding of 'Save & Continue' button if (NOT StructKeyExists(inputParameters, "secondaryElementType")) inputParameters.secondaryElementType = "CustomElement"; /*if (StructKeyExists(Request.Params, 'controlTypeID')) ceFormID = Request.Params.controlTypeID; else if (StructKeyExists(Request.Params, 'formID')) ceFormID = Request.Params.formID; else if (StructKeyExists(allAtrs, 'fields')) ceFormID = allAtrs.fields.formID[1];*/ switch (arguments.formType) { case 'Custom Metadata Form': elementType = 'MetadataForm'; infoMethod = "getForms"; infoArgs.id = formID; break; default: elementType = 'CustomElement'; infoArgs.elementID = formID; break; } if (StructKeyExists(Request.Params,'pageID') AND elementType EQ 'MetadataForm') curPageID = Request.Params.pageID; parentElementObj = Server.CommonSpot.ObjectFactory.getObject(elementType); if (elementType EQ 'MetadataForm') parentFormLabel = parentFormDetails.formName; else parentFormLabel = parentFormDetails.Name; if (IsNumeric(inputParameters.assocCustomElement)) childElementDetails = childElementObj.getList(ID=inputParameters.assocCustomElement); else childElementDetails = childElementObj.getList(ID=inputParameters.childCustomElement); childFormName = childElementDetails.Name; if (Len(inputParameters.compOverride)) { ext = ListLast(inputParameters.compOverride,'.'); if (ext EQ 'cfc') { fileName = Mid(inputParameters.compOverride, 1, Len(inputParameters.compOverride)-Len(ext)-1); fileNamewithExt = inputParameters.compOverride; } else { fileName = inputParameters.compOverride; fileNamewithExt = inputParameters.compOverride & '.cfc'; } try { if ( StructKeyExists(application.ADF,fileName) ) { datamanagerObj = application.ADF[fileName]; ajaxBeanName = fileName; } else if ( FileExists(ExpandPath('#componentOverridePath#/#fileNamewithExt#')) ) { datamanagerObj = CreateObject("component", "#componentOverridePath#/#fileName#"); ajaxBeanName = fileName; } else { datamanagerObj = application.ADF[ajaxBeanName]; } } catch(Any e) { Server.CommonSpot.UDF.mx.doLog("DataManager: Could not load override component '#inputParameters.compOverride#'"); datamanagerObj = application.ADF[ajaxBeanName]; } } else { datamanagerObj = application.ADF[ajaxBeanName]; } if (IsNumeric(inputParameters.widthValue)) { widthVal = "#inputParameters.widthValue#"; if (inputParameters.widthUnit EQ 'percent') widthVal = widthVal & '%'; else widthVal = widthVal & 'px'; } if (IsNumeric(inputParameters.heightValue)) heightVal = "#inputParameters.heightValue#px"; application.ADF.scripts.addHeaderCSS(cftSortByTypeCSS,"TERTIARY"); #Server.CommonSpot.UDF.tag.input(type="hidden", name=arguments.fieldName, value="")# #datamanagerObj.renderStyles(propertiesStruct=inputParameters)#
#datamanagerObj.renderButtons(propertiesStruct=inputParameters,currentValues=allAtrs.currentValues,formID=ceFormID,fieldID=arguments.fieldID,parentFormType=elementType,pageID=curPageID)#
 Loading data from server
#childFormName# records can only be added once the #parentFormLabel# record is saved.
renderJSFunctions(argumentCollection=arguments, ajaxBeanName=ajaxBeanName, formID=ceFormID, elementType=elementType, pageID=curPageID, width=widthVal, height=heightVal, newData=newData); // Load Custom JS Hooks from the datamanager Object arguments.dataTableDomID = "customElementData_#uniqueTableAppend#"; datamanagerObj.renderCustomJSFunctions(argumentCollection=arguments); #Server.CommonSpot.UDF.tag.input(type="hidden", name=arguments.fieldName)#
#Server.CommonSpot.UDF.tag.input(type="hidden", name=arguments.fieldName)#
var inputParameters = application.ADF.data.duplicateStruct(arguments.parameters); if ( NOT StructKeyExists(inputParameters,"renderFieldLabelAbove") OR LEN(inputParameters.renderFieldLabelAbove) LTE 0 ) inputParameters.renderFieldLabelAbove = false; // default: false (boolean - true/false) if ( NOT StructKeyExists(inputParameters,"hideFieldLabelContainer") OR LEN(inputParameters.hideFieldLabelContainer) LTE 0 ) inputParameters.hideFieldLabelContainer = false; // default: false (boolean - true/false) return inputParameters; var inputParameters = application.ADF.data.duplicateStruct(arguments.parameters); var allAtrs = getAllAttributes(); var uniqueTableAppend = arguments.fieldID; // Ajax URL to the proxy component in the context of the site var ajaxComURL = application.ADF.ajaxProxy; var cftDataManagerFooterJS = ''; var CSRF_Token = application.ADF.csSecurity.getCSRF_Token(); application.ADF.scripts.loadUnregisteredResource('/commonspot/dashboard/js/nondashboard-util.js',"JavaScript","foot","TERTIARY",0,0); application.ADF.scripts.addFooterJS(cftDataManagerFooterJS,"TERTIARY"); private boolean function isMultiline() { var inputParameters = setDefaultParameters(argumentCollection=arguments); // Disable isMultiline if renderFieldLabelAbove OR hideFieldLabelContainer if ( inputParameters.renderFieldLabelAbove OR inputParameters.hideFieldLabelContainer ) return false; return true; } public numeric function getMinHeight() { if (structKeyExists(arguments.parameters, "heightValue") && isNumeric(arguments.parameters.heightValue) && arguments.parameters.heightValue > 0) return arguments.parameters.heightValue; // always px return 200; } public numeric function getMinWidth() { if (arguments.parameters.widthUnit == "px" && structKeyExists(arguments.parameters, "widthValue") && isNumeric(arguments.parameters.widthValue) && arguments.parameters.widthValue > 0) return arguments.parameters.widthValue + 160; // 150 is default label width, plus some slack return 800; } public string function getResourceDependencies() { return listAppend(super.getResourceDependencies(), "jQuery,jQueryUI,JQueryDataTables,jQueryUIDefaultTheme"); } public string function loadResourceDependencies() { application.ADF.scripts.loadJQuery(noConflict=true); application.ADF.scripts.loadJQueryUI(); application.ADF.scripts.loadJQueryDataTables(loadStyles="false"); }