diff --git a/client/components/editor.vue b/client/components/editor.vue
index a50d7251..124813dc 100644
--- a/client/components/editor.vue
+++ b/client/components/editor.vue
@@ -205,7 +205,7 @@ export default {
})
this.$store.set('editor/id', _.get(resp, 'page.id'))
this.$store.set('editor/mode', 'update')
- window.location.assign(`/${this.$store.get('page/path')}`)
+ window.location.assign(`/${this.$store.get('page/locale')}/${this.$store.get('page/path')}`)
} else {
throw new Error(_.get(resp, 'responseResult.message'))
}
diff --git a/server/controllers/common.js b/server/controllers/common.js
index 9465e76c..0bce891c 100644
--- a/server/controllers/common.js
+++ b/server/controllers/common.js
@@ -171,6 +171,8 @@ router.get('/*', async (req, res, next) => {
return res.redirect(`/${pageArgs.locale}/${pageArgs.path}`)
}
+ req.i18n.changeLanguage(pageArgs.locale)
+
if (!WIKI.auth.checkAccess(req.user, ['read:pages'], pageArgs)) {
_.set(res.locals, 'pageMeta.title', 'Unauthorized')
return res.status(403).render('unauthorized', { action: 'view' })
@@ -206,7 +208,7 @@ router.get('/*', async (req, res, next) => {
}
} else if (pageArgs.path === 'home') {
_.set(res.locals, 'pageMeta.title', 'Welcome')
- res.render('welcome')
+ res.render('welcome', { locale: pageArgs.locale })
} else {
_.set(res.locals, 'pageMeta.title', 'Page Not Found')
if (WIKI.auth.checkAccess(req.user, ['write:pages'], pageArgs)) {
diff --git a/server/graph/schemas/analytics.graphql b/server/graph/schemas/analytics.graphql
index 8783ca2d..437725a0 100644
--- a/server/graph/schemas/analytics.graphql
+++ b/server/graph/schemas/analytics.graphql
@@ -14,18 +14,32 @@ extend type Mutation {
# QUERIES
# -----------------------------------------------
+"""
+Queries for Analytics
+"""
type AnalyticsQuery {
+ """
+ Fetch list of Analytics providers and their configuration
+ """
providers(
+ "Return only active providers"
isEnabled: Boolean
- ): [AnalyticsProvider]
+ ): [AnalyticsProvider] @auth(requires: ["manage:system"])
}
# -----------------------------------------------
# MUTATIONS
# -----------------------------------------------
+"""
+Mutations for Analytics
+"""
type AnalyticsMutation {
+ """
+ Update a list of Analytics providers and their configuration
+ """
updateProviders(
+ "List of providers"
providers: [AnalyticsProviderInput]!
): DefaultResponse @auth(requires: ["manage:system"])
}
@@ -34,20 +48,48 @@ type AnalyticsMutation {
# TYPES
# -----------------------------------------------
+"""
+Analytics Provider
+"""
type AnalyticsProvider {
+ "Is the provider active"
isEnabled: Boolean!
+
+ "Unique identifier for this provider"
key: String!
+
+ "List of configuration properties, formatted as stringified JSON objects"
props: [String]
+
+ "Name of the provider"
title: String!
+
+ "Short description of the provider"
description: String
+
+ "Is the provider available for use"
isAvailable: Boolean
+
+ "Path to the provider logo"
logo: String
+
+ "Website of the provider"
website: String
- icon: String
- config: [KeyValuePair] @auth(requires: ["manage:system"])
+
+ "Configuration values for this provider"
+ config: [KeyValuePair]
}
+
+"""
+Analytics Configuration Input
+"""
input AnalyticsProviderInput {
+ "Is the provider active"
isEnabled: Boolean!
+
+ "Unique identifier of the provider"
key: String!
+
+ "Configuration values for this provider"
config: [KeyValuePairInput]
}
diff --git a/server/jobs/fetch-graph-locale.js b/server/jobs/fetch-graph-locale.js
index 21201faf..7a38cfe9 100644
--- a/server/jobs/fetch-graph-locale.js
+++ b/server/jobs/fetch-graph-locale.js
@@ -37,7 +37,7 @@ module.exports = async (localeCode) => {
const locales = await WIKI.cache.get('locales')
if (locales) {
const currentLocale = _.find(locales, ['code', localeCode]) || {}
- const existingLocale = await WIKI.models.locales.query().where('code', localeCode)
+ const existingLocale = await WIKI.models.locales.query().where('code', localeCode).first()
if (existingLocale) {
await WIKI.models.locales.query().patch({
strings: lcObj
diff --git a/server/views/legacy/login.pug b/server/views/legacy/login.pug
index 9952804e..cd519561 100644
--- a/server/views/legacy/login.pug
+++ b/server/views/legacy/login.pug
@@ -2,7 +2,7 @@ extends master.pug
block body
#root
- .login-deprecated Your browser is outdated. Upgrade to a #[a(href='https://bestvpn.org/outdatedbrowser/en', rel='nofollow') modern browser].
+ .login-deprecated!= t('outdatedBrowserWarning', { modernBrowser: '' + t('modernBrowser') + '', interpolation: { escapeValue: false } })
.login
.login-dialog
if err
@@ -12,12 +12,12 @@ block body
select(name='strategy')
each str in formStrategies
option(value=str.key, selected)= str.title
- input(type='text', name='user', placeholder='Username / Email')
- input(type='password', name='pass', placeholder='Password')
- button(type='submit') Login
+ input(type='text', name='user', placeholder=t('auth:fields.emailUser'))
+ input(type='password', name='pass', placeholder=t('auth:fields.password'))
+ button(type='submit')= t('auth:actions.login')
if socialStrategies.length
.login-social
- h2 or login using...
+ h2= t('auth:orLoginUsingStrategy')
each str in socialStrategies
a.login-social-icon(href='/login/' + str.key, class=str.color)
!= str.icon
diff --git a/server/views/legacy/page.pug b/server/views/legacy/page.pug
index f10a9b41..6dd02785 100644
--- a/server/views/legacy/page.pug
+++ b/server/views/legacy/page.pug
@@ -10,7 +10,7 @@ block body
#root
.header
span.header-title= siteConfig.title
- span.header-deprecated Your browser is outdated. Upgrade to a #[a(href='https://bestvpn.org/outdatedbrowser/en', rel='nofollow') modern browser].
+ span.header-deprecated!= t('outdatedBrowserWarning', { modernBrowser: '' + t('modernBrowser') + '', interpolation: { escapeValue: false } })
span.header-login
if !isAuthenticated
a(href='/login', title='Login')
@@ -43,7 +43,7 @@ block body
div!= page.render
if page.toc.length
.toc
- .toc-title Table of Contents
+ .toc-title= t('page.toc')
each tocItem, tocIdx in page.toc
a.toc-tile(href='#' + tocItem.anchor)
i.material-icons arrow_right
diff --git a/server/views/welcome.pug b/server/views/welcome.pug
index 6f0ae921..30027788 100644
--- a/server/views/welcome.pug
+++ b/server/views/welcome.pug
@@ -8,6 +8,6 @@ block body
img.animated.fadeIn(src='/svg/logo-wikijs.svg', alt='Wiki.js')
.headline= t('welcome.title')
.subheading.mt-3= t('welcome.subtitle')
- v-btn.mt-5(color='primary', href='/e/home', large)
+ v-btn.mt-5(color='primary', href='/e/' + locale + '/home', large)
v-icon(left) add
span= t('welcome.createhome')