mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-21 01:25:55 +02:00
Add cllear button to entity select type
This commit is contained in:
parent
7286c4bbef
commit
9502f30e1b
1 changed files with 15 additions and 0 deletions
|
@ -24,6 +24,9 @@ import {Controller} from "@hotwired/stimulus";
|
||||||
|
|
||||||
import {trans, ENTITY_SELECT_GROUP_NEW_NOT_ADDED_TO_DB} from '../../translator.js'
|
import {trans, ENTITY_SELECT_GROUP_NEW_NOT_ADDED_TO_DB} from '../../translator.js'
|
||||||
|
|
||||||
|
import TomSelect_autoselect_typed from '../../tomselect/autoselect_typed/autoselect_typed'
|
||||||
|
TomSelect.define('autoselect_typed', TomSelect_autoselect_typed)
|
||||||
|
|
||||||
export default class extends Controller {
|
export default class extends Controller {
|
||||||
_tomSelect;
|
_tomSelect;
|
||||||
|
|
||||||
|
@ -37,6 +40,9 @@ export default class extends Controller {
|
||||||
const allowAdd = this.element.getAttribute("data-allow-add") === "true";
|
const allowAdd = this.element.getAttribute("data-allow-add") === "true";
|
||||||
const addHint = this.element.getAttribute("data-add-hint") ?? "";
|
const addHint = this.element.getAttribute("data-add-hint") ?? "";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
let settings = {
|
let settings = {
|
||||||
allowEmptyOption: true,
|
allowEmptyOption: true,
|
||||||
selectOnTab: true,
|
selectOnTab: true,
|
||||||
|
@ -81,8 +87,17 @@ export default class extends Controller {
|
||||||
//Add callbacks to update validity
|
//Add callbacks to update validity
|
||||||
onInitialize: this.updateValidity.bind(this),
|
onInitialize: this.updateValidity.bind(this),
|
||||||
onChange: this.updateValidity.bind(this),
|
onChange: this.updateValidity.bind(this),
|
||||||
|
|
||||||
|
plugins: {
|
||||||
|
"autoselect_typed": {},
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//Add clear button plugin, if an empty option is present
|
||||||
|
if (this.element.querySelector("option[value='']") !== null) {
|
||||||
|
settings.plugins["clear_button"] = {};
|
||||||
|
}
|
||||||
|
|
||||||
this._tomSelect = new TomSelect(this.element, settings);
|
this._tomSelect = new TomSelect(this.element, settings);
|
||||||
//Do not do a sync here as this breaks the initial rendering of the empty option
|
//Do not do a sync here as this breaks the initial rendering of the empty option
|
||||||
//this._tomSelect.sync();
|
//this._tomSelect.sync();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue