123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <template lang='pug'>
- v-card
- v-toolbar(flat, color='primary', dark, dense)
- .subheading {{ $t('admin:utilities.contentTitle') }}
- v-card-text
- v-subheader.pl-0.primary--text Migrate all pages to target locale
- .body-1 If you created content before selecting a different locale and activating the namespacing capabilities, you may want to transfer all content to the base locale.
- .body-1.red--text: strong This operation is destructive and cannot be reversed! Make sure you have proper backups!
- v-toolbar.radius-7.mt-3.wiki-form(flat, color='grey lighten-4', height='80')
- v-select(
- label='Source Locale'
- outlined
- hide-details
- :items='locales'
- item-text='name'
- item-value='code'
- v-model='sourceLocale'
- )
- v-icon.mx-3(large) arrow_forward
- v-select(
- label='Target Locale'
- outlined
- hide-details
- :items='locales'
- item-text='name'
- item-value='code'
- v-model='targetLocale'
- )
- .body-1.mt-3 Pages that are already in the target locale will not be touched. If a page already exists at the target, the source page will not be modified as it would create a conflict. If you want to overwrite the target page, you must first delete it.
- v-btn(outline, color='primary', @click='migrateToLocale', :disabled='loading').ml-0.mt-3
- v-icon(left) build
- span Proceed
- </template>
- <script>
- import _ from 'lodash'
- import utilityContentMigrateLocaleMutation from 'gql/admin/utilities/utilities-mutation-content-migratelocale.gql'
- /* global siteLangs, siteConfig */
- export default {
- data: () => {
- return {
- loading: false,
- sourceLocale: '',
- targetLocale: ''
- }
- },
- computed: {
- currentLocale () {
- return siteConfig.lang
- },
- locales () {
- return siteLangs
- }
- },
- methods: {
- async migrateToLocale() {
- this.loading = true
- this.$store.commit(`loadingStart`, 'admin-utilities-content-migratelocale')
- try {
- const respRaw = await this.$apollo.mutate({
- mutation: utilityContentMigrateLocaleMutation,
- variables: {
- sourceLocale: this.sourceLocale,
- targetLocale: this.targetLocale
- }
- })
- const resp = _.get(respRaw, 'data.pages.migrateToLocale.responseResult', {})
- if (resp.succeeded) {
- this.$store.commit('showNotification', {
- message: `Migrated ${_.get(respRaw, 'data.pages.migrateToLocale.count', 0)} page(s) to target locale successfully.`,
- style: 'success',
- icon: 'check'
- })
- } else {
- throw new Error(resp.message)
- }
- } catch (err) {
- this.$store.commit('pushGraphError', err)
- }
- this.$store.commit(`loadingStop`, 'admin-utilities-content-migratelocale')
- this.loading = false
- }
- }
- }
- </script>
- <style lang='scss'>
- </style>
|