Feature request: reject all changes to Zotero fields

At present, during refresh, if Zotero detects that a manual change has been made to a field, it shows a pop-up asking if the user wants to keep the change, warning that saying 'yes' will stop Zotero changing that field in future, but nevertheless giving 'yes' as the default.

In my case, I want to always say 'no'. Any changes to my fields are unintentional, but can occur due to being caught in global replacements, or index automarking, or just be changed accidentally by slippery fingers.

[Aside, for those unfamiliar with index automarking: it is not possible to stop automarking marking (changing) Zotero fields. It just matches strings in the whole document. A string like "Hegel", say, could well be found in a Zotero reference. It marks text in WORD-generated tables too, such as the Table of Contents, but the marks are silently removed next time the table is refreshed. I have 'update all fields' set in my print options. For referencing, I use the MHRA3 standard, which puts all references in footnotes. My workaround is, after indexing the document, to remove automarks from all footnotes. That will cover all Zotero fields, but also footnote parts not controlled by Zotero that I might want to mark. This trick would not help anyone using an in-line referencing standard like Harvard. Anyway it adds a confusing and easily-forgotten step to the indexing process. The price of forgetting is having to press the "no" button 500 times during refresh, or a force quit with possibly unforeseen consequences. It would be nicer just to automark everything and have Zotero take out the marks in Zotero fields. End of aside].

So, whether indexing or not, I don't want to keep any changes that have been made to Zotero fields by any method other than Zotero itself. I want Zotero to stay in control. If I want to change a citation, I will do it in Zotero. I don't expect to do any real manual changes to Zotero citations at all, but if I must, I will do it right before publishing after unlinking from Zotero.

I also don't want refresh to be interrupted. I would like to be able to start refresh and then leave the computer to process it while I do something else. I don't want to sit staring at the screen for an hour in case a dialogue pops up.

My request, then, is that there be a new setting in preferences that I can tick to say I always want to reject all changes to Zotero fields, That would allow Zotero to retain control and refresh to run unattended without interruption.
  • We'd very much like to improve the way modified citations and relevant dialogs are handled, but cannot due to technical reasons. We are limited with the buttons in dialogs display in Word to "Yes/No/(Cancel)" or "OK/Cancel", which is also why the wording of that dialog is more confusing than we would like it to be. We also cannot display all the dialogs at the end (or start) of refresh, because word processors tend to break fields if we update them in any other order than end to start of the doc.

    We could offer a cancel button to abort the document update, but for 99% of the cases you only get a few of these dialogs at the time, and we don't want to confuse users with yet another button, especially since if you'd be able to abort the update you'd likely just get the dialog again. If you get a lot of these dialogs, bar your exceptional use case, it usually means greater document corruption, which also shouldn't be ignored.

    We could consider including an Always Reject hidden pref, but I'm not sure if even that is a good idea, since it would prevent you from spotting doc corruption if it ever occurred.

    For your use case, you can kill/close Zotero safely when you get the popup, perform whatever changes you need to the doc and attempt the refresh again.
  • edited December 1, 2020
    Yes, I can see that you are limited in the pop-up dialogue, which is one reason that I suggest making it a Zotero Document Preference (like choosing the citation type). The other reason is that any pop-up dialogue is inappropriate in a long-running process (about an hour) during which I would rather leave the machine unattended. I don't want pop-ups!

    I did not suggest 'cancel' in this feature request, but in my parallel request to show the progress of refresh. For that, there would have to be a small open window of some kind open throughout refresh (not a pop-up) but please continue that discussion in the appropriate thread. https://forums.zotero.org/discussion/86458/feature-request-refresh-progress-indicator

    The 'Always Reject' preference setting is my preferred solution. I am not sure why you are calling it 'hidden'? I suggest it be in the Zotero Document Preferences pane, easily accessible from WORD, where one selects the citation type, footnotes or endnotes, whether they are created as fields and whether they are automatically updated. I don't know how hard that is technically, but for the user it is a logical place.

    I am not sure what you mean by 'document corruption'? I cannot think of any corruption that I want Zotero to spot for me. If Zotero is unable to refresh a citation due to a document problem, then it can log it and report it to me at the end of the refresh. The citation itself would be left unrefreshed with dotted underline, as usual. Otherwise, with the 'Always Reject' preference on, I WANT it to remove everything inside a Zotero field and fill it correctly. Anyone who wants to see if a field has changed would turn off the 'Always Reject' preference.

    Your last comment about kill/close is not applicable because there would be no popup, but perhaps you meant this for https://forums.zotero.org/discussion/86458/feature-request-refresh-progress-indicator?

    I am aware that I am writing this from a particular use case. I invite comments from other users who have documents with several hundred citations and therefore use manual refresh. (It does not matter if you are not using indexing, just ignore my 'aside').

  • edited December 1, 2020
    The 'Always Reject' preference setting is my preferred solution. I am not sure why you are calling it 'hidden'? I suggest it be in the Zotero Document Preferences pane, easily accessible from WORD, where one selects the citation type, footnotes or endnotes, whether they are created as fields and whether they are automatically updated. I don't know how hard that is technically, but for the user it is a logical place.
    99% of the time we want the users to actually see that popup because:

    1. They've changed a citation in the document, when they should have updated the item metadata or the cite itself instead of editing it in the text and those edits shouldn't be removed silently, but rather be done appropriately.
    2. Something has gone corrupt in the document and Zotero thinks that the citation was changed, when in fact it hasn't (this isn't that common, but it does happen especially as Word versions change and minor changes behind the scenes are introduced).

    In the 1st scenario there will only be a few popups rarely, so there's no need for a reject-all feature, and for the 2nd scenario it is imperative for the user to see this and go troubleshooting. We do not want to have an easily accessible way to disable these warnings, because it is prone to creating much bigger issues for our users and eventually ourselves when we need to help in troubleshooting, which is why I'm only considering this as a hidden pref. This is purely because it's too easy to set something like this and forget, even if you only want it for a single operation. Moreover, we don't want to overwhelm new users with too many options for basic Zotero operations, and there shouldn't be any unclear corner-case checkboxes in something as prominent as the doc prefs dialog (which we have gone through some lengths to simplify and declutter a few years ago). The best option here would obviously be a "Reject All" button for an individual refresh, but we don't have that as an option right now.
    I am not sure what you mean by 'document corruption'? I cannot think of any corruption that I want Zotero to spot for me. If Zotero is unable to refresh a citation due to a document problem, then it can log it and report it to me at the end of the refresh.
    This would be great in an ideal world, but not all corruption is detectable automatically. Each user knows best what edits they've done to the document since the last time they cited and what citation updates to expect. If Zotero retrieves field codes from word and for some reason they do not match what's expected, it cannot automatically know whether those changes were user-made or part of some unexpected word processor behavior.
    Your last comment about kill/close is not applicable because there would be no popup, but perhaps you meant this for https://forums.zotero.org/discussion/86458/feature-request-refresh-progress-indicator?
    My last comment was regarding your aside in the intial post:
    The price of forgetting is having to press the "no" button 500 times during refresh, or a force quit with possibly unforeseen consequences.


    As always, if there's major interest from other Zotero users/the community expressed on this thread (or other forum threads) we can reconsider some version of a reject all changes option when refreshing docs.
  • I think I already addressed all your points, but here's a summary
    1. The "reject all" preference could be turned on or off, so anyone wanting to be alerted to changes can turn it off. That would also be the default. It would always be on during automatic refresh.
    2. I gave examples of scenarios where a large number of changes can occur: global replace and indexing. I also showed that workarounds are not entirely satisfactory.
    3. In the case of a corruption (which in 7 years I have never experienced in the way you describe), an error log would be more appropriate. I don't know what I could do with a popup anyway.
    4. If the "reject all" preference is off by default (and the automatic refresh on) new users would experience the system as it is now and not need to be aware of the new option. "Reject all" is only needed with manual refresh, and that is only needed with documents with a large number of citations. Users with a large number of citations are probably not beginners.
  • 1. The "reject all" preference could be turned on or off, so anyone wanting to be alerted to changes can turn it off. That would also be the default. It would always be on during automatic refresh.
    I would be cautious to claim that even an advanced user wouldn't get tripped up by this eventually, let alone users with less technical skill. It is easy to make software have more options and be more advanced but more options almost always means poorer usability and more ways to do something you don't necessarily expect.
    2. I gave examples of scenarios where a large number of changes can occur: global replace and indexing. I also showed that workarounds are not entirely satisfactory.
    I'm not saying there are not legit scenarios where that happens. But this is also an absolute corner use case and when we're accommodating corner cases, we have to ensure that the solution will not cause confusion for more users in more scenarios, than it will solve in corner cases.
    3. In the case of a corruption (which in 7 years I have never experienced in the way you describe), an error log would be more appropriate. I don't know what I could do with a popup anyway.
    Glad to hear this! Unfortunately having provided support with word processor issues on these forums for over 5 years I can say that various corruption does occur. Zotero works correctly 99.9% of the time, but when it doesn't (or when some obscure function in Word processors does something we haven't accounted for) it can mean someone a loss of tens of hours of work. Once again, in some cases, it is impossible for Zotero to automatically detect whether changes to the citation text are legit or part of some corruption, but users who start getting these popus will usually figure that something is wrong. If something like a Reject All feature is implemented, it could mean completely overwriting someone's work without even alerting them!

    I am not saying this as a hypothetical either. We have made some changes to the Word for Mac plugin recently to fix Word updates breaking with autoindexing that you have reported. The changes had to do with the order in which we update citations. Since then we have had a couple of users report getting the dialog for changed citation text where they hadn't done any changes and all the citations had effectively "shifted" by one position. This is obviously very bad and we still haven't managed to figure out whether it's part of the recent update or unrelated (e.g. the user had edited the document while Zotero was updating it, which could also cause something like that). If those users also had an option to automatically reject all citation changes checked, they wouldn't have even known that something had gone wrong, and if it had happened on their final refresh of the document, they could even submit it in such a form (being used to Zotero never doing the wrong thing).

    This isn't an isolated event either. We troubleshoot an user with either some sort of corruption or editing citations in text in the unintended way that manifest as multiple unexpected "citations changed" dialogs about every month and these troubleshoots are usually long and confusing for our users.
    4. If the "reject all" preference is off by default (and the automatic refresh on) new users would experience the system as it is now and not need to be aware of the new option. "Reject all" is only needed with manual refresh, and that is only needed with documents with a large number of citations. Users with a large number of citations are probably not beginners.
    We cannot really rely on thinking "advanced users will do the right thing" when designing the software, because that's simply not the case for even the developers of software that usually know it in-and-out. This is doubly so for a feature that can have very time-consuming consequences. Everyone forgets, no matter how advanced they are.

    So to summarise the counter-point:
    1. We do not want to clutter the UI for any, but especially new, users.
    2. More than a few "changes to citations" buttons is extremely rare and if a user gets that most of the time it is related to document corruption.
    3. Given 2., we do not want to prominently add an option to reject all changes which will solve the extreme corner case and could potentially silently hide Zotero writing wrong citations for many more users.


    Once again, if there's more vocal support for the feature (i.e. we decide this isn't such an extreme corner case as I believe it to be) we will reconsider it.
  • Thanks for the comprehensive replies. I have nothing more to add to my case, so we must agree to differ. Maybe other forum users would like to chip in? If I am the only one experiencing the problem, then I can understand why you don't want to make a change. It's not an absolute deal-breaker, anyway — I will continue using Zotero and using my own workarounds.
Sign In or Register to comment.