diff --git a/js/src/components/Utils/Breadcrumbs.vue b/js/src/components/Utils/Breadcrumbs.vue new file mode 100644 index 000000000..a9f775a25 --- /dev/null +++ b/js/src/components/Utils/Breadcrumbs.vue @@ -0,0 +1,69 @@ + + + + + + {{ element.text }} + + + + + + {{ element.text }} + + + + + + {{ element.text }} + + + + + + + diff --git a/js/src/main.ts b/js/src/main.ts index 317f2b37b..0e6695195 100644 --- a/js/src/main.ts +++ b/js/src/main.ts @@ -12,6 +12,7 @@ import { NotifierPlugin } from "./plugins/notifier"; import filters from "./filters"; import { i18n } from "./utils/i18n"; import apolloProvider from "./vue-apollo"; +import Breadcrumbs from "@/components/Utils/Breadcrumbs.vue"; import "./registerServiceWorker"; import "./assets/tailwind.css"; @@ -25,6 +26,7 @@ Vue.use(VueScrollTo); Vue.use(VTooltip); Vue.use(VueAnnouncer); Vue.use(VueSkipTo); +Vue.component("breadcrumbs-nav", Breadcrumbs); // Register the router hooks with their names Component.registerHooks([ diff --git a/js/src/views/Account/children/EditIdentity.vue b/js/src/views/Account/children/EditIdentity.vue index 0bba7acde..d0e56dd43 100644 --- a/js/src/views/Account/children/EditIdentity.vue +++ b/js/src/views/Account/children/EditIdentity.vue @@ -1,28 +1,6 @@ - - - - {{ - $t("Profiles") - }} - - - {{ identity.name }} - - - {{ - $t("New profile") - }} - - - + {{ identity.displayName() }} @@ -253,6 +231,7 @@ import { ServerParseError } from "@apollo/client/link/http"; import { ApolloCache, FetchResult, InMemoryCache } from "@apollo/client/core"; import pick from "lodash/pick"; import { ActorType } from "@/types/enums"; +import { Location } from "vue-router"; @Component({ components: { @@ -670,5 +649,29 @@ export default class EditIdentity extends mixins(identityEditionMixin) { this.oldDisplayName = null; this.avatarFile = null; } + + get breadcrumbsLinks(): (Location & { text: string })[] { + const links = [ + { + name: RouteName.IDENTITIES, + params: {}, + text: this.$t("Profiles") as string, + }, + ]; + if (this.isUpdate && this.identity) { + links.push({ + name: RouteName.UPDATE_IDENTITY, + params: { identityName: this.identity.preferredUsername }, + text: this.identity.name, + }); + } else { + links.push({ + name: RouteName.CREATE_IDENTITY, + params: {}, + text: this.$t("New profile") as string, + }); + } + return links; + } } diff --git a/js/src/views/Admin/AdminGroupProfile.vue b/js/src/views/Admin/AdminGroupProfile.vue index 43e85e879..a330a69f8 100644 --- a/js/src/views/Admin/AdminGroupProfile.vue +++ b/js/src/views/Admin/AdminGroupProfile.vue @@ -1,31 +1,19 @@ - - - - {{ - $t("Admin") - }} - - - {{ $t("Groups") }} - - - {{ group.name || usernameWithDomain(group) }} - - - + - - - - {{ - $t("Admin") - }} - - - {{ $t("Profiles") }} - - - {{ person.name || person.preferredUsername }} - - - + + - - - - {{ - $t("Admin") - }} - - - {{ $t("Users") }} - - - {{ user.email }} - - - + + diff --git a/js/src/views/Admin/Dashboard.vue b/js/src/views/Admin/Dashboard.vue index d2894f0c1..75adc8e9f 100644 --- a/js/src/views/Admin/Dashboard.vue +++ b/js/src/views/Admin/Dashboard.vue @@ -1,19 +1,11 @@ - - - - {{ - $t("Admin") - }} - - - {{ - $t("Dashboard") - }} - - - + {{ $t("Administration") }} diff --git a/js/src/views/Admin/GroupProfiles.vue b/js/src/views/Admin/GroupProfiles.vue index f6a8011c2..6b4c95173 100644 --- a/js/src/views/Admin/GroupProfiles.vue +++ b/js/src/views/Admin/GroupProfiles.vue @@ -1,19 +1,14 @@ - - - - {{ - $t("Moderation") - }} - - - {{ - $t("Groups") - }} - - - + - - - - {{ - $t("Admin") - }} - - - {{ - $t("Instances") - }} - - - {{ instance.domain }} - - - + {{ instance.domain }} diff --git a/js/src/views/Admin/Instances.vue b/js/src/views/Admin/Instances.vue index e2c64940f..5856f5ef3 100644 --- a/js/src/views/Admin/Instances.vue +++ b/js/src/views/Admin/Instances.vue @@ -1,28 +1,16 @@ - - - - {{ - $t("Admin") - }} - - - {{ - $t("Instances") - }} - - - + {{ $t("Instances") }} - - + + - - - - {{ - $t("Moderation") - }} - - - {{ - $t("Profiles") - }} - - - + {{ $t("Local") }} {{ $t("Suspended") }} diff --git a/js/src/views/Admin/Settings.vue b/js/src/views/Admin/Settings.vue index 9a8e8c90c..137e7907a 100644 --- a/js/src/views/Admin/Settings.vue +++ b/js/src/views/Admin/Settings.vue @@ -1,19 +1,12 @@ - - - - {{ - $t("Admin") - }} - - - {{ - $t("Instance settings") - }} - - - + + diff --git a/js/src/views/Admin/Users.vue b/js/src/views/Admin/Users.vue index 4f7a7ca3b..c018f3366 100644 --- a/js/src/views/Admin/Users.vue +++ b/js/src/views/Admin/Users.vue @@ -1,19 +1,14 @@ - - - - {{ - $t("Moderation") - }} - - - {{ - $t("Users") - }} - - - + - - - - {{ - $t("My groups") - }} - - - {{ group.name }} - - - {{ $t("Discussions") }} - - - {{ $t("Create") }} - - - - + {{ $t("Create a discussion") }} @@ -67,7 +54,12 @@
- - - - {{ - $t("Admin") - }} - - - {{ $t("Profiles") }} - - - {{ person.name || person.preferredUsername }} - - - + + - - - - {{ - $t("Admin") - }} - - - {{ $t("Users") }} - - - {{ user.email }} - - - + + diff --git a/js/src/views/Admin/Dashboard.vue b/js/src/views/Admin/Dashboard.vue index d2894f0c1..75adc8e9f 100644 --- a/js/src/views/Admin/Dashboard.vue +++ b/js/src/views/Admin/Dashboard.vue @@ -1,19 +1,11 @@ - - - - {{ - $t("Admin") - }} - - - {{ - $t("Dashboard") - }} - - - + {{ $t("Administration") }} diff --git a/js/src/views/Admin/GroupProfiles.vue b/js/src/views/Admin/GroupProfiles.vue index f6a8011c2..6b4c95173 100644 --- a/js/src/views/Admin/GroupProfiles.vue +++ b/js/src/views/Admin/GroupProfiles.vue @@ -1,19 +1,14 @@ - - - - {{ - $t("Moderation") - }} - - - {{ - $t("Groups") - }} - - - + - - - - {{ - $t("Admin") - }} - - - {{ - $t("Instances") - }} - - - {{ instance.domain }} - - - + {{ instance.domain }} diff --git a/js/src/views/Admin/Instances.vue b/js/src/views/Admin/Instances.vue index e2c64940f..5856f5ef3 100644 --- a/js/src/views/Admin/Instances.vue +++ b/js/src/views/Admin/Instances.vue @@ -1,28 +1,16 @@ - - - - {{ - $t("Admin") - }} - - - {{ - $t("Instances") - }} - - - + {{ $t("Instances") }} - - + + - - - - {{ - $t("Moderation") - }} - - - {{ - $t("Profiles") - }} - - - + {{ $t("Local") }} {{ $t("Suspended") }} diff --git a/js/src/views/Admin/Settings.vue b/js/src/views/Admin/Settings.vue index 9a8e8c90c..137e7907a 100644 --- a/js/src/views/Admin/Settings.vue +++ b/js/src/views/Admin/Settings.vue @@ -1,19 +1,12 @@ - - - - {{ - $t("Admin") - }} - - - {{ - $t("Instance settings") - }} - - - + + diff --git a/js/src/views/Admin/Users.vue b/js/src/views/Admin/Users.vue index 4f7a7ca3b..c018f3366 100644 --- a/js/src/views/Admin/Users.vue +++ b/js/src/views/Admin/Users.vue @@ -1,19 +1,14 @@ - - - - {{ - $t("Moderation") - }} - - - {{ - $t("Users") - }} - - - + - - - - {{ - $t("My groups") - }} - - - {{ group.name }} - - - {{ $t("Discussions") }} - - - {{ $t("Create") }} - - - - + {{ $t("Create a discussion") }} @@ -67,7 +54,12 @@
- - - - {{ - $t("Moderation") - }} - - - {{ - $t("Profiles") - }} - - - + {{ $t("Local") }} {{ $t("Suspended") }} diff --git a/js/src/views/Admin/Settings.vue b/js/src/views/Admin/Settings.vue index 9a8e8c90c..137e7907a 100644 --- a/js/src/views/Admin/Settings.vue +++ b/js/src/views/Admin/Settings.vue @@ -1,19 +1,12 @@ - - - - {{ - $t("Admin") - }} - - - {{ - $t("Instance settings") - }} - - - + + diff --git a/js/src/views/Admin/Users.vue b/js/src/views/Admin/Users.vue index 4f7a7ca3b..c018f3366 100644 --- a/js/src/views/Admin/Users.vue +++ b/js/src/views/Admin/Users.vue @@ -1,19 +1,14 @@ - - - - {{ - $t("Moderation") - }} - - - {{ - $t("Users") - }} - - - + - - - - {{ - $t("My groups") - }} - - - {{ group.name }} - - - {{ $t("Discussions") }} - - - {{ $t("Create") }} - - - - + {{ $t("Create a discussion") }} @@ -67,7 +54,12 @@