mirror of
https://github.com/the-djmaze/snappymail.git
synced 2025-01-09 00:08:18 +08:00
63 lines
1.6 KiB
JavaScript
63 lines
1.6 KiB
JavaScript
import ko from 'ko';
|
|
|
|
import { Notification } from 'Common/Enums';
|
|
import { SettingsGet } from 'Common/Globals';
|
|
import { getNotification } from 'Common/Translator';
|
|
|
|
import { showScreenPopup } from 'Knoin/Knoin';
|
|
|
|
import { PluginAdminStore } from 'Stores/Admin/Plugin';
|
|
|
|
import Remote from 'Remote/Admin/Fetch';
|
|
|
|
import { PluginPopupView } from 'View/Popup/Plugin';
|
|
|
|
export class PluginsAdminSettings
|
|
{
|
|
constructor() {
|
|
this.enabledPlugins = ko.observable(!!SettingsGet('EnabledPlugins'));
|
|
|
|
this.plugins = PluginAdminStore;
|
|
this.pluginsError = PluginAdminStore.error;
|
|
|
|
this.enabledPlugins.subscribe(value =>
|
|
Remote.saveAdminConfig(null, {
|
|
EnabledPlugins: value ? 1 : 0
|
|
})
|
|
);
|
|
}
|
|
|
|
disablePlugin(plugin) {
|
|
let b = !plugin.disabled();
|
|
plugin.disabled(b);
|
|
Remote.pluginDisable((iError, data) => {
|
|
if (iError) {
|
|
PluginAdminStore.error(
|
|
(Notification.UnsupportedPluginPackage === iError && data && data.ErrorMessage)
|
|
? data.ErrorMessage
|
|
: getNotification(iError)
|
|
);
|
|
}
|
|
PluginAdminStore.fetch();
|
|
}, plugin.name, b);
|
|
}
|
|
|
|
configurePlugin(plugin) {
|
|
Remote.plugin((iError, data) => iError || showScreenPopup(PluginPopupView, [data.Result]), plugin.name);
|
|
}
|
|
|
|
onBuild(oDom) {
|
|
oDom.addEventListener('click', event => {
|
|
let el = event.target.closestWithin('.configure-plugin-action', oDom);
|
|
el && ko.dataFor(el) && this.configurePlugin(ko.dataFor(el));
|
|
|
|
el = event.target.closestWithin('.disabled-plugin', oDom);
|
|
el && ko.dataFor(el) && this.disablePlugin(ko.dataFor(el));
|
|
});
|
|
}
|
|
|
|
onShow() {
|
|
PluginAdminStore.error('');
|
|
PluginAdminStore.fetch();
|
|
}
|
|
}
|