in desktop/src/app/components/job/action/job-commands.ts [57:158]
private _buildCommands() {
this.disable = this.command(DisableJobCommand);
this.edit = this.simpleCommand({
name: "edit",
...COMMAND_LABEL_ICON.Edit,
action: (job) => this._editJob(job),
enabled: (job) => job.state !== JobState.completed,
multiple: false,
confirm: false,
notify: false,
permission: Permission.Write,
});
this.addTask = this.simpleCommand({
name: "add",
...COMMAND_LABEL_ICON.AddTask,
action: (job) => this._addTask(job),
multiple: false,
confirm: false,
notify: false,
enabled: (job) => job.state !== JobState.completed
&& job.state !== JobState.deleting
&& job.state !== JobState.terminating,
permission: Permission.Write,
});
this.clone = this.simpleCommand({
name: "clone",
...COMMAND_LABEL_ICON.Clone,
action: (job) => this._cloneJob(job),
multiple: false,
confirm: false,
notify: false,
permission: Permission.Write,
});
this.delete = this.simpleCommand({
name: "delete",
...COMMAND_LABEL_ICON.Delete,
action: (job: Job) => this.jobService.delete(job.id),
enabled: (job: Job) => job.state !== JobState.deleting && job.state !== JobState.terminating,
permission: Permission.Write,
});
this.terminate = this.command(TerminateJobCommand);
this.enable = this.simpleCommand({
name: "enable",
...COMMAND_LABEL_ICON.Enable,
action: (job: Job) => this.jobService.enable(job.id),
enabled: (job: Job) => job.state === JobState.disabled,
visible: (job: Job) => job.state === JobState.disabled,
permission: Permission.Write,
});
this.createJobSchedule = this.simpleCommand({
name: "createJobSchedule",
...COMMAND_LABEL_ICON.CreateJobScheduleForJobs,
action: (job) => this._createJobSchedule(job),
multiple: false,
confirm: false,
notify: false,
permission: Permission.Write,
});
this.exportAsJSON = this.simpleCommand({
name: "exportAsJson",
...COMMAND_LABEL_ICON.ExportAsJSON,
action: (job) => this._exportAsJSON(job),
multiple: false,
confirm: false,
notify: false,
});
this.pin = this.simpleCommand({
name: "pin",
label: (job: Job) => {
return this.pinnedEntityService.isFavorite(job)
? COMMAND_LABEL_ICON.UnpinFavoriteLabel : COMMAND_LABEL_ICON.PinFavoriteLabel;
},
icon: (job: Job) => {
return this.pinnedEntityService.isFavorite(job)
? COMMAND_LABEL_ICON.UnpinFavoriteIcon : COMMAND_LABEL_ICON.PinFavoriteIcon;
},
action: (job: Job) => this._pinJob(job),
confirm: false,
multiple: false,
});
this.commands = [
this.edit,
this.addTask,
this.delete,
this.terminate,
this.enable,
this.disable,
this.clone,
this.createJobSchedule,
this.exportAsJSON,
this.pin,
];
}