Remove immich references from the UI
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Immich Drop Uploader</title>
|
||||
<title>Image Drop Uploader</title>
|
||||
<link rel="icon" type="image/png" href="/static/favicon.png" />
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<script>
|
||||
@@ -17,7 +17,7 @@
|
||||
<div id="topBanner" class="hidden rounded-2xl border border-green-200 bg-green-50 p-3 text-green-700 text-center dark:bg-green-900 dark:border-green-700 dark:text-green-300"></div>
|
||||
|
||||
<header class="flex items-center justify-between flex-wrap gap-2">
|
||||
<h1 class="text-2xl font-semibold tracking-tight">Immich Drop Uploader</h1>
|
||||
<h1 class="text-2xl font-semibold tracking-tight">Image Drop Uploader</h1>
|
||||
<div class="flex items-center gap-2">
|
||||
<a href="/login" class="rounded-xl border px-4 py-2 text-sm dark:border-gray-600 dark:hover:bg-gray-800 hover:bg-gray-100 transition-colors" aria-label="Login">Login</a>
|
||||
<button id="btnTheme" class="rounded-xl border px-3 py-2 text-sm dark:border-gray-600 dark:hover:bg-gray-800 hover:bg-gray-100 transition-colors" title="Toggle dark mode" aria-label="Toggle theme">
|
||||
@@ -82,7 +82,7 @@
|
||||
<section id="items" class="space-y-3"></section>
|
||||
|
||||
<footer class="pt-4 pb-10 text-center text-xs text-gray-500 dark:text-gray-400">
|
||||
Built for simple, account-less uploads to Immich. This page never lists media from the server and only shows your current session's items.
|
||||
Built for simple, account-less image uploads. This page never lists media from the server and only shows your current session's items.
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -34,8 +34,8 @@
|
||||
<div id="msg" class="hidden mb-3 rounded-lg border p-2 text-sm"></div>
|
||||
<form id="loginForm" class="space-y-3">
|
||||
<div>
|
||||
<label class="block text-sm mb-1">Email</label>
|
||||
<input id="email" type="email" required class="w-full rounded-lg border px-3 py-2 bg-white dark:bg-gray-800 dark:border-gray-700" />
|
||||
<label class="block text-sm mb-1">Username</label>
|
||||
<input id="email" type="username" value="admin" required class="w-full rounded-lg border px-3 py-2 bg-white dark:bg-gray-800 dark:border-gray-700" />
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm mb-1">Password</label>
|
||||
|
||||
@@ -33,14 +33,13 @@
|
||||
|
||||
<section class="rounded-2xl border bg-white dark:bg-gray-800 dark:border-gray-700 p-4 space-y-4">
|
||||
<div>
|
||||
<div class="text-sm font-medium mb-1">Target album (optional)</div>
|
||||
<div class="text-sm font-medium mb-1">Target folder (optional)</div>
|
||||
<div id="albumControls" class="space-y-2">
|
||||
<div id="albumSelectWrap" class="hidden">
|
||||
<select id="albumSelect" class="w-full rounded-lg border px-3 py-3 bg-white dark:bg-gray-900 dark:border-gray-700"></select>
|
||||
</div>
|
||||
<div id="albumInputWrap" class="hidden">
|
||||
<input id="albumInput" placeholder="Album name (leave blank for none)" class="w-full rounded-lg border px-3 py-3 bg-white dark:bg-gray-900 dark:border-gray-700" />
|
||||
<button id="btnCreateAlbum" class="mt-2 w-full sm:w-auto rounded-xl bg-black text-white px-4 py-3 dark:bg-white dark:text-black">Create album</button>
|
||||
<input id="albumInput" placeholder="New folder name (leave blank for public)" class="w-full rounded-lg border px-3 py-3 bg-white dark:bg-gray-900 dark:border-gray-700" />
|
||||
</div>
|
||||
<div id="albumHint" class="text-sm text-gray-500"></div>
|
||||
</div>
|
||||
@@ -103,7 +102,7 @@
|
||||
<th class="py-2" style="width: 18%;">Status</th>
|
||||
<th class="py-2">Uses</th>
|
||||
<th class="py-2">Expires</th>
|
||||
<th class="py-2">Album</th>
|
||||
<th class="py-2">Folder</th>
|
||||
<th class="py-2">Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -119,7 +118,7 @@
|
||||
</section>
|
||||
|
||||
<section class="text-xs text-gray-500">
|
||||
If album listing or creation is forbidden by your token, specify a fixed album in the .env file as IMMICH_ALBUM_NAME.
|
||||
Admin link page
|
||||
</section>
|
||||
</div>
|
||||
|
||||
@@ -130,7 +129,6 @@
|
||||
const albumInputWrap = document.getElementById('albumInputWrap');
|
||||
const albumInput = document.getElementById('albumInput');
|
||||
const albumHint = document.getElementById('albumHint');
|
||||
const btnCreateAlbum = document.getElementById('btnCreateAlbum');
|
||||
const btnCreate = document.getElementById('btnCreate');
|
||||
const usage = document.getElementById('usage');
|
||||
const days = document.getElementById('days');
|
||||
@@ -159,29 +157,17 @@
|
||||
}
|
||||
const list = await r.json();
|
||||
if (Array.isArray(list)){
|
||||
const opts = [{id:'', name:'— No album —'}].concat(list.map(a => ({id:a.id, name:(a.albumName || a.title || a.id)})));
|
||||
const opts = [{id:'', name:'Select existing...'}].concat(list.map(a => ({id:a.id, name:(a.albumName || a.title || a.id)})));
|
||||
albumSelect.innerHTML = opts.map(a => `<option value="${a.id}">${a.name}</option>`).join('');
|
||||
albumSelectWrap.classList.remove('hidden');
|
||||
albumInputWrap.classList.remove('hidden');
|
||||
albumHint.textContent = 'Pick an existing album, or type a new name and click Create album. Select “— No album —” or leave the field blank to skip album association.';
|
||||
albumHint.textContent = 'Pick an existing folder, or type a new folder name.';
|
||||
}
|
||||
} catch (e) {
|
||||
albumHint.textContent = 'Failed to load albums.';
|
||||
}
|
||||
}
|
||||
|
||||
btnCreateAlbum.onclick = async () => {
|
||||
const name = albumInput.value.trim();
|
||||
if (!name) return;
|
||||
try{
|
||||
const r = await fetch('/api/albums', { method:'POST', headers:{'Content-Type':'application/json','Accept':'application/json'}, body: JSON.stringify({ name }) });
|
||||
const j = await r.json().catch(()=>({}));
|
||||
if(!r.ok){ showResult('err', j.error || 'Album create failed'); return; }
|
||||
showResult('ok', `Album created: ${j.albumName || j.id || name}`);
|
||||
try { await loadAlbums(); } catch {}
|
||||
}catch(err){ showResult('err', String(err)); }
|
||||
};
|
||||
|
||||
btnCreate.onclick = async () => {
|
||||
let albumId = null, albumName = null;
|
||||
if (!albumSelectWrap.classList.contains('hidden') && albumSelect.value) {
|
||||
|
||||
Reference in New Issue
Block a user