diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 63f97cd494e3..d1fe03022a12 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -58,7 +58,7 @@ /libs/shared/connected/src/lib/generalPetition/GeneralPetitionLists/ @island-is/juni /libs/shared/connected/src/lib/SignatureLists/ @island-is/juni /libs/api/domains/communications/ @island-is/juni @island-is/stefna -/apps/services/user-notification/ @island-is/juni +/apps/services/user-notification/ @island-is/juni @island-is/aranja /apps/air-discount-scheme/ @island-is/hugsmidjan /libs/air-discount-scheme/ @island-is/hugsmidjan /libs/application/templates/p-sign/ @island-is/juni @@ -127,6 +127,8 @@ libs/clients/rsk/relationships/ /apps/services/user-profile/ @island-is/hugsmidjan @island-is/juni @island-is/aranja /apps/web/screens/Regulations/ @island-is/hugsmidjan /apps/web/components/Regulations/ @island-is/hugsmidjan +/apps/web/screens/OfficialJournalOfIceland/ @island-is/hugsmidjan +/apps/web/components/OfficialJournalOfIceland/ @island-is/hugsmidjan /libs/api/domains/air-discount-scheme @island-is/hugsmidjan /libs/api/domains/documents/ @island-is/hugsmidjan /libs/api/domains/finance/ @island-is/hugsmidjan @@ -147,8 +149,9 @@ libs/clients/rsk/relationships/ /libs/api/domains/occupational-licenses/ @island-is/hugsmidjan /libs/api/domains/occupational-licenses-v2/ @island-is/hugsmidjan /libs/api/domains/intellectual-properties/ @island-is/hugsmidjan -/libs/api/domains/ministry-of-justice/ @island-is/hugsmidjan +/libs/api/domains/official-journal-of-iceland/ @island-is/hugsmidjan /libs/api/domains/document-provider/ @island-is/hugsmidjan @island-is/core +/libs/api/domains/housing-benefits/ @island-is/hugsmidjan /libs/clients/documents/ @island-is/hugsmidjan /libs/clients/documents-v2/ @island-is/hugsmidjan /libs/clients/finance/ @island-is/hugsmidjan @@ -176,7 +179,7 @@ libs/clients/rsk/relationships/ /libs/clients/regulations-admin/ @island-is/hugsmidjan /libs/clients/inna/ @island-is/hugsmidjan /libs/clients/hms-loans/ @island-is/hugsmidjan -/libs/clients/dmr/ @island-is/hugsmidjan +/libs/clients/official-journal-of-iceland/ @island-is/hugsmidjan /libs/clients/hms-housing-benefits/ @island-is/hugsmidjan /apps/services/license-api/ @island-is/hugsmidjan /libs/regulations/ @island-is/hugsmidjan diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 8ea6b284bf08..ee926571f757 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -603,13 +603,13 @@ jobs: if: steps.gather.outcome == 'success' run: ./scripts/ci/run-in-parallel.sh 90_$DOCKER_TYPE env: - EXTRA_DOCKER_BUILD_ARGS: '--build-arg DOCKER_IMAGE_REGISTRY=${{ env.DOCKER_BASE_IMAGE_REGISTRY }}' + EXTRA_DOCKER_BUILD_ARGS: '--build-arg DOCKER_IMAGE_REGISTRY=${{ env.DOCKER_BASE_IMAGE_REGISTRY }} --build-arg GIT_SHA=${{ github.sha }}' - name: Building Docker images Retry #This only exists until GHA starts supporting this if: steps.gather.outcome == 'success' && steps.dockerbuild.outcome == 'failure' run: ./scripts/ci/run-in-parallel.sh 90_$DOCKER_TYPE env: - EXTRA_DOCKER_BUILD_ARGS: '--build-arg DOCKER_IMAGE_REGISTRY=${{ env.DOCKER_BASE_IMAGE_REGISTRY }}' + EXTRA_DOCKER_BUILD_ARGS: '--build-arg DOCKER_IMAGE_REGISTRY=${{ env.DOCKER_BASE_IMAGE_REGISTRY }} --build-arg GIT_SHA=${{ github.sha }}' helm-docker-build: needs: diff --git a/.yarn/patches/dd-trace-npm-3.29.1-4e4e5d3a0c.patch b/.yarn/patches/dd-trace-npm-3.29.1-4e4e5d3a0c.patch deleted file mode 100644 index c74b70741f47..000000000000 --- a/.yarn/patches/dd-trace-npm-3.29.1-4e4e5d3a0c.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/packages/dd-trace/src/plugins/util/test.js b/packages/dd-trace/src/plugins/util/test.js -index 6e7abb3935822ba31d5c22419d2abaa9873c6bf0..9d5085ef8080cfceb2497048765719b382fb1a77 100644 ---- a/packages/dd-trace/src/plugins/util/test.js -+++ b/packages/dd-trace/src/plugins/util/test.js -@@ -201,7 +201,8 @@ function getTestParametersString (parametersByTestName, testName) { - } - try { - // test is invoked with each parameter set sequencially -- const testParameters = parametersByTestName[testName].shift() -+ const testParameters = parametersByTestName[testName][0] -+ parametersByTestName[testName] = parametersByTestName[testName].filter((e, index) => index !== 0) - return JSON.stringify({ arguments: testParameters, metadata: {} }) - } catch (e) { - // We can't afford to interrupt the test if `testParameters` is not serializable to JSON, diff --git a/.yarn/patches/dd-trace-npm-5.10.0-184ed36e96.patch b/.yarn/patches/dd-trace-npm-5.10.0-184ed36e96.patch new file mode 100644 index 000000000000..d673f4c70e2d --- /dev/null +++ b/.yarn/patches/dd-trace-npm-5.10.0-184ed36e96.patch @@ -0,0 +1,44 @@ +diff --git a/packages/dd-trace/src/external-logger/src/index.js b/packages/dd-trace/src/external-logger/src/index.js +index aa21b20b6e78336329f8f99214a36fde3b9c2c59..523c285768a9f34ba9bc353a5caff6962cf1ff5c 100644 +--- a/packages/dd-trace/src/external-logger/src/index.js ++++ b/packages/dd-trace/src/external-logger/src/index.js +@@ -81,7 +81,7 @@ class ExternalLogger { + let encodedLogs + + if (!this.queue.length) { +- setImmediate(() => cb()) ++ setTimeout(() => cb(), 0) + return + } + +@@ -93,7 +93,7 @@ class ExternalLogger { + encodedLogs = JSON.stringify(logs) + } catch (error) { + tracerLogger.error(`failed to encode ${numLogs} logs`) +- setImmediate(() => cb(error)) ++ setTimeout(() => cb(error), 0) + return + } + +diff --git a/packages/dd-trace/src/telemetry/dependencies.js b/packages/dd-trace/src/telemetry/dependencies.js +index 992dde7d2ec7b6742b55e48bb0941f88d01669bf..9a0559d576663eaff4291edf0fdda6ea51da1456 100644 +--- a/packages/dd-trace/src/telemetry/dependencies.js ++++ b/packages/dd-trace/src/telemetry/dependencies.js +@@ -32,7 +32,7 @@ function createBatchPayload (payload) { + } + function waitAndSend (config, application, host) { + if (!immediate) { +- immediate = setImmediate(() => { ++ immediate = setTimeout(() => { + immediate = null + if (savedDependenciesToSend.size > 0) { + const dependencies = Array.from(savedDependenciesToSend.values()) +@@ -69,7 +69,7 @@ function waitAndSend (config, application, host) { + waitAndSend(config, application, host) + } + } +- }) ++ }, 0) + immediate.unref() + } + } diff --git a/.yarn/patches/node-request-interceptor-npm-0.5.9-77e9d9c058.patch b/.yarn/patches/node-request-interceptor-npm-0.5.9-77e9d9c058.patch new file mode 100644 index 000000000000..42528a2dc559 --- /dev/null +++ b/.yarn/patches/node-request-interceptor-npm-0.5.9-77e9d9c058.patch @@ -0,0 +1,16 @@ +diff --git a/lib/interceptors/ClientRequest/ClientRequestOverride.js b/lib/interceptors/ClientRequest/ClientRequestOverride.js +index e1e005c1055587ed12d1084dab3821b93572ca3d..9b2e40afa7ba62680c48df1ad033f738d4c5d3e7 100644 +--- a/lib/interceptors/ClientRequest/ClientRequestOverride.js ++++ b/lib/interceptors/ClientRequest/ClientRequestOverride.js +@@ -122,9 +122,9 @@ function createClientRequestOverrideClass(middleware, performOriginalRequest, or + callback(); + } + } +- setImmediate(function () { ++ setTimeout(function () { + _this.emit('drain'); +- }); ++ }, 0); + return false; + }; + this.end = function () { diff --git a/apps/api/infra/api.ts b/apps/api/infra/api.ts index 335d043c54a3..9069c630683a 100644 --- a/apps/api/infra/api.ts +++ b/apps/api/infra/api.ts @@ -58,6 +58,7 @@ export const serviceSetup = (services: { sessionsApi: ServiceBuilder<'services-sessions'> authAdminApi: ServiceBuilder<'services-auth-admin-api'> universityGatewayApi: ServiceBuilder<'services-university-gateway'> + userNotificationService: ServiceBuilder<'services-user-notification'> }): ServiceBuilder<'api'> => { return service('api') .namespace('islandis') @@ -68,6 +69,9 @@ export const serviceSetup = (services: { APPLICATION_SYSTEM_API_URL: ref( (h) => `http://${h.svc(services.appSystemApi)}`, ), + USER_NOTIFICATION_API_URL: ref( + (h) => `http://${h.svc(services.userNotificationService)}`, + ), ICELANDIC_NAMES_REGISTRY_BACKEND_URL: ref( (h) => `http://${h.svc(services.icelandicNameRegistryBackend)}`, ), @@ -121,7 +125,7 @@ export const serviceSetup = (services: { staging: 'development@island.is', prod: 'island@island.is', }, - SERVICE_USER_PROFILE_URL: ref( + USER_PROFILE_CLIENT_URL: ref( (h) => `http://${h.svc(services.servicePortalApi)}`, ), FILE_DOWNLOAD_BUCKET: { @@ -162,11 +166,6 @@ export const serviceSetup = (services: { staging: 'https://identity-server.staging01.devland.is', prod: 'https://innskra.island.is', }, - USER_NOTIFICATION_CLIENT_URL: { - dev: 'http://user-notification-xrd.internal.dev01.devland.is', - staging: 'http://user-notification-xrd.internal.staging01.devland.is', - prod: 'https://user-notification-xrd.internal.island.is', - }, MUNICIPALITIES_FINANCIAL_AID_BACKEND_URL: { dev: 'http://web-financial-aid-backend', staging: 'http://web-financial-aid-backend', diff --git a/apps/api/src/app/app.module.ts b/apps/api/src/app/app.module.ts index 95756199621f..52472b1dacf1 100644 --- a/apps/api/src/app/app.module.ts +++ b/apps/api/src/app/app.module.ts @@ -40,6 +40,7 @@ import { OccupationalLicensesModule } from '@island.is/api/domains/occupational- import { OccupationalLicensesV2Module } from '@island.is/api/domains/occupational-licenses-v2' import { HealthInsuranceModule } from '@island.is/api/domains/health-insurance' import { HmsLoansModule } from '@island.is/api/domains/hms-loans' +import { HousingBenefitsModule } from '@island.is/api/domains/housing-benefits' import { HousingBenefitCalculatorModule } from '@island.is/api/domains/housing-benefit-calculator' import { IcelandicGovernmentInstitutionVacanciesModule } from '@island.is/api/domains/icelandic-government-institution-vacancies' import { IcelandicNamesModule } from '@island.is/api/domains/icelandic-names-registry' @@ -49,7 +50,7 @@ import { } from '@island.is/api/domains/communications' import { IdentityModule } from '@island.is/api/domains/identity' import { LicenseServiceModule } from '@island.is/api/domains/license-service' -import { MinistryOfJusticeModule } from '@island.is/api/domains/ministry-of-justice' +import { OfficialJournalOfIcelandModule } from '@island.is/api/domains/official-journal-of-iceland' import { MortgageCertificateModule } from '@island.is/api/domains/mortgage-certificate' import { MunicipalitiesFinancialAidModule } from '@island.is/api/domains/municipalities-financial-aid' import { NationalRegistryXRoadModule } from '@island.is/api/domains/national-registry-x-road' @@ -95,12 +96,18 @@ import { FirearmLicenseClientConfig } from '@island.is/clients/firearm-license' import { FishingLicenseClientConfig } from '@island.is/clients/fishing-license' import { FiskistofaClientConfig } from '@island.is/clients/fiskistofa' import { AircraftRegistryClientConfig } from '@island.is/clients/aircraft-registry' -import { UserNotificationClientConfig } from '@island.is/clients/user-notification' +import { + UserNotificationClientConfig, + UserNotificationSystemClientConfig, +} from '@island.is/clients/user-notification' import { HealthDirectorateClientConfig, HealthDirectorateClientModule, } from '@island.is/clients/health-directorate' -import { DmrClientConfig, DmrClientModule } from '@island.is/clients/dmr' +import { + OfficialJournalOfIcelandClientConfig, + OfficialJournalOfIcelandClientModule, +} from '@island.is/clients/official-journal-of-iceland' import { HmsLoansClientConfig } from '@island.is/clients/hms-loans' import { HousingBenefitCalculatorClientConfig } from '@island.is/clients/housing-benefit-calculator' import { IcelandicGovernmentInstitutionVacanciesClientConfig } from '@island.is/clients/icelandic-government-institution-vacancies' @@ -167,6 +174,7 @@ import { GraphQLConfig } from './graphql.config' import { HealthController } from './health.controller' import { DocumentClientConfig } from '@island.is/clients/documents' import { HousingBenefitsConfig } from '@island.is/clients/hms-housing-benefits' +import { UserProfileClientConfig } from '@island.is/clients/user-profile' const environment = getConfig @@ -238,8 +246,6 @@ const environment = getConfig }, }), UserProfileModule.register({ - userProfileServiceBasePath: - environment.userProfile.userProfileServiceBasePath!, islykill: { cert: environment.islykill.cert!, passphrase: environment.islykill.passphrase!, @@ -257,7 +263,7 @@ const environment = getConfig OccupationalLicensesV2Module, SocialInsuranceModule, HealthDirectorateClientModule, - DmrClientModule, + OfficialJournalOfIcelandClientModule, DisabilityLicenseModule, ElectronicRegistrationsModule, FiskistofaModule, @@ -267,7 +273,7 @@ const environment = getConfig ShipRegistryModule, IntellectualPropertiesModule, StatisticsModule, - MinistryOfJusticeModule, + OfficialJournalOfIcelandModule, CompanyRegistryModule, IcelandicNamesModule.register({ backendUrl: environment.icelandicNamesRegistry.backendUrl!, @@ -283,6 +289,7 @@ const environment = getConfig RightsPortalModule, AssetsModule, HmsLoansModule, + HousingBenefitsModule, PassportModule, AirDiscountSchemeModule, NationalRegistryXRoadModule, @@ -332,6 +339,7 @@ const environment = getConfig DrivingDigitalLicenseClientConfig, IntellectualPropertiesClientConfig, UserNotificationClientConfig, + UserNotificationSystemClientConfig, GraphQLConfig, VehiclesClientConfig, VehiclesMileageClientConfig, @@ -371,7 +379,7 @@ const environment = getConfig JudicialAdministrationClientConfig, CommunicationsConfig, HealthDirectorateClientConfig, - DmrClientConfig, + OfficialJournalOfIcelandClientConfig, UniversityOfIcelandClientConfig, InnaClientConfig, SessionsApiClientConfig, @@ -389,6 +397,7 @@ const environment = getConfig SignatureCollectionClientConfig, UniversityGatewayApiClientConfig, LicenseConfig, + UserProfileClientConfig, ], }), ], diff --git a/apps/api/src/app/environments/environment.ts b/apps/api/src/app/environments/environment.ts index e2cf41e615ee..f53e35bde620 100644 --- a/apps/api/src/app/environments/environment.ts +++ b/apps/api/src/app/environments/environment.ts @@ -55,9 +55,6 @@ const prodConfig = () => ({ username: process.env.XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME, password: process.env.XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD, }, - userProfile: { - userProfileServiceBasePath: process.env.SERVICE_USER_PROFILE_URL, - }, auth: { issuer: process.env.IDENTITY_SERVER_ISSUER_URL, audience: ['@island.is', '@admin.island.is'], @@ -177,9 +174,6 @@ const devConfig = () => ({ username: process.env.XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME ?? '', password: process.env.XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD ?? '', }, - userProfile: { - userProfileServiceBasePath: 'http://localhost:3366', - }, auth: { issuer: 'https://identity-server.dev01.devland.is', audience: ['@island.is', '@admin.island.is'], diff --git a/apps/application-system/api/infra/application-system-api.ts b/apps/application-system/api/infra/application-system-api.ts index d0b9d1006a14..49d4c9e07c7b 100644 --- a/apps/application-system/api/infra/application-system-api.ts +++ b/apps/application-system/api/infra/application-system-api.ts @@ -30,6 +30,7 @@ import { ArborgWorkpoint, Inna, OfficialJournalOfIceland, + VehiclesMileage, } from '../../../../infra/src/dsl/xroad' export const GRAPHQL_API_URL_ENV_VAR_NAME = 'GRAPHQL_API_URL' // This property is a part of a circular dependency that is treated specially in certain deployment types @@ -266,6 +267,7 @@ export const serviceSetup = (services: { RskCompanyInfo, VehicleServiceFjsV1, Inna, + VehiclesMileage, TransportAuthority, Vehicles, Passports, diff --git a/apps/application-system/api/src/app/app.module.ts b/apps/application-system/api/src/app/app.module.ts index 7be1ac8ac155..82fd5b815036 100644 --- a/apps/application-system/api/src/app/app.module.ts +++ b/apps/application-system/api/src/app/app.module.ts @@ -36,7 +36,7 @@ import { ArborgWorkpoinClientConfig } from '@island.is/clients/workpoint/arborg' import { SocialInsuranceAdministrationClientConfig } from '@island.is/clients/social-insurance-administration' import { SignatureCollectionClientConfig } from '@island.is/clients/signature-collection' import { InnaClientConfig } from '@island.is/clients/inna' -import { DmrClientConfig } from '@island.is/clients/dmr' +import { OfficialJournalOfIcelandClientConfig } from '@island.is/clients/official-journal-of-iceland' @Module({ imports: [ @@ -76,7 +76,7 @@ import { DmrClientConfig } from '@island.is/clients/dmr' SocialInsuranceAdministrationClientConfig, SignatureCollectionClientConfig, InnaClientConfig, - DmrClientConfig, + OfficialJournalOfIcelandClientConfig, ], }), ], diff --git a/apps/consultation-portal/components/ActionCard/ActionCard.tsx b/apps/consultation-portal/components/ActionCard/ActionCard.tsx index 9e6552191501..f50b8c664903 100644 --- a/apps/consultation-portal/components/ActionCard/ActionCard.tsx +++ b/apps/consultation-portal/components/ActionCard/ActionCard.tsx @@ -59,7 +59,11 @@ const ActionCard = ({ heading, text, button, input }: Props) => { dataTestId="action-card" > - {!!heading && {heading}} + {!!heading && ( + + {heading} + + )} {!!text && {text}} {noInput ? ( diff --git a/apps/consultation-portal/components/Card/Card.css.ts b/apps/consultation-portal/components/Card/Card.css.ts index ce4145fca0b2..4f60f6d6393d 100644 --- a/apps/consultation-portal/components/Card/Card.css.ts +++ b/apps/consultation-portal/components/Card/Card.css.ts @@ -1,4 +1,5 @@ import { style } from '@vanilla-extract/css' +import { theme } from '@island.is/island-ui/theme' export const cardBox = style({ minWidth: '287px', @@ -12,4 +13,14 @@ export const seperator = style({ export const title = style({ overflow: 'hidden', + height: 100, +}) + +export const textContainer = style({ + '@media': { + [`screen and (max-width: ${theme.breakpoints.md}px)`]: { + height: 68, + overflow: 'hidden', + }, + }, }) diff --git a/apps/consultation-portal/components/Card/Card.tsx b/apps/consultation-portal/components/Card/Card.tsx index b1ed995f66c6..14d2c44edea2 100644 --- a/apps/consultation-portal/components/Card/Card.tsx +++ b/apps/consultation-portal/components/Card/Card.tsx @@ -69,14 +69,12 @@ const Card = ({ truncate={false} /> - - - {card.title} - + + + + {card.title} + + diff --git a/apps/consultation-portal/components/Error/Error404/Error404.tsx b/apps/consultation-portal/components/Error/Error404/Error404.tsx index 243aa910530d..bd84ca4b0f4a 100644 --- a/apps/consultation-portal/components/Error/Error404/Error404.tsx +++ b/apps/consultation-portal/components/Error/Error404/Error404.tsx @@ -9,7 +9,7 @@ export const Error404 = () => { return ( - + {loc.notFoundText}
diff --git a/apps/consultation-portal/components/LogoText/LogoText.tsx b/apps/consultation-portal/components/LogoText/LogoText.tsx index c13b378b941a..e8d045e96baf 100644 --- a/apps/consultation-portal/components/LogoText/LogoText.tsx +++ b/apps/consultation-portal/components/LogoText/LogoText.tsx @@ -7,7 +7,12 @@ type Props = { const LogoText = ({ isSmall = false }: Props) => { const loc = localization['logoText'] - return {loc.title} + + return ( + + {loc.title} + + ) } export default LogoText diff --git a/apps/consultation-portal/components/Pagination/Pagination.tsx b/apps/consultation-portal/components/Pagination/Pagination.tsx index fc574c1952ab..fd214693f041 100644 --- a/apps/consultation-portal/components/Pagination/Pagination.tsx +++ b/apps/consultation-portal/components/Pagination/Pagination.tsx @@ -37,13 +37,9 @@ const Pagination = ({ totalPages={totalPages} variant="blue" renderLink={(pageNumber, className, children) => ( - goToPage(pageNumber - 1)} - > - {children} - + )} /> diff --git a/apps/consultation-portal/screens/About/components/AboutContent/AboutContent.css.ts b/apps/consultation-portal/screens/About/components/AboutContent/AboutContent.css.ts index ce940c2ee505..ca8d81967a70 100644 --- a/apps/consultation-portal/screens/About/components/AboutContent/AboutContent.css.ts +++ b/apps/consultation-portal/screens/About/components/AboutContent/AboutContent.css.ts @@ -22,7 +22,7 @@ globalStyle(`${spanStyle} > div > ul`, { paddingLeft: 40, }) -globalStyle(`${spanStyle} > div > h4`, { +globalStyle(`${spanStyle} > div > h3`, { marginTop: 10, marginBottom: 10, fontSize: '20px', diff --git a/apps/consultation-portal/screens/About/components/AboutContent/AboutContent.tsx b/apps/consultation-portal/screens/About/components/AboutContent/AboutContent.tsx index a4960581835e..78424cfcc685 100644 --- a/apps/consultation-portal/screens/About/components/AboutContent/AboutContent.tsx +++ b/apps/consultation-portal/screens/About/components/AboutContent/AboutContent.tsx @@ -8,7 +8,7 @@ const AboutContent = () => { const loc = localization['aboutContent'] return ( - + {loc.text} diff --git a/apps/consultation-portal/screens/About/components/AboutContent/AboutRTF.tsx b/apps/consultation-portal/screens/About/components/AboutContent/AboutRTF.tsx index 761c906d3212..dbd08b18aa96 100644 --- a/apps/consultation-portal/screens/About/components/AboutContent/AboutRTF.tsx +++ b/apps/consultation-portal/screens/About/components/AboutContent/AboutRTF.tsx @@ -1,22 +1,22 @@ export const RichTextAbout = ` -

Ábyrgð og umsjón

+

Ábyrgð og umsjón

Umsagnir í samráðsgáttinni eru birtar á ábyrgð sendanda, sem skráður er fyrir efninu. Hvert ráðuneyti, sem og aðrir skipuleggjendur samráðs, ákveða tilhögun og sjá um ritstjórn á því efni sem þau birta til samráðs. Ritstjórn á almennum upplýsingum og fyrirkomulagi gáttarinnar er samstarfsverkefni dómsmálaráðuneytis og fjármála- og efnahagsráðuneytis. Hýsing og dagleg tæknileg umsjón samráðsgáttarinnar er hjá Ísland.is sem heyrir undir fjármála- og efnahagsráðuneytið.

Ábendingar um það sem betur má fara sendist á samradsgatt@stjornarradid.is


-

Markmið

+

Markmið

Markmið Samráðsgáttarinnar er að auka gagnsæi og möguleika almennings og hagsmunaaðila á þátttöku í stefnumótun, reglusetningu og ákvarðanatöku opinberra aðila. Hér er á einum stað hægt að finna öll mál ráðuneyta sem birt hafa verið til samráðs við almenning. Öllum er frjálst að senda inn umsögn eða ábendingu. Tekið skal fram að til viðbótar við opið samráð á netinu geta verið annars konar samráðsferlar, svo sem þátttaka helstu hagsmunaaðila í nefndarstarfi eða sérstakt boð til þeirra um umsögn.


-

Efni

+

Efni

Í Samráðsgáttinni er að finna áform um lagasetningu, drög að lagafrumvörpum og reglugerðum, skjöl um stefnumótun (t.d. drög að stefnum) og fleira. Hægt er að senda inn umsögn eða ábendingu og jafnframt er mögulegt að gerast áskrifandi að sjálfvirkri vöktun upplýsinga, hvort heldur er eftir málefnasviði, stofnun eða tilteknu máli. Málefnasvið miðast við skiptingu viðfangsefna og málaflokka ríkisins samkvæmt lögum um opinber fjármál. Að samráðstímabili loknu er gerð grein fyrir úrvinnslu athugasemda og niðurstöðu máls.  Fyrst um sinn munu einungis ráðuneyti setja inn mál til samráðs en líklegt er að ríkisstofnanir og e.t.v. fleiri aðilar muni bætast við síðar. Aðrir væntanlegir notendur gáttarinnar eru almenningur og hagsmunaaðilar, svo sem í atvinnulífi, félagasamtökum og fræðasamfélagi. Lögð er áhersla á skýra framsetningu og auðvelda notkun.


-

Ritun umsagna

+

Ritun umsagna

Til að senda inn umsögn eða ábendingu þarf að skrá sig inn í Samráðsgáttina með Íslykli eða rafrænni auðkenningu, enda birtast umsagnir að meginreglu jafnóðum. Ef umsögn er veitt fyrir hönd lögaðila, t.d. samtaka, fyrirtækis eða stofnunar, þarf að vera fyrir hendi umboð, sjá nánar hér. Ef viðkomandi hefur ekki möguleika á innskráningu er hægt að taka þátt með því að senda tölvupóst á hlutaðeigandi stjórnvald. Umsögn skal vera skýr og skipulega upp sett til að auðvelda yfirferð og mat á efni hennar. Eftirfarandi atriði skal hafa að leiðarljósi:

  • Best er að fylgja efnisröðun skjalsins, þó þannig að fyrst komi almennt álit um málið sé þess talin þörf. Ef t.d. er um frumvarp að ræða skal einfaldlega fylgja uppsetningu þess þannig að athugasemdir og hugleiðingar um efni einstakra greina komi fram undir númeri greinar. Óþarfi er að fjalla um aðrar greinar frumvarpsins en þær sem umsagnaraðili gerir athugasemdir við.
  • @@ -27,7 +27,7 @@ export const RichTextAbout = `
    -

    Birting umsagna

    +

    Birting umsagna

    Umsagnir eru að meginreglu birtar jafnóðum og þær berast en í undantekningartilvikum koma þrjár aðrar útfærslur til greina:

      @@ -41,10 +41,10 @@ export const RichTextAbout = `
      -

      Reglur

      +

      Reglur

      Samkvæmt samþykkt ríkisstjórnar um undirbúning og frágang stjórnarfrumvarpa og þingsályktunartillagna frá 24. febrúar 2023 gilda eftirfarandi reglur um öll ráðuneyti:

      -
        +
        1. Áform ríkisstjórnar um lagasetningu og frummat á áhrifum hennar skulu kynnt almenningi og hagsmunaaðilum í opnu samráði og kostur gefinn á umsögnum og ábendingum. Þetta á þó ekki við ef sérstök rök mæla gegn slíkri birtingu, svo sem ef mál er sérlega brýnt.
          Hæfilegur frestur skal gefinn til athugasemda, að minnsta kosti tvær til fjórar vikur.
          Niðurstöður samráðs skulu birtar eins fljótt og unnt er, að jafnaði innan þriggja mánaða frá því að umsagnarfresti lauk.
          @@ -60,7 +60,7 @@ Niðurstöður samráðs skulu birtar eins fljótt og unnt er, að jafnaði inna
          -

          Eftirfylgni

          +

          Eftirfylgni

          Undir flipanum „Tölfræði“ er hægt að kynna sér yfirlit yfir nýtingu á gáttinni, allt frá opnun.

          Skrifstofa löggjafarmála í dómsmálaráðuneyti birtir einnig árlega umfjöllun um framkvæmd opins samráðs á netinu af hálfu ráðuneyta.

          Sjá nánar: Vönduð lagasetning @@ -68,7 +68,7 @@ Niðurstöður samráðs skulu birtar eins fljótt og unnt er, að jafnaði inna
          -

          Forsaga

          +

          Forsaga

          Samráðsgáttin var opnuð 5. febrúar 2018 og undirbúin í samstarfi samgöngu- og sveitarstjórnarráðuneytis, forsætisráðuneytis og dómsmálaráðuneytis.

          Sjá nánar: Vinnuhópur um samráðsferla á netinu skilar stöðumati og tillögum

          diff --git a/apps/consultation-portal/screens/About/components/TableOfContents/TableOfContents.css.ts b/apps/consultation-portal/screens/About/components/TableOfContents/TableOfContents.css.ts new file mode 100644 index 000000000000..092441726a67 --- /dev/null +++ b/apps/consultation-portal/screens/About/components/TableOfContents/TableOfContents.css.ts @@ -0,0 +1,6 @@ +import { style } from '@vanilla-extract/css' + +export const stickyPosition = style({ + position: 'sticky', + top: 100, +}) diff --git a/apps/consultation-portal/screens/About/components/TableOfContents/TableOfContents.tsx b/apps/consultation-portal/screens/About/components/TableOfContents/TableOfContents.tsx index c93e09475d1e..f0cce9c5a5e2 100644 --- a/apps/consultation-portal/screens/About/components/TableOfContents/TableOfContents.tsx +++ b/apps/consultation-portal/screens/About/components/TableOfContents/TableOfContents.tsx @@ -1,13 +1,17 @@ import React from 'react' + import { Box, TableOfContents as Contents } from '@island.is/island-ui/core' + import { scrollTo } from '../../../../hooks/useScrollSpy' import { ABOUT_HEADINGS } from '../../../../utils/consts/consts' import localization from '../../About.json' +import * as styles from './TableOfContents.css' + const TableOfContents = () => { const loc = localization['tableOfContents'] return ( - + ({ diff --git a/apps/consultation-portal/screens/Advices/Advices.tsx b/apps/consultation-portal/screens/Advices/Advices.tsx index 48001d402278..0ac7abeabdf3 100644 --- a/apps/consultation-portal/screens/Advices/Advices.tsx +++ b/apps/consultation-portal/screens/Advices/Advices.tsx @@ -153,7 +153,7 @@ export const AdvicesScreen = () => { - + {loc.intro.title} diff --git a/apps/consultation-portal/screens/Case/Case.json b/apps/consultation-portal/screens/Case/Case.json index dbe41ac47648..eece1baaf44c 100644 --- a/apps/consultation-portal/screens/Case/Case.json +++ b/apps/consultation-portal/screens/Case/Case.json @@ -151,7 +151,7 @@ "agencyText": { "textBefore": "Ef umsögn er send fyrir hönd samtaka, fyrirtækis eða stofnunar þarf umboð þaðan,", "href": "https://samradsgatt.island.is/library/Files/Umbo%C3%B0%20-%20lei%C3%B0beiningar%20fyrir%20samr%C3%A1%C3%B0sg%C3%A1tt%20r%C3%A1%C3%B0uneyta.pdf", - "textAfter": "sjá nánar hér." + "textAfter": "sjá nánar hér" }, "caseStatusBox": { "Til umsagnar": { diff --git a/apps/consultation-portal/screens/Case/components/AdviceCard/AdviceCard.tsx b/apps/consultation-portal/screens/Case/components/AdviceCard/AdviceCard.tsx index ed185c2167df..fa3b709c03ca 100644 --- a/apps/consultation-portal/screens/Case/components/AdviceCard/AdviceCard.tsx +++ b/apps/consultation-portal/screens/Case/components/AdviceCard/AdviceCard.tsx @@ -99,17 +99,23 @@ export const AdviceCard = ({ advice }: Props) => { {getShortDate(advice.created)} {scrollHeight > REVIEW_CARD_SCROLL_HEIGHT && ( - setOpen(!open)}> + setOpen(!open)} + > )} - + {advice?.number} -{' '} {!advice?.isPrivate && !advice?.isHidden && advice?.participantName} diff --git a/apps/consultation-portal/screens/Case/components/AdviceForm/AdviceForm.tsx b/apps/consultation-portal/screens/Case/components/AdviceForm/AdviceForm.tsx index 45c95a8cec89..a24308aed15f 100644 --- a/apps/consultation-portal/screens/Case/components/AdviceForm/AdviceForm.tsx +++ b/apps/consultation-portal/screens/Case/components/AdviceForm/AdviceForm.tsx @@ -233,7 +233,7 @@ export const AdviceForm = ({ case: _case, refetchAdvices }: Props) => { {date} - + {loc.card.title} diff --git a/apps/consultation-portal/screens/Case/components/AdviceForm/components/ActionBox/ActionBox.tsx b/apps/consultation-portal/screens/Case/components/AdviceForm/components/ActionBox/ActionBox.tsx index f9107f44d23c..ff5acf01e67c 100644 --- a/apps/consultation-portal/screens/Case/components/AdviceForm/components/ActionBox/ActionBox.tsx +++ b/apps/consultation-portal/screens/Case/components/AdviceForm/components/ActionBox/ActionBox.tsx @@ -33,7 +33,9 @@ export const ActionBox = ({ heading, text, cta }: Props) => { columnGap={3} > - {heading} + + {heading} + {text} { const loc = localization['agencyText'] return ( {loc.textBefore}{' '} - + { {loc.textAfter} + {'.'} ) } diff --git a/apps/consultation-portal/screens/Case/components/BlowoutList/BlowoutList.tsx b/apps/consultation-portal/screens/Case/components/BlowoutList/BlowoutList.tsx index c46d2467fe5d..29ee4051f073 100644 --- a/apps/consultation-portal/screens/Case/components/BlowoutList/BlowoutList.tsx +++ b/apps/consultation-portal/screens/Case/components/BlowoutList/BlowoutList.tsx @@ -44,12 +44,15 @@ export const BlowoutList = ({ component="button" onClick={() => setShowList(!showList)} className={styles.blowout} + title="show-list" + aria-label="show-list" > {showList && ( diff --git a/apps/consultation-portal/screens/Case/components/CaseOverview/CaseOverview.tsx b/apps/consultation-portal/screens/Case/components/CaseOverview/CaseOverview.tsx index c80c0a121bbb..6043db95f656 100644 --- a/apps/consultation-portal/screens/Case/components/CaseOverview/CaseOverview.tsx +++ b/apps/consultation-portal/screens/Case/components/CaseOverview/CaseOverview.tsx @@ -50,7 +50,7 @@ export const CaseOverview = ({ chosenCase }: CaseOverviewProps) => { wrap={true} truncate={false} /> - + {chosenCase?.name} @@ -60,11 +60,15 @@ export const CaseOverview = ({ chosenCase }: CaseOverviewProps) => { )} - {loc.shortDescriptionTitle} + + {loc.shortDescriptionTitle} + {chosenCase?.shortDescription} - {loc.detailedDescriptionTitle} + + {loc.detailedDescriptionTitle} + {chosenCaseSplitted && ( {chosenCaseSplitted.map((split, idx) => { diff --git a/apps/consultation-portal/screens/Case/components/CaseTimeline/CaseTimeline.tsx b/apps/consultation-portal/screens/Case/components/CaseTimeline/CaseTimeline.tsx index 17fbac61c0b1..4141c070c3b5 100644 --- a/apps/consultation-portal/screens/Case/components/CaseTimeline/CaseTimeline.tsx +++ b/apps/consultation-portal/screens/Case/components/CaseTimeline/CaseTimeline.tsx @@ -49,7 +49,7 @@ export const CaseTimeline = ({ chosenCase }: CaseTimelineProps) => { return ( {!isMobile && ( - + {loc.title} )} diff --git a/apps/consultation-portal/screens/Case/components/DocFileName/DocFileName.tsx b/apps/consultation-portal/screens/Case/components/DocFileName/DocFileName.tsx index 932736367a76..24da6e0571db 100644 --- a/apps/consultation-portal/screens/Case/components/DocFileName/DocFileName.tsx +++ b/apps/consultation-portal/screens/Case/components/DocFileName/DocFileName.tsx @@ -4,6 +4,7 @@ import env from '../../../../lib/environment' import { isDocumentLink, renderDocFileName } from '../../utils' import localization from '../../Case.json' import * as styles from './DocFileName.css' +import { useIsMobile } from '../../../../hooks' interface Props { doc: Document @@ -11,6 +12,7 @@ interface Props { } const DocFileName = ({ doc, isAdvice = false }: Props) => { + const { isMobile } = useIsMobile() const loc = localization['caseDocuments'] const isLink = isDocumentLink(doc) const icon = isLink ? 'link' : 'document' @@ -38,7 +40,12 @@ const DocFileName = ({ doc, isAdvice = false }: Props) => { newTab > <> - + {linkDesc} { const loc = localization['renderAdvices'] return ( - + {`${loc.advices.title} (${adviceCount ? adviceCount : 0})`} {children} diff --git a/apps/consultation-portal/screens/Case/components/Stacked/Stacked.tsx b/apps/consultation-portal/screens/Case/components/Stacked/Stacked.tsx index 83f31a89e996..7566e76ef4e2 100644 --- a/apps/consultation-portal/screens/Case/components/Stacked/Stacked.tsx +++ b/apps/consultation-portal/screens/Case/components/Stacked/Stacked.tsx @@ -10,7 +10,7 @@ interface Props { const Stacked = ({ headingColor = 'blue400', title, children }: Props) => { return ( - + {title} {children} diff --git a/apps/consultation-portal/screens/Home/components/Filter/components/Filterbox.tsx b/apps/consultation-portal/screens/Home/components/Filter/components/Filterbox.tsx index 3a409e94b5de..dde391cd26a6 100644 --- a/apps/consultation-portal/screens/Home/components/Filter/components/Filterbox.tsx +++ b/apps/consultation-portal/screens/Home/components/Filter/components/Filterbox.tsx @@ -114,7 +114,9 @@ export const FilterBox = ({ > - {title} + + {title} +