Preferences: Add new status info below local API checkbox (#4615)
Some checks are pending
CI / Build, Upload, Test (push) Waiting to run

This commit is contained in:
Abe Jellinek 2024-08-23 14:10:22 -04:00 committed by Dan Stillman
parent 5e71fdf1cc
commit 3017770954
4 changed files with 66 additions and 1 deletions

View file

@ -72,6 +72,10 @@ Zotero_Preferences.Advanced = {
+ Zotero.getString('punctuation.ellipsis'));
this.updateIndexStats();
this.updateLocalAPIUI();
document.getElementById('zotero-prefpane-advanced-enable-local-api').addEventListener('synctopreference', () => {
this.updateLocalAPIUI();
});
},
@ -533,6 +537,35 @@ Zotero_Preferences.Advanced = {
finally {
buttons.forEach(b => b.disabled = false);
}
},
updateLocalAPIUI() {
let serverEnabled = Zotero.Prefs.get('httpServer.enabled');
let localAPIEnabled = Zotero.Prefs.get('httpServer.localAPI.enabled');
let checkbox = document.getElementById('zotero-prefpane-advanced-enable-local-api');
let availableMessage = document.getElementById('zotero-prefpane-advanced-local-api-available');
let serverDisabledSection = document.getElementById('zotero-prefpane-advanced-server-disabled');
if (!serverEnabled) {
checkbox.disabled = true;
availableMessage.hidden = true;
serverDisabledSection.hidden = false;
return;
}
checkbox.disabled = false;
availableMessage.hidden = !localAPIEnabled;
serverDisabledSection.hidden = true;
document.l10n.setArgs(availableMessage, {
url: `http://localhost:${Zotero.Prefs.get('httpServer.port')}/api/`
});
},
enableServerForLocalAPI() {
Zotero.Prefs.set('httpServer.enabled', true);
Zotero.Utilities.Internal.quit(true);
}
};

View file

@ -36,7 +36,27 @@
<checkbox label="&zotero.preferences.reportTranslationFailure;" preference="extensions.zotero.reportTranslationFailure" native="true"/>
<checkbox data-l10n-id="preferences-advanced-enable-local-api" preference="extensions.zotero.httpServer.localAPI.enabled" native="true"/>
<checkbox
id="zotero-prefpane-advanced-enable-local-api"
data-l10n-id="preferences-advanced-enable-local-api"
preference="extensions.zotero.httpServer.localAPI.enabled"
native="true"
/>
<vbox class="indented-pref">
<label
id="zotero-prefpane-advanced-local-api-available"
data-l10n-id="preferences-advanced-local-api-available"
>
<html:code class="local-api-url" data-l10n-name="url"/>
</label>
<hbox id="zotero-prefpane-advanced-server-disabled" align="center" hidden="true">
<label data-l10n-id="preferences-advanced-server-disabled"/>
<button
data-l10n-id="preferences-advanced-server-enable-and-restart"
oncommand="Zotero_Preferences.Advanced.enableServerForLocalAPI()"
/>
</hbox>
</vbox>
</groupbox>
<groupbox>

View file

@ -71,6 +71,10 @@ preferences-styleManager-add-button =
preferences-advanced-enable-local-api =
.label = Allow other applications on this computer to communicate with { -app-name }
preferences-advanced-local-api-available = Available at <code data-l10n-name="url">{ $url }</span>
preferences-advanced-server-disabled = The { -app-name } HTTP server is disabled.
preferences-advanced-server-enable-and-restart =
.label = Enable and Restart
preferences-advanced-language-and-region-title = Language and Region
preferences-advanced-enable-bidi-ui =
.label = Enable bidirectional text editing utilities

View file

@ -78,3 +78,11 @@
display: flex;
gap: 6px;
}
#zotero-prefpane-advanced-server-disabled {
color: var(--accent-red);
button {
margin-inline-start: 6px;
}
}