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

feat(data element forms): add validation #359

Merged
merged 28 commits into from
Nov 22, 2023
Merged

Conversation

Mohammer5
Copy link
Contributor

@Mohammer5 Mohammer5 commented Oct 17, 2023

I took a look at what validation rules exist in the old app and it's not that much actually. Some fields are required and description has a max length of 255. Other fields have a min & max lenght, but that's from 0 to the largest numbers possible, so in essence it's the same as having no validator for that.

  • I've moved all fields into fields.tsx (formerly customFields.tsx) as it got a bit weird to have to edit two files everytime I worked on fields
  • I had to modify the searchable select files to be able to show that there's a validation issue visually (e.g. the red border around the input)

Unfortunately I wasn't able to leverage the true power of zod+TS as that comes to light when creating TS types from zod schemas. But we already have the TS types (e.g. DataElement). There's another way of ensuring they're compatible (see here), but that didn't work for me because of issues with the union types (valueType & aggregationType). I'll try to play around with some things, maybe I can get it to work, but at this point, I think it's not a priority.

@Mohammer5 Mohammer5 requested a review from Birkbjo October 17, 2023 09:30
@netlify
Copy link

netlify bot commented Oct 17, 2023

Deploy Preview for dhis2-maintenance-app-beta ready!

Name Link
🔨 Latest commit 0fde107
🔍 Latest deploy log https://app.netlify.com/sites/dhis2-maintenance-app-beta/deploys/655c6b6b250c770008cb132e
😎 Deploy Preview https://deploy-preview-359--dhis2-maintenance-app-beta.netlify.app/
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@codecov-commenter
Copy link

codecov-commenter commented Oct 25, 2023

Codecov Report

Attention: 7 lines in your changes are missing coverage. Please review.

Comparison is base (db58c2d) 70.68% compared to head (0fde107) 73.20%.

Files Patch % Lines
src/pages/dataElements/form/CustomAttributes.tsx 66.66% 3 Missing ⚠️
...c/pages/dataElements/form/useIsFieldValueUnique.ts 87.50% 2 Missing ⚠️
src/pages/dataElements/New.tsx 92.85% 1 Missing ⚠️
src/pages/dataElements/form/useValidate.ts 94.44% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #359      +/-   ##
==========================================
+ Coverage   70.68%   73.20%   +2.52%     
==========================================
  Files          99      102       +3     
  Lines        1552     1642      +90     
  Branches      280      301      +21     
==========================================
+ Hits         1097     1202     +105     
+ Misses        452      437      -15     
  Partials        3        3              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@Mohammer5
Copy link
Contributor Author

@Birkbjo fixed the issue, which also fixed the failing tests

@Mohammer5 Mohammer5 requested a review from Birkbjo October 25, 2023 11:47
@Mohammer5 Mohammer5 requested a review from Birkbjo October 31, 2023 09:20
src/lib/memoize.ts Outdated Show resolved Hide resolved
@Mohammer5 Mohammer5 force-pushed the DHIS2-14656-validation branch from 266ecd0 to aa62a70 Compare November 16, 2023 09:20
src/lib/useLoadApp.ts Outdated Show resolved Hide resolved
})

return (
<FieldRFF
Copy link
Member

@Birkbjo Birkbjo Nov 20, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it could make sense to have a small wrapper around FieldRFF that could simplify some things. Not sure if it's worth the change right now though.

It could generate dataTest dynamically, based on name-prop.
Pass validateFields={[]} by default (eliminate need to add the prop for every field - it's easy to forget).
Could calculate required based on zod.schema.
Could automatically add uniqueValidation based on a prop.

I think would further simplify adding new fields. It does have the downside of some more logic - but it would be easier to make changes to every field.

For instance, right now there's quite a lot of places you have to change for eg. adding a required.

  • Required in zod-schema
  • Some fields have field-validation for required, is that needed?
  • Add required as prop
  • Add required as part of label - this should be standardized

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if it's worth the change right now though.

I would prefer to not change it now and see how things develop. We can always add a concretion for that later on.


Some fields have field-validation for required, is that needed?

Right now not needed

@Mohammer5 Mohammer5 merged commit 331eabd into master Nov 22, 2023
8 checks passed
@Mohammer5 Mohammer5 deleted the DHIS2-14656-validation branch November 22, 2023 12:21
dhis2-bot added a commit that referenced this pull request Jun 7, 2024
# 1.0.0 (2024-06-07)

### Bug Fixes

* **config:** remove app from name ([f137a54](f137a54))
* fix cypress tests and color/icon buttons ([#402](#402)) ([251d76c](251d76c))
* **aggregation and value type fields:** do not use generated types for validation ([8edd272](8edd272))
* **aggregation type:** use "NONE" as default value ([89bb4c1](89bb4c1))
* **attributes:** fix deselecting attribute ([#361](#361)) ([2cc8801](2cc8801))
* **color and icon picker:** add remove icon btn & adjust styles according to specs ([c18f7f0](c18f7f0))
* **color and icon picker:** make button component a html button instead of div ([f7a2c50](f7a2c50))
* **custom attributes optionsets:** add no-value-option only when not required ([c10ec33](c10ec33))
* **dataElement:** default to default-cat-combo ([#400](#400)) ([90ff733](90ff733))
* **de form fields:** make text translatable ([8ab3090](8ab3090))
* **download:** default to only selected when list has selections ([#394](#394)) ([f7048fb](f7048fb))
* **download:** fix radio name ([b4f703b](b4f703b))
* **edit:** fix icons api response ([#377](#377)) ([f014351](f014351))
* **edit de:** allow removing nested values ([cc66cbd](cc66cbd))
* **filter:** add useInfiniteDataQuery ([0fa3b91](0fa3b91))
* **filters:** use refactored sectionlistfilter for refetch ([2dcbc75](2dcbc75))
* **form:** fix cancel link ([0fb0d12](0fb0d12))
* **form:** fix editing style object ([#362](#362)) ([88e1a58](88e1a58))
* **form:** fix render 0 when empty custom attributes ([92fb57a](92fb57a))
* **form:** hide custom attributes section if no attributes assigned ([#384](#384)) ([da4bbc9](da4bbc9))
* **form:** stylistic issues: max-width, todos, labels ([#385](#385)) ([523e8e9](523e8e9))
* **list:** fix filter being cleared on refresh ([#382](#382)) ([fc2f881](fc2f881))
* **list:** improve select performance for big lists ([#378](#378)) ([0a98f3c](0a98f3c))
* **list:** resolve reference names ([#360](#360)) ([ccd226c](ccd226c)), closes [#354](#354)
* **managelistview:** move reset to default to rightfooter ([b177893](b177893))
* **model single select:** search loaded options for selected option ([d022b8b](d022b8b))
* **model single select:** search loaded options for selected option ([57ad629](57ad629))
* **modelview:** put empty array if default ([13baa3e](13baa3e))
* **systemSettings:** use generic type for setting inference ([#393](#393)) ([e115fc6](e115fc6))
* add empty list message ([647713b](647713b))
* add linkbutton component ([c19814f](c19814f))
* cleanup ([407c912](407c912))
* cleanup filter props in DE-List ([3242a4f](3242a4f))
* failing test ([b506bae](b506bae))
* filtereddataelement type ([22e1600](22e1600))
* fix failing test ([e5c7eb5](e5c7eb5))
* fix sorting of filters ([1206241](1206241))
* fix uncontrolled input in identifiablefilter ([a4b2292](a4b2292))
* handle errors in list request ([ec160e7](ec160e7))
* hide unauthorized section cards ([11e18e6](11e18e6))
* missing files ([6718da9](6718da9))
* reset paging when clearing filters ([fdb0b10](fdb0b10))
* resolve conflict between cypress and jest types ([475907c](475907c))
* review ([92c1648](92c1648))
* simplify initial selected logic ([eb4ce54](eb4ce54))
* some cleanup ([432ac43](432ac43))
* some cleanup ([52b3521](52b3521))
* update default view for dataElements ([2125f77](2125f77))
* **searchable single selects:** add posibility to deselect ([f557dd0](f557dd0))
* **searchable single selects:** use old-app default labels ([7e5c907](7e5c907))
* **sectionlist:** add page title ([#346](#346)) ([110089f](110089f))
* **summarycard:** adjust icon-less design ([b938394](b938394))
* **summarycard:** remove unneeded wrapper ([72289c7](72289c7))
* **summarycard:** update button styles ([#353](#353)) ([494cf62](494cf62))
* update and simplify filter logic ([c4c507f](c4c507f))
* update empty text ([4e6e0b1](4e6e0b1))
* use spacers for styling ([0522f81](0522f81))
* wip filters ([342dbad](342dbad))
* **usemodelgist:** add goToPage to paginator ([5367159](5367159))
* add dynamicparams ([5e76a8c](5e76a8c))
* add missing dataElements pages ([3992228](3992228))
* add missing folder ([db51744](db51744))
* add missing folder ([c205bb1](c205bb1))
* add parentSectionKey to sections ([d6571f2](d6571f2))
* add relationShipType section ([da8132f](da8132f))
* add sections routes and legacy-redirects ([7971346](7971346))
* base types for schema saved schemas in zustand ([92055bc](92055bc))
* better loadschema typings ([dcda02d](dcda02d))
* better schema typing ([f83c0bd](f83c0bd))
* cleanup ([086a266](086a266))
* cleanup ([74b7321](74b7321))
* cleanup comment ([0dff06a](0dff06a))
* cleanup schema-routes ([3f36f28](3f36f28))
* cleanup schemas ([416acb9](416acb9))
* deduplicate deps ([10351a2](10351a2))
* deduplicate yarn lock ([3916128](3916128))
* improve BaseModelSchemas type ([5151f6e](5151f6e))
* layout overflow ([a56f459](a56f459))
* legacy redirect ([c00e996](c00e996))
* legacy routing for non-standard sections ([4a23954](4a23954))
* load overviews in same chunk ([220a69e](220a69e))
* map properties to record ([2a25430](2a25430))
* merge all generates files ([4c54b25](4c54b25))
* remove code, add handle to route ([32acb49](32acb49))
* remove locales folder ([f3ed675](f3ed675))
* remove unnecessary file ([f103853](f103853))
* simplify result type ([4741bcc](4741bcc))
* update useLoadApp with typefix ([13ae9d8](13ae9d8))
* useSchemaSectionHandleOrThrow ([0812aa9](0812aa9))
* **auth:** consider ALL authority ([561f236](561f236))
* **deps:** upgrade app-runtime for type fix ([a0069bd](a0069bd))
* **layout:** prepare layout for hide sidebar ([fd795d1](fd795d1))
* **legacyredirects:** fix programs redirect ([db225bb](db225bb))
* **overview:** fix category description ([c761c41](c761c41))
* **overview:** use constants for overview ([095e0d6](095e0d6))
* **overviewcards:** add link to card ([03e88e1](03e88e1))
* **router:** allow sections to opt-out of new/edit routes ([59f85f6](59f85f6))
* **router:** use replace for index redirect ([7007a18](7007a18))
* **schemas:** improve schema types ([43b1a9b](43b1a9b))
* **sections:** add section constants ([19187ca](19187ca))
* **sections:** make parentSectionKey required ([fb5ebe6](fb5ebe6))
* **sidebar:** add missing category ([80bc7c4](80bc7c4))
* **sidebar:** open routes when child routes matches ([faaedbd](faaedbd))
* **summarycard:** fix nested links and missing param ([#335](#335)) ([e20a1dc](e20a1dc))
* **type:** add app-rutime query-type ([8fd573d](8fd573d))
* **types:** add declaration for @dhis2/ui modules ([0a2ab11](0a2ab11))
* **types:** add missing error type ([fbe957d](fbe957d))
* **types:** fix type errors in files ([faeb206](faeb206))
* move declarations to global.d.ts ([39f5573](39f5573))
* remove unused type ([84c1c38](84c1c38))
* rename sidenav ([510b949](510b949))
* sidebarlinks filename and use plural for overview path ([4307be8](4307be8))
* types ([3e5477c](3e5477c))
* wrong casing for file name ([a57c46c](a57c46c))

### Features

* **authorities:** respect keyRequireAddToView when filtering sections ([#347](#347)) ([4031f68](4031f68))
* **breadcrumb:** breadcrumbs navigation ([#328](#328)) ([b247c53](b247c53))
* **custom attributes:** add "No value" option to optionset attributes ([de8cf8c](de8cf8c))
* **data element forms:** add validation ([#359](#359)) ([331eabd](331eabd))
* **data elements:** add form field rules ([a77697d](a77697d))
* **de edit and new:** handle loading and error states correctly ([32f7e20](32f7e20))
* **de form:** add aggregation level intro text ([402de21](402de21))
* **detailsPanel:** add detailsPanel in list-view ([#358](#358)) ([aceade9](aceade9)), closes [#354](#354)
* **filters:** add filters for dataSet and catCombo ([5c7acb4](5c7acb4))
* **filters:** rework config for better type safety for dynamic filters ([c132fd6](c132fd6))
* **layout:** add foundation ([#323](#323)) ([8b4d90c](8b4d90c))
* **list:** add bulk sharing ([#373](#373)) ([70e8d96](70e8d96))
* **list:** add filters to manage view ([5d67e27](5d67e27))
* **list:** add list for group and groupset ([#379](#379)) ([77f5695](77f5695))
* **list:** add more dropdown ([0ff853d](0ff853d))
* **list:** add sort for columns ([#368](#368)) ([90b02a4](90b02a4))
* **list:** add translation dialog ([#389](#389)) ([d21cd95](d21cd95)), closes [#392](#392)
* **list:** download dialog ([#392](#392)) ([d2b6582](d2b6582))
* **list:** manage columns ([#352](#352)) ([9ecd37d](9ecd37d)), closes [#354](#354)
* **list:** sharing dialog ([#374](#374)) ([abdad54](abdad54))
* **list view:** add delete action to row items ([#376](#376)) ([d1eeef9](d1eeef9))
* add data element group New and Edit views ([b06d6f2](b06d6f2))
* add data element group set New and Edit views ([3c02ce8](3c02ce8))
* **list:** implement more menu ([734d47d](734d47d))
* add controlled searchable select & category combo select ([#351](#351)) ([bb91abb](bb91abb))
* add data elements add/edit form ([#344](#344)) ([a9daea7](a9daea7))
* add publicAccessFilter ([a7e5d2f](a7e5d2f))
* **list:** pagination ([cc29470](cc29470))
* **list:** render user-friendly values ([#350](#350)) ([f03c2b6](f03c2b6))
* **systemSettings:** load systemsettings on appload ([#348](#348)) ([9e268df](9e268df))
* add protectedsection ([664e5dc](664e5dc))
* add translations for model constants ([c689080](c689080))
* filter authorized sections in overview ([cfdf9f5](cfdf9f5))
* logic to hide sidebar ([ead5966](ead5966))
* sectionlistheader, wip filters ([f585402](f585402))
* sectionlistwrapper ([d59d5ae](d59d5ae))
* useModelGist ([fcd341c](fcd341c))
* useSectionListFilter ([c431631](c431631))
* working filters ([0eac9d1](0eac9d1))
* **authorities:** add authority hooks ([4d3d6e8](4d3d6e8))
* **model-types:** add generated modeltypes ([8e888fe](8e888fe))
* **model-types:** add generated modeltypes ([#339](#339)) ([fc7e225](fc7e225))
* **modeltypes:** add modeltypes ([d3c2486](d3c2486))
* **overview:** add category overview ([ed97305](ed97305))
* **sectionlist:** add sectionList for data elements ([7721bbb](7721bbb))
@dhis2-bot
Copy link
Contributor

🎉 This PR is included in version 1.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

dhis2-bot added a commit that referenced this pull request Jun 7, 2024
# 1.0.0 (2024-06-07)

### Bug Fixes

* **config:** remove app from name ([f137a54](f137a54))
* fix cypress tests and color/icon buttons ([#402](#402)) ([251d76c](251d76c))
* **aggregation and value type fields:** do not use generated types for validation ([8edd272](8edd272))
* **aggregation type:** use "NONE" as default value ([89bb4c1](89bb4c1))
* **attributes:** fix deselecting attribute ([#361](#361)) ([2cc8801](2cc8801))
* **color and icon picker:** add remove icon btn & adjust styles according to specs ([c18f7f0](c18f7f0))
* **color and icon picker:** make button component a html button instead of div ([f7a2c50](f7a2c50))
* **custom attributes optionsets:** add no-value-option only when not required ([c10ec33](c10ec33))
* **dataElement:** default to default-cat-combo ([#400](#400)) ([90ff733](90ff733))
* **de form fields:** make text translatable ([8ab3090](8ab3090))
* **download:** default to only selected when list has selections ([#394](#394)) ([f7048fb](f7048fb))
* **download:** fix radio name ([b4f703b](b4f703b))
* **edit:** fix icons api response ([#377](#377)) ([f014351](f014351))
* **edit de:** allow removing nested values ([cc66cbd](cc66cbd))
* **filter:** add useInfiniteDataQuery ([0fa3b91](0fa3b91))
* **filters:** use refactored sectionlistfilter for refetch ([2dcbc75](2dcbc75))
* **form:** fix cancel link ([0fb0d12](0fb0d12))
* **form:** fix editing style object ([#362](#362)) ([88e1a58](88e1a58))
* **form:** fix render 0 when empty custom attributes ([92fb57a](92fb57a))
* **form:** hide custom attributes section if no attributes assigned ([#384](#384)) ([da4bbc9](da4bbc9))
* **form:** stylistic issues: max-width, todos, labels ([#385](#385)) ([523e8e9](523e8e9))
* **list:** fix filter being cleared on refresh ([#382](#382)) ([fc2f881](fc2f881))
* **list:** improve select performance for big lists ([#378](#378)) ([0a98f3c](0a98f3c))
* **list:** resolve reference names ([#360](#360)) ([ccd226c](ccd226c)), closes [#354](#354)
* **managelistview:** move reset to default to rightfooter ([b177893](b177893))
* **model single select:** search loaded options for selected option ([d022b8b](d022b8b))
* **model single select:** search loaded options for selected option ([57ad629](57ad629))
* **modelview:** put empty array if default ([13baa3e](13baa3e))
* **systemSettings:** use generic type for setting inference ([#393](#393)) ([e115fc6](e115fc6))
* add empty list message ([647713b](647713b))
* add linkbutton component ([c19814f](c19814f))
* cleanup ([407c912](407c912))
* cleanup filter props in DE-List ([3242a4f](3242a4f))
* failing test ([b506bae](b506bae))
* filtereddataelement type ([22e1600](22e1600))
* fix failing test ([e5c7eb5](e5c7eb5))
* fix sorting of filters ([1206241](1206241))
* fix uncontrolled input in identifiablefilter ([a4b2292](a4b2292))
* handle errors in list request ([ec160e7](ec160e7))
* hide unauthorized section cards ([11e18e6](11e18e6))
* missing files ([6718da9](6718da9))
* reset paging when clearing filters ([fdb0b10](fdb0b10))
* resolve conflict between cypress and jest types ([475907c](475907c))
* review ([92c1648](92c1648))
* simplify initial selected logic ([eb4ce54](eb4ce54))
* some cleanup ([432ac43](432ac43))
* some cleanup ([52b3521](52b3521))
* update default view for dataElements ([2125f77](2125f77))
* **searchable single selects:** add posibility to deselect ([f557dd0](f557dd0))
* **searchable single selects:** use old-app default labels ([7e5c907](7e5c907))
* **sectionlist:** add page title ([#346](#346)) ([110089f](110089f))
* **summarycard:** adjust icon-less design ([b938394](b938394))
* **summarycard:** remove unneeded wrapper ([72289c7](72289c7))
* **summarycard:** update button styles ([#353](#353)) ([494cf62](494cf62))
* update and simplify filter logic ([c4c507f](c4c507f))
* update empty text ([4e6e0b1](4e6e0b1))
* use spacers for styling ([0522f81](0522f81))
* wip filters ([342dbad](342dbad))
* **usemodelgist:** add goToPage to paginator ([5367159](5367159))
* add dynamicparams ([5e76a8c](5e76a8c))
* add missing dataElements pages ([3992228](3992228))
* add missing folder ([db51744](db51744))
* add missing folder ([c205bb1](c205bb1))
* add parentSectionKey to sections ([d6571f2](d6571f2))
* add relationShipType section ([da8132f](da8132f))
* add sections routes and legacy-redirects ([7971346](7971346))
* base types for schema saved schemas in zustand ([92055bc](92055bc))
* better loadschema typings ([dcda02d](dcda02d))
* better schema typing ([f83c0bd](f83c0bd))
* cleanup ([086a266](086a266))
* cleanup ([74b7321](74b7321))
* cleanup comment ([0dff06a](0dff06a))
* cleanup schema-routes ([3f36f28](3f36f28))
* cleanup schemas ([416acb9](416acb9))
* deduplicate deps ([10351a2](10351a2))
* deduplicate yarn lock ([3916128](3916128))
* improve BaseModelSchemas type ([5151f6e](5151f6e))
* layout overflow ([a56f459](a56f459))
* legacy redirect ([c00e996](c00e996))
* legacy routing for non-standard sections ([4a23954](4a23954))
* load overviews in same chunk ([220a69e](220a69e))
* map properties to record ([2a25430](2a25430))
* merge all generates files ([4c54b25](4c54b25))
* remove code, add handle to route ([32acb49](32acb49))
* remove locales folder ([f3ed675](f3ed675))
* remove unnecessary file ([f103853](f103853))
* simplify result type ([4741bcc](4741bcc))
* update useLoadApp with typefix ([13ae9d8](13ae9d8))
* useSchemaSectionHandleOrThrow ([0812aa9](0812aa9))
* **auth:** consider ALL authority ([561f236](561f236))
* **deps:** upgrade app-runtime for type fix ([a0069bd](a0069bd))
* **layout:** prepare layout for hide sidebar ([fd795d1](fd795d1))
* **legacyredirects:** fix programs redirect ([db225bb](db225bb))
* **overview:** fix category description ([c761c41](c761c41))
* **overview:** use constants for overview ([095e0d6](095e0d6))
* **overviewcards:** add link to card ([03e88e1](03e88e1))
* **router:** allow sections to opt-out of new/edit routes ([59f85f6](59f85f6))
* **router:** use replace for index redirect ([7007a18](7007a18))
* **schemas:** improve schema types ([43b1a9b](43b1a9b))
* **sections:** add section constants ([19187ca](19187ca))
* **sections:** make parentSectionKey required ([fb5ebe6](fb5ebe6))
* **sidebar:** add missing category ([80bc7c4](80bc7c4))
* **sidebar:** open routes when child routes matches ([faaedbd](faaedbd))
* **summarycard:** fix nested links and missing param ([#335](#335)) ([e20a1dc](e20a1dc))
* **type:** add app-rutime query-type ([8fd573d](8fd573d))
* **types:** add declaration for @dhis2/ui modules ([0a2ab11](0a2ab11))
* **types:** add missing error type ([fbe957d](fbe957d))
* **types:** fix type errors in files ([faeb206](faeb206))
* move declarations to global.d.ts ([39f5573](39f5573))
* remove unused type ([84c1c38](84c1c38))
* rename sidenav ([510b949](510b949))
* sidebarlinks filename and use plural for overview path ([4307be8](4307be8))
* types ([3e5477c](3e5477c))
* wrong casing for file name ([a57c46c](a57c46c))

### Features

* **authorities:** respect keyRequireAddToView when filtering sections ([#347](#347)) ([4031f68](4031f68))
* **breadcrumb:** breadcrumbs navigation ([#328](#328)) ([b247c53](b247c53))
* **custom attributes:** add "No value" option to optionset attributes ([de8cf8c](de8cf8c))
* **data element forms:** add validation ([#359](#359)) ([331eabd](331eabd))
* **data elements:** add form field rules ([a77697d](a77697d))
* **de edit and new:** handle loading and error states correctly ([32f7e20](32f7e20))
* **de form:** add aggregation level intro text ([402de21](402de21))
* **detailsPanel:** add detailsPanel in list-view ([#358](#358)) ([aceade9](aceade9)), closes [#354](#354)
* **filters:** add filters for dataSet and catCombo ([5c7acb4](5c7acb4))
* **filters:** rework config for better type safety for dynamic filters ([c132fd6](c132fd6))
* **layout:** add foundation ([#323](#323)) ([8b4d90c](8b4d90c))
* **list:** add bulk sharing ([#373](#373)) ([70e8d96](70e8d96))
* **list:** add filters to manage view ([5d67e27](5d67e27))
* **list:** add list for group and groupset ([#379](#379)) ([77f5695](77f5695))
* **list:** add more dropdown ([0ff853d](0ff853d))
* **list:** add sort for columns ([#368](#368)) ([90b02a4](90b02a4))
* **list:** add translation dialog ([#389](#389)) ([d21cd95](d21cd95)), closes [#392](#392)
* **list:** download dialog ([#392](#392)) ([d2b6582](d2b6582))
* **list:** manage columns ([#352](#352)) ([9ecd37d](9ecd37d)), closes [#354](#354)
* **list:** sharing dialog ([#374](#374)) ([abdad54](abdad54))
* **list view:** add delete action to row items ([#376](#376)) ([d1eeef9](d1eeef9))
* add data element group New and Edit views ([b06d6f2](b06d6f2))
* add data element group set New and Edit views ([3c02ce8](3c02ce8))
* **list:** implement more menu ([734d47d](734d47d))
* add controlled searchable select & category combo select ([#351](#351)) ([bb91abb](bb91abb))
* add data elements add/edit form ([#344](#344)) ([a9daea7](a9daea7))
* add publicAccessFilter ([a7e5d2f](a7e5d2f))
* **list:** pagination ([cc29470](cc29470))
* **list:** render user-friendly values ([#350](#350)) ([f03c2b6](f03c2b6))
* **systemSettings:** load systemsettings on appload ([#348](#348)) ([9e268df](9e268df))
* add protectedsection ([664e5dc](664e5dc))
* add translations for model constants ([c689080](c689080))
* filter authorized sections in overview ([cfdf9f5](cfdf9f5))
* logic to hide sidebar ([ead5966](ead5966))
* sectionlistheader, wip filters ([f585402](f585402))
* sectionlistwrapper ([d59d5ae](d59d5ae))
* useModelGist ([fcd341c](fcd341c))
* useSectionListFilter ([c431631](c431631))
* working filters ([0eac9d1](0eac9d1))
* **authorities:** add authority hooks ([4d3d6e8](4d3d6e8))
* **model-types:** add generated modeltypes ([8e888fe](8e888fe))
* **model-types:** add generated modeltypes ([#339](#339)) ([fc7e225](fc7e225))
* **modeltypes:** add modeltypes ([d3c2486](d3c2486))
* **overview:** add category overview ([ed97305](ed97305))
* **sectionlist:** add sectionList for data elements ([7721bbb](7721bbb))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants