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 computedhasAnyServiceDeskIssues
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 | ||
no Service Desk issues, user is not signed in | ||
no issues as a result of filter | ||
no closed Service Desk issues |
How to set up and validate locally
Numbered steps to set up and validate the change are strongly suggested.
SERVICE DESK SETUP
- Setup a service desk on your GDK: https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/service_desk_mail_room.md
- Send an email to your Service Desk, so you have something to display on the list.
ALTERNATIVE SETUP
- You can omit Service Desk setup and force an already existing issue to become a SD issue. Open the rails console:
rails c
- 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)
-
In rails console enable the feature flag
Feature.enable(:service_desk_vue_list) Feature.enable(:frontend_caching)
-
Visit the project that has Service Desk setup
-
In the main navigation click
Monitor
, thanService Desk
. -
Click within the search bar and start choosing tokens, so that you get no search results.
-
Move to
Closed
tab, reopen any existing issues to see see empty state for no closed ones. -
Move to
Opend
tab, close the issue on the list. Go back to Service Desk list, see empty state for no opened issues. -
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.
-
I have evaluated the MR acceptance checklist for this MR.
Related to #413092 (closed)