mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-08-02 04:22:32 +00:00
feat(reminder): properly reset plannedAt whenever it makes sense
This commit is contained in:
parent
b0a41b744e
commit
7cb38b04b4
21 changed files with 52 additions and 47 deletions
|
|
@ -65,12 +65,12 @@
|
|||
{{T.G.MINUTES|translate:{m: 60} }}
|
||||
</button>
|
||||
<button
|
||||
(click)="snoozeUntilTomorrow(task)"
|
||||
(click)="rescheduleUntilTomorrow(task)"
|
||||
[disabled]="isDisableControls"
|
||||
mat-menu-item
|
||||
>
|
||||
<mat-icon>snooze</mat-icon>
|
||||
{{T.F.TASK.D_REMINDER_VIEW.SNOOZE_UNTIL_TOMORROW|translate}}
|
||||
<mat-icon>schedule</mat-icon>
|
||||
{{T.F.TASK.D_REMINDER_VIEW.RESCHEDULE_UNTIL_TOMORROW|translate}}
|
||||
</button>
|
||||
<button (click)="dismiss(task)" mat-menu-item>
|
||||
<mat-icon>alarm_off</mat-icon>
|
||||
|
|
@ -142,12 +142,12 @@
|
|||
{{T.G.MINUTES|translate:{m: 60} }}
|
||||
</button>
|
||||
<button
|
||||
(click)="snoozeAllUntilTomorrow()"
|
||||
(click)="rescheduleAllUntilTomorrow()"
|
||||
[disabled]="isDisableControls"
|
||||
mat-menu-item
|
||||
>
|
||||
<mat-icon>snooze</mat-icon>
|
||||
{{T.F.TASK.D_REMINDER_VIEW.SNOOZE_UNTIL_TOMORROW|translate}}
|
||||
<mat-icon>schedule</mat-icon>
|
||||
{{T.F.TASK.D_REMINDER_VIEW.RESCHEDULE_UNTIL_TOMORROW|translate}}
|
||||
</button>
|
||||
<button (click)="editReminder(tasks[0], true)" *ngIf="!isMultiple" mat-menu-item>
|
||||
<mat-icon>edit</mat-icon>
|
||||
|
|
|
|||
|
|
@ -106,6 +106,7 @@ export class DialogViewTaskRemindersComponent implements OnDestroy {
|
|||
dismiss(task: TaskWithReminderData) {
|
||||
this._taskService.update(task.id, {
|
||||
reminderId: null,
|
||||
plannedAt: null,
|
||||
});
|
||||
this._reminderService.removeReminder(task.reminderData.id);
|
||||
this._removeFromList(task.reminderId as string);
|
||||
|
|
@ -119,10 +120,14 @@ export class DialogViewTaskRemindersComponent implements OnDestroy {
|
|||
this._removeFromList(task.reminderId as string);
|
||||
}
|
||||
|
||||
snoozeUntilTomorrow(task: TaskWithReminderData) {
|
||||
rescheduleUntilTomorrow(task: TaskWithReminderData) {
|
||||
const remindTime = getTomorrow().getTime();
|
||||
this._reminderService.updateReminder(task.reminderData.id, {
|
||||
remindAt: getTomorrow().getTime(),
|
||||
});
|
||||
this._taskService.update(task.id, {
|
||||
plannedAt: remindTime,
|
||||
});
|
||||
this._removeFromList(task.reminderId as string);
|
||||
}
|
||||
|
||||
|
|
@ -160,15 +165,14 @@ export class DialogViewTaskRemindersComponent implements OnDestroy {
|
|||
this._close();
|
||||
}
|
||||
|
||||
snoozeAllUntilTomorrow() {
|
||||
rescheduleAllUntilTomorrow() {
|
||||
this.isDisableControls = true;
|
||||
const tomorrow = getTomorrow().getTime();
|
||||
this.reminders$.getValue().forEach((reminder) => {
|
||||
this._reminderService.updateReminder(reminder.id, {
|
||||
remindAt: tomorrow,
|
||||
});
|
||||
});
|
||||
this._close();
|
||||
this._subs.add(
|
||||
this.tasks$.subscribe((tasks) => {
|
||||
tasks.forEach((t) => this.rescheduleUntilTomorrow(t));
|
||||
this._close();
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
async addAllToToday() {
|
||||
|
|
|
|||
|
|
@ -299,6 +299,7 @@ export class TaskRelatedModelEffects {
|
|||
...task,
|
||||
reminderId: null,
|
||||
isDone: true,
|
||||
plannedAt: null,
|
||||
})),
|
||||
currentArchive,
|
||||
);
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ export class TaskReminderEffects {
|
|||
return new UpdateTask({
|
||||
task: {
|
||||
id,
|
||||
changes: { reminderId: null },
|
||||
changes: { reminderId: null, plannedAt: null },
|
||||
},
|
||||
});
|
||||
}),
|
||||
|
|
|
|||
|
|
@ -705,14 +705,14 @@ const T = {
|
|||
DATETIME_FOR: 'F.TASK.D_REMINDER_ADD.DATETIME_FOR',
|
||||
EDIT: 'F.TASK.D_REMINDER_ADD.EDIT',
|
||||
MOVE_TO_BACKLOG: 'F.TASK.D_REMINDER_ADD.MOVE_TO_BACKLOG',
|
||||
SCHEDULE: 'F.TASK.D_REMINDER_ADD.SCHEDULE',
|
||||
UNSCHEDULE: 'F.TASK.D_REMINDER_ADD.UNSCHEDULE',
|
||||
RO_START: 'F.TASK.D_REMINDER_ADD.RO_START',
|
||||
RO_5M: 'F.TASK.D_REMINDER_ADD.RO_5M',
|
||||
RO_10M: 'F.TASK.D_REMINDER_ADD.RO_10M',
|
||||
RO_15M: 'F.TASK.D_REMINDER_ADD.RO_15M',
|
||||
RO_30M: 'F.TASK.D_REMINDER_ADD.RO_30M',
|
||||
RO_1H: 'F.TASK.D_REMINDER_ADD.RO_1H',
|
||||
RO_30M: 'F.TASK.D_REMINDER_ADD.RO_30M',
|
||||
RO_5M: 'F.TASK.D_REMINDER_ADD.RO_5M',
|
||||
RO_START: 'F.TASK.D_REMINDER_ADD.RO_START',
|
||||
SCHEDULE: 'F.TASK.D_REMINDER_ADD.SCHEDULE',
|
||||
UNSCHEDULE: 'F.TASK.D_REMINDER_ADD.UNSCHEDULE',
|
||||
},
|
||||
D_REMINDER_VIEW: {
|
||||
ADD_ALL_TO_TODAY: 'F.TASK.D_REMINDER_VIEW.ADD_ALL_TO_TODAY',
|
||||
|
|
@ -727,7 +727,7 @@ const T = {
|
|||
FROM_TAG: 'F.TASK.D_REMINDER_VIEW.FROM_TAG',
|
||||
SNOOZE: 'F.TASK.D_REMINDER_VIEW.SNOOZE',
|
||||
SNOOZE_ALL: 'F.TASK.D_REMINDER_VIEW.SNOOZE_ALL',
|
||||
SNOOZE_UNTIL_TOMORROW: 'F.TASK.D_REMINDER_VIEW.SNOOZE_UNTIL_TOMORROW',
|
||||
RESCHEDULE_UNTIL_TOMORROW: 'F.TASK.D_REMINDER_VIEW.RESCHEDULE_UNTIL_TOMORROW',
|
||||
START: 'F.TASK.D_REMINDER_VIEW.START',
|
||||
SWITCH_CONTEXT_START: 'F.TASK.D_REMINDER_VIEW.SWITCH_CONTEXT_START',
|
||||
},
|
||||
|
|
@ -797,16 +797,16 @@ const T = {
|
|||
},
|
||||
},
|
||||
TIMELINE: {
|
||||
MENU_TITLE: 'F.TIMELINE.MENU_TITLE',
|
||||
NO_TASKS: 'F.TIMELINE.NO_TASKS',
|
||||
NOW: 'F.TIMELINE.NOW',
|
||||
D_INITIAL: {
|
||||
TITLE: 'F.TIMELINE.D_INITIAL.TITLE',
|
||||
TEXT: 'F.TIMELINE.D_INITIAL.TEXT',
|
||||
},
|
||||
START: 'F.TIMELINE.START',
|
||||
CONTINUED: 'F.TIMELINE.CONTINUED',
|
||||
D_INITIAL: {
|
||||
TEXT: 'F.TIMELINE.D_INITIAL.TEXT',
|
||||
TITLE: 'F.TIMELINE.D_INITIAL.TITLE',
|
||||
},
|
||||
END: 'F.TIMELINE.END',
|
||||
MENU_TITLE: 'F.TIMELINE.MENU_TITLE',
|
||||
NOW: 'F.TIMELINE.NOW',
|
||||
NO_TASKS: 'F.TIMELINE.NO_TASKS',
|
||||
START: 'F.TIMELINE.START',
|
||||
},
|
||||
TIME_TRACKING: {
|
||||
B: {
|
||||
|
|
@ -973,6 +973,7 @@ const T = {
|
|||
SYSTEM_SHORTCUTS: 'GCF.KEYBOARD.SYSTEM_SHORTCUTS',
|
||||
TASK_ADD_SUB_TASK: 'GCF.KEYBOARD.TASK_ADD_SUB_TASK',
|
||||
TASK_DELETE: 'GCF.KEYBOARD.TASK_DELETE',
|
||||
TASK_EDIT_TAGS: 'GCF.KEYBOARD.TASK_EDIT_TAGS',
|
||||
TASK_EDIT_TITLE: 'GCF.KEYBOARD.TASK_EDIT_TITLE',
|
||||
TASK_MOVE_TO_PROJECT: 'GCF.KEYBOARD.TASK_MOVE_TO_PROJECT',
|
||||
TASK_OPEN_CONTEXT_MENU: 'GCF.KEYBOARD.TASK_OPEN_CONTEXT_MENU',
|
||||
|
|
@ -986,7 +987,6 @@ const T = {
|
|||
TOGGLE_BACKLOG: 'GCF.KEYBOARD.TOGGLE_BACKLOG',
|
||||
TOGGLE_BOOKMARKS: 'GCF.KEYBOARD.TOGGLE_BOOKMARKS',
|
||||
TOGGLE_PLAY: 'GCF.KEYBOARD.TOGGLE_PLAY',
|
||||
TASK_EDIT_TAGS: 'GCF.KEYBOARD.TASK_EDIT_TAGS',
|
||||
TOGGLE_SIDE_NAV: 'GCF.KEYBOARD.TOGGLE_SIDE_NAV',
|
||||
ZOOM_DEFAULT: 'GCF.KEYBOARD.ZOOM_DEFAULT',
|
||||
ZOOM_IN: 'GCF.KEYBOARD.ZOOM_IN',
|
||||
|
|
|
|||
|
|
@ -723,7 +723,7 @@
|
|||
"FROM_TAG": "من العلامة: \"{{title}}\"",
|
||||
"SNOOZE": "قيلولة بعد الظهر",
|
||||
"SNOOZE_ALL": "تأجيل الكل",
|
||||
"SNOOZE_UNTIL_TOMORROW": "حتى الغد",
|
||||
"RESCHEDULE_UNTIL_TOMORROW": "حتى الغد",
|
||||
"START": "بدء المهمة",
|
||||
"SWITCH_CONTEXT_START": "تبديل السياق والبدء"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -723,7 +723,7 @@
|
|||
"FROM_TAG": "Vom Tag: \"{{title}}\"",
|
||||
"SNOOZE": "Snooze",
|
||||
"SNOOZE_ALL": "Schlummer alle",
|
||||
"SNOOZE_UNTIL_TOMORROW": "Bis morgen",
|
||||
"RESCHEDULE_UNTIL_TOMORROW": "Bis morgen",
|
||||
"START": "Task starten",
|
||||
"SWITCH_CONTEXT_START": "Kontext wechseln & starten"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -723,7 +723,7 @@
|
|||
"FROM_TAG": "From Tag: \"{{title}}\"",
|
||||
"SNOOZE": "Snooze",
|
||||
"SNOOZE_ALL": "Snooze all",
|
||||
"SNOOZE_UNTIL_TOMORROW": "Until tomorrow",
|
||||
"RESCHEDULE_UNTIL_TOMORROW": "Re-schedule for tomorrow",
|
||||
"START": "Start",
|
||||
"SWITCH_CONTEXT_START": "Switch Context & Start"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -723,7 +723,7 @@
|
|||
"FROM_TAG": "De la etiqueta: \"{{title}}\"",
|
||||
"SNOOZE": "Posponer",
|
||||
"SNOOZE_ALL": "Posponer todo",
|
||||
"SNOOZE_UNTIL_TOMORROW": "Hasta mañana",
|
||||
"RESCHEDULE_UNTIL_TOMORROW": "Hasta mañana",
|
||||
"START": "Iniciar tarea",
|
||||
"SWITCH_CONTEXT_START": "Cambiar contexto e inicio"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -723,7 +723,7 @@
|
|||
"FROM_TAG": "از برچسب: \"{{title}}\"",
|
||||
"SNOOZE": "Snooze",
|
||||
"SNOOZE_ALL": "تعویق همه",
|
||||
"SNOOZE_UNTIL_TOMORROW": "تا فردا",
|
||||
"RESCHEDULE_UNTIL_TOMORROW": "تا فردا",
|
||||
"START": "Start Task",
|
||||
"SWITCH_CONTEXT_START": "تغییر متن و شروع"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -723,7 +723,7 @@
|
|||
"FROM_TAG": "De la balise: \"{{title}}\"",
|
||||
"SNOOZE": "Snooze",
|
||||
"SNOOZE_ALL": "Répéter tout",
|
||||
"SNOOZE_UNTIL_TOMORROW": "Jusqu'à demain",
|
||||
"RESCHEDULE_UNTIL_TOMORROW": "Jusqu'à demain",
|
||||
"START": "Démarrer la tâche",
|
||||
"SWITCH_CONTEXT_START": "Changer de contexte et démarrer"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -723,7 +723,7 @@
|
|||
"FROM_TAG": "Da etichetta: \"{{title}}\"",
|
||||
"SNOOZE": "Silenzia",
|
||||
"SNOOZE_ALL": "Posticipa tutto",
|
||||
"SNOOZE_UNTIL_TOMORROW": "Fino a domani",
|
||||
"RESCHEDULE_UNTIL_TOMORROW": "Fino a domani",
|
||||
"START": "Inizia task",
|
||||
"SWITCH_CONTEXT_START": "Cambia progetto & inizia task"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -723,7 +723,7 @@
|
|||
"FROM_TAG": "タグから:「{{title}}」",
|
||||
"SNOOZE": "スヌーズ",
|
||||
"SNOOZE_ALL": "すべてスヌーズ",
|
||||
"SNOOZE_UNTIL_TOMORROW": "明日まで",
|
||||
"RESCHEDULE_UNTIL_TOMORROW": "明日まで",
|
||||
"START": "開始タスク",
|
||||
"SWITCH_CONTEXT_START": "コンテキストの切り替えと開始"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -723,7 +723,7 @@
|
|||
"FROM_TAG": "태그에서 : \"{{title}}\"",
|
||||
"SNOOZE": "다시 알림",
|
||||
"SNOOZE_ALL": "모두 다시 알림",
|
||||
"SNOOZE_UNTIL_TOMORROW": "내일까지",
|
||||
"RESCHEDULE_UNTIL_TOMORROW": "내일까지",
|
||||
"START": "작업 시작",
|
||||
"SWITCH_CONTEXT_START": "상황 전환 및 시작"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -681,7 +681,7 @@
|
|||
"FROM_TAG": "Fra tag: \"{{title}}\"",
|
||||
"SNOOZE": "Slumre",
|
||||
"SNOOZE_ALL": "Utsett alle",
|
||||
"SNOOZE_UNTIL_TOMORROW": "Til i morgen",
|
||||
"RESCHEDULE_UNTIL_TOMORROW": "Til i morgen",
|
||||
"START": "Start",
|
||||
"SWITCH_CONTEXT_START": "Bytt kontekst og start"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -723,7 +723,7 @@
|
|||
"FROM_TAG": "Van tag: \"{{title}}\"",
|
||||
"SNOOZE": "Snooze",
|
||||
"SNOOZE_ALL": "Snooze All",
|
||||
"SNOOZE_UNTIL_TOMORROW": "Tot morgen",
|
||||
"RESCHEDULE_UNTIL_TOMORROW": "Tot morgen",
|
||||
"START": "Begin",
|
||||
"SWITCH_CONTEXT_START": "Wissel van context en start"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -723,7 +723,7 @@
|
|||
"FROM_TAG": "Da tag: \"{{title}}\"",
|
||||
"SNOOZE": "Soneca",
|
||||
"SNOOZE_ALL": "Suspender tudo",
|
||||
"SNOOZE_UNTIL_TOMORROW": "Até amanhã",
|
||||
"RESCHEDULE_UNTIL_TOMORROW": "Até amanhã",
|
||||
"START": "Iniciar tarefa",
|
||||
"SWITCH_CONTEXT_START": "Alternar contexto e iniciar"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -723,7 +723,7 @@
|
|||
"FROM_TAG": "Из тега: \"{{title}}\"",
|
||||
"SNOOZE": "Отложить",
|
||||
"SNOOZE_ALL": "Отложить все",
|
||||
"SNOOZE_UNTIL_TOMORROW": "До завтра",
|
||||
"RESCHEDULE_UNTIL_TOMORROW": "До завтра",
|
||||
"START": "Начать задание",
|
||||
"SWITCH_CONTEXT_START": "Переключить контекст и начать"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -723,7 +723,7 @@
|
|||
"FROM_TAG": "Etiketten: \"{{title}}\"",
|
||||
"SNOOZE": "Erteleme",
|
||||
"SNOOZE_ALL": "Tümünü ertele",
|
||||
"SNOOZE_UNTIL_TOMORROW": "Yarına kadar",
|
||||
"RESCHEDULE_UNTIL_TOMORROW": "Yarına kadar",
|
||||
"START": "Görevi Başlat",
|
||||
"SWITCH_CONTEXT_START": "Bağlam Değiştir ve Başlat"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -723,7 +723,7 @@
|
|||
"FROM_TAG": "来自标签:“{{title}}”",
|
||||
"SNOOZE": "暂停",
|
||||
"SNOOZE_ALL": "全部暂停",
|
||||
"SNOOZE_UNTIL_TOMORROW": "明天重新开始",
|
||||
"RESCHEDULE_UNTIL_TOMORROW": "明天重新开始",
|
||||
"START": "开始任务",
|
||||
"SWITCH_CONTEXT_START": "切换内容上下文并开始"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -667,7 +667,7 @@
|
|||
"FROM_TAG": "來自標籤:\"{{title}}\"",
|
||||
"SNOOZE": "暫停",
|
||||
"SNOOZE_ALL": "全部暫停",
|
||||
"SNOOZE_UNTIL_TOMORROW": "明天重新開始",
|
||||
"RESCHEDULE_UNTIL_TOMORROW": "明天重新開始",
|
||||
"START": "開始任務",
|
||||
"SWITCH_CONTEXT_START": "切換內容上下文並開始"
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue