8a9fd36f33
ci / typecheck (map[dir:apps/booking name:booking]) (push) Has been cancelled
ci / typecheck (map[dir:apps/portal name:portal]) (push) Has been cancelled
ci / typecheck (map[dir:apps/website name:website]) (push) Has been cancelled
ci / typecheck (map[dir:services/platform-api name:platform-api]) (push) Has been cancelled
ci / test (push) Has been cancelled
Skin OCIS web in the dezky brand so users don't see ownCloud/Infinite Scale.
- Custom theme.json (WEB_UI_THEME_PATH + WEB_ASSET_THEMES_PATH): dezky name,
slogan, logos (light wordmark for the dark top bar, dark wordmark for the
light login, favicon), and the full dezky palette — carbon chrome, signal
yellow as a sparing accent, paper/bone surfaces, dezky semantic colours
- Pin the light theme as default (single variant) so OS-dark / auto-system
always resolves to it
- Override only index.html via WEB_ASSET_CORE_PATH (OCIS falls back to the
embedded core per-file): hide the ".versions" footer ("Infinite Scale … /
ownCloud Web UI …") and set the pre-hydration <title>/theme-color to dezky
Apache-2.0 lets us drop the ownCloud marks without trademark fees. NOTE:
index.html pins the built bundle hashes — refresh it after an OCIS image bump.
185 lines
9.0 KiB
HTML
185 lines
9.0 KiB
HTML
<!DOCTYPE html><html lang="en"><head><base href="/"/>
|
|
<script>window.WEB_APPS_MAP = {"web-app-activities":"./web-app-activities-C6-nUzaG.mjs","web-app-admin-settings":"./web-app-admin-settings-eamF9H1m.mjs","web-app-epub-reader":"./web-app-epub-reader-CBWsf2Xc.mjs","web-app-external":"./web-app-external-CThGwBtU.mjs","web-app-files":"./web-app-files-jkl0xRBD.mjs","web-app-ocm":"./web-app-ocm-jjhlU3lY.mjs","web-app-pdf-viewer":"./web-app-pdf-viewer-CogKBhpf.mjs","web-app-preview":"./web-app-preview-DpHPMA7r.mjs","web-app-search":"./web-app-search-Bozc2TEu.mjs","web-app-text-editor":"./web-app-text-editor-BogOmQ6Y.mjs","web-app-webfinger":"./web-app-webfinger-CpqRkzON.mjs","web-app-app-store":"./web-app-app-store-C5GXswMi.mjs"}</script>
|
|
|
|
<meta charset="utf-8"/>
|
|
<meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0"/>
|
|
<meta name="theme-color" content="#0A0A0A"/>
|
|
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
|
|
|
|
<title>dezky</title>
|
|
<link rel="manifest" href="manifest.json" crossorigin="use-credentials"/>
|
|
|
|
<script src="js/require.js?1738922102603"></script>
|
|
|
|
<style>
|
|
html,
|
|
body {
|
|
height: 100%;
|
|
}
|
|
.splash-banner {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
align-items: center;
|
|
padding: 0.5rem;
|
|
height: 100%;
|
|
}
|
|
.splash-hide {
|
|
display: none;
|
|
}
|
|
#loading {
|
|
display: inline-block;
|
|
height: 34px;
|
|
width: 34px;
|
|
border: 1px solid #4c5f79;
|
|
border-radius: 50%;
|
|
border-top-color: #fff;
|
|
animation: spin 1s ease-in-out infinite;
|
|
-webkit-animation: spin 1s linear infinite;
|
|
}
|
|
#splash-incompatible button {
|
|
margin: 30px 0;
|
|
}
|
|
|
|
@keyframes spin {
|
|
to {
|
|
-webkit-transform: rotate(360deg);
|
|
}
|
|
}
|
|
@-webkit-keyframes spin {
|
|
to {
|
|
-webkit-transform: rotate(360deg);
|
|
}
|
|
}
|
|
</style>
|
|
<script type="module" crossorigin="" src="./js/index.html-BfHVxEh5.mjs"></script>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/PortalTarget.vue_vue_type_script_lang-B4CXey58.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/useRouteMeta-Bh7r1NIY.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/ActionMenuItem-B0-kRumC.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/SpaceInfo-D4uuC6fC.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/datetime-B9EP4faS.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/Pagination-CYuct762.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/useScrollTo-Dj6n8_Gk.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/call-DmED1Wyl.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/FileSideBar-DSEMZK9y.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/omit-T5kFvVmu.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/useGroupingSettings-CJ2TLaEi.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/AppLoadingSpinner-DHn2sj0e.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/useAuthService-cMinPPtZ.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/isEmpty-DuLEwVXA.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/useOpenEmptyEditor-CXV5M0VW.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/useAppDefaults-CNbR4RxQ.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/AppWrapperRoute-DNMI9jAd.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/useAppProviderService-CP821-Jy.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/types-BoCZvwvE.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/CompareSaveDialog-CJbQ2zGC.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/index-D6yFbeGx.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/fuse-Cqy8O5rp.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/ItemFilter-D0B0bwfQ.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/NoContentMessage-BpxTDAzR.mjs"/>
|
|
<link rel="modulepreload" crossorigin="" href="./js/chunks/SearchBarFilter-On9swWiz.mjs"/>
|
|
<link rel="stylesheet" crossorigin="" href="./assets/style-D1bLdTZ9.css"/>
|
|
<style id="dezky-overrides">.versions{display:none!important}</style></head>
|
|
<body>
|
|
<div id="splash-incompatible" class="splash-banner splash-hide">
|
|
<div class="oc-card oc-border oc-rounded oc-width-large oc-text-center">
|
|
<div class="oc-card-header">
|
|
<div class="oc-flex oc-flex-middle oc-flex-center">
|
|
<span class="oc-mr-s oc-icon oc-icon-m oc-icon-warning">
|
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
|
|
<g xmlns="http://www.w3.org/2000/svg">
|
|
<path fill="none" d="M0 0h24v24H0z"></path>
|
|
<path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM11 7h2v2h-2V7zm0 4h2v6h-2v-6z"></path>
|
|
</g>
|
|
</svg>
|
|
</span>
|
|
<h2>Your browser is not supported</h2>
|
|
</div>
|
|
</div>
|
|
<div class="oc-card-body oc-link-resolve-error-message">
|
|
<p>Your browser version is considered old and might not work correctly.</p>
|
|
<p>We recommend you update to a newer version.</p>
|
|
</div>
|
|
</div>
|
|
<button class="oc-button oc-button-primary oc-button-primary-filled oc-rounded" onclick="forceOldBrowser()">
|
|
I want to continue anyway
|
|
</button>
|
|
|
|
</div>
|
|
<div id="splash-loading" class="splash-banner splash-hide">
|
|
<div id="loading"></div>
|
|
</div>
|
|
<div id="owncloud"></div>
|
|
<noscript>
|
|
<div class="splash-banner"><h3>Please enable JavaScript</h3></div>
|
|
</noscript>
|
|
<script>
|
|
function runtimeLoaded() {}
|
|
|
|
var loader = document.getElementById('splash-loading')
|
|
var browserError = document.getElementById('splash-incompatible')
|
|
|
|
var loaderTimer = setTimeout(function () {
|
|
loader.classList.remove('splash-hide')
|
|
}, 500);
|
|
|
|
function displayError() {
|
|
loader.classList.remove('splash-hide')
|
|
loader.innerHTML = "<h3>Oops. Something went wrong.</h3>"
|
|
}
|
|
|
|
function displayBrowserError() {
|
|
clearTimeout(loaderTimer)
|
|
removeLoadingSpinner()
|
|
browserError.classList.remove('splash-hide')
|
|
}
|
|
|
|
function forceOldBrowser() {
|
|
localStorage.setItem("forceAllowOldBrowser", JSON.stringify({expiry: new Date().getTime() + 30*24*60*60*1000}))
|
|
browserError.classList.add('splash-hide')
|
|
init()
|
|
}
|
|
|
|
function removeLoadingSpinner() {
|
|
if (!loader.classList.contains('splash-hide')) {
|
|
loader.classList.add('splash-hide')
|
|
}
|
|
}
|
|
|
|
function init() {
|
|
if (typeof requirejs === 'undefined') {
|
|
displayError()
|
|
} else {
|
|
window.runtimeLoaded = function(runtime) {
|
|
clearTimeout(loaderTimer)
|
|
runtime.bootstrapApp('config.json', removeLoadingSpinner).catch((error) => {
|
|
removeLoadingSpinner()
|
|
runtime.bootstrapErrorApp(error)
|
|
})
|
|
}
|
|
}
|
|
}
|
|
|
|
const supportedBrowsers = /Edge?\/(12[2-9]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[5-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(109|1[1-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(16\.([6-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(10[89]|1[1-9]\d|[2-9]\d{2}|\d{4,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(1{2}[._]\d+|(1[2-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](13[2-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(13[2-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[2-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(2[4-9]|[3-9]\d|\d{3,})\.\d+|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)/
|
|
const forceAllowOldBrowser = localStorage.getItem("forceAllowOldBrowser") || false
|
|
const validForceAllowOldBrowser = forceAllowOldBrowser && JSON.parse(localStorage.getItem("forceAllowOldBrowser")).expiry > new Date().getTime()
|
|
|
|
if (forceAllowOldBrowser && !validForceAllowOldBrowser)
|
|
localStorage.removeItem("forceAllowOldBrowser")
|
|
|
|
if (!validForceAllowOldBrowser && !supportedBrowsers.test(navigator.userAgent)) {
|
|
displayBrowserError()
|
|
} else {
|
|
init()
|
|
}
|
|
|
|
var scriptTags = document.getElementsByTagName('script')
|
|
for (let i = 0; i < scriptTags.length; i++) {
|
|
if (scriptTags[i].src) {
|
|
scriptTags[i].onerror = displayError
|
|
}
|
|
}
|
|
</script>
|
|
|
|
|
|
</body></html> |