From de709f04a2c717c27f17bdf1c6da83541611ab59 Mon Sep 17 00:00:00 2001 From: dena Date: Fri, 17 Jul 2026 17:05:43 +0200 Subject: [PATCH 1/5] api: add policy endpoints --- src/backend/api.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/backend/api.js b/src/backend/api.js index c51845ed..d357d001 100644 --- a/src/backend/api.js +++ b/src/backend/api.js @@ -98,6 +98,19 @@ export const wikiDiscovery = async ({ sort, direction, active, currentPage, resu })).data } +export const policiesCurrent = async () => { + return (await axios.get('/v1/policies/current')); +} + +export const policyByDate = async ({ policyType, activeFrom }) => { + return (await axios.get('/v1/policies/{policy_type}/by_active_from/{active_from}', { + params: { + policy_type: policyType, + active_from: activeFrom, + } + })); +} + export const importEntities = async ({ wikiId, entityIds = [ From 33a542f35067d93a4a30cb59906b671993870695 Mon Sep 17 00:00:00 2001 From: dena Date: Fri, 17 Jul 2026 17:06:10 +0200 Subject: [PATCH 2/5] adjust router --- src/router/index.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index dcaaba2c..7771ba49 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -14,13 +14,13 @@ import ResetPassword from '@/components/Pages/ResetPassword' import EmailVerification from '@/components/Pages/EmailVerification' import CreateWiki from '@/components/Pages/CreateWiki' import TabSettings from '@/components/Pages/ManageWiki/TabSettings' -import TermsOfUse from '@/components/Pages/TermsOfUse/Current.vue' +import TermsOfUse from '@/components/Pages/TermsOfUse/terms-of-use/2022-01-01.vue' +import TermsOfUseRenderer from '@/components/Pages/TermsOfUse/TermsOfUseRenderer.vue' import Privacy from '@/components/Pages/Privacy/Privacy' import User from '@/components/Pages/User' import Discovery from '@/components/Pages/Discovery/Discovery' import Complaint from '@/components/Pages/Complaint.vue' import HostingPolicy from '@/components/Pages/HostingPolicy.vue' -import TermsOfUseUpcoming from '@/components/Pages/TermsOfUse/Upcoming.vue' import DsaInfo from '@/components/Pages/DsaInfo/DsaInfo' Vue.use(Router) @@ -74,12 +74,12 @@ const router = new Router({ { path: '/terms-of-use', name: 'TermsOfUse', - component: TermsOfUse, + component: TermsOfUseRenderer, }, { - path: '/terms-of-use/upcoming', - name: 'TermsOfUseUpcoming', - component: TermsOfUseUpcoming, + path: '/terms-of-use/:version', + name: 'TermsOfUseRenderer', + component: TermsOfUseRenderer, }, { path: '/hosting-policy/pilot', @@ -184,6 +184,7 @@ router.beforeEach(async (to, from, next) => { }) router.afterEach(({ title, name }) => { + if (typeof name !== 'undefined') { if (typeof title === 'undefined') { // split pascal-case into separate words title = [...name.matchAll(/([A-Z]+[^A-Z]*)/g)] @@ -192,6 +193,7 @@ router.afterEach(({ title, name }) => { } document.title = `wikibase.cloud ${title.length ? ' - ' + title : ''}` + } }) export default router From 61ab8826467c0a8bb926e84f82b4f3cc81f4f5a7 Mon Sep 17 00:00:00 2001 From: dena Date: Fri, 17 Jul 2026 17:06:27 +0200 Subject: [PATCH 3/5] WIP dynamic ToU render --- .../TermsOfUse/TermsOfUseNavigationPanel.vue | 1 + .../Pages/TermsOfUse/TermsOfUseRenderer.vue | 88 +++++++++++++++++++ .../2022-01-01.vue} | 2 +- .../upcoming.vue} | 2 +- 4 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 src/components/Pages/TermsOfUse/TermsOfUseRenderer.vue rename src/components/Pages/TermsOfUse/{Current.vue => terms-of-use/2022-01-01.vue} (99%) rename src/components/Pages/TermsOfUse/{Upcoming.vue => terms-of-use/upcoming.vue} (99%) diff --git a/src/components/Pages/TermsOfUse/TermsOfUseNavigationPanel.vue b/src/components/Pages/TermsOfUse/TermsOfUseNavigationPanel.vue index 7ed9f406..061a6f43 100644 --- a/src/components/Pages/TermsOfUse/TermsOfUseNavigationPanel.vue +++ b/src/components/Pages/TermsOfUse/TermsOfUseNavigationPanel.vue @@ -11,6 +11,7 @@ export default { PolicyNavigationPanel, }, data: () => ({ + // TODO update with info from API termsOfUseLinks: [ { title: 'Upcoming Version', routePath: '/terms-of-use/upcoming' }, { title: '11 April 2022 (current)', routePath: '/terms-of-use' }, diff --git a/src/components/Pages/TermsOfUse/TermsOfUseRenderer.vue b/src/components/Pages/TermsOfUse/TermsOfUseRenderer.vue new file mode 100644 index 00000000..bde52c34 --- /dev/null +++ b/src/components/Pages/TermsOfUse/TermsOfUseRenderer.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/components/Pages/TermsOfUse/Current.vue b/src/components/Pages/TermsOfUse/terms-of-use/2022-01-01.vue similarity index 99% rename from src/components/Pages/TermsOfUse/Current.vue rename to src/components/Pages/TermsOfUse/terms-of-use/2022-01-01.vue index c34473e0..c04501ee 100644 --- a/src/components/Pages/TermsOfUse/Current.vue +++ b/src/components/Pages/TermsOfUse/terms-of-use/2022-01-01.vue @@ -1292,7 +1292,7 @@