feat: page locale migration + deps update
This commit is contained in:
parent
35c09a3602
commit
5689444a17
@ -69,7 +69,10 @@
|
|||||||
:hint='$t(`admin:theme.cssOverrideHint`)'
|
:hint='$t(`admin:theme.cssOverrideHint`)'
|
||||||
auto-grow
|
auto-grow
|
||||||
)
|
)
|
||||||
v-textarea.mt-2(
|
i18next.caption.pl-2.ml-1(path='admin:theme.cssOverrideWarning', tag='div')
|
||||||
|
strong.red--text(place='caution') {{$t('admin:theme.cssOverrideWarningCaution')}}
|
||||||
|
code(place='cssClass') .contents
|
||||||
|
v-textarea.mt-3(
|
||||||
v-model='config.injectHead'
|
v-model='config.injectHead'
|
||||||
:label='$t(`admin:theme.headHtmlInjection`)'
|
:label='$t(`admin:theme.headHtmlInjection`)'
|
||||||
outline
|
outline
|
||||||
@ -96,7 +99,26 @@
|
|||||||
.subheading {{$t('admin:theme.downloadThemes')}}
|
.subheading {{$t('admin:theme.downloadThemes')}}
|
||||||
v-spacer
|
v-spacer
|
||||||
v-chip(label, color='white', small).teal--text coming soon
|
v-chip(label, color='white', small).teal--text coming soon
|
||||||
v-card-text.caption -- Coming soon --
|
v-data-table(
|
||||||
|
:headers='headers',
|
||||||
|
:items='themes',
|
||||||
|
hide-actions,
|
||||||
|
item-key='value',
|
||||||
|
:rows-per-page-items='[-1]'
|
||||||
|
)
|
||||||
|
template(v-slot:items='thm')
|
||||||
|
td
|
||||||
|
strong {{thm.item.text}}
|
||||||
|
td
|
||||||
|
span {{ thm.item.author }}
|
||||||
|
td.text-xs-center
|
||||||
|
v-progress-circular(v-if='thm.item.isDownloading', indeterminate, color='blue', size='20', :width='2')
|
||||||
|
v-btn(v-else-if='thm.item.isInstalled && thm.item.installDate < thm.item.updatedAt', icon)
|
||||||
|
v-icon.blue--text cached
|
||||||
|
v-btn(v-else-if='thm.item.isInstalled', icon)
|
||||||
|
v-icon.green--text check
|
||||||
|
v-btn(v-else, icon)
|
||||||
|
v-icon.grey--text cloud_download
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@ -111,7 +133,7 @@ export default {
|
|||||||
return {
|
return {
|
||||||
loading: false,
|
loading: false,
|
||||||
themes: [
|
themes: [
|
||||||
{ text: 'Default', author: 'requarks.io', value: 'default' }
|
{ text: 'Default', author: 'requarks.io', value: 'default', isInstalled: true, installDate: '', updatedAt: '' }
|
||||||
],
|
],
|
||||||
iconsets: [
|
iconsets: [
|
||||||
{ text: 'Material Icons (default)', value: 'md' },
|
{ text: 'Material Icons (default)', value: 'md' },
|
||||||
@ -131,7 +153,28 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
darkMode: sync('site/dark')
|
darkMode: sync('site/dark'),
|
||||||
|
headers() {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
text: this.$t('admin:theme.downloadName'),
|
||||||
|
align: 'left',
|
||||||
|
value: 'text'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: this.$t('admin:theme.downloadAuthor'),
|
||||||
|
align: 'left',
|
||||||
|
value: 'author'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: this.$t('admin:theme.downloadDownload'),
|
||||||
|
align: 'center',
|
||||||
|
value: 'value',
|
||||||
|
sortable: false,
|
||||||
|
width: 100
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.darkModeInitial = this.darkMode
|
this.darkModeInitial = this.darkMode
|
||||||
|
@ -15,6 +15,13 @@
|
|||||||
v-btn(outline, color='primary', @click='flushUploads', :disabled='loading').ml-0.mt-3
|
v-btn(outline, color='primary', @click='flushUploads', :disabled='loading').ml-0.mt-3
|
||||||
v-icon(left) build
|
v-icon(left) build
|
||||||
span Proceed
|
span Proceed
|
||||||
|
v-divider.my-3
|
||||||
|
v-subheader.pl-0.primary--text Flush Client-Side Locale Cache
|
||||||
|
.body-1 Locale strings are cached in the browser local storage for 24h. You can delete your current cache in order to fetch the latest data during the next page load.
|
||||||
|
.body-1 Note that this affects only #[strong your own browser] and not everyone.
|
||||||
|
v-btn(outline, color='primary', @click='flushClientLocaleCache', :disabled='loading').ml-0.mt-3
|
||||||
|
v-icon(left) build
|
||||||
|
span Proceed
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@ -78,6 +85,19 @@ export default {
|
|||||||
|
|
||||||
this.$store.commit(`loadingStop`, 'admin-utilities-cache-flushUploads')
|
this.$store.commit(`loadingStop`, 'admin-utilities-cache-flushUploads')
|
||||||
this.loading = false
|
this.loading = false
|
||||||
|
},
|
||||||
|
async flushClientLocaleCache () {
|
||||||
|
for (let i = 0; i < window.localStorage.length; i++) {
|
||||||
|
const lsKey = window.localStorage.key(i)
|
||||||
|
if (_.startsWith(lsKey, 'i18next_res')) {
|
||||||
|
window.localStorage.removeItem(lsKey)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.$store.commit('showNotification', {
|
||||||
|
message: 'Locale Client-Side Cache flushed successfully.',
|
||||||
|
style: 'success',
|
||||||
|
icon: 'check'
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ export default {
|
|||||||
const resp = _.get(respRaw, 'data.pages.migrateToLocale.responseResult', {})
|
const resp = _.get(respRaw, 'data.pages.migrateToLocale.responseResult', {})
|
||||||
if (resp.succeeded) {
|
if (resp.succeeded) {
|
||||||
this.$store.commit('showNotification', {
|
this.$store.commit('showNotification', {
|
||||||
message: 'Migrated all content to target locale successfully.',
|
message: `Migrated ${_.get(respRaw, 'data.pages.migrateToLocale.count', 0)} page(s) to target locale successfully.`,
|
||||||
style: 'success',
|
style: 'success',
|
||||||
icon: 'check'
|
icon: 'check'
|
||||||
})
|
})
|
||||||
|
@ -7,6 +7,7 @@ mutation($sourceLocale: String!, $targetLocale: String!) {
|
|||||||
slug
|
slug
|
||||||
message
|
message
|
||||||
}
|
}
|
||||||
|
count
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
102
package.json
102
package.json
@ -35,13 +35,13 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@aoberoi/passport-slack": "1.0.5",
|
"@aoberoi/passport-slack": "1.0.5",
|
||||||
"@bugsnag/js": "6.3.1",
|
"@bugsnag/js": "6.3.2",
|
||||||
"algoliasearch": "3.33.0",
|
"algoliasearch": "3.33.0",
|
||||||
"apollo-fetch": "0.7.0",
|
"apollo-fetch": "0.7.0",
|
||||||
"apollo-server": "2.6.4",
|
"apollo-server": "2.6.9",
|
||||||
"apollo-server-express": "2.6.4",
|
"apollo-server-express": "2.6.9",
|
||||||
"auto-load": "3.0.4",
|
"auto-load": "3.0.4",
|
||||||
"aws-sdk": "2.480.0",
|
"aws-sdk": "2.493.0",
|
||||||
"axios": "0.19.0",
|
"axios": "0.19.0",
|
||||||
"azure-search-client": "3.1.5",
|
"azure-search-client": "3.1.5",
|
||||||
"bcryptjs-then": "1.0.1",
|
"bcryptjs-then": "1.0.1",
|
||||||
@ -50,7 +50,7 @@
|
|||||||
"brute-knex": "4.0.0",
|
"brute-knex": "4.0.0",
|
||||||
"chalk": "2.4.2",
|
"chalk": "2.4.2",
|
||||||
"cheerio": "1.0.0-rc.3",
|
"cheerio": "1.0.0-rc.3",
|
||||||
"chokidar": "3.0.1",
|
"chokidar": "3.0.2",
|
||||||
"clean-css": "4.2.1",
|
"clean-css": "4.2.1",
|
||||||
"compression": "1.7.4",
|
"compression": "1.7.4",
|
||||||
"connect-session-knex": "1.4.0",
|
"connect-session-knex": "1.4.0",
|
||||||
@ -59,7 +59,7 @@
|
|||||||
"custom-error-instance": "2.1.1",
|
"custom-error-instance": "2.1.1",
|
||||||
"dependency-graph": "0.8.0",
|
"dependency-graph": "0.8.0",
|
||||||
"diff": "4.0.1",
|
"diff": "4.0.1",
|
||||||
"diff2html": "2.10.0",
|
"diff2html": "2.11.2",
|
||||||
"dotize": "0.3.0",
|
"dotize": "0.3.0",
|
||||||
"elasticsearch6": "npm:@elastic/elasticsearch@6",
|
"elasticsearch6": "npm:@elastic/elasticsearch@6",
|
||||||
"elasticsearch7": "npm:@elastic/elasticsearch@7",
|
"elasticsearch7": "npm:@elastic/elasticsearch@7",
|
||||||
@ -67,17 +67,17 @@
|
|||||||
"express": "4.17.1",
|
"express": "4.17.1",
|
||||||
"express-brute": "1.0.1",
|
"express-brute": "1.0.1",
|
||||||
"express-session": "1.16.2",
|
"express-session": "1.16.2",
|
||||||
"file-type": "12.0.0",
|
"file-type": "12.0.1",
|
||||||
"filesize": "4.1.2",
|
"filesize": "4.1.2",
|
||||||
"fs-extra": "8.0.1",
|
"fs-extra": "8.1.0",
|
||||||
"getos": "3.1.1",
|
"getos": "3.1.1",
|
||||||
"graphql": "14.3.1",
|
"graphql": "14.4.2",
|
||||||
"graphql-list-fields": "2.0.2",
|
"graphql-list-fields": "2.0.2",
|
||||||
"graphql-rate-limit-directive": "1.1.0",
|
"graphql-rate-limit-directive": "1.1.0",
|
||||||
"graphql-subscriptions": "1.1.0",
|
"graphql-subscriptions": "1.1.0",
|
||||||
"graphql-tools": "4.0.5",
|
"graphql-tools": "4.0.5",
|
||||||
"highlight.js": "9.15.8",
|
"highlight.js": "9.15.8",
|
||||||
"i18next": "17.0.4",
|
"i18next": "17.0.6",
|
||||||
"i18next-express-middleware": "1.8.0",
|
"i18next-express-middleware": "1.8.0",
|
||||||
"i18next-node-fs-backend": "2.1.3",
|
"i18next-node-fs-backend": "2.1.3",
|
||||||
"image-size": "0.7.4",
|
"image-size": "0.7.4",
|
||||||
@ -86,16 +86,16 @@
|
|||||||
"js-yaml": "3.13.1",
|
"js-yaml": "3.13.1",
|
||||||
"jsonwebtoken": "8.5.1",
|
"jsonwebtoken": "8.5.1",
|
||||||
"klaw": "3.0.0",
|
"klaw": "3.0.0",
|
||||||
"knex": "0.17.6",
|
"knex": "0.19.0",
|
||||||
"lodash": "4.17.13",
|
"lodash": "4.17.14",
|
||||||
"markdown-it": "8.4.2",
|
"markdown-it": "9.0.1",
|
||||||
"markdown-it-abbr": "1.0.4",
|
"markdown-it-abbr": "1.0.4",
|
||||||
"markdown-it-anchor": "5.2.4",
|
"markdown-it-anchor": "5.2.4",
|
||||||
"markdown-it-attrs": "2.4.1",
|
"markdown-it-attrs": "2.4.1",
|
||||||
"markdown-it-emoji": "1.4.0",
|
"markdown-it-emoji": "1.4.0",
|
||||||
"markdown-it-expand-tabs": "1.0.13",
|
"markdown-it-expand-tabs": "1.0.13",
|
||||||
"markdown-it-external-links": "0.0.6",
|
"markdown-it-external-links": "0.0.6",
|
||||||
"markdown-it-footnote": "3.0.1",
|
"markdown-it-footnote": "3.0.2",
|
||||||
"markdown-it-imsize": "2.0.1",
|
"markdown-it-imsize": "2.0.1",
|
||||||
"markdown-it-mark": "2.0.0",
|
"markdown-it-mark": "2.0.0",
|
||||||
"markdown-it-mathjax": "2.0.0",
|
"markdown-it-mathjax": "2.0.0",
|
||||||
@ -105,7 +105,7 @@
|
|||||||
"mathjax-node": "2.1.1",
|
"mathjax-node": "2.1.1",
|
||||||
"mime-types": "2.1.24",
|
"mime-types": "2.1.24",
|
||||||
"moment": "2.24.0",
|
"moment": "2.24.0",
|
||||||
"moment-timezone": "0.5.25",
|
"moment-timezone": "0.5.26",
|
||||||
"mongodb": "3.2.7",
|
"mongodb": "3.2.7",
|
||||||
"mssql": "5.1.0",
|
"mssql": "5.1.0",
|
||||||
"multer": "1.4.1",
|
"multer": "1.4.1",
|
||||||
@ -113,7 +113,7 @@
|
|||||||
"nanoid": "2.0.3",
|
"nanoid": "2.0.3",
|
||||||
"node-2fa": "1.1.2",
|
"node-2fa": "1.1.2",
|
||||||
"node-cache": "4.2.0",
|
"node-cache": "4.2.0",
|
||||||
"nodemailer": "6.2.1",
|
"nodemailer": "6.3.0",
|
||||||
"objection": "1.6.9",
|
"objection": "1.6.9",
|
||||||
"passport": "0.4.0",
|
"passport": "0.4.0",
|
||||||
"passport-auth0": "1.1.0",
|
"passport-auth0": "1.1.0",
|
||||||
@ -138,7 +138,7 @@
|
|||||||
"pg": "7.11.0",
|
"pg": "7.11.0",
|
||||||
"pg-hstore": "2.3.3",
|
"pg-hstore": "2.3.3",
|
||||||
"pg-query-stream": "2.0.0",
|
"pg-query-stream": "2.0.0",
|
||||||
"pg-tsquery": "8.0.4",
|
"pg-tsquery": "8.0.5",
|
||||||
"pug": "2.0.4",
|
"pug": "2.0.4",
|
||||||
"qr-image": "3.2.0",
|
"qr-image": "3.2.0",
|
||||||
"raven": "2.6.4",
|
"raven": "2.6.4",
|
||||||
@ -148,41 +148,41 @@
|
|||||||
"safe-regex": "2.0.2",
|
"safe-regex": "2.0.2",
|
||||||
"sanitize-filename": "1.6.1",
|
"sanitize-filename": "1.6.1",
|
||||||
"scim-query-filter-parser": "1.1.0",
|
"scim-query-filter-parser": "1.1.0",
|
||||||
"semver": "6.1.1",
|
"semver": "6.2.0",
|
||||||
"serve-favicon": "2.5.0",
|
"serve-favicon": "2.5.0",
|
||||||
"simple-git": "1.116.0",
|
"simple-git": "1.121.0",
|
||||||
"solr-node": "1.2.1",
|
"solr-node": "1.2.1",
|
||||||
"sqlite3": "4.0.9",
|
"sqlite3": "4.0.9",
|
||||||
"striptags": "3.1.1",
|
"striptags": "3.1.1",
|
||||||
"subscriptions-transport-ws": "0.9.16",
|
"subscriptions-transport-ws": "0.9.16",
|
||||||
"tar-fs": "2.0.0",
|
"tar-fs": "2.0.0",
|
||||||
"twemoji": "12.0.4",
|
"twemoji": "12.1.2",
|
||||||
"uslug": "1.0.4",
|
"uslug": "1.0.4",
|
||||||
"uuid": "3.3.2",
|
"uuid": "3.3.2",
|
||||||
"validate.js": "0.13.1",
|
"validate.js": "0.13.1",
|
||||||
"validator": "11.0.0",
|
"validator": "11.1.0",
|
||||||
"validator-as-promised": "1.0.2",
|
"validator-as-promised": "1.0.2",
|
||||||
"winston": "3.2.1",
|
"winston": "3.2.1",
|
||||||
"yargs": "13.2.4"
|
"yargs": "13.2.4"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/cli": "^7.4.4",
|
"@babel/cli": "^7.5.0",
|
||||||
"@babel/core": "^7.4.5",
|
"@babel/core": "^7.5.4",
|
||||||
"@babel/plugin-proposal-class-properties": "^7.4.4",
|
"@babel/plugin-proposal-class-properties": "^7.5.0",
|
||||||
"@babel/plugin-proposal-decorators": "^7.4.4",
|
"@babel/plugin-proposal-decorators": "^7.4.4",
|
||||||
"@babel/plugin-proposal-export-namespace-from": "^7.2.0",
|
"@babel/plugin-proposal-export-namespace-from": "^7.5.2",
|
||||||
"@babel/plugin-proposal-function-sent": "^7.2.0",
|
"@babel/plugin-proposal-function-sent": "^7.5.0",
|
||||||
"@babel/plugin-proposal-json-strings": "^7.2.0",
|
"@babel/plugin-proposal-json-strings": "^7.2.0",
|
||||||
"@babel/plugin-proposal-numeric-separator": "^7.2.0",
|
"@babel/plugin-proposal-numeric-separator": "^7.2.0",
|
||||||
"@babel/plugin-proposal-throw-expressions": "^7.2.0",
|
"@babel/plugin-proposal-throw-expressions": "^7.2.0",
|
||||||
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
|
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
|
||||||
"@babel/plugin-syntax-import-meta": "^7.2.0",
|
"@babel/plugin-syntax-import-meta": "^7.2.0",
|
||||||
"@babel/polyfill": "^7.4.4",
|
"@babel/polyfill": "^7.4.4",
|
||||||
"@babel/preset-env": "^7.4.5",
|
"@babel/preset-env": "^7.5.4",
|
||||||
"@panter/vue-i18next": "0.15.1",
|
"@panter/vue-i18next": "0.15.1",
|
||||||
"@vue/babel-preset-app": "3.9.2",
|
"@vue/babel-preset-app": "3.9.2",
|
||||||
"animate-sass": "0.8.2",
|
"animate-sass": "0.8.2",
|
||||||
"animated-number-vue": "0.1.5",
|
"animated-number-vue": "1.0.0",
|
||||||
"apollo-cache-inmemory": "1.6.2",
|
"apollo-cache-inmemory": "1.6.2",
|
||||||
"apollo-client": "2.6.3",
|
"apollo-client": "2.6.3",
|
||||||
"apollo-link": "1.2.12",
|
"apollo-link": "1.2.12",
|
||||||
@ -192,16 +192,16 @@
|
|||||||
"apollo-link-persisted-queries": "0.2.2",
|
"apollo-link-persisted-queries": "0.2.2",
|
||||||
"apollo-link-ws": "1.0.18",
|
"apollo-link-ws": "1.0.18",
|
||||||
"apollo-utilities": "1.3.2",
|
"apollo-utilities": "1.3.2",
|
||||||
"autoprefixer": "9.6.0",
|
"autoprefixer": "9.6.1",
|
||||||
"babel-eslint": "10.0.2",
|
"babel-eslint": "10.0.2",
|
||||||
"babel-jest": "24.8.0",
|
"babel-jest": "24.8.0",
|
||||||
"babel-loader": "^8.0.6",
|
"babel-loader": "^8.0.6",
|
||||||
"babel-plugin-graphql-tag": "2.4.0",
|
"babel-plugin-graphql-tag": "2.4.0",
|
||||||
"babel-plugin-lodash": "3.3.4",
|
"babel-plugin-lodash": "3.3.4",
|
||||||
"babel-plugin-prismjs": "1.0.2",
|
"babel-plugin-prismjs": "1.0.2",
|
||||||
"babel-plugin-transform-imports": "1.5.1",
|
"babel-plugin-transform-imports": "2.0.0",
|
||||||
"brace": "0.11.1",
|
"brace": "0.11.1",
|
||||||
"cache-loader": "4.0.0",
|
"cache-loader": "4.0.1",
|
||||||
"chart.js": "2.8.0",
|
"chart.js": "2.8.0",
|
||||||
"clean-webpack-plugin": "3.0.0",
|
"clean-webpack-plugin": "3.0.0",
|
||||||
"copy-webpack-plugin": "5.0.3",
|
"copy-webpack-plugin": "5.0.3",
|
||||||
@ -210,16 +210,16 @@
|
|||||||
"cssnano": "4.1.10",
|
"cssnano": "4.1.10",
|
||||||
"duplicate-package-checker-webpack-plugin": "3.0.0",
|
"duplicate-package-checker-webpack-plugin": "3.0.0",
|
||||||
"epic-spinners": "1.1.0",
|
"epic-spinners": "1.1.0",
|
||||||
"eslint": "6.0.0",
|
"eslint": "6.0.1",
|
||||||
"eslint-config-requarks": "1.0.7",
|
"eslint-config-requarks": "1.0.7",
|
||||||
"eslint-config-standard": "12.0.0",
|
"eslint-config-standard": "13.0.1",
|
||||||
"eslint-plugin-import": "2.17.3",
|
"eslint-plugin-import": "2.18.0",
|
||||||
"eslint-plugin-node": "9.1.0",
|
"eslint-plugin-node": "9.1.0",
|
||||||
"eslint-plugin-promise": "4.1.1",
|
"eslint-plugin-promise": "4.2.1",
|
||||||
"eslint-plugin-standard": "4.0.0",
|
"eslint-plugin-standard": "4.0.0",
|
||||||
"eslint-plugin-vue": "5.2.2",
|
"eslint-plugin-vue": "5.2.3",
|
||||||
"file-loader": "4.0.0",
|
"file-loader": "4.0.0",
|
||||||
"filepond": "4.4.9",
|
"filepond": "4.4.11",
|
||||||
"filepond-plugin-file-validate-type": "1.2.4",
|
"filepond-plugin-file-validate-type": "1.2.4",
|
||||||
"filesize.js": "1.0.2",
|
"filesize.js": "1.0.2",
|
||||||
"grapesjs": "0.14.62",
|
"grapesjs": "0.14.62",
|
||||||
@ -239,16 +239,16 @@
|
|||||||
"moment-duration-format": "2.3.2",
|
"moment-duration-format": "2.3.2",
|
||||||
"node-sass": "4.12.0",
|
"node-sass": "4.12.0",
|
||||||
"offline-plugin": "5.0.7",
|
"offline-plugin": "5.0.7",
|
||||||
"optimize-css-assets-webpack-plugin": "5.0.1",
|
"optimize-css-assets-webpack-plugin": "5.0.3",
|
||||||
"postcss-cssnext": "3.1.0",
|
"postcss-cssnext": "3.1.0",
|
||||||
"postcss-flexbugs-fixes": "4.1.0",
|
"postcss-flexbugs-fixes": "4.1.0",
|
||||||
"postcss-flexibility": "2.0.0",
|
"postcss-flexibility": "2.0.0",
|
||||||
"postcss-import": "12.0.1",
|
"postcss-import": "12.0.1",
|
||||||
"postcss-loader": "3.0.0",
|
"postcss-loader": "3.0.0",
|
||||||
"postcss-preset-env": "6.6.0",
|
"postcss-preset-env": "6.7.0",
|
||||||
"postcss-selector-parser": "6.0.2",
|
"postcss-selector-parser": "6.0.2",
|
||||||
"prismjs": "1.16.0",
|
"prismjs": "1.16.0",
|
||||||
"pug-lint": "2.5.0",
|
"pug-lint": "2.6.0",
|
||||||
"pug-loader": "2.4.0",
|
"pug-loader": "2.4.0",
|
||||||
"pug-plain-loader": "1.0.0",
|
"pug-plain-loader": "1.0.0",
|
||||||
"raw-loader": "3.0.0",
|
"raw-loader": "3.0.0",
|
||||||
@ -257,15 +257,15 @@
|
|||||||
"resolve-url-loader": "3.1.0",
|
"resolve-url-loader": "3.1.0",
|
||||||
"sass-loader": "7.1.0",
|
"sass-loader": "7.1.0",
|
||||||
"sass-resources-loader": "2.0.1",
|
"sass-resources-loader": "2.0.1",
|
||||||
"script-ext-html-webpack-plugin": "2.1.3",
|
"script-ext-html-webpack-plugin": "2.1.4",
|
||||||
"simple-progress-webpack-plugin": "1.1.2",
|
"simple-progress-webpack-plugin": "1.1.2",
|
||||||
"style-loader": "0.23.1",
|
"style-loader": "0.23.1",
|
||||||
"stylus": "0.54.5",
|
"stylus": "0.54.5",
|
||||||
"stylus-loader": "3.0.2",
|
"stylus-loader": "3.0.2",
|
||||||
"terser": "4.0.0",
|
"terser": "4.1.2",
|
||||||
"twemoji-awesome": "1.0.6",
|
"twemoji-awesome": "1.0.6",
|
||||||
"url-loader": "2.0.0",
|
"url-loader": "2.0.1",
|
||||||
"vee-validate": "2.2.11",
|
"vee-validate": "2.2.12",
|
||||||
"velocity-animate": "1.5.2",
|
"velocity-animate": "1.5.2",
|
||||||
"viz.js": "2.1.2",
|
"viz.js": "2.1.2",
|
||||||
"vue": "2.6.10",
|
"vue": "2.6.10",
|
||||||
@ -276,30 +276,30 @@
|
|||||||
"vue-filepond": "5.1.1",
|
"vue-filepond": "5.1.1",
|
||||||
"vue-hot-reload-api": "2.3.3",
|
"vue-hot-reload-api": "2.3.3",
|
||||||
"vue-loader": "15.7.0",
|
"vue-loader": "15.7.0",
|
||||||
"vue-material-design-icons": "3.2.0",
|
"vue-material-design-icons": "3.3.1",
|
||||||
"vue-moment": "4.0.0",
|
"vue-moment": "4.0.0",
|
||||||
"vue-router": "3.0.6",
|
"vue-router": "3.0.7",
|
||||||
"vue-simple-breakpoints": "1.0.3",
|
"vue-simple-breakpoints": "1.0.3",
|
||||||
"vue-status-indicator": "1.1.1",
|
"vue-status-indicator": "1.1.1",
|
||||||
"vue-template-compiler": "2.6.10",
|
"vue-template-compiler": "2.6.10",
|
||||||
"vue-tour": "1.1.0",
|
"vue-tour": "1.1.0",
|
||||||
"vue2-animate": "2.1.0",
|
"vue2-animate": "2.1.0",
|
||||||
"vuedraggable": "2.22.0",
|
"vuedraggable": "2.23.0",
|
||||||
"vuescroll": "4.13.0",
|
"vuescroll": "4.13.1",
|
||||||
"vuetify": "1.5.16",
|
"vuetify": "1.5.16",
|
||||||
"vuex": "3.1.1",
|
"vuex": "3.1.1",
|
||||||
"vuex-pathify": "1.2.4",
|
"vuex-pathify": "1.2.4",
|
||||||
"vuex-persistedstate": "2.5.4",
|
"vuex-persistedstate": "2.5.4",
|
||||||
"webpack": "4.35.0",
|
"webpack": "4.35.3",
|
||||||
"webpack-bundle-analyzer": "3.3.2",
|
"webpack-bundle-analyzer": "3.3.2",
|
||||||
"webpack-cli": "3.3.4",
|
"webpack-cli": "3.3.6",
|
||||||
"webpack-dev-middleware": "3.7.0",
|
"webpack-dev-middleware": "3.7.0",
|
||||||
"webpack-hot-middleware": "2.25.0",
|
"webpack-hot-middleware": "2.25.0",
|
||||||
"webpack-merge": "4.2.1",
|
"webpack-merge": "4.2.1",
|
||||||
"webpack-subresource-integrity": "1.3.2",
|
"webpack-subresource-integrity": "1.3.2",
|
||||||
"whatwg-fetch": "3.0.0",
|
"whatwg-fetch": "3.0.0",
|
||||||
"write-file-webpack-plugin": "4.5.0",
|
"write-file-webpack-plugin": "4.5.0",
|
||||||
"xterm": "3.14.2",
|
"xterm": "3.14.5",
|
||||||
"zxcvbn": "4.4.2"
|
"zxcvbn": "4.4.2"
|
||||||
},
|
},
|
||||||
"browserslist": [
|
"browserslist": [
|
||||||
|
@ -58,6 +58,13 @@ router.get(['/e', '/e/*'], async (req, res, next) => {
|
|||||||
userId: req.user.id,
|
userId: req.user.id,
|
||||||
isPrivate: false
|
isPrivate: false
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const injectCode = {
|
||||||
|
css: WIKI.config.theming.injectCSS,
|
||||||
|
head: WIKI.config.theming.injectHead,
|
||||||
|
body: WIKI.config.theming.injectBody
|
||||||
|
}
|
||||||
|
|
||||||
if (page) {
|
if (page) {
|
||||||
if (!WIKI.auth.checkAccess(req.user, ['manage:pages'], pageArgs)) {
|
if (!WIKI.auth.checkAccess(req.user, ['manage:pages'], pageArgs)) {
|
||||||
_.set(res.locals, 'pageMeta.title', 'Unauthorized')
|
_.set(res.locals, 'pageMeta.title', 'Unauthorized')
|
||||||
@ -84,7 +91,7 @@ router.get(['/e', '/e/*'], async (req, res, next) => {
|
|||||||
content: null
|
content: null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
res.render('editor', { page })
|
res.render('editor', { page, injectCode })
|
||||||
})
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -98,9 +98,10 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
async migrateToLocale(obj, args, context) {
|
async migrateToLocale(obj, args, context) {
|
||||||
try {
|
try {
|
||||||
|
const count = await WIKI.models.pages.migrateToLocale(args)
|
||||||
return {
|
return {
|
||||||
responseResult: graphHelper.generateSuccess('Migrated all content to target locale successfully.')
|
responseResult: graphHelper.generateSuccess('Migrated content to target locale successfully.'),
|
||||||
|
count
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
return graphHelper.generateError(err)
|
return graphHelper.generateError(err)
|
||||||
|
@ -77,7 +77,7 @@ type PageMutation {
|
|||||||
migrateToLocale(
|
migrateToLocale(
|
||||||
sourceLocale: String!
|
sourceLocale: String!
|
||||||
targetLocale: String!
|
targetLocale: String!
|
||||||
): DefaultResponse @auth(requires: ["manage:system"])
|
): PageMigrationResponse @auth(requires: ["manage:system"])
|
||||||
}
|
}
|
||||||
|
|
||||||
# -----------------------------------------------
|
# -----------------------------------------------
|
||||||
@ -89,6 +89,11 @@ type PageResponse {
|
|||||||
page: Page
|
page: Page
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type PageMigrationResponse {
|
||||||
|
responseResult: ResponseStatus!
|
||||||
|
count: Int
|
||||||
|
}
|
||||||
|
|
||||||
type Page {
|
type Page {
|
||||||
id: Int!
|
id: Int!
|
||||||
path: String!
|
path: String!
|
||||||
|
@ -421,6 +421,19 @@ module.exports = class Page extends Model {
|
|||||||
return fs.emptyDir(path.join(process.cwd(), `data/cache`))
|
return fs.emptyDir(path.join(process.cwd(), `data/cache`))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static async migrateToLocale({ sourceLocale, targetLocale }) {
|
||||||
|
return WIKI.models.pages.query()
|
||||||
|
.patch({
|
||||||
|
localeCode: targetLocale
|
||||||
|
})
|
||||||
|
.where({
|
||||||
|
localeCode: sourceLocale
|
||||||
|
})
|
||||||
|
.whereNotExists(function() {
|
||||||
|
this.select('id').from('pages AS pagesm').where('pagesm.localeCode', targetLocale).andWhereRaw('pagesm.path = pages.path')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
static cleanHTML(rawHTML = '') {
|
static cleanHTML(rawHTML = '') {
|
||||||
return striptags(rawHTML || '')
|
return striptags(rawHTML || '')
|
||||||
.replace(emojiRegex(), '')
|
.replace(emojiRegex(), '')
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
extends master.pug
|
extends master.pug
|
||||||
|
|
||||||
|
block head
|
||||||
|
if injectCode.css
|
||||||
|
style(type='text/css')!= injectCode.css
|
||||||
|
|
||||||
block body
|
block body
|
||||||
#root
|
#root
|
||||||
editor(
|
editor(
|
||||||
|
Loading…
Reference in New Issue
Block a user