@aappddeevv/dynamics-client-ui
Version:
## What is it? A library to help you create great dynamics applications.
57 lines • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Set of form utilities that overlap somewhat with
* business rules and other Dynamics non-code based
* configuration/customization features. You'll
* need to ensure that the onLoad handle is called
* so this module can obtain the proper form context.
* The "settings" are module wide so you can
* add as many "FormUtilities client" scripts to a form
* as you want.
*
* A FormUtilities client script would look like:
* ```
* import * as FUtils from "dynamics-client-ui/form/FormUtilities" // or wherever
* var cancellable = FUtils.add("rule1",
* // setRequired(predicate, attribute)
* FUtils.setRequired((fctx) =>
* fctx.getAttribute("new_yourfield").getValue() === null,
* "new_someotherfield"))
* ```
*/
require("../Dynamics");
const BuildSettings_1 = require("BuildSettings");
let fCtx;
class SetRequired {
execute() {
console.log("SetRequired.execute");
const current = this.attr.getRequiredLevel();
console.log("current level", current);
this.attr.setRequiredLevel("required" /* Required */);
}
revert() {
console.log("SetRequired.revert");
}
init(attr) {
console.log("SetRequired.init()");
this.attr = attr;
}
}
const rules = {};
function onLoad(ectx) {
if (BuildSettings_1.DEBUG)
console.log("Initializing form utilities.", ectx);
if (ectx)
fCtx = ectx.getFormContext();
}
exports.onLoad = onLoad;
function onLoadRunRules(ectx) {
const fc = ectx.getFormContext();
const line1 = fc.getAttribute("address1_line1");
line1.addOnChange(ectx => {
console.log("line1 changed");
});
}
exports.onLoadRunRules = onLoadRunRules;
//# sourceMappingURL=FormRulesEngine.js.map