forked from fixin.me/fixin.me
Compare commits
1 Commits
4f10a4fcf8
...
feature/me
| Author | SHA1 | Date | |
|---|---|---|---|
| 887d669f80 |
@@ -82,40 +82,34 @@ window.detailsObserver = new MutationObserver((mutations) => {
|
|||||||
function readoutUnitChanged(select) {
|
function readoutUnitChanged(select) {
|
||||||
var button = select.closest('tr').querySelector('.set-default-unit');
|
var button = select.closest('tr').querySelector('.set-default-unit');
|
||||||
if (select.value && select.value !== select.dataset.defaultUnitId) {
|
if (select.value && select.value !== select.dataset.defaultUnitId) {
|
||||||
button.removeAttribute('disabled');
|
Turbo.StreamElement.prototype.enableElement(button);
|
||||||
button.removeAttribute('aria-disabled');
|
|
||||||
button.removeAttribute('tabindex');
|
|
||||||
} else {
|
} else {
|
||||||
button.setAttribute('disabled', 'disabled');
|
Turbo.StreamElement.prototype.disableElement(button);
|
||||||
button.setAttribute('aria-disabled', 'true');
|
|
||||||
button.setAttribute('tabindex', '-1');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
window.readoutUnitChanged = readoutUnitChanged
|
window.readoutUnitChanged = readoutUnitChanged
|
||||||
|
|
||||||
function setDefaultUnit(button) {
|
function setDefaultUnit(button) {
|
||||||
var select = button.closest('tr').querySelector('select[data-default-unit-id]');
|
var select = button.closest('tr').querySelector('select[data-default-unit-id]');
|
||||||
var params = new URLSearchParams();
|
var form = document.createElement('form');
|
||||||
params.append('quantity[default_unit_id]', select.value);
|
form.action = button.dataset.path;
|
||||||
|
form.method = 'post';
|
||||||
fetch(button.dataset.path, {
|
form.dataset.turboStream = 'true';
|
||||||
body: params,
|
var methodInput = document.createElement('input');
|
||||||
headers: {
|
methodInput.type = 'hidden'; methodInput.name = '_method'; methodInput.value = 'patch';
|
||||||
'Accept': 'text/vnd.turbo-stream.html',
|
var unitInput = document.createElement('input');
|
||||||
'X-CSRF-Token': document.head.querySelector('meta[name=csrf-token]').content,
|
unitInput.type = 'hidden'; unitInput.name = 'quantity[default_unit_id]'; unitInput.value = select.value;
|
||||||
'X-Requested-With': 'XMLHttpRequest'
|
form.appendChild(methodInput);
|
||||||
},
|
form.appendChild(unitInput);
|
||||||
method: 'PATCH'
|
form.addEventListener('turbo:submit-end', function(event) {
|
||||||
})
|
if (event.detail.success) {
|
||||||
.then(response => {
|
|
||||||
if (response.ok) {
|
|
||||||
select.dataset.defaultUnitId = select.value;
|
select.dataset.defaultUnitId = select.value;
|
||||||
readoutUnitChanged(select);
|
readoutUnitChanged(select);
|
||||||
}
|
}
|
||||||
return response.text();
|
form.remove();
|
||||||
})
|
});
|
||||||
.then(html => Turbo.renderStreamMessage(html))
|
document.body.appendChild(form);
|
||||||
.catch(err => console.error('setDefaultUnit failed:', err));
|
form.requestSubmit();
|
||||||
}
|
}
|
||||||
window.setDefaultUnit = setDefaultUnit
|
window.setDefaultUnit = setDefaultUnit
|
||||||
|
|
||||||
@@ -288,22 +282,17 @@ window.dragEnd = dragEnd
|
|||||||
|
|
||||||
function drop(event) {
|
function drop(event) {
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
var idParam = event.currentTarget.getAttribute("data-drop-id-param")
|
||||||
var params = new URLSearchParams()
|
|
||||||
var id_param = event.currentTarget.getAttribute("data-drop-id-param")
|
|
||||||
var id = event.currentTarget.getAttribute("data-drop-id").split("_").pop()
|
var id = event.currentTarget.getAttribute("data-drop-id").split("_").pop()
|
||||||
params.append(id_param, id)
|
var form = document.createElement('form');
|
||||||
|
form.action = event.dataTransfer.getData("text/plain");
|
||||||
fetch(event.dataTransfer.getData("text/plain"), {
|
form.method = 'post';
|
||||||
body: params,
|
form.dataset.turboStream = 'true';
|
||||||
headers: {
|
var input = document.createElement('input');
|
||||||
"Accept": "text/vnd.turbo-stream.html",
|
input.type = 'hidden'; input.name = idParam; input.value = id;
|
||||||
"X-CSRF-Token": document.head.querySelector("meta[name=csrf-token]").content,
|
form.appendChild(input);
|
||||||
"X-Requested-With": "XMLHttpRequest"
|
form.addEventListener('turbo:submit-end', function() { form.remove(); });
|
||||||
},
|
document.body.appendChild(form);
|
||||||
method: "POST"
|
form.requestSubmit();
|
||||||
})
|
|
||||||
.then(response => response.text())
|
|
||||||
.then(html => Turbo.renderStreamMessage(html))
|
|
||||||
}
|
}
|
||||||
window.drop = drop
|
window.drop = drop
|
||||||
|
|||||||
Reference in New Issue
Block a user