xrmscriptworkbench
Version:
The base types to create custom script for Dynamics 365 within a XrmScriptWorkbench project.
37 lines (32 loc) • 1.49 kB
text/typescript
import { FormName, TabName, AttributeName } from './NameTypes';
import { ScriptRegistry } from './ScriptRegistry';
import { FormProxy } from './FormProxy';
export function registration<T extends FormProxy>(logicalName: string, formProxy: (new() => T), ...formNames: Array<FormName>){
return (ctor: Function) => {
let classObject = ctor.prototype;
ScriptRegistry.ClassName = ctor.toString();
ScriptRegistry.LogicalName = logicalName;
ScriptRegistry.ProxyType = formProxy;
ScriptRegistry.FormNames = formNames;
ScriptRegistry.HasOnLoad = classObject.hasOwnProperty('onLoad');
ScriptRegistry.HasOnSave = classObject.hasOwnProperty('onSave');
};
}
export function tabStateChange(formName: FormName, tabName: TabName) {
return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
console.log(propertyKey);
console.dir(target);
};
}
export function attributeChange(formName: FormName, attributeName: AttributeName) {
return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
console.log(propertyKey);
console.dir(target);
};
}
export function attributeVisibility(attributeName: AttributeName, dependentAttribute: AttributeName) {
return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
console.log(propertyKey);
console.dir(target);
};
}