Plugin Start/Stop switch
This commit is contained in:
parent
e0df52b6ab
commit
235b373f1a
|
@ -64,6 +64,26 @@ export default class extends ContentManager {
|
|||
return this.preloadContent(dirName, true, index);
|
||||
}
|
||||
|
||||
static stopPlugin(name) {
|
||||
const plugin = name instanceof Plugin ? name : this.getPluginByName(name);
|
||||
try {
|
||||
if (plugin) return plugin.stop();
|
||||
} catch (err) {
|
||||
// Logger.err('PluginManager', err);
|
||||
}
|
||||
return true; //Return true anyways since plugin doesn't exist
|
||||
}
|
||||
|
||||
static startPlugin(name) {
|
||||
const plugin = name instanceof Plugin ? name : this.getPluginByName(name);
|
||||
try {
|
||||
if (plugin) return plugin.start();
|
||||
} catch (err) {
|
||||
// Logger.err('PluginManager', err);
|
||||
}
|
||||
return true; //Return true anyways since plugin doesn't exist
|
||||
}
|
||||
|
||||
static get findPlugin() { return this.findContent }
|
||||
static get getPluginIndex() { return this.getContentIndex }
|
||||
static get getPluginByName() { return this.getContentByName }
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<div class="bd-plugin-header">
|
||||
<span v-tooltip="'wat'">{{plugin.name}}</span>
|
||||
<div class="bd-flex-spacer" />
|
||||
<label class="bd-switch-wrapper" @click="togglePlugin(plugin)">
|
||||
<label class="bd-switch-wrapper" @click="() => { togglePlugin(plugin); this.$forceUpdate(); }">
|
||||
<input type="checkbox" class="bd-switch-checkbox" />
|
||||
<div class="bd-switch" :class="{'bd-checked': plugin.enabled}" />
|
||||
</label>
|
||||
|
|
|
@ -50,18 +50,13 @@
|
|||
data() {
|
||||
return {
|
||||
local: true,
|
||||
pluginManager: PluginManager,
|
||||
settingsOpen: null
|
||||
settingsOpen: null,
|
||||
localPlugins: PluginManager.localPlugins
|
||||
}
|
||||
},
|
||||
components: {
|
||||
SettingsWrapper, PluginCard, Refresh
|
||||
},
|
||||
computed: {
|
||||
localPlugins() {
|
||||
return this.pluginManager.localPlugins;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
showLocal() {
|
||||
this.local = true;
|
||||
|
@ -70,11 +65,22 @@
|
|||
this.local = false;
|
||||
},
|
||||
refreshLocal() { },
|
||||
togglePlugin() { },
|
||||
togglePlugin(plugin) {
|
||||
// TODO Display error if plugin fails to start/stop
|
||||
try {
|
||||
if (plugin.enabled) {
|
||||
PluginManager.stopPlugin(plugin);
|
||||
} else {
|
||||
PluginManager.startPlugin(plugin);
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
},
|
||||
reloadPlugin(plugin) {
|
||||
(async () => {
|
||||
try {
|
||||
await this.pluginManager.reloadPlugin(plugin);
|
||||
await PluginManager.reloadPlugin(plugin);
|
||||
this.$forceUpdate();
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
|
|
|
@ -11,7 +11,12 @@ module.exports = (Plugin, Api, Vendor) => {
|
|||
}
|
||||
|
||||
onStart() {
|
||||
console.log('On Start!');
|
||||
console.log('Example Plugin 1 onStart');
|
||||
return true;
|
||||
}
|
||||
|
||||
onStop() {
|
||||
console.log('Example Plugin 1 onStop');
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue