widgets now use options object

This commit is contained in:
zadam 2019-08-25 17:41:08 +02:00
parent 9622b046e0
commit 1f092c2656
2 changed files with 8 additions and 3 deletions

View File

@ -1,5 +1,6 @@
import bundleService from "./bundle.js";
import messagingService from "./messaging.js";
import optionsService from "./options.js";
class Sidebar {
/**
@ -61,6 +62,8 @@ class Sidebar {
import("../widgets/what_links_here.js")
])).map(m => m.default);
const options = await optionsService.waitForOptions();
const widgetRelations = await this.ctx.note.getRelations('widget');
for (const widgetRelation of widgetRelations) {
@ -73,7 +76,7 @@ class Sidebar {
const state = (this.state.widgets || []).find(s => s.name === widgetClass.name);
try {
const widget = new widgetClass(this.ctx, state);
const widget = new widgetClass(this.ctx, options, state);
if (await widget.isEnabled()) {
const $el = await widget.render();

View File

@ -19,10 +19,12 @@ const WIDGET_TPL = `
class StandardWidget {
/**
* @param {TabContext} ctx
* @param {Options} options
* @param {object} state
*/
constructor(ctx, state) {
constructor(ctx, options, state) {
this.ctx = ctx;
this.options = options;
this.state = state;
// construct in camelCase
this.widgetName = this.constructor.name.substr(0, 1).toLowerCase() + this.constructor.name.substr(1);
@ -84,7 +86,7 @@ class StandardWidget {
async doRenderBody() {}
async isEnabled() {
const option = await optionsService.getJsonOption(this.widgetName + 'Widget');
const option = this.options.getJson(this.widgetName + 'Widget');
return option ? option.enabled : true;
}