diff options
author | Ernesto Castellotti <mail@ernestocastellotti.it> | 2023-01-12 00:41:15 +0100 |
---|---|---|
committer | Simone <26844016+simonebortolin@users.noreply.github.com> | 2023-01-12 01:03:22 +0100 |
commit | e6ce89dfcc8b3a2a8016e011f3d7894bc5cf2747 (patch) | |
tree | 36ef026c388ce9bdddcda6b5bd9948e63efff954 /_includes/root_lantiq.html | |
parent | Remove outputErrorCallback from openPortLineBreak (diff) | |
download | hack-gpon.github.io-e6ce89dfcc8b3a2a8016e011f3d7894bc5cf2747.tar hack-gpon.github.io-e6ce89dfcc8b3a2a8016e011f3d7894bc5cf2747.tar.gz hack-gpon.github.io-e6ce89dfcc8b3a2a8016e011f3d7894bc5cf2747.tar.bz2 hack-gpon.github.io-e6ce89dfcc8b3a2a8016e011f3d7894bc5cf2747.tar.lz hack-gpon.github.io-e6ce89dfcc8b3a2a8016e011f3d7894bc5cf2747.tar.xz hack-gpon.github.io-e6ce89dfcc8b3a2a8016e011f3d7894bc5cf2747.tar.zst hack-gpon.github.io-e6ce89dfcc8b3a2a8016e011f3d7894bc5cf2747.zip |
Diffstat (limited to '_includes/root_lantiq.html')
-rw-r--r-- | _includes/root_lantiq.html | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/_includes/root_lantiq.html b/_includes/root_lantiq.html new file mode 100644 index 0000000..5230a78 --- /dev/null +++ b/_includes/root_lantiq.html @@ -0,0 +1,160 @@ +<div class="modal" data-jtd-modal="root-modal" data-jtd-modal-backdrop="static" id="root-modal"> + <div class="modal-content"> + <div class="modal-header"> + <span class="close">×</span> + <h2>Root status</h2> + </div> + <div class="modal-body" style="display:flex"> +{% if include.unlockHuaweiShell %} + <div class="animated" id="root-step-1" style="width:50%"> +{% else %} + <div class="animated" id="root-step-1" style="width:100%"> +{% endif %} + <p>Step 1</p> + <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 130.2 130.2"> + <circle class="path circle" fill="none" stroke="currentColor" stroke-width="6" stroke-miterlimit="10" cx="65.1" cy="65.1" r="62.1"/> + <polyline class="path check success" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" points="100.2,40.2 51.5,88.8 29.8,67.5 "/> + <line class="path line error" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" x1="34.4" y1="37.9" x2="95.8" y2="92.3"/> + <line class="path line error" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" x1="95.8" y1="38" x2="34.4" y2="92.2"/> + <line class="path line pause" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" x1="34.4" y1="37.9" x2="95.8" y2="92.3"/> + <line class="path line pause" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" x1="95.8" y1="38" x2="34.4" y2="92.2"/> + </svg> + <p id="root-text-step-1"></p> + </div> + +{% if include.unlockHuaweiShell %} + <div class="animated" id="root-step-2" style="width:50%" > + <p>Step 2</p> + <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 130.2 130.2"> + <circle class="path circle" fill="none" stroke="currentColor" stroke-width="6" stroke-miterlimit="10" cx="65.1" cy="65.1" r="62.1"/> + <polyline class="path check success" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" points="100.2,40.2 51.5,88.8 29.8,67.5 "/> + <line class="path line error" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" x1="34.4" y1="37.9" x2="95.8" y2="92.3"/> + <line class="path line error" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" x1="95.8" y1="38" x2="34.4" y2="92.2"/> + <line class="path line pause" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" x1="49.4" y1="37.9" x2="49.4" y2="92.3"/> + <line class="path line pause" fill="none" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-miterlimit="10" x1="80.8" y1="38" x2="80.8" y2="92.2"/> + </svg> + <p id="root-text-step-2"></p> + </div> +{% endif %} + </div> + </div> +</div> +<script type="text/javascript" src="/assets/js/serialUtil.js"></script> +<script type="text/javascript" src="/assets/js/rootLantiq.js"></script> +<script> + if ('serial' in navigator) { + document.getElementById('start-button').disabled = false; + } else { + document.getElementById('browser-error').style.display = 'block'; + } + const acontroller = new AbortController(); + const cs = acontroller.signal; + + let rootModal = document.getElementById("root-modal"); + + let rootStep = [document.getElementById('root-step-1')]; + + if ({{include.unlockHuaweiShell}}) { + rootStep.push(document.getElementById('root-step-2')); + } + + let rootStepText = [document.getElementById('root-text-step-1')]; + + if ({{include.unlockHuaweiShell}}) { + rootStepText.push(document.getElementById('root-text-step-2')); + } + + rootModal.addEventListener('modal-jtd-close', async function(event) { + acontroller.abort(); + }); + rootModal.addEventListener('modal-jtd-open', async function(event) { + root({signal: cs}); + }); + function pause(message, i) { + rootStep[i].classList.add('pause'); + rootStep[i].classList.remove('complete'); + rootStep[i].classList.remove('loading'); + rootStep[i].classList.remove('error'); + rootStep[i].classList.remove('success'); + rootStepText[i].textContent = message; + } + function loading(message, i) { + rootStep[i].classList.remove('pause'); + rootStep[i].classList.remove('complete'); + rootStep[i].classList.add('loading'); + rootStep[i].classList.remove('error'); + rootStep[i].classList.remove('success'); + rootStepText[i].textContent = message; + } + function showError(message, i) { + rootStep[i].classList.remove('pause'); + rootStep[i].classList.remove('complete'); + rootStep[i].classList.remove('success'); + rootStep[i].classList.remove('loading'); + rootStep[i].classList.add('error'); + rootStepText[i].textContent = message; + } + function showSuccess(message, i) { + rootStep[i].classList.remove('pause'); + rootStep[i].classList.remove('error'); + rootStep[i].classList.remove('loading'); + rootStep[i].classList.remove('complete'); + rootStep[i].classList.add('success'); + rootStepText[i].textContent = message; + } + async function root({ signal } = {}) { + loading("Waiting for the user to choose the port",0); + + if ({{include.unlockHuaweiShell}}) { + pause("",1); + } + + let port; + try { + port = await navigator.serial.requestPort(); + } catch (err) { + showError(`Error: ${err.message}`,0); + console.log(`Error: ${err.message}\n`); + return; + } + if (!port) { + showError('Error: port not open',0); + console.log('Error: port not open\n'); + return; + } + + let result = await lantiqRootUboot(port, "Huawei MA5671A", + (msg) => { + loading(msg, 0); + }, + (err) => { + showError(err, 0); + console.log(err); + } + ); + + if (result) { + showSuccess("Congratulations! Step completed.", 0); + } else { + return; + } + + if (!{{include.unlockHuaweiShell}}) { + return; + } + + result = await unlockHuaweiShell(port, + (msg) => { + loading(msg, 1); + }, + (err) => { + showError(err, 1); + console.log(err); + } + ); + + if (result) { + showSuccess("Congratulations! Step completed.", 1); + } + } +</script> |