1<!DOCTYPE html> 2<html lang="no-nb"> 3 4<head> 5 <title>iSkole</title> 6 <meta charset="UTF-8"> 7 <meta name="viewport" 8 content="viewport-fit=cover, width=device-width, initial-scale=1, maximum-scale=5, minimum-scale=1.0"> 9 <meta name="theme-color" content="white" /> 10 11 <!-- ââ Boot-vakt ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 12 Appens oppstart henger pÃ¥ ressurser fra static.oracle.com: require.js, 13 bundles-config.js og Redwood-temaet. Faller CDN-en bort â filtrert 14 skolenett, proxy, DNS-trøbbel, treg linje â er `require` udefinert nÃ¥r 15 js/bundle.js kjører. Da anvendes Knockout-bindingene aldri, alle 16 oj-*-elementene rendrer ingenting, og brukeren sitter igjen med en blank 17 hvit side. Ingen feilmelding, ingen logg: verken hun eller vi fÃ¥r vite 18 noe. Det var akkurat den saken vi ikke klarte Ã¥ diagnostisere. 19 20 Vakten er ren vanilla uten avhengigheter, og stÃ¥r FÃR all annen 21 ressurslasting slik at error-lytteren (capture-fasen) ogsÃ¥ fanger 22 stilarkene og CDN-scriptene. Den avvæpnes av iskoleBootOk(), som 23 kalles rett etter ko.applyBindings i root.js â først da er appen 24 beviselig oppe. 25 26 Endres denne, endre den i alle tre PWA-ene (ansatt, elev, forelder). 27 ---------------------------------------------------------------------- --> 28
28<script> 29 (function () { 30 "use strict"; 31 try { 32 var start = Date.now(); 33 var oppe = false; 34 var vist = false; 35 var feil = []; 36 var timer = null; 37 38 // Stille død: appen booter aldri, men ingenting sier fra. Romslig, 39 // fordi en treg mobillinje er normalt og ikke skal gi falsk alarm. 40 var FRIST_STILLE = 20000; 41 // En boot-kritisk ressurs har røket. Kort frist â men ikke null, for 42 // en enkelt feilende ressurs trenger ikke være dødelig. 43 var FRIST_FEIL = 6000; 44 45 // Bare feil i det appen faktisk booter pÃ¥ skal korte fristen: script 46 // fra static.oracle.com (require.js, bundles-config.js) og fra eget 47 // domene (bundle.js, main.js), og JS-feil derfra («require is not 48 // defined»). Alt annet â bilder, stilark, fontawesome-kit blokkert av 49 // en adblocker, gstatic â noteres i diagnostikken, men fÃ¥r ikke legge 50 // «iSkole starter ikke» over en app som er pÃ¥ vei opp. (Sett 09.09: 51 // forelder brukte 26 s pÃ¥ dev, og ett 404 var nok til Ã¥ vise overlegget 52 // over en side som virket. Fjerningen ved boot gjør det til et blaff, 53 // men blaffet har en «Prøv pÃ¥ nytt»-knapp som starter alt pÃ¥ nytt.) 54 // Tom filename = cross-origin «Script error.» uten CORS â ukjent, ikke 55 // kritisk. 56 function erBootKritisk(url) { 57 if (!url) return false; 58 try { 59 var u = new URL(String(url), location.href); 60 return u.origin === location.origin || u.hostname === "static.oracle.com"; 61 } catch (e) { return false; } 62 } 63 64 function noter(type, detalj, kritisk) {
65 if (feil.length < 12) feil.push({ type: type, detalj: String(detalj || "") }); 66 if (!kritisk) return; 67 // Boot-kritisk feil er sterkt signal; kort ned fristen. 68 if (!oppe && timer !== null) { 69 var igjen = start + FRIST_FEIL - Date.now(); 70 clearTimeout(timer); 71 timer = setTimeout(sjekk, igjen > 0 ? igjen : 0); 72 } 73 } 74 75 // Ressursfeil (script/link/img) bobler ikke â de mÃ¥ fanges i capture. 76 window.addEventListener("error", function (e) { 77 if (e && e.target && e.target !== window && (e.target.src || e.target.href)) { 78 var url = e.target.src || e.target.href; 79 var tag = String(e.target.tagName || "").toUpperCase(); 80 noter("ressurs", url, tag === "SCRIPT" && erBootKritisk(url)); 81 } else if (e && e.message) { 82 noter("js", e.message + " @ " + (e.filename || "?") + ":" + (e.lineno || 0), 83 erBootKritisk(e.filename)); 84 } 85 }, true); 86 87 window.addEventListener("unhandledrejection", function (e) { 88 noter("promise", (e && e.reason && (e.reason.message || e.reason)) || "ukjent", false); 89 }); 90 91 function detaljer() { 92 var sw = "nei"; 93 try { 94 if (navigator.serviceWorker && navigator.serviceWorker.controller) { 95 sw = navigator.serviceWorker.controller.scriptURL; 96 } 97 } catch (e) { sw = "utilgjengelig"; } 98 var linjer = [ 99 "iSkole boot-vakt", 100 "tid: " + new Date().toISOString(), 101 "side: " + location.pathname, 102 "ventet: " + Math.round((Date.now() - start) / 1000) + " s", 103 "require: " + (typeof window.require === "undefined" ? "IKKE LASTET" : "lastet"), 104 "define: " + (typeof window.define === "undefined" ? "IKKE LASTET" : "lastet"), 105 "online: " + (navigator.onLine ? "ja" : "nei"), 106 "sw: " + sw, 107 "nettleser: " + navigator.userAgent 108 ]; 109 if (feil.length) { 110 linjer.push(""); 111 linjer.push("feil:"); 112 for (var i = 0; i < feil.length; i++) { 113 linjer.push(" [" + feil[i].type + "] " + feil[i].detalj); 114 } 115 } 116 return linjer.join("\n"); 117 } 118 119 var overlegg = null; 120 121 function vis() { 122 if (vist) return; 123 vist = true; 124 125 var tekst = detaljer(); 126 try { console.error(tekst); } catch (e) { /* no-op */ } 127 128 // Alt bygges med DOM-API og inline stil: temaet er nettopp det som 129 // kan mangle, sÃ¥ vi kan ikke lÃ¥ne en eneste CSS-klasse av appen. 130 var d = document; 131 var bak = d.createElement("div"); 132 bak.setAttribute("role", "alertdialog"); 133 bak.setAttribute("aria-label", "iSkole starter ikke"); 134 bak.style.cssText = "position:fixed;inset:0;z-index:2147483647;" + 135 "background:#f6f9fa;color:#182e38;overflow:auto;" + 136 "font:16px/1.5 system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;" + 137 "display:flex;align-items:center;justify-content:center;padding:24px"; 138 139 var kort = d.createElement("div"); 140 kort.style.cssText = "max-width:560px;width:100%;background:#fff;" + 141 "border:1px solid #dbe6ec;border-radius:12px;padding:28px;" + 142 "box-shadow:0 8px 24px rgba(24,46,56,.07)"; 143 144 var h = d.createElement("h1"); 145 h.textContent = "iSkole starter ikke"; 146 h.style.cssText = "margin:0 0 12px;font-size:22px;font-weight:600"; 147 148 var p1 = d.createElement("p"); 149 p1.textContent = "Vi fikk ikke lastet ned alt appen trenger. Det " + 150 "skyldes som regel nettverket â et skolenett eller en " + 151 "brannmur som blokkerer, eller en ustabil forbindelse."; 152 p1.style.cssText = "margin:0 0 12px"; 153 154 var p2 = d.createElement("p"); 155 p2.textContent = "Prøv pÃ¥ nytt. Hjelper det ikke, " + 156 "prøv et annet nett â for eksempel mobildata i stedet " + 157 "for trÃ¥dløst."; 158 p2.style.cssText = "margin:0 0 20px"; 159 160 var rad = d.createElement("div"); 161 rad.style.cssText = "display:flex;flex-wrap:wrap;gap:10px;align-items:center"; 162 163 var knapp = d.createElement("button"); 164 knapp.type = "button"; 165 knapp.textContent = "Prøv pÃ¥ nytt"; 166 knapp.style.cssText = "background:#227e9e;color:#fff;border:0;" + 167 "border-radius:8px;padding:11px 20px;font:inherit;font-weight:600;" +
168 "cursor:pointer"; 169 knapp.onclick = function () { location.reload(); }; 170 171 var kopi = d.createElement("button"); 172 kopi.type = "button"; 173 kopi.textContent = "Kopier detaljer"; 174 kopi.style.cssText = "background:#fff;color:#227e9e;" + 175 "border:1px solid #227e9e;border-radius:8px;padding:10px 18px;" + 176 "font:inherit;cursor:pointer"; 177 kopi.onclick = function () { 178 var ok = function () { kopi.textContent = "Kopiert"; }; 179 try { 180 if (navigator.clipboard && navigator.clipboard.writeText) { 181 navigator.clipboard.writeText(tekst).then(ok, velg); 182 } else { velg(); } 183 } catch (e) { velg(); } 184 }; 185 186 var detalj = d.createElement("details"); 187 detalj.style.cssText = "margin-top:20px"; 188 var sum = d.createElement("summary"); 189 sum.textContent = "Teknisk informasjon"; 190 sum.style.cssText = "cursor:pointer;color:#4d6572;font-size:14px"; 191 var pre = d.createElement("pre"); 192 pre.textContent = tekst; 193 pre.style.cssText = "margin:12px 0 0;padding:12px;background:#f6f9fa;" + 194 "border:1px solid #dbe6ec;border-radius:8px;font:12px/1.45 " + 195 "ui-monospace,'SF Mono',Menlo,Consolas,monospace;white-space:pre-wrap;" + 196 "word-break:break-word;max-height:40vh;overflow:auto"; 197 198 function velg() { 199 try { 200 detalj.open = true; 201 var r = d.createRange(); 202 r.selectNodeContents(pre); 203 var s = window.getSelection(); 204 s.removeAllRanges(); 205 s.addRange(r); 206 kopi.textContent = "Merket â kopier med Ctrl/Cmd+C"; 207 } catch (e) { /* no-op */ } 208 } 209 210 var hjelp = d.createElement("p"); 211 hjelp.textContent = "Meld gjerne fra til skolen din, og ta med " + 212 "informasjonen over â den forteller oss hva som feilet."; 213 hjelp.style.cssText = "margin:20px 0 0;font-size:14px;color:#4d6572"; 214 215 rad.appendChild(knapp); 216 rad.appendChild(kopi); 217 detalj.appendChild(sum); 218 detalj.appendChild(pre); 219 kort.appendChild(h); 220 kort.appendChild(p1); 221 kort.appendChild(p2); 222 kort.appendChild(rad); 223 kort.appendChild(detalj); 224 kort.appendChild(hjelp); 225 bak.appendChild(kort); 226 (d.body || d.documentElement).appendChild(bak); 227 overlegg = bak; 228 } 229 230 function sjekk() { 231 timer = null; 232 if (oppe) return; 233 vis(); 234 } 235 236 // Kalles fra root.js rett etter ko.applyBindings. 237 // 238 // Fjerner overlegget hvis det ALLEREDE er vist: en treg, men vellykket 239 // oppstart skal ikke etterlate en feilmelding over en app som virker. 240 // (Sett i drift 2026-09-09: forelder-appen brukte 26 s paa dev, rendret 241 // ferdig bak overlegget, og brukeren satt igjen med «iSkole starter 242 // ikke» over en fullt fungerende side.) Fristen er dermed ikke lenger 243 // kritisk â den bommer i verste fall i noen sekunder. 244 window.iskoleBootOk = function () { 245 oppe = true; 246 if (timer !== null) { clearTimeout(timer); timer = null; } 247 if (overlegg && overlegg.parentNode) { 248 overlegg.parentNode.removeChild(overlegg); 249 } 250 overlegg = null; 251 vist = false; 252 }; 253 254 timer = setTimeout(sjekk, FRIST_STILLE); 255 } catch (e) { 256 // Vakten skal aldri være grunnen til at siden ikke virker. 257 } 258 })(); 259 </script>
259 260 261 <meta name="Description" content="Elevapplikasjon for iSkole - skoleadministrativt system."> 262 <link rel="icon" href="css/images/iskole.ico" type="image/x-icon" /> 263 <link rel="manifest" href="manifest.json"> 264 <link rel="apple-touch-icon" href="css/images/iskole-152.png"> 265 <!-- This is the main css file for the default Alta theme --> 266<!-- injector:theme --> 267<link rel="stylesheet" href="https://static.oracle.com/cdn/jet/20.1.0/default/css/redwood/oj-redwood-min.css" id="basestyles" /> 268<link rel="stylesheet" href="https://static.oracle.com/cdn/jet/20.1.0/3rdparty/oraclejet-preact/amd/Theme-redwood/theme.css" id="themestyle" /> 269<!-- endinjector --> 270 271 272 <!-- This contains icon fonts used by the starter template --> 273 <!-- <link rel="stylesheet" href="css/demo-alta-site-min.css" type="text/css" /> --> 274 275 <!-- This is where you would add any app specific styling --> 276 <link rel="stylesheet" href="css/app.css?v=4" type="text/css" /> 277 <link rel="stylesheet" href="css/login-main.css" type="text/css" /> 278 <link rel="stylesheet" href="js/libs/@mobiscroll/javascript/dist/css/mobiscroll.min.css"> 279 <link rel="stylesheet" href="js/libs/@mobiscroll/print/dist/css/mobiscroll.min.css"> 280
280<script src="https://kit.fontawesome.com/79234c5682.js" crossorigin="anonymous"></script>
280 281
281<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-app.js"></script>
281 282
282<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-messaging.js"></script>
282 283
283<script src="firebase-onMessage.js"></script>
283 284</head> 285 286<body class="oj-web-applayout-body"> 287 <div id="globalBody" class="oj-offcanvas-outer-wrapper oj-offcanvas-page"> 288 <div id="announce" tabindex="-1" class="sendOffScreen" :aria-live="[[manner]]" aria-atomic="true"> 289 <p id="ariaLiveMessage"> 290 <oj-bind-text value="[[message]]"></oj-bind-text> 291 </p> 292 </div> 293 294 295 <div id="pageContent" class="oj-web-applayout-page"> 296 <!-- 297 ** Oracle JET V10.0.0 web application header pattern. 298 ** Please see the demos under Cookbook/Patterns/App Shell: Web 299 ** and the CSS documentation under Support/API Docs/Non-Component Styling 300 ** on the JET website for more information on how to use this pattern. 301 --> 302 <oj-c-message-toast id="msg1" data="[[message_provider]]" position="top" on-oj-close="[[closeMessageHandler]]"> 303 </oj-c-message-toast> 304 <div id="versionDisplay" 305 :class="[[localSwVersionUptodate() ? 'localSwVersionUptodate' : 'localSwVersionOutofdate']]"> 306 <!-- <i id="refreshPageBtn" class="fas fa-refresh oj-icon-color-info fa-1x" style="cursor:pointer;"></i>Klikk her for å laste inn nye endringer --> 307 <span id="localSwVersion"> 308 Lukk nettleseren for å aktivere ny versjon av iSkole. 309 <!-- 310 <oj-bind-text value="[[localSwVersionUptodate() ? localSwVersion() : localSwVersion() + '(Utdatert)']]"> 311 </oj-bind-text> --> 312 </span> 313 <!-- Tooltip --> 314 <span id="versionTooltip" class="versionTooltip"> 315 <oj-bind-if test="[[!localSwVersionUptodate()]]"> 316 <div class="versionTooltip-header">Aktiver ny versjon</div> 317 <div class="versionTooltip-body">Lukk nettleseren for å aktivere den nye versjonen.</div> 318 </oj-bind-if> 319 <oj-bind-if test="[[localSwVersionUptodate()]]"> 320 <div class="versionTooltip-header">Versjon <oj-bind-text value="[[localSwVersion()]]"></oj-bind-text> </div> 321 <div class="versionTooltip-body">Du bruker den nyeste versjonen av iSkole.</div> 322 </oj-bind-if> 323 </span> 324 </div> 325 <header role="banner" class="oj-web-applayout-header" :style.display="[[isLoggedIn() ? null : 'none']]"> 326 <div class="oj-flex-bar oj-sm-align-items-center"> 327 <!-- Offcanvas toggle button --> 328 <div class="oj-flex-bar-start"> 329 <oj-bind-if test="[[isLoggedIn()]]"> 330 <oj-c-button id="drawerToggleButton" class="oj-c-button-lg" on-oj-action="[[startToggle]]" 331 chroming="borderless" display="icons" label="Meny"> 332 <span slot="startIcon" class="oj-web-applayout-offcanvas-icon"></span> 333 </oj-c-button> 334 </oj-bind-if> 335 </div> 336 <div class="oj-flex-bar-middle oj-sm-align-items-baseline"> 337 <img class="oj-sm-only-hide" :src="[[logoiskole()]]" alt="Logo" height="58px" /> 338 <h1 class="oj-sm-only-hide oj-web-applayout-header-title oj-sm-padding-3x-start" title="Ap
338plication Name"> 339 <oj-bind-text value="[[appName]]"></oj-bind-text> 340 </h1> 341 </div> 342 <div class="oj-flex-bar-middle oj-sm-align-items-center oj-sm-justify-content-space-between"> 343 <div class="oj-line-clamp-1 oj-typography-subheading-lg"> 344 <oj-bind-text value="[[moduleNameTxt]]"></oj-bind-text> 345 </div> 346 </div> 347 <div class="oj-flex-bar-end"> 348 <!-- Responsive Toolbar --> 349 <oj-c-menu-button id="userMenu" display="[[smScreen() ? 'icons' : 'all']]" chroming="borderless" 350 items="[[profile_menu]]" label="[[userLogin]]" on-oj-menu-action="[[menuItemAction]]" size="lg"> 351 <span slot="startIcon" 352 class="fas fa-user-circle fa-1x"></span> 353 </oj-c-menu-button> 354 <div id="ny_popup1_id" class="ny_popup1"> 355 <div class="ny_popup1-arrow-border"></div> 356 <div class="ny_popup1-arrow"></div> 357 <div class="ny_popup1-content"> 358 <button id="close-ny_popup1" class="close-ny_popup1"> 359 <i class="fas fa-times"></i> 360 </button> 361 <p class="oj-sm-margin-2x-top"> 362 <i class="fas fa-circle-info oj-icon-color-info fa-1x"></i> Ny funksjonalitet i innstillinger.<br> Klikk på <oj-bind-text 363 value="[[!isSmall() ? 'navnet ditt' : 'profil-ikonet']]"></oj-bind-text> for å se valg. 364 </p> 365 <a href="#" on-click="[[setDontShowPopupAgainCookie]]" 366 class="oj-sm-margin-2x-top oj-typography-body-sm" style="float:right;"> 367 Lukk og ikke vis igjen 368 </a> 369 </div> 370 </div> 371 </div> 372 </div> 373 <div role="navigation" class="oj-web-applayout-max-width oj-web-applayout-navbar"> 374 375 </div> 376 </header> 377 378 <!-- <div id="navDrawer" role="navigation" class="oj-contrast-marker oj-web-applayout-offcanvas oj-offcanvas-start"></div> --> 379 <oj-drawer-layout start-opened="[[startOpened]]" on-start-opened-changed="[[startOpenedChangedHandler]]" 380 class="height_minus_header"> 381 382 <div id="id_main_module"> 383 <!-- Main module --> 384 <!-- Gammel --> 385 <!-- <oj-module role="main" config="[[moduleConfig]]"> </oj-module> --> 386 <!-- Ny --> 387 <oj-module role="main" config="[[moduleAdapter.koObservableConfig]]"> </oj-module> 388 <!-- Main module slutt --> 389 </div> 390 391 392 <div slot="start" :class="[[menuColorClass()]]" role="navigation" 393 id="demodrawerstart"> 394 <div class="demo-drawer-header oj-flex-bar"> 395 <div class="oj-flex-bar-start"> 396 <h6>Meny</h6> 397 </div> 398 <div class="oj-flex-bar-end"> 399 <oj-c-button display='icons' chroming='borderless' on-oj-action='[[invertMenuColor]]' label="Inverter farger"> 400 <span slot='startIcon' class='fa-solid fa-eye-dropper-half' 401 style="font-size: 20px; float: right !important;"></span> 402 </oj-c-button> 403 <oj-bind-if test="[[!isSmall()]]"> 404 <oj-bind-if test="[[stickyMenu() == true]]"> 405 <oj-c-button display='icons' id="stickyMenyBtn1" chroming='borderless' on-oj-action='[[setSticky]]' label="Løsne menyen"> 406 <span slot='startIcon' class="fa-solid fa-lock" style="font-size: 20px;"></span> 407 </oj-c-button> 408 </oj-bind-if> 409 <oj-bind-if test="[[stickyMenu() == false]]"> 410 <oj-c-button display='icons' id="stickyMenyBtn2" chroming='borderless' on-oj-action='[[setSticky]]' label="Fest menyen"> 411 <span slot='startIcon' class="fa-solid fa-lock-keyhole-open" style="font-size: 20px;"></span> 412 </oj-c-button> 413 </oj-bind-if> 414 </oj-bind-if> 415 <oj-c-button display='icons' chroming='borderless' on-oj-action='[[startToggle]]' label="Lukk meny"> 416 <span slot='startIcon' class='fa-solid fa-xmark'></span> 417 </oj-c-button> 418 </div> 419 </div> 420 <!-- Selve menyen --> 421 <oj-navigation-list id="navDrawerList" role="navigation" data="[[navDataProvider]]" drill-mode="collapsible" 422 on-click="[[menuSelectionChange]]" selection="{{selection.path}}" 423 on-selection-changed="[[menuSelectionChange]]" :class="[[colorClassMenuLabels]]"> 424 425 <template slot="itemTemplate" data-oj-as="item"> 426 <li :class="[[item.data.class]]"> 427 <a href="#"> 428 <oj-bind-if test="[[item.data.count]]">
429 <span class="oj-navigationlist-item-end"><span class="oj-badge oj-badge-danger"> 430 <oj-bind-text value="[[item.data.count]]"> 431 </oj-bind-text> 432 </span></span> 433 </oj-bind-if> 434 <span :class="[['oj-navigationlist-item-icon ' + item.data.iconClass]]"></span> 435 <oj-bind-text value="[[item.data.name]]"> </oj-bind-text> 436 </a> 437 </li> 438 </template> 439 </oj-navigation-list> 440 </oj-drawer-layout> 441 442 <!-- Drawer ferdig --> 443 444 <oj-dialog cancel-behavior='icon' style="display:none;width: 80vw; max-width: 500px;" id="skoler_dialog" 445 dialog-title="Bytt skole"> 446 <div slot="body"> 447 <oj-list-view id="lw_skoler" aria-label="Skoler" data="[[skolerProvider]]" 448 gridlines.item="visible" class="oj-sm-padding-2x-vertical" 449 selected="{{selectorSelectedItems}}" selection-mode="single" on-oj-item-action="[[ok_bytt_skole]]"> 450 <template slot="itemTemplate" data-oj-as="item"> 451 <oj-c-list-item-layout> 452 <div class="oj-typography-body-md"> 453 <img :src="[['data:image/png;base64,' + item.data.Logo]]" alt="Logo" height="58px" /> 454 <oj-bind-text value="[[item.data.Skolenavn]]"></oj-bind-text> 455 </div> 456 </oj-c-list-item-layout> 457 </template> 458 </oj-list-view> 459 </div> 460 <div slot="footer"> 461 <oj-c-button id="okButton" on-oj-action="[[lukk_skoler_dialog]]" label="Lukk"></oj-c-button> 462 </div> 463 </oj-dialog> 464 465 <!-- Hva er nytt dialog --> 466 <oj-dialog cancel-behavior="icon" style="display:none;width: 80vw; max-width: 500px;" id="whats_new_dialog" 467 dialog-title="Hva er nytt?"> 468 <div slot="body"> 469 <div class="oj-sm-padding-2x"> 470 <oj-bind-for-each data="[[whatsNewItems]]"> 471 <template> 472 <div class="oj-sm-padding-2x-bottom"> 473 <div class="oj-typography-subheading-sm oj-sm-padding-1x-bottom"> 474 <span class="fas fa-sparkles oj-icon-color-warning oj-sm-padding-1x-end"></span> 475 <oj-bind-text value="[[$current.data.title]]"></oj-bind-text> 476 </div> 477 <div class="oj-typography-body-md"> 478 <oj-bind-text value="[[$current.data.description]]"></oj-bind-text> 479 </div> 480 </div> 481 </template> 482 </oj-bind-for-each> 483 </div> 484 </div> 485 <div slot="footer"> 486 <oj-c-button id="btnCloseWhatsNew" on-oj-action="[[closeWhatsNew]]" label="Lukk"></oj-c-button> 487 </div> 488 </oj-dialog> 489 </div> 490 491 492 <!-- This injects script tags for the main javascript files --> 493<!-- injector:scripts -->
494<script type='text/javascript' src='https://static.oracle.com/cdn/jet/20.1.0/3rdparty/require/require.js'></script>
vendor: 1 bytes, line 494
494
495<script type='text/javascript' src='https://static.oracle.com/cdn/jet/20.1.0/default/js/bundles-config.js'></script>
vendor: 1 bytes, line 495
495
496<script type='text/javascript' src='js/bundle.js'></script>
496 497<!-- endinjector --> 498 499 <!--
499<script> 500 var prevScrollpos = window.pageYOffset; 501 window.onscroll = function() { 502 var currentScrollPos = window.pageYOffset; 503 //console.log(currentScrollPos) 504 if (prevScrollpos > currentScrollPos) { 505 document.getElementById("navbar").style.top = "0"; 506 } else { 507 document.getElementById("navbar").style.top = "-58px"; 508 } 509 prevScrollpos = currentScrollPos; 510 } 511 </script>
511 --> 512</body> 513 514</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.