diff --git a/app/imports/api/creature/creatureFolders/methods.js/reorderCreatureFolder.js b/app/imports/api/creature/creatureFolders/methods.js/reorderCreatureFolder.js index f57aaa8a..4b309819 100644 --- a/app/imports/api/creature/creatureFolders/methods.js/reorderCreatureFolder.js +++ b/app/imports/api/creature/creatureFolders/methods.js/reorderCreatureFolder.js @@ -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 } }) diff --git a/app/imports/client/ui/creature/creatureList/CreatureFolderHeader.vue b/app/imports/client/ui/creature/creatureList/CreatureFolderHeader.vue index 4d992fdd..cefb7821 100644 --- a/app/imports/client/ui/creature/creatureList/CreatureFolderHeader.vue +++ b/app/imports/client/ui/creature/creatureList/CreatureFolderHeader.vue @@ -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({ diff --git a/app/imports/client/ui/creature/creatureList/CreatureFolderList.vue b/app/imports/client/ui/creature/creatureList/CreatureFolderList.vue index 7bd8152c..5c4806d5 100644 --- a/app/imports/client/ui/creature/creatureList/CreatureFolderList.vue +++ b/app/imports/client/ui/creature/creatureList/CreatureFolderList.vue @@ -12,29 +12,34 @@ :dense="dense" @creature-selected="id => $emit('creature-selected', id)" /> - - - - + > + + + + diff --git a/app/imports/client/ui/layouts/Sidebar.vue b/app/imports/client/ui/layouts/Sidebar.vue index 7ab264bd..28f56433 100644 --- a/app/imports/client/ui/layouts/Sidebar.vue +++ b/app/imports/client/ui/layouts/Sidebar.vue @@ -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( { diff --git a/app/imports/client/ui/pages/CharacterList.vue b/app/imports/client/ui/pages/CharacterList.vue index f8b1ef46..cd446b80 100644 --- a/app/imports/client/ui/pages/CharacterList.vue +++ b/app/imports/client/ui/pages/CharacterList.vue @@ -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( {