Current Path : /data/web/virtuals/51568/virtual/www/knihovna/knihy/ |
Current File : /data/web/virtuals/51568/virtual/www/knihovna/knihy/knihy.js |
knihy = []; naplnKnihy(); spocitejKnihy(); function spocitejKnihy(){ let count = 0; knihy.forEach(obj=> {if(obj.filtr){count++}}); $("#idCelkem").html(`Celkem: ${count}`); } function naplnKnihy(){ knihy = []; $('[id^="knihySeznamTbl"]').each(function () { let id = this.id.substr(14, 10), titul = $("#TitulKnihySeznam"+id).html(), autor = $("#AutorKnihySeznam"+id).html(), datumCZ = $("#DatumKnihySeznam"+id).html(), datumArr = datumCZ.split("."), umisteni = $("#UmisteniKnihySeznam"+id).html(), attr = $("#knihySeznamTbl"+id).attr("kn-seznam"), datumISO = `${datumArr[2]}-${datumArr[1]}-${datumArr[0]}`, a = attr.split('#'); knihy.push({'id':id, 'titul': titul, 'autor':autor, 'datumCZ': datumCZ, 'datumISO': datumISO, 'idtitulu': a[0], 'idautor': a[1], 'idumisteni': a[2], 'umisteni': umisteni, 'vypujcena': a[3], 'trideni': 0, 'filtr': true}); }); } function setridKnihy(trideniNastavNula){ if (trideniNastavNula){ knihy.forEach(obj => obj.trideni = 0); } let jakTridit = $('[name="jakTridit"]:checked').val(); if (jakTridit == 0){ knihy.sort(function(a, b){ if (b.trideni != a.trideni) { return b.trideni - a.trideni} else if (a['titul'] == b['titul']) {return a['autor'].localeCompare(b['autor'], 'cs')} else {return a['titul'].localeCompare(b['titul'], 'cs')} }); } else { knihy.sort(function(a, b){ if (b.trideni != a.trideni) { return b.trideni - a.trideni} else if (a['autor'] == b['autor']) {return a['titul'].localeCompare(b['titul'], 'cs')} else {return a['autor'].localeCompare(b['autor'], 'cs')} }); } } function zobrazKnihy(){ let jakTridit = $('[name="jakTridit"]:checked').val(), newHTML = ` <div id="knihySeznam" class="mt-4" style="overflow-y: automatic;"> <table class="table table-sm table-striped" >`; for (obj of knihy) { if (obj.filtr){ newHTML += ` <tr id="knihySeznamTbl${obj.id}" kn-seznam="${obj.idtitulu}#${obj.idautor}#${obj.idumisteni}">`; if (jakTridit == 0){ newHTML += `<td style="width: 30%" id="TitulKnihySeznam${obj.id}" >${obj.titul}</td> <td style="width: 30%" id="AutorKnihySeznam${obj.id}">${obj.autor}</td>`; } else { newHTML += `<td style="width: 30%" id="AutorKnihySeznam${obj.id}">${obj.autor}</td> <td style="width: 30%" id="TitulKnihySeznam${obj.id}" >${obj.titul}</td>`; } newHTML += `<td id="UmisteniKnihySeznam${obj.umisteni}">${obj.umisteni}</td> <td id="DatumKnihySeznam${obj.id}">${obj.datumCZ}</td> <td id="knihaDel${obj.id}" class="ikonaForm text-danger" onclick="smazKnihu(${obj.id})"><i class="far fa-trash-alt"></td> <td id="knihaHistVyp${obj.id}" class="ikonaForm text-info" onclick="vypujckaHistorie(${obj.id})"><i class="fas fa-book"></i></td>`; if (obj.vypujcena == '1') { newHTML += `<td id="knihaVratit${obj.id}" class="ikonaForm text-success border border-success" onclick="vypujckaDialogVratit(${obj.id})"><i class="fas fa-user-check"></i></td>`; } else { newHTML += `<td id="knihaVyp${obj.id}" class="ikonaForm text-info" onclick="vypujckaDialog(${obj.id})"><i class="far fa-user"></i></td>`; } newHTML += `<td id="knihaEd${obj.id}" class="ikonaForm text-info" onclick="editujKnihu(${obj.id})"><i class="far fa-edit"></i></td> </tr>`; } } newHTML += `</table> </div>`; $('#tabulkaKnihy').html(newHTML); spocitejKnihy(); } $('[name="jakTridit"]').on('change', function(){ setridKnihy(true); zobrazKnihy(); }); function odstranBorder(){ $('[id^="knihaEd"]').removeClass("border").removeClass("border-info"); $('[id^="knihaVyp"]').removeClass("border").removeClass("border-success"); $('[id^="knihaHistVyp"]').removeClass("border").removeClass("border-info"); $('[id^="knihaDel"]').removeClass("border").removeClass("border-danger"); } function novaKniha() { odstranBorder(); stornoFiltr(); $.ajax({ url: "knihy/knihy-detail.php", type: 'POST', dataType: 'HTML', data: {}, success: function (result) { $("#sloupecVpravo").html(result); naplnTitulyDoKnih(); } }); pripravDetail(true); } function novyTitulKniha() { $("#succDetail").addClass("d-none"); $("#modalNovyTitul").modal("show"); $("#titulNovyModal").val(""); $("#titulNovyAutor").val(""); $('[id^="selectAutorFiltr"]').attr("selected", false); } function pridejNovyTitul() { let titul = $("#titulNovyModal").val().trim(), autorNovy = $("#titulNovyAutor").val().trim(), autor = '', idautor = 0; // console.log('titul = ' + titul); if (autorNovy > '') { autor = autorNovy; $.ajax({ url: "knihy/autori-uloz.php", type: 'POST', dataType: 'HTML', data: { 'autor': autor, 'operace': 'n', 'id': 0 }, success: function (result) { console.log('idautor = ' + result); idautor = result; $.ajax({ url: "knihy/tituly-uloz.php", type: 'POST', dataType: 'HTML', data: { 'titul': titul, 'operace': 'n', 'id': 0, 'idautor': idautor }, success: function (result) { console.log('idtitul = ' + result); let id = result; titulyDoKnih.push({ 'id': id, 'titulAutor': `${titul} (${autor})` }); aktualizujTituly(); $("#titulKniha" + id).attr("selected", true); } }); } }) } else { idautor = $("#selectAutorModal").children("option:selected").val(); autor = $("#selectAutorFiltr" + idautor).html(); if (autor>''){autor = autor.trim();} $.ajax({ url: "knihy/tituly-uloz.php", type: 'POST', dataType: 'HTML', data: { 'titul': titul, 'operace': 'n', 'id': 0, 'idautor': idautor }, success: function (result) { let id = result; titulyDoKnih.push({ 'id': id, 'titulAutor': `${titul} (${autor})` }); aktualizujTituly(); $("#titulKniha" + id).attr("selected", true); } }); } } function aktualizujTituly() { titulyDoKnih.sort((a, b) => a['titulAutor'].localeCompare(b['titulAutor'], 'cs')); let newHTML = `<option >... zvol autora ...</option>`; for (obj of titulyDoKnih) { newHTML += `<option id="titulKniha${obj.id}" value="${obj.id}">${obj.titulAutor}</option> `; } $("#inputTitul").html(newHTML); } function naplnTitulyDoKnih() { titulyDoKnih = []; $('[id^="titulKniha"]').each(function () { let id = this.id; id = id.substr(10, 10); let titulAutor = $("#titulKniha" + id).html(); titulyDoKnih.push({ 'id': id, 'titulAutor': titulAutor }); }); } function smazKnihu(id){ odstranBorder(); $("#knihaDel"+id).addClass("border").addClass("border-danger"); let obj = knihy.find(o => o.id == id); $.ajax({ url: "knihy/knihy-smaz-dotaz.php", type: 'POST', dataType: 'HTML', data: { 'id': id, 'titul': obj.titul, 'autor': obj.autor, 'datum': obj.datumCZ, 'umisteni': obj.umisteni, 'vypujcena': obj.vypujcena, }, success: function (result) { $("#sloupecVpravo").html(result); } }); } function stornoDeleteKnihu(){ odstranBorder(); $("#sloupecVpravo").html(""); } function confirmDeleteKnihu(id){ let datum = $("#inputDatumVyrazeni").val(); $.ajax({ url: "knihy/knihy-smaz.php", type: 'POST', dataType: 'HTML', data: { 'id': id, 'datumvyrazeno': datum, }, success: function (result) { console.log(result); let indexKnihy = knihy.findIndex(obj => obj.id == id); knihy.splice(indexKnihy, 1); document.getElementById("knihySeznamTbl"+id).remove(); $("#sloupecVpravo").html(""); spocitejKnihy(); } }); } function seznamTitulu(){ odstranBorder(); stornoFiltr(); $.ajax({ url: "knihy/tituly.php", type: 'POST', dataType: 'HTML', data: { }, success: function (result) { $("#sloupecVpravo").html(result); } }); } function seznamAutoru() { odstranBorder(); stornoFiltr(); $.ajax({ url: "knihy/autori.php", type: 'POST', dataType: 'HTML', data: { }, success: function (result) { $("#sloupecVpravo").html(result); } }); } $(document).ready(function () { /* $("#modalNovyTitul").modal({ show: false, backdrop: 'static' }); */ }); function stornoDetail(){ odstranBorder(); $("#sloupecVpravo").html(""); } function pripravDetail(dnes){ $('[id^="titulKniha"]').prop("selected", false); $('#inputCena').val(0); if (dnes){ $('#inputDatumPorizeni').val(new Date());} $('#inputPoznamka').val(""); } function inputTitulChange(){ $("#succDetail").addClass("d-none"); } function zapsatDetail(id){ $("#succDetail").addClass("d-none"); let err = false, errMsg = '', editace = id > 0, idtitul = $("#inputTitul").children(":selected").attr("id"); if (idtitul > '') { idtitul = idtitul.substr(10, 10); } else { err = true; errMsg = 'Není vybrán žádný titul.<br>'; } let idumisteni = $("#inputUmisteni").children(":selected").attr("id"); if (idumisteni > '') { idumisteni = idumisteni.substr(8, 10); } else { err = true; errMsg += 'Není vybráno umístění.<br>'; } let idmedium = $("#inputMedium").children(":selected").attr("id"); if (idmedium > '') { idmedium = idmedium.substr(5, 10); } else { err = true; errMsg += 'Není vybrán nosič.<br>'; } /* if (isNaN(datum)){ errMsg += 'Datum pořízení je divné.<br>'; err = true; } else { } */ let datum = $("#inputDatumPorizeni").val(), datumArr = datum.split("-"), datumCZ = `${datumArr[2]}.${datumArr[1]}.${datumArr[0]}`; datum = new Date(datum).toISOString().slice(0, 10); let cena = $("#inputCena").val(), poznamka = $("#inputPoznamka").val(); $("#errDetail").addClass("d-none"); if (err){ errMsg = errMsg.substr(0, errMsg.length-4); $("#errDetail").html(errMsg); $("#errDetail").removeClass("d-none"); } else { $.ajax({ url: "knihy/knihy-uloz.php", type: 'POST', dataType: 'HTML', data: { 'id': id, 'idtitul': idtitul, 'idumisteni': idumisteni, 'idmedium': idmedium, 'datum': datum, 'cena': cena, 'poznamka': poznamka, 'operace': ((id>0) ? 'e' : 'n'), }, success: function (result) { if (editace){ console.log(result); let navrat = result.split("#"), jakTridit = $('[name="jakTridit"]:checked').val(), indexKnihy = knihy.findIndex(obj => obj.id == id); knihy[indexKnihy].titul = navrat[2]; knihy[indexKnihy].autor = navrat[1]; knihy[indexKnihy].datumISO = datum; knihy[indexKnihy].datumCZ = datumCZ; knihy[indexKnihy].idautor = navrat[3]; knihy[indexKnihy].idumisteni = idumisteni; knihy[indexKnihy].umisteni = navrat[4]; knihy[indexKnihy].idtitulu = idtitul; let obj = knihy.find(o => o.id == id); let newHTML = ''; newHTML += ` <tr id="knihySeznamTbl${obj.id}" kn-seznam="${obj.idtitulu}#${obj.idautor}#${obj.idumisteni}">`; if (jakTridit == 0){ newHTML += `<td style="width: 30%" id="TitulKnihySeznam${obj.id}" >${obj.titul}</td> <td style="width: 30%" id="AutorKnihySeznam${obj.id}">${obj.autor}</td>`; } else { newHTML += `<td style="width: 30%" id="AutorKnihySeznam${obj.id}">${obj.autor}</td> <td style="width: 30%" id="TitulKnihySeznam${obj.id}" >${obj.titul}</td>`; } newHTML += `<td id="UmisteniKnihySeznam${obj.umisteni}">${obj.umisteni}</td> <td id="DatumKnihySeznam${obj.id}">${obj.datumCZ}</td> <td id="knihaDel${obj.id}" class="ikonaForm text-danger" onclick="smazKnihu(${obj.id})"><i class="far fa-trash-alt"></td> <td id="knihaHistVyp${obj.id}" class="ikonaForm text-info" onclick="vypujckaHistorie(${obj.id})"><i class="fas fa-book"></i></td>`; if (obj.vypujcena == '1') { newHTML += `<td id="knihaVratit${obj.id}" class="ikonaForm text-success border border-success" onclick="vypujckaDialogVratit(${obj.id})"><i class="fas fa-user-check"></i></td>`; } else { newHTML += `<td id="knihaVyp${obj.id}" class="ikonaForm text-info" onclick="vypujckaDialog(${obj.id})"><i class="far fa-user"></i></td>`; } newHTML += `<td id="knihaEd${obj.id}" class="ikonaForm text-info" onclick="editujKnihu(${obj.id})"><i class="far fa-edit"></i></td> </tr>`; $(newHTML).replaceAll('#knihySeznamTbl'+id); stornoDetail(); } else { let navrat = result.split("#"), whereAddNew = $('[name="whereAddNew"]:checked').val(), dalsiNova = $("#cbDalsiNova").prop("checked"), cbNechatUmisteni = $("#cbNechatUmisteni").prop("checked"), trideni = (whereAddNew == 0) ? (Math.max.apply(null, knihy.map(function(o) { return o.trideni; })) + 1) : 0; knihy.push({'id':navrat[0], 'titul':navrat[2], 'autor':navrat[1], 'datumISO': datum, 'datumCZ': datumCZ, 'idtitulu': idtitul, 'idautor': navrat[3], 'idumisteni': idumisteni, 'umisteni': navrat[4], 'vypujcena': '0', 'trideni': trideni, 'filtr': true}); setridKnihy(false); zobrazKnihy(); $("#succDetail").removeClass("d-none"); if (!$("#cbDalsiNova").prop("checked")){ stornoDetail(); } else { pripravDetail(false); } } } // ajax success }); } } // zapsat detail function filtrKnihyOtevri(){ if ($("#novyAutor").length || $("#btnNovyTitul").length || $("#dlgNovaKniha").length ) {stornoDetail();} $.ajax({ url: "knihy/knihy-filtr.php", type: 'POST', dataType: 'HTML', data: { }, success: function (result) { $("#sloupecVpravoFiltr").html(result); } }); } function stornoFiltr(){ vyprazdniFiltr(); $("#sloupecVpravoFiltr").html(" "); } function filtrujKnihy(){ let titulF = $("#textFiltrTitul").val().trim(), idautorF = $("#selectAutorFiltrVolba").children("option:selected").val().trim(); if (idautorF == '... zvol autora ...'){idautorF = 0; }; let datumod = $('#inputDatumPorizeniOd').val(), datumdo = $('#inputDatumPorizeniDo').val(), idumisteniF = $("#selectUmisteniFiltr").children("option:selected").val().trim(); if (idumisteniF == ''){idumisteniF = 0; } let filtrVypujceno = $('[name="filtrVypujceno"]:checked').val() titulF = titulF.toLocaleLowerCase().trim(); knihy.forEach(function(obj){ let filtrStav = true; if (titulF>'') { filtrStav = filtrStav && (obj.titul.toLocaleLowerCase().indexOf(titulF) > -1); } if (filtrStav && (idautorF > 0)){ filtrStav = filtrStav && (obj.idautor == idautorF); } if (filtrStav && (datumod > '')){ filtrStav = filtrStav && (obj.datumISO >= datumod); } if (filtrStav && (datumdo > '')){ filtrStav = filtrStav && (obj.datumISO <= datumdo); } if (filtrStav && (idumisteniF > 0)){ filtrStav = filtrStav && (obj.idumisteni == idumisteniF); } if (filtrStav && (filtrVypujceno < 2)){ filtrStav = filtrStav && (obj.vypujcena == filtrVypujceno); } obj.filtr = filtrStav; }); zobrazKnihy(); } function vyprazdniFiltr(){ if (document.getElementById("textFiltrTitul")){ $("#textFiltrTitul").val(''); let idautorF = $("#selectAutorFiltrVolba").children("option:selected").val(); if (idautorF > '') {idautorF = idautorF.trim()}; if (idautorF !== '... zvol autora ...'){ $("#selectAutorFiltr"+idautorF).prop("selected", false) }; $('#inputDatumPorizeniDo').val(""); $('#inputDatumPorizeniOd').val(""); let idumisteniF = $("#selectUmisteniFiltr").children("option:selected").val(); if (idumisteniF > '') {idumisteniF = idumisteniF.trim()}; if (idumisteniF !== ''){ $("#umisteni"+idumisteniF).prop("selected", false) }; $("#filtrVypujceno2").prop('checked', true); } knihy.forEach(obj => obj.filtr = true); zobrazKnihy(); } function vypujckaDialog(id){ odstranBorder(); $("#knihaVyp"+id).addClass("border").addClass("border-success"); let obj = knihy.find(o => o.id == id); $.ajax({ url: "knihy/knihy-vypujcka-dialog.php", type: 'POST', dataType: 'HTML', data: { 'id': id, 'titul': obj.titul, 'autor': obj.autor, 'umisteni': obj.umisteni, }, success: function (result) { $("#sloupecVpravo").html(result); } }); } function zavritPrehledVypujcek(){ odstranBorder(); $("#sloupecVpravo").html(""); } function radioOsoba(){ let volba = $('[name="radioOsoba"]:checked').val(); if (volba == '0'){ $.ajax({ url: "knihy/knihy-vypujcka-ucitele.php", type: 'POST', dataType: 'HTML', data: { }, success: function (result) { $("#idDosadLidi").html(result); } }); } else { $.ajax({ url: "knihy/knihy-vypujcka-zaci.php", type: 'POST', dataType: 'HTML', data: { }, success: function (result) { $("#idDosadLidi").html(result); } }); } } function stornoVypujcitDialog(){ $("#sloupecVpravo").html(""); } function zapsatVypujcitKnihu(id){ let kod = $("#selectLidiVypujcka").children("option:selected").val().trim(), typ = $('[name="radioOsoba"]:checked').val(), datum = $("#inputDatumVypujceni").val(), errMsg = '', err = false; if (kod.indexOf("...") > -1){ err = true; errMsg += 'Zvol osobu.<br>'; } if (datum < ' '){ err = true; errMsg += 'Zvol datum.<br>'; } if (err){ errMsg = errMsg.substr(0,errMsg.length - 4); $("#dlgVypujckaErr").html(errMsg); $("#dlgVypujckaErr").removeClass("d-none"); } else { typ = (typ == '0') ? 'u' : 'z'; $.ajax({ url: "knihy/knihy-vypujcka-ulozit.php", type: 'POST', dataType: 'HTML', data: { 'idkniha': id, 'kod': kod, 'typ': typ, 'datum': datum }, success: function (result) { let indexKnihy = knihy.findIndex(obj => obj.id == id); knihy[indexKnihy].vypujcena = '1'; let noveTD = `<td id="knihaVratit${id}" class="ikonaForm text-success border border-success" onclick="vypujckaDialogVratit(${id})"> <i class="fas fa-user-check"></i> </td>`; $(noveTD).replaceAll('#knihaVyp'+id); $("#sloupecVpravo").html(""); } }); } } function vypujckaDialogVratit(id){ odstranBorder(); let obj = knihy.find(o => o.id == id); $.ajax({ url: "knihy/knihy-vypujcka-dlgvratit.php", type: 'POST', dataType: 'HTML', data: { 'id': id, 'titul': obj.titul, 'autor': obj.autor, 'umisteni': obj.umisteni, }, success: function (result) { $("#sloupecVpravo").html(result); } }); } function zapsatVratitKnihu(id, idvypujcka){ let datum = $("#inputDatumVraceni").val(), errMsg = '', err = false; if (datum < ' '){ err = true; errMsg = 'Zvol datum.'; } if (err){ $("#dlgVraceniErr").html(errMsg); $("#dlgVraceniErr").removeClass("d-none"); } else { $.ajax({ url: "knihy/knihy-vypujcka-vratit.php", type: 'POST', dataType: 'HTML', data: { 'idvypujcka': idvypujcka, 'datum': datum }, success: function (result) { let indexKnihy = knihy.findIndex(obj => obj.id == id); knihy[indexKnihy].vypujcena = '0'; let noveTD = `<td id="knihaVyp${id}" class="ikonaForm text-info" onclick="vypujckaDialog(${id})"><i class="far fa-user"></i></td>`; $(noveTD).replaceAll('#knihaVratit'+id); $("#sloupecVpravo").html(""); } }); } } function tisk1(){ if($("#textFiltrTitul").length) { console.log('filtr') } else { console.log('no filtr') } let ids = '('; knihy.forEach(obj => {if (obj.filtr) {ids += obj.id + ','}}); ids = ids.substr(0, ids.length-1) + ')'; $.redirect('knihy/tisk1.php', {'id': ids, 'trideni': $('[name="jakTridit"]:checked').val(), }, "POST", "tisk1"); } function vypujckaHistorie(id) { odstranBorder(); $("#knihaHistVyp"+id).addClass("border").addClass("border-info"); let obj = knihy.find(o => o.id == id); $.ajax({ url: "knihy/knihy-prehled-vypujcek.php", type: 'POST', dataType: 'HTML', data: { 'id': id, 'titul': obj.titul, 'autor': obj.autor, 'datum': obj.datumCZ, 'umisteni': obj.umisteni, }, success: function (result) { $("#sloupecVpravo").html(result); } }); } function editujKnihu(id){ let obj = knihy.find(o => o.id == id); odstranBorder(); $("#knihySeznam").css("padding", "0px 1px"); style="width: 99%" $("#knihaEd"+id).addClass("border").addClass("border-info"); $.ajax({ url: "knihy/knihy-detail.php", type: 'POST', dataType: 'HTML', data: { 'id': id, 'datumISO': obj.datumISO, 'idtitulu': obj.idtitulu, 'idautor': obj.idautor, 'idumisteni': obj.idumisteni, }, success: function (result) { $("#sloupecVpravo").html(result); $.ajax({ url: "knihy/knihy-detail-select.php", type: 'POST', dataType: 'HTML', data: { 'id': id, }, success: function (result) { console.log(id); let hodnoty = result.split('#'); $("#titulKniha"+hodnoty[0]).prop("selected", true); $("#inputCena").val(hodnoty[1]); $("#nosic"+hodnoty[3]).prop("selected", true); $("#inputPoznamka").val(hodnoty[4]); } }); } }); }