From a0b73d5800069c97464d0f18a8a1bd2d9d8f4f30 Mon Sep 17 00:00:00 2001 From: Erik Tiekstra Date: Thu, 9 Sep 2021 06:21:22 +0200 Subject: [PATCH] feat(employee): Added roles dialog to employee-card and employee-form. (TV-413) Squashed commit of the following: commit f9d4b6297a93e499944698f02f355d647c343113 Merge: 3c481d4 c984912 Author: Erik Tiekstra Date: Thu Sep 9 06:14:37 2021 +0200 Merge branch 'develop' into feature/TV-413-role-dialog commit 3c481d4c566f9d53edf7e4078a50cff0f51f99aa Author: Erik Tiekstra Date: Thu Sep 9 06:14:19 2021 +0200 Added role-dialog component and implmeneted it inside employee-card and employee-form commit 86aa3af3f54be4ef5bfb99baece6654a7fba204f Merge: f3258e8 1e45fb5 Author: Erik Tiekstra Date: Thu Sep 9 05:42:46 2021 +0200 Merge branch 'develop' into feature/TV-515-authorization-flow commit f3258e8c6e3d51f21ec619e09c82b2d0f581bde9 Author: Erik Tiekstra Date: Wed Sep 8 16:43:44 2021 +0200 Fixed tests commit 91bfea1baa297f34769a33972fd61481dfa31197 Author: Erik Tiekstra Date: Wed Sep 8 15:55:13 2021 +0200 Removed unused pages commit d4a92fbde9d6255d8406abc23fe1479658035787 Author: Erik Tiekstra Date: Wed Sep 8 15:51:25 2021 +0200 Updated some styling commit dc75656ff96ff0358a2dd0a8b090b4b4938b8323 Author: Erik Tiekstra Date: Wed Sep 8 15:35:04 2021 +0200 Refactured guards by separating organizations into its own guard commit 24f3a0a2d821930bd682b854f98e1c9816ece08c Author: Erik Tiekstra Date: Wed Sep 8 15:33:53 2021 +0200 Readded search on employees commit f1890b104c48d6dd6e263b730dbdafbc2a6fbf0f Author: Erik Tiekstra Date: Wed Sep 8 14:59:24 2021 +0200 Added RoleGuard to pages needing a guard commit ef4b37e3dcc8fe26eef1bb813cfb35727ba691be Merge: 07bca2a b06436a Author: Erik Tiekstra Date: Wed Sep 8 14:06:34 2021 +0200 Merge branch 'develop' into feature/TV-515-authorization-flow commit 07bca2a84d0ec970188c284ba4b950312cec57cb Author: Erik Tiekstra Date: Wed Sep 8 13:26:50 2021 +0200 Added check for navigation --- .../employee-card.component.html | 6 ++ .../employee-card/employee-card.module.ts | 6 +- .../edit-employee-form.component.html | 15 +--- .../employee-form/employee-form.module.ts | 2 + .../roles-dialog/roles-dialog.component.html | 79 +++++++++++++++++++ .../roles-dialog/roles-dialog.component.scss | 9 +++ .../roles-dialog.component.spec.ts | 26 ++++++ .../roles-dialog/roles-dialog.component.ts | 21 +++++ .../roles-dialog/roles-dialog.module.ts | 12 +++ .../src/styles/mixins/_link.scss | 9 +++ 10 files changed, 170 insertions(+), 15 deletions(-) create mode 100644 apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.component.html create mode 100644 apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.component.scss create mode 100644 apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.component.spec.ts create mode 100644 apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.component.ts create mode 100644 apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.module.ts diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-card/employee-card.component.html b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-card/employee-card.component.html index 3f1b373..cffe79b 100644 --- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-card/employee-card.component.html +++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-card/employee-card.component.html @@ -103,6 +103,12 @@

Roller

+

+ Här ser du användarens specifika roller i systemet. Tänk på att rollen i systemet är begränsad till de + utförande verksamheter och adresser som användaren hör till. Användaren kan därför endast utföra uppgifter + och se information inom den/de utförande adresser som tilldelats användaren. + . +

  • Här tilldelar du specifika roller i systemet. Välj nedan vilka arbetsuppgifter som användaren ska kunna utföra. Tänk på att rollen i systemet är begränsad till de utförande verksamheter och adresser som användaren - hör till. Användaren kan därför endast utföra uppgifter och se information inom den/ de utförande adresser som - tilldelats användaren. - - Läs mer om roller här - + hör till. Användaren kan därför endast utföra uppgifter och se information inom den/de utförande adresser som + tilldelats användaren. .

    diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/employee-form.module.ts b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/employee-form.module.ts index 78aec54..9bd66a1 100644 --- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/employee-form.module.ts +++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/employee-form.module.ts @@ -12,6 +12,7 @@ import { ReactiveFormsModule } from '@angular/forms'; import { RouterModule } from '@angular/router'; import { HideTextModule } from '@msfa-shared/components/hide-text/hide-text.module'; import { LayoutModule } from '@msfa-shared/components/layout/layout.module'; +import { RolesDialogModule } from '@msfa-shared/components/roles-dialog/roles-dialog.module'; import { TreeNodesSelectorModule } from '@msfa-shared/components/tree-nodes-selector/tree-nodes-selector.module'; import { LocalDatePipeModule } from '@msfa-shared/pipes/local-date/local-date.module'; import { EmployeeDeleteModule } from '../../components/employee-delete/employee-delete.module'; @@ -38,6 +39,7 @@ import { EmployeeFormComponent } from './employee-form.component'; DigiNgDialogModule, HideTextModule, TreeNodesSelectorModule, + RolesDialogModule, ], }) export class EmployeeFormModule {} diff --git a/apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.component.html b/apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.component.html new file mode 100644 index 0000000..e3fab30 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.component.html @@ -0,0 +1,79 @@ + + + +

    + Läs beskrivningarna nedan för att lära dig mer om de olika rollerna. Personalen kan tilldelas en roll, eller flera + roller, beroende på vad de arbetar med. Tänk på att rollen endast gäller inom de utförande verksamheter och adresser + som personalen fått behörighet till. +

    +

    + All personal kommer att kunna se sitt eget personalkonto, där de kan se vilka roller och utförande verksamheter och + adresser som tilldelats dem i systemet. De kommer även att se startsidan. +

    + +

    Administrera behörigheter

    +

    + Rollen passar personal som ska administrera behörigheter i systemet. Rollen bör begränsas till ett fåtal personer + och kan användas av exempelvis firmatecknare, behörighetsadministratör, eller annan person som ska kunna + administrera personalens behörigheter. Rollen gäller endast inom de utförande verksamheter och adresser som getts + behörighet till. +

    +

    Rollen ger tillgång till följande funktioner:

    +
      +
    • Skapa nya personalkonton
    • +
    • Se personallista
    • +
    • Se och ändra personalkonto och dess behörigheter
    • +
    • Ta bort personalkonton
    • +
    + +

    Ta emot nya deltagare

    +

    + Rollen passar personal som ska se nya deltagare som inkommit i systemet och som ska tilldela handledare till nya + deltagare. Rollen kan exempelvis användas av samordnande roller, handledare, administratörer, eller annan personal + som ska kunna utföra dessa arbetsuppgifter. Rollen gäller endast inom de utförande verksamheter och adresser som + getts behörighet till. +

    +

    Rollen ger tillgång till följande funktioner:

    +
      +
    • Se lista över nya deltagare som inkommit
    • +
    • Tilldela handledare till nya deltagare
    • +
    • Ta bort nya deltagare där beslut om avbrott skett innan tjänsten startat
    • +
    + +

    Rapportering, planering och information om deltagare

    +

    + Rollen passar personal som arbetar nära deltagare. Rollen kan användas av exempelvis handledare, coacher, studie- + och yrkesvägledare, lärare eller andra roller som behöver se information om deltagare, planera aktiviteter med + deltagare eller hantera deltagares rapporter. Rollen gäller endast inom de utförande verksamheter och adresser som + getts behörighet till. +

    +

    Rollen ger tillgång till följande funktioner:

    + +
      +
    • Se lista över deltagare
    • +
    • Se information om deltagare
    • +
    • Planera aktiviteter i en gemensam planering
    • +
    • Skicka och se avvikelserapporter
    • +
    • Skicka och se resultatrapporter
    • +
    • Skicka och se slutredovisningar
    • +
    • Skicka och se informativa rapporter
    • +
    +
    diff --git a/apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.component.scss b/apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.component.scss new file mode 100644 index 0000000..6e53264 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.component.scss @@ -0,0 +1,9 @@ +@import 'mixins/link'; + +.roles-dialog { + position: absolute; +} + +.roles-dialog-button { + @include msfa__button-as-link(true); +} diff --git a/apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.component.spec.ts b/apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.component.spec.ts new file mode 100644 index 0000000..1c1fc74 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.component.spec.ts @@ -0,0 +1,26 @@ +/* tslint:disable:no-unused-variable */ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { RolesDialogComponent } from './roles-dialog.component'; + +describe('RolesDialogComponent', () => { + let component: RolesDialogComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + void TestBed.configureTestingModule({ + schemas: [CUSTOM_ELEMENTS_SCHEMA], + declarations: [RolesDialogComponent], + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(RolesDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.component.ts b/apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.component.ts new file mode 100644 index 0000000..bc3cd4a --- /dev/null +++ b/apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.component.ts @@ -0,0 +1,21 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + +@Component({ + selector: 'msfa-roles-dialog', + templateUrl: './roles-dialog.component.html', + styleUrls: ['./roles-dialog.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class RolesDialogComponent { + @Input() buttonText = 'Läs mer om roller här'; + + displayRolesDialog = false; + + openRolesDialog(): void { + this.displayRolesDialog = true; + } + + closeRolesDialog(): void { + this.displayRolesDialog = false; + } +} diff --git a/apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.module.ts b/apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.module.ts new file mode 100644 index 0000000..5d4c42b --- /dev/null +++ b/apps/mina-sidor-fa/src/app/shared/components/roles-dialog/roles-dialog.module.ts @@ -0,0 +1,12 @@ +import { DigiNgDialogModule } from '@af/digi-ng/_dialog/dialog'; +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { RolesDialogComponent } from './roles-dialog.component'; + +@NgModule({ + schemas: [CUSTOM_ELEMENTS_SCHEMA], + declarations: [RolesDialogComponent], + imports: [CommonModule, DigiNgDialogModule], + exports: [RolesDialogComponent], +}) +export class RolesDialogModule {} diff --git a/apps/mina-sidor-fa/src/styles/mixins/_link.scss b/apps/mina-sidor-fa/src/styles/mixins/_link.scss index 629ae25..0f60713 100644 --- a/apps/mina-sidor-fa/src/styles/mixins/_link.scss +++ b/apps/mina-sidor-fa/src/styles/mixins/_link.scss @@ -2,6 +2,8 @@ display: inline-flex; align-items: center; text-decoration: none; + color: var(--digi--typography--color--link); + font-size: var(--digi--typography--font-size); font-weight: var(--digi--typography--font-weight--semibold); gap: var(--digi--layout--gutter--xs); @@ -19,3 +21,10 @@ } } } + +@mixin msfa__button-as-link($ignore-visited: false) { + @include msfa__link($ignore-visited); + background-color: transparent; + border-width: 0; + padding: 0; +}