manuels-scolaires/manuels/static/manuels/fetch-isbn.js

47 lines
2.1 KiB
JavaScript

document.addEventListener("DOMContentLoaded", function (event) {
var isbnButton = document.querySelector('#id_isbn_button');
var isbn = document.querySelector('#id_isbn');
isbnButton.addEventListener('click', function (event) {
$.get("/isbn_api/" + isbn.value, {}, function (data, status, xhr) {
if (data.error) {
isbn.classList.add('is-invalid');
isbn.classList.remove('is-valid');
document.querySelector('#id_isbn_invalid_feedback').style.display = 'block';
document.querySelector('#id_isbn_error_text').textContent = data.error;
return;
}
isbn.classList.remove('is-invalid');
isbn.classList.add('is-valid');
document.querySelector('#id_isbn_invalid_feedback').style.display = 'none';
document.querySelector('#id_title').value = data.title;
document.querySelector('#id_authors').value = data.authors;
document.querySelector('#id_publication_year').value = data.year;
document.querySelector('#id_price').value = data.price;
var editorValue = "";
var editorIsOther = false;
for (var option of document.querySelector('#id_editor').children) {
if (editorValue === "" && option.firstChild.data.toLowerCase().indexOf('autre') !== -1) {
editorValue = option.value;
editorIsOther = true;
}
if (option.firstChild.data.toLowerCase() === data.editor.toLowerCase()) {
editorValue = option.value;
editorIsOther = false;
}
}
document.querySelector('#id_editor').value = editorValue;
event = document.createEvent("HTMLEvents");
event.initEvent("change", true, true);
event.eventName = "change";
document.querySelector('#id_editor').dispatchEvent(event);
if (editorIsOther) {
document.querySelector('#id_other_editor').value = data.editor
}
});
});
});