Bugs in Classic citation editor box
There are frustrating bugs in the Classic citation editor box. In the original implementation, hiding the editor and saving the citation caused the text to revert to context. I don't know when it was changed, but that is no longer the case. Saving the item with editor hidden leaves the edited text in place. There seems no way of reverting the citation short of removing it and recreating the citation from scratch.
There are other anomalies.
When the user opens the Classic dialog and selects one or more items for insertion, and then opens the editor (by clicking on "Show editor..."), the citation is shown in its full form, regardless of context. If no changes are made, saving the citation renders it in context (producing "ibid," first, or subsequent form as appropriate.)
When the user first saves a citation, then opens it for editing and selects the Classic dialog, then clicks "Show editor...", the citation is shown as rendered in context (and so, "ibid," first, or subsequent form as appropriate.)
The two cases display different text in the citation editor box for the same citation in the same context, but in both cases, any change to the displayed text constitutes an edit, I guess, and freezes the citation (as stated in the warning text). What is weird and wonderful is that in the first scenario, editing the citation to be correct for context constitutes an edit, and freezes the text as "Ibid." or whatever, for ever more.
So there are two issues here:
(1) There should be a way to revert a citation that has been edited through the Classic citation editor box short of reconstructing the entire citation. There should also be an instruction in the dialog that guides the user on how to revert.
(2) When opened, it should either uniformly show the first-reference form of the citation, or the form in context. I guess it doesn't much matter which, but the user isn't going to appreciate the reasons for inconsistency.
There are other anomalies.
When the user opens the Classic dialog and selects one or more items for insertion, and then opens the editor (by clicking on "Show editor..."), the citation is shown in its full form, regardless of context. If no changes are made, saving the citation renders it in context (producing "ibid," first, or subsequent form as appropriate.)
When the user first saves a citation, then opens it for editing and selects the Classic dialog, then clicks "Show editor...", the citation is shown as rendered in context (and so, "ibid," first, or subsequent form as appropriate.)
The two cases display different text in the citation editor box for the same citation in the same context, but in both cases, any change to the displayed text constitutes an edit, I guess, and freezes the citation (as stated in the warning text). What is weird and wonderful is that in the first scenario, editing the citation to be correct for context constitutes an edit, and freezes the text as "Ibid." or whatever, for ever more.
So there are two issues here:
(1) There should be a way to revert a citation that has been edited through the Classic citation editor box short of reconstructing the entire citation. There should also be an instruction in the dialog that guides the user on how to revert.
(2) When opened, it should either uniformly show the first-reference form of the citation, or the form in context. I guess it doesn't much matter which, but the user isn't going to appreciate the reasons for inconsistency.
The editor has long since been obsoleted by the ability to edit citations in the document and be prompted about whether to keep them, so the editor really should've been removed a long time ago. (I'm actually not sure what currently happens if you edit a citation in the document and then click the Add/Edit Citation button, but ideally that would show you a similar prompt with the ability to clear the manual changes.)
Anyway, looking forward etc etc.
When a citation is edited via Classic editor etc, saved, then reopened, the toggleEditor function in addCitationDialog.js throws for an undefined .done() method in the promise chain.
- 30 -