mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-05-18 17:31:35 +00:00
Turbo-Kompatibilität verbessern.
Hinzufügen von Prüfungen auf Vorhandensein von DOM-Elementen in mehreren Controllern sowie Optimierung der Form-Submit-Logik für bessere Turbo-Integration. Anpassung von Template-Elementen und JavaScript-Events zur Unterstützung von Turbo Morphing auf der Startseite.
This commit is contained in:
parent
66c905738d
commit
563d39ff2d
9 changed files with 104 additions and 35 deletions
|
|
@ -73,6 +73,7 @@ export default class extends Controller {
|
|||
|
||||
//If the element is in navbar mode, or not
|
||||
const navbar_mode = this.element.dataset.navbarMode === "true";
|
||||
const panel_container_element = document.getElementById("navbar-search-form");
|
||||
|
||||
const that = this;
|
||||
|
||||
|
|
@ -124,7 +125,7 @@ export default class extends Controller {
|
|||
query: this.element.dataset.initialQuery || that.inputTarget.value || ""
|
||||
},
|
||||
//Place the panel in the navbar, if the element is in navbar mode
|
||||
panelContainer: navbar_mode ? document.getElementById("navbar-search-form") : document.body,
|
||||
panelContainer: (navbar_mode && panel_container_element) ? panel_container_element : document.body,
|
||||
panelPlacement: this.element.dataset.panelPlacement,
|
||||
plugins: [recentSearchesPlugin],
|
||||
openOnFocus: true,
|
||||
|
|
@ -152,6 +153,11 @@ export default class extends Controller {
|
|||
|
||||
// If the form is submitted, forward the term to the form
|
||||
onSubmit({ state, event, ...setters }) {
|
||||
// If the user pressed enter, we want to submit the form
|
||||
if (event) {
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
//Put the current text into each target input field
|
||||
const input = that.inputTarget;
|
||||
|
||||
|
|
@ -167,7 +173,13 @@ export default class extends Controller {
|
|||
input.value = state.query;
|
||||
|
||||
if (input.form) {
|
||||
input.form.requestSubmit();
|
||||
// We prefer requestSubmit() as it is more compatible with Turbo and triggers submit event listeners
|
||||
// However, we fallback to submit() if requestSubmit() is not available
|
||||
if (typeof input.form.requestSubmit === 'function') {
|
||||
input.form.requestSubmit();
|
||||
} else {
|
||||
input.form.submit();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -60,6 +60,10 @@ export default class extends TreeController {
|
|||
doUpdateIfNeeded()
|
||||
{
|
||||
const info_element = document.getElementById('sidebar-last-time-updated');
|
||||
if (!info_element) {
|
||||
return;
|
||||
}
|
||||
|
||||
const date_str = info_element.dataset.lastUpdate;
|
||||
const server_last_update = new Date(date_str);
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,9 @@ import {Controller} from "@hotwired/stimulus";
|
|||
export default class extends Controller
|
||||
{
|
||||
download(event) {
|
||||
this.element.href = document.getElementById('pdf_preview').data
|
||||
const preview = document.getElementById('pdf_preview');
|
||||
if (preview) {
|
||||
this.element.href = preview.data;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,8 @@ import { Controller } from '@hotwired/stimulus';
|
|||
export default class extends Controller {
|
||||
connect() {
|
||||
const menu = document.getElementById('locale-select-menu');
|
||||
menu.innerHTML = this.element.innerHTML;
|
||||
if (menu) {
|
||||
menu.innerHTML = this.element.innerHTML;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue