...
Metadata: 2 hidden (from Metadata Tab) multiple text metadata fields containing an array of JSON objects:
- First field tracks publishing requests (1 per site that can be requested).
- If a request already exists for a particular site, the interface shows the status of the request - 'Pending', 'Declined' or 'Approved' - instead of tick field and a 'Cancel' link (to cancel the request)
- Each request object needs to capture an ID, date and requester details incase they are made at separate times by separate people. i.e. someone edits the event at a later point and requests publishing on more sites than originally requested.
- JSON objects contain:
- Request ID (ISO 8601 convert the date and time at that moment, which will create a unique string)
- var d = new Date(); var n = d.toISOString(); the results of n will be - 2016-09-12T20:49:26.101Z
- Site Name
- Site ID
- Admin Group ID
- Request Status
- Date of Request
- ID of Requester
- Name of Requester
- Request ID (ISO 8601 convert the date and time at that moment, which will create a unique string)
- Second field tracks approved sites
- Request ID
- Site Name
- Site ID
- Date of Approval
- ID of Approver
- Name of Approver
First field drives the interface, second field is for searching / listing i.e. only sites that are approved will have a corresponding JSON object in the second field. On decline, only the first field object needs updated. On approval, first field needs update and second field needs a corresponding approval object created - using the same request ID as the first to link them.
Triggers
- One trigger configured to accept post requests (on asset accessed) that send 'Request for Listing' notification emails
- One trigger configured to accept post requests that requests (on asset accessed) that send 'Request Decision' notification emails
- One trigger configured to create a link to the event being created under the central shareable content site
...