aboutsummaryrefslogtreecommitdiff
path: root/src/components/bookmark_folder_edit/bookmark_folder_edit.js
diff options
context:
space:
mode:
authormarcin mikołajczak <git@mkljczk.pl>2024-09-24 18:15:49 +0200
committermarcin mikołajczak <git@mkljczk.pl>2024-09-26 00:40:06 +0200
commit2b6de423d5a02413924f18910b1ce3538a5a1625 (patch)
tree4fd6fde754233ac358933ff07d4c1607b79a5849 /src/components/bookmark_folder_edit/bookmark_folder_edit.js
parent49ec95b8f66ff3a60e86b0a6027956d71fb6abf5 (diff)
Bookmark folder editing
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
Diffstat (limited to 'src/components/bookmark_folder_edit/bookmark_folder_edit.js')
-rw-r--r--src/components/bookmark_folder_edit/bookmark_folder_edit.js65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/components/bookmark_folder_edit/bookmark_folder_edit.js b/src/components/bookmark_folder_edit/bookmark_folder_edit.js
new file mode 100644
index 00000000..8c5d3cfd
--- /dev/null
+++ b/src/components/bookmark_folder_edit/bookmark_folder_edit.js
@@ -0,0 +1,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