aboutsummaryrefslogtreecommitdiff
path: root/src/components/bookmark_folder_edit/bookmark_folder_edit.js
blob: 8c5d3cfd4fff301a734f5ebec95c3de9893dd7af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import apiService from '../../services/api/api.service'

const BookmarkFolderEdit = {
  data () {
    return {
      name: '',
      nameDraft: '',
      emoji: '',
      emojiUrl: null,
      emojiDraft: '',
      emojiUrlDraft: null,
      reallyDelete: false
    }
  },
  created () {
    if (!this.id) return
    const credentials = this.$store.state.users.currentUser.credentials
    apiService.fetchBookmarkFolders({ credentials })
      .then((folders) => {
        const folder = folders.find(folder => folder.id === this.id)
        if (!folder) return

        this.nameDraft = this.name = folder.name
        this.emojiDraft = this.emoji = folder.emoji
        this.emojiUrlDraft = this.emojiUrl = folder.emoji_url
      })
  },
  computed: {
    id () {
      return this.$route.params.id
    }
  },
  methods: {
    updateFolder () {
      this.$store.dispatch('setBookmarkFolder', { folderId: this.id, name: this.nameDraft, emoji: this.emojiDraft })
        .then((folder) => {
          this.nameDraft = this.name = folder.name
          this.emojiDraft = this.emoji = folder.emoji
          this.emojiUrlDraft = this.emojiUrl = folder.emoji_url
        })
    },
    createFolder () {
      this.$store.dispatch('createBookmarkFolder', { name: this.nameDraft, emoji: this.emojiDraft })
        .then((folder) => {
          return folder.id
        })
        .then((folderId) => {
          this.$router.push({ name: 'bookmark-folders' })
        })
        .catch((e) => {
          this.$store.dispatch('pushGlobalNotice', {
            messageKey: 'bookmark_folders.error',
            messageArgs: [e.message],
            level: 'error'
          })
        })
    },
    deleteFolder () {
      this.$store.dispatch('deleteBookmarkFolder', { folderId: this.id })
      this.$router.push({ name: 'bookmark-folders' })
    }
  }
}

export default BookmarkFolderEdit