feat: add autofocus and action by press enter in crate/rename dialogs in config file manager

Signed-off-by: Stefan Dej <meteyou@gmail.com>
This commit is contained in:
Stefan Dej 2021-11-05 21:12:32 +01:00
parent 60c218fe18
commit 875035f6f3

View File

@ -168,22 +168,19 @@
</div> </div>
</panel> </panel>
</v-dialog> </v-dialog>
<v-dialog v-model="dialogRenameFile.show" max-width="400">
<panel :title="$t('Machine.ConfigFilesPanel.RenameFile')" card-class="maschine-configfiles-rename-file-dialog" :margin-bottom="false">
<v-card-text>
<v-text-field :label="$t('Machine.ConfigFilesPanel.Name')" required v-model="dialogRenameFile.newName"></v-text-field>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="" text @click="dialogRenameFile.show = false">{{ $t('Machine.ConfigFilesPanel.Cancel') }}</v-btn>
<v-btn color="primary" text @click="renameFileAction">{{ $t('Machine.ConfigFilesPanel.Rename') }}</v-btn>
</v-card-actions>
</panel>
</v-dialog>
<v-dialog v-model="dialogCreateFile.show" max-width="400"> <v-dialog v-model="dialogCreateFile.show" max-width="400">
<panel :title="$t('Machine.ConfigFilesPanel.CreateFile')" card-class="maschine-configfiles-create-file-dialog" :margin-bottom="false"> <panel :title="$t('Machine.ConfigFilesPanel.CreateFile')" card-class="maschine-configfiles-create-file-dialog" :margin-bottom="false">
<template v-slot:buttons>
<v-btn icon @click="dialogCreateFile.show = false"><v-icon>mdi-close-thick</v-icon></v-btn>
</template>
<v-card-text> <v-card-text>
<v-text-field :label="$t('Machine.ConfigFilesPanel.Name')" required v-model="dialogCreateFile.name"></v-text-field> <v-text-field
:label="$t('Machine.ConfigFilesPanel.Name')"
v-model="dialogCreateFile.name"
ref="inputDialogCreateFileName"
@keyup.enter="createFileAction"
required
></v-text-field>
</v-card-text> </v-card-text>
<v-card-actions> <v-card-actions>
<v-spacer></v-spacer> <v-spacer></v-spacer>
@ -192,10 +189,40 @@
</v-card-actions> </v-card-actions>
</panel> </panel>
</v-dialog> </v-dialog>
<v-dialog v-model="dialogRenameFile.show" max-width="400">
<panel :title="$t('Machine.ConfigFilesPanel.RenameFile')" card-class="maschine-configfiles-rename-file-dialog" :margin-bottom="false">
<template v-slot:buttons>
<v-btn icon @click="dialogRenameFile.show = false"><v-icon>mdi-close-thick</v-icon></v-btn>
</template>
<v-card-text>
<v-text-field
:label="$t('Machine.ConfigFilesPanel.Name')"
v-model="dialogRenameFile.newName"
ref="inputDialogRenameFileName"
@keyup.enter="renameFileAction"
required
></v-text-field>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="" text @click="dialogRenameFile.show = false">{{ $t('Machine.ConfigFilesPanel.Cancel') }}</v-btn>
<v-btn color="primary" text @click="renameFileAction">{{ $t('Machine.ConfigFilesPanel.Rename') }}</v-btn>
</v-card-actions>
</panel>
</v-dialog>
<v-dialog v-model="dialogCreateDirectory.show" max-width="400"> <v-dialog v-model="dialogCreateDirectory.show" max-width="400">
<panel :title="$t('Machine.ConfigFilesPanel.CreateDirectory')" card-class="maschine-configfiles-create-directory-dialog" :margin-bottom="false"> <panel :title="$t('Machine.ConfigFilesPanel.CreateDirectory')" card-class="maschine-configfiles-create-directory-dialog" :margin-bottom="false">
<template v-slot:buttons>
<v-btn icon @click="dialogCreateDirectory.show = false"><v-icon>mdi-close-thick</v-icon></v-btn>
</template>
<v-card-text> <v-card-text>
<v-text-field :label="$t('Machine.ConfigFilesPanel.Name')" required v-model="dialogCreateDirectory.name"></v-text-field> <v-text-field
:label="$t('Machine.ConfigFilesPanel.Name')"
v-model="dialogCreateDirectory.name"
ref="inputDialogCreateDirectoryName"
@keyup.enter="createDirectoryAction"
required
></v-text-field>
</v-card-text> </v-card-text>
<v-card-actions> <v-card-actions>
<v-spacer></v-spacer> <v-spacer></v-spacer>
@ -206,8 +233,17 @@
</v-dialog> </v-dialog>
<v-dialog v-model="dialogRenameDirectory.show" max-width="400"> <v-dialog v-model="dialogRenameDirectory.show" max-width="400">
<panel :title="$t('Machine.ConfigFilesPanel.RenameDirectory')" card-class="maschine-configfiles-rename-directory-dialog" :margin-bottom="false"> <panel :title="$t('Machine.ConfigFilesPanel.RenameDirectory')" card-class="maschine-configfiles-rename-directory-dialog" :margin-bottom="false">
<template v-slot:buttons>
<v-btn icon @click="dialogRenameDirectory.show = false"><v-icon>mdi-close-thick</v-icon></v-btn>
</template>
<v-card-text> <v-card-text>
<v-text-field :label="$t('Machine.ConfigFilesPanel.Name')" required v-model="dialogRenameDirectory.newName"></v-text-field> <v-text-field
:label="$t('Machine.ConfigFilesPanel.Name')"
v-model="dialogRenameDirectory.newName"
ref="inputDialogRenameDirectoryName"
@keyup.enter="renameDirectoryAction"
required
></v-text-field>
</v-card-text> </v-card-text>
<v-card-actions> <v-card-actions>
<v-spacer></v-spacer> <v-spacer></v-spacer>
@ -218,6 +254,9 @@
</v-dialog> </v-dialog>
<v-dialog v-model="dialogDeleteDirectory.show" max-width="400"> <v-dialog v-model="dialogDeleteDirectory.show" max-width="400">
<panel :title="$t('Machine.ConfigFilesPanel.DeleteDirectory')" card-class="maschine-configfiles-delete-directory-dialog" :margin-bottom="false"> <panel :title="$t('Machine.ConfigFilesPanel.DeleteDirectory')" card-class="maschine-configfiles-delete-directory-dialog" :margin-bottom="false">
<template v-slot:buttons>
<v-btn icon @click="dialogDeleteDirectory.show = false"><v-icon>mdi-close-thick</v-icon></v-btn>
</template>
<v-card-text> <v-card-text>
<p class="mb-0">{{ $t('Machine.ConfigFilesPanel.DeleteDirectoryQuestion', { name: dialogDeleteDirectory.item.filename } )}}</p> <p class="mb-0">{{ $t('Machine.ConfigFilesPanel.DeleteDirectoryQuestion', { name: dialogDeleteDirectory.item.filename } )}}</p>
</v-card-text> </v-card-text>
@ -316,6 +355,10 @@ export default class ConfigFilesPanel extends Mixins(BaseMixin) {
$refs!: { $refs!: {
fileUpload: HTMLInputElement, fileUpload: HTMLInputElement,
inputDialogCreateFileName: HTMLInputElement,
inputDialogRenameFileName: HTMLInputElement,
inputDialogCreateDirectoryName: HTMLInputElement,
inputDialogRenameDirectoryName: HTMLInputElement,
} }
private selected = [] private selected = []
@ -344,6 +387,10 @@ export default class ConfigFilesPanel extends Mixins(BaseMixin) {
svg: null svg: null
} }
} }
private dialogCreateFile = {
show: false,
name: '',
}
private dialogRenameFile: dialogRenameObject = { private dialogRenameFile: dialogRenameObject = {
show: false, show: false,
newName: '', newName: '',
@ -354,10 +401,6 @@ export default class ConfigFilesPanel extends Mixins(BaseMixin) {
modified: new Date() modified: new Date()
} }
} }
private dialogCreateFile = {
show: false,
name: '',
}
private dialogCreateDirectory = { private dialogCreateDirectory = {
show: false, show: false,
name: '', name: '',
@ -605,6 +648,10 @@ export default class ConfigFilesPanel extends Mixins(BaseMixin) {
createDirecotry() { createDirecotry() {
this.dialogCreateDirectory.name = '' this.dialogCreateDirectory.name = ''
this.dialogCreateDirectory.show = true this.dialogCreateDirectory.show = true
setTimeout(() => {
this.$refs.inputDialogCreateDirectoryName?.focus()
}, 200)
} }
createDirectoryAction() { createDirectoryAction() {
@ -619,6 +666,10 @@ export default class ConfigFilesPanel extends Mixins(BaseMixin) {
this.dialogRenameDirectory.item = item this.dialogRenameDirectory.item = item
this.dialogRenameDirectory.newName = item.filename this.dialogRenameDirectory.newName = item.filename
this.dialogRenameDirectory.show = true this.dialogRenameDirectory.show = true
setTimeout(() => {
this.$refs.inputDialogRenameDirectoryName?.focus()
}, 200)
} }
renameDirectoryAction() { renameDirectoryAction() {
@ -642,6 +693,10 @@ export default class ConfigFilesPanel extends Mixins(BaseMixin) {
createFile() { createFile() {
this.dialogCreateFile.name = '' this.dialogCreateFile.name = ''
this.dialogCreateFile.show = true this.dialogCreateFile.show = true
setTimeout(() => {
this.$refs.inputDialogCreateFileName?.focus()
}, 200)
} }
createFileAction() { createFileAction() {
@ -669,6 +724,10 @@ export default class ConfigFilesPanel extends Mixins(BaseMixin) {
this.dialogRenameFile.item = item this.dialogRenameFile.item = item
this.dialogRenameFile.newName = item.filename this.dialogRenameFile.newName = item.filename
this.dialogRenameFile.show = true this.dialogRenameFile.show = true
setTimeout(() => {
this.$refs.inputDialogRenameFileName?.focus()
}, 200)
} }
renameFileAction() { renameFileAction() {