diff --git a/chrome/content/zotero/preferences/preferences_advanced.js b/chrome/content/zotero/preferences/preferences_advanced.js
index 7c831f471c..c6ad5e008e 100644
--- a/chrome/content/zotero/preferences/preferences_advanced.js
+++ b/chrome/content/zotero/preferences/preferences_advanced.js
@@ -485,24 +485,42 @@ Zotero_Preferences.Advanced = {
let checkbox = document.getElementById('zotero-prefpane-advanced-enable-local-api');
let availableMessage = document.getElementById('zotero-prefpane-advanced-local-api-available');
+ let authorizationsSection = document.getElementById('zotero-prefpane-advanced-local-api-write-authorizations');
let serverDisabledSection = document.getElementById('zotero-prefpane-advanced-server-disabled');
if (!serverEnabled) {
checkbox.disabled = true;
availableMessage.hidden = true;
+ authorizationsSection.hidden = true;
serverDisabledSection.hidden = false;
return;
}
checkbox.disabled = false;
availableMessage.hidden = !localAPIEnabled;
+ authorizationsSection.hidden = !localAPIEnabled;
serverDisabledSection.hidden = true;
document.l10n.setArgs(availableMessage, {
url: `http://localhost:${Zotero.Server.port}/api/`
});
+
+ if (localAPIEnabled) {
+ this.updateLocalAPIClearAuthorizationsButton();
+ }
},
+ async updateLocalAPIClearAuthorizationsButton() {
+ let clearButton = document.getElementById('zotero-prefpane-advanced-local-api-clear');
+ let count = await Zotero.Server.LocalAPI.getAuthorizationCount();
+ clearButton.disabled = count === 0;
+ },
+
+ async clearLocalAPIAuthorizations() {
+ await Zotero.Server.LocalAPI.clearAuthorizations();
+ await this.updateLocalAPIClearAuthorizationsButton();
+ },
+
enableServerForLocalAPI() {
Zotero.Prefs.set('httpServer.enabled', true);
Zotero.Utilities.Internal.quit(true);
diff --git a/chrome/content/zotero/preferences/preferences_advanced.xhtml b/chrome/content/zotero/preferences/preferences_advanced.xhtml
index cc0901cfcc..a701330838 100644
--- a/chrome/content/zotero/preferences/preferences_advanced.xhtml
+++ b/chrome/content/zotero/preferences/preferences_advanced.xhtml
@@ -49,6 +49,13 @@
>
+
+
+