2022-04-11 20:08:28 +00:00
|
|
|
import type {RouteLocation} from 'vue-router'
|
2022-01-30 13:05:26 +00:00
|
|
|
|
2021-11-13 20:28:29 +00:00
|
|
|
import {isAppleDevice} from '@/helpers/isAppleDevice'
|
|
|
|
|
|
|
|
const ctrl = isAppleDevice() ? '⌘' : 'ctrl'
|
|
|
|
|
2022-01-30 13:05:26 +00:00
|
|
|
interface Shortcut {
|
|
|
|
title: string
|
|
|
|
keys: string[]
|
|
|
|
combination?: 'then'
|
|
|
|
}
|
|
|
|
|
|
|
|
interface ShortcutGroup {
|
|
|
|
title: string
|
|
|
|
available?: (route: RouteLocation) => boolean
|
|
|
|
shortcuts: Shortcut[]
|
|
|
|
}
|
|
|
|
|
|
|
|
export const KEYBOARD_SHORTCUTS : ShortcutGroup[] = [
|
2021-11-13 20:28:29 +00:00
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.general',
|
|
|
|
shortcuts: [
|
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.toggleMenu',
|
|
|
|
keys: [ctrl, 'e'],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.quickSearch',
|
|
|
|
keys: [ctrl, 'k'],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
2022-03-02 20:59:51 +00:00
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.navigation.title',
|
|
|
|
shortcuts: [
|
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.navigation.overview',
|
|
|
|
keys: ['g', 'o'],
|
|
|
|
combination: 'then',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.navigation.upcoming',
|
|
|
|
keys: ['g', 'u'],
|
|
|
|
combination: 'then',
|
|
|
|
},
|
|
|
|
{
|
2023-03-25 13:54:20 +00:00
|
|
|
title: 'keyboardShortcuts.navigation.projects',
|
|
|
|
keys: ['g', 'p'],
|
2022-03-02 20:59:51 +00:00
|
|
|
combination: 'then',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.navigation.labels',
|
|
|
|
keys: ['g', 'a'],
|
|
|
|
combination: 'then',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.navigation.teams',
|
|
|
|
keys: ['g', 'm'],
|
|
|
|
combination: 'then',
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
2021-11-13 20:28:29 +00:00
|
|
|
{
|
2022-11-13 21:04:57 +00:00
|
|
|
title: 'project.kanban.title',
|
|
|
|
available: (route) => route.name === 'project.kanban',
|
2021-11-13 20:28:29 +00:00
|
|
|
shortcuts: [
|
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.task.done',
|
|
|
|
keys: [ctrl, 'click'],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
{
|
2022-11-13 21:04:57 +00:00
|
|
|
title: 'keyboardShortcuts.project.title',
|
|
|
|
available: (route) => (route.name as string)?.startsWith('project.'),
|
2021-11-13 20:28:29 +00:00
|
|
|
shortcuts: [
|
|
|
|
{
|
2023-01-19 13:29:40 +00:00
|
|
|
title: 'keyboardShortcuts.project.switchToListView',
|
2021-11-13 20:28:29 +00:00
|
|
|
keys: ['g', 'l'],
|
|
|
|
combination: 'then',
|
|
|
|
},
|
|
|
|
{
|
2022-11-13 21:04:57 +00:00
|
|
|
title: 'keyboardShortcuts.project.switchToGanttView',
|
2021-11-13 20:28:29 +00:00
|
|
|
keys: ['g', 'g'],
|
|
|
|
combination: 'then',
|
|
|
|
},
|
|
|
|
{
|
2022-11-13 21:04:57 +00:00
|
|
|
title: 'keyboardShortcuts.project.switchToTableView',
|
2021-11-13 20:28:29 +00:00
|
|
|
keys: ['g', 't'],
|
|
|
|
combination: 'then',
|
|
|
|
},
|
|
|
|
{
|
2022-11-13 21:04:57 +00:00
|
|
|
title: 'keyboardShortcuts.project.switchToKanbanView',
|
2021-11-13 20:28:29 +00:00
|
|
|
keys: ['g', 'k'],
|
|
|
|
combination: 'then',
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.task.title',
|
2021-10-03 13:54:24 +00:00
|
|
|
available: (route) => route.name === 'task.detail',
|
2021-11-13 20:28:29 +00:00
|
|
|
shortcuts: [
|
2022-03-02 20:59:51 +00:00
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.task.done',
|
|
|
|
keys: ['t'],
|
|
|
|
},
|
2021-11-13 20:28:29 +00:00
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.task.assign',
|
|
|
|
keys: ['a'],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.task.labels',
|
|
|
|
keys: ['l'],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.task.dueDate',
|
|
|
|
keys: ['d'],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.task.attachment',
|
|
|
|
keys: ['f'],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.task.related',
|
|
|
|
keys: ['r'],
|
|
|
|
},
|
2022-03-02 20:59:51 +00:00
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.task.move',
|
|
|
|
keys: ['m'],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.task.color',
|
|
|
|
keys: ['c'],
|
|
|
|
},
|
2022-05-23 20:58:54 +00:00
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.task.reminder',
|
|
|
|
keys: ['alt', 'r'],
|
|
|
|
},
|
2022-09-07 17:55:59 +00:00
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.task.description',
|
|
|
|
keys: ['e'],
|
|
|
|
},
|
2023-05-10 09:14:07 +00:00
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.task.priority',
|
|
|
|
keys: ['p'],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.task.delete',
|
|
|
|
keys: ['shift', 'delete'],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'keyboardShortcuts.task.favorite',
|
|
|
|
keys: ['s'],
|
|
|
|
},
|
2021-11-13 20:28:29 +00:00
|
|
|
],
|
|
|
|
},
|
2023-05-10 09:14:07 +00:00
|
|
|
]
|