<nav id="sidebarMenu" class="col-md-3 col-lg-2 d-md-block bg-light sidebar collapse"> <div class="position-sticky pt-3"> <ul class="nav flex-column"> <li class="nav-item"> <a class="nav-link {{ 'active' if request.url.path == '/-/dashboard' }}" aria-current="page" href="/-/dashboard"> <i class="bi-house-door"></i> Dashboard </a> </li> <li class="nav-item"> <a class="nav-link {{ 'active' if request.url.path == '/-/dashboard/origins' }}" aria-current="page" href="/-/dashboard/origins"> <i class="bi-pc-display-horizontal"></i> Origins <span id="origin-cnt" class="badge text-bg-secondary"></span> </a> </li> <li class="nav-item"> <a class="nav-link {{ 'active' if request.url.path == '/-/dashboard/leases' }}" aria-current="page" href="/-/dashboard/leases"> <i class="bi-layers"></i> Leases <span id="lease-cnt" class="badge text-bg-secondary"></span> </a> </li> </ul> <script type="application/javascript"> function loadLOriginCnt() { let xhr = new XMLHttpRequest(); xhr.open("GET", '/-/origins?leases=false', true); xhr.onreadystatechange = function () { if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) { const x = JSON.parse(xhr.response) document.getElementById('origin-cnt').innerHTML = x.length } }; xhr.send(); } function loadLeaseCnt() { let xhr = new XMLHttpRequest(); xhr.open("GET", '/-/leases?origin=false', true); xhr.onreadystatechange = function () { if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) { const x = JSON.parse(xhr.response) document.getElementById('lease-cnt').innerHTML = x.length } }; xhr.send(); } // load initial loadLOriginCnt() loadLeaseCnt() // refresh every 5 seconds setInterval(() => { loadLOriginCnt() loadLeaseCnt() }, 5000); </script> <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted text-uppercase"> <span>Help</span> </h6> <ul class="nav flex-column"> <li class="nav-item"> <a class="nav-link {{ 'active' if request.url.path == '/-/readme' }}" aria-current="page" href="/-/readme"> <i class="bi-question-circle"></i> Readme </a> </li> <li class="nav-item"> <a class="nav-link" aria-current="page" href="https://git.collinwebdesigns.de/oscar.krause/fastapi-dls" target="_blank"> <i class="bi-git"></i> Git Repo </a> </li> </ul> <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted text-uppercase"> <span>Integrations</span> </h6> <ul class="nav flex-column"> <li class="nav-item"> <a class="nav-link" aria-current="page" href="/-/doc" target="_blank"> <i class="bi-file-text"></i> Swagger UI </a> </li> <li class="nav-item"> <a class="nav-link" aria-current="page" href="/-/redoc" target="_blank"> <i class="bi-file-text"></i> Redoc </a> </li> <li class="nav-item"> <a class="nav-link" aria-current="page" href="/-/openapi.json" target="_blank"> <i class="bi bi-filetype-json"></i> OpenAPI JSON </a> </li> </ul> </div> </nav>