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