From c217d5e4e3ed25a91a0c88a8a345a25b4be5a265 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sun, 7 May 2023 19:56:56 +0200 Subject: [PATCH] Subscription groups --- src/App.vue | 6 +- src/components/DefaultValueCheckbox.vue | 22 +++++ src/components/FeedPage.vue | 37 +++++++- src/components/SubscriptionsPage.vue | 115 +++++++++++++++++++++++- src/locales/en.json | 7 +- src/main.js | 21 +++++ 6 files changed, 200 insertions(+), 8 deletions(-) create mode 100644 src/components/DefaultValueCheckbox.vue diff --git a/src/App.vue b/src/App.vue index c02d2271..93693dd3 100644 --- a/src/App.vue +++ b/src/App.vue @@ -55,7 +55,7 @@ export default { }); if ("indexedDB" in window) { - const request = indexedDB.open("piped-db", 3); + const request = indexedDB.open("piped-db", 4); request.onupgradeneeded = ev => { const db = request.result; console.log("Upgrading object store."); @@ -73,6 +73,10 @@ export default { store.createIndex("playlist_id_idx", "playlistId", { unique: true }); store.createIndex("id_idx", "id", { unique: true, autoIncrement: true }); } + if (!db.objectStoreNames.contains("channel_groups")) { + const store = db.createObjectStore("channel_groups", { keyPath: "groupName" }); + store.createIndex("groupName", "groupName", { unique: true }); + } }; request.onsuccess = e => { window.db = e.target.result; diff --git a/src/components/DefaultValueCheckbox.vue b/src/components/DefaultValueCheckbox.vue new file mode 100644 index 00000000..8378f75f --- /dev/null +++ b/src/components/DefaultValueCheckbox.vue @@ -0,0 +1,22 @@ +// Wrapper around v-model to allow default values without requiring to use a v-model inside the calling component + + + + diff --git a/src/components/FeedPage.vue b/src/components/FeedPage.vue index 36749650..41029e07 100644 --- a/src/components/FeedPage.vue +++ b/src/components/FeedPage.vue @@ -18,6 +18,19 @@