mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-27 04:08:57 +02:00
Implement attachment CollectionType using stimulus
This commit is contained in:
parent
bf3dba0fb2
commit
8323f374a4
10 changed files with 141 additions and 231 deletions
|
@ -0,0 +1,29 @@
|
|||
import {Controller} from "@hotwired/stimulus";
|
||||
|
||||
/**
|
||||
* This controller synchronizes the filetype filters of the file input type with our selected attachment type
|
||||
*/
|
||||
export default class extends Controller
|
||||
{
|
||||
_selectInput;
|
||||
_fileInput;
|
||||
|
||||
connect() {
|
||||
//Find the select input for our attachment form
|
||||
this._selectInput = this.element.querySelector('select');
|
||||
//Find the file input for our attachment form
|
||||
this._fileInput = this.element.querySelector('input[type="file"]');
|
||||
|
||||
this._selectInput.addEventListener('change', this.updateAllowedFiletypes.bind(this));
|
||||
|
||||
//Update file file on load
|
||||
this.updateAllowedFiletypes();
|
||||
}
|
||||
|
||||
updateAllowedFiletypes() {
|
||||
let selected_option = this._selectInput.options[this._selectInput.selectedIndex];
|
||||
let filetype_filter = selected_option.dataset.filetype_filter;
|
||||
//Apply filetype filter to file input
|
||||
this._fileInput.setAttribute('accept', filetype_filter);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue