Folders are now sorted by name
This commit is contained in:
@@ -31,7 +31,7 @@ const reorderCreatureFolder = new ValidatedMethod({
|
||||
owner: userId
|
||||
}, {
|
||||
fields: { order: 1, },
|
||||
sort: { left: -1 }
|
||||
sort: { order: 1 }
|
||||
}).forEach((folder, index) => {
|
||||
if (folder.order !== index) {
|
||||
CreatureFolders.update(_id, { $set: { order: index } })
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
regular
|
||||
hide-details
|
||||
dense
|
||||
:value="model.name"
|
||||
:value="newName"
|
||||
@change="renameFolder"
|
||||
@click.native.stop=""
|
||||
@input.native.stop=""
|
||||
@@ -66,28 +66,32 @@
|
||||
},
|
||||
data(){return {
|
||||
renaming: false,
|
||||
newName: this.model?.name,
|
||||
}},
|
||||
watch: {
|
||||
renaming(value){
|
||||
if (!value) return;
|
||||
Vue.nextTick(() => {
|
||||
this.$refs['name-input'].focus();
|
||||
});
|
||||
if (value) {
|
||||
Vue.nextTick(() => {
|
||||
this.$refs['name-input'].focus();
|
||||
});
|
||||
} else if (this.newName && this.newName !== this.model.name) {
|
||||
updateCreatureFolderName.call({
|
||||
_id: this.model._id,
|
||||
name: this.newName
|
||||
}, error => {
|
||||
if (!error) return;
|
||||
console.error(error);
|
||||
snackbar({
|
||||
text: error.reason,
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
},
|
||||
methods:{
|
||||
renameFolder(name, ack){
|
||||
updateCreatureFolderName.call({
|
||||
_id: this.model._id,
|
||||
name
|
||||
}, error => {
|
||||
ack(error);
|
||||
if (!error) return;
|
||||
console.error(error);
|
||||
snackbar({
|
||||
text: error.reason,
|
||||
});
|
||||
});
|
||||
this.newName = name;
|
||||
ack();
|
||||
},
|
||||
removeFolder(){
|
||||
removeCreatureFolder.call({
|
||||
|
||||
@@ -12,29 +12,34 @@
|
||||
:dense="dense"
|
||||
@creature-selected="id => $emit('creature-selected', id)"
|
||||
/>
|
||||
<v-list-group
|
||||
v-for="folder in folders"
|
||||
:key="folder._id"
|
||||
v-model="openFolders[folder._id]"
|
||||
:dense="dense"
|
||||
<v-slide-x-transition
|
||||
group
|
||||
leave-absolute
|
||||
>
|
||||
<template #activator>
|
||||
<creature-folder-header
|
||||
:open="openFolders[folder._id]"
|
||||
:model="folder"
|
||||
:selection="selection"
|
||||
:dense="dense"
|
||||
/>
|
||||
</template>
|
||||
<creature-list
|
||||
:creatures="folder.creatures"
|
||||
:folder-id="folder._id"
|
||||
:selection="selection"
|
||||
:selected-creature="selectedCreature"
|
||||
<v-list-group
|
||||
v-for="folder in folders"
|
||||
:key="folder._id"
|
||||
v-model="openFolders[folder._id]"
|
||||
:dense="dense"
|
||||
@creature-selected="id => $emit('creature-selected', id)"
|
||||
/>
|
||||
</v-list-group>
|
||||
>
|
||||
<template #activator>
|
||||
<creature-folder-header
|
||||
:open="openFolders[folder._id]"
|
||||
:model="folder"
|
||||
:selection="selection"
|
||||
:dense="dense"
|
||||
/>
|
||||
</template>
|
||||
<creature-list
|
||||
:creatures="folder.creatures"
|
||||
:folder-id="folder._id"
|
||||
:selection="selection"
|
||||
:selected-creature="selectedCreature"
|
||||
:dense="dense"
|
||||
@creature-selected="id => $emit('creature-selected', id)"
|
||||
/>
|
||||
</v-list-group>
|
||||
</v-slide-x-transition>
|
||||
</v-list>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ export default {
|
||||
const userId = Meteor.userId();
|
||||
let folders = CreatureFolders.find(
|
||||
{ owner: userId, archived: { $ne: true } },
|
||||
{ sort: { left: 1 } },
|
||||
{ sort: { name: 1 } },
|
||||
).map(folder => {
|
||||
folder.creatures = Creatures.find(
|
||||
{
|
||||
|
||||
@@ -112,7 +112,7 @@ export default {
|
||||
const userId = Meteor.userId();
|
||||
let folders = CreatureFolders.find(
|
||||
{ owner: userId, archived: { $ne: true } },
|
||||
{ sort: { left: 1 } },
|
||||
{ sort: { name: 1 } },
|
||||
).map(folder => {
|
||||
folder.creatures = Creatures.find(
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user