|  | @@ -6,7 +6,9 @@
 | 
	
		
			
				|  |  |            v-icon(color='green', left) check
 | 
	
		
			
				|  |  |            span.white--text(v-if='mode === "create"') {{ $t('common:actions.create') }}
 | 
	
		
			
				|  |  |            span.white--text(v-else) {{ $t('common:actions.save') }}
 | 
	
		
			
				|  |  | -        v-btn.is-icon(outline, color='red').mx-0: v-icon(color='red') close
 | 
	
		
			
				|  |  | +        v-btn(outline, color='red').mx-0
 | 
	
		
			
				|  |  | +          v-icon(color='red', left) close
 | 
	
		
			
				|  |  | +          span.white--text {{ $t('common:actions.discard') }}
 | 
	
		
			
				|  |  |          v-btn(outline, color='blue', @click.native.stop='openModal(`properties`)', dark)
 | 
	
		
			
				|  |  |            v-icon(left) sort_by_alpha
 | 
	
		
			
				|  |  |            span.white--text {{ $t('editor:page') }}
 | 
	
	
		
			
				|  | @@ -42,6 +44,7 @@ import { get, sync } from 'vuex-pathify'
 | 
	
		
			
				|  |  |  import { AtomSpinner } from 'epic-spinners'
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import createPageMutation from 'gql/editor/create.gql'
 | 
	
		
			
				|  |  | +import updatePageMutation from 'gql/editor/update.gql'
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import editorStore from '@/store/editor'
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -90,35 +93,79 @@ export default {
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      async save() {
 | 
	
		
			
				|  |  |        this.showProgressDialog('saving')
 | 
	
		
			
				|  |  | -      if (this.$store.get('editor/mode') === 'create') {
 | 
	
		
			
				|  |  | -        const resp = await this.$apollo.mutate({
 | 
	
		
			
				|  |  | -          mutation: createPageMutation,
 | 
	
		
			
				|  |  | -          variables: {
 | 
	
		
			
				|  |  | -            content: this.$store.get('editor/content'),
 | 
	
		
			
				|  |  | -            description: this.$store.get('editor/description'),
 | 
	
		
			
				|  |  | -            editor: 'markdown',
 | 
	
		
			
				|  |  | -            locale: this.$store.get('editor/locale'),
 | 
	
		
			
				|  |  | -            isPrivate: false,
 | 
	
		
			
				|  |  | -            isPublished: this.$store.get('editor/isPublished'),
 | 
	
		
			
				|  |  | -            path: this.$store.get('editor/path'),
 | 
	
		
			
				|  |  | -            publishEndDate: this.$store.get('editor/publishEndDate'),
 | 
	
		
			
				|  |  | -            publishStartDate: this.$store.get('editor/publishStartDate'),
 | 
	
		
			
				|  |  | -            tags: this.$store.get('editor/tags'),
 | 
	
		
			
				|  |  | -            title: this.$store.get('editor/title')
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -        if (_.get(resp, 'data.pages.create.responseResult.succeeded')) {
 | 
	
		
			
				|  |  | -          this.$store.commit('showNotification', {
 | 
	
		
			
				|  |  | -            message: this.$t('editor:save.success'),
 | 
	
		
			
				|  |  | -            style: 'success',
 | 
	
		
			
				|  |  | -            icon: 'check'
 | 
	
		
			
				|  |  | +      try {
 | 
	
		
			
				|  |  | +        if (this.$store.get('editor/mode') === 'create') {
 | 
	
		
			
				|  |  | +          // --------------------------------------------
 | 
	
		
			
				|  |  | +          // -> CREATE PAGE
 | 
	
		
			
				|  |  | +          // --------------------------------------------
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          let resp = await this.$apollo.mutate({
 | 
	
		
			
				|  |  | +            mutation: createPageMutation,
 | 
	
		
			
				|  |  | +            variables: {
 | 
	
		
			
				|  |  | +              content: this.$store.get('editor/content'),
 | 
	
		
			
				|  |  | +              description: this.$store.get('editor/description'),
 | 
	
		
			
				|  |  | +              editor: 'markdown',
 | 
	
		
			
				|  |  | +              locale: this.$store.get('editor/locale'),
 | 
	
		
			
				|  |  | +              isPrivate: false,
 | 
	
		
			
				|  |  | +              isPublished: this.$store.get('editor/isPublished'),
 | 
	
		
			
				|  |  | +              path: this.$store.get('editor/path'),
 | 
	
		
			
				|  |  | +              publishEndDate: this.$store.get('editor/publishEndDate'),
 | 
	
		
			
				|  |  | +              publishStartDate: this.$store.get('editor/publishStartDate'),
 | 
	
		
			
				|  |  | +              tags: this.$store.get('editor/tags'),
 | 
	
		
			
				|  |  | +              title: this.$store.get('editor/title')
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |            })
 | 
	
		
			
				|  |  | -          this.$store.set('editor/mode', 'update')
 | 
	
		
			
				|  |  | +          resp = _.get(resp, 'data.pages.create', {})
 | 
	
		
			
				|  |  | +          if (_.get(resp, 'responseResult.succeeded')) {
 | 
	
		
			
				|  |  | +            this.$store.commit('showNotification', {
 | 
	
		
			
				|  |  | +              message: this.$t('editor:save.success'),
 | 
	
		
			
				|  |  | +              style: 'success',
 | 
	
		
			
				|  |  | +              icon: 'check'
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            this.$store.set('editor/id', _.get(resp, 'page.id'))
 | 
	
		
			
				|  |  | +            this.$store.set('editor/mode', 'update')
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            throw new Error(_.get(resp, 'responseResult.message'))
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  | +          // --------------------------------------------
 | 
	
		
			
				|  |  | +          // -> UPDATE EXISTING PAGE
 | 
	
		
			
				|  |  | +          // --------------------------------------------
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +          let resp = await this.$apollo.mutate({
 | 
	
		
			
				|  |  | +            mutation: updatePageMutation,
 | 
	
		
			
				|  |  | +            variables: {
 | 
	
		
			
				|  |  | +              id: this.$store.get('editor/id'),
 | 
	
		
			
				|  |  | +              content: this.$store.get('editor/content'),
 | 
	
		
			
				|  |  | +              description: this.$store.get('editor/description'),
 | 
	
		
			
				|  |  | +              editor: 'markdown',
 | 
	
		
			
				|  |  | +              locale: this.$store.get('editor/locale'),
 | 
	
		
			
				|  |  | +              isPrivate: false,
 | 
	
		
			
				|  |  | +              isPublished: this.$store.get('editor/isPublished'),
 | 
	
		
			
				|  |  | +              path: this.$store.get('editor/path'),
 | 
	
		
			
				|  |  | +              publishEndDate: this.$store.get('editor/publishEndDate'),
 | 
	
		
			
				|  |  | +              publishStartDate: this.$store.get('editor/publishStartDate'),
 | 
	
		
			
				|  |  | +              tags: this.$store.get('editor/tags'),
 | 
	
		
			
				|  |  | +              title: this.$store.get('editor/title')
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +          resp = _.get(resp, 'data.pages.update', {})
 | 
	
		
			
				|  |  | +          if (_.get(resp, 'responseResult.succeeded')) {
 | 
	
		
			
				|  |  | +            this.$store.commit('showNotification', {
 | 
	
		
			
				|  |  | +              message: this.$t('editor:save.success'),
 | 
	
		
			
				|  |  | +              style: 'success',
 | 
	
		
			
				|  |  | +              icon: 'check'
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            throw new Error(_.get(resp, 'responseResult.message'))
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      } else {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +      } catch (err) {
 | 
	
		
			
				|  |  | +        this.$store.commit('showNotification', {
 | 
	
		
			
				|  |  | +          message: err.message,
 | 
	
		
			
				|  |  | +          style: 'error',
 | 
	
		
			
				|  |  | +          icon: 'warning'
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        this.hideProgressDialog()
 | 
	
		
			
				|  |  |      }
 |