From aeef0feb99fc95c0e93117ef7ab7f91c15e1b28e Mon Sep 17 00:00:00 2001 From: Crimekillz Date: Sat, 18 May 2024 21:57:45 +0200 Subject: [PATCH] "My Space" Unified Achievements, Reels and Journal --- locales/de-DE.yml | 71 +++---- locales/en-US.yml | 55 +++--- locales/ja-JP.yml | 9 +- .../client/src/components/MkPagePreview.vue | 2 +- packages/client/src/navbar.ts | 6 + packages/client/src/pages/gallery/edit.vue | 2 +- packages/client/src/pages/my-space/index.vue | 180 ++++++++++++++++++ .../src/pages/page-editor/page-editor.vue | 1 + packages/client/src/router.ts | 5 + packages/client/src/store.ts | 2 +- 10 files changed, 264 insertions(+), 69 deletions(-) create mode 100644 packages/client/src/pages/my-space/index.vue diff --git a/locales/de-DE.yml b/locales/de-DE.yml index cf68b68b5..fcd367de0 100644 --- a/locales/de-DE.yml +++ b/locales/de-DE.yml @@ -351,7 +351,7 @@ today: "Heute" dayX: "{day}" monthX: "{month}" yearX: "{year}" -pages: "Nutzer-Seiten" +pages: "Journal" integration: "Integration" connectService: "Verbinden" disconnectService: "Trennen" @@ -372,9 +372,9 @@ basicInfo: "Grundlegende Informationen" pinnedUsers: "Angeheftete Nutzer" pinnedUsersDescription: "Gib durch Leerzeichen getrennte Nutzer an, die an die \"\ Erkunden\"-Seite angeheftet werden sollen." -pinnedPages: "Angeheftete Nutzer-Seiten" +pinnedPages: "Angeheftete Journal-Einträge" pinnedPagesDescription: "Geben Sie die Dateipfade, getrennt durch Zeilenumbrüche, - derjenigen Seiten ein, die Sie an die obere Seitenbegrenzung des Servers anpinnen + derjenigen Journal-Einträge ein, die Sie an die obere Seitenbegrenzung des Servers anpinnen möchten." pinnedClipId: "ID des anzuheftenden Clips" pinnedNotes: "Angeheftete Beiträge" @@ -582,7 +582,7 @@ scratchpadDescription: "Die Testumgebung bietet einen Bereich für AiScript-Expe überprüfen." output: "Ausgabe" script: "Skript" -disablePagesScript: "AiScript auf Seiten deaktivieren" +disablePagesScript: "AiScript in Journal-Einträgen deaktivieren" updateRemoteUser: "Nutzerinformationen aktualisieren" deleteAllFiles: "Alle Dateien löschen" deleteAllFilesConfirm: "Möchtest du wirklich alle Dateien löschen?" @@ -686,21 +686,21 @@ setMultipleBySeparatingWithSpace: "Trenne Elemente durch ein Leerzeichen um mehr fileIdOrUrl: "Datei-ID oder URL" behavior: "Verhalten" sample: "Beispiel" -abuseReports: "Meldungen" -reportAbuse: "Melden" -reportAbuseOf: "{name} melden" -fillAbuseReportDescription: "Bitte gib zusätzliche Informationen zu dieser Meldung +abuseReports: "Anzeigen" +reportAbuse: "Anzeigen!" +reportAbuseOf: "{name} anzeigen" +fillAbuseReportDescription: "Bitte gib zusätzliche Informationen zu dieser Anzeige an. Falls es sich um einen ungewöhnlichen Beitrag handelt, gib bitte dessen URL an." abuseReported: "Deine Meldung wurde versendet. Vielen Dank." -reporter: "Melder" -reporteeOrigin: "Herkunft des Gemeldeten" -reporterOrigin: "Herkunft des Meldenden" -forwardReport: "Meldung auch an den mit-beteiligten Server weiterleiten" +reporter: "Anzeiger" +reporteeOrigin: "Herkunft des Angezeigten" +reporterOrigin: "Herkunft des Anzeigers" +forwardReport: "Anzeige auch an den mit-beteiligten Server weiterleiten" forwardReportIsAnonymous: "Anstelle deines Nutzerkontos wird ein anonymes Systemkonto als Hinweisgeber auf dem mit-beteiligten Server angezeigt." send: "Senden" -abuseMarkAsResolved: "Meldung als gelöst markieren" +abuseMarkAsResolved: "Anzeige als gelöst markieren" openInNewTab: "In neuem Tab öffnen" openInSideView: "In Seitenansicht öffnen" defaultNavigationBehaviour: "Standardnavigationsverhalten" @@ -851,8 +851,8 @@ switch: "Wechseln" noMaintainerInformationWarning: "Betreiberinformationen sind nicht konfiguriert." noBotProtectionWarning: "Schutz vor Bots ist nicht konfiguriert." configure: "Konfigurieren" -postToGallery: "Erstelle einen neuen Beitrag zur Bilder-Galerie" -gallery: "Bilder-Galerie" +postToGallery: "Poste einen neuen Reel" +gallery: "Reels" recentPosts: "Neue Beiträge" popularPosts: "Beliebte Beiträge" shareWithNote: "Mit Beitrag teilen" @@ -947,7 +947,7 @@ file: "Datei" recentNHours: "Die letzten {n} Stunden" recentNDays: "Die letzten {n} Tage" noEmailServerWarning: "Es ist kein Email-Server konfiguriert." -thereIsUnresolvedAbuseReportWarning: "Es liegen ungelöste Meldungen vor." +thereIsUnresolvedAbuseReportWarning: "Es liegen ungelöste Anzeigen vor." recommended: "Favoriten" check: "Kontrolle" driveCapOverrideLabel: "Die Cloud-Drive-Kapazität dieses Nutzers verändern" @@ -1052,8 +1052,8 @@ _forgotPassword: contactAdmin: "Dieser Server unterstützt keine Verwendung von Email-Adressen. Kontaktiere bitte den Server-Administrator, um dein Passwort zurücksetzen zu lassen." _gallery: - my: "Meine Bilder-Galerie" - liked: "Mit \"Gefällt mir\" markierte Beiträge" + my: "Meine Reels" + liked: "Mit \"Gefällt mir\" markierte Reels" like: "Gefällt mir" unlike: "\"Gefällt mir\" entfernen" _email: @@ -1614,33 +1614,33 @@ _timelines: global: "Global-TL" recommended: Admin-Favoriten _pages: - newPage: "Neue Seite erstellen" - editPage: "Seite bearbeiten" + newPage: "Journal-Eintrag erstellen" + editPage: "Journal bearbeiten" readPage: "Quelltextansicht" - created: "Seite erfolgreich erstellt" - updated: "Seite erfolgreich aktualisiert" - deleted: "Seite erfolgreich gelöscht" - pageSetting: "Seiteneinstellungen" - nameAlreadyExists: "Die angegebene Seiten-URL existiert bereits" - invalidNameTitle: "Die angegebene Seiten-URL ist ungültig" - invalidNameText: "Überprüfe, ob der Seitentitel nicht leer ist" - editThisPage: "Diese Seite bearbeiten" + created: "Journal-Eintrag erfolgreich erstellt" + updated: "Journal-Eintrag erfolgreich aktualisiert" + deleted: "Journal-Eintrag erfolgreich gelöscht" + pageSetting: "Journal-Einstellungen" + nameAlreadyExists: "Die angegebene Journal-URL existiert bereits" + invalidNameTitle: "Die angegebene Journal-URL ist ungültig" + invalidNameText: "Überprüfe, ob der Journaltitel nicht leer ist" + editThisPage: "Dieses Journal bearbeiten" viewSource: "Quelltext anzeigen" - viewPage: "Seite anschauen" + viewPage: "Journal anschauen" like: "Gefällt mir" unlike: "\"Gefällt mir\" entfernen" - my: "Meine Nutzer-Seiten" - liked: "Nutzer-Seiten, die mir gefallen" + my: "Mein Journal" + liked: "Journals, die mir gefallen" featured: "Beliebt" inspector: "Inspektor" contents: "Inhalte" - content: "Seitenblock" + content: "Journalblock" variables: "Variablen" title: "Titel" - url: "Nutzer-Seiten-URL" + url: "Nutzer-Journal-URL" summary: "Zusammenfassung" alignCenter: "Zentrieren" - hideTitleWhenPinned: "Nutzer-Seitentitel wenn angeheftet ausblenden" + hideTitleWhenPinned: "Journaltitel wenn angeheftet ausblenden" font: "Schriftart" fontSerif: "Serif" fontSansSerif: "sans-serif" @@ -1902,7 +1902,7 @@ _pages: stringArray: "Textliste" emptySlot: "Leerer Slot" enviromentVariables: "Umgebungsvariable" - pageVariables: "Seitenelemente" + pageVariables: "Journalelemente" argVariables: "Eingabeslots" _relayStatus: requesting: "Ausstehend" @@ -2205,6 +2205,7 @@ youHaveUnreadAnnouncements: Du hast ungelesene Bekanntmachungen donationLink: Link zur Spendenseite neverShow: Nicht mehr anzeigen remindMeLater: Vielleicht später +space: "Space" removeQuote: Zitat entfernen removeRecipient: Empfänger entfernen removeMember: Mitglied entfernen diff --git a/locales/en-US.yml b/locales/en-US.yml index 3e9f89a36..eff5659f3 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -375,7 +375,7 @@ today: "Today" dayX: "{day}" monthX: "{month}" yearX: "{year}" -pages: "Pages" +pages: "Journal" integration: "Integrations" connectService: "Connect" disconnectService: "Disconnect" @@ -397,8 +397,8 @@ basicInfo: "Basic info" pinnedUsers: "Pinned users" pinnedUsersDescription: "List usernames separated by line breaks to be pinned in the \"Explore\" tab." -pinnedPages: "Pinned Pages" -pinnedPagesDescription: "Enter the paths of the Pages you want to pin to the top page +pinnedPages: "Pinned Journal entries" +pinnedPagesDescription: "Enter the paths of the Journal entries you want to pin to the top page of this server, separated by line breaks." pinnedClipId: "ID of the clip to pin" pinnedNotes: "Pinned posts" @@ -608,7 +608,7 @@ scratchpadDescription: "The scratchpad provides an environment for AiScript expe it." output: "Output" script: "Script" -disablePagesScript: "Disable AiScript on Pages" +disablePagesScript: "Disable AiScript in Journal entries" expandOnNoteClick: "Open post on click" expandOnNoteClickDesc: "If disabled, you can still open posts in the right-click menu or by clicking the timestamp." @@ -881,8 +881,8 @@ switch: "Switch" noMaintainerInformationWarning: "Maintainer information is not configured." noBotProtectionWarning: "Bot protection is not configured." configure: "Configure" -postToGallery: "Create new gallery post" -gallery: "Gallery" +postToGallery: "Create new reel" +gallery: "Reel" recentPosts: "Recent pages" popularPosts: "Popular pages" shareWithNote: "Share with post" @@ -1142,6 +1142,7 @@ biteBack: "Chomp back" bittenBack: "Chomped back" bitYou: "chomped you" bitYouBack: "chomped you back" +space: "Space" achievements: "Achievements" _achievements: earnedAt: "Earn date and time" @@ -1407,8 +1408,8 @@ _forgotPassword: contactAdmin: "This server does not support using email addresses, please contact the server administrator to reset your password instead." _gallery: - my: "My Gallery" - liked: "Liked Posts" + my: "My Reels" + liked: "Liked Reels" like: "Like" unlike: "Remove like" _email: @@ -2007,33 +2008,33 @@ _timelines: social: "Social" global: "Global" _pages: - newPage: "Create a new Page" - editPage: "Edit this Page" - readPage: "Viewing this Page's source" - created: "Page successfully created" - updated: "Page successfully edited" - deleted: "Page successfully deleted" - pageSetting: "Page settings" - nameAlreadyExists: "The specified Page URL already exists" - invalidNameTitle: "The specified Page URL is invalid" - invalidNameText: "Make sure the Page title is not empty" - editThisPage: "Edit this Page" + newPage: "Create a Journal entry" + editPage: "Edit this Journal entry" + readPage: "Viewing this Journal's source" + created: "Journal entry successfully created" + updated: "Journal entry successfully edited" + deleted: "Journal entry successfully deleted" + pageSetting: "Journal settings" + nameAlreadyExists: "The specified Journal URL already exists" + invalidNameTitle: "The specified Journal URL is invalid" + invalidNameText: "Make sure the Journal title is not empty" + editThisPage: "Edit this Journal entry" viewSource: "View source" - viewPage: "View your Pages" + viewPage: "View your Journal" like: "Like" unlike: "Remove like" - my: "My Pages" - liked: "Liked Pages" + my: "My Journal" + liked: "Liked Journals" featured: "Popular" inspector: "Inspector" contents: "Content" - content: "Page block" + content: "Journal block" variables: "Variables" title: "Title" - url: "Page URL" - summary: "Page summary" + url: "Journal URL" + summary: "Journal summary" alignCenter: "Center elements" - hideTitleWhenPinned: "Hide Page title when pinned to profile" + hideTitleWhenPinned: "Hide Journal title when pinned to profile" font: "Font" fontSerif: "Serif" fontSansSerif: "Sans Serif" @@ -2294,7 +2295,7 @@ _pages: stringArray: "Text list" emptySlot: "Empty slot" enviromentVariables: "Environment variables" - pageVariables: "Page variables" + pageVariables: "Journal variables" argVariables: "Input slots" _relayStatus: requesting: "Pending" diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 1481b5839..9db7e376c 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -793,8 +793,8 @@ switch: "切り替え" noMaintainerInformationWarning: "管理者情報が設定されていません。" noBotProtectionWarning: "Botプロテクションが設定されていません。" configure: "設定する" -postToGallery: "ギャラリーへ投稿" -gallery: "ギャラリー" +postToGallery: "新しい Reel を作成する" +gallery: "Reel" recentPosts: "最近の投稿" popularPosts: "人気の投稿" shareWithNote: "投稿で共有" @@ -988,6 +988,7 @@ showWithSparkles: "タイトルをキラキラさせる" youHaveUnreadAnnouncements: "未読のお知らせがあります" neverShow: "今後表示しない" remindMeLater: "また後で" +space: "スペース" achievements: "実績" _achievements: @@ -1242,8 +1243,8 @@ _forgotPassword: ifNoEmail: "メールアドレスを登録していない場合は、管理者までお問い合わせください。" contactAdmin: "このインスタンスではメールアドレスの登録がサポートされていないため、パスワードリセットを行う場合は管理者までお問い合わせください。" _gallery: - my: "自分の投稿" - liked: "いいねした投稿" + my: "私の Reels" + liked: "好きな Reel" like: "いいね!" unlike: "いいね解除" _email: diff --git a/packages/client/src/components/MkPagePreview.vue b/packages/client/src/components/MkPagePreview.vue index 034c6fed6..2e12220e0 100644 --- a/packages/client/src/components/MkPagePreview.vue +++ b/packages/client/src/components/MkPagePreview.vue @@ -37,7 +37,7 @@ import { userName } from "@/filters/user"; import { ui } from "@/config"; -defineProps<{ +const props = defineProps<{ page: any; }>(); diff --git a/packages/client/src/navbar.ts b/packages/client/src/navbar.ts index fa3cf51dd..ddcd8ccb9 100644 --- a/packages/client/src/navbar.ts +++ b/packages/client/src/navbar.ts @@ -71,6 +71,12 @@ export const navbarItemDef = reactive({ show: computed(() => $i != null), to: "/my/achievements", }, + space: { + title: "space", + icon: "ph-rocket-launch ph-bold ph-lg", + show: computed(() => $i != null), + to: "/my/space", + }, ui: { title: "switchUi", icon: "ph-layout ph-bold ph-lg", diff --git a/packages/client/src/pages/gallery/edit.vue b/packages/client/src/pages/gallery/edit.vue index 0c3b51212..4bcde6486 100644 --- a/packages/client/src/pages/gallery/edit.vue +++ b/packages/client/src/pages/gallery/edit.vue @@ -127,7 +127,7 @@ async function del() { await os.apiWithDialog("gallery/posts/delete", { postId: props.postId, }); - router.push("/gallery"); + router.push("/my/space"); } watch( diff --git a/packages/client/src/pages/my-space/index.vue b/packages/client/src/pages/my-space/index.vue new file mode 100644 index 000000000..eaee3a452 --- /dev/null +++ b/packages/client/src/pages/my-space/index.vue @@ -0,0 +1,180 @@ + + + + + diff --git a/packages/client/src/pages/page-editor/page-editor.vue b/packages/client/src/pages/page-editor/page-editor.vue index 7fda39303..82d4e4eb8 100644 --- a/packages/client/src/pages/page-editor/page-editor.vue +++ b/packages/client/src/pages/page-editor/page-editor.vue @@ -5,6 +5,7 @@ v-model:tab="tab" :actions="headerActions" :tabs="headerTabs" + :display-back-button="true" />
diff --git a/packages/client/src/router.ts b/packages/client/src/router.ts index 156b3252f..c26b6f733 100644 --- a/packages/client/src/router.ts +++ b/packages/client/src/router.ts @@ -655,6 +655,11 @@ export const routes = [ component: page(() => import("./pages/my-antennas/edit.vue")), loginRequired: true, }, + { + path: "/my/space", + component: page(() => import("./pages/my-space/index.vue")), + loginRequired: true, + }, { path: "/news", component: page(() => import("./pages/news.vue")), diff --git a/packages/client/src/store.ts b/packages/client/src/store.ts index 97b86a56b..bef7b2ab5 100644 --- a/packages/client/src/store.ts +++ b/packages/client/src/store.ts @@ -17,7 +17,7 @@ const menuOptions = [ "news", "discover", "-", - "achievements", + "space", "drive" ];