(() => { 'use strict'; const match=location.pathname.match(/^\/sag\/(\d+)(?:\/|$)/); if(!match)return; const id=Number(match[1]); const esc=v=>String(v??'').replace(/[&<>"']/g,c=>({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c])); async function request(options) { const r=await fetch(`/api/v1/sag/${id}/visibility`,options); const value=await r.json(); if(!r.ok)throw new Error(typeof value.detail==='string'?value.detail:'Adgangen kunne ikke gemmes'); return value; } request().then(state=>{ if(!state.can_manage)return; const button=document.createElement('button');button.className='btn btn-sm btn-outline-secondary'; button.textContent=state.restricted?'🔒 Fortrolig sag':'Fortrolighed';button.type='button'; button.style.cssText='position:fixed;right:1rem;bottom:5rem;z-index:1000';document.body.append(button); const dialog=document.createElement('dialog');dialog.style.cssText='max-width:550px;width:95vw;border:2px solid var(--frame-border-strong);border-top:4px solid var(--accent);border-radius:var(--border-radius);box-shadow:var(--frame-shadow);padding:1rem;background:var(--bg-card);color:var(--text-primary)'; document.body.append(dialog); const render=()=>{dialog.innerHTML=`
`;dialog.querySelector('[data-close]').onclick=()=>dialog.close();dialog.querySelector('form').onsubmit=async e=>{e.preventDefault();const f=e.target;try{const result=await request({method:'PUT',headers:{'Content-Type':'application/json'},body:JSON.stringify({restricted:f.elements.restricted.checked,version:state.version,user_ids:[...f.elements.users.selectedOptions].map(o=>Number(o.value)),group_ids:[...f.elements.groups.selectedOptions].map(o=>Number(o.value))})});state={...state,...result};button.textContent=state.restricted?'🔒 Fortrolig sag':'Fortrolighed';dialog.close();}catch(err){f.querySelector('[role=alert]').textContent=err.message;}};}; button.onclick=async()=>{try{state=await request();render();dialog.showModal();}catch(e){alert(e.message);}}; }).catch(()=>{}); })();