From e2705045030f4c4f2ddb4b35a36f4ccc3ae1c71e Mon Sep 17 00:00:00 2001 From: Crimekillz Date: Thu, 2 May 2024 21:04:21 +0200 Subject: [PATCH] Unified News: Unify lists and antennas into common tab --- locales/de-DE.yml | 11 +- locales/en-US.yml | 1 + locales/ja-JP.yml | 1 + packages/client/src/navbar.ts | 20 +- .../client/src/pages/my-antennas/create.vue | 4 +- .../client/src/pages/my-antennas/edit.vue | 4 +- .../client/src/pages/my-antennas/index.vue | 153 -------- packages/client/src/pages/my-lists/index.vue | 115 ------ packages/client/src/pages/news.vue | 332 ++++++++++++++++++ packages/client/src/pages/timeline.vue | 16 +- packages/client/src/router.ts | 9 +- packages/client/src/store.ts | 2 +- .../client/src/ui/deck/antenna-column.vue | 2 +- 13 files changed, 360 insertions(+), 310 deletions(-) delete mode 100644 packages/client/src/pages/my-antennas/index.vue delete mode 100644 packages/client/src/pages/my-lists/index.vue create mode 100644 packages/client/src/pages/news.vue diff --git a/locales/de-DE.yml b/locales/de-DE.yml index 5e9263f9d..cf68b68b5 100644 --- a/locales/de-DE.yml +++ b/locales/de-DE.yml @@ -136,7 +136,7 @@ unblockConfirm: "Sind Sie sicher, dass Sie die Sperrung dieses Kontos aufheben w suspendConfirm: "Sind Sie sicher, dass Sie dieses Konto sperren wollen?" unsuspendConfirm: "Sind Sie sicher, dass Sie dieses Konto entsperren wollen?" selectList: "Wählen Sie eine Liste aus" -selectAntenna: "News-Picker auswählen" +selectAntenna: "Antenne auswählen" selectWidget: "Ein Widget auswählen" editWidgets: "Widgets bearbeiten" editWidgetsExit: "Erledigt" @@ -389,10 +389,11 @@ recaptchaSecretKey: "Secret key" avoidMultiCaptchaConfirm: "Das Verwenden von mehreren Captcha-Systemen kann zu Störungen führen. Sollen die anderen Systeme deaktiviert werden? Durch Abbrechen können mehrere Systeme aktiviert bleiben." -antennas: "News-Picker" -manageAntennas: "News-Picker verwalten" +news: "Neuigkeiten" +antennas: "Antennen" +manageAntennas: "Antennen verwalten" name: "Name" -antennaSource: "Quellen der News-Picker" +antennaSource: "Quellen der Antennen" antennaKeywords: "Zu beobachtende Schlüsselwörter" antennaExcludeKeywords: "Zu ignorierende Schlüsselwörter" antennaKeywordsDescription: "Zum Nutzen einer \"UND\"-Verknüpfung Einträge mit Leerzeichen @@ -1328,7 +1329,7 @@ _sfx: notification: "Benachrichtigungen" chat: "Chat" chatBg: "Chat (Hintergrund)" - antenna: "News-Picker" + antenna: "Antennen" channel: "Kanalbenachrichtigung" _ago: future: "Zukunft" diff --git a/locales/en-US.yml b/locales/en-US.yml index 3b4ef70e7..3e9f89a36 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -413,6 +413,7 @@ recaptchaSecretKey: "Secret key" avoidMultiCaptchaConfirm: "Using multiple Captcha systems may cause interference between them. Would you like to disable the other Captcha systems currently active? If you would like them to stay enabled, press cancel." +news: "News-Picker" antennas: "Antennas" antennasDesc: "Antennas display new posts matching the criteria you set!\n They can be accessed from the timelines page." diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index d34b9dc86..1481b5839 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -369,6 +369,7 @@ enableRecaptcha: "reCAPTCHAを有効にする" recaptchaSiteKey: "サイトキー" recaptchaSecretKey: "シークレットキー" avoidMultiCaptchaConfirm: "複数のCaptchaを使用すると干渉を起こす可能性があります。他のCaptchaを無効にしますか?キャンセルして複数のCaptchaを有効化したままにすることも可能です。" +news: "ニュース" antennas: "アンテナ" manageAntennas: "アンテナの管理" name: "名前" diff --git a/packages/client/src/navbar.ts b/packages/client/src/navbar.ts index a9ed1f08d..fa3cf51dd 100644 --- a/packages/client/src/navbar.ts +++ b/packages/client/src/navbar.ts @@ -43,25 +43,11 @@ export const navbarItemDef = reactive({ icon: "ph-lightning ph-bold ph-lg", to: "/discover", }, - lists: { - title: "lists", - icon: "ph-list-bullets ph-bold ph-lg", - show: computed(() => $i != null), - to: "/my/lists", - }, - /* - groups: { - title: 'groups', - icon: 'ph-users-three ph-bold ph-lg', - show: computed(() => $i != null), - to: '/my/groups', - }, - */ - antennas: { - title: "antennas", + news: { + title: "news", icon: "ph-flying-saucer ph-bold ph-lg", show: computed(() => $i != null), - to: "/my/antennas", + to: "/news", }, snippets: { title: "snippets", diff --git a/packages/client/src/pages/my-antennas/create.vue b/packages/client/src/pages/my-antennas/create.vue index 040a6b052..3ce32416c 100644 --- a/packages/client/src/pages/my-antennas/create.vue +++ b/packages/client/src/pages/my-antennas/create.vue @@ -30,12 +30,12 @@ let draft = $ref({ }); function onAntennaCreated() { - router.push("/my/antennas"); + router.push("/news"); } definePageMetadata({ title: i18n.ts.manageAntennas, - icon: "ph-flying-saucer ph-bold ph-lg", + icon: "ph-cell-tower ph-bold ph-lg", }); diff --git a/packages/client/src/pages/my-antennas/edit.vue b/packages/client/src/pages/my-antennas/edit.vue index 36254ff74..d000dba87 100644 --- a/packages/client/src/pages/my-antennas/edit.vue +++ b/packages/client/src/pages/my-antennas/edit.vue @@ -25,7 +25,7 @@ const props = defineProps<{ }>(); function onAntennaUpdated() { - router.push("/my/antennas"); + router.push("/news"); } os.api("antennas/show", { antennaId: props.antennaId }).then( @@ -40,7 +40,7 @@ const headerTabs = $computed(() => []); definePageMetadata({ title: i18n.ts.manageAntennas, - icon: "ph-flying-saucer ph-bold ph-lg", + icon: "ph-cell-tower ph-bold ph-lg", }); diff --git a/packages/client/src/pages/my-antennas/index.vue b/packages/client/src/pages/my-antennas/index.vue deleted file mode 100644 index 259c6db69..000000000 --- a/packages/client/src/pages/my-antennas/index.vue +++ /dev/null @@ -1,153 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/my-lists/index.vue b/packages/client/src/pages/my-lists/index.vue deleted file mode 100644 index cb3a74f57..000000000 --- a/packages/client/src/pages/my-lists/index.vue +++ /dev/null @@ -1,115 +0,0 @@ - - - - - diff --git a/packages/client/src/pages/news.vue b/packages/client/src/pages/news.vue new file mode 100644 index 000000000..ee95daf73 --- /dev/null +++ b/packages/client/src/pages/news.vue @@ -0,0 +1,332 @@ + + + + + diff --git a/packages/client/src/pages/timeline.vue b/packages/client/src/pages/timeline.vue index 930a9635a..2ab46db4d 100644 --- a/packages/client/src/pages/timeline.vue +++ b/packages/client/src/pages/timeline.vue @@ -209,17 +209,19 @@ const headerActions = $computed(() => [ handler: chooseList, }, { - icon: "ph-flying-saucer ph-bold ph-lg", + icon: "ph-cell-tower ph-bold ph-lg", title: i18n.ts.antennas, text: i18n.ts.antennas, iconOnly: true, handler: chooseAntenna, - } /* **TODO: fix timetravel** { - icon: 'ph-calendar-blank ph-bold ph-lg', - title: i18n.ts.jumpToSpecifiedDate, - iconOnly: true, - handler: timetravel, -}*/, + }/* **TODO: fix timetravel**, + { + icon: 'ph-clock-counter-clockwise ph-bold ph-lg', + title: i18n.ts.jumpToSpecifiedDate, + text: i18n.ts.jumpToSpecifiedDate, + iconOnly: true, + handler: timetravel, + }*/ ]); const headerTabs = $computed(() => [ diff --git a/packages/client/src/router.ts b/packages/client/src/router.ts index 9deecf2db..156b3252f 100644 --- a/packages/client/src/router.ts +++ b/packages/client/src/router.ts @@ -635,11 +635,6 @@ export const routes = [ component: page(() => import("./pages/my-lists/list.vue")), loginRequired: true, }, - { - path: "/my/lists", - component: page(() => import("./pages/my-lists/index.vue")), - loginRequired: true, - }, { path: "/my/groups", component: page(() => import("./pages/my-groups/index.vue")), @@ -661,8 +656,8 @@ export const routes = [ loginRequired: true, }, { - path: "/my/antennas", - component: page(() => import("./pages/my-antennas/index.vue")), + path: "/news", + component: page(() => import("./pages/news.vue")), loginRequired: true, }, { diff --git a/packages/client/src/store.ts b/packages/client/src/store.ts index 5cd02369f..97b86a56b 100644 --- a/packages/client/src/store.ts +++ b/packages/client/src/store.ts @@ -14,7 +14,7 @@ const menuOptions = [ "messaging", "-", "snippets", - "antennas", + "news", "discover", "-", "achievements", diff --git a/packages/client/src/ui/deck/antenna-column.vue b/packages/client/src/ui/deck/antenna-column.vue index 8e3001738..440477983 100644 --- a/packages/client/src/ui/deck/antenna-column.vue +++ b/packages/client/src/ui/deck/antenna-column.vue @@ -6,7 +6,7 @@ @parent-focus="($event) => emit('parent-focus', $event)" >