Add separate process event contexts

This commit is contained in:
Derek Finlinson
2017-09-14 10:27:49 -06:00
parent 43f6ea36af
commit 2ceb210ab5
2 changed files with 78 additions and 10 deletions
+77 -9
View File
@@ -935,6 +935,11 @@ declare namespace Xrm {
*/
type AttributeType = "boolean" | "datetime" | "decimal" | "double" | "integer" | "lookup" | "memo" | "money" | "optionset" | "string";
/**
* Direction types for a process stage change event
*/
type StageChangeDirection = "next" | "previous";
/**
* Attribute formats for Xrm.Page.Attribute.getFormat().
*/
@@ -1074,15 +1079,6 @@ declare namespace Xrm {
*/
getDepth(): number;
/**
* Gets save-event arguments.
*
* @return The event arguments.
*
* @remarks Returns null for all but the "save" event.
*/
getEventArgs(): SaveEventArguments;
/**
* Gets a reference to the object for which event occurred.
*
@@ -1114,6 +1110,43 @@ declare namespace Xrm {
setSharedVariable<T>(key: string, value: T): void;
}
/**
* Interface for a save event context
*/
interface SaveEventContext extends EventContext {
/**
* Gets save-event arguments.
*
* @return The event arguments.
*
* @remarks Returns null for all but the "save" event.
*/
getEventArgs(): SaveEventArguments;
}
/**
* Interface for a process stage change event context
*/
interface StageChangeEventContext extends EventContext {
/**
* Gets process stage change event arguments.
*
* @return The event arguments.
*
*/
getEventArgs(): StageChangeEventArguments;
}
interface StageSelectedEventContext extends EventContext {
/**
* Gets process stage selected event arguments.
*
* @return The event arguments.
*
*/
getEventArgs(): StageSelectedEventArguments;
}
/**
* Type for a context-sensitive handler.
* @param {EventContext} context The context.
@@ -1916,6 +1949,41 @@ declare namespace Xrm {
preventDefault(): void;
}
/**
* Interface for process stage change event arguments.
*/
interface StageChangeEventArguments {
/**
* Gets the direction of the stage change.
*
* @return The direction.
*
* @remarks Values returned are: "next" or "previous"
*/
getDirection(): Xrm.Page.StageChangeDirection;
/**
* Gets the destionation stage object
*
* @return The stage object
*
* @remarks For switching between entities, returns the previous stage object
*/
getStage(): Xrm.Page.Stage;
}
/**
* Interface for process stage selected event arguments.
*/
interface StageSelectedEventArguments {
/**
* Gets the selected stage object
*
* @return The stage object
*/
getStage(): Xrm.Page.Stage;
}
/**
* Module for the Xrm.Page.data API.
*/
+1 -1
View File
@@ -83,7 +83,7 @@ Xrm.Page.ui.tabs.forEach((tab) => {
/// Demonstrate OnSave event context.
Xrm.Page.data.entity.addOnSave((context) => {
Xrm.Page.data.entity.addOnSave((context : Xrm.Page.SaveEventContext) => {
const eventArgs = context.getEventArgs();
if (eventArgs.getSaveMode() === XrmEnum.SaveMode.AutoSave || eventArgs.getSaveMode() === XrmEnum.SaveMode.SaveAndClose)