Skip to content

Service Desk List - empty states

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:

  • introduce different empty states for scenarios when:
    • there are no issues at all
    • there are no closed issues
    • there are no open issues, all are closed
    • there are no issues as a result of a search
  • currently error is not possible to show within the issuable list component. There is no one property from the backend that could tell us straight away if there is any Service Desk issue or not. hasAnyIssues includes all issues, those created by users or the bot. This is why I introduced a computed hasAnyServiceDeskIssues Following MR for UI improvements is meant to handle error messages. I'll come up with a more accurate solution then.

Screenshots or screen recordings

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

Scenario Before After
no Service Desk issues, user is signed in Screenshot 2023-08-02 at 15.09.13.png after no sd issues signed in user.png
no Service Desk issues, user is not signed in Screenshot 2023-08-02 at 15.09.13.png after no sd issues not signed in user.png
no issues as a result of filter Screenshot 2023-08-02 at 15.09.04.png after no filter resilts.png
no closed Service Desk issues Screenshot 2023-08-02 at 15.08.52.png after no closed issues.png

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. Click within the search bar and start choosing tokens, so that you get no search results.

  5. Move to Closed tab, reopen any existing issues to see see empty state for no closed ones.

  6. Move to Opend tab, close the issue on the list. Go back to Service Desk list, see empty state for no opened issues.

  7. Go to another project, where there's no Service Issues yet.

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