Files
sm-bm-plugin/public/assets/MaterialView-BDKa-Qqe.js
2026-11-08 11:58:11 +01:00

2 lines
5.5 KiB
JavaScript

import{d as H,o as Z,U as q,c as t,i as x,j as g,r as d,al as L,ap as C,n as a,F as z,e as f,T as I,ar as O,p as h,b as l,s as R,t as i,f as r,E as V,a1 as W,h as Y,w as T,g as E,v as G,x as U,l as J}from"./index-CcIbRcGw.js";import{_ as K}from"./PageHead.vue_vue_type_script_setup_true_lang-D514yUH-.js";import{_ as Q}from"./LoadState.vue_vue_type_script_setup_true_lang-CDuAEvCu.js";import{r as X,s as ee}from"./markdown-CbtkjRI4.js";import{_ as se}from"./_plugin-vue_export-helper-DlAUqK2U.js";function D(u){return u.name.trim()||u.email}function ae(u,p){const e=p.trim().toLocaleLowerCase("pl");return e?u.filter(v=>v.name.toLocaleLowerCase("pl").includes(e)||v.email.toLocaleLowerCase("pl").includes(e)):u}function te(u,p){return{is_private:u,user_ids:[...new Set(p)].sort((e,v)=>e-v)}}const le={class:"muted small"},oe={key:1},ne={key:2},re={key:0},ie={key:1},ue=["href"],ce=["innerHTML"],de={key:3,class:"section","aria-labelledby":"files-h"},ve={class:"rows"},pe=["href","download"],me={class:"when"},_e={key:4,class:"section","aria-labelledby":"access-h"},ye={class:"card"},fe={key:0,class:"notice error",role:"alert"},he={key:1,class:"skeleton","aria-busy":"true"},ke={class:"check"},be={class:"muted small"},we={class:"field"},ge={key:0,class:"muted small"},ze={key:1,class:"access-users"},Me={class:"check"},xe=["value"],Le={key:0,class:"muted"},Ce={key:2,class:"empty"},Ve={class:"btn-row"},Te=["disabled"],Ue={key:0,class:"muted small",role:"status"},Ae={key:3,class:"notice error",role:"alert"},Ne=H({__name:"MaterialView",props:{id:{}},setup(u){const p=u,e=d(null),v=d(""),m=d(null),c=d(""),y=d(""),_=d(!1),k=d([]),b=d(""),w=d(!1);function A(n){m.value=n,_.value=n.is_private,k.value=n.shares.map(s=>s.id)}async function N(n){c.value="";try{A(await L.materialAccess(n))}catch(s){c.value=C(s)}}async function M(){e.value=null,v.value="",m.value=null,y.value="",c.value="",b.value="";try{e.value=await L.material(Number(p.id))}catch(n){v.value=C(n);return}e.value.can_manage&&await N(e.value.id)}const S=U(()=>m.value?ae(m.value.users,b.value):[]);async function P(){const n=e.value;if(!(!n||w.value)){w.value=!0,y.value="",c.value="";try{const s=await L.saveMaterialAccess(n.id,te(_.value,k.value));if(e.value!==n)return;A(s),n.is_private=s.is_private,y.value="Zapisano."}catch(s){c.value=C(s)}finally{w.value=!1}}}Z(M),q(()=>p.id,M);const $=U(()=>X(e.value?.body)),B=U(()=>e.value?.url?ee(e.value.url):null);return(n,s)=>{const j=J("router-link");return a(),t("div",null,[x(Q,{ready:!!e.value,error:v.value,onRetry:s[4]||(s[4]=o=>M())},{default:g(()=>[e.value?(a(),t(z,{key:0},[x(K,{eyebrow:`${f(I)[e.value.type]}${e.value.published_at?" · "+f(O)(e.value.published_at):""}`,title:e.value.title},{default:g(()=>[x(j,{class:"btn small ghost",to:"/materialy"},{default:g(()=>[...s[5]||(s[5]=[h("← Materiały",-1)])]),_:1})]),_:1},8,["eyebrow","title"]),l("p",le,[e.value.course?(a(),R(j,{key:0,to:`/przedmioty/${e.value.course.id}`},{default:g(()=>[h(i(e.value.course.name),1)]),_:1},8,["to"])):r("",!0),e.value.source?(a(),t("span",oe," · "+i(e.value.source),1)):r("",!0),e.value.is_private?(a(),t("span",ne,[...s[6]||(s[6]=[h(" · ",-1),l("span",{class:"badge alert"},"prywatny",-1)])])):r("",!0)]),e.value.tags.length?(a(),t("p",re,[(a(!0),t(z,null,V(e.value.tags,o=>(a(),t("span",{key:o.id,class:"badge",style:{"margin-right":"4px"}},i(o.name),1))),128))])):r("",!0),B.value?(a(),t("p",ie,[l("a",{class:"btn small",href:B.value,target:"_blank",rel:"noopener noreferrer"},"Otwórz link",8,ue)])):r("",!0),$.value?(a(),t("div",{key:2,class:"prose card",innerHTML:$.value},null,8,ce)):r("",!0),e.value.files.length?(a(),t("section",de,[s[7]||(s[7]=l("div",{class:"section-head"},[l("h2",{id:"files-h"},"Pliki")],-1)),l("ul",ve,[(a(!0),t(z,null,V(e.value.files,o=>(a(),t("li",{key:o.id,class:"row-main"},[l("a",{href:o.url,download:o.name},i(o.name),9,pe),l("span",me,i(f(W)(o.size)),1)]))),128))])])):r("",!0),e.value.can_manage?(a(),t("section",_e,[s[10]||(s[10]=l("div",{class:"section-head"},[l("h2",{id:"access-h"},"Dostęp")],-1)),l("div",ye,[c.value&&!m.value?(a(),t("div",fe,[h(i(c.value)+" ",1),l("button",{class:"linkish",type:"button",onClick:s[0]||(s[0]=o=>N(e.value.id))},"Spróbuj ponownie")])):m.value?(a(),t("form",{key:2,onSubmit:Y(P,["prevent"])},[l("label",ke,[T(l("input",{"onUpdate:modelValue":s[1]||(s[1]=o=>_.value=o),type:"checkbox"},null,512),[[E,_.value]]),s[8]||(s[8]=l("span",null,"Materiał prywatny",-1))]),l("p",be,i(_.value?"Widzisz go tylko Ty i osoby, którym go udostępnisz.":"Materiał publiczny: widzą go wszyscy."),1),l("div",we,[s[9]||(s[9]=l("label",{for:"access-search"},"Szukaj osoby",-1)),T(l("input",{id:"access-search","onUpdate:modelValue":s[2]||(s[2]=o=>b.value=o),type:"search",autocomplete:"off"},null,512),[[G,b.value]])]),_.value?r("",!0):(a(),t("p",ge,"Udostępnienie działa, gdy materiał jest prywatny.")),S.value.length?(a(),t("ul",ze,[(a(!0),t(z,null,V(S.value,o=>(a(),t("li",{key:o.id},[l("label",Me,[T(l("input",{"onUpdate:modelValue":s[3]||(s[3]=F=>k.value=F),type:"checkbox",value:o.id},null,8,xe),[[E,k.value]]),l("span",null,[h(i(f(D)(o)),1),f(D)(o)!==o.email?(a(),t("small",Le," · "+i(o.email),1)):r("",!0)])])]))),128))])):(a(),t("p",Ce,"Nikt nie pasuje.")),l("div",Ve,[l("button",{class:"btn small",type:"submit",disabled:w.value},"Zapisz dostęp",8,Te),y.value?(a(),t("span",Ue,i(y.value),1)):r("",!0)]),c.value?(a(),t("div",Ae,i(c.value),1)):r("",!0)],32)):(a(),t("div",he))])])):r("",!0)],64)):r("",!0)]),_:1},8,["ready","error"])])}}}),De=se(Ne,[["__scopeId","data-v-429c6d5a"]]);export{De as default};