private _buildCommands()

in desktop/src/app/components/job-schedule/action/job-schedule-commands.ts [58:154]


    private _buildCommands() {
        this.edit = this.simpleCommand({
            name: "build",
            ...COMMAND_LABEL_ICON.Edit,
            action: (jobSchedule) => this._editJobSchedule(jobSchedule),
            enabled: (jobSchedule) => jobSchedule.state !== JobScheduleState.completed,
            multiple: false,
            confirm: false,
            notify: false,
            permission: Permission.Write,
        });

        this.delete = this.simpleCommand({
            name: "delete",
            ...COMMAND_LABEL_ICON.Delete,
            action: (jobSchedule: JobSchedule) => this.jobScheduleService.delete(jobSchedule.id),
            permission: Permission.Write,
        });

        this.terminate = this.simpleCommand({
            name: "terminate",
            label: this.i18n.t("task-commands.terminate"),
            icon: "fa fa-stop",
            action: (jobSchedule) => this.jobScheduleService.terminate(jobSchedule.id),
            enabled: (jobSchedule) => jobSchedule.state !== JobScheduleState.completed,
            permission: Permission.Write,
        });

        this.enable = this.simpleCommand({
            name: "enable",
            ...COMMAND_LABEL_ICON.Enable,
            action: (jobSchedule: JobSchedule) => this.jobScheduleService.enable(jobSchedule.id),
            enabled: (jobSchedule: JobSchedule) => {
                return jobSchedule.state === JobScheduleState.disabled
                    || jobSchedule.state === JobScheduleState.completed;
            },
            visible: (jobSchedule: JobSchedule) => {
                return jobSchedule.state === JobScheduleState.disabled
                    || jobSchedule.state === JobScheduleState.completed;
            },
            permission: Permission.Write,
        });

        this.disable = this.simpleCommand({
            name: "disable",
            ...COMMAND_LABEL_ICON.Disable,
            action: (jobSchedule: JobSchedule) => this.jobScheduleService.disable(jobSchedule.id),
            enabled: (jobSchedule: JobSchedule) => jobSchedule.state !== JobScheduleState.disabled,
            visible: (jobSchedule: JobSchedule) => jobSchedule.state !== JobScheduleState.disabled,
            permission: Permission.Write,
        });

        this.clone = this.simpleCommand({
            name: "clone",
            ...COMMAND_LABEL_ICON.Clone,
            action: (jobSchedule) => this._cloneJobSchedule(jobSchedule),
            multiple: false,
            confirm: false,
            notify: false,
            permission: Permission.Write,
        });

        this.exportAsJSON = this.simpleCommand({
            name: "exportAsJSON",
            ...COMMAND_LABEL_ICON.ExportAsJSON,
            action: (jobSchedule) => this._exportAsJSON(jobSchedule),
            multiple: false,
            confirm: false,
            notify: false,
        });

        this.pin = this.simpleCommand({
            name: "pin",
            label: (jobSchedule: JobSchedule) => {
                return this.pinnedEntityService.isFavorite(jobSchedule)
                    ? COMMAND_LABEL_ICON.UnpinFavoriteLabel : COMMAND_LABEL_ICON.PinFavoriteLabel;
            },
            icon: (jobSchedule: JobSchedule) => {
                return this.pinnedEntityService.isFavorite(jobSchedule)
                    ? COMMAND_LABEL_ICON.UnpinFavoriteIcon : COMMAND_LABEL_ICON.PinFavoriteIcon;
            },
            action: (jobSchedule: JobSchedule) => this._pinJobSchedule(jobSchedule),
            confirm: false,
            multiple: false,
        });

        this.commands = [
            this.edit,
            this.delete,
            this.terminate,
            this.enable,
            this.disable,
            this.clone,
            this.exportAsJSON,
            this.pin,
        ];
    }