Initial import

This commit is contained in:
Admin Nasledstvo
2026-05-01 20:52:04 +03:00
commit ac168868ee
10028 changed files with 2337954 additions and 0 deletions
@@ -0,0 +1,107 @@
<?php
/**
* @var $id
*/
use app\services\JWT;
?>
<?php
$message = ['bg' => 'Зареждане', 'en' => 'Loading'];
$close = ['bg' => 'Затвори', 'en' => 'Close'];
$lg = $_GET['lg'] ?? 'bg';
?>
<style>
body {
padding: 0;
margin: 0;
font-family: Arial, sans-serif;
background: #000000;
}
.model-loading-progress {
position: fixed;
width: calc(100% - 20px);
padding: 40px;
background: rgba(204, 204, 204, 0.13);
z-index: 100;
bottom: 100px;
}
.model-loading-progress-load {
background: #857750;
height: 5px;
width: 0;
transition: all 0.3s;
}
.loading-message {
font-size: 20px;
color: #FFFFFF;
text-align: center;
margin-bottom: 20px;
display: flex;
justify-content: center;
}
.loading-dots { display: flex; margin-top: -12px; margin-left: 5px}
.loading-dots i {
font-size: 30px;
color: #FFFFFF;
display: block;
font-style: normal;
margin: 2px;
}
.loading-dots i {
animation-name: blink;
animation-duration: 1.4s;
animation-iteration-count: infinite;
animation-fill-mode: both;
transform: scale(1);
}
.loading-dots i:nth-child(2) { animation-delay: .2s; }
.loading-dots i:nth-child(3) { animation-delay: .4s; }
@keyframes blink {
0% {
opacity: .1;
}
20% {
opacity: 1;
transform: scale(1.2);
}
100% {
opacity: .1;
}
}
.model-title {
font-size: 20px;
text-align: center;
position: relative;
top: 100px;
color: #FFFFFF;
}
</style>
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script>
<model-viewer id="modelView" style="width: 100%; height: 100%" src="/api/stream-file/<?= $id ?>/" shadow-intensity="1"
camera-controls touch-action="pan-y" slot="progress-bar"></model-viewer>
<div class="model-loading-progress">
<div class="loading-message"><?= $message[$lg] ?> <span class="loading-dots"><i>.</i><i>.</i><i>.</i></span></div>
<div class="model-loading-progress-load"></div>
</div>
<script>
const modelView = document.querySelector('#modelView');
const modelLoadingProgress = document.querySelector('.model-loading-progress');
const modelLoadingProgressLoad = document.querySelector('.model-loading-progress-load');
modelView.addEventListener('progress', (event) => {
if (event.detail && event.detail.totalProgress) {
modelLoadingProgressLoad.setAttribute('style', `width: ${100*event.detail.totalProgress}%`)
}
})
modelView.addEventListener('load', () => {
modelLoadingProgress.remove()
}, true)
</script>
<?= $this->render('/api/_mobile_view_mode', ['close' => $close[$lg], 'lg' => $lg]) ?>