mirror of
https://gitlab.com/octospacc/Pignio.git
synced 2025-07-17 22:37:38 +02:00
69 lines
2.0 KiB
JavaScript
69 lines
2.0 KiB
JavaScript
if ('up' in window) {
|
|
up.compiler('form.add', addHandler);
|
|
} else {
|
|
var form = document.querySelector('form.add');
|
|
if (form) {
|
|
addHandler(form);
|
|
}
|
|
}
|
|
|
|
function addHandler(form) {
|
|
var link = form.querySelector('input[name="link"]');
|
|
var checkLink = form.querySelector('input.from-link');
|
|
// var checkProxatore = form.querySelector('input.with-proxatore');
|
|
var image = form.querySelector('img.image');
|
|
var upload = form.querySelector('input[name="file"]');
|
|
|
|
upload.addEventListener('change', function(ev) {
|
|
const file = ev.target.files[0];
|
|
if (!file) return;
|
|
const reader = new FileReader();
|
|
reader.onload = function(e) {
|
|
image.src = e.target.result;
|
|
image.parentElement.hidden = false;
|
|
};
|
|
reader.readAsDataURL(file);
|
|
});
|
|
|
|
document.addEventListener('paste', function(ev) {
|
|
const items = (ev.clipboardData || ev.originalEvent.clipboardData).items;
|
|
for (let item of items) {
|
|
if (item.type.indexOf('image') !== -1) {
|
|
const file = item.getAsFile();
|
|
const reader = new FileReader();
|
|
reader.onload = function(e) {
|
|
image.src = e.target.result;
|
|
image.parentElement.hidden = false;
|
|
const dataTransfer = new DataTransfer();
|
|
dataTransfer.items.add(file);
|
|
upload.files = dataTransfer.files;
|
|
};
|
|
reader.readAsDataURL(file);
|
|
break;
|
|
}
|
|
}
|
|
});
|
|
|
|
['change', 'input', 'paste'].forEach(handler => {
|
|
link.addEventListener(handler, () => {
|
|
var url = link.value.trim();
|
|
if (checkLink.checked && url) {
|
|
fetch('../api/preview?url=' + encodeURIComponent(url))
|
|
.then(res => res.json())
|
|
.then(data => {
|
|
for (var key in data) {
|
|
var field = form.querySelector(`[name="${key}"]`);
|
|
if (field) {
|
|
field.value = data[key];
|
|
}
|
|
var el = form.querySelector(`[class="${key}"]`);
|
|
if (el) {
|
|
el.src = data[key];
|
|
el.parentElement.hidden = false;
|
|
}
|
|
}
|
|
})
|
|
}
|
|
})
|
|
});
|
|
} |