Ft.Datafangst.Tool 2.1.16

dotnet tool install --global Ft.Datafangst.Tool --version 2.1.16                
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local Ft.Datafangst.Tool --version 2.1.16                
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Ft.Datafangst.Tool&version=2.1.16                
nuke :add-package Ft.Datafangst.Tool --version 2.1.16                

Test (and nuget deploy if a new tag)

FT-Tool 🔧

Er et CLI verktøy for med ulike kommadoer som gjør det lettere og mer effektivt å jobbe med Altinn repoer lokalt.

Installering

For å installere ft-tools må man kjøre følgende:

dotnet tool install --global Ft.Datafangst.Tool

Denne laster ned ft-tools globalt, som gjør at den vil være tilgjengelig i alle repoer du har.

Oppdateringer kommer relativt ofte så derfor er det anbefalt å kjøre

dotnet tool update --global Ft.Datafangst.Tool

for å få med seg siste versjon av tools.

Hvordan bruke FT-Tool

Noen av verktøyene under krever at du kjører cd .\App\ fra root før du kjører kommandoene.

Alle verktøy skal ha støtte for både v3 og v4 av frontend.

Snippets

Snippets brukes for å fylle inn kode fra predefinerte maler.

image

For å bruke snippets kan du enten konfigurere disse selv eller kjøre:

ft-tool snippets

Denne henter og legger til snippets (foreløpig kun for VSCode). Snippets som er brukt er definert her, og kan endres på lokalt dersom man ønsker.

Summary

For å få ferdigskrevet oppsummeringsside for appen din kan du kjøre:

ft-tool summary

Denne vil generere en Summary.json med alle feltene som er i din layout-mappe. Den inkluderer ikke Alert komponenter, men alle titler og paragrafer vil inkluderes.

Grid

Dersom man ønsker å stille komponentene på følgende måte med spørsmål og svarboks på samme linje kan man bruke grid.

Ved å kjøre:

ft-tool grid

legges det på grid-styling med følgende konfigurasjon

{
  "grid": {
    "labelGrid": {
      "sm": 5
    },
    "innerGrid": {
      "sm": 7
    }
  }
}

i alle layout-filer for Input- og Dropdown-komponentene. image

Nynorsk

For å oversette appen fra bokmål til nynorsk kan du kjøre:

ft-tool nynorsk

Dette vil generere en ny ressursfil, resource.nn.json, som inneholder alle tekstressursene i resource.nb.json oversatt til nynorsk.

Verktøyet benytter Apertium, et oversettingsprogram, til å oversette alt av tekster. Denne er ikke alltid perfekt, så det anbefales å dobbelsjekke resultatet fra oversettingen manuelt.

Dersom du trenger at en spesifik tekst ikke blir oversatt, opprett en fil som heter ignore.nn.json i samme mappe som språkfilene. Denne må inneholde en liste over de tekstene som ikke skal bli oversatt. Eksempel:

[
  "1-2-Input.title",
  "1-4-Input.title"
]

TekstRens

Dersom man ønsker å fjerne ubrukte tekstressurser fra språkfilene, kan man bruke tekstrens. Dette holder filen litt mer ryddig.

ft-tool tekstrens

NB: Tekstressurser som brukes i logikk-mappene vil også fjernes. Tekster som er lagt til programatisk, som f. eks i dynamiske uttrykk vil også fjernes. Men vi ser på støtte for dette.

Schema Injector

Alle layoutfiler følger et statisk $schema som angir reglene for hvordan komponenter skal legges til, hva som er obligatorisk å ha med, riktig verdier å bruke for ulike parametere og liknende. De som brukes per i dag, mangler derimot regler for feltet datamodelBindings, nemlig fordi den er dynamisk og endres fra skjema til skjema. Ved å bruke:

ft-tool schemaInjector

vil det bli laget et midlertidig $schema. Dette muliggjør IntelliSense/auto-complete for verdier i datamodelBindings, som baserer seg på datamodellen sin struktur i model.cs filen. Dermed får man også advarsel dersom man bruker noe som ikke er tillatt i datamodelBindings.

NB: Skal kun brukes under utvikling. Når man er ferdig med utvikling må man kjøre

ft-tool schemaInjector --revert

for å tilbakestille til opprinnelig schema (fra Altinn CDN) og slette midlertidig schema-fil.

Text Resource Generator

Dersom man ønsker å ha flere filer til å ha tekstressursene i, så kan man bruke:

ft-tool textGenerator

Denne genererer en språkfil fra flere delfiler. Dette betyr at du kan jobbe med mindre filer og kombinere dem sammen med dette værktøyet. Du trenger en ny mappe i text mappen med navn "nb". Pathen til denne blir da App/config/texts/nb. Inne i denne kan du skrive så mange språkfiler som du vil så lenge de har strukturen til en standard språkfil. dvs.

{
  "resources": [
    {
      "id": "appName",
      "value": "KRT-1116 Søknad om vedtektsendring for finansforetak og finansstiftelser"
    }
  ]
}

Det er også mulig å legge på "kommentarer" ved å legge på ekstra json attributter for hver språk komponent.

{
  "resources": [
    {
      "id": "1-Header.title",
      "value": "**1. Generelle opplysninger**",
      "comment": "here is a comment"
    }
  ]
}

Man kan også sette "ignore" på språk komponentene som betyr at neste gang man kjører oversetteren vil de komponentene bli ignorert dersom det allerede finnes en oversatt versjon av komponenten på det oversatte språket.

{
  "resources": [
    {
      "id": "1-Header.title",
      "value": "**1. Generelle opplysninger**",
      "ignore": ["nn"]
    }
  ]
}

Validate

Validerer appen

ft-tool validate

Ikke støtte for ennå.

Lag nuget release

Nuget releaser er basert på git tags, og det er satt opp en workflow som bygger og pusher en ny release til nuget hver gang det kommer en ny tag til github. En ny tag kan enten lages med git lokalt og pushes opp til repo, eller man kan lage en ny release i github gui og i prosessen opprette en ny tag basert på master. Nuget versjonsnummer hentes fra tag, så det er viktig at man bruker rett format. Tag navn skal starte med v og fortsette med [major].[minor].[patch] Typiske eksempler vil da være v1.0.2 og v1.23.3. For at workflow deploy skal virke må det være konfigurert en secret NUGET_API_KEY som inneholder en api nøkkel til finanstilsynets nuget bruker.

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
2.1.16 219 6/7/2024
2.1.15 132 5/28/2024
2.1.14 178 4/25/2024
2.1.13 144 4/24/2024
2.1.12 136 4/22/2024
2.1.11 108 4/22/2024
2.1.10 208 4/16/2024
2.1.9 227 4/15/2024
2.1.8 204 4/9/2024
2.1.7 204 4/2/2024
2.1.6 239 2/26/2024
2.1.5 182 2/1/2024
2.1.4 163 2/1/2024
2.1.3 235 1/16/2024
2.1.2 287 12/18/2023
2.1.1 242 12/12/2023
2.1.0 240 11/29/2023
2.0.6 266 11/22/2023
2.0.4 245 11/16/2023
2.0.3 217 11/15/2023
2.0.2 238 11/15/2023
2.0.1 217 11/14/2023
2.0.0 248 11/14/2023
1.3.5 263 10/31/2023
1.3.4 269 10/26/2023
1.3.3 374 10/12/2023
1.3.2 281 10/11/2023
1.3.1 284 9/12/2023
1.3.0 297 9/6/2023
1.2.0 296 9/4/2023
1.1.9 220 9/4/2023
1.1.8 260 9/4/2023
1.1.7 221 9/4/2023
1.1.6 201 9/4/2023
1.1.5 275 8/30/2023
1.1.4 270 8/30/2023
1.1.3 312 8/30/2023
1.1.2 266 8/30/2023
1.1.1 333 8/30/2023
1.1.0 215 5/12/2023
1.0.8 210 5/12/2023
1.0.7 273 4/4/2023
1.0.5 258 4/4/2023
1.0.4 281 4/3/2023