Iframe events
Iframe events
If you open Repset inside an <iframe>, Repset posts events to the parent window via postMessage. This can for example be used to close the iframe after a program is saved, refresh a list when a resource changes, and so on.
Message shape
{
"source": "repset",
"version": 1,
"type": "event",
"command": "program_created",
"payload": { "programId": "5c9d3b1a..." }
}
command identifies the event. payload depends on which command is sent.
Listening for events
listen-for-events-example.js
function isRepsetIframeEvent(data) {
return (
typeof data === "object" &&
data !== null &&
data.source === "repset" &&
data.version === 1 &&
data.type === "event" &&
typeof data.command === "string"
);
}
function handleMessage(event) {
if (!isRepsetIframeEvent(event.data)) return;
if (event.data.command === "editor_closed") {
// react to the event
}
};
window.addEventListener("message", handleMessage);
Events
editor_opened
editor_closed
program_created
program_edited
program_deleted
program_printed
program_emailed
template_*
customer_*
{
"source": "repset",
"version": 1,
"type": "event",
"command": "editor_opened",
"payload": {
"programId": "5c9d3b1a..." | null,
"templateId": "1a2b3c4d..." | null
}
}
{
"source": "repset",
"version": 1,
"type": "event",
"command": "editor_closed",
"payload": {
"programId": "5c9d3b1a..." | null,
"templateId": "1a2b3c4d..." | null
}
}
{
"source": "repset",
"version": 1,
"type": "event",
"command": "program_created",
"payload": { "programId": "5c9d3b1a..." }
}
{
"source": "repset",
"version": 1,
"type": "event",
"command": "program_edited",
"payload": { "programId": "5c9d3b1a..." }
}
{
"source": "repset",
"version": 1,
"type": "event",
"command": "program_deleted",
"payload": { "programId": "5c9d3b1a..." }
}
{
"source": "repset",
"version": 1,
"type": "event",
"command": "program_printed",
"payload": { "programId": "5c9d3b1a..." }
}
programId is optional — omitted when printing an unsaved program.
{
"source": "repset",
"version": 1,
"type": "event",
"command": "program_emailed",
"payload": { "programId": "5c9d3b1a..." }
}
// command: template_created / template_edited / template_deleted
{
"source": "repset",
"version": 1,
"type": "event",
"command": "template_created",
"payload": { "templateId": "1a2b3c4d..." }
}
// command: customer_created / customer_edited / customer_deleted
{
"source": "repset",
"version": 1,
"type": "event",
"command": "customer_created",
"payload": { "customerId": "9d3f1a2b..." }
}