Skip to content

Commit 5a1503b

Browse files
committed
redesign ordering of notes
1 parent 6f2369e commit 5a1503b

File tree

6 files changed

+39
-94
lines changed

6 files changed

+39
-94
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ For detailed explanation on how things work, check out [Nuxt.js docs](https://nu
6565
## Changelog
6666

6767
### 0.9.17
68+
* UX: redesign ordering of notes - now you can configure the order in wysiwyg-style
6869
* UX: make placeholder in template notes sortable
6970
* abort creation/edit of note while typing [ESC]
7071
* autofocus the first text element on copy dialog for template notes

components/note/OrderConfig.vue

-79
This file was deleted.

components/settings/Board.vue

+1-2
Original file line numberDiff line numberDiff line change
@@ -119,13 +119,12 @@
119119
<script>
120120
import { mapActions, mapState } from 'vuex';
121121
import uuid4 from 'uuid4'
122-
import draggable from 'vuedraggable'
123122
import BoardForm from "../board/Form";
124123
import HelpBoard from "../help/Board";
125124
126125
export default {
127126
name: "SettingsBoard",
128-
components: {HelpBoard, BoardForm, draggable},
127+
components: {HelpBoard, BoardForm},
129128
data(){
130129
return {
131130
showHelp: false,

pages/index.vue

+37-9
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,14 @@
66
</v-col>
77
</v-row>
88

9-
<v-row align="center">
10-
<v-col cols="12" sm="6" md="3" v-for="note of filteredNotes" :key="note.id">
9+
<!-- the following class of draggable will mocks a <v-row align="center"> -->
10+
<draggable v-model="filteredNoteOrder"
11+
class="row align-center draggable"
12+
handle=".v-toolbar"
13+
:scroll-sensitivity="200"
14+
:force-fallback="true">
1115

16+
<v-col cols="12" sm="6" md="3" v-for="note of filteredNotes" :key="note.id" >
1217
<NoteCardText v-if="note.type === 'text'" :note="note"
1318
:show-tags="showTags"
1419
@onCopy="onCopyNote"
@@ -39,9 +44,8 @@
3944
@onCopy="onCopyNote"
4045
@onEdit="onEditRequest(note)"
4146
@onDelete="onDeleteRequest(note.id)" />
42-
4347
</v-col>
44-
</v-row>
48+
</draggable>
4549

4650
<v-dialog v-model="dialog.delete.open" max-width="290">
4751
<v-card>
@@ -75,9 +79,6 @@
7579

7680
<v-footer app class="pa-0">
7781
<v-toolbar dense color="footer">
78-
<v-toolbar-items>
79-
<NoteOrderConfig />
80-
</v-toolbar-items>
8182
<div class="flex-grow-1"></div>
8283

8384
<v-toolbar-items>
@@ -138,7 +139,6 @@ import NoteFormPicture from "../components/note/form/Picture";
138139
import NoteFormTemplate from "../components/note/form/Template";
139140
import NoteCardTemplate from "../components/note/card/Template";
140141
import HelpFirstSteps from "../components/help/FirstSteps";
141-
import NoteOrderConfig from "../components/note/OrderConfig";
142142
import NoteFormCredentials from "../components/note/form/Credentials";
143143
import NoteCardCredentials from "../components/note/card/Credentials";
144144
import NoteFormCamera from "../components/note/form/Camera";
@@ -150,7 +150,6 @@ export default {
150150
components: {
151151
NoteCardReminder,
152152
NoteFormReminder,
153-
NoteOrderConfig,
154153
HelpFirstSteps,
155154
NoteCardTemplate,
156155
NoteFormTemplate,
@@ -201,6 +200,29 @@ export default {
201200
noteDeleteHard: state => state.settings.notes.deleteHard,
202201
noteDefaultType: state => state.settings.notes.defaultType
203202
}),
203+
filteredNoteOrder: {
204+
get() {
205+
return this.filteredNotes.map(n => n.id)
206+
},
207+
set(value) {
208+
//the filteredNoteOrder array can be a subset of noteOrder
209+
//so here we have to translate the new subset order to the whole noteOrder!
210+
let valueOrdinal = {}
211+
for(let i=0; i < value.length; i++) {
212+
valueOrdinal[value[i]] = i
213+
}
214+
215+
let newOrder = [...this.noteOrder]
216+
newOrder.sort((a, b) => {
217+
if(!valueOrdinal.hasOwnProperty(a)) return 0 //a is a note not included in the filteredNotes!
218+
if(!valueOrdinal.hasOwnProperty(b)) return -1
219+
if(valueOrdinal[a] > valueOrdinal[b]) return 1
220+
if(valueOrdinal[a] < valueOrdinal[b]) return -1
221+
return 0
222+
})
223+
this.$store.dispatch('note/setNoteOrder', newOrder)
224+
}
225+
},
204226
availableTags() {
205227
let tags = {}
206228
for(let tag of this.noteTags) tags[tag] = true
@@ -335,3 +357,9 @@ export default {
335357
},
336358
}
337359
</script>
360+
361+
<style>
362+
.draggable .v-toolbar {
363+
cursor: grab;
364+
}
365+
</style>

pages/notes/edit/_id.vue

-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import NoteFormPicture from "../../../components/note/form/Picture";
3131
import NoteFormTemplate from "../../../components/note/form/Template";
3232
import NoteCardTemplate from "../../../components/note/card/Template";
3333
import HelpFirstSteps from "../../../components/help/FirstSteps";
34-
import NoteOrderConfig from "../../../components/note/OrderConfig";
3534
import NoteFormCredentials from "../../../components/note/form/Credentials";
3635
import NoteCardCredentials from "../../../components/note/card/Credentials";
3736
import NoteFormCamera from "../../../components/note/form/Camera";
@@ -43,7 +42,6 @@ export default {
4342
components: {
4443
NoteCardReminder,
4544
NoteFormReminder,
46-
NoteOrderConfig,
4745
HelpFirstSteps,
4846
NoteCardTemplate,
4947
NoteFormTemplate,

pages/notes/new/_type.vue

-2
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ import NoteFormPicture from "../../../components/note/form/Picture";
4242
import NoteFormTemplate from "../../../components/note/form/Template";
4343
import NoteCardTemplate from "../../../components/note/card/Template";
4444
import HelpFirstSteps from "../../../components/help/FirstSteps";
45-
import NoteOrderConfig from "../../../components/note/OrderConfig";
4645
import NoteFormCredentials from "../../../components/note/form/Credentials";
4746
import NoteCardCredentials from "../../../components/note/card/Credentials";
4847
import NoteFormCamera from "../../../components/note/form/Camera";
@@ -55,7 +54,6 @@ export default {
5554
components: {
5655
NoteCardReminder,
5756
NoteFormReminder,
58-
NoteOrderConfig,
5957
HelpFirstSteps,
6058
NoteCardTemplate,
6159
NoteFormTemplate,

0 commit comments

Comments
 (0)