From 44686c17a9e46f2eb6638b9a872fd4e3ed44d158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Advaita=20K=E1=B9=9B=E1=B9=A3=E1=B9=87a=20D=C4=81sa?= Date: Sun, 11 Jun 2023 14:47:34 +0200 Subject: [PATCH] feat(library): show unpublished verses (#276) fixes #275 --- package-lock.json | 8 ++++---- package.json | 2 +- .../library/composables/useLoadLibraryIntoMemory.ts | 10 ++++++++++ src/app/library/pages/LibraryPage.vue | 5 ++++- src/app/settings/pages/SettingsPage.vue | 10 ++++++++++ src/app/settings/stores/useSettingsStore.ts | 5 +++-- src/locale/en/settings.json | 3 ++- src/locale/ru/settings.json | 3 ++- src/locale/uk/settings.json | 3 ++- 9 files changed, 38 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 09386f35..beb56063 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "@akdasa-studios/shlokas", "version": "1.2.3", "dependencies": { - "@akdasa-studios/shlokas-core": "1.1.19", + "@akdasa-studios/shlokas-core": "1.2.5", "@akdasa-studios/shlokas-protocol": "^0.0.6", "@akdasa-studios/shlokas-uikit": "0.0.19", "@awesome-cordova-plugins/core": "6.3.0", @@ -115,9 +115,9 @@ } }, "node_modules/@akdasa-studios/shlokas-core": { - "version": "1.1.19", - "resolved": "https://npm.pkg.github.com/download/@akdasa-studios/shlokas-core/1.1.19/98ca3622d5068dc0dace7762ce082a5bb85103ac", - "integrity": "sha512-a0z79zEawGRxFpdseqLW4o9ca7kpheBojpxUyogZXpN/8LeggLvIDOrj2YlqI3djnxKvX4O7VDBpRukJzQ2mUg==", + "version": "1.2.5", + "resolved": "https://npm.pkg.github.com/download/@akdasa-studios/shlokas-core/1.2.5/f9993632a1a7e69697cbbd5f659690717f907119", + "integrity": "sha512-WWFaztdAjys/pWtKigzTIOIyqvdG3Gp0r9wccRXLqM1ZVUkIWFBJ+zzCp2FLa7L7Az1LD6CQKeoX5sXPMG78Ww==", "license": "ISC", "dependencies": { "@akdasa-studios/framework": "0.5.3", diff --git a/package.json b/package.json index 578ac396..2226b2a9 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "lint": "eslint" }, "dependencies": { - "@akdasa-studios/shlokas-core": "1.1.19", + "@akdasa-studios/shlokas-core": "1.2.5", "@akdasa-studios/shlokas-protocol": "^0.0.6", "@akdasa-studios/shlokas-uikit": "0.0.19", "@awesome-cordova-plugins/core": "6.3.0", diff --git a/src/app/library/composables/useLoadLibraryIntoMemory.ts b/src/app/library/composables/useLoadLibraryIntoMemory.ts index 288c2678..7e46181a 100644 --- a/src/app/library/composables/useLoadLibraryIntoMemory.ts +++ b/src/app/library/composables/useLoadLibraryIntoMemory.ts @@ -28,6 +28,16 @@ export function useLoadLibraryIntoMemory( synonyms ) + // Data structure migration workaround + // feel free to remove it later + if (verse?.publication?.publishedAt === undefined) { + v.publication.publish() + } + + if (verse?.publication?.publishedAt) { + v.publication.publish() + } + await app.repositories.verses.save(v) } } finally { diff --git a/src/app/library/pages/LibraryPage.vue b/src/app/library/pages/LibraryPage.vue index 3680fe15..7d04d0e3 100644 --- a/src/app/library/pages/LibraryPage.vue +++ b/src/app/library/pages/LibraryPage.vue @@ -96,7 +96,10 @@ async function onSearchQueryChanged(value: string) { // NOTE: assign filteredVerses AFTER verseStatuses are fetched const languageCode = language.value - const verses = await app.library.findByContent(new Language(languageCode, languageCode), value) + const verses = await app.library.findByContent(value, { + lang: new Language(languageCode, languageCode), + unpublished: settings.showUnpublishedVerses + }) verseStatuses.value = await app.library.getStatuses(verses.map(x => x.id)) filteredVerses.value = Array.from(verses).sort((a, b) => compareVerseNumber(a.number.value, b.number.value)) } diff --git a/src/app/settings/pages/SettingsPage.vue b/src/app/settings/pages/SettingsPage.vue index c6c048ff..03225b2d 100644 --- a/src/app/settings/pages/SettingsPage.vue +++ b/src/app/settings/pages/SettingsPage.vue @@ -69,6 +69,16 @@ + + + {{ $t('settings.showUnpublishedVerses') }} + + + { const authStrategy = ref('') const authRefreshedAt = ref(0) const authExpiresAt = ref(0) + const showUnpublishedVerses = ref(false) // sync const syncCollectionId = ref('') @@ -46,6 +47,6 @@ export const useSettingsStore = defineStore('settings', () => { return { language, showGradeButtons, colorfulCards, syncLibraryAt, welcomeDone, authToken, authSessionId, authStrategy, authRefreshedAt, authExpiresAt, syncCollectionId, syncAt, - showAccountControls, autoSyncOnLogin, reviewCardsInRandomOrder + showAccountControls, autoSyncOnLogin, reviewCardsInRandomOrder, showUnpublishedVerses } }) diff --git a/src/locale/en/settings.json b/src/locale/en/settings.json index 611b0ce6..e09afbca 100644 --- a/src/locale/en/settings.json +++ b/src/locale/en/settings.json @@ -9,7 +9,8 @@ "update": "Update", "clearCache": "Clear cache", "reviewCardsInRandomOrder": "Randomize review cards", - "cache": "Cache" + "cache": "Cache", + "showUnpublishedVerses": "Unpublished verses" }, "account": { "welcomeBack": "Welcome back!", diff --git a/src/locale/ru/settings.json b/src/locale/ru/settings.json index c4a7ac43..524db6f5 100644 --- a/src/locale/ru/settings.json +++ b/src/locale/ru/settings.json @@ -9,7 +9,8 @@ "update": "Обновить", "clearCache": "Очистить кэш", "reviewCardsInRandomOrder": "Обзор в случайном порядке", - "cache": "Кэш" + "cache": "Кэш", + "showUnpublishedVerses": "Неопубликованные стихи" }, "account": { "welcomeBack": "Добро пожаловать!", diff --git a/src/locale/uk/settings.json b/src/locale/uk/settings.json index 8dbec452..aa97c610 100644 --- a/src/locale/uk/settings.json +++ b/src/locale/uk/settings.json @@ -8,7 +8,8 @@ "contactUs": "Зв'язатися з нами", "update": "Update", "reviewCardsInRandomOrder": "Випадковий порядок", - "cache": "Кеш" + "cache": "Кеш", + "showUnpublishedVerses": "Неопубліковані вірші" }, "account": { "welcomeBack": "З Поверненням!",