Extensible Buttons

Colectica Portal allows you to create buttons that appear on an item’s page or on the basket page. When clicked, these buttons call an external web service.

Create Buttons

To create a button that appears on an item’s page, follow these steps.

  1. Navigate to Admin and choose either Item Page Buttons or Basket Buttons.

  2. Click Create a New Button.

  3. Fill out the form.

    Title

    The text that appears on the button.

    URL

    The fully-specified URL to call when the button is clicked.

    Request Method

    Form POST will cause the browser to navigate to the specified URL. JavascriptPost will remain on the same page, and will submit the request in the background.

    Weight

    The weight determines the order in which the button is displayed. Buttons with higher weights are displayed after lower weights.

  4. Click Save.

Web Services for JavascriptPost

Item Page Buttons

The web service called by an item page button will receive a POST with application/json content in the request body.

Request from an Item Page
 {
     "ItemIdentifier": "example.org:0ccc5a26-25b2-4a36-9f05-08ed1e2fec24:2"
 }

Basket Buttons

The web service called by a basket button will receive a POST with application/json content in the request body.

Request from the Basket page.
 {
     "Citation": {
         "Title": { "en-US": "My Basket of Variables" },
     },
     "ItemIdentifers": [
         "example.org:0ccc5a26-25b2-4a36-9f05-08ed1e2fec24:2",
         "example.org:f14cbeac-e266-4335-bf7f-e329eaa5843d:1",
         "example.org:c074a069-4902-4634-8730-46b29455c9c8:1",
         "example.org:3fc89da3-f93a-4037-a879-b2478d895209:1"
     ]
 }

API Response

For both types of buttons, the web service should return JSON with one of two properties: message or redirectURL. When a message is specified, that message is displayed to the user. When a redirect URL is specified, the browser is redirected to that URL.

Response with a Message
 {
     "message": "I received the following identification information: example.org:0ccc5a26-25b2-4a36-9f05-08ed1e2fec24:2",
 }
Response with a Redirect URL
 {
     "redirectUrl": "http://www.example.org/"
 }