- addTask: function (description: string) {
- log.recordAndApply(`${Date.now()} Create ${description}`);
- },
- destroyTask: function (createTimestamp: string) {
- log.recordAndApply(`${Date.now()} Destroy ${createTimestamp} ${Model.getTask(createTimestamp)?.textContent}`);
- },
- setPriority: function (createTimestamp: string, priority: number) {
- log.recordAndApply(`${Date.now()} Priority ${createTimestamp} ${priority}`);
- },
- setState: function (createTimestamp: string, state: string) {
- log.recordAndApply(`${Date.now()} State ${createTimestamp} ${state}`);
+ addTask: function (description: string): Element {
+ const now = Date.now();
+ undoLog.push(`State ${now} deleted`);
+ return <Element>log.recordAndApply(`${now} Create ${description}`);
+ },
+ setPriority: function (createTimestamp: string, newPriority: number, oldPriority: number) {
+ undoLog.push(`Priority ${createTimestamp} ${oldPriority}`);
+ return log.recordAndApply(`${Date.now()} Priority ${createTimestamp} ${newPriority}`);
+ },
+ setState: function (createTimestamp: string, newState: string, oldState: string) {
+ undoLog.push(`State ${createTimestamp} ${oldState}`);
+ return log.recordAndApply(`${Date.now()} State ${createTimestamp} ${newState}`);
+ },
+ undo: function () {
+ if (undoLog.length > 0) {
+ return log.recordAndApply(`${Date.now()} ${undoLog.pop()}`);
+ }