Plugin Start/Stop switch

This commit is contained in:
Jiiks 2018-01-31 10:32:20 +02:00
parent e0df52b6ab
commit 235b373f1a
4 changed files with 42 additions and 11 deletions

View File

@ -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 }

View File

@ -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>

View File

@ -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);

View File

@ -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;
}
}