diff --git a/src/app/core/config/config.model.ts b/src/app/core/config/config.model.ts index be882dd596..c7730c8c78 100644 --- a/src/app/core/config/config.model.ts +++ b/src/app/core/config/config.model.ts @@ -9,6 +9,7 @@ export type KeyboardConfig = Readonly<{ showHelp: string, openProjectNotes: string, openDistractionPanel: string, + focusLastActiveTask: string, taskEditTitle: string, taskToggleAdditionalInfoOpen: string, taskOpenEstimationDialog: string, diff --git a/src/app/core/config/default-config.const.ts b/src/app/core/config/default-config.const.ts index 5eb87ca3d3..a3f7182f08 100644 --- a/src/app/core/config/default-config.const.ts +++ b/src/app/core/config/default-config.const.ts @@ -40,6 +40,7 @@ export const DEFAULT_CFG: GlobalConfig = { goToDailyAgenda: '', goToFocusMode: 'F', goToSettings: '', + focusLastActiveTask: 'f', taskEditTitle: 'e', taskToggleAdditionalInfoOpen: 'n', taskOpenEstimationDialog: 't', diff --git a/src/app/core/config/form-cfgs/keyboard-form.const.ts b/src/app/core/config/form-cfgs/keyboard-form.const.ts index 558f866b39..c1a673d687 100644 --- a/src/app/core/config/form-cfgs/keyboard-form.const.ts +++ b/src/app/core/config/form-cfgs/keyboard-form.const.ts @@ -99,6 +99,13 @@ export const KEYBOARD_SETTINGS_FORM_CFG = { label: 'Go to Settings', }, }, + { + key: 'focusLastActiveTask', + type: 'keyboard', + templateOptions: { + label: 'Focus last active task', + }, + }, // TASKS { className: 'tpl', diff --git a/src/app/core/shortcut/shortcut.service.ts b/src/app/core/shortcut/shortcut.service.ts index 9ac60b6c9f..6c860a3ced 100644 --- a/src/app/core/shortcut/shortcut.service.ts +++ b/src/app/core/shortcut/shortcut.service.ts @@ -7,6 +7,7 @@ import { IPC_REGISTER_GLOBAL_SHORTCUT_EVENT } from '../../../ipc-events.const'; import { ElectronService } from 'ngx-electron'; import { LayoutService } from '../layout/layout.service'; import { NoteService } from '../../note/note.service'; +import { TaskService } from '../../tasks/task.service'; @Injectable({ @@ -21,6 +22,7 @@ export class ShortcutService { private _electronService: ElectronService, private _layoutService: LayoutService, private _noteService: NoteService, + private _taskService: TaskService, private _activatedRoute: ActivatedRoute, ) { // // Register electron shortcut(s) @@ -85,6 +87,10 @@ export class ShortcutService { if (checkKeyCombo(ev, keys.goToFocusMode)) { this._router.navigate(['/focus-view']); } + if (checkKeyCombo(ev, keys.focusLastActiveTask)) { + this._router.navigate(['/work-view']); + this._taskService.focusLastActiveTask(); + } if (checkKeyCombo(ev, keys.addNewTask)) { this._layoutService.toggleAddTaskBar(); ev.preventDefault(); diff --git a/src/app/tasks/task.service.ts b/src/app/tasks/task.service.ts index 75eb24cce8..7678c0ed63 100644 --- a/src/app/tasks/task.service.ts +++ b/src/app/tasks/task.service.ts @@ -9,6 +9,7 @@ import { AddTask, AddTimeSpent, DeleteTask, + FocusLastActiveTask, FocusTask, LoadTaskState, Move, @@ -218,6 +219,10 @@ export class TaskService { this._store.dispatch(new FocusTask({id})); } + focusLastActiveTask() { + this._store.dispatch(new FocusLastActiveTask()); + } + moveToToday(id) { this._store.dispatch(new MoveToToday({id})); }