In OJS 2.x, when manually registering DOIs with CrossRef it appears the workflow looks like this:
Select articles or issues via the plugin.
Click “Register”
The status changes:
a. If the article is already registered outside of OJS, the status changes from “-” to “found”.
b. If the article is not already registered, the status changes from “-” to “submitted”. (Note that the action “Register” does not change to “Update”)
Click Register or Update again.
The status changes again to “completed”.
@bozana, @jmacgreg, how much of the above workflow is intentional? It seems very convoluted. Or am I missing something obvious?
If the status is reported as completed (deposited), the following URL is used to see if the DOI is registered (ready) – apparently, there could be a delay between a deposit completing successfully and a DOI being ‘ready’: http://api.crossref.org/works/10.1234/blabla.v1i1.2/agency.
This returns 404 or 200 and is apparently displayed in OJS as “-” i.e. “found”.
c) For the action link (register vs. update), the object setting “crossref::registeredDoi” is looked for (s. ojs/articles.tpl at ojs-stable-2_4_8 · pkp/ojs · GitHub), but apparently the setting is only set/used if “Mark registered” button is used.
Thus, I believe the status actualization could/should happen somehow differently (so that also marked registered would be correct), and the action links (register vs. update) should be unified.
I have no Crossref account so that I could see all this – this is all I understand from the code and else – so I might be wrong…
One more thing I have just figured out:
When using http://api.crossref.org/works/10.1234/blabla.v1i1.2/agency to find out if DOI is registered (ready), the mark registered function is called i.e. the c) above is not quite right.
If I then understand it correctly, if you would once again click Register in your example, the action link could change to Update – in case the DOI is ready in the meantime (from completed to ready).
I.e. the action links are apparently fine/consistent, and the way the status is updated would only stay to be improved…