| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 | 
							- <template lang='pug'>
 
-   v-dialog(
 
-     v-model='isShown'
 
-     max-width='550'
 
-     persistent
 
-     overlay-color='red darken-4'
 
-     overlay-opacity='.7'
 
-     )
 
-     v-card
 
-       .dialog-header.is-short.is-red
 
-         v-icon.mr-2(color='white') mdi-file-document-box-remove-outline
 
-         span {{$t('common:page.delete')}}
 
-       v-card-text.pt-5
 
-         i18next.body-1(path='common:page.deleteTitle', tag='div')
 
-           span.red--text.text--darken-2(place='title') {{pageTitle}}
 
-         .caption {{$t('common:page.deleteSubtitle')}}
 
-         v-chip.mt-3.ml-0.mr-1(label, color='red lighten-4', small)
 
-           .caption.red--text.text--darken-2 {{pageLocale.toUpperCase()}}
 
-         v-chip.mt-3.mx-0(label, color='red lighten-5', small)
 
-           span.red--text.text--darken-2 /{{pagePath}}
 
-       v-card-chin
 
-         v-spacer
 
-         v-btn(text, @click='discard', :disabled='loading') {{$t('common:actions.cancel')}}
 
-         v-btn.px-4(color='red darken-2', @click='deletePage', :loading='loading').white--text {{$t('common:actions.delete')}}
 
- </template>
 
- <script>
 
- import _ from 'lodash'
 
- import { get } from 'vuex-pathify'
 
- import deletePageMutation from 'gql/common/common-pages-mutation-delete.gql'
 
- export default {
 
-   props: {
 
-     value: {
 
-       type: Boolean,
 
-       default: false
 
-     }
 
-   },
 
-   data() {
 
-     return {
 
-       loading: false
 
-     }
 
-   },
 
-   computed: {
 
-     isShown: {
 
-       get() { return this.value },
 
-       set(val) { this.$emit('input', val) }
 
-     },
 
-     pageTitle: get('page/title'),
 
-     pagePath: get('page/path'),
 
-     pageLocale: get('page/locale'),
 
-     pageId: get('page/id')
 
-   },
 
-   watch: {
 
-     isShown(newValue, oldValue) {
 
-       if (newValue) {
 
-         document.body.classList.add('page-deleted-pending')
 
-       }
 
-     }
 
-   },
 
-   methods: {
 
-     discard() {
 
-       document.body.classList.remove('page-deleted-pending')
 
-       this.isShown = false
 
-     },
 
-     async deletePage() {
 
-       this.loading = true
 
-       this.$store.commit(`loadingStart`, 'page-delete')
 
-       this.$nextTick(async () => {
 
-         try {
 
-           const resp = await this.$apollo.mutate({
 
-             mutation: deletePageMutation,
 
-             variables: {
 
-               id: this.pageId
 
-             }
 
-           })
 
-           if (_.get(resp, 'data.pages.delete.responseResult.succeeded', false)) {
 
-             this.isShown = false
 
-             _.delay(() => {
 
-               document.body.classList.add('page-deleted')
 
-               _.delay(() => {
 
-                 window.location.assign('/')
 
-               }, 1200)
 
-             }, 400)
 
-           } else {
 
-             throw new Error(_.get(resp, 'data.pages.delete.responseResult.message', this.$t('common:error.unexpected')))
 
-           }
 
-         } catch (err) {
 
-           this.$store.commit('pushGraphError', err)
 
-         }
 
-         this.$store.commit(`loadingStop`, 'page-delete')
 
-         this.loading = false
 
-       })
 
-     }
 
-   }
 
- }
 
- </script>
 
- <style lang='scss'>
 
-   body.page-deleted-pending {
 
-     perspective: 50vw;
 
-     height: 100vh;
 
-     overflow: hidden;
 
-     .application {
 
-       background-color: mc('grey', '900');
 
-     }
 
-     .application--wrap {
 
-       transform-style: preserve-3d;
 
-       transform: translateZ(-5vw) rotateX(2deg);
 
-       border-radius: 7px;
 
-       overflow: hidden;
 
-     }
 
-   }
 
-   body.page-deleted {
 
-     perspective: 50vw;
 
-     .application--wrap {
 
-       transform-style: preserve-3d;
 
-       transform: translateZ(-1000vw) rotateX(60deg);
 
-       opacity: 0;
 
-     }
 
-   }
 
- </style>
 
 
  |