📝♻️ Forenklet henting av alle feil og dokumenterte resterende frontend
This commit is contained in:
parent
8091b21b20
commit
4cf7f83755
5 changed files with 44 additions and 53 deletions
|
@ -10,13 +10,17 @@ import { Button, Heading } from "@navikt/ds-react"
|
||||||
const BildeOpplastning = () => {
|
const BildeOpplastning = () => {
|
||||||
return(
|
return(
|
||||||
<div className="flex gap-2 flex-col">
|
<div className="flex gap-2 flex-col">
|
||||||
<Heading size="xsmall">Skjermbilder</Heading>
|
<Heading size="xsmall">
|
||||||
<div className="
|
Skjermbilder
|
||||||
h-48 p-5 bg-bg-subtle hover:bg-surface-selected border-2 border-blue-500
|
</Heading>
|
||||||
rounded-lg border-dashed flex flex-col items-center justify-center text-center gap-2
|
<div className="h-48 p-5 bg-bg-subtle hover:bg-surface-selected border-2 border-blue-500 rounded-lg border-dashed flex flex-col items-center justify-center text-center gap-2">
|
||||||
">
|
<FileImageIcon
|
||||||
<FileImageIcon fontSize="3.5rem" className="text-blue-500"/>
|
fontSize="3.5rem"
|
||||||
<p className="text-surface-neutral">Dra og slipp skjermbilder her!</p>
|
className="text-blue-500"
|
||||||
|
/>
|
||||||
|
<p className="text-surface-neutral">
|
||||||
|
Dra og slipp skjermbilder her!
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<Button variant="secondary" icon={<UploadIcon />}>
|
<Button variant="secondary" icon={<UploadIcon />}>
|
||||||
Last opp skjermbilder
|
Last opp skjermbilder
|
||||||
|
|
|
@ -9,37 +9,28 @@ import axios from "axios";
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { Feilmelding } from "./interface";
|
import { Feilmelding } from "./interface";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hovedsiden til applikasjonen, viser alle innmeldte feil.
|
||||||
|
* Tilbyr søkefelt og filtreringsmuligheter
|
||||||
|
* Tilbyr også navigering til feilinnmeldingssiden
|
||||||
|
*/
|
||||||
export default function Home() {
|
export default function Home() {
|
||||||
const navigate = useNavigate()
|
const navigate = useNavigate()
|
||||||
|
|
||||||
const [feilmeldinger, setFeilmeldinger] = useState<Feilmelding[]>([]);
|
const [feilmeldinger, setFeilmeldinger] = useState<Feilmelding[]>([]);
|
||||||
|
|
||||||
/**
|
|
||||||
* Henter alle feilmeldinger fra backend.
|
|
||||||
* Bruker endepunktet /api/hentallefeil.
|
|
||||||
*/
|
|
||||||
const hentAlleFeil = async () => {
|
const hentAlleFeil = async () => {
|
||||||
await axios.get("/api/hentallefeil")
|
const { data } = await axios.get("/api/hentallefeil")
|
||||||
.then(data => data.data)
|
setFeilmeldinger(data)
|
||||||
.then(feil => {
|
|
||||||
setFeilmeldinger(
|
|
||||||
feil.map((jsonFeilmelding: any) => new Feilmelding(jsonFeilmelding))
|
|
||||||
);
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sørger for at hentAlleFeil() kun kjører når komponentet laster inn
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
hentAlleFeil();
|
hentAlleFeil();
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
/**
|
|
||||||
* Oppdaterer viste feilmeldinger ved endring i søkefelt.
|
//oppdaterer visningen av feilmeldinger når søkefeltet endres
|
||||||
* Kontakter endepunktet /api/hentsok/.
|
|
||||||
* @param soketekst
|
|
||||||
*/
|
|
||||||
const handleSearch = async (soketekst: string) => {
|
const handleSearch = async (soketekst: string) => {
|
||||||
// Ved tomt søkefelt hentes alle feilmeldinger
|
|
||||||
if (soketekst === "") {
|
if (soketekst === "") {
|
||||||
hentAlleFeil()
|
hentAlleFeil()
|
||||||
return
|
return
|
||||||
|
@ -48,6 +39,7 @@ export default function Home() {
|
||||||
setFeilmeldinger(data)
|
setFeilmeldinger(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<main className="flex flex-col h-screen">
|
<main className="flex flex-col h-screen">
|
||||||
<Header/>
|
<Header/>
|
||||||
|
|
|
@ -1,8 +1,3 @@
|
||||||
/**
|
|
||||||
* I denne filen kan vi legge interfaces som skal brukes over flere steder!
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
export interface IFeilmelding {
|
export interface IFeilmelding {
|
||||||
id: number,
|
id: number,
|
||||||
tittel: string,
|
tittel: string,
|
||||||
|
@ -21,6 +16,10 @@ export interface FeilmeldingsInnholdInterface extends IFeilmelding {
|
||||||
reset: () => void
|
reset: () => void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* En klasse som implementerer IFeilmelding interfacet.
|
||||||
|
* Brukes for å mappe JSON objekter til en klasse ved henting av data fra backend
|
||||||
|
*/
|
||||||
export class Feilmelding implements IFeilmelding {
|
export class Feilmelding implements IFeilmelding {
|
||||||
id: number = 0
|
id: number = 0
|
||||||
tittel: string = "default tittel"
|
tittel: string = "default tittel"
|
||||||
|
@ -31,10 +30,6 @@ export class Feilmelding implements IFeilmelding {
|
||||||
kommentar?: string = undefined
|
kommentar?: string = undefined
|
||||||
aktorid?: number = undefined
|
aktorid?: number = undefined
|
||||||
|
|
||||||
/**
|
|
||||||
* Typescript 2.1 syntax som lar deg sende inn et JSON object og mappe det til class.
|
|
||||||
* https://stackoverflow.com/questions/14142071/typescript-and-field-initializers
|
|
||||||
*/
|
|
||||||
public constructor(
|
public constructor(
|
||||||
fields: {
|
fields: {
|
||||||
id: number
|
id: number
|
||||||
|
|
|
@ -5,6 +5,7 @@ import './index.css'
|
||||||
import Home from './index'
|
import Home from './index'
|
||||||
import Feil from './pages/feil'
|
import Feil from './pages/feil'
|
||||||
|
|
||||||
|
|
||||||
const router = createBrowserRouter([
|
const router = createBrowserRouter([
|
||||||
{
|
{
|
||||||
path: "/",
|
path: "/",
|
||||||
|
|
|
@ -9,6 +9,9 @@ import Header from "../components/Header";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import Skillelinje from "../components/Skillelinje";
|
import Skillelinje from "../components/Skillelinje";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Siden for å melde inn feil i speil.
|
||||||
|
*/
|
||||||
export default function Feil() {
|
export default function Feil() {
|
||||||
const [tittel, setTittel] = useState("");
|
const [tittel, setTittel] = useState("");
|
||||||
const [beskrivelse, setBeskrivelse] = useState("");
|
const [beskrivelse, setBeskrivelse] = useState("");
|
||||||
|
@ -16,20 +19,27 @@ export default function Feil() {
|
||||||
const [haster, setHaster] = useState(false)
|
const [haster, setHaster] = useState(false)
|
||||||
const [valgteTags, setValgteTags] = useState([] as string[]);
|
const [valgteTags, setValgteTags] = useState([] as string[]);
|
||||||
const [aktorid, setAktorid] = useState<number|null>(null);
|
const [aktorid, setAktorid] = useState<number|null>(null);
|
||||||
|
const navigate = useNavigate()
|
||||||
|
const tags = [
|
||||||
|
"Utbetaling",
|
||||||
|
"Inntekt",
|
||||||
|
"Speil",
|
||||||
|
"Annet"
|
||||||
|
];
|
||||||
|
|
||||||
const handleSubmit = () => {
|
//Sender feil til databasen
|
||||||
|
const meldInnFeil = () => {
|
||||||
const payload = {
|
const payload = {
|
||||||
id: null,
|
id: null,
|
||||||
tittel: tittel,
|
tittel: tittel,
|
||||||
beskrivelse: beskrivelse,
|
beskrivelse: beskrivelse,
|
||||||
dato: new Date().toISOString().replace('Z', ''), // Litt wack fix, burde endres
|
dato: new Date().toISOString().replace('Z', ''),
|
||||||
arbeidsstatus: 0,
|
arbeidsstatus: 0,
|
||||||
haster: haster,
|
haster: haster,
|
||||||
kommentar: null,
|
kommentar: null,
|
||||||
aktorid: aktorid ? aktorid : null,
|
aktorid: aktorid ? aktorid : null,
|
||||||
//kategorier: valgteTags
|
//TODO: kategorier: valgteTags
|
||||||
}
|
}
|
||||||
|
|
||||||
axios.post("/api/nyfeil", payload, {
|
axios.post("/api/nyfeil", payload, {
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json'
|
'Content-Type': 'application/json'
|
||||||
|
@ -41,6 +51,7 @@ export default function Feil() {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Håndterer alerts som vises etter at feil er lagt til i databasen eller feiler i å bli lagt til
|
||||||
const handleAlerts = () => {
|
const handleAlerts = () => {
|
||||||
if (status === 201) {
|
if (status === 201) {
|
||||||
console.log("Feil lagt til i database");
|
console.log("Feil lagt til i database");
|
||||||
|
@ -56,18 +67,6 @@ export default function Feil() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: clear data fra felter
|
|
||||||
|
|
||||||
|
|
||||||
const navigate = useNavigate()
|
|
||||||
|
|
||||||
const tags = [
|
|
||||||
"Utbetaling",
|
|
||||||
"Inntekt",
|
|
||||||
"Speil",
|
|
||||||
"Annet"
|
|
||||||
];
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<main className="flex flex-col h-screen">
|
<main className="flex flex-col h-screen">
|
||||||
<Header/>
|
<Header/>
|
||||||
|
@ -147,7 +146,7 @@ export default function Feil() {
|
||||||
<div className="w-1/2 flex flex-col gap-2 justify-center mt-8">
|
<div className="w-1/2 flex flex-col gap-2 justify-center mt-8">
|
||||||
{status != 0 ? handleAlerts() : <></>}
|
{status != 0 ? handleAlerts() : <></>}
|
||||||
<Button
|
<Button
|
||||||
onClick={handleSubmit}
|
onClick={meldInnFeil}
|
||||||
variant="primary"
|
variant="primary"
|
||||||
>
|
>
|
||||||
Meld inn feil
|
Meld inn feil
|
||||||
|
|
Reference in a new issue