Files
sm-bm-plugin/public/assets/DashboardView-DaYpKExT.js
Jakub Zych 85cae45cb9 build: frontend with Microsoft 365 sign-in
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.
2026-10-21 00:23:38 +02:00

2 lines
5.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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};