Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix/jr/invalid text #594

Merged
merged 2 commits into from
Oct 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17,593 changes: 10,857 additions & 6,736 deletions package-lock.json

Large diffs are not rendered by default.

112 changes: 56 additions & 56 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,18 +50,18 @@
"@fellesdatakatalog/internal-header": "^0.5.11",
"@fellesdatakatalog/link": "^0.2.15",
"@fellesdatakatalog/theme": "^0.5.4",
"@reduxjs/toolkit": "^1.8.5",
"@reduxjs/toolkit": "^1.9.7",
"axios": "^1.4.0",
"bootstrap": "^5.1.3",
"bootstrap": "^5.3.2",
"buffer": "^6.0.3",
"classnames": "^2.3.1",
"classnames": "^2.3.2",
"clean-deep": "^3.4.0",
"core-js": "^3.22.8",
"core-js": "^3.33.0",
"fast-json-patch": "^3.1.1",
"font-awesome": "^4.7.0",
"formik": "^2.2.9",
"formik": "^2.4.5",
"is-url": "^1.2.4",
"jquery": "^3.6.1",
"jquery": "^3.7.1",
"keycloak-js": "^20.0.3",
"lodash": "^4.17.19",
"luxon": "^2.5.2",
Expand All @@ -70,98 +70,98 @@
"process": "^0.11.10",
"react": "^17.0.2",
"react-checkbox-tree": "^1.8.0",
"react-datepicker": "^4.7.0",
"react-datepicker": "^4.20.0",
"react-dom": "^17.0.2",
"react-localization": "^1.0.19",
"react-papaparse": "^3.17.2",
"react-redux": "^8.0.2",
"react-papaparse": "^3.18.2",
"react-redux": "^8.1.3",
"react-resolver": "^3.1.2",
"react-router-breadcrumbs-hoc": "^4.1.0",
"react-router-dom": "^5.3.1",
"react-select": "^5.4.0",
"react-tagsinput": "^3.19.0",
"react-router-dom": "^5.3.4",
"react-select": "^5.7.7",
"react-tagsinput": "^3.20.3",
"react-test-renderer": "^18.2.0",
"reactstrap": "^9.2.0",
"recompose": "^0.30.0",
"regenerator-runtime": "^0.13.9",
"sanitize-html": "^2.7.0",
"sass": "^1.63.6",
"regenerator-runtime": "^0.13.11",
"sanitize-html": "^2.11.0",
"sass": "^1.69.3",
"showdown": "^1.9.1",
"stream-browserify": "^3.0.0",
"styled-components": "^6.0.2",
"uuid": "^9.0.0",
"styled-components": "^6.0.8",
"uuid": "^9.0.1",
"yup": "^0.32.11"
},
"devDependencies": {
"@babel/core": "^7.22.6",
"@babel/preset-env": "^7.22.6",
"@babel/preset-react": "^7.18.6",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.5",
"@babel/core": "^7.23.2",
"@babel/preset-env": "^7.23.2",
"@babel/preset-react": "^7.22.15",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.11",
"@svgr/webpack": "^6.5.1",
"@testing-library/jest-dom": "^5.16.5",
"@types/enzyme": "^3.10.12",
"@types/enzyme-adapter-react-16": "^1.0.6",
"@types/jest": "^27.4.1",
"@types/luxon": "^2.3.2",
"@types/node": "^17.0.32",
"@types/react": "^17.0.44",
"@types/react-autosuggest": "^10.1.5",
"@types/react-datepicker": "^4.4.0",
"@types/react-dom": "^17.0.15",
"@types/react-redux": "^7.1.24",
"@testing-library/jest-dom": "^5.17.0",
"@types/enzyme": "^3.10.14",
"@types/enzyme-adapter-react-16": "^1.0.7",
"@types/jest": "^27.5.2",
"@types/luxon": "^2.4.0",
"@types/node": "^17.0.45",
"@types/react": "^17.0.68",
"@types/react-autosuggest": "^10.1.7",
"@types/react-datepicker": "^4.15.2",
"@types/react-dom": "^17.0.21",
"@types/react-redux": "^7.1.27",
"@types/react-router-dom": "^5.3.3",
"@types/react-select": "^5.0.1",
"@types/styled-components": "^5.1.26",
"@typescript-eslint/eslint-plugin": "^5.61.0",
"@typescript-eslint/parser": "^5.61.0",
"babel-loader": "^8.2.5",
"babel-plugin-styled-components": "^2.0.7",
"@types/styled-components": "^5.1.28",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"babel-loader": "^8.3.0",
"babel-plugin-styled-components": "^2.1.4",
"base-href-webpack-plugin": "^3.0.1",
"clean-webpack-plugin": "^4.0.0",
"copy-webpack-plugin": "^11.0.0",
"cross-env": "^7.0.3",
"css-loader": "^6.7.1",
"css-loader": "^6.8.1",
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.6",
"enzyme-adapter-react-16": "^1.15.7",
"enzyme-to-json": "^3.6.2",
"eslint": "^8.44.0",
"eslint": "^8.51.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-prettier": "^8.8.0",
"eslint-import-resolver-typescript": "^3.5.5",
"eslint-config-prettier": "^8.10.0",
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-html": "^7.1.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-import": "^2.28.1",
"eslint-plugin-json": "^3.1.0",
"eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-markdown": "^3.0.0",
"eslint-plugin-markdown": "^3.0.1",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-webpack-plugin": "^4.0.1",
"file-loader": "^6.2.0",
"fork-ts-checker-webpack-plugin": "^8.0.0",
"html-webpack-plugin": "^5.5.3",
"husky": "^2.7.0",
"identity-obj-proxy": "^3.0.0",
"jest": "^29.6.0",
"jest-environment-jsdom": "^29.6.0",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"jest-styled-components": "^7.1.1",
"jest-transform-stub": "^2.0.0",
"lint-staged": "^13.0.1",
"mini-css-extract-plugin": "^2.6.1",
"lint-staged": "^13.3.0",
"mini-css-extract-plugin": "^2.7.6",
"npm-run-all": "^4.1.5",
"prettier": "^2.7.1",
"prettier": "^2.8.8",
"react-refresh": "^0.14.0",
"resolve-url-loader": "^5.0.0",
"sass-loader": "^13.0.2",
"source-map-loader": "^3.0.1",
"sass-loader": "^13.3.2",
"source-map-loader": "^3.0.2",
"standard-version": "^9.5.0",
"ts-jest": "^29.1.1",
"ts-loader": "^9.4.4",
"ts-loader": "^9.5.0",
"ts-node": "^10.9.1",
"typescript": "^5.1.6",
"typescript": "^5.2.2",
"url-loader": "^4.1.1",
"webpack": "^5.88.1",
"webpack-bundle-analyzer": "^4.9.0",
"webpack": "^5.88.2",
"webpack-bundle-analyzer": "^4.9.1",
"webpack-cli": "^5.1.4",
"webpack-dev-server": "^4.15.1",
"webpack-merge": "^5.9.0"
Expand Down
56 changes: 32 additions & 24 deletions src/app/reducers/conceptMapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -139,35 +139,41 @@ function mapCsvTextToConcept(

function attemptToParseJsonFile(
text: string
): Omit<Concept, 'id' | 'ansvarligVirksomhet'>[] | null {
try {
const json = JSON.parse(text);
): Promise<Omit<Concept, 'id' | 'ansvarligVirksomhet'>[] | null> {
return new Promise(resolve => {
try {
const json = JSON.parse(text);

return Array.isArray(json) ? json : null;
} catch (error: any) {
return null;
}
resolve(Array.isArray(json) ? json : null);
} catch (error: any) {
resolve(null);
}
});
}

function attemptToParseCsvFile(
text: string
): Omit<Concept, 'id' | 'ansvarligVirksomhet'>[] | null {
try {
const {
data: [columnHeaders, ...rows],
errors
} = readString(text, { skipEmptyLines: true });

if (errors.length > 0) {
return null;
}
): Promise<Omit<Concept, 'id' | 'ansvarligVirksomhet'>[] | null> {
return new Promise(resolve => {
try {
readString(text, {
worker: true,
complete: ({ data: [columnHeaders, ...rows], errors }) => {
if (errors.length > 0) {
resolve(null);
}

return rows.map(row =>
mapCsvTextToConcept(columnHeaders as string[], row as string[])
);
} catch (error: any) {
return null;
}
resolve(
rows.map(row =>
mapCsvTextToConcept(columnHeaders as string[], row as string[])
)
);
}
});
} catch (error: any) {
resolve(null);
}
});
}

async function validateConcepts(concepts: Concept[]) {
Expand Down Expand Up @@ -213,7 +219,9 @@ export const mapConcepts = (
): void => {
uploadEvent?.target?.files?.[0].text().then(async text => {
const parsedText =
attemptToParseJsonFile(text) ?? attemptToParseCsvFile(text) ?? [];
(await attemptToParseJsonFile(text)) ??
(await attemptToParseCsvFile(text)) ??
[];
const concepts = parsedText.map(concept => ({
...concept,
ansvarligVirksomhet: { id: catalogId }
Expand Down
25 changes: 14 additions & 11 deletions src/l10n/helptexts.nb.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,18 @@ Om definisjonen er hentet ordrett fra en kilden, velger du ‘sitat fra kilde’
Om definisjonen består av egne ordvalg basert på en kilde, velger du ‘basert på kilde’.

Se mer om ‘kildebeskrivelse’ i [standard for begrepsbeskrivelser](https://data.norge.no/specification/skos-ap-no-begrep#Definisjon-forhold-til-kilde)`,
definisjonForAllmennhetenTitle: 'Definisjon for allmennheten',
definisjonForAllmennhetenTitle: "Definisjon for allmennheten",
definisjonForAllmennhetenAbstract:
'En definisjon av begrepet som er rettet mot allmennheten. Det forventes ikke at denne målgruppen har noe forkunnskap i det/de aktuelle fagområdet/fagområdene for begrepet.',
"En definisjon av begrepet som er rettet mot allmennheten. Det forventes ikke at denne målgruppen har noe forkunnskap i det/de aktuelle fagområdet/fagområdene for begrepet.",
definisjonForAllmennhetenDescription: `Registrer meningsinnholdet til begrepet uttrykt gjennom en setning. 
En definisjon for allmennheten er en beskrivelse som avgrenser begrepet mot beslektede begrep. Definisjonen er altså begrepet forklart med ord. 
Definisjonen skal ikke være en utfyllende innføring i begrepet. 
Et eksempel er bonus i arbeidsforhold, som av Skatteetaten blir definert som ‘godtgjørelse som kan knyttes direkte til innsats eller resultater i en virksomhet’. 
Fagområder vil også sette begrensninger i hvilken sammenheng begrepet og definisjonen skal forstås. 
Se mer om ‘definisjon’ i [veileder for begrepsbeskrivelser](https://data.norge.no/specification/skos-ap-no-begrep#Begrep-definisjon-direkte-angivelse)`,
definisjonForAllmennhetenKildeTitle: 'Kilde til definisjon for allmennheten',
definisjonForAllmennhetenKildeAbstract: 'Her registrerer du hvor du har hentet definisjonen fra. ',
definisjonForAllmennhetenKildeTitle: "Kilde til definisjon for allmennheten",
definisjonForAllmennhetenKildeAbstract:
"Her registrerer du hvor du har hentet definisjonen fra. ",
definisjonForAllmennhetenKildeDescription: `Her kan du legge til én eller flere kilder til definisjonen. 

Kilden til definisjon for allmennheten kan være enten lov eller forskrift, et leksikon, en ordbok e.l.  Har virksomheten definert begrepet selv, velger du "Egendefinert".
Expand All @@ -49,17 +50,18 @@ Om definisjonen er hentet ordrett fra en kilden, velger du ‘sitat fra kilde’
Om definisjonen består av egne ordvalg basert på en kilde, velger du ‘basert på kilde’.

Se mer om ‘kildebeskrivelse’ i [standard for begrepsbeskrivelser](https://data.norge.no/specification/skos-ap-no-begrep#Definisjon-forhold-til-kilde)`,
definisjonForSpesialisterTitle: 'Definisjon for spesialister',
definisjonForSpesialisterTitle: "Definisjon for spesialister",
definisjonForSpesialisterAbstract:
'En definisjon av begrepet som er rettet mot spesialister. Definisjonen skal være en kort beskrivelse som tydelig avgrenser til andre, nærliggende begrep, eventuelt tydeliggjør forskjellen mellom dette begrepet og andre nærliggende begrep.',
"En definisjon av begrepet som er rettet mot spesialister. Definisjonen skal være en kort beskrivelse som tydelig avgrenser til andre, nærliggende begrep, eventuelt tydeliggjør forskjellen mellom dette begrepet og andre nærliggende begrep.",
definisjonForSpesialisterDescription: `Registrer meningsinnholdet til begrepet uttrykt gjennom en setning. 
En definisjon for spesialister er en beskrivelse som avgrenser begrepet mot beslektede begrep. Definisjonen er altså begrepet forklart med ord. 
Definisjonen skal ikke være en utfyllende innføring i begrepet. 
Et eksempel er bonus i arbeidsforhold, som av Skatteetaten blir definert som ‘godtgjørelse som kan knyttes direkte til innsats eller resultater i en virksomhet’. 
Fagområder vil også sette begrensninger i hvilken sammenheng begrepet og definisjonen skal forstås. 
Se mer om ‘definisjon’ i [veileder for begrepsbeskrivelser](https://data.norge.no/specification/skos-ap-no-begrep#Begrep-definisjon-direkte-angivelse)`,
definisjonForSpesialisterKildeTitle: 'Kilde til definisjon for spesialister',
definisjonForSpesialisterKildeAbstract: 'Her registrerer du hvor du har hentet definisjonen fra. ',
definisjonForSpesialisterKildeTitle: "Kilde til definisjon for spesialister",
definisjonForSpesialisterKildeAbstract:
"Her registrerer du hvor du har hentet definisjonen fra. ",
definisjonForSpesialisterKildeDescription: `Her kan du legge til én eller flere kilder til definisjonen. 

Kilden til definisjon for spesialister kan være enten lov eller forskrift, et leksikon, en ordbok e.l.  Har virksomheten definert begrepet selv, velger du "Egendefinert".
Expand Down Expand Up @@ -104,8 +106,8 @@ Se mer om ‘eksempel’ i [veileder for begrepsbeskrivelser](https://data.norge
fagomraadeDescription: `Du kan bare registrere ett fagområde til et begrep, f.eks. ‘Helse’ for begrepet ‘helsetilstand’. 
Fagområde kan representere en akademisk disiplin, et bruksområde, et produkt, en tjenestekjede eller lignende. 
Se mer om ‘fagområde’ i [veileder for begrepsbeskrivelser](https://data.norge.no/specification/skos-ap-no-begrep#Begrep-fagomr%C3%A5de)`,
omfangTitle: 'Verdiområde',
omfangAbstract: 'Lovlig verdiområde for begrepet.',
omfangTitle: "Verdiområde",
omfangAbstract: "Lovlig verdiområde for begrepet.",
omfangDescription: `Eksempel på verdiområde: For begrepet ‘alder’ kan verdiområdet beskrives som “alle positive tall”. 
Dette feltet skal ikke brukes for å oppgi eksempler. 
Se mer om verdiområde i [veileder for begrepsbeskrivelser](https://data.norge.no/specification/skos-ap-no-begrep#Begrep-verdiomr%C3%A5de)`,
Expand Down Expand Up @@ -136,7 +138,8 @@ Se mer om ‘kontaktinformasjon’ i [veileder for begrepsbeskrivelser](https://
seOgsaaTitle: "Se også",
seOgsaaAbstract: "Referanse til et beslektet begrep.",
assignUserTitle: "Hvem skal begrepet tildeles?",
assignUserAbstract: "Oppgi fullt navn for hvem begrepet skal tildeles.",
assignUserAbstract:
"Velg personen som skal ha ansvaret for å følge opp begrepet.",
replacedByAbstract: "Referanse til begrep som erstatter gjeldende begrep.",
relationsTitle: "Relasjoner",
descriptionTitle: "Beskrivelse",
Expand Down
1 change: 0 additions & 1 deletion src/l10n/nb.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,6 @@ export const nb = {
missingTitle: "Mangler tittel",
internalInfo: "Interne opplysninger",
internalSubText: "Opplysningene under er til intern bruk og vil ikke publiseres ut i Felles datakatalog.",
enterFullName: "Oppgi fullt navn",
replacedBy: 'Erstattes av',
relation: 'Relasjon',
relationType: 'Nivå',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,6 @@ export const InternalInfo: FC<Props> = ({ catalogId, errors }) => {
<Field
name='assignedUser'
component={SelectField}
placeholder={localization.enterFullName}
options={userList.map(item => ({
label: item.name,
value: item.id
Expand Down