From 7519abf3fe8735691d44e199301368c4d085c7ae Mon Sep 17 00:00:00 2001 From: Martin Filser Date: Tue, 8 Jun 2021 19:47:14 +0200 Subject: [PATCH] Spinner now configureable in the Settings --- client/components/lists/listBody.jade | 2 +- client/components/main/spinner.js | 32 +++++++++++++++++---- client/components/settings/settingBody.jade | 11 +++++++ client/components/settings/settingBody.js | 12 ++++++++ models/settings.js | 4 +++ server/publications/settings.js | 1 + 6 files changed, 55 insertions(+), 7 deletions(-) diff --git a/client/components/lists/listBody.jade b/client/components/lists/listBody.jade index f3aa47048..2d332f603 100644 --- a/client/components/lists/listBody.jade +++ b/client/components/lists/listBody.jade @@ -24,7 +24,7 @@ template(name="listBody") template(name="spinnerList") .sk-spinner.sk-spinner-list( - class="{{currentBoard.colorClass}} sk-spinner-{{Spinner.spinnerName}}" + class="{{currentBoard.colorClass}} sk-spinner-{{Spinner.getSpinnerNameLC}}" id="showMoreResults") +spinnerRaw diff --git a/client/components/main/spinner.js b/client/components/main/spinner.js index 8f9d4358f..238e59507 100644 --- a/client/components/main/spinner.js +++ b/client/components/main/spinner.js @@ -1,17 +1,37 @@ -function getSpinnerName() { - return 'Bounce' -} +import Settings from '/models/settings'; Spinner = { getSpinnerTemplate() { - return 'spinner' + getSpinnerName() + return 'spinner' + this.getSpinnerName(); }, getSpinnerTemplateRaw() { - return 'spinner' + getSpinnerName() + 'Raw'; + return 'spinner' + this.getSpinnerName() + 'Raw'; }, - spinnerName: getSpinnerName().toLowerCase(), + currentSetting: new ReactiveVar(), + + currentSettings() { + return this.currentSetting.get(); + }, + + getSpinnerName() { + let ret = 'Bounce'; + if (this.currentSettings()) { + ret = this.currentSettings().spinnerName; + } + return ret; + }, + + getSpinnerNameLC() { + return this.getSpinnerName().toLowerCase(); + }, } Blaze.registerHelper('Spinner', Spinner); + +Meteor.subscribe('setting', { + onReady() { + Spinner.currentSetting.set(Settings.findOne()); + }, +}); diff --git a/client/components/settings/settingBody.jade b/client/components/settings/settingBody.jade index f8cfc3a59..342c239a0 100644 --- a/client/components/settings/settingBody.jade +++ b/client/components/settings/settingBody.jade @@ -173,6 +173,9 @@ template(name='layoutSettings') li.layout-form .title {{_ 'default-authentication-method'}} +selectAuthenticationMethod(authenticationMethod=currentSetting.defaultAuthenticationMethod) + li.layout-form + .title {{_ 'spinner-names'}} + +selectSpinnerName(spinnerName=currentSetting.spinnerName) li.layout-form .title {{_ 'custom-product-name'}} .form-group @@ -222,3 +225,11 @@ template(name='selectAuthenticationMethod') option(value="{{value}}" selected) {{_ value}} else option(value="{{value}}") {{_ value}} + +template(name='selectSpinnerName') + select#spinnerName + each spinner in spinners + if isSelected spinner + option(value="{{spinner}}" selected) {{spinner}} + else + option(value="{{spinner}}") {{spinner}} diff --git a/client/components/settings/settingBody.js b/client/components/settings/settingBody.js index 596b40613..2ed1a1b78 100644 --- a/client/components/settings/settingBody.js +++ b/client/components/settings/settingBody.js @@ -199,6 +199,8 @@ BlazeComponent.extendComponent({ $('input[name=displayAuthenticationMethod]:checked').val() === 'true'; const defaultAuthenticationMethod = $('#defaultAuthenticationMethod').val(); + const spinnerName = $('#spinnerName').val(); + try { Settings.update(Settings.findOne()._id, { $set: { @@ -213,6 +215,7 @@ BlazeComponent.extendComponent({ displayAuthenticationMethod, defaultAuthenticationMethod, automaticLinkedUrlSchemes, + spinnerName, }, }); } catch (e) { @@ -384,3 +387,12 @@ Template.selectAuthenticationMethod.helpers({ return Template.instance().data.authenticationMethod === match; }, }); + +Template.selectSpinnerName.helpers({ + spinners() { + return ['Bounce', 'Wave'] + }, + isSelected(match) { + return Template.instance().data.spinnerName === match; + }, +}); diff --git a/models/settings.js b/models/settings.js index db69644fb..286ef29f9 100644 --- a/models/settings.js +++ b/models/settings.js @@ -46,6 +46,10 @@ Settings.attachSchema( type: String, optional: false, }, + spinnerName: { + type: String, + optional: true, + }, hideLogo: { type: Boolean, optional: true, diff --git a/server/publications/settings.js b/server/publications/settings.js index 829824dba..84234e31b 100644 --- a/server/publications/settings.js +++ b/server/publications/settings.js @@ -23,6 +23,7 @@ Meteor.publish('setting', () => { customHTMLbeforeBodyEnd: 1, displayAuthenticationMethod: 1, defaultAuthenticationMethod: 1, + spinnerName: 1, }, }, );