Requester widget MVC
Problem
Service Desk issues (which are regular issues created by the Support bot (Users::Internal.support_bot
) and have the service_desk_reply_to
(aka external_author
) field set) will be migrated to work item tickets.
On the backend side most functionality would still be available after a switch to the ticket work item type, but the frontend would lose certain functionality that's available today.
(Service Desk) Issue List: External author in issue metadata
We display the external author of the issue in the issue metadata of the Service Desk issue list view. This replaces the author
of the issue which is the Support bot for all Service Desk issues. This only applies to the Service Desk issue view (because we didn't want to touch the legacy issue view before the work item transition). The URL is https://gitlab.com/group/project/-/issues/service_desk/
.
Service Desk issues display like regular issues on the normal issue view.
Issue detail: External author in header
We display the external author of the issue in the header part of the issue detail view.
In a nutshell
Who requested the service desk ticket? In the context of Service Desk this person is not the work item creator (author).
Proposal
- We should avoid to use the same position we used on the legacy issue detail view, because it doesn't fit into the widget architecture of the work item framework.
- We add a new widget
requester
orexternal_author
to the right sidebar. - The widget is only available for the WIT
Ticket
. - The widget should be close to the assignee (or generally to the top) so it's easy for Service Desk agents to find.
- The MVC would be a read-only widget to apply the current Service Desk functionality.
Future iterations
- The external author can be set explicitly (and changed)
- We'll display a small edit button beside the current value or empty value. If clicked we'll display a test input which can be saved. This will send a mutation to update the value in the backend.
- We should add the new value to the list of external participants and keep the old value as an external participant
- The widget is also available in the
new
work item flow and is mandatory for the ticket work item type. This will allow us to create fully functional tickets from the UI (and work item API). - Add the
source
of the request to this widget or add a new widget calledsource
to work items. This can be used to indicate the origin of the ticket.- For tickets created via email the value would be
email
- Tickets created via the API the value would be
api
unless the customer specifies a custom value likeapp
orfeedback-form
. - Other options could be
chat
etc.
- For tickets created via email the value would be
Implementation plan for MVC iteration
- Add a new widget
- The widget's GraphQL query returns the
externalAuthor
of the work item (respecting the obfuscation) or (even better) we add it to the global query becauseexternal_author
is available on the work item, so it doesn't add much to the request payload and we avoid a second query. - The frontend widget displays the external author. No interaction possible for now.
Action items
- Decide on a name:
- Requester (more general)
- External author (similar to
author
)