Skip to content

[Remove Vuetify from Studio] Channel collections table聽#5529

Description

@MisRob

馃檪 Looking for an issue? Welcome! This issue is open for contribution. If this is the first time you鈥檙e requesting an issue, please:

  • Read Contributing guidelines carefully. Pay extra attention to Using generative AI. Pull requests and comments that don鈥檛 follow the guidelines won鈥檛 be answered.
  • Confirm that you鈥檝e read the guidelines in your comment.

Sub-issue of #5060.

Complexity: Medium

Summary

Remove Vuetify from the collections table in Channels > Collections:

Currently, ChannelSetList built with several Vuetify components is used.

To remove these Vuetify dependencies:

  • Create a new component, StudioCollectionsTable
  • Examine ChannelSetList and ChannelSetItem and re-implement all features in StudioCollectionsTable
  • Use StudioCollectionsTable on this page instead of ChannelSetList

StudioCollectionsTable requirements

  • Utilizes KTable for table interface
  • Utilizes StudioCopyToken in tokens column
    • StudioCopyToken displays a Token label that shouldn't appear when used in tables - ignore it for now, it will be addressed in a separate task
  • Uses same user experience patterns as the table in our other platform Kolibri in Facility > Users (table code):
    • Instead of Options button, has the 'three dots' button dropdown
    • When there is not enough space on the screen, first and last columns become sticky (see Table with sticky columns in KTable docs)
    • Utilizes KPageContainer as table container. On all screen widths, container width is the same as in Kolibri, with maximum 1440px.
Image Image

Note: Due to these requirements, the new look and experience will notably differ from the current version. This is intended - do not try to override KTable to resemble the original (the goal is a first draft version of the refactored page that a core team member will then take over and complete in cooperation with our designers).

Do not modify ChannelSetList or ChannelSetItem.

How to get there

  • Login as a@a.com with password a
  • Go to Channels > Collections

Guidance

Out of Scope

  • Do not refactor any other areas of the codebase
  • Do not modify ChannelSetList or ChannelSetItem

Expected UI/UX changes

Many. Details to be clarified later. See the Note in the Summary section.

Acceptance criteria

These are general acceptance criteria for the project. For each sub-issue, consider which are relevant.

General

  • The specification above is followed.
  • Except for "Expected UI/UX changes," there are no functional or visual differences in user experience.
  • There are no ::v-deep or /deep/ selectors.
  • All user interactions are manually tested with no regressions.
  • Pull request includes screenshots.

a11y and i18n

See the project's "Guidance" for useful references.

  • Implementation meets a11y standards
  • All components are LTR and RTL compliant (preview with pnpm run devserver since :hot doesn't render RTL properly)
  • User-facing strings are translated (except in Administration)
  • The notranslate class been added to elements that shouldn't be translated by Google Chrome's automatic translation feature (e.g. user-generated text)
  • Mobile experience is reasonable

Unit tests

  • If there is a unit test suite already, it is meaningfully updated (even if tests don't fail)
  • If there is no unit test suite, a new one is created. Do not use obsolete @vue/test-utils approach. Instead, use @testing-library/vue (Vue Testing Library).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions