Specifikation: Jönköping Kommun - Gränssnitt
Variant
Vklass V2 (vklassv2).
Roller
- Administratör (
admin.html) - organisationsadministratör som hanterar två separata logotyper. - Rektor (
rektor.html) - MainWeb-representant som ser gränssnittslogotypen när organisationen är entydig. - Lärare (
teacher.html) - MainWeb-representant som ser gränssnittslogotypen på desktop/tablet och fallback när villkor saknas. - Elev (
student.html) - MainWeb-representant som ser telefonundantag och fallback. - Vårdnadshavare (
custodian.html) - CustodianWeb-representant som ser gränssnittslogotyp på desktop/tablet och fallback vid flera organisationer.
Funktionalitet i scope
- Administratören ser och ändrar två logotyper: Gränssnittslogotyp och Dokumentlogotyp.
- Dokumentlogotypen återanvänder
org_{customerOrganisationUID}.pngochcustomerOrganisation.HasLogo. - Gränssnittslogotypen har separat lagringsnyckel och skriver inte över dokumentlogotypen.
- Båda logotyperna sparas till Azure Blob i mockupens demonstrerade framtida flöde.
- Dokumentlogotyp som bara finns på disk visas som migrerad/kopierad till Blob utan att diskfilen tas bort.
- AdminWeb visar hjälptexter, preview, validering, crop-/uppladdningsdialoger och auditstatus.
- MainWeb/CustodianWeb visar gränssnittslogotyp på desktop/tablet när sessionen pekar på exakt en organisation med gränssnittslogotyp.
- Fallback till Vklass-ordmärket visas när organisationen saknas, är flera, eller saknar gränssnittslogotyp.
- Telefonlayout visar inte organisationens gränssnittslogotyp.
- AdminWeb/APLWeb visas inte som konsumenter av gränssnittslogotypen.
Användningsfall (UC)
UC-01: Öppna logotypsidan i AdminWeb
- Aktör: Administratör.
- Förutsättning: Aktören är organisationsadministratör för aktuell organisation.
- Flöde:
- Administratören öppnar AdminWeb och navigerar till organisationsinställningar > Logotyper.
- Sidan visar organisationens namn, status för lagring och två separata logotypsektioner.
- Dokumentlogotypens status visar om en disk-till-Blob-kopiering har skett.
- Resultat: Administratören kan skilja mellan gränssnittslogotyp och dokumentlogotyp.
- Acceptanskriterier:
- Sidan visar separata sektioner för Gränssnittslogotyp och Dokumentlogotyp.
- Dokumentlogotypens sektion nämner
org_{customerOrganisationUID}.pngoch att diskfil inte tas bort. - Hjälptexter beskriver var respektive logotyp används.
UC-02: Ändra Gränssnittslogotyp
- Aktör: Administratör.
- Förutsättning: Logotypsidan är öppen.
- Flöde:
- Administratören väljer "Ändra gränssnittslogotyp".
- En dialog visar filuppladdning, krav på PNG/JPG, crop ratio 4:1 och slutstorlek.
- Vid felaktig filtyp, tom fil, för liten upplösning eller ogiltig crop visas valideringsfel utan interna sökvägar.
- När värdena är giltiga sparas logotypen i separat gränssnittskontrakt.
- Resultat: Gränssnittslogotypen uppdateras utan att dokumentlogotypen påverkas.
- Acceptanskriterier:
- Dialogen använder V2-dialogmönster och är dold på sidladdning.
- Gränssnittslogotypens hjälptext anger desktop/tablet, inte mobilvy, PNG/JPG, 4:1 crop och exempelstorlek 240 x 60 px.
- Separat lagringsnyckel visas som exempel, inte
org_{customerOrganisationUID}.png. - Valideringssummary och fältfel visas för invalid state.
- Auditstatus visar gränssnittslogotypbyte.
UC-03: Ändra Dokumentlogotyp
- Aktör: Administratör.
- Förutsättning: Logotypsidan är öppen.
- Flöde:
- Administratören väljer "Ändra dokumentlogotyp".
- Dialogen beskriver att dokumentlogotypen används i dokument/V1-kontraktet.
- Sparflödet visar att
customerOrganisation.HasLogosätts efter lyckad sparning.
- Resultat: Dokumentlogotypen uppdateras oberoende av gränssnittslogotypen.
- Acceptanskriterier:
- Dokumentlogotypens dialog använder dokumentlogotypens befintliga kontrakt och inte gränssnittslogotypens 4:1-krav.
- UI-copy gör tydligt att dokumentlogotypen inte optimeras för V2-headern.
- Auditstatus visar dokumentlogotypbyte.
UC-04: Visa gränssnittslogotyp i MainWeb/CustodianWeb
- Aktör: Rektor, lärare, elev och vårdnadshavare.
- Förutsättning: Sessionen har exakt en organisation med gränssnittslogotyp.
- Flöde:
- Användaren öppnar V2 på desktop/tablet.
- App-layouten visar Vklass-symbolen och organisationens gränssnittslogotyp i stället för Vklass-ordmärket.
- Resultat: Organisationens gränssnittslogotyp visas för rätt konsumentappar.
- Acceptanskriterier:
- Role views visar en desktop/tablet-preview där Vklass-symbolen finns kvar och organisationens gränssnittslogotyp ersätter ordmärket.
- Previewn visas för MainWeb- och CustodianWeb-roller, inte som AdminWeb chrome.
UC-05: Fallback när organisation inte är entydig eller saknar gränssnittslogotyp
- Aktör: Rektor, lärare, elev och vårdnadshavare.
- Förutsättning: Sessionen har flera organisationer, ingen organisation eller organisation utan gränssnittslogotyp.
- Flöde:
- Användaren öppnar V2.
- App-layouten använder befintligt Vklass-ordmärke.
- Resultat: Ingen felaktig tenant-logotyp visas.
- Acceptanskriterier:
- Role views visar fallback-stater med "Flera organisationer" och "Saknar gränssnittslogotyp".
- Copy förklarar tenant boundary: logotypdata hämtas bara från sessionens organisationer.
UC-06: Telefonlayout döljer gränssnittslogotyp
- Aktör: Elev och vårdnadshavare, samt övriga V2-konsumenter på telefon.
- Förutsättning: Organisationen har gränssnittslogotyp.
- Flöde:
- Användaren öppnar telefonlayout.
- Organisationens gränssnittslogotyp visas inte.
- Resultat: Mobilvy behåller befintligt beteende utan separat organisationslogotyp.
- Acceptanskriterier:
- Mockupen visar en phone-preview där organisationens gränssnittslogotyp är dold.
- Befintlig Vklass-symbol får vara kvar där layouten redan visar symbol.
UC-07: Audit och historik
- Aktör: Administratör.
- Förutsättning: Minst en logotypändring har skett.
- Flöde:
- Administratören läser auditlistan.
- Listan skiljer mellan gränssnittslogotypbyte, dokumentlogotypbyte och dokumentlogotypmigrering.
- Resultat: Administratören kan verifiera vad som ändrades utan att hemliga sökvägar exponeras.
- Acceptanskriterier:
- Auditlistan har minst 10 rader.
- Rader visar kategori, tid, aktör och resultat.
- Inga fulla diskvägar, SAS-länkar eller filinnehåll visas.
Datamodell
- OrganisationLogoConfiguration
organisationId(number)organisationName(string)organisationUid(string)hasDocumentLogo(boolean)documentLogoKey(string,org_{customerOrganisationUID}.png)documentLogoMigratedToBlob(boolean)hasInterfaceLogo(boolean)interfaceLogoKey(string, e.g.org_{customerOrganisationUID}_interface.png)interfaceLogoFinalSize(string, e.g.240 x 60 px)interfaceLogoRatio(string,4:1)
- LogoAuditEntry
auditId(string)logoType(interface|document|migration)changedAt(ISO date/time)actorUserID(string)result(string)safeDescription(string)
- LogoConsumerScenario
role(rektor|teacher|student|custodian)app(MainWeb|CustodianWeb)sessionOrganisationCount(number)hasInterfaceLogo(boolean)viewport(desktop|tablet|phone)expectedLogoMode(interface-logo|vklass-wordmark|symbol-only)
Navigation
- Admin: AdminWeb > Inställningar > Organisation > Logotyper.
- Rektor/lärare/elev: MainWeb role view; mockup page is reached from
index.html. - Vårdnadshavare: CustodianWeb role view; mockup page is reached from
index.html.
Tillgänglighetskontrakt
- Dialogmodaler i flödet:
#interface-logo-dialog,#document-logo-dialog,#not-implemented-dialog. They must use sharedwindow.vklassDialogManager.openDialog(id, opener),role="dialog",aria-modal="true",aria-labelledby, focus trap, Escape close and opener focus return. - Tabs/sub-tabs i flödet: None required. Role views use cards and state previews, not tab widgets.
- Filter/sök i flödet: Audit table has status buttons with
aria-pressedand a polite result-count live region. - Toolbar flyouts: Teacher/student/custodian/rektor toolbar flyouts must sync
aria-expanded; admin drawer usesadmin-app-nav--openandadmin-menu-overlay--visible. - Form validation: Both logo dialogs demonstrate invalid submit with validation summary, inline field errors,
aria-describedby,aria-invalidonly when invalid, and actionable Swedish error text. - Skip-link: Role pages use
<a class="skip-link" href="#main-menu">and<a class="skip-link" href="#main-content">;main id="main-content" tabindex="-1". - Keyboard test scope: Open/close both dialogs, invalid submit, audit filter buttons, toolbar flyouts and admin drawer.
- Mobile safe area: Dialog bodies and footers use
100dvhandenv(safe-area-inset-bottom, 0px).
Bilder/sketcher
No screenshots are present. See 1/epic-files/CLASSIFICATION.md for the markdown-only reference classification.
Öppna frågor
- Ska delete/removal av någon logotyp ingå i en senare version?
- Vilken publik Blob URL-/cache-bustingmodell ska produktionen använda?
- Vilka exakta historiska begränsningar gäller för dokumentlogotypen?