43 lines
1.6 KiB
JavaScript
43 lines
1.6 KiB
JavaScript
function newGovernanceUtilitiesValidations() {
|
|
let thisObject = {
|
|
onlyOneProgram: onlyOneProgram,
|
|
onlyOneProgramBasedOnConfigProperty: onlyOneProgramBasedOnConfigProperty
|
|
}
|
|
|
|
return thisObject
|
|
|
|
function onlyOneProgram(userProfile, programNodeType) {
|
|
/*
|
|
Find all the nodes representing the current program.
|
|
*/
|
|
let programs = UI.projects.visualScripting.utilities.branches.nodeBranchToArray(userProfile, programNodeType)
|
|
if (programs !== undefined) {
|
|
if (programs.length > 1) {
|
|
userProfile.payload.uiObject.setErrorMessage(
|
|
'Only one ' + programNodeType + ' is allowed.',
|
|
UI.projects.governance.globals.designer.SET_ERROR_COUNTER_FACTOR
|
|
)
|
|
return
|
|
}
|
|
if (programs.length === 1) {
|
|
return programs[0]
|
|
}
|
|
}
|
|
}
|
|
|
|
function onlyOneProgramBasedOnConfigProperty(userProfile, programNodeType, configProperetyName, configProperetyValue) {
|
|
/*
|
|
Find all the nodes representing the current program.
|
|
*/
|
|
let programs = UI.projects.visualScripting.utilities.branches.nodeBranchToArray(userProfile, programNodeType)
|
|
if (programs !== undefined) {
|
|
for (let i = 0; i < programs.length; i++) {
|
|
let program = programs[i]
|
|
let propertyValue = UI.projects.visualScripting.utilities.nodeConfig.loadConfigProperty(program.payload, configProperetyName)
|
|
if (propertyValue === configProperetyValue) {
|
|
return program
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |