Martin Renvoize
dcf7688b94
This patch adds a catalog concern management page to the staff client accessible via the cataloging home page and a new 'Pending catalog concerns' link on the front page. This includes added the requisit ticket_updates api endpoints and notice triggers and templates for notifying patrons of changes to their reported concerns. Test plan 1) Enable the `OpacCatalogConcerns` system preference 2) Catalog concern management is tied to your users ability to edit the catalog, `editcatalogue`. 3) Confirm that you can see 'Catalog concerns' listed on the cataloging home page if you have the `editcatalogue` permission and not if you do not. 4) Add a new concern as an opac user. 5) Confirm that once a concern is present in the system you see a count of 'catalog concerns pending' on the intranet main page if you have the `editcatalogue` permission. 6) Click through either the cataloging home page or pending concerns link on the main page to view the new concerns management page. 7) Confirm the table displays as one would expect. 8) Confirm clicking on details or the concern title exposes a 'details' modal with the option to add an update or resolve the concern. 9) Verify that if selecting 'notify' when updateing or resolving a concern triggers a notice to be sent to the opac user who first reported the issue. Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Helen Oliver <HOliver@tavi-port.ac.uk> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
355 lines
9.8 KiB
YAML
355 lines
9.8 KiB
YAML
---
|
|
/tickets:
|
|
get:
|
|
x-mojo-to: Tickets#list
|
|
operationId: listTickets
|
|
tags:
|
|
- tickets
|
|
summary: List tickets
|
|
produces:
|
|
- application/json
|
|
parameters:
|
|
- $ref: "../swagger.yaml#/parameters/match"
|
|
- $ref: "../swagger.yaml#/parameters/order_by"
|
|
- $ref: "../swagger.yaml#/parameters/page"
|
|
- $ref: "../swagger.yaml#/parameters/per_page"
|
|
- $ref: "../swagger.yaml#/parameters/q_param"
|
|
- $ref: "../swagger.yaml#/parameters/q_body"
|
|
- $ref: "../swagger.yaml#/parameters/q_header"
|
|
- $ref: "../swagger.yaml#/parameters/request_id_header"
|
|
- name: x-koha-embed
|
|
in: header
|
|
required: false
|
|
description: Embed list sent as a request header
|
|
type: array
|
|
items:
|
|
type: string
|
|
enum:
|
|
- reporter
|
|
- resolver
|
|
- biblio
|
|
- updates+count
|
|
collectionFormat: csv
|
|
responses:
|
|
"200":
|
|
description: A list of tickets
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "../swagger.yaml#/definitions/ticket"
|
|
"403":
|
|
description: Access forbidden
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"500":
|
|
description: |
|
|
Internal server error. Possible `error_code` attribute values:
|
|
|
|
* `internal_server_error`
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"503":
|
|
description: Under maintenance
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
x-koha-authorization:
|
|
permissions:
|
|
catalogue: "1"
|
|
post:
|
|
x-mojo-to: Tickets#add
|
|
operationId: addTicket
|
|
tags:
|
|
- tickets
|
|
summary: Add ticket
|
|
parameters:
|
|
- name: body
|
|
in: body
|
|
description: A JSON object containing informations about the new ticket
|
|
required: true
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/ticket"
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Ticket added
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/ticket"
|
|
"401":
|
|
description: Authentication required
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"403":
|
|
description: Access forbidden
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"500":
|
|
description: |
|
|
Internal server error. Possible `error_code` attribute values:
|
|
|
|
* `internal_server_error`
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"503":
|
|
description: Under maintenance
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
x-koha-authorization:
|
|
permissions:
|
|
catalogue: "1"
|
|
"/tickets/{ticket_id}":
|
|
get:
|
|
x-mojo-to: Tickets#get
|
|
operationId: getTicket
|
|
tags:
|
|
- tickets
|
|
summary: Get ticket
|
|
parameters:
|
|
- $ref: "../swagger.yaml#/parameters/ticket_id_pp"
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: A ticket
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/ticket"
|
|
"404":
|
|
description: Ticket not found
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"500":
|
|
description: |
|
|
Internal server error. Possible `error_code` attribute values:
|
|
|
|
* `internal_server_error`
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"503":
|
|
description: Under maintenance
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
x-koha-authorization:
|
|
permissions:
|
|
catalogue: "1"
|
|
put:
|
|
x-mojo-to: Tickets#update
|
|
operationId: updateTicket
|
|
tags:
|
|
- tickets
|
|
summary: Update ticket
|
|
parameters:
|
|
- $ref: "../swagger.yaml#/parameters/ticket_id_pp"
|
|
- name: body
|
|
in: body
|
|
description: A ticket object
|
|
required: true
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/ticket"
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"200":
|
|
description: A ticket
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/ticket"
|
|
"401":
|
|
description: Authentication required
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"403":
|
|
description: Access forbidden
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"404":
|
|
description: Ticket not found
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"503":
|
|
description: Under maintenance
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
x-koha-authorization:
|
|
permissions:
|
|
editcatalogue: edit_catalogue
|
|
delete:
|
|
x-mojo-to: Tickets#delete
|
|
operationId: deleteTicket
|
|
tags:
|
|
- tickets
|
|
summary: Delete ticket
|
|
parameters:
|
|
- $ref: "../swagger.yaml#/parameters/ticket_id_pp"
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"204":
|
|
description: Ticket deleted
|
|
"401":
|
|
description: Authentication required
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"403":
|
|
description: Access forbidden
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"404":
|
|
description: Ticket not found
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"503":
|
|
description: Under maintenance
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
x-koha-authorization:
|
|
permissions:
|
|
editcatalogue: edit_catalogue
|
|
"/tickets/{ticket_id}/updates":
|
|
get:
|
|
x-mojo-to: Tickets#list_updates
|
|
operationId: listTicketUpdates
|
|
tags:
|
|
- tickets
|
|
summary: List ticket updates
|
|
produces:
|
|
- application/json
|
|
parameters:
|
|
- $ref: "../swagger.yaml#/parameters/ticket_id_pp"
|
|
- $ref: "../swagger.yaml#/parameters/match"
|
|
- $ref: "../swagger.yaml#/parameters/order_by"
|
|
- $ref: "../swagger.yaml#/parameters/page"
|
|
- $ref: "../swagger.yaml#/parameters/per_page"
|
|
- $ref: "../swagger.yaml#/parameters/q_param"
|
|
- $ref: "../swagger.yaml#/parameters/q_body"
|
|
- $ref: "../swagger.yaml#/parameters/q_header"
|
|
- $ref: "../swagger.yaml#/parameters/request_id_header"
|
|
- name: x-koha-embed
|
|
in: header
|
|
required: false
|
|
description: Embed list sent as a request header
|
|
type: array
|
|
items:
|
|
type: string
|
|
enum:
|
|
- user
|
|
collectionFormat: csv
|
|
responses:
|
|
"200":
|
|
description: A list of ticket updates
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "../swagger.yaml#/definitions/ticket_update"
|
|
"403":
|
|
description: Access forbidden
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"404":
|
|
description: Ticket not found
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"500":
|
|
description: |
|
|
Internal server error. Possible `error_code` attribute values:
|
|
|
|
* `internal_server_error`
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"503":
|
|
description: Under maintenance
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
x-koha-authorization:
|
|
permissions:
|
|
catalogue: "1"
|
|
post:
|
|
x-mojo-to: Tickets#add_update
|
|
operationId: addTicketUpdate
|
|
tags:
|
|
- tickets
|
|
summary: Add an update to the ticket
|
|
parameters:
|
|
- $ref: "../swagger.yaml#/parameters/ticket_id_pp"
|
|
- name: body
|
|
in: body
|
|
description: A ticket update object
|
|
required: true
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/ticket_update"
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Ticket added
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/ticket_update"
|
|
"401":
|
|
description: Authentication required
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"403":
|
|
description: Access forbidden
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"404":
|
|
description: Ticket not found
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"500":
|
|
description: Internal error
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"503":
|
|
description: Under maintenance
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
x-koha-authorization:
|
|
permissions:
|
|
editcatalogue: edit_catalogue
|
|
/public/tickets:
|
|
post:
|
|
x-mojo-to: Tickets#add
|
|
operationId: addTicketPublic
|
|
tags:
|
|
- tickets
|
|
summary: Add ticket
|
|
parameters:
|
|
- name: body
|
|
in: body
|
|
description: A JSON object containing informations about the new ticket
|
|
required: true
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/ticket"
|
|
produces:
|
|
- application/json
|
|
responses:
|
|
"201":
|
|
description: Ticket added
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/ticket"
|
|
"401":
|
|
description: Authentication required
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"403":
|
|
description: Access forbidden
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"500":
|
|
description: |
|
|
Internal server error. Possible `error_code` attribute values:
|
|
|
|
* `internal_server_error`
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|
|
"503":
|
|
description: Under maintenance
|
|
schema:
|
|
$ref: "../swagger.yaml#/definitions/error"
|