bookmark_folder_edit.js (2199B)
- import EmojiPicker from '../emoji_picker/emoji_picker.vue'
- import apiService from '../../services/api/api.service'
- const BookmarkFolderEdit = {
- data () {
- return {
- name: '',
- nameDraft: '',
- emoji: '',
- emojiUrl: null,
- emojiDraft: '',
- emojiUrlDraft: null,
- emojiPickerExpanded: false,
- reallyDelete: false
- }
- },
- components: {
- EmojiPicker
- },
- 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: {
- selectEmoji (event) {
- this.emojiDraft = event.insertion
- this.emojiUrlDraft = event.insertionUrl
- },
- showEmojiPicker () {
- if (!this.emojiPickerExpanded) {
- this.$refs.picker.showPicker()
- }
- },
- onShowPicker () {
- this.emojiPickerExpanded = true
- },
- onClosePicker () {
- this.emojiPickerExpanded = false
- },
- updateFolder () {
- this.$store.dispatch('setBookmarkFolder', { folderId: this.id, name: this.nameDraft, emoji: this.emojiDraft })
- .then(() => {
- this.$router.push({ name: 'bookmark-folders' })
- })
- },
- createFolder () {
- this.$store.dispatch('createBookmarkFolder', { name: this.nameDraft, emoji: this.emojiDraft })
- .then(() => {
- 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