StateTrackingManager

StateTrackingManager subclass that's aware of the Scheduler Pro data structure specifics, namely supports tracking of event segment changes.

There is normally no need to deal with this class manually since it's instantiated automatically by the project and can be reached like this:

project.stm

Tracking store changes

Tracks the state of every store registered via addStore. It is disabled by default so remember to call enable when your stores are registered and initial dataset is loaded. Use undo / redo method calls to restore state to a particular point in time

stm = new StateTrackingManager({
    autoRecord : true,
    listeners  : {
       'recordingstop' : () => {
           // your custom code to update undo/redo GUI controls
           updateUndoRedoControls();
       },
       'restoringstop' : ({ stm }) => {
           // your custom code to update undo/redo GUI controls
           updateUndoRedoControls();
       }
   },
   getTransactionTitle : (transaction) => {
       // your custom code to analyze the transaction and return custom transaction title
       const lastAction = transaction.queue[transaction.queue.length - 1];

       if (lastAction instanceof AddAction) {
           let title = 'Add new record';
       }

       return title;
   }
});

stm.addStore(userStore);
stm.addStore(companyStore);
stm.addStore(otherStore);

stm.enable();

Resetting the queue on data loading

When loading data from the server it makes perfect sense to reset the queue.

If project (CrudManager protocol) is used for data loading it can be done like this:

project.on({
    load() {
        project.stm.resetQueue();
    }
});

and in case individual stores are used:

ajaxStore.on({
    load() {
        ajaxStore.stm.resetQueue();
    }
});

Configs

10

Common

listenersEvents

Misc

Other

autoRecordStateTrackingManager
autoRecordMergeUpdateActionsStateTrackingManager
disabledStateTrackingManager
getTransactionTitleStateTrackingManager

Revisions

revisionsEnabledStateTrackingManager

Properties

22

Class hierarchy

isStateTrackingManager: Boolean= truereadonly
Identifies an object as an instance of StateTrackingManager class, or subclass thereof.
isStateTrackingManager: Boolean= truereadonlystatic
Identifies an object as an instance of StateTrackingManager class, or subclass thereof.
isEventsEvents

Lifecycle

configBase

Misc

Other

autoRecordStateTrackingManager
canRedoStateTrackingManager
canUndoStateTrackingManager
disabledStateTrackingManager
isReadyStateTrackingManager
isRecordingStateTrackingManager
isRestoringStateTrackingManager
lengthStateTrackingManager
positionStateTrackingManager
queueStateTrackingManager
stateStateTrackingManager
storesStateTrackingManager
transactionStateTrackingManager

Functions

41

Configuration

applyDefaultsstaticBase

Events

Lifecycle

destroystaticBase

Misc

initClassstaticBase
isOfTypeNamestaticBase
mixinstaticBase

Other

addStoreStateTrackingManager
disableStateTrackingManager
enableStateTrackingManager
forEachStoreStateTrackingManager
hasStoreStateTrackingManager
mergeTransactionUpdateActionsStateTrackingManager
onEvents
redoStateTrackingManager
redoAllStateTrackingManager
rejectTransactionStateTrackingManager
relayAllEvents
removeStoreStateTrackingManager
resetQueueStateTrackingManager
resetRedoQueueStateTrackingManager
resetUndoQueueStateTrackingManager
startTransactionStateTrackingManager
stopTransactionStateTrackingManager
triggerEvents
unEvents
undoStateTrackingManager
undoAllStateTrackingManager

Events

16
catchAllEvents
checkoutStartStateTrackingManager
checkoutToHeadStateTrackingManager
destroyEvents
disabledStateTrackingManager
queueResetStateTrackingManager
recordingStartStateTrackingManager
recordingStopStateTrackingManager
restoringStartStateTrackingManager
restoringStopStateTrackingManager
revisionAddStateTrackingManager
revisionRecordingStartStateTrackingManager
revisionRecordingStopStateTrackingManager
temporaryRevisionRecordingStopStateTrackingManager

Event handlers

16
onCheckoutStartStateTrackingManager
onCheckoutToHeadStateTrackingManager
onDestroyEvents
onDisabledStateTrackingManager
onQueueResetStateTrackingManager
onRecordingStartStateTrackingManager
onRecordingStopStateTrackingManager
onRestoringStartStateTrackingManager
onRestoringStopStateTrackingManager
onRevisionAddStateTrackingManager
onRevisionRecordingStartStateTrackingManager
onRevisionRecordingStopStateTrackingManager

Typedefs

1