diff options
Diffstat (limited to 'apps/files_reminders/src/actions/setReminderCustomAction.ts')
-rw-r--r-- | apps/files_reminders/src/actions/setReminderCustomAction.ts | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/apps/files_reminders/src/actions/setReminderCustomAction.ts b/apps/files_reminders/src/actions/setReminderCustomAction.ts new file mode 100644 index 00000000000..ea21293ee52 --- /dev/null +++ b/apps/files_reminders/src/actions/setReminderCustomAction.ts @@ -0,0 +1,43 @@ +/** + * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import type { Node, View } from '@nextcloud/files' + +import { FileAction } from '@nextcloud/files' +import { translate as t } from '@nextcloud/l10n' +import CalendarClockSvg from '@mdi/svg/svg/calendar-clock.svg?raw' + +import { SET_REMINDER_MENU_ID } from './setReminderMenuAction' +import { pickCustomDate } from '../services/customPicker' + +export const action = new FileAction({ + id: 'set-reminder-custom', + displayName: () => t('files_reminders', 'Custom reminder'), + title: () => t('files_reminders', 'Reminder at custom date & time'), + iconSvgInline: () => CalendarClockSvg, + + enabled: (nodes: Node[], view: View) => { + if (view.id === 'trashbin') { + return false + } + // Only allow on a single node + if (nodes.length !== 1) { + return false + } + const node = nodes.at(0)! + const dueDate = node.attributes['reminder-due-date'] + return dueDate !== undefined + }, + + parent: SET_REMINDER_MENU_ID, + + async exec(file: Node) { + pickCustomDate(file) + return null + }, + + // After presets + order: 22, +}) |