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

Provide reusable components for creating standard list page #64

Merged
merged 1 commit into from
Oct 28, 2022

Conversation

rszwajko
Copy link
Contributor

Extracted from PR #33

Components created:

  1. standard list page component a) page skeleton following openshift console layout and practice b) generic component parametrized by the entity type c) design is view independent and follows the approach used in oVirt PR 1600 and 1592. Currently only table view implementation is provided.
  2. primary filters component a) implementation of PatternFly 4 filter group pattern[1] extended to support all filters implementing FilterTypeProps interface. b) use case: displaying few (1-3) most important filters. The filters are grouped but displayed independently.
  3. attribute-value filter component a) implementation of PatternFly 4 attribute-value filter pattern[2] b) use case: grouping all other filters in a space efficient way c) supports all filters implementing FilterTypeProps interface.
  4. filter components: a) free text filter
    • substring search based on multiple terms
    • search terms confirmed by 'Enter' key or by button b) enum based filter
    • exact match based on checkboxes selected
  5. table view component a) parametrized by the entity type b) row mapper component is entity-specific which allows complex customizations c) sorting capabilities (via arrows in the table header)
  6. dialog for managing column visibility and order a) based on openshift console solution [3] and PatternFly 4 demo[4] b) toggle column visibility (except identity columns) c) re-order columns using drag and drop

Updated libraries:

  1. Downgrade @testing-library/react to ^12.0 since ^13.0 requires react >= 18.
  2. Bump @openshift/dynamic-plugin-sdk* to 1.0.0

[1] https://www.patternfly.org/v4/guidelines/filters/#filter-group [
2] https://www.patternfly.org/v4/guidelines/filters#attribute-value-filter
[3] https://github.com/openshift/console/blob/release-4.12/frontend/public/components/modals/column-management-modal.tsx
[4] https://www.patternfly.org/v4/components/table/react-demos#column-management-with-draggable

Reference-Url: oVirt/ovirt-web-ui#1600
Reference-Url: oVirt/ovirt-web-ui#1592
Signed-off-by: Radoslaw Szwajkowski [email protected]

Components created:
1. standard list page component
  a) page skeleton following openshift console layout and practice
  b) generic component parametrized by the entity type
  c) design is view independent and follows the approach used in oVirt
     PR 1600 and 1592. Currently only table view implementation is
     provided.
2. primary filters component
  a) implementation of PatternFly 4 filter group pattern[1] extended to
     support all filters implementing FilterTypeProps interface.
  b) use case: displaying few (1-3) most important filters.
     The filters are grouped but displayed independently.
3. attribute-value filter component
  a) implementation of PatternFly 4 attribute-value filter pattern[2]
  b) use case: grouping all other filters in a space efficient way
  c) supports all filters implementing FilterTypeProps interface.
4. filter components:
  a) free text filter
   - substring search based on multiple terms
   - search terms confirmed by 'Enter' key or by button
  b) enum based filter
   - exact match based on checkboxes selected
5. table view component
  a) parametrized by the entity type
  b) row mapper component is entity-specific which allows complex
     customizations
  c) sorting capabilities (via arrows in the table header)
6. dialog for managing column visibility and order
  a) based on openshift console solution [3] and PatternFly 4 demo[4]
  b) toggle column visibility (except identity columns)
  c) re-order columns using drag and drop

Updated libraries:
1. Downgrade @testing-library/react to ^12.0 since ^13.0 requires
   react >= 18.
2. Bump @openshift/dynamic-plugin-sdk* to 1.0.0

[1] https://www.patternfly.org/v4/guidelines/filters/#filter-group
[2] https://www.patternfly.org/v4/guidelines/filters#attribute-value-filter
[3] https://github.com/openshift/console/blob/release-4.12/frontend/public/components/modals/column-management-modal.tsx
[4] https://www.patternfly.org/v4/components/table/react-demos#column-management-with-draggable

Reference-Url: oVirt/ovirt-web-ui#1600
Reference-Url: oVirt/ovirt-web-ui#1592
Signed-off-by: Radoslaw Szwajkowski <[email protected]>
@rszwajko rszwajko requested review from yaacov and sjd78 October 28, 2022 16:58
@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
0.0% 0.0% Duplication

@codecov-commenter
Copy link

Codecov Report

❗ No coverage uploaded for pull request base (main@1128dc0). Click here to learn what that means.
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #64   +/-   ##
=======================================
  Coverage        ?   80.59%           
=======================================
  Files           ?       20           
  Lines           ?      304           
  Branches        ?       62           
=======================================
  Hits            ?      245           
  Misses          ?       56           
  Partials        ?        3           

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants