v1.8.21: fix library — remove orphaned initAuth body causing script crash, fix main tag
This commit is contained in:
+1
-40
@@ -340,7 +340,7 @@ main {
|
|||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<div id="universal-header"></div>
|
<div id="universal-header"></div>
|
||||||
|
|
||||||
<main class="max-w-6xl" mx-auto px-4 lg:px-8 py-8">
|
<main class="max-w-6xl mx-auto px-4 lg:px-8 py-8">
|
||||||
|
|
||||||
<!-- Search + Filters -->
|
<!-- Search + Filters -->
|
||||||
<div class="glass rounded-3xl p-6 mb-6">
|
<div class="glass rounded-3xl p-6 mb-6">
|
||||||
@@ -623,45 +623,6 @@ async function toggleFav(bookId, btn, e) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ── Auth Nav ───────────────────────────────────────────────────────────────
|
|
||||||
return; }
|
|
||||||
currentUser = await r.json();
|
|
||||||
checkActiveImport();
|
|
||||||
nav.innerHTML = `<div class="relative" id="user-menu-wrap">
|
|
||||||
<button onclick="document.getElementById('udrop').classList.toggle('hidden')" class="glass flex items-center gap-2 px-3 py-2 rounded-xl text-xs hover:border-primary/40 transition-colors">
|
|
||||||
<span class="msym text-base text-primary">person</span>
|
|
||||||
<span class="hidden sm:inline max-w-[80px] truncate">${currentUser.name}</span>
|
|
||||||
<span class="msym text-sm text-on-surface-variant">expand_more</span>
|
|
||||||
</button>
|
|
||||||
<div id="udrop" class="hidden absolute right-0 top-full mt-1 glass rounded-xl p-2 min-w-[160px] z-50 shadow-xl">
|
|
||||||
<div class="px-3 py-2 border-b border-outline-variant/30 mb-1">
|
|
||||||
<p class="text-xs font-bold">${currentUser.name}</p>
|
|
||||||
<p class="text-[10px] text-primary">${currentUser.role_display||currentUser.role}</p>
|
|
||||||
</div>
|
|
||||||
${currentUser.role==='admin'?'<a href="/admin" class="flex items-center gap-2 px-3 py-2 rounded-lg text-xs text-on-surface-variant hover:text-primary hover:bg-primary/5"><span class="msym text-sm">admin_panel_settings</span>Admin</a>':''}
|
|
||||||
<button onclick="doLogout()" class="w-full flex items-center gap-2 px-3 py-2 rounded-lg text-xs text-error hover:bg-red-900/10">
|
|
||||||
<span class="msym text-sm">logout</span>خروج
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>`;
|
|
||||||
document.addEventListener('click',e=>{const w=document.getElementById('user-menu-wrap');if(w&&!w.contains(e.target))document.getElementById('udrop')?.classList.add('hidden')});
|
|
||||||
// Show upload if permitted
|
|
||||||
const perms = currentUser.permissions || [];
|
|
||||||
const canUpload = Array.isArray(perms)
|
|
||||||
? perms.includes('upload')
|
|
||||||
: (perms.upload === true);
|
|
||||||
const isAdmin = currentUser.role === 'admin' || currentUser.role === 'librarian';
|
|
||||||
if(canUpload || isAdmin) {
|
|
||||||
document.getElementById('upload-btn-wrap').classList.remove('hidden');
|
|
||||||
}
|
|
||||||
} catch(e) {}
|
|
||||||
}
|
|
||||||
|
|
||||||
function doLogout() {
|
|
||||||
fetch('/auth/logout',{method:'POST',headers:{'Authorization':'Bearer '+userToken}});
|
|
||||||
localStorage.removeItem('rag_token');
|
|
||||||
window.location.reload();
|
|
||||||
}
|
|
||||||
|
|
||||||
// ── Filters ────────────────────────────────────────────────────────────────
|
// ── Filters ────────────────────────────────────────────────────────────────
|
||||||
function setFilter(type, value, btn) {
|
function setFilter(type, value, btn) {
|
||||||
|
|||||||
Reference in New Issue
Block a user