devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
607 lines (606 loc) • 24.3 kB
JavaScript
/**
* DevExtreme (cjs/ui/gantt/ui.gantt.actions.js)
* Version: 21.2.4
* Build date: Mon Dec 06 2021
*
* Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
"use strict";
exports.GanttActionsManager = void 0;
var Actions = {
onContextMenuPreparing: "onContextMenuPreparing",
onCustomCommand: "onCustomCommand",
onDependencyDeleted: "onDependencyDeleted",
onDependencyDeleting: "onDependencyDeleting",
onDependencyInserted: "onDependencyInserted",
onDependencyInserting: "onDependencyInserting",
onResourceAssigned: "onResourceAssigned",
onResourceAssigning: "onResourceAssigning",
onResourceDeleted: "onResourceDeleted",
onResourceDeleting: "onResourceDeleting",
onResourceInserted: "onResourceInserted",
onResourceInserting: "onResourceInserting",
onResourceManagerDialogShowing: "onResourceManagerDialogShowing",
onResourceUnassigned: "onResourceUnassigned",
onResourceUnassigning: "onResourceUnassigning",
onSelectionChanged: "onSelectionChanged",
onTaskClick: "onTaskClick",
onTaskDblClick: "onTaskDblClick",
onTaskDeleted: "onTaskDeleted",
onTaskDeleting: "onTaskDeleting",
onTaskEditDialogShowing: "onTaskEditDialogShowing",
onTaskInserted: "onTaskInserted",
onTaskInserting: "onTaskInserting",
onTaskMoving: "onTaskMoving",
onTaskUpdated: "onTaskUpdated",
onTaskUpdating: "onTaskUpdating"
};
var GANTT_TASKS = "tasks";
var GANTT_DEPENDENCIES = "dependencies";
var GANTT_RESOURCES = "resources";
var GANTT_RESOURCE_ASSIGNMENTS = "resourceAssignments";
var GANTT_NEW_TASK_CACHE_KEY = "gantt_new_task_key";
var GanttActionsManager = function() {
function GanttActionsManager(gantt) {
this._gantt = gantt;
this._mappingHelper = gantt._mappingHelper;
this._customFieldsManager = gantt._customFieldsManager
}
var _proto = GanttActionsManager.prototype;
_proto._createActionByOption = function(optionName) {
return this._gantt._createActionByOption(optionName)
};
_proto._getTaskData = function(key) {
return this._gantt.getTaskData(key)
};
_proto._convertCoreToMappedData = function(optionName, coreData) {
return this._mappingHelper.convertCoreToMappedData(optionName, coreData)
};
_proto._convertMappedToCoreData = function(optionName, mappedData) {
return this._mappingHelper.convertMappedToCoreData(optionName, mappedData)
};
_proto._convertMappedToCoreFields = function(optionName, fields) {
return this._mappingHelper.convertMappedToCoreFields(optionName, fields)
};
_proto._convertCoreToMappedFields = function(optionName, fields) {
return this._mappingHelper.convertCoreToMappedFields(optionName, fields)
};
_proto._saveCustomFieldsDataToCache = function(key, data) {
var forceUpdateOnKeyExpire = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;
var isCustomFieldsUpdateOnly = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : false;
this._customFieldsManager.saveCustomFieldsDataToCache(key, data, forceUpdateOnKeyExpire, isCustomFieldsUpdateOnly)
};
_proto.createTaskDblClickAction = function() {
this._taskDblClickAction = this._createActionByOption(Actions.onTaskDblClick)
};
_proto.taskDblClickAction = function(args) {
if (!this._taskDblClickAction) {
this.createTaskDblClickAction()
}
this._taskDblClickAction(args)
};
_proto.raiseTaskDblClickAction = function(key, event) {
var args = {
cancel: false,
data: this._getTaskData(key),
event: event,
key: key
};
this.taskDblClickAction(args);
return !args.cancel
};
_proto.createTaskClickAction = function() {
this._taskClickAction = this._createActionByOption(Actions.onTaskClick)
};
_proto.taskClickAction = function(args) {
if (!this._taskClickAction) {
this.createTaskClickAction()
}
this._taskClickAction(args)
};
_proto.raiseTaskClickAction = function(key, event) {
var args = {
key: key,
event: event,
data: this._getTaskData(key)
};
this.taskClickAction(args)
};
_proto.createSelectionChangedAction = function() {
this._selectionChangedAction = this._createActionByOption(Actions.onSelectionChanged)
};
_proto.selectionChangedAction = function(args) {
if (!this._selectionChangedAction) {
this.createSelectionChangedAction()
}
this._selectionChangedAction(args)
};
_proto.raiseSelectionChangedAction = function(selectedRowKey) {
this.selectionChangedAction({
selectedRowKey: selectedRowKey
})
};
_proto.createCustomCommandAction = function() {
this._customCommandAction = this._createActionByOption(Actions.onCustomCommand)
};
_proto.customCommandAction = function(args) {
if (!this._customCommandAction) {
this.createCustomCommandAction()
}
this._customCommandAction(args)
};
_proto.raiseCustomCommand = function(commandName) {
this.customCommandAction({
name: commandName
})
};
_proto.createContextMenuPreparingAction = function() {
this._contextMenuPreparingAction = this._createActionByOption(Actions.onContextMenuPreparing)
};
_proto.contextMenuPreparingAction = function(args) {
if (!this._contextMenuPreparingAction) {
this.createContextMenuPreparingAction()
}
this._contextMenuPreparingAction(args)
};
_proto.raiseContextMenuPreparing = function(options) {
this.contextMenuPreparingAction(options)
};
_proto._getInsertingAction = function(optionName) {
switch (optionName) {
case GANTT_TASKS:
return this._getTaskInsertingAction();
case GANTT_DEPENDENCIES:
return this._getDependencyInsertingAction();
case GANTT_RESOURCES:
return this._getResourceInsertingAction();
case GANTT_RESOURCE_ASSIGNMENTS:
return this._getResourceAssigningAction()
}
return function() {}
};
_proto.raiseInsertingAction = function(optionName, coreArgs) {
var action = this._getInsertingAction(optionName);
if (action) {
var args = {
cancel: false,
values: this._convertCoreToMappedData(optionName, coreArgs.values)
};
action(args);
coreArgs.cancel = args.cancel;
coreArgs.values = this._convertMappedToCoreData(optionName, args.values);
if (optionName === GANTT_TASKS) {
this._saveCustomFieldsDataToCache(GANTT_NEW_TASK_CACHE_KEY, args.values)
}
}
};
_proto.createTaskInsertingAction = function() {
this._taskInsertingAction = this._createActionByOption(Actions.onTaskInserting)
};
_proto.taskInsertingAction = function(args) {
var action = this._getTaskInsertingAction();
action(args)
};
_proto._getTaskInsertingAction = function() {
if (!this._taskInsertingAction) {
this.createTaskInsertingAction()
}
return this._taskInsertingAction
};
_proto.createDependencyInsertingAction = function() {
this._dependencyInsertingAction = this._createActionByOption(Actions.onDependencyInserting)
};
_proto.dependencyInsertingAction = function(args) {
var action = this._getDependencyInsertingAction();
action(args)
};
_proto._getDependencyInsertingAction = function() {
if (!this._dependencyInsertingAction) {
this.createDependencyInsertingAction()
}
return this._dependencyInsertingAction
};
_proto.createResourceInsertingAction = function() {
this._resourceInsertingAction = this._createActionByOption(Actions.onResourceInserting)
};
_proto.resourceInsertingAction = function(args) {
var action = this._getResourceInsertingAction();
action(args)
};
_proto._getResourceInsertingAction = function() {
if (!this._resourceInsertingAction) {
this.createResourceInsertingAction()
}
return this._resourceInsertingAction
};
_proto.createResourceAssigningAction = function() {
this._resourceAssigningAction = this._createActionByOption(Actions.onResourceAssigning)
};
_proto.resourceAssigningAction = function(args) {
var action = this._getResourceAssigningAction();
action(args)
};
_proto._getResourceAssigningAction = function() {
if (!this._resourceAssigningAction) {
this.createResourceAssigningAction()
}
return this._resourceAssigningAction
};
_proto._getInsertedAction = function(optionName) {
switch (optionName) {
case GANTT_TASKS:
return this._getTaskInsertedAction();
case GANTT_DEPENDENCIES:
return this._getDependencyInsertedAction();
case GANTT_RESOURCES:
return this._getResourceInsertedAction();
case GANTT_RESOURCE_ASSIGNMENTS:
return this._getResourceAssignedAction()
}
return function() {}
};
_proto.raiseInsertedAction = function(optionName, data, key) {
var action = this._getInsertedAction(optionName);
if (action) {
var args = {
values: data,
key: key
};
action(args)
}
};
_proto.createTaskInsertedAction = function() {
this._taskInsertedAction = this._createActionByOption(Actions.onTaskInserted)
};
_proto.taskInsertedAction = function(args) {
var action = this._getTaskInsertedAction();
action(args)
};
_proto._getTaskInsertedAction = function() {
if (!this._taskInsertedAction) {
this.createTaskInsertedAction()
}
return this._taskInsertedAction
};
_proto.createDependencyInsertedAction = function() {
this._dependencyInsertedAction = this._createActionByOption(Actions.onDependencyInserted)
};
_proto.dependencyInsertedAction = function(args) {
var action = this._getDependencyInsertedAction();
action(args)
};
_proto._getDependencyInsertedAction = function() {
if (!this._dependencyInsertedAction) {
this.createDependencyInsertedAction()
}
return this._dependencyInsertedAction
};
_proto.createResourceInsertedAction = function() {
this._resourceInsertedAction = this._createActionByOption(Actions.onResourceInserted)
};
_proto.resourceInsertedAction = function(args) {
var action = this._getResourceInsertedAction();
action(args)
};
_proto._getResourceInsertedAction = function() {
if (!this._resourceInsertedAction) {
this.createResourceInsertedAction()
}
return this._resourceInsertedAction
};
_proto.createResourceAssignedAction = function() {
this._resourceAssignedAction = this._createActionByOption(Actions.onResourceAssigned)
};
_proto.resourceAssignedAction = function(args) {
var action = this._getResourceAssignedAction();
action(args)
};
_proto._getResourceAssignedAction = function() {
if (!this._resourceAssignedAction) {
this.createResourceAssignedAction()
}
return this._resourceAssignedAction
};
_proto._getDeletingAction = function(optionName) {
switch (optionName) {
case GANTT_TASKS:
return this._getTaskDeletingAction();
case GANTT_DEPENDENCIES:
return this._getDependencyDeletingAction();
case GANTT_RESOURCES:
return this._getResourceDeletingAction();
case GANTT_RESOURCE_ASSIGNMENTS:
return this._getResourceUnassigningAction()
}
return function() {}
};
_proto.raiseDeletingAction = function(optionName, coreArgs) {
var action = this._getDeletingAction(optionName);
if (action) {
var args = {
cancel: false,
key: coreArgs.key,
values: this._convertCoreToMappedData(optionName, coreArgs.values)
};
action(args);
coreArgs.cancel = args.cancel
}
};
_proto.createTaskDeletingAction = function() {
this._taskDeletingAction = this._createActionByOption(Actions.onTaskDeleting)
};
_proto.taskDeletingAction = function(args) {
var action = this._getTaskDeletingAction();
action(args)
};
_proto._getTaskDeletingAction = function() {
if (!this._taskDeletingAction) {
this.createTaskDeletingAction()
}
return this._taskDeletingAction
};
_proto.createDependencyDeletingAction = function() {
this._dependencyDeletingAction = this._createActionByOption(Actions.onDependencyDeleting)
};
_proto.dependencyDeletingAction = function(args) {
var action = this._getDependencyDeletingAction();
action(args)
};
_proto._getDependencyDeletingAction = function() {
if (!this._dependencyDeletingAction) {
this.createDependencyDeletingAction()
}
return this._dependencyDeletingAction
};
_proto.createResourceDeletingAction = function() {
this._resourceDeletingAction = this._createActionByOption(Actions.onResourceDeleting)
};
_proto.resourceDeletingAction = function(args) {
var action = this._getResourceDeletingAction();
action(args)
};
_proto._getResourceDeletingAction = function() {
if (!this._resourceDeletingAction) {
this.createResourceDeletingAction()
}
return this._resourceDeletingAction
};
_proto.createResourceUnassigningAction = function() {
this._resourceUnassigningAction = this._createActionByOption(Actions.onResourceUnassigning)
};
_proto.resourceUnassigningAction = function(args) {
var action = this._getResourceUnassigningAction();
action(args)
};
_proto._getResourceUnassigningAction = function() {
if (!this._resourceUnassigningAction) {
this.createResourceUnassigningAction()
}
return this._resourceUnassigningAction
};
_proto._getDeletedAction = function(optionName) {
switch (optionName) {
case GANTT_TASKS:
return this._getTaskDeletedAction();
case GANTT_DEPENDENCIES:
return this._getDependencyDeletedAction();
case GANTT_RESOURCES:
return this._getResourceDeletedAction();
case GANTT_RESOURCE_ASSIGNMENTS:
return this._getResourceUnassignedAction()
}
return function() {}
};
_proto.raiseDeletedAction = function(optionName, key, data) {
var action = this._getDeletedAction(optionName);
if (action) {
var args = {
key: key,
values: data
};
action(args)
}
};
_proto.createTaskDeletedAction = function() {
this._taskDeletedAction = this._createActionByOption(Actions.onTaskDeleted)
};
_proto.taskDeletedAction = function(args) {
var action = this._getTaskDeletedAction();
action(args)
};
_proto._getTaskDeletedAction = function() {
if (!this._taskDeletedAction) {
this.createTaskDeletedAction()
}
return this._taskDeletedAction
};
_proto.createDependencyDeletedAction = function() {
this._dependencyDeletedAction = this._createActionByOption(Actions.onDependencyDeleted)
};
_proto.dependencyDeletedAction = function(args) {
var action = this._getDependencyDeletedAction();
action(args)
};
_proto._getDependencyDeletedAction = function() {
if (!this._dependencyDeletedAction) {
this.createDependencyDeletedAction()
}
return this._dependencyDeletedAction
};
_proto.createResourceDeletedAction = function() {
this._resourceDeletedAction = this._createActionByOption(Actions.onResourceDeleted)
};
_proto.resourceDeletedAction = function(args) {
var action = this._getResourceDeletedAction();
action(args)
};
_proto._getResourceDeletedAction = function() {
if (!this._resourceDeletedAction) {
this.createResourceDeletedAction()
}
return this._resourceDeletedAction
};
_proto.createResourceUnassignedAction = function() {
this._resourceUnassignedAction = this._createActionByOption(Actions.onResourceUnassigned)
};
_proto.resourceUnassignedAction = function(args) {
var action = this._getResourceUnassignedAction();
action(args)
};
_proto._getResourceUnassignedAction = function() {
if (!this._resourceUnassignedAction) {
this.createResourceUnassignedAction()
}
return this._resourceUnassignedAction
};
_proto._getUpdatingAction = function(optionName) {
switch (optionName) {
case GANTT_TASKS:
return this._getTaskUpdatingAction()
}
return function() {}
};
_proto.raiseUpdatingAction = function(optionName, coreArgs, action) {
action = action || this._getUpdatingAction(optionName);
if (action) {
var isTaskUpdating = optionName === GANTT_TASKS;
var args = {
cancel: false,
key: coreArgs.key,
newValues: this._convertCoreToMappedData(optionName, coreArgs.newValues),
values: isTaskUpdating ? this._getTaskData(coreArgs.key) : this._convertCoreToMappedData(optionName, coreArgs.values)
};
if (isTaskUpdating && this._customFieldsManager.cache.hasData(args.key)) {
this._customFieldsManager.addCustomFieldsDataFromCache(args.key, args.newValues)
}
action(args);
coreArgs.cancel = args.cancel;
coreArgs.newValues = this._convertMappedToCoreData(optionName, args.newValues);
if (isTaskUpdating) {
if (args.cancel) {
this._customFieldsManager.resetCustomFieldsDataCache(args.key)
} else {
var forceUpdateOnKeyExpire = !Object.keys(coreArgs.newValues).length;
this._saveCustomFieldsDataToCache(args.key, args.newValues, forceUpdateOnKeyExpire)
}
}
}
};
_proto.createTaskUpdatingAction = function() {
this._taskUpdatingAction = this._createActionByOption(Actions.onTaskUpdating)
};
_proto.taskUpdatingAction = function(args) {
var action = this._getTaskUpdatingAction();
action(args)
};
_proto._getTaskUpdatingAction = function() {
if (!this._taskUpdatingAction) {
this.createTaskUpdatingAction()
}
return this._taskUpdatingAction
};
_proto._getUpdatedAction = function(optionName) {
switch (optionName) {
case GANTT_TASKS:
return this._getTaskUpdatedAction()
}
return function() {}
};
_proto.raiseUpdatedAction = function(optionName, data, key) {
var action = this._getUpdatedAction(optionName);
if (action) {
var args = {
values: data,
key: key
};
action(args)
}
};
_proto.createTaskUpdatedAction = function() {
this._taskUpdatedAction = this._createActionByOption(Actions.onTaskUpdated)
};
_proto.taskUpdatedAction = function(args) {
var action = this._getTaskUpdatedAction();
action(args)
};
_proto._getTaskUpdatedAction = function() {
if (!this._taskUpdatedAction) {
this.createTaskUpdatedAction()
}
return this._taskUpdatedAction
};
_proto.createTaskEditDialogShowingAction = function() {
this._taskEditDialogShowingAction = this._createActionByOption(Actions.onTaskEditDialogShowing)
};
_proto.taskEditDialogShowingAction = function(args) {
var action = this._getTaskEditDialogShowingAction();
action(args)
};
_proto._getTaskEditDialogShowingAction = function() {
if (!this._taskEditDialogShowingAction) {
this.createTaskEditDialogShowingAction()
}
return this._taskEditDialogShowingAction
};
_proto.raiseTaskEditDialogShowingAction = function(coreArgs) {
var action = this._getTaskEditDialogShowingAction();
if (action) {
var args = {
cancel: false,
key: coreArgs.key,
values: this._convertCoreToMappedData(GANTT_TASKS, coreArgs.values),
readOnlyFields: this._convertCoreToMappedFields(GANTT_TASKS, coreArgs.readOnlyFields),
hiddenFields: this._convertCoreToMappedFields(GANTT_TASKS, coreArgs.hiddenFields)
};
action(args);
coreArgs.cancel = args.cancel;
coreArgs.values = this._convertMappedToCoreData(GANTT_TASKS, args.values);
coreArgs.readOnlyFields = this._convertMappedToCoreFields(GANTT_TASKS, args.readOnlyFields);
coreArgs.hiddenFields = this._convertMappedToCoreFields(GANTT_TASKS, args.hiddenFields)
}
};
_proto.createResourceManagerDialogShowingAction = function() {
this._resourceManagerDialogShowingAction = this._createActionByOption(Actions.onResourceManagerDialogShowing)
};
_proto.resourceManagerDialogShowingAction = function(args) {
var action = this._getResourceManagerDialogShowingAction();
action(args)
};
_proto._getResourceManagerDialogShowingAction = function() {
if (!this._resourceManagerDialogShowingAction) {
this.createResourceManagerDialogShowingAction()
}
return this._resourceManagerDialogShowingAction
};
_proto.raiseResourceManagerDialogShowingAction = function(coreArgs) {
var _this = this;
var action = this._getResourceManagerDialogShowingAction();
if (action) {
var mappedResources = coreArgs.values.resources.items.map((function(r) {
return _this._convertMappedToCoreData(GANTT_RESOURCES, r)
}));
var args = {
cancel: false,
values: mappedResources
};
action(args);
coreArgs.cancel = args.cancel
}
};
_proto.createTaskMovingAction = function() {
this._taskMovingAction = this._createActionByOption(Actions.onTaskMoving)
};
_proto.taskMovingAction = function(args) {
var action = this.getTaskMovingAction();
action(args)
};
_proto.getTaskMovingAction = function() {
if (!this._taskMovingAction) {
this.createTaskMovingAction()
}
return this._taskMovingAction
};
return GanttActionsManager
}();
exports.GanttActionsManager = GanttActionsManager;