var params = arguments.parameters;
var selectorObj = getSelectorObj();
var errorMsgCustom = 'An error occurred while trying to perform the operation.';
var resultCEData = ArrayNew(1);
var widthVal = "400px";
var heightVal = "200px";
var fldCurValArray = ListToArray(arguments.value);
var fldCurValWithFldID = '';
var i = 0;
params.rootValue = trim(params.rootValue);
resultCEData = getData(propertiesStruct=params, elementID=arguments.formID, fieldID=arguments.fieldID, value=arguments.value);
if ( IsArray(resultCEData) AND ArrayLen(resultCEData) AND NOT IsSimpleValue(resultCEData[1]) )
errorMsgCustom = '';
else if (ArrayLen(resultCEData) EQ 0)
errorMsgCustom = 'No records found to be displayed for the field.';
// Set the width and height value
if (StructKeyExists(params,'widthValue') AND IsNumeric(params.widthValue))
widthVal = "#params.widthValue#px";
if (StructKeyExists(params,'heightValue') AND IsNumeric(params.heightValue))
heightVal = "#params.heightValue#px";
// Prepend the current values with fieldID
if (ArrayLen(fldCurValArray))
{
for (i=1; i LTE ArrayLen(fldCurValArray);i=i+1)
{
fldCurValWithFldID = ListAppend(fldCurValWithFldID, '#arguments.fieldID#_#fldCurValArray[i]#');
}
}
#selectorObj.renderStyles(propertiesStruct=params)#
#errorMsgCustom#
if (NOT Len(errorMsgCustom))
renderJSFunctions(argumentCollection=arguments, curFieldValueWithID=fldCurValWithFldID, dataResults=resultCEData);
#Server.CommonSpot.UDF.tag.input(type="hidden", id="#arguments.fieldName#", name="#arguments.fieldName#", value="#arguments.value#")#
private array function getData(required struct propertiesStruct, required numeric elementID, required numeric fieldID, required string value)
{
var data = [];
var selectorObj = getSelectorObj();
//var isInMemory = selectorObj.isMemoryStructureGood(propertiesStruct=arguments.propertiesStruct, elementID=arguments.elementID, fieldID=arguments.fieldID);
//if (isInMemory == 0)
selectorObj.buildMemoryStructure(propertiesStruct=arguments.propertiesStruct, elementID=arguments.elementID, fieldID=arguments.fieldID);
//writeDump(var=Application.dbHierarchyCustomField[arguments.elementID][arguments.fieldID], expand=false);
data = selectorObj.getFilteredData(propertiesStruct=arguments.propertiesStruct, elementID=arguments.elementID, fieldID=arguments.fieldID, currentValues=arguments.value);
//writeDump(var=data, expand=false);
return data;
}
private any function getSelectorObj()
{
var ajaxBeanName = 'dbHierarchySelector';
var selectorObj = application.ADF[ajaxBeanName];
return selectorObj;
}
var inputParameters = application.ADF.data.duplicateStruct(arguments.parameters);
// Set the defaults
if ( NOT StructKeyExists(inputParameters,"datasource") OR !LEN(TRIM(inputParameters.datasource)) )
inputParameters.datasource = "";
if ( NOT StructKeyExists(inputParameters,"sortCriteriaStr") OR !LEN(TRIM(inputParameters.sortCriteriaStr)) )
inputParameters.sortCriteriaStr = "";
//if( NOT StructKeyExists(inputParameters,"widthValue") OR NOT IsNumeric(inputParameters.widthValue) )
// inputParameters.widthValue = "200";
//if( NOT StructKeyExists(inputParameters,"heightValue") OR NOT IsNumeric(inputParameters.heightValue) )
// inputParameters.heightValue = "150";
return inputParameters;
var params = arguments.parameters;
var cftDBhierarchyJS = '';
// Set the 'multiple' property
var bMult = (params.selectionType EQ 'single') ? false : true;
// Set the 'triState' property
var triState = (params.selectionType EQ 'multiAuto') ? true : false;
// Set the 'auto select parent' property
var autoSelectParents = (params.selectionType EQ 'multiAutoParents') ? true : false;
//WriteDump(var=arguments.value,expand=false);
//WriteDump(var=arguments.curFieldValueWithID,expand=false);
//WriteDump(var=arguments.dataResults,expand=false);
application.ADF.scripts.addFooterJS(cftDBhierarchyJS,"TERTIARY");
private any function getValidationJS(required string formName, required string fieldName, required boolean isRequired)
{
if (arguments.isRequired)
return 'hasValue(document.#arguments.formName#.#arguments.fieldName#, "TEXT")';
return "";
}
private string function getValidationMsg()
{
return "Please select a value for the #arguments.label# field.";
}
public void function loadResourceDependencies()
{
application.ADF.scripts.loadJQuery(noConflict=true);
application.ADF.scripts.loadJSTree(loadStyles=false);
//application.ADF.scripts.loadFontAwesome();
}
public string function getResourceDependencies()
{
return listAppend(super.getResourceDependencies(), "jQuery,JSTree");
//return listAppend(super.getResourceDependencies(), "jQuery,JSTree,FontAwesome");
}
// Requires a Build of CommonSpot 10 higher than 10.0.0.313
public numeric function getMinHeight()
{
if (structKeyExists(arguments.parameters, "heightValue") && isNumeric(arguments.parameters.heightValue) && arguments.parameters.heightValue > 0)
return arguments.parameters.heightValue; // always px
return 0;
}
// Requires a Build of CommonSpot 10 higher than 10.0.0.313
public numeric function getMinWidth()
{
if ( 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 // always px
return 0;
}
private boolean function isMultiline()
{
return true;
}