From 91d0df13935b2264b5d3adecdfb41deff621526c Mon Sep 17 00:00:00 2001 From: Jonathan Pagel Date: Sat, 25 Mar 2023 10:01:16 +0100 Subject: [PATCH 1/4] Sidebar: removed Signed-off-by: Jonathan Pagel --- src/App.vue | 2 - src/components/NoteItem.vue | 14 +- src/components/NotePlain.vue | 22 +-- src/components/NoteRich.vue | 5 +- src/components/Sidebar.vue | 280 ----------------------------------- src/router.js | 3 - src/store/app.js | 5 - 7 files changed, 4 insertions(+), 327 deletions(-) delete mode 100644 src/components/Sidebar.vue diff --git a/src/App.vue b/src/App.vue index 4db4bc665..c81128615 100644 --- a/src/App.vue +++ b/src/App.vue @@ -37,8 +37,6 @@ - - diff --git a/src/components/NoteItem.vue b/src/components/NoteItem.vue index 56ab9cb48..426c223be 100644 --- a/src/components/NoteItem.vue +++ b/src/components/NoteItem.vue @@ -29,10 +29,6 @@ {{ actionFavoriteText }} - - - {{ t('notes', 'Details') }} - {{ t('notes', 'Delete note') }} @@ -45,14 +41,12 @@ - diff --git a/src/router.js b/src/router.js index 1e63d22d6..1986d935a 100644 --- a/src/router.js +++ b/src/router.js @@ -5,7 +5,6 @@ import { generateUrl } from '@nextcloud/router' import Loading from './components/Loading.vue' import Welcome from './components/Welcome.vue' import NotesView from './components/NotesView.vue' -import Sidebar from './components/Sidebar.vue' Vue.use(Router) @@ -29,11 +28,9 @@ export default new Router({ name: 'note', components: { default: NotesView, - sidebar: Sidebar, }, props: { default: true, - sidebar: true, }, }, ], diff --git a/src/store/app.js b/src/store/app.js index f7efb464a..95490d05a 100644 --- a/src/store/app.js +++ b/src/store/app.js @@ -5,7 +5,6 @@ const state = { isSaving: false, isManualSave: false, documentTitle: null, - sidebarOpen: false, searchText: '', } @@ -33,10 +32,6 @@ const mutations = { state.documentTitle = title }, - setSidebarOpen(state, open) { - state.sidebarOpen = open - }, - updateSearchText(state, searchText) { state.searchText = searchText }, From 4099c5321deb4dd36aee7fba995d390a91d0df4a Mon Sep 17 00:00:00 2001 From: "e.vukcevic" Date: Sat, 2 Sep 2023 17:58:50 +0200 Subject: [PATCH 2/4] fix: adding rename function for every note item in list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- src/components/NoteItem.vue | 51 +++++++++++++++++++++++++++++++++--- src/components/NotesList.vue | 15 ++++++++++- 2 files changed, 61 insertions(+), 5 deletions(-) diff --git a/src/components/NoteItem.vue b/src/components/NoteItem.vue index 426c223be..0824bf11d 100644 --- a/src/components/NoteItem.vue +++ b/src/components/NoteItem.vue @@ -29,10 +29,28 @@ {{ actionFavoriteText }} + + + + {{ t('notes', 'Rename') }} + + + + + {{ t('notes', 'Delete note') }} + + {{ actionCategoryText }} @@ -41,9 +59,10 @@ From ca85838f49e4827a7be5d659e23c887f4c6d3435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Tue, 7 Nov 2023 14:52:08 +0100 Subject: [PATCH 3/4] fix: Pin back vue-fragment to a non-buggy version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- package-lock.json | 14 +++++++------- package.json | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6211af027..b8536d41e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "markdown-it": "^13.0.2", "markdown-it-task-checkbox": "^1.0.6", "vue": "^2.7.15", - "vue-fragment": "1.6.0", + "vue-fragment": "^1.5.1", "vue-material-design-icons": "^5.2.0", "vue-observe-visibility": "^1.0.0", "vue-router": "^3.5.3", @@ -16962,9 +16962,9 @@ } }, "node_modules/vue-fragment": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/vue-fragment/-/vue-fragment-1.6.0.tgz", - "integrity": "sha512-a5T8ZZZK/EQzgVShEl374HbobUJ0a7v12BzOzS6Z/wd/5EE/5SffcyHC+7bf9hP3L7Yc0hhY/GhMdwFQ25O/8A==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/vue-fragment/-/vue-fragment-1.5.1.tgz", + "integrity": "sha512-ig6eES6TcMBbANW71ylB+AJgRN+Zksb3f50AxjGpAk6hMzqmeuD80qeh4LJP0jVw2dMBMjgRUfIkrvxygoRgtQ==", "peerDependencies": { "vue": "^2.5.16" } @@ -30317,9 +30317,9 @@ "requires": {} }, "vue-fragment": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/vue-fragment/-/vue-fragment-1.6.0.tgz", - "integrity": "sha512-a5T8ZZZK/EQzgVShEl374HbobUJ0a7v12BzOzS6Z/wd/5EE/5SffcyHC+7bf9hP3L7Yc0hhY/GhMdwFQ25O/8A==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/vue-fragment/-/vue-fragment-1.5.1.tgz", + "integrity": "sha512-ig6eES6TcMBbANW71ylB+AJgRN+Zksb3f50AxjGpAk6hMzqmeuD80qeh4LJP0jVw2dMBMjgRUfIkrvxygoRgtQ==", "requires": {} }, "vue-hot-reload-api": { diff --git a/package.json b/package.json index 6516d6370..3ebb94023 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "markdown-it": "^13.0.2", "markdown-it-task-checkbox": "^1.0.6", "vue": "^2.7.15", - "vue-fragment": "1.6.0", + "vue-fragment": "^1.5.1", "vue-material-design-icons": "^5.2.0", "vue-observe-visibility": "^1.0.0", "vue-router": "^3.5.3", @@ -46,4 +46,4 @@ "extends @nextcloud/browserslist-config" ], "version": "4.8.1" -} \ No newline at end of file +} From 32b4598c7110b627d8887d4dfd036856384cbe14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Tue, 7 Nov 2023 14:52:46 +0100 Subject: [PATCH 4/4] fix: Implement note category selector using NcActionInput MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- src/components/NoteItem.vue | 66 +++++++++++++++++++++++++++++++----- src/components/NotesList.vue | 8 ++--- 2 files changed, 62 insertions(+), 12 deletions(-) diff --git a/src/components/NoteItem.vue b/src/components/NoteItem.vue index 0824bf11d..dff039458 100644 --- a/src/components/NoteItem.vue +++ b/src/components/NoteItem.vue @@ -3,6 +3,7 @@ :title="title" :active="isSelected" :to="{ name: 'note', params: { noteId: note.id.toString() } }" + @update:menuOpen="onMenuChange" @click="onNoteSelected(note.id)" > @@ -62,11 +84,12 @@ import { NcListItem, NcActionButton, NcActionSeparator, NcActionInput } from '@nextcloud/vue' import AlertOctagonIcon from 'vue-material-design-icons/AlertOctagon.vue' import FileDocumentOutlineIcon from 'vue-material-design-icons/FileDocumentOutline.vue' +import FolderIcon from 'vue-material-design-icons/Folder.vue' import PencilIcon from 'vue-material-design-icons/Pencil.vue' import StarIcon from 'vue-material-design-icons/Star.vue' import { categoryLabel, routeIsNewNote } from '../Util.js' import { showError } from '@nextcloud/dialogs' -import { setFavorite, setTitle, fetchNote, deleteNote } from '../NotesService.js' +import { setFavorite, setTitle, fetchNote, deleteNote, setCategory } from '../NotesService.js' export default { name: 'NoteItem', @@ -74,6 +97,7 @@ export default { components: { AlertOctagonIcon, FileDocumentOutlineIcon, + FolderIcon, NcActionButton, NcListItem, StarIcon, @@ -93,9 +117,11 @@ export default { return { loading: { note: false, + category: false, }, newTitle: '', renaming: false, + showCategorySelect: false, } }, @@ -128,8 +154,24 @@ export default { actionDeleteIcon() { return 'icon-delete' + (this.loading.delete ? ' loading' : '') }, + categories() { + return [ + { + id: '', + label: categoryLabel(''), + }, + ...this.$store.getters.getCategories(0, false).map((category) => ({ + id: category, + label: categoryLabel(category), + })), + ] + }, }, methods: { + onMenuChange(state) { + this.actionsOpen = state + this.showCategorySelect = false + }, onNoteSelected(noteId) { this.$emit('note-selected', noteId) }, @@ -155,6 +197,15 @@ export default { onInputChange(event) { this.newTitle = event.target.value.toString() }, + async onCategoryChange(result) { + this.showCategorySelect = false + const category = result?.id ?? result?.label ?? null + if (category !== null && this.note.category !== category) { + this.loading.category = true + await setCategory(this.note.id, category) + this.loading.category = false + } + }, async onRename() { const newTitle = this.newTitle.toString() if (!newTitle) { @@ -171,7 +222,6 @@ export default { }) .finally(() => { this.loading.note = false - this.renaming = false }) if (routeIsNewNote(this.$route)) { diff --git a/src/components/NotesList.vue b/src/components/NotesList.vue index 779b51244..5b318725a 100644 --- a/src/components/NotesList.vue +++ b/src/components/NotesList.vue @@ -3,8 +3,8 @@ @@ -29,17 +29,17 @@ export default { data() { return { renamingNotes: [], - }; + } }, methods: { onNoteSelected(noteId) { this.$emit('note-selected', noteId) }, onStartRenaming(noteId) { - this.renamingNotes.push(noteId); + this.renamingNotes.push(noteId) }, isRenaming(noteId) { - return this.renamingNotes.includes(noteId); + return this.renamingNotes.includes(noteId) }, },