One or more steps that need to be completed in order
Progressively changing the resource as it goes through the process
Some steps may require authentication
Manifest Editor should provide a flexible API - not huge implementations
One idea for this is to use iframes and postMessage. This would allow both internal and external UI and scripts to run
as part of a pipeline. This documents a scenario for composing these steps together (but could easily just be a single URL).
This mock example shows what a configuration may look like for publishing:
Login
Select repository
ID Generation options
Saving to Github
Sending notification
When each step runs, a set of postMessage() will be sent to each frame (to be defined) sending the IIIF + a context
object that is shared by the steps. For example, the Login step may ensure a cookie is present OR present the user with a login
screen. Once the login has happened it would perhaps add the Github username to the context.
As you can see, steps can use the "context" from previous steps (and may require it!).
With this mechanism we can have "keywords" in the context that might be used by the Manifest Editor. For example, a me_published_url
field could for example be used in the ME to link back to the published manifest.
Each step is an iframe, and it can optionally show a UI to the user when they are going through the publishing UI.
Aspects of publishing
One idea for this is to use
iframes
andpostMessage
. This would allow both internal and external UI and scripts to run as part of a pipeline. This documents a scenario for composing these steps together (but could easily just be a single URL).Configuring a publishing process
This mock example shows what a configuration may look like for publishing:
When each step runs, a set of
postMessage()
will be sent to each frame (to be defined) sending the IIIF + a context object that is shared by the steps. For example, the Login step may ensure a cookie is present OR present the user with a login screen. Once the login has happened it would perhaps add the Githubusername
to the context.{manifest: ...}
{gh_user: 'stephenwf', manifest: ...}
{gh_user: 'stephenwf', repo: 'my-iiif', manifest: ...}
{gh_user: 'stephenwf', repo: 'my-iiif', manifest: ...}
(different manifest){gh_user: 'stephenwf', repo: 'my-iiif', gh_url: '...', manifest: ...}
As you can see, steps can use the "context" from previous steps (and may require it!).
With this mechanism we can have "keywords" in the context that might be used by the Manifest Editor. For example, a
me_published_url
field could for example be used in the ME to link back to the published manifest.Each step is an iframe, and it can optionally show a UI to the user when they are going through the publishing UI.