Compare commits
1 Commits
0f4370626c
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 5b5a96d276 |
@@ -11,7 +11,7 @@ Bygget til eksamen mandag **1. juni 2026**, men generelt nyttig for faget.
|
|||||||
|
|
||||||
- **Fast-track** — hele pensum kondensert til 5 moduler etter eksamensstrukturen, gjentakelsesfritt, med huskeregler, eksempler og «eksamensfeller». Egen fremdriftsmåler (lest-markering lagres lokalt)
|
- **Fast-track** — hele pensum kondensert til 5 moduler etter eksamensstrukturen, gjentakelsesfritt, med huskeregler, eksempler og «eksamensfeller». Egen fremdriftsmåler (lest-markering lagres lokalt)
|
||||||
- **Sammendrag** av alle 12 forelesninger som lesbare sider
|
- **Sammendrag** av alle 12 forelesninger som lesbare sider
|
||||||
- **120 flashcards** med flip-animasjon, kategori-filter og «glemt/ok/kunne»-markering
|
- **150 flashcards** med flip-animasjon, kategori-filter og «glemt/ok/kunne»-markering — inkl. et eget **Fast-track-sett** (30 konsise kort som tester huskereglene og eksamensfellene; nås direkte fra Fast-track-siden eller via `#/flashcards/fasttrack`)
|
||||||
- **49 quiz-spørsmål** med umiddelbar feedback og forklaringer
|
- **49 quiz-spørsmål** med umiddelbar feedback og forklaringer
|
||||||
- **16 eksamenstrener-oppgaver** med sjekkliste, veiledet svar og tips
|
- **16 eksamenstrener-oppgaver** med sjekkliste, veiledet svar og tips
|
||||||
- **tl;dr** — det aller viktigste destillert til én side (for siste-minutts pugging på bussen)
|
- **tl;dr** — det aller viktigste destillert til én side (for siste-minutts pugging på bussen)
|
||||||
|
|||||||
@@ -2234,3 +2234,57 @@ blockquote {
|
|||||||
.ft-promo__card { flex-direction: column; align-items: flex-start; gap: var(--sp-3); }
|
.ft-promo__card { flex-direction: column; align-items: flex-start; gap: var(--sp-3); }
|
||||||
.ft-promo__arrow { align-self: flex-end; }
|
.ft-promo__arrow { align-self: flex-end; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Fast-track: test-CTA på landingssiden */
|
||||||
|
.ft-test {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
gap: var(--sp-5);
|
||||||
|
margin-top: var(--sp-7);
|
||||||
|
padding: var(--sp-5) var(--sp-6);
|
||||||
|
background: var(--surface);
|
||||||
|
border: 1px solid var(--line);
|
||||||
|
border-left: 3px solid var(--accent-2);
|
||||||
|
border-radius: var(--radius-lg);
|
||||||
|
}
|
||||||
|
.ft-test__label {
|
||||||
|
font-family: var(--f-mono);
|
||||||
|
font-size: var(--s-0);
|
||||||
|
letter-spacing: 0.18em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
color: var(--accent-2);
|
||||||
|
margin-bottom: 6px;
|
||||||
|
}
|
||||||
|
.ft-test__title {
|
||||||
|
font-family: var(--f-display);
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: var(--s-5);
|
||||||
|
color: var(--ink);
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
.ft-test__title em { font-style: italic; color: var(--accent-2); }
|
||||||
|
.ft-test__desc {
|
||||||
|
font-size: var(--s-1);
|
||||||
|
line-height: 1.55;
|
||||||
|
color: var(--ink-2);
|
||||||
|
max-width: 56ch;
|
||||||
|
}
|
||||||
|
.ft-test__cta {
|
||||||
|
flex-shrink: 0;
|
||||||
|
font-family: var(--f-mono);
|
||||||
|
font-size: var(--s-1);
|
||||||
|
letter-spacing: 0.04em;
|
||||||
|
color: var(--bg);
|
||||||
|
background: var(--accent-2);
|
||||||
|
border-radius: 99px;
|
||||||
|
padding: 12px 22px;
|
||||||
|
white-space: nowrap;
|
||||||
|
transition: transform 0.2s var(--ease), filter 0.2s;
|
||||||
|
}
|
||||||
|
.ft-test__cta:hover { transform: translateX(4px); filter: brightness(1.08); }
|
||||||
|
|
||||||
|
@media (max-width: 640px) {
|
||||||
|
.ft-test { flex-direction: column; align-items: flex-start; }
|
||||||
|
.ft-test__cta { align-self: stretch; text-align: center; }
|
||||||
|
}
|
||||||
|
|||||||
@@ -958,5 +958,215 @@
|
|||||||
"week": 8,
|
"week": 8,
|
||||||
"front": "Hvordan kobles eksternaliteter til Brundtlands bærekraftdefinisjon?",
|
"front": "Hvordan kobles eksternaliteter til Brundtlands bærekraftdefinisjon?",
|
||||||
"back": "Negative eksternaliteter (klimagassutslipp, forurensning) er det operative bærekraftproblemet. Brundtlands definisjon krever at vi internaliserer disse – ellers ødelegger vi for fremtidige generasjoner. CSR = ta ansvar for negative eksternaliteter."
|
"back": "Negative eksternaliteter (klimagassutslipp, forurensning) er det operative bærekraftproblemet. Brundtlands definisjon krever at vi internaliserer disse – ellers ødelegger vi for fremtidige generasjoner. CSR = ta ansvar for negative eksternaliteter."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-001",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 1 · Etikk",
|
||||||
|
"front": "Etikk vs. moral vs. jus — på tre ord?",
|
||||||
|
"back": "<strong>Etikk = teori</strong> (systematisk refleksjon, et fag). <strong>Moral = praksis</strong> (praktiserte normer). <strong>Jus = paragraf</strong> (formelt regelverk håndhevet av staten)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-002",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 1 · Etikk",
|
||||||
|
"front": "Normativ vs. deskriptiv etikk?",
|
||||||
|
"back": "Normativ = hva man <em>bør</em> gjøre (gir veiledning). Deskriptiv = hva folk <em>faktisk</em> mener (beskriver, dømmer ikke)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-003",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 1 · Etikk",
|
||||||
|
"front": "Etisk dilemma vs. moralsk dilemma?",
|
||||||
|
"back": "Etisk dilemma = konflikt mellom <strong>prinsipper/teorier</strong>. Moralsk dilemma = konflikt om hva man <strong>faktisk burde gjøre</strong> her og nå."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-004",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 1 · Etikk",
|
||||||
|
"front": "Ekte vs. falskt dilemma?",
|
||||||
|
"back": "Ekte = begge valg like gode/dårlige, ingen åpenbar fasit (poenget er <strong>god argumentasjon</strong>). Falskt = det er klart hva som er riktig, men fristende å velge noe annet av egeninteresse."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-005",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 1 · Etikk",
|
||||||
|
"front": "De 6 etiske prinsippene — med huskeregel?",
|
||||||
|
"back": "<strong>«La Alle Velge Ikke-skadelig, Rettferdig og Forsiktig»</strong>: Likhet, Autonomi, Velgjørenhet, Ikke-skade, Rettferdighet, Føre-var."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-006",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 1 · Etikk",
|
||||||
|
"front": "Likhet vs. rettferdighet?",
|
||||||
|
"back": "Likhet = <strong>samme</strong> behandling. Rettferdighet = <strong>rimelig</strong> behandling (ulike behov → ulik behandling). Eks: utvidet eksamenstid ved dysleksi er rettferdig, men ikke likt — og helt riktig."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-007",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 1 · Etikk",
|
||||||
|
"front": "Ikke-skade vs. føre-var?",
|
||||||
|
"back": "Ikke-skade = <strong>vi vet det er farlig</strong> (kjent risiko, f.eks. stopp et bevist diskriminerende KI-system). Føre-var = <strong>vi vet ikke nok</strong> (usikker, men potensielt alvorlig risiko → test grundig før lansering)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-008",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 2 · Etikk",
|
||||||
|
"front": "De tre etiske teoriene + opphav — huskeregel?",
|
||||||
|
"back": "<strong>De 3 R-ene:</strong> Resultat = <strong>Mill</strong> (konsekvens/utilitarisme), Regel = <strong>Kant</strong> (pliktetikk), Rollemodell = <strong>Aristoteles</strong> (dydsetikk)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-009",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 2 · Etikk",
|
||||||
|
"front": "Kants kategoriske imperativ — de to formuleringene?",
|
||||||
|
"back": "1) <strong>Universaliserbarhet:</strong> handle bare etter en maksime du kan ville skal bli allmenn lov («ville det vært greit om alle gjorde dette?»). 2) <strong>Humanitet:</strong> behandle mennesker alltid som mål, aldri bare som middel."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-010",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 2 · Etikk",
|
||||||
|
"front": "Konsekvensetikk vs. ikke-konsekvensetikk — vanligste felle?",
|
||||||
|
"back": "At <strong>konsekvensene avgjør</strong> moralsk riktighet er kjernen i utilitarisme (Mill) og <strong>feil for Kant</strong> — hos Kant ligger verdien i motivet/viljen, ikke utfallet."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-011",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 2 · Etikk",
|
||||||
|
"front": "Hva er dydsetikkens særtrekk (Aristoteles)?",
|
||||||
|
"back": "Karakter framfor regler/utfall. Krever <strong>praktisk klokskap (phronesis)</strong> og situasjonsforståelse — kan ikke reduseres til faste regler. Mål: <strong>eudaimonia</strong> (det gode liv)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-012",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 2 · Etikk",
|
||||||
|
"front": "Kvalnes' Navigasjonshjul — de seks perspektivene?",
|
||||||
|
"back": "<strong>JIMØØE:</strong> Juss (lovlig?), Identitet (verdiene våre?), Moral (riktig?), Omdømme (troverdig?), Økonomi (lønner det seg?), Etikk (lar det seg begrunne?). Bruk alle seks på casen."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-013",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 3 · Bærekraft",
|
||||||
|
"front": "Brundtland-definisjonen (1987) — ordrett?",
|
||||||
|
"back": "«En utvikling som imøtekommer dagens behov uten å ødelegge mulighetene for at kommende generasjoner skal få dekket sine behov.»"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-014",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 3 · Bærekraft",
|
||||||
|
"front": "Triple Bottom Line (Elkington)?",
|
||||||
|
"back": "<strong>3 P-er:</strong> People · Planet · Profit. Bærekraft er balansen i snittet. SDG-«kaken»: økonomi ligger inni samfunn, som ligger inni biosfæren — ikke tre likestilte søyler."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-015",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 3 · Bærekraft",
|
||||||
|
"front": "Svak vs. sterk bærekraft?",
|
||||||
|
"back": "Svak = naturkapital kan <strong>erstattes</strong> av annen kapital. Sterk = naturkapital er <strong>kritisk og uerstattelig</strong>."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-016",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 3 · Bærekraft",
|
||||||
|
"front": "Planetens tålegrenser — antall og status?",
|
||||||
|
"back": "<strong>9 grenser</strong> (Stockholm Resilience Centre, fra 2009) for et trygt handlingsrom. Per 2023/25 er <strong>6–7 av 9 overskredet</strong> (bl.a. klima, biologisk mangfold, nitrogen/fosfor)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-017",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 3 · Bærekraft",
|
||||||
|
"front": "Smultringmodellen (Raworth 2017)?",
|
||||||
|
"back": "Indre ring = <strong>sosialt fundament</strong> (under = underforbruk). Ytre ring = <strong>økologisk tak</strong> = tålegrensene (over = overforbruk). Mellom: «et trygt og rettferdig rom for menneskeheten»."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-018",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 3 · Bærekraft",
|
||||||
|
"front": "Bærekraft vs. sirkulær økonomi — felle?",
|
||||||
|
"back": "<strong>Ikke det samme.</strong> Bærekraft = det brede målet (People/Planet/Profit). Sirkulær økonomi = ett <em>verktøy</em> for miljøpilaren. Sirkulær ≠ automatisk bærekraftig (kan være sosialt urettferdig)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-019",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 3 · Bærekraft",
|
||||||
|
"front": "Degrowth: fire pilarer + Hickels poeng?",
|
||||||
|
"back": "Pilarer: <strong>Ressursbevissthet, Rettferdighet, Lokalisering, Livskvalitet</strong>. Hickel: grønn vekst gir bare <strong>relativ</strong> frikobling (utslipp øker saktere enn BNP), mens klimamål krever <strong>absolutt</strong> (utslipp går ned mens BNP vokser)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-020",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 4 · Samfunnsansvar",
|
||||||
|
"front": "CSR vs. CSV?",
|
||||||
|
"back": "CSR = ansvar utover loven, ofte «ved siden av» kjernevirksomheten (filantropi, eksternt press). CSV (Porter & Kramer 2006) = skap <strong>felles verdi</strong> — tjen penger <em>ved å</em> løse samfunnsproblemer, integrert i strategien."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-021",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 4 · Samfunnsansvar",
|
||||||
|
"front": "Carrolls pyramide (1991) — nedenfra og opp?",
|
||||||
|
"back": "<strong>Tjen → Følg → Gjør rett → Gi tilbake:</strong> Økonomisk (vær lønnsom, grunnlaget) → Juridisk (adlyd loven) → Etisk (gjør det rette) → Filantropisk (god bedriftsborger)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-022",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 4 · Samfunnsansvar",
|
||||||
|
"front": "Den klassiske CSR-debatten — fire navn?",
|
||||||
|
"back": "<strong>Bowen (1953)</strong> CSR-far, moralsk ansvar. <strong>Friedman (1970)</strong> kun aksjonærverdi. <strong>Freeman (1984)</strong> stakeholder-teori. <strong>Bakan (2004)</strong> «institusjonalisert psykopati» → krever regulering."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-023",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 4 · Samfunnsansvar",
|
||||||
|
"front": "Mitchells modell (1997) — attributter og toppkategori?",
|
||||||
|
"back": "<strong>MLH:</strong> Makt, Legitimitet, Hastverk → 7 typer. <strong>Avgjørende</strong> = alle tre (høyest prioritet). Miljøaktivist har ofte legitimitet+hastverk uten makt → <em>avhengig</em>, til den allierer seg og blir avgjørende."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-024",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 4 · Samfunnsansvar",
|
||||||
|
"front": "Institusjon vs. virksomhet + isomorfisme + Scotts søyler?",
|
||||||
|
"back": "Institusjon = de usynlige reglene/normene; virksomhet = aktøren som tilpasser seg for <strong>legitimitet</strong>. <strong>Isomorfisme</strong> = organisasjoner blir like pga. press. Scotts søyler: regulativ (lover), normativ (verdier), kulturell-kognitiv («slik gjør vi det her»)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-025",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 4 · Samfunnsansvar",
|
||||||
|
"front": "Eksternaliteter — typer og kobling til CSR?",
|
||||||
|
"back": "Kostnad/fordel som rammer tredjepart uten å fanges av markedsprisen. Negativ = forurensning; positiv = utdanning/vaksinasjon. <strong>Samfunnsansvarlig drift = ta ansvar for de negative = positiv nettoeffekt.</strong>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-026",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 4 · Samfunnsansvar",
|
||||||
|
"front": "Sosial pilar: intern vs. ekstern (+ norsk poeng)?",
|
||||||
|
"back": "Intern: Obligatorisk (lov) → Avtalt (tariff) → <strong>Frivillig (= ekte CSR)</strong>. Ekstern: filantropi, sponsing, Cause Related Marketing. Norsk poeng: mye «ansattgoder» er <em>lovpålagt</em> i Norge → da ikke CSR, men plikt."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-027",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 5 · Verktøy",
|
||||||
|
"front": "Obligatorisk vs. frivillig verktøykasse + ISO-felle?",
|
||||||
|
"back": "Obligatorisk: CSRD, Åpenhetsloven, Regnskapsloven §3-3c, Grunnloven §112. Frivillig: ISO, GRI, Code of Conduct, miljømerker. <strong>Felle: ISO 26000 kan IKKE sertifiseres</strong> (kun veiledende); ISO 14001 og 9001 kan."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-028",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 5 · Verktøy",
|
||||||
|
"front": "CSRD + dobbel vesentlighet?",
|
||||||
|
"back": "CSRD = lovpålagt ESG-rapportering (innfases 2024→2026). <strong>Dobbel vesentlighet = «inn og ut»:</strong> UT = vår påvirkning på klima/samfunn (impact), INN = bærekraftens påvirkning på vår økonomi (financial). Vesentlig i minst ett = inkluderes."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-029",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 5 · Verktøy",
|
||||||
|
"front": "De fem implementeringsstegene?",
|
||||||
|
"back": "<strong>PIRVO:</strong> Planlegging → Interessentdialog → Rapportering → Verifikasjon → Oppfølging. Skill «strategi <em>for</em> bærekraft» (sidespor) fra «bærekraft <em>i</em> strategien» (modent = proaktiv = CSV)."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ft-030",
|
||||||
|
"category": "fasttrack",
|
||||||
|
"subcategory": "Modul 5 · Verktøy",
|
||||||
|
"front": "Case-oppskriften (oppgave 4) — fem trinn?",
|
||||||
|
"back": "1) Identifiser utfordringer + interessenter. 2) Velg teori(er), navngi opphav + årstall. 3) Anvend konkret (Mitchell? Carroll-nivå? eksternaliteter?). 4) Drøft alternativer (Friedman vs. Freeman, Navigasjonshjulet). 5) <strong>Konkluder med standpunkt</strong> — og begrunn."
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -377,6 +377,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<div class="ft-grid" id="ftGrid"></div>
|
<div class="ft-grid" id="ftGrid"></div>
|
||||||
|
|
||||||
|
<div class="ft-test reveal">
|
||||||
|
<div class="ft-test__body">
|
||||||
|
<div class="ft-test__label">Når du har lest</div>
|
||||||
|
<div class="ft-test__title">Test deg på <em>30 Fast-track-kort</em></div>
|
||||||
|
<div class="ft-test__desc">Konsise flashcards som tester nøyaktig huskereglene, skillene og eksamensfellene fra modulene.</div>
|
||||||
|
</div>
|
||||||
|
<a href="#/flashcards/fasttrack" class="ft-test__cta" data-route="flashcards">Start flashcards →</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ function parseRoute() {
|
|||||||
return parts[1] ? { name: 'fasttrack-module', moduleId: parseInt(parts[1], 10) } : { name: 'fasttrack' };
|
return parts[1] ? { name: 'fasttrack-module', moduleId: parseInt(parts[1], 10) } : { name: 'fasttrack' };
|
||||||
}
|
}
|
||||||
if (parts[0] === 'tldr') return { name: 'tldr' };
|
if (parts[0] === 'tldr') return { name: 'tldr' };
|
||||||
if (parts[0] === 'flashcards') return { name: 'flashcards' };
|
if (parts[0] === 'flashcards') return { name: 'flashcards', filter: parts[1] || null };
|
||||||
if (parts[0] === 'quiz') return { name: 'quiz' };
|
if (parts[0] === 'quiz') return { name: 'quiz' };
|
||||||
if (parts[0] === 'eksamen') return { name: 'eksamen' };
|
if (parts[0] === 'eksamen') return { name: 'eksamen' };
|
||||||
return { name: 'home' };
|
return { name: 'home' };
|
||||||
@@ -73,7 +73,7 @@ async function route() {
|
|||||||
crumbCurrent.textContent = crumb;
|
crumbCurrent.textContent = crumb;
|
||||||
|
|
||||||
// After DOM is in place, init relevant mode
|
// After DOM is in place, init relevant mode
|
||||||
if (r.name === 'flashcards') await SMF.fcInit();
|
if (r.name === 'flashcards') await SMF.fcInit(r.filter);
|
||||||
else if (r.name === 'quiz') await SMF.quizInit();
|
else if (r.name === 'quiz') await SMF.quizInit();
|
||||||
else if (r.name === 'eksamen') await SMF.examInit();
|
else if (r.name === 'eksamen') await SMF.examInit();
|
||||||
|
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ function fcRender() {
|
|||||||
|
|
||||||
function categoryLabel(cat) {
|
function categoryLabel(cat) {
|
||||||
return {
|
return {
|
||||||
|
fasttrack: 'Fast-track',
|
||||||
etikk: 'Etikk',
|
etikk: 'Etikk',
|
||||||
baerekraft: 'Bærekraft',
|
baerekraft: 'Bærekraft',
|
||||||
samfunn: 'Samfunnsansvar',
|
samfunn: 'Samfunnsansvar',
|
||||||
@@ -100,6 +101,7 @@ function fcRenderFilters() {
|
|||||||
if (!container) return;
|
if (!container) return;
|
||||||
const filters = [
|
const filters = [
|
||||||
{ id: 'all', label: 'Alle' },
|
{ id: 'all', label: 'Alle' },
|
||||||
|
{ id: 'fasttrack', label: '» Fast-track' },
|
||||||
{ id: 'new', label: 'Nye' },
|
{ id: 'new', label: 'Nye' },
|
||||||
{ id: 'hard', label: 'Glemt' },
|
{ id: 'hard', label: 'Glemt' },
|
||||||
{ id: 'etikk', label: 'Etikk' },
|
{ id: 'etikk', label: 'Etikk' },
|
||||||
@@ -144,8 +146,13 @@ function fcMark(level) {
|
|||||||
fcNext();
|
fcNext();
|
||||||
}
|
}
|
||||||
|
|
||||||
async function fcInit() {
|
async function fcInit(initialFilter) {
|
||||||
await fcLoad();
|
await fcLoad();
|
||||||
|
// Dyplenke, f.eks. #/flashcards/fasttrack — sett startfilter hvis gyldig
|
||||||
|
if (initialFilter) {
|
||||||
|
const valid = ['all', 'fasttrack', 'new', 'hard', 'etikk', 'baerekraft', 'samfunn', 'verktoy', 'case'];
|
||||||
|
if (valid.includes(initialFilter)) fcState.filter = initialFilter;
|
||||||
|
}
|
||||||
fcState.cards = fcFilterCards(fcState.filter);
|
fcState.cards = fcFilterCards(fcState.filter);
|
||||||
fcShuffle(fcState.cards);
|
fcShuffle(fcState.cards);
|
||||||
fcState.index = 0;
|
fcState.index = 0;
|
||||||
@@ -177,7 +184,7 @@ async function fcInit() {
|
|||||||
|
|
||||||
// Keyboard
|
// Keyboard
|
||||||
const handler = (e) => {
|
const handler = (e) => {
|
||||||
if (location.hash !== '#/flashcards') {
|
if (!location.hash.startsWith('#/flashcards')) {
|
||||||
document.removeEventListener('keydown', handler);
|
document.removeEventListener('keydown', handler);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user