Files
sm-bm-plugin/public/assets/CoursesView-DvtsdI11.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
2.5 KiB
JavaScript

import{_ as C}from"./PageHead.vue_vue_type_script_setup_true_lang-CDCZ4Rtf.js";import{_ as w}from"./LoadState.vue_vue_type_script_setup_true_lang-kcp_S1mN.js";import{_ as B}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-CDvlOQSu.js";import{d as x,y as z,E as $,o as S,c as t,i as m,j as k,e as r,n as s,b as o,F as c,B as v,f as n,r as E,x as h,l as V,t as a,s as j,G as F,p as _}from"./index-DmTksCHf.js";import{F as N,c as f}from"./format-bcE-cYHJ.js";const L={key:0,class:"chips",role:"group","aria-label":"Semestr"},M=["aria-pressed"],P=["aria-pressed","onClick"],R={key:1,class:"stack",style:{"margin-top":"10px"}},T={class:"row-main"},A={class:"badge"},D={class:"muted small",style:{margin:"0 0 6px"}},G={key:0},O={key:1},U={key:2},W={class:"small",style:{margin:"0"}},q={key:0,class:"badge alert"},H={class:"muted"},I={key:2,class:"empty"},se=x({__name:"CoursesView",setup(J){const i=z(),g=$(),l=E(null);S(()=>{i.loadCourses()});const p=h(()=>[...new Set((i.courses??[]).map(u=>u.semester))].sort((u,d)=>u-d)),y=h(()=>i.visibleCourses.filter(u=>l.value===null||u.semester===l.value));return(u,d)=>{const b=V("router-link");return s(),t("div",null,[m(C,{eyebrow:"Program studiów",title:"Przedmioty"}),m(w,{ready:r(i).loaded.courses,error:r(i).error,onRetry:d[1]||(d[1]=e=>r(i).retry())},{default:k(()=>[m(B),p.value.length>1?(s(),t("div",L,[o("button",{class:"chip",type:"button","aria-pressed":l.value===null,onClick:d[0]||(d[0]=e=>l.value=null)},"Wszystkie",8,M),(s(!0),t(c,null,v(p.value,e=>(s(),t("button",{key:e,class:"chip",type:"button","aria-pressed":l.value===e,onClick:K=>l.value=e},"Semestr "+a(e),9,P))),128))])):n("",!0),y.value.length?(s(),t("div",R,[(s(!0),t(c,null,v(y.value,e=>(s(),j(b,{key:e.id,to:`/przedmioty/${e.id}`,class:"card link"},{default:k(()=>[o("div",T,[o("h3",null,a(e.name),1),o("span",A,a(r(N)[e.form]),1)]),o("p",D,[e.lecturer?(s(),t("span",G,a(e.lecturer),1)):n("",!0),e.ects?(s(),t("span",O," · "+a(e.ects)+" ECTS",1)):n("",!0),e.assessment?(s(),t("span",U," · "+a(e.assessment),1)):n("",!0)]),o("p",W,[r(F)(e,r(g).choices)?(s(),t("span",q,"do wyboru")):n("",!0),o("span",H,[_(a(r(f)(e.counts.sessions,"zajęcia","zajęcia","zajęć")),1),e.counts.readings?(s(),t(c,{key:0},[_(" · lektury "+a(e.counts.readings_read)+"/"+a(e.counts.readings),1)],64)):n("",!0),e.counts.materials?(s(),t(c,{key:1},[_(" · "+a(r(f)(e.counts.materials,"materiał","materiały","materiałów")),1)],64)):n("",!0)])])]),_:2},1032,["to"]))),128))])):(s(),t("p",I,"Brak przedmiotów."))]),_:1},8,["ready","error"])])}}});export{se as default};