diff --git a/public/js/pages/UserEdit/UserEdit.js b/public/js/pages/UserEdit/UserEdit.js index 302ac1f41..f4570f813 100644 --- a/public/js/pages/UserEdit/UserEdit.js +++ b/public/js/pages/UserEdit/UserEdit.js @@ -34,7 +34,7 @@ Vue.component("UserEdit", {
- +

@@ -218,7 +218,7 @@ Vue.component("UserEdit", { applyTemplate(templateId) { if (!templateId) return; const template = this.lookups.permissionTemplates.find(t => t.id == templateId); - template.permissions = JSON.parse(template.permissions); + template.permissions = typeof template.permissions === 'string' ? JSON.parse(template.permissions) : template.permissions; if (template) { const newPermissions = { ...this.user.permissions }; for (const key in template.permissions) { @@ -227,7 +227,12 @@ Vue.component("UserEdit", { this.user.permissions = newPermissions; window.notify('success', `Vorlage "${template.name}" angewendet.`); } - this.selectedTemplate = null; + + setTimeout(() => { + this.selectedTemplate = null; + this.$refs.templateSelect.selected = null + this.$refs.templateSelect.searchQuery = ''; + }, 250); }, async loadDataFromUser(userId) { if(!userId) return; diff --git a/public/plugins/vue/tt-components/tt-select.js b/public/plugins/vue/tt-components/tt-select.js index 6c4c37184..8ca9edad5 100644 --- a/public/plugins/vue/tt-components/tt-select.js +++ b/public/plugins/vue/tt-components/tt-select.js @@ -58,9 +58,16 @@ Vue.component('tt-select', { }, filteredOptions() { - if (!this.searchable || !this.searchQuery) return this.normalizedOptions; + const displayLimit = 100; + + if (!this.searchable || !this.searchQuery) { + return this.normalizedOptions.slice(0, displayLimit); + } + const q = this.searchQuery.toLowerCase(); - return this.normalizedOptions.filter(o => o.text.toLowerCase().includes(q)); + return this.normalizedOptions + .filter(option => option.text.toLowerCase().includes(q)) + .slice(0, displayLimit); }, displayText() {