1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-01-29 19:13:59 +02:00

Desktop: Disable built-in copy of Simple Backup by default in Joplin Portable (#9907)

This commit is contained in:
Henry Heino 2024-02-08 14:48:39 -08:00 committed by GitHub
parent 627b830739
commit 39b44ff439
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 40 additions and 0 deletions

View File

@ -172,6 +172,34 @@ describe('defaultPluginsUtils', () => {
expect(Setting.value('plugin-io.github.jackgruber.backup.path')).toBe('initial-path');
});
it('should support disabled-by-default plugins', async () => {
const service = newPluginService();
const plugin = await service.loadPluginFromJsBundle('', sampleJsBundlePlugin);
plugin.builtIn = false;
await service.runPlugin(plugin);
const defaultPluginsInfo: DefaultPluginsInfo = {
'joplin.plugin.ambrt.backlinksToNote': {
enabled: false,
},
'org.joplinapp.plugins.ToggleSidebars': {},
};
Setting.setValue('installedDefaultPlugins', []);
const { pluginSettings } = await getDefaultPluginPathsAndSettings(
testDefaultPluginsDir, defaultPluginsInfo, {}, service,
);
expect(pluginSettings).toMatchObject({
'joplin.plugin.ambrt.backlinksToNote': {
enabled: false,
deleted: false,
},
'org.joplinapp.plugins.ToggleSidebars': defaultPluginSetting(),
});
});
it('should not throw error on missing setting key', async () => {
const service = newPluginService();

View File

@ -34,6 +34,7 @@ export interface SettingAndValue {
export interface DefaultPluginSettings {
settings?: SettingAndValue;
enabled?: boolean;
}
export interface DefaultPluginsInfo {

View File

@ -65,6 +65,11 @@ export const getDefaultPluginPathsAndSettings = async (
// As such, we recreate the plugin state if necessary.
if (!draft[pluginId]) {
draft[pluginId] = defaultPluginSetting();
const enabledByDefault = defaultPluginsInfo[pluginId].enabled;
if (typeof enabledByDefault === 'boolean') {
draft[pluginId].enabled = enabledByDefault;
}
}
});
}

View File

@ -1,5 +1,6 @@
import { DefaultPluginsInfo } from '../PluginService';
import Setting from '../../../models/Setting';
import shim from '../../../shim';
const getDefaultPluginsInfo = (): DefaultPluginsInfo => {
const defaultPlugins = {
@ -7,6 +8,11 @@ const getDefaultPluginsInfo = (): DefaultPluginsInfo => {
settings: {
'path': `${Setting.value('profileDir')}`,
},
// Joplin Portable is more likely to run on a device with low write speeds
// and memory. Because Simple Backup has auto-backup enabled by default,
// we disable it in Joplin Portable.
enabled: !shim.isPortable(),
},
};
return defaultPlugins;