Remote JavaScript files
This commit is contained in:
parent
600c0d284c
commit
d947c6efe1
|
@ -1,24 +1,24 @@
|
||||||
import { syncSelectInputUntilChanged } from './utils.js';
|
import { syncSelectInputUntilChanged } from "./utils.js";
|
||||||
|
|
||||||
let syncData = [
|
let syncData = [
|
||||||
{
|
{
|
||||||
"source": "#id_game",
|
source: "#id_game",
|
||||||
"source_value": "dataset.name",
|
source_value: "dataset.name",
|
||||||
"target": "#id_name",
|
target: "#id_name",
|
||||||
"target_value": "value"
|
target_value: "value",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"source": "#id_game",
|
source: "#id_game",
|
||||||
"source_value": "textContent",
|
source_value: "textContent",
|
||||||
"target": "#id_sort_name",
|
target: "#id_sort_name",
|
||||||
"target_value": "value"
|
target_value: "value",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"source": "#id_game",
|
source: "#id_game",
|
||||||
"source_value": "dataset.year",
|
source_value: "dataset.year",
|
||||||
"target": "#id_year_released",
|
target: "#id_year_released",
|
||||||
"target_value": "value"
|
target_value: "value",
|
||||||
},
|
},
|
||||||
]
|
];
|
||||||
|
|
||||||
syncSelectInputUntilChanged(syncData, "form");
|
syncSelectInputUntilChanged(syncData, "form");
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
import { syncSelectInputUntilChanged } from './utils.js'
|
import { syncSelectInputUntilChanged } from "./utils.js";
|
||||||
|
|
||||||
let syncData = [
|
let syncData = [
|
||||||
{
|
{
|
||||||
"source": "#id_name",
|
source: "#id_name",
|
||||||
"source_value": "value",
|
source_value: "value",
|
||||||
"target": "#id_sort_name",
|
target: "#id_sort_name",
|
||||||
"target_value": "value"
|
target_value: "value",
|
||||||
}
|
},
|
||||||
]
|
];
|
||||||
|
|
||||||
syncSelectInputUntilChanged(syncData, "form")
|
syncSelectInputUntilChanged(syncData, "form");
|
||||||
|
|
|
@ -30,13 +30,13 @@ getEl("#id_type").onchange = () => {
|
||||||
setupElementHandlers();
|
setupElementHandlers();
|
||||||
};
|
};
|
||||||
|
|
||||||
document.body.addEventListener('htmx:beforeRequest', function(event) {
|
document.body.addEventListener("htmx:beforeRequest", function (event) {
|
||||||
// Assuming 'Purchase1' is the element that triggers the HTMX request
|
// Assuming 'Purchase1' is the element that triggers the HTMX request
|
||||||
if (event.target.id === 'id_edition') {
|
if (event.target.id === "id_edition") {
|
||||||
var idEditionValue = document.getElementById('id_edition').value;
|
var idEditionValue = document.getElementById("id_edition").value;
|
||||||
|
|
||||||
// Condition to check - replace this with your actual logic
|
// Condition to check - replace this with your actual logic
|
||||||
if (idEditionValue != '') {
|
if (idEditionValue != "") {
|
||||||
event.preventDefault(); // This cancels the HTMX request
|
event.preventDefault(); // This cancels the HTMX request
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,10 +7,14 @@ for (let button of document.querySelectorAll("[data-target]")) {
|
||||||
button.addEventListener("click", (event) => {
|
button.addEventListener("click", (event) => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
if (type == "now") {
|
if (type == "now") {
|
||||||
targetElement.value = toISOUTCString(new Date);
|
targetElement.value = toISOUTCString(new Date());
|
||||||
} else if (type == "copy") {
|
} else if (type == "copy") {
|
||||||
const oppositeName = targetElement.name == "timestamp_start" ? "timestamp_end" : "timestamp_start";
|
const oppositeName =
|
||||||
document.querySelector(`[name='${oppositeName}']`).value = targetElement.value;
|
targetElement.name == "timestamp_start"
|
||||||
|
? "timestamp_end"
|
||||||
|
: "timestamp_start";
|
||||||
|
document.querySelector(`[name='${oppositeName}']`).value =
|
||||||
|
targetElement.value;
|
||||||
} else if (type == "toggle") {
|
} else if (type == "toggle") {
|
||||||
if (targetElement.type == "datetime-local") targetElement.type = "text";
|
if (targetElement.type == "datetime-local") targetElement.type = "text";
|
||||||
else targetElement.type = "datetime-local";
|
else targetElement.type = "datetime-local";
|
||||||
|
|
|
@ -75,7 +75,10 @@ function syncSelectInputUntilChanged(syncData, parentSelector = document) {
|
||||||
* @param {string} property - The property to retrieve the value from.
|
* @param {string} property - The property to retrieve the value from.
|
||||||
*/
|
*/
|
||||||
function getValueFromProperty(sourceElement, property) {
|
function getValueFromProperty(sourceElement, property) {
|
||||||
let source = (sourceElement instanceof HTMLSelectElement) ? sourceElement.selectedOptions[0] : sourceElement
|
let source =
|
||||||
|
sourceElement instanceof HTMLSelectElement
|
||||||
|
? sourceElement.selectedOptions[0]
|
||||||
|
: sourceElement;
|
||||||
if (property.startsWith("dataset.")) {
|
if (property.startsWith("dataset.")) {
|
||||||
let datasetKey = property.slice(8); // Remove 'dataset.' part
|
let datasetKey = property.slice(8); // Remove 'dataset.' part
|
||||||
return source.dataset[datasetKey];
|
return source.dataset[datasetKey];
|
||||||
|
@ -93,13 +96,11 @@ function getValueFromProperty(sourceElement, property) {
|
||||||
*/
|
*/
|
||||||
function getEl(selector) {
|
function getEl(selector) {
|
||||||
if (selector.startsWith("#")) {
|
if (selector.startsWith("#")) {
|
||||||
return document.getElementById(selector.slice(1))
|
return document.getElementById(selector.slice(1));
|
||||||
}
|
} else if (selector.startsWith(".")) {
|
||||||
else if (selector.startsWith(".")) {
|
return document.getElementsByClassName(selector);
|
||||||
return document.getElementsByClassName(selector)
|
} else {
|
||||||
}
|
return document.getElementsByTagName(selector);
|
||||||
else {
|
|
||||||
return document.getElementsByTagName(selector)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,7 +117,7 @@ function getEl(selector) {
|
||||||
function conditionalElementHandler(...configs) {
|
function conditionalElementHandler(...configs) {
|
||||||
configs.forEach(([condition, targetElements, callbackfn1, callbackfn2]) => {
|
configs.forEach(([condition, targetElements, callbackfn1, callbackfn2]) => {
|
||||||
if (condition()) {
|
if (condition()) {
|
||||||
targetElements.forEach(elementName => {
|
targetElements.forEach((elementName) => {
|
||||||
let el = getEl(elementName);
|
let el = getEl(elementName);
|
||||||
if (el === null) {
|
if (el === null) {
|
||||||
console.error(`Element ${elementName} doesn't exist.`);
|
console.error(`Element ${elementName} doesn't exist.`);
|
||||||
|
@ -125,7 +126,7 @@ function conditionalElementHandler(...configs) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
targetElements.forEach(elementName => {
|
targetElements.forEach((elementName) => {
|
||||||
let el = getEl(elementName);
|
let el = getEl(elementName);
|
||||||
if (el === null) {
|
if (el === null) {
|
||||||
console.error(`Element ${elementName} doesn't exist.`);
|
console.error(`Element ${elementName} doesn't exist.`);
|
||||||
|
@ -167,4 +168,12 @@ function disableElementsWhenTrue(targetSelect, targetValue, elementList) {
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
export { toISOUTCString, syncSelectInputUntilChanged, getEl, conditionalElementHandler, disableElementsWhenFalse, disableElementsWhenTrue, getValueFromProperty };
|
export {
|
||||||
|
toISOUTCString,
|
||||||
|
syncSelectInputUntilChanged,
|
||||||
|
getEl,
|
||||||
|
conditionalElementHandler,
|
||||||
|
disableElementsWhenFalse,
|
||||||
|
disableElementsWhenTrue,
|
||||||
|
getValueFromProperty,
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in New Issue