The student app's login page offers Microsoft 365 when the provider is configured, /auth/oauth/callback redeems the one-time code, a consent screen finishes a first sign-in, the profile attaches Microsoft through a link ticket, and the service worker leaves /oauth alone. The build also carries the summer presentation theme already committed in the frontend sources.
2 lines
5.7 KiB
JavaScript
2 lines
5.7 KiB
JavaScript
import{_ as S}from"./PageHead.vue_vue_type_script_setup_true_lang-CDCZ4Rtf.js";import{_ as R}from"./LoadState.vue_vue_type_script_setup_true_lang-kcp_S1mN.js";import{_ as $}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-CDvlOQSu.js";import{d as F,u as P,y as V,o as E,c as o,i as u,j as p,e as i,r as M,x as d,n,z as b,b as e,t as a,p as m,f as v,F as j,B as D,C as A,l as Z}from"./index-DmTksCHf.js";import{f as I,m as T,r as q,c as C,a as B,b as K,F as O,d as Q,e as U,K as W,g as G}from"./format-bcE-cYHJ.js";const H={class:"eyebrow"},J={id:"meeting-h",style:{margin:"4px 0 6px"}},X={style:{margin:"0 0 6px"}},Y={key:0,class:"muted small",style:{margin:"0 0 6px"}},ee={key:1,class:"muted small",style:{margin:"0 0 8px"}},se={key:1,class:"card"},ae={class:"grid-2 section"},te={"aria-labelledby":"next-h"},le={class:"section-head"},oe={key:0,class:"rows"},ne={class:"row-main"},ie={class:"title"},re={class:"when"},de={class:"muted small"},ue={key:0,class:"badge online"},me={key:1,class:"badge onsite"},ce={key:1,class:"empty"},_e={"aria-labelledby":"dl-h"},pe={class:"section-head"},ye={key:0,class:"rows"},ve={class:"row-main"},ze={class:"title"},he={class:"muted small"},ge={key:0},be={key:1,class:"empty"},ke={class:"grid-2 section"},we={class:"card","aria-labelledby":"read-h"},fe={style:{margin:"0 0 8px"}},xe={class:"big-num"},je={class:"muted"},De=["aria-valuenow"],Te={class:"muted small",style:{margin:"8px 0 10px"}},qe={class:"card","aria-labelledby":"quiz-h"},$e=F({__name:"DashboardView",setup(Ce){const k=P(),l=V(),_=M(new Date);E(()=>{_.value=new Date,Promise.all([l.loadDashboard(),l.loadCourses(),l.loadSchedule(),l.loadDeadlines(),l.loadReadings()])});const N=d(()=>l.loaded.schedule&&l.loaded.courses&&l.loaded.readings&&l.loaded.deadlines&&l.loaded.dashboard),r=d(()=>l.dashboard?.current_meeting??l.dashboard?.next_meeting??null),h=d(()=>!!l.dashboard?.current_meeting),g=d(()=>G(r.value?.notes)),w=d(()=>l.schedule.filter(z=>Date.parse(z.ends_at)>_.value.getTime()).slice(0,5)),f=d(()=>l.deadlines.filter(z=>Date.parse(z.due_at)>=_.value.getTime()).slice(0,5)),c=d(()=>l.readingStats),x=d(()=>c.value.requiredTotal?Math.round(c.value.requiredRead/c.value.requiredTotal*100):0),L=d(()=>k.user?.name?`Cześć, ${k.user.name}`:"Pulpit");return(z,s)=>{const y=Z("router-link");return n(),o("div",null,[u(S,{eyebrow:"Pulpit",title:L.value},null,8,["title"]),u(R,{ready:N.value,error:i(l).error,onRetry:s[0]||(s[0]=t=>i(l).retry())},{default:p(()=>[u($),r.value?(n(),o("section",{key:0,class:b(["card accent",{hl:h.value}]),"aria-labelledby":"meeting-h"},[e("span",H,a(h.value?"Trwa zjazd":"Najbliższy zjazd"),1),e("h2",J,"Zjazd "+a(r.value.number),1),e("p",X,[m(a(i(I)(r.value.starts_on,r.value.ends_on))+" ",1),g.value?(n(),o("span",{key:0,class:b(["badge",g.value==="online"?"online":"onsite"]),style:{"margin-left":"6px"}},a(g.value),3)):v("",!0)]),i(T)(r.value.notes)?(n(),o("p",Y,a(i(T)(r.value.notes)),1)):v("",!0),h.value?v("",!0):(n(),o("p",ee,a(i(q)(`${r.value.starts_on}T12:00:00+02:00`,_.value))+" · "+a(i(C)(r.value.sessions_count,"zajęcia","zajęcia","zajęć")),1)),u(y,{class:"btn small",to:{name:"schedule",query:{zjazd:r.value.number}}},{default:p(()=>[...s[1]||(s[1]=[m("Zobacz plan zjazdu",-1)])]),_:1},8,["to"])],2)):(n(),o("section",se,[...s[2]||(s[2]=[e("p",{class:"muted",style:{margin:"0"}},"Brak zaplanowanych zjazdów.",-1)])])),e("div",ae,[e("section",te,[e("div",le,[s[4]||(s[4]=e("h2",{id:"next-h"},"Najbliższe zajęcia",-1)),u(y,{to:"/plan",class:"small"},{default:p(()=>[...s[3]||(s[3]=[m("Cały plan",-1)])]),_:1})]),w.value.length?(n(),o("ul",oe,[(n(!0),o(j,null,D(w.value,t=>(n(),o("li",{key:t.id},[e("div",ne,[e("span",ie,a(t.course.name),1),e("span",re,a(i(B)(t.starts_at))+"–"+a(i(B)(t.ends_at)),1)]),e("div",de,[m(a(i(K)(t.starts_at))+" · "+a(i(O)[t.course.form])+" ",1),t.is_online?(n(),o("span",ue,"online")):t.room?(n(),o("span",me,"sala "+a(t.room),1)):v("",!0)])]))),128))])):(n(),o("p",ce,"Nie ma już zaplanowanych zajęć."))]),e("section",_e,[e("div",pe,[s[6]||(s[6]=e("h2",{id:"dl-h"},"Terminy",-1)),u(y,{to:"/terminarz",class:"small"},{default:p(()=>[...s[5]||(s[5]=[m("Terminarz",-1)])]),_:1})]),f.value.length?(n(),o("ul",ye,[(n(!0),o(j,null,D(f.value,t=>(n(),o("li",{key:t.id},[e("div",ve,[e("span",ze,a(t.title),1),e("span",{class:b(["badge",{alert:i(Q)(t.due_at,_.value)<=3}])},a(i(q)(t.due_at,_.value)),3)]),e("div",he,[m(a(i(U)(t.due_at))+" · "+a(i(W)[t.kind]),1),t.course?(n(),o("span",ge," · "+a(t.course.name),1)):v("",!0)])]))),128))])):(n(),o("p",be,"Brak nadchodzących terminów."))])]),e("div",ke,[e("section",we,[s[8]||(s[8]=e("span",{class:"eyebrow"},"Lektury",-1)),s[9]||(s[9]=e("h2",{id:"read-h",style:{margin:"4px 0 8px"}},"Postęp czytania",-1)),e("p",fe,[e("span",xe,a(c.value.requiredRead),1),e("span",je," z "+a(c.value.requiredTotal)+" obowiązkowych",1)]),e("div",{class:"progress-bar",role:"progressbar","aria-valuenow":x.value,"aria-valuemin":"0","aria-valuemax":"100","aria-label":"Przeczytane lektury obowiązkowe"},[e("span",{style:A({width:x.value+"%"})},null,4)],8,De),e("p",Te,"Łącznie przeczytano "+a(c.value.read)+" z "+a(i(C)(c.value.total,"lektury","lektur","lektur"))+".",1),u(y,{class:"btn small",to:"/lektury"},{default:p(()=>[...s[7]||(s[7]=[m("Lista lektur",-1)])]),_:1})]),e("section",qe,[s[11]||(s[11]=e("span",{class:"eyebrow"},"Quizy",-1)),s[12]||(s[12]=e("h2",{id:"quiz-h",style:{margin:"4px 0 8px"}},"Sprawdź się",-1)),s[13]||(s[13]=e("p",{class:"muted",style:{margin:"0 0 12px"}},"Fiszki z powtórki: losuj po 5 pytań, oznaczaj Wiem / Nie wiem i wracaj do tych, których nie znasz.",-1)),u(y,{class:"btn primary small",to:"/quizy"},{default:p(()=>[...s[10]||(s[10]=[m("Zacznij quiz",-1)])]),_:1})])])]),_:1},8,["ready","error"])])}}});export{$e as default};
|