Additional configuration from environment

This commit is contained in:
2025-12-15 13:53:03 +01:00
parent 05c315a56f
commit 9932a350cc
8 changed files with 117 additions and 63 deletions

View File

@@ -22,8 +22,8 @@ let interactionState = null;
let lastSizeInputChanged = null;
const HANDLE_SIZE = 10;
const ROTATE_HANDLE_OFFSET = 32;
const MAX_VOLUME = 2;
const VOLUME_SLIDER_MAX = 200;
const MAX_VOLUME = adminInputRestrictions.MAX_AUDIO_VOLUME;
const VOLUME_SLIDER_MAX = adminInputRestrictions.MAX_AUDIO_VOLUME * 100;
const VOLUME_CURVE_STRENGTH = -0.6;
const pendingTransformSaves = new Map();
const KEYBOARD_NUDGE_STEP = 5;
@@ -2023,8 +2023,8 @@ function uploadAsset(file = null) {
showToast('Choose an image, GIF, video, or audio file to upload.', 'info');
return;
}
if (selectedFile.size > upload_limit_bytes) {
showToast(`File is too large. Maximum upload size is ${upload_limit_bytes / 1024 / 1024} MB.`, 'error');
if (selectedFile.size > adminInputRestrictions.UPLOAD_MAX_BYTES) {
showToast(`File is too large. Maximum upload size is ${adminInputRestrictions.UPLOAD_MAX_BYTES / 1024 / 1024} MB.`, 'error');
return;
}

View File

@@ -5,7 +5,6 @@
<title>Imgfloat Admin</title>
<link rel="stylesheet" href="/css/styles.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" integrity="sha512-SnH5WK+bZxgPHs44uWIX+LLJAJ9/2PkPKZ5QiAj6Ta86w+fsb2TkcmfRyVX3pBnMFcV7oQPJkl9QevSCWr3W6A==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/stompjs@2.3.3/lib/stomp.min.js"></script>
</head>
@@ -14,7 +13,7 @@
<header class="admin-topbar">
<div class="topbar-left">
<div class="admin-identity">
<p class="eyebrow subtle">Admin</p>
<p class="eyebrow subtle">CHANNEL ADMIN</p>
<h1 th:text="${broadcaster}"></h1>
</div>
</div>
@@ -208,7 +207,15 @@
<script th:inline="javascript">
const broadcaster = /*[[${broadcaster}]]*/ '';
const username = /*[[${username}]]*/ '';
const upload_limit_bytes = /*[[${uploadLimitBytes}]]*/ + 0;
const adminInputRestrictions = {
UPLOAD_MAX_BYTES: /*[[${uploadLimitBytes}]]*/ + 0,
MAX_SPEED: /*[[${maxSpeed}]]*/ + 0.0,
MIN_AUDIO_SPEED: /*[[${minAudioSpeed}]]*/ + 0.0,
MAX_AUDIO_SPEED: /*[[${maxAudioSpeed}]]*/ + 0.0,
MIN_AUDIO_PITCH: /*[[${minAudioPitch}]]*/ + 0.0,
MAX_AUDIO_PITCH: /*[[${maxAudioPitch}]]*/ + 0.0,
MAX_AUDIO_VOLUME: /*[[${maxAudioVolume}]]*/ + 0.0,
}
</script>
<script src="/js/toast.js"></script>
<script src="/js/admin.js"></script>

View File

@@ -69,7 +69,7 @@
</div>
<div class="card-section">
<div class="section-header">
<h4 class="list-title">Admins</h4>
<h4 class="list-title">Channel Admins</h4>
<p class="muted">Users who can currently modify your overlay.</p>
</div>
<ul id="admin-list" class="stacked-list"></ul>
@@ -97,7 +97,7 @@
<li th:each="channelName : ${adminChannels}" class="stacked-list-item">
<div>
<p class="list-title" th:text="${channelName}">channel</p>
<p class="muted">Admin access</p>
<p class="muted">Channel admin access</p>
</div>
<a class="button ghost" th:href="@{'/view/' + ${channelName} + '/admin'}">Open</a>
</li>