Files
sm-bm-plugin/public/assets/DeadlinesView-DZberJ2O.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 x}from"./PageHead.vue_vue_type_script_setup_true_lang-CDCZ4Rtf.js";import{_ as B}from"./LoadState.vue_vue_type_script_setup_true_lang-kcp_S1mN.js";import{_ as C}from"./ElectiveBar.vue_vue_type_script_setup_true_lang-CDvlOQSu.js";import{d as $,y as N,o as T,c as a,i as u,j as f,e as s,r as h,n as o,F as p,B as k,b as n,t,f as _,x as g,l as V,z as L,p as v}from"./index-DmTksCHf.js";import{d as w,r as M,b as D,a as j,K as b,c as E}from"./format-bcE-cYHJ.js";const F={key:0,class:"rows card"},K={class:"row-main"},P={class:"title"},S={class:"muted small"},A={class:"badge"},I={key:0,class:"small",style:{margin:"6px 0 0"}},R={key:1,class:"empty"},U={key:2,class:"section"},Z=["aria-pressed"],q={key:0,class:"rows card past",style:{"margin-top":"10px"}},G={class:"row-main"},H={class:"title"},J={class:"when"},O={class:"muted small"},te=$({__name:"DeadlinesView",setup(Q){const r=N(),i=h(new Date),d=h(!1);T(()=>{i.value=new Date,Promise.all([r.loadDeadlines(),r.loadCourses()])});const y=g(()=>r.deadlines.filter(c=>Date.parse(c.due_at)>=i.value.getTime())),m=g(()=>r.deadlines.filter(c=>Date.parse(c.due_at)<i.value.getTime()).reverse());return(c,l)=>{const z=V("router-link");return o(),a("div",null,[u(x,{eyebrow:"Zaliczenia, egzaminy, sprawy organizacyjne",title:"Terminarz"}),u(B,{ready:s(r).loaded.deadlines&&s(r).loaded.courses,error:s(r).error,onRetry:l[1]||(l[1]=e=>s(r).retry())},{default:f(()=>[u(C),y.value.length?(o(),a("ul",F,[(o(!0),a(p,null,k(y.value,e=>(o(),a("li",{key:e.id},[n("div",K,[n("span",P,t(e.title),1),n("span",{class:L(["badge",{alert:s(w)(e.due_at,i.value)<=3}])},t(s(M)(e.due_at,i.value)),3)]),n("div",S,[v(t(s(D)(e.due_at))+", "+t(s(j)(e.due_at))+" · ",1),n("span",A,t(s(b)[e.kind]),1),e.course?(o(),a(p,{key:0},[l[2]||(l[2]=v(" · ",-1)),u(z,{to:`/przedmioty/${e.course.id}`},{default:f(()=>[v(t(e.course.name),1)]),_:2},1032,["to"])],64)):_("",!0)]),e.description?(o(),a("p",I,t(e.description),1)):_("",!0)]))),128))])):(o(),a("p",R,"Brak nadchodzących terminów.")),m.value.length?(o(),a("div",U,[n("button",{class:"chip",type:"button","aria-pressed":d.value,onClick:l[0]||(l[0]=e=>d.value=!d.value)},"Minione ("+t(m.value.length)+")",9,Z),d.value?(o(),a("ul",q,[(o(!0),a(p,null,k(m.value,e=>(o(),a("li",{key:e.id},[n("div",G,[n("span",H,t(e.title),1),n("span",J,t(s(E)(Math.abs(s(w)(e.due_at,i.value)),"dzień","dni","dni"))+" temu",1)]),n("div",O,t(s(D)(e.due_at))+" · "+t(s(b)[e.kind]),1)]))),128))])):_("",!0)])):_("",!0)]),_:1},8,["ready","error"])])}}});export{te as default};