From 44a2b009052f15d117e51efa0a85be9ef7eacbbc Mon Sep 17 00:00:00 2001 From: Johannes Millan Date: Sun, 25 Nov 2018 20:14:05 +0100 Subject: [PATCH] feat(reminders): add persistence --- src/app/core/persistence/ls-keys.const.ts | 1 + src/app/core/persistence/persistence.service.ts | 10 ++++++++++ .../dialog-add-note-reminder.component.html | 3 +-- src/app/reminder/reminder.service.ts | 12 +++++++++--- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/app/core/persistence/ls-keys.const.ts b/src/app/core/persistence/ls-keys.const.ts index d7e81f37c2..9f56bdff2a 100644 --- a/src/app/core/persistence/ls-keys.const.ts +++ b/src/app/core/persistence/ls-keys.const.ts @@ -6,6 +6,7 @@ export const LS_GLOBAL_CFG = LS_PREFIX + 'GLOBAL_CFG'; export const LS_BACKUP = LS_PREFIX + 'COMPLETE_BACKUP'; export const LS_LAST_ACTIVE = LS_PREFIX + 'LAST_ACTIVE'; export const LS_LAYOUT = LS_PREFIX + 'LAYOUT'; +export const LS_REMINDER = LS_PREFIX + 'REMINDER'; export const LS_PROJECT_META_LIST = LS_PREFIX + 'PROJECT_META_LIST'; export const LS_PROJECT_CFG: ProjectDataLsKey = 'CFG'; diff --git a/src/app/core/persistence/persistence.service.ts b/src/app/core/persistence/persistence.service.ts index 258e1aa199..a629833b85 100644 --- a/src/app/core/persistence/persistence.service.ts +++ b/src/app/core/persistence/persistence.service.ts @@ -8,6 +8,7 @@ import { LS_NOTE_STATE, LS_PROJECT_META_LIST, LS_PROJECT_PREFIX, + LS_REMINDER, LS_TASK_ARCHIVE, LS_TASK_ATTACHMENT_STATE, LS_TASK_STATE @@ -24,6 +25,7 @@ import { AppDataComplete } from '../sync/sync.model'; import { BookmarkState } from '../../bookmark/store/bookmark.reducer'; import { AttachmentState } from '../../tasks/attachment/store/attachment.reducer'; import { NoteState } from '../../note/store/note.reducer'; +import { Reminder } from '../../reminder/reminder.model'; @Injectable({ providedIn: 'root' @@ -42,6 +44,14 @@ export class PersistenceService { saveToLsWithLastActive(LS_PROJECT_META_LIST, projectData); } + loadReminders(): Reminder[] { + return loadFromLs(LS_REMINDER); + } + + saveReminders(reminders: Reminder[]) { + saveToLsWithLastActive(LS_REMINDER, reminders); + } + saveTasksForProject(projectId, taskState: TaskState) { saveToLsWithLastActive(this._makeProjectKey(projectId, LS_TASK_STATE), taskState); } diff --git a/src/app/note/dialog-add-note-reminder/dialog-add-note-reminder.component.html b/src/app/note/dialog-add-note-reminder/dialog-add-note-reminder.component.html index b48a402a8c..2099ba18c8 100644 --- a/src/app/note/dialog-add-note-reminder/dialog-add-note-reminder.component.html +++ b/src/app/note/dialog-add-note-reminder/dialog-add-note-reminder.component.html @@ -1,7 +1,6 @@
-

{{isEdit ? 'Edit' : 'Add'}} reminder - reminder for note

+

{{isEdit ? 'Edit' : 'Add'}} reminder for note

diff --git a/src/app/reminder/reminder.service.ts b/src/app/reminder/reminder.service.ts index 935b4c688c..4d46cc909d 100644 --- a/src/app/reminder/reminder.service.ts +++ b/src/app/reminder/reminder.service.ts @@ -52,17 +52,20 @@ export class ReminderService { }); // this._persistenceService this._updateRemindersInWorker(this._reminders); + this._saveToLS(this._reminders); console.log(this._reminders); return id; } - updateReminder(reminderChanges: Partial) { + updateReminder(reminderId: string, reminderChanges: Partial) { + this._saveToLS(this._reminders); } removeReminder(reminderIdToRemove: string) { const i = this._reminders.findIndex(reminder => reminder.id === reminderIdToRemove); if (i > -1) { this._reminders.splice(i, 1); + this._saveToLS(this._reminders); } else { throw new Error('Unable to find reminder with id ' + reminderIdToRemove); } @@ -82,8 +85,11 @@ export class ReminderService { } private _loadFromLs(): Reminder[] { - // this._persistenceService. - return []; + return this._persistenceService.loadReminders() || []; + } + + private _saveToLS(reminders: Reminder[]) { + this._persistenceService.saveReminders(reminders); } private _updateRemindersInWorker(reminders: Reminder[]) {