Files
sm-bm-plugin/public/assets/MaterialsView-B7ioBi_c.js

2 lines
8.7 KiB
JavaScript

import{d as ae,n as a,c as l,t as o,f as m,F as g,E as x,p as N,x as y,ae as re,u as pe,r as _,o as de,U as ce,al as ve,A as me,ap as ye,V as ge,i as fe,b as n,w as $,v as ke,W as _e,h as Y,as as D,e as z,T as G,k as be,m as he,at as we,s as H,j as xe,ar as ze,ag as J,l as qe,au as Se}from"./index-BhVKyY57.js";import{_ as Te}from"./PageHead.vue_vue_type_script_setup_true_lang-DaSt0RSc.js";import{r as X,m as U,i as ee,w as A,a as Ce,s as te,n as se}from"./materialListCache-DwqU8sxL.js";function je(f){const u=[];f.lead&&u.push({text:"…",hit:!1});for(const b of f.segments??[])b.text&&u.push({text:b.text,hit:!!b.hit});return f.trail&&u.push({text:"…",hit:!1}),u}function Me(f){if(f.source!=="file")return"";const u=f.file_name?.trim();return u?`z pliku ${u}: `:"z pliku: "}const $e={class:"snippet muted small"},Ne={key:0,class:"snippet-file"},Ve={key:0},Be=ae({__name:"SearchSnippet",props:{snippet:{}},setup(f){const u=f,b=y(()=>je(u.snippet)),h=y(()=>Me(u.snippet));return(q,i)=>(a(),l("p",$e,[h.value?(a(),l("span",Ne,o(h.value),1)):m("",!0),(a(!0),l(g,null,x(b.value,(c,S)=>(a(),l(g,{key:S},[c.hit?(a(),l("mark",Ve,o(c.text),1)):(a(),l(g,{key:1},[N(o(c.text),1)],64))],64))),128))]))}}),Fe={class:"field no-print"},Pe=["onKeydown"],We={class:"field"},De=["value"],Ue={class:"field"},Ae=["value"],Ee={class:"field"},Ke=["value"],Le={key:0,class:"chips wrap no-print",role:"group","aria-label":"Tagi",style:{"margin-bottom":"12px"}},Qe=["aria-pressed","onClick"],Ie={key:2,class:"notice error",role:"alert",style:{"margin-top":"12px"}},Oe={key:3,class:"notice error",role:"alert"},Re={key:4,class:"stack","aria-busy":"true"},Ze={key:0,class:"muted small nums no-print",role:"status","aria-live":"polite",style:{margin:"8px 0 0"}},Ye=["aria-busy"],Ge={class:"row-main"},He={class:"badges"},Je={key:0,class:"badge alert"},Xe={key:1,class:"badge"},et={class:"badge"},tt={class:"muted small",style:{margin:"0"}},st={key:0},at={key:1},lt={key:2},nt={key:1,style:{margin:"6px 0 0"}},it={key:2,class:"empty",style:{"margin-top":"12px"}},ot={style:{margin:"0"}},ut={key:3,class:"empty",style:{"margin-top":"12px"}},rt={key:4,class:"btn-row no-print",style:{"margin-top":"16px","justify-content":"space-between","align-items":"center"},"aria-label":"Strony"},pt=["disabled"],dt={class:"muted small nums"},ct=["disabled"],gt=ae({__name:"MaterialsView",setup(f){const u=re(),b=pe(),h=be(),q=he(),i=_(X(h.query)),c=_(i.value.q),S=s=>`${b.user?.id??0}|${Ce(s)}`,v=_(U.get(S(i.value))??null),p=_(i.value),V=_(!1),T=_(""),B=_(!1),C=_(new Map);function F(s){for(const e of s.data)for(const d of e.tags)C.value.set(d.slug,d);C.value=new Map(C.value)}v.value&&F(v.value),de(()=>{u.loadCourses(),u.loadMeetings(),ee(h.query,i.value)||q.replace({query:A(i.value)}),M()}),ce(()=>h.query,s=>{if(h.name!=="materials")return;const e=X(s);ee(s,e)||q.replace({query:A(e)}),!te(e,i.value)&&(i.value=e,se(c.value)!==e.q&&(c.value=e.q),M())});function k(s){const e={...i.value,...s};Object.keys(s).some(d=>d!=="page")&&(e.page=1),!te(e,i.value)&&(i.value=e,q.replace({query:A(e)}),M())}let j=0;async function M(){const s=++j,e=i.value,d=S(e),t=U.get(d);t&&(v.value=t,p.value=e,F(t)),V.value=!0,T.value="",B.value=!1;try{const r=await ve.materials({q:e.q||null,course:e.course,type:e.type||null,meeting:e.meeting,tag:e.tag||null,page:e.page});if(s!==j)return;U.set(d,r),v.value=r,p.value=e,F(r)}catch(r){if(s!==j)return;e.q&&r instanceof me&&r.status===503?B.value=!0:T.value=ye(r)}finally{s===j&&(V.value=!1)}}let w;function P(){clearTimeout(w),w=void 0,k({q:se(c.value)})}function le(){clearTimeout(w),c.value.trim()?w=setTimeout(P,300):P()}ge(()=>clearTimeout(w));const E=y({get:()=>i.value.course===null?"":String(i.value.course),set:s=>k({course:s?Number(s):null})}),K=y({get:()=>i.value.type,set:s=>k({type:s})}),L=y({get:()=>i.value.meeting===null?"":String(i.value.meeting),set:s=>k({meeting:s?Number(s):null})}),ne=y(()=>Se(u.meetings??[])),ie=y(()=>new Map((u.meetings??[]).map(s=>[s.id,s]))),Q=s=>s.meeting_id===null?void 0:ie.value.get(s.meeting_id);function I(s){k({page:s}),window.scrollTo({top:0})}const O=y(()=>{const s=[...C.value.values()].sort((d,t)=>d.name.localeCompare(t.name,"pl")),e=i.value.tag;return e&&!s.some(d=>d.slug===e)&&s.unshift({id:0,slug:e,name:e}),s}),W=s=>!!(s.q||s.course!==null||s.type||s.meeting!==null||s.tag),oe=y(()=>W(i.value));function R(){clearTimeout(w),c.value="",k({q:"",course:null,type:"",meeting:null,tag:""})}function ue(){clearTimeout(w),c.value="",k({q:""})}const Z=y(()=>{const s=v.value?.meta.total??0;return J(s,"materiał","materiały","materiałów")});return(s,e)=>{const d=qe("router-link");return a(),l("div",null,[fe(Te,{eyebrow:"Notatki, PDF-y, linki",title:"Materiały"}),n("div",Fe,[e[8]||(e[8]=n("label",{for:"f-q"},"Szukaj",-1)),$(n("input",{id:"f-q","onUpdate:modelValue":e[0]||(e[0]=t=>c.value=t),type:"search",enterkeyhint:"search",autocomplete:"off",maxlength:"100",placeholder:"Tytuł, treść, tekst z PDF-ów",onInput:le,onKeydown:_e(Y(P,["prevent"]),["enter"])},null,40,Pe),[[ke,c.value]])]),n("form",{class:"grid-3 no-print",style:{"margin-bottom":"8px"},onSubmit:e[4]||(e[4]=Y(()=>{},["prevent"]))},[n("div",We,[e[10]||(e[10]=n("label",{for:"f-course"},"Przedmiot",-1)),$(n("select",{id:"f-course","onUpdate:modelValue":e[1]||(e[1]=t=>E.value=t)},[e[9]||(e[9]=n("option",{value:""},"Wszystkie",-1)),(a(!0),l(g,null,x(z(u).visibleCourses,t=>(a(),l("option",{key:t.id,value:String(t.id)},o(t.name)+" ("+o(t.form==="wyklad"?"wykład":t.form==="cwiczenia"?"ćwiczenia":t.form)+")",9,De))),128))],512),[[D,E.value]])]),n("div",Ue,[e[12]||(e[12]=n("label",{for:"f-type"},"Rodzaj",-1)),$(n("select",{id:"f-type","onUpdate:modelValue":e[2]||(e[2]=t=>K.value=t)},[e[11]||(e[11]=n("option",{value:""},"Wszystkie",-1)),(a(!0),l(g,null,x(z(G),(t,r)=>(a(),l("option",{key:r,value:r},o(t),9,Ae))),128))],512),[[D,K.value]])]),n("div",Ee,[e[14]||(e[14]=n("label",{for:"f-meeting"},"Zjazd",-1)),$(n("select",{id:"f-meeting","onUpdate:modelValue":e[3]||(e[3]=t=>L.value=t)},[e[13]||(e[13]=n("option",{value:""},"Wszystkie",-1)),(a(!0),l(g,null,x(ne.value,t=>(a(),l("option",{key:t.id,value:String(t.id)},o(z(we)(t)),9,Ke))),128))],512),[[D,L.value]])])],32),O.value.length?(a(),l("div",Le,[(a(!0),l(g,null,x(O.value,t=>(a(),l("button",{key:t.slug,class:"chip",type:"button","aria-pressed":i.value.tag===t.slug,onClick:r=>k({tag:i.value.tag===t.slug?"":t.slug})},o(t.name),9,Qe))),128))])):m("",!0),oe.value?(a(),l("button",{key:1,class:"linkish small no-print",type:"button",onClick:R},"Wyczyść filtry")):m("",!0),B.value?(a(),l("div",Ie,[e[15]||(e[15]=N("Wyszukiwarka jest teraz niedostępna. Filtry działają bez niej. ",-1)),n("button",{class:"linkish",type:"button",onClick:ue},"Wyczyść wyszukiwanie")])):T.value?(a(),l("div",Oe,[N(o(T.value)+" ",1),n("button",{class:"linkish",type:"button",onClick:e[5]||(e[5]=t=>M())},"Spróbuj ponownie")])):v.value?(a(),l(g,{key:5},[W(p.value)&&v.value.data.length?(a(),l("p",Ze,o(p.value.q?`Znaleziono ${Z.value} · od najtrafniejszych`:Z.value),1)):m("",!0),v.value.data.length?(a(),l("div",{key:1,class:"stack",style:{"margin-top":"12px"},"aria-busy":V.value},[(a(!0),l(g,null,x(v.value.data,t=>(a(),H(d,{key:t.id,to:`/materialy/${t.id}`,class:"card link"},{default:xe(()=>[n("div",Ge,[n("h3",null,o(t.title),1),n("span",He,[t.is_private?(a(),l("span",Je,"prywatny")):m("",!0),Q(t)?(a(),l("span",Xe,"Zjazd "+o(Q(t).number),1)):m("",!0),n("span",et,o(z(G)[t.type]),1)])]),n("p",tt,[t.course?(a(),l("span",st,o(t.course.name),1)):m("",!0),t.published_at?(a(),l("span",at," · "+o(z(ze)(t.published_at)),1)):m("",!0),t.files_count?(a(),l("span",lt," · "+o(z(J)(t.files_count,"plik","pliki","plików")),1)):m("",!0)]),p.value.q&&t.snippet?(a(),H(Be,{key:0,snippet:t.snippet},null,8,["snippet"])):m("",!0),t.tags.length?(a(),l("p",nt,[(a(!0),l(g,null,x(t.tags,r=>(a(),l("span",{key:r.id,class:"badge",style:{"margin-right":"4px"}},o(r.name),1))),128))])):m("",!0)]),_:2},1032,["to"]))),128))],8,Ye)):p.value.q?(a(),l("div",it,[n("p",ot,"Nic nie znaleziono dla „"+o(p.value.q)+"”.",1),n("p",{class:"small",style:{margin:"4px 0 0"}},[e[17]||(e[17]=N("Sprawdź pisownię albo zmień filtry. ",-1)),n("button",{class:"linkish",type:"button",onClick:R},"Wyczyść filtry")])])):(a(),l("p",ut,o(W(p.value)?"Nic nie pasuje do filtrów.":"Nie ma jeszcze żadnych materiałów."),1)),v.value.meta.last_page>1?(a(),l("nav",rt,[n("button",{class:"btn small",type:"button",disabled:p.value.page<=1,onClick:e[6]||(e[6]=t=>I(p.value.page-1))},"← Poprzednia",8,pt),n("span",dt,o(p.value.page)+" / "+o(v.value.meta.last_page),1),n("button",{class:"btn small",type:"button",disabled:p.value.page>=v.value.meta.last_page,onClick:e[7]||(e[7]=t=>I(p.value.page+1))},"Następna →",8,ct)])):m("",!0)],64)):(a(),l("div",Re,[...e[16]||(e[16]=[n("div",{class:"skeleton"},null,-1),n("div",{class:"skeleton"},null,-1)])]))])}}});export{gt as default};