diff --git a/README.md b/README.md index ef7134f..2abbc57 100644 --- a/README.md +++ b/README.md @@ -1 +1,28 @@ -# pro-oc \ No newline at end of file +# PRO OC + +Rozšíření přidává užitečné funkce do modulu [Pacienti COVID-19](https://ereg.ksrzis.cz/Registr/CUDZadanky/VyhledaniPacienta) a [Žádanky testů COVID-19](https://eregpublicsecure.ksrzis.cz/Registr/CUD/Overeni). + + +## Žádanky testů COVID-19 + +- Přidává tlačítko **Stáhnout certifikát** na stránku Overovani + +![Preview](preview/tlacitko_stahnout_certifikat.PNG) + +## Pacienti COVID-19 + +- Přidává tlačítko **Detail pacienta** na detail žádanky + +![Preview](preview/tlaciko_detail_pacienta.PNG) + +- Přidává tlačítko **Vyhledat moje žádanky** na detail pacienta do sekce **Žádanky a testy** + +![Preview](preview/tlacitko_vyhledat_moje_zadanky.PNG) + +- Přidává tlačítko **Stornovat žádanku** i na detail PCR žádanky se zaškrtnutým **Provedl jsem odběr** + +## Žádanky testů COVID-19 + Pacienti COVID-19 + +- Přidává možnost změnit přihlašovací údaje do aplikace [Tečka](https://ockodoc.mzcr.cz/napoveda/tecka/cz/) nebo [ocko.uzis.cz](https://ocko.uzis.cz/) + +![Preview](preview/moznost_ulozit_prihlasovaci_udaje_na_zadance.PNG) diff --git a/background/background.js b/background/background.js new file mode 100644 index 0000000..883ab64 --- /dev/null +++ b/background/background.js @@ -0,0 +1,121 @@ +function getEregRegistrDomain() { + return "ereg.ksrzis.cz"; +} + +function getEregRegistrUrl() { + return "https://" + getEregRegistrDomain(); +} + +function getRegistrCUDZadankyMojeZadankyEditaceUrlParams(ProvedenOdber) { + var urlParams = new URLSearchParams(); + urlParams.set("ProvedenOdber", ProvedenOdber); + return urlParams; +} + +function getRegistrCUDZadankyMojeZadankyEditaceUrl(CisloZadanky) { + return getEregRegistrUrl() + "/Registr/CUDZadanky/MojeZadanky/Editace/" + CisloZadanky; +} + +function getRegistrCUDVyhledaniPacientaUrl() { + return getEregRegistrUrl() + "/Registr/CUDZadanky/VyhledaniPacienta"; +} + +function getRegistrCUDVyhledaniPacientaUrlParams(zadanka) { + var urlParams = new URLSearchParams(); + urlParams.set("DuvodVyhledani", "VyhledatPacienta"); + urlParams.set("TypVyhledani", zadanka.StatniPrislusnost == "CZ" ? "JmenoPrijmeniRC" : "CizinecJmenoPrijmeniDatumNarozniObcanstvi"); + urlParams.set("Jmeno", zadanka.Jmeno); + urlParams.set("Prijmeni", zadanka.Prijmeni); + if(zadanka.StatniPrislusnost == "CZ") { + urlParams.set("RodneCislo", zadanka.CisloPojistence); + } else { + urlParams.set("DatumNarozeni", zadanka.DatumNarozeni); + urlParams.set("ZemeKod", zadanka.StatniPrislusnost); + } + urlParams.set("_submit", "None"); + return urlParams; +} + +function unsetProvedenOdber(Cislo, callback) { + + var urlParams = getRegistrCUDZadankyMojeZadankyEditaceUrlParams(false); + var url = getRegistrCUDZadankyMojeZadankyEditaceUrl(Cislo); + + var xhr = new XMLHttpRequest(); + xhr.open("POST", url, true); + xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); + xhr.onreadystatechange = function() { + if(xhr.readyState === XMLHttpRequest.DONE && xhr.status == 200) { + callback(true); + } + } + xhr.send(urlParams.toString()); +} + +function stornoZadanka(Cislo, callback) { + + var url = getRegistrCUDZadankyMojeZadankyStornoUrl(Cislo); + + var xhr = new XMLHttpRequest(); + xhr.open("POST", url, true); + xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); + xhr.onreadystatechange = function() { + if(xhr.readyState === XMLHttpRequest.DONE && xhr.status == 200) { + callback(true); + } + } + xhr.send(); +} + + +function loadOckoUzisPatientCredentials(zadanka, callback) { + + var url = getRegistrCUDVyhledaniPacientaUrl(); + var urlParams = getRegistrCUDVyhledaniPacientaUrlParams(zadanka); + + var xhr = new XMLHttpRequest(); + xhr.open("POST", url, true); + xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); + xhr.onreadystatechange = function() { + if(xhr.readyState === XMLHttpRequest.DONE && xhr.status == 200) { + + var parser = new DOMParser(); + var responseDocument = parser.parseFromString(xhr.responseText,"text/html"); + + var results = {}; + var labels = responseDocument.getElementsByTagName('label'); + for (var i = 0; i < labels.length; i++) { + switch(labels[i].htmlFor) { + case 'Pacient_Telefon': + results.Telefon = labels[i].nextElementSibling.innerText.trim(); + break; + case 'Pacient_Email': + results.Email = labels[i].nextElementSibling.innerText.trim(); + } + } + results.EditLink = xhr.responseURL.replace("Index", "Edit"); + + callback(results); + } + } + xhr.send(urlParams.toString()); +} + +chrome.runtime.onMessage.addListener(function (msg, sender, sendResponse) { + if (msg.text === 'OckoUzisPatientCredentials') { + loadOckoUzisPatientCredentials(msg.data, Credentials => { + sendResponse(Credentials); + }); + return true; + } else if(msg.text === 'ZrusitProvedenOdber' && msg.data.Cislo) { + unsetProvedenOdber(msg.data.Cislo, function(result) { + sendResponse(result); + }); + return true; + } else if(msg.text === 'StornoZadanka' && msg.data.Cislo) { + stornoZadanka(msg.data.Cislo, function(result) { + sendResponse(result); + }); + return true; + } +}); \ No newline at end of file diff --git a/content/content.js b/content/content.js new file mode 100644 index 0000000..5f5cc91 --- /dev/null +++ b/content/content.js @@ -0,0 +1,466 @@ +function getEregRegistrDomain() { + return "ereg.ksrzis.cz"; +} + +function getEregRegistrUrl() { + return "https://" + getEregRegistrDomain(); +} + +function getRegistrCUDVyhledaniPacientaUrl() { + return getEregRegistrUrl() + "/Registr/CUDZadanky/VyhledaniPacienta"; +} + +function getRegistrCUDZadankyMojeZadankyUrlParams(Jmeno, Prijmeni, CisloPojistence) { + var urlParams = new URLSearchParams(); + urlParams.set("Jmeno", Jmeno); + urlParams.set("Prijmeni", Prijmeni); + urlParams.set("CisloPojistence", CisloPojistence); + urlParams.set("StavZadanky", "VseBezStorno"); + urlParams.set("_submit", "None"); + return urlParams; +} + +function getRegistrCUDZadankyMojeZadankyUrl() { + return getEregRegistrUrl() + "/Registr/CUDZadanky/MojeZadanky"; +} + +function getRegistrCUDOvereniGetCertifikat(Cislo) { + return getRegistrZadankyDomainUrl() + "/Registr/CUD/Overeni/GetCertifikat?Cislo=" + Cislo; +} + +function getRegistrZadankyDomain() { + return "eregpublicsecure.ksrzis.cz"; +} + +function getRegistrZadankyDomainUrl() { + return "https://" + getRegistrZadankyDomain(); +} + +const TestovanyJmenoElement = document.getElementById("TestovanyJmeno"); +const TestovanyPrijmeniElement = document.getElementById("TestovanyPrijmeni"); +const TestovanyNarodnostElement = document.getElementById("TestovanyNarodnost"); +const TestovanyDatumNarozeniElement = document.getElementById("TestovanyDatumNarozeni"); +const TestovanyTelefonElement = document.getElementById("TestovanyTelefon"); +const TestovanyEmailElement = document.getElementById("TestovanyDatumNarozeni"); +const RizikovePovolaniKodElement = document.getElementById("RizikovePovolaniKod"); +const OckoUzisUlozitElement = document.getElementById("OckoUzisUlozit"); +const TestovanyCisloPojistenceElement = document.getElementById("TestovanyCisloPojistence"); +const editFormElement = document.getElementById("editForm"); +const formActionsElement = document.querySelector(".actions"); + +if(TestovanyJmenoElement) { + TestovanyJmenoElement.addEventListener('input', loadAndSetOckoUzisPatientCredentials); +} +if(TestovanyPrijmeniElement) { + TestovanyPrijmeniElement.addEventListener('input', loadAndSetOckoUzisPatientCredentials); +} +if(TestovanyCisloPojistenceElement) { + TestovanyCisloPojistenceElement.addEventListener('input', loadAndSetOckoUzisPatientCredentials); +} +if(TestovanyNarodnostElement) { + TestovanyNarodnostElement.addEventListener('input', loadAndSetOckoUzisPatientCredentials); +} +if(TestovanyDatumNarozeniElement) { + TestovanyDatumNarozeniElement.addEventListener('input', loadAndSetOckoUzisPatientCredentials); +} + +function removeReadOnlyOckoUzisPatientCredentials() { + var OckoUzisTelefonElement = document.getElementById("OckoUzisTelefon"); + if(OckoUzisTelefonElement) { + OckoUzisTelefonElement.removeAttribute("readonly"); + } + var OckoUzisEmailElement = document.getElementById("OckoUzisEmail"); + if(OckoUzisEmailElement) { + OckoUzisEmailElement.removeAttribute("readonly"); + } +} + +function setReadOnlyOckoUzisPatientCredentials() { + var OckoUzisTelefonElement = document.getElementById("OckoUzisTelefon"); + if(OckoUzisTelefonElement) { + OckoUzisTelefonElement.setAttribute("readonly", true); + } + var OckoUzisEmailElement = document.getElementById("OckoUzisEmail"); + if(OckoUzisEmailElement) { + OckoUzisEmailElement.setAttribute("readonly", true); + } +} + +function hideOckoUzisPatientCredentials() { + var VFNfieldsetOckoUzisWrapDivElement = document.getElementById("VFNfieldsetOckoUzisWrapDiv"); + if(VFNfieldsetOckoUzisWrapDivElement) { + VFNfieldsetOckoUzisWrapDivElement.setAttribute("style", "display:none;"); + } +} + +function setOckoUzisPatientDetailEditLink(EditLink) { + var OckoUzisEditLinkElement = document.getElementById("OckoUzisEditLink"); + if(OckoUzisEditLinkElement) { + OckoUzisEditLink.value = EditLink; + } +} + +function setOckoUzisPatientCredentials(Telefon, Email) { + + var OckoUzisTelefonElement = document.getElementById("OckoUzisTelefon"); + var OckoUzisEmailElement = document.getElementById("OckoUzisEmail"); + var VFNfieldsetOckoUzisWrapDivElement = document.getElementById("VFNfieldsetOckoUzisWrapDiv"); + + if((!OckoUzisTelefonElement || !OckoUzisEmailElement) && editFormElement) { + + var VFNfieldsetElement = document.createElement("fieldset"); + VFNfieldsetElement.setAttribute("id", "PacientiCovid19Profil"); + + VFNfieldsetLegendElement = document.createElement("legend"); + VFNfieldsetLegendElement.innerHTML = "Profil na Pacienti Covid-19"; + + VFNfieldsetElement.appendChild(VFNfieldsetLegendElement); + + VFNfieldsetOckoUzisWrapDivElement = document.createElement("div"); + VFNfieldsetOckoUzisWrapDivElement.setAttribute("id", "VFNfieldsetOckoUzisWrapDiv"); + + VFNfieldsetElement.appendChild(VFNfieldsetOckoUzisWrapDivElement); + + + // checkbox + var OckoUzisFieldset1ColumnDivElement = document.createElement("div"); + OckoUzisFieldset1ColumnDivElement.setAttribute("class", "oneColumn"); + + var OckoUzisEditCheckboxFieldGraphicDivElement = document.createElement("div"); + OckoUzisEditCheckboxFieldGraphicDivElement.setAttribute("class", "fieldGraphic"); + + var OckoUzisUlozitElement = document.createElement("input"); + OckoUzisUlozitElement.setAttribute("type", "checkbox"); + OckoUzisUlozitElement.setAttribute("id", "OckoUzisUlozit"); + OckoUzisUlozitElement.setAttribute("name", "OckoUzisUlozit"); + OckoUzisUlozitElement.addEventListener("change", (event) => { + if(event.target.checked) { + removeReadOnlyOckoUzisPatientCredentials(); + } else { + setReadOnlyOckoUzisPatientCredentials(); + } + }); + + var OckoUzisEditLinkElement = document.createElement("input"); + OckoUzisEditLinkElement.setAttribute("type", "hidden"); + OckoUzisEditLinkElement.setAttribute("id", "OckoUzisEditLink"); + + OckoUzisEditCheckboxFieldGraphicDivElement.appendChild(OckoUzisEditLinkElement); + + OckoUzisEditCheckboxFieldGraphicDivElement.appendChild(OckoUzisUlozitElement); + + var OckoUzisEditCheckboxLabelElement = document.createElement("label"); + OckoUzisEditCheckboxLabelElement.setAttribute("for", "OckoUzisUlozit"); + OckoUzisEditCheckboxLabelElement.innerHTML = " Email a telefon v profilu budou nahrazeny těmito"; + + OckoUzisEditCheckboxFieldGraphicDivElement.appendChild(OckoUzisEditCheckboxLabelElement); + + OckoUzisFieldset1ColumnDivElement.appendChild(OckoUzisEditCheckboxFieldGraphicDivElement); + VFNfieldsetOckoUzisWrapDivElement.appendChild(OckoUzisFieldset1ColumnDivElement); + // + + + // telephone & email twoColumn + var OckoUzisFieldset2ColumnDivElement = document.createElement("div"); + OckoUzisFieldset2ColumnDivElement.setAttribute("class", "twoColumn"); + + // telefon + var OckoUzisFieldsetFieldGraphic1DivElement = document.createElement("div"); + OckoUzisFieldsetFieldGraphic1DivElement.setAttribute("class", "fieldGraphic"); + + var OckoUzisFieldsetTelefonLabelElement = document.createElement("label"); + OckoUzisFieldsetTelefonLabelElement.setAttribute("for", "OckoUzisTelefon"); + OckoUzisFieldsetTelefonLabelElement.innerHTML = "Kontaktní telefon"; + + OckoUzisFieldsetFieldGraphic1DivElement.appendChild(OckoUzisFieldsetTelefonLabelElement); + + OckoUzisTelefonElement = document.createElement("input"); + OckoUzisTelefonElement.setAttribute("type", "text"); + OckoUzisTelefonElement.setAttribute("id", "OckoUzisTelefon"); + OckoUzisTelefonElement.setAttribute("name", "OckoUzisTelefon"); + OckoUzisTelefonElement.setAttribute("readonly", true); + + OckoUzisFieldsetFieldGraphic1DivElement.appendChild(OckoUzisTelefonElement); + + OckoUzisFieldset2ColumnDivElement.appendChild(OckoUzisFieldsetFieldGraphic1DivElement); + // + + // email + var OckoUzisFieldsetFieldGraphicDiv2Element = document.createElement("div"); + OckoUzisFieldsetFieldGraphicDiv2Element.setAttribute("class", "fieldGraphic"); + + var OckoUzisFieldsetEmailLabelElement = document.createElement("label"); + OckoUzisFieldsetEmailLabelElement.setAttribute("for", "OckoUzisEmail"); + OckoUzisFieldsetEmailLabelElement.innerHTML = "Kontaktní e-mail"; + + OckoUzisFieldsetFieldGraphicDiv2Element.appendChild(OckoUzisFieldsetEmailLabelElement); + + OckoUzisEmailElement = document.createElement("input"); + OckoUzisEmailElement.setAttribute("type", "text"); + OckoUzisEmailElement.setAttribute("id", "OckoUzisEmail"); + OckoUzisEmailElement.setAttribute("name", "OckoUzisEmail"); + OckoUzisEmailElement.setAttribute("readonly", true); + + OckoUzisFieldsetFieldGraphicDiv2Element.appendChild(OckoUzisEmailElement); + + OckoUzisFieldset2ColumnDivElement.appendChild(OckoUzisFieldsetFieldGraphicDiv2Element); + // + VFNfieldsetOckoUzisWrapDivElement.appendChild(OckoUzisFieldset2ColumnDivElement); + + + editFormElement.insertBefore(VFNfieldsetElement, RizikovePovolaniKodElement.parentElement.parentElement.parentElement); + } + VFNfieldsetOckoUzisWrapDivElement.setAttribute("style", "display:block;"); + + OckoUzisTelefonElement.value = Telefon; + OckoUzisEmailElement.value = Email; +} + +function loadAndSetOckoUzisPatientCredentials() { + if( + TestovanyJmenoElement && TestovanyJmenoElement.value && + TestovanyPrijmeniElement && TestovanyPrijmeniElement.value && + TestovanyNarodnostElement && TestovanyNarodnostElement.value && + ( + (TestovanyNarodnostElement.value == "CZ" && TestovanyCisloPojistenceElement && TestovanyCisloPojistenceElement.value) || + (TestovanyNarodnostElement.value != "CZ" && TestovanyDatumNarozeniElement && TestovanyDatumNarozeniElement.value) + ) + ) { + chrome.runtime.sendMessage({ + "text": "OckoUzisPatientCredentials", + "data": { + "Jmeno": TestovanyJmenoElement.value, + "Prijmeni": TestovanyPrijmeniElement.value, + "DatumNarozeni": TestovanyDatumNarozeniElement.value, + "StatniPrislusnost": TestovanyNarodnostElement.value, + "CisloPojistence": TestovanyCisloPojistenceElement.value + } + }, function(PatientCredentials) { + if(PatientCredentials.Telefon && PatientCredentials.Email) { + setOckoUzisPatientCredentials(PatientCredentials.Telefon, PatientCredentials.Email); + setOckoUzisPatientDetailEditLink(PatientCredentials.EditLink); + } + }); + } else { + hideOckoUzisPatientCredentials(); + } +} + +loadAndSetOckoUzisPatientCredentials(); + +if(editFormElement && TestovanyTelefon) { + var OckoUzisUlozitZeZadankyColumnDivElement = document.createElement("div"); + OckoUzisUlozitZeZadankyColumnDivElement.setAttribute("class", "oneColumn"); + + var OckoUzisUlozitFieldGraphicElement = document.createElement("div"); + OckoUzisUlozitFieldGraphicElement.setAttribute("class", "fieldGraphic"); + + + + var OckoUzisUlozitZeZadankyElement = document.createElement("input"); + OckoUzisUlozitZeZadankyElement.setAttribute("type", "checkbox"); + OckoUzisUlozitZeZadankyElement.setAttribute("id", "OckoUzisUlozitZeZadanky"); + OckoUzisUlozitZeZadankyElement.setAttribute("name", "OckoUzisUlozitZeZadanky"); + OckoUzisUlozitZeZadankyElement.addEventListener("change", (event) => { + var PacientiCovid19ProfilFieldsetElement = document.getElementById("PacientiCovid19Profil"); + if(PacientiCovid19ProfilFieldsetElement) { + if(event.target.checked) { + PacientiCovid19ProfilFieldsetElement.setAttribute("style", "display:none;"); + } else { + PacientiCovid19ProfilFieldsetElement.setAttribute("style", "display:block;"); + } + } + }); + + OckoUzisUlozitFieldGraphicElement.appendChild(OckoUzisUlozitZeZadankyElement); + + var OckoUzisUlozitZeZadankyLabelElement = document.createElement("label"); + OckoUzisUlozitZeZadankyLabelElement.setAttribute("for", "OckoUzisUlozitZeZadanky"); + OckoUzisUlozitZeZadankyLabelElement.innerHTML = " Email a telefon v profilu budou nahrazeny těmito"; + + + OckoUzisUlozitFieldGraphicElement.appendChild(OckoUzisUlozitZeZadankyLabelElement); + OckoUzisUlozitZeZadankyColumnDivElement.appendChild(OckoUzisUlozitFieldGraphicElement); + + TestovanyTelefon.parentNode.parentNode.parentNode.insertBefore(OckoUzisUlozitZeZadankyColumnDivElement, TestovanyTelefon.parentNode.parentNode.nextSibling); +} + + +const CisloElement = document.getElementById("Cislo"); + +if(CisloElement && CisloElement.value) { + + var linkElement = document.createElement("a"); + + linkElement.setAttribute("class", "button-action ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only valid"); + linkElement.setAttribute("href", getRegistrCUDOvereniGetCertifikat(CisloElement.value)); + linkElement.text = "Stáhnout certifikát"; + linkElement.setAttribute("role", "button"); + + document.querySelector("div.actions").appendChild(linkElement); +} + + +var actionsDiv = document.querySelector(".actions"); + +var JmenoLabel = document.querySelector('label[for="Zadanka_TestovanyJmeno"]'); +var PrijmeniLabel = document.querySelector('label[for="Zadanka_TestovanyPrijmeni"]'); +var CisloPojistenceLabel = document.querySelector('label[for="Zadanka_TestovanyCisloPojistence"]'); +var DatumNarozeniLabel = document.querySelector('label[for="Zadanka_TestovanyDatumNarozeni"]'); +var Narodnost = document.getElementById("TestovanyNarodnost"); + +if( + JmenoLabel && JmenoLabel.nextElementSibling.innerText && + PrijmeniLabel && PrijmeniLabel.nextElementSibling.innerText && + CisloPojistenceLabel && CisloPojistenceLabel.nextElementSibling.innerText && + Narodnost && Narodnost.value && + ((Narodnost.value == "CZ" && CisloPojistenceLabel && CisloPojistenceLabel.nextElementSibling.innerText) || + (Narodnost.value != "CZ" && DatumNarozeniLabel && DatumNarozeniLabel.nextElementSibling.innerText)) && + actionsDiv + ) { + var Jmeno = JmenoLabel.nextElementSibling.innerText; + var Prijmeni = PrijmeniLabel.nextElementSibling.innerText; + var CisloPojistence = CisloPojistenceLabel.nextElementSibling.innerText; + var DatumNarozeni = DatumNarozeniLabel.nextElementSibling.innerText; + var StatniPrislusnost = Narodnost.value; + + var form = document.createElement("form"); + form.action = getRegistrCUDVyhledaniPacientaUrl(); + form.method = "POST"; + form.target = "_blank"; + + + var inputJmeno = document.createElement("input"); + inputJmeno.type = "hidden"; + inputJmeno.value = Jmeno; + inputJmeno.name = "Jmeno"; + form.appendChild(inputJmeno); + + var inputPrijmeni = document.createElement("input"); + inputPrijmeni.type = "hidden"; + inputPrijmeni.value = Prijmeni; + inputPrijmeni.name = "Prijmeni"; + form.appendChild(inputPrijmeni); + + var inputTypVyhledavani = document.createElement("input"); + inputTypVyhledavani.type = "hidden"; + inputTypVyhledavani.value = "VyhledatPacienta"; + inputTypVyhledavani.name = "DuvodVyhledani"; + form.appendChild(inputTypVyhledavani); + + var inputTypVyhledavani = document.createElement("input"); + inputTypVyhledavani.type = "hidden"; + inputTypVyhledavani.value = StatniPrislusnost == "CZ" ? "JmenoPrijmeniRC" : "CizinecJmenoPrijmeniDatumNarozniObcanstvi"; + inputTypVyhledavani.name = "TypVyhledani"; + form.appendChild(inputTypVyhledavani); + + if(StatniPrislusnost == "CZ") { + var inputTestovanyCisloPojistence = document.createElement("input"); + inputTestovanyCisloPojistence.type = "hidden"; + inputTestovanyCisloPojistence.value = CisloPojistence; + inputTestovanyCisloPojistence.name = "RodneCislo"; + form.appendChild(inputTestovanyCisloPojistence); + } else { + var inputZemeKod = document.createElement("input"); + inputZemeKod.type = "hidden"; + inputZemeKod.value = StatniPrislusnost; + inputZemeKod.name = "ZemeKod"; + form.appendChild(inputZemeKod); + + var inputDatumNarozeni= document.createElement("input"); + inputDatumNarozeni.type = "hidden"; + inputDatumNarozeni.value = DatumNarozeni; + inputDatumNarozeni.name = "DatumNarozeni"; + form.appendChild(inputDatumNarozeni); + } + + var submit = document.createElement("button"); + submit.name = "_submit"; + submit.type = "submit"; + submit.setAttribute("class", "button-action ui-button ui-corner-all ui-widget") + submit.value = "None"; + submit.innerHTML = "Detail pacienta"; + form.appendChild(submit); + + actionsDiv.appendChild(form); +} + +var JmenoLabelDetailProfilu = document.querySelector('label[for="Pacient_Jmeno"]'); +var PrijmeniLabelDetailProfilu = document.querySelector('label[for="Pacient_Prijmeni"]'); +var CisloPojistenceDetailProfilu = document.querySelector('label[for="Pacient_CisloPojistence"]'); + +var accordionZadankyActions = document.querySelector('#accordionZadanky > div > .actions'); + +if( + JmenoLabelDetailProfilu && JmenoLabelDetailProfilu.nextElementSibling.innerText && + PrijmeniLabelDetailProfilu && PrijmeniLabelDetailProfilu.nextElementSibling.innerText && + CisloPojistenceDetailProfilu && CisloPojistenceDetailProfilu.nextElementSibling.innerText && + accordionZadankyActions +) { + var Jmeno = JmenoLabelDetailProfilu.nextElementSibling.innerText; + var Prijmeni = PrijmeniLabelDetailProfilu.nextElementSibling.innerText; + var CisloPojistence = CisloPojistenceDetailProfilu.nextElementSibling.innerText; + + var urlParams = getRegistrCUDZadankyMojeZadankyUrlParams(Jmeno, Prijmeni, CisloPojistence); + var url = getRegistrCUDZadankyMojeZadankyUrl() + "?" + urlParams.toString(); + + var link = document.createElement("a"); + link.setAttribute("class", "button-action ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only valid"); + link.setAttribute("href", url); + link.text = "Vyhledat moje žádanky"; + link.setAttribute("role", "button"); + + accordionZadankyActions.appendChild(link); +} + +var TypyTestuNazvyLabel = document.querySelector('label[for="TypyTestuNazvy"]'); +var ZadankaProvedenOdber = document.getElementById('Zadanka_ProvedenOdber'); +var ZmenaZadankyLink = document.querySelector('[id*="link_registr_cudzadanky_mojezadanky_editace"]'); + +if ( + TypyTestuNazvyLabel && + TypyTestuNazvyLabel.nextElementSibling.innerText && + ZmenaZadankyLink && + ZadankaProvedenOdber && ZadankaProvedenOdber.checked + ) { + + const IdZadanky = ZmenaZadankyLink.id.substring(ZmenaZadankyLink.id.lastIndexOf('_') + 1); + + var StornoButton = document.createElement("button"); + StornoButton.innerHTML = "Zrušení žádanky"; + StornoButton.setAttribute("id", "link_registr_cudzadanky_mojezadanky_storno_" + IdZadanky); + StornoButton.setAttribute("class", "dialog-action button-other ui-button ui-corner-all ui-widget"); + + var actions = document.querySelector('.actions'); + actions.appendChild(StornoButton); + + StornoButton.addEventListener('click', function() { + + chrome.runtime.sendMessage({ + "text": "ZrusitProvedenOdber", + "data": { + "Cislo": IdZadanky + } + }, function (resultEdit) { + + if(resultEdit) { + + var confirmZrušit = window.confirm("Opravdu chcete zrušit žádanku?"); + if (confirmZrušit == true) { + + chrome.runtime.sendMessage({ + "text": "StornoZadanka", + "data": { + "Cislo": IdZadanky + } + }, function (stornoZadanka) { + if(stornoZadanka) { + window.location.href = getRegistrCUDZadankyMojeZadankyUrl(); + } + }); + } + } + }); + } + ); +} \ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..77a1abc --- /dev/null +++ b/manifest.json @@ -0,0 +1,20 @@ +{ + "name": "PRO OC", + "version": "1.0.0", + "author": "Lukáš Drahník ", + "manifest_version": 2, + "description": "Rozšíření přidává užitečné funkce do modulu Pacienti COVID-19 a Žádanky testů COVID-19.", + "background": { + "scripts": [ "background/background.js" ], + "persistent": true + }, + "content_scripts": [{ + "matches": [ + "*://*.ksrzis.cz/*" + ], + "js": ["content/content.js"] + }], + "permissions": [ + "*://*.ksrzis.cz/*" + ] +} \ No newline at end of file diff --git a/preview/moznost_ulozit_prihlasovaci_udaje_na_zadance.PNG b/preview/moznost_ulozit_prihlasovaci_udaje_na_zadance.PNG new file mode 100644 index 0000000..1998f10 Binary files /dev/null and b/preview/moznost_ulozit_prihlasovaci_udaje_na_zadance.PNG differ diff --git a/preview/nahled.PNG b/preview/nahled.PNG new file mode 100644 index 0000000..9239420 Binary files /dev/null and b/preview/nahled.PNG differ diff --git a/preview/thumb_128x128.png b/preview/thumb_128x128.png new file mode 100644 index 0000000..fb4ab54 Binary files /dev/null and b/preview/thumb_128x128.png differ diff --git a/preview/tlaciko_detail_pacienta.PNG b/preview/tlaciko_detail_pacienta.PNG new file mode 100644 index 0000000..54bf835 Binary files /dev/null and b/preview/tlaciko_detail_pacienta.PNG differ diff --git a/preview/tlacitko_stahnout_certifikat.PNG b/preview/tlacitko_stahnout_certifikat.PNG new file mode 100644 index 0000000..44a83a7 Binary files /dev/null and b/preview/tlacitko_stahnout_certifikat.PNG differ diff --git a/preview/tlacitko_vyhledat_moje_zadanky.PNG b/preview/tlacitko_vyhledat_moje_zadanky.PNG new file mode 100644 index 0000000..ef8cd38 Binary files /dev/null and b/preview/tlacitko_vyhledat_moje_zadanky.PNG differ