Skip to content

Service Desk List - sorting

Paulina Sedlak-Jakubowska requested to merge 413092-update-sorting into master

What does this MR do and why?

This is the fourth MR in a series of changes that will change Service Desk issues list from haml file to a Vue app.

Issues Status
Create the app for service desk issues and add queries that will show all the issues created by the bot and issues count for tabs

Recreate info banner about service desk

Define tokens for search bar

CE search tokens

EE search tokens

searching functionality

Add sorting functionality

Add loading state and improve empty state

empty states

alert for errors with dismiss handle 🚫

handling of next/previous page 🚫

define grid columns if possible at the time (see: !121062 (closed)) 🚫

This MR covers:

  • add sorting to IssuableList component in Service Desk list
  • reuse sorting tokens form Issues list
  • reuse styling from Issues list
  • handle Manual sorting (not handled in the legacy view)
  • as a side effect from switching to a Vue app, sorting now doesn't reload the entire page

Screenshots or screen recordings

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

Before After
sorting before.mov sorting after.mov

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

SERVICE DESK SETUP

  1. Setup a service desk on your GDK: https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/service_desk_mail_room.md
  2. Send an email to your Service Desk, so you have something to display on the list.

ALTERNATIVE SETUP

  1. You can omit Service Desk setup and force an already existing issue to become a SD issue. Open the rails console: rails c
  2. Use these commands. Change 7 to the project id that matches the one you want to use for testing:
email = 'your-email@gitlab.com'
project = Project.find 7
issue = project.issues.last
issue.update!(service_desk_reply_to: email, author: User.support_bot)
IssueEmailParticipant.create!(issue: issue, email: email)
  1. In rails console enable the feature flag

    Feature.enable(:service_desk_vue_list)
    Feature.enable(:frontend_caching)
  2. Visit the project that has Service Desk setup

  3. In the main navigation click Monitor, than Service Desk.

  4. Add labels, due dates, milestones, etc. Anything you want to sort by.

  5. Select a couple of sorting options, click button for switching between ascending/descending. Observe if the issues' order change.

  6. Select a different sorting option to the one, that was set originally. Reload the page. It should keep your last choice.

  7. Select manual ordering. Drag and drop issues in a different order. Reload the page. It should keep the same order that you set.

FYI There is a known problem that Issues in the main navigation highlight when you are on Service Desk view.

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #413092 (closed)

Edited by Paulina Sedlak-Jakubowska

Merge request reports