diff --git a/ui/media/css/searchable-models.css b/ui/media/css/searchable-models.css index 418e1a60..8cd6c9e8 100644 --- a/ui/media/css/searchable-models.css +++ b/ui/media/css/searchable-models.css @@ -75,6 +75,7 @@ padding-top: 3px; cursor: pointer; font-size: 8pt; + transition: none; } .model-input { diff --git a/ui/media/js/searchable-models.js b/ui/media/js/searchable-models.js index 89fb38e6..ee15efa8 100644 --- a/ui/media/js/searchable-models.js +++ b/ui/media/js/searchable-models.js @@ -53,6 +53,15 @@ class ModelDropdown this.modelFilter.dataset.path = path this.selectEntry(path) } + get disabled() { + return this.modelFilter.disabled + } + set disabled(state) { + this.modelFilter.disabled = state + if (this.modelFilterArrow) { + this.modelFilterArrow.style.color = state ? 'dimgray' : '' + } + } addEventListener(type, listener, options) { return this.modelFilter.addEventListener(type, listener, options) } @@ -350,13 +359,15 @@ class ModelDropdown toggleModelList(e) { e.preventDefault() - if (this.modelList.style.display != 'block') { - this.showModelList() - } - else - { - this.hideModelList() - this.modelFilter.select() + if (!this.modelFilter.disabled) { + if (this.modelList.style.display != 'block') { + this.showModelList() + } + else + { + this.hideModelList() + this.modelFilter.select() + } } } @@ -547,6 +558,9 @@ class ModelDropdown this.modelFilter.insertAdjacentHTML('afterend', this.parseModels(this.flatModelList)) this.modelFilter.classList.add('model-selector') this.modelFilterArrow = document.querySelector(`#${this.modelFilter.id}-model-filter-arrow`) + if (this.modelFilterArrow) { + this.modelFilterArrow.style.color = state ? 'dimgray' : '' + } this.modelList = document.querySelector(`#${this.modelFilter.id}-model-list`) this.modelResult = document.querySelector(`#${this.modelFilter.id}-model-result`) this.modelNoResult = document.querySelector(`#${this.modelFilter.id}-model-no-result`)