diff options
author | Lauri Ojansivu <x@xet7.org> | 2018-11-20 02:38:00 +0200 |
---|---|---|
committer | Lauri Ojansivu <x@xet7.org> | 2018-11-20 02:38:00 +0200 |
commit | dd6ba152a0b38950f82ec98fbe51fb746c402615 (patch) | |
tree | 694988c0e8c06d0c423d41a02b282c7ccc6f51a9 | |
parent | cb9ced756fb9fd0f731fe194d732f21bcb156578 (diff) | |
download | wekan-dd6ba152a0b38950f82ec98fbe51fb746c402615.tar.gz wekan-dd6ba152a0b38950f82ec98fbe51fb746c402615.tar.bz2 wekan-dd6ba152a0b38950f82ec98fbe51fb746c402615.zip |
Admin Panel / Layout: Hide Logo: Yes / No. This does hide Wekan logo on Login page and Board page. Thanks to xet7.
-rw-r--r-- | CHANGELOG.md | 6 | ||||
-rw-r--r-- | client/components/main/header.jade | 6 | ||||
-rw-r--r-- | client/components/main/header.js | 5 | ||||
-rw-r--r-- | client/components/main/layouts.jade | 9 | ||||
-rw-r--r-- | client/components/main/layouts.js | 11 | ||||
-rw-r--r-- | client/components/settings/settingBody.jade | 8 | ||||
-rw-r--r-- | client/components/settings/settingBody.js | 10 | ||||
-rw-r--r-- | i18n/en.i18n.json | 3 | ||||
-rw-r--r-- | models/settings.js | 4 | ||||
-rw-r--r-- | server/migrations.js | 12 | ||||
-rw-r--r-- | server/publications/settings.js | 2 |
11 files changed, 67 insertions, 9 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 97531d75..b5ceb84f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # Upcoming Wekan release -This release fixes the following bugs: +This release adds the following new features: + +- Admin Panel / Layout: Hide Logo: Yes / No. This does hide Wekan logo on Login page and Board page. Thanks to xet7. + +and fixes the following bugs: - [Fix Snap database-list-backups command](https://github.com/wekan/wekan-snap/issues/26). Thanks to WaryWolf. diff --git a/client/components/main/header.jade b/client/components/main/header.jade index 2751c0cc..e21ce096 100644 --- a/client/components/main/header.jade +++ b/client/components/main/header.jade @@ -47,6 +47,7 @@ template(name="header") +Template.dynamic(template=headerBar) unless hideLogo + //- On sandstorm, the logo shouldn't be clickable, because we only have one page/document on it, and we don't want to see the home page containing @@ -55,8 +56,9 @@ template(name="header") .wekan-logo img(src="{{pathFor '/wekan-logo-header.png'}}" alt="Wekan") else - a.wekan-logo(href="{{pathFor 'home'}}" title="{{_ 'header-logo-title'}}") - img(src="{{pathFor '/wekan-logo-header.png'}}" alt="Wekan") + unless currentSetting.hideLogo + a.wekan-logo(href="{{pathFor 'home'}}" title="{{_ 'header-logo-title'}}") + img(src="{{pathFor '/wekan-logo-header.png'}}" alt="Wekan") if appIsOffline +offlineWarning diff --git a/client/components/main/header.js b/client/components/main/header.js index 7fbc5716..c05b1c3c 100644 --- a/client/components/main/header.js +++ b/client/components/main/header.js @@ -1,11 +1,16 @@ Meteor.subscribe('user-admin'); Meteor.subscribe('boards'); +Meteor.subscribe('setting'); Template.header.helpers({ wrappedHeader() { return !Session.get('currentBoard'); }, + currentSetting() { + return Settings.findOne(); + }, + hideLogo() { return Utils.isMiniScreen() && Session.get('currentBoard'); }, diff --git a/client/components/main/layouts.jade b/client/components/main/layouts.jade index 68876dc5..e434eaba 100644 --- a/client/components/main/layouts.jade +++ b/client/components/main/layouts.jade @@ -14,8 +14,13 @@ head template(name="userFormsLayout") section.auth-layout - h1.at-form-landing-logo - img(src="{{pathFor '/wekan-logo.png'}}" alt="Wekan") + unless currentSetting.hideLogo + h1.at-form-landing-logo + img(src="{{pathFor '/wekan-logo.png'}}" alt="Wekan") + if currentSetting.hideLogo + h1 + br + br section.auth-dialog +Template.dynamic(template=content) +connectionMethod diff --git a/client/components/main/layouts.js b/client/components/main/layouts.js index 393f890b..d4a9d6d1 100644 --- a/client/components/main/layouts.js +++ b/client/components/main/layouts.js @@ -20,7 +20,13 @@ const validator = { }, }; +Template.userFormsLayout.onCreated(() => { + Meteor.subscribe('setting'); + +}); + Template.userFormsLayout.onRendered(() => { + AccountsTemplates.state.form.keys = new Proxy(AccountsTemplates.state.form.keys, validator); const i18nTag = navigator.language; @@ -31,6 +37,11 @@ Template.userFormsLayout.onRendered(() => { }); Template.userFormsLayout.helpers({ + + currentSetting() { + return Settings.findOne(); + }, + languages() { return _.map(TAPi18n.getLanguages(), (lang, code) => { const tag = code; diff --git a/client/components/settings/settingBody.jade b/client/components/settings/settingBody.jade index a05be1c6..bc6e0f50 100644 --- a/client/components/settings/settingBody.jade +++ b/client/components/settings/settingBody.jade @@ -135,9 +135,15 @@ template(name='announcementSettings') template(name='layoutSettings') ul#layout-setting.setting-detail li.layout-form + .title {{_ 'hide-logo'}} + .form-group.flex + input.form-control#hide-logo(type="radio" name="hideLogo" value="true" checked="{{#if currentSetting.hideLogo}}checked{{/if}}") + span {{_ 'yes'}} + input.form-control#hide-logo(type="radio" name="hideLogo" value="false" checked="{{#unless currentSetting.hideLogo}}checked{{/unless}}") + span {{_ 'no'}} + li.layout-form .title {{_ 'custom-product-name'}} .form-group input.form-control#product-name(type="text", placeholder="Wekan" value="{{currentSetting.productName}}") - li button.js-save-layout.primary {{_ 'save'}} diff --git a/client/components/settings/settingBody.js b/client/components/settings/settingBody.js index 4ad65400..5bebc8d0 100644 --- a/client/components/settings/settingBody.js +++ b/client/components/settings/settingBody.js @@ -59,6 +59,9 @@ BlazeComponent.extendComponent({ toggleTLS() { $('#mail-server-tls').toggleClass('is-checked'); }, + toggleHideLogo() { + $('#hide-logo').toggleClass('is-checked'); + }, switchMenu(event) { const target = $(event.target); if (!target.hasClass('active')) { @@ -135,11 +138,15 @@ BlazeComponent.extendComponent({ this.setLoading(true); $('li').removeClass('has-error'); + const productName = $('#product-name').val().trim(); + const hideLogoChange = ($('input[name=hideLogo]:checked').val() === 'true'); + try { - const productName = $('#product-name').val().trim(); + Settings.update(Settings.findOne()._id, { $set: { productName, + hideLogo: hideLogoChange, }, }); } catch (e) { @@ -175,6 +182,7 @@ BlazeComponent.extendComponent({ 'click button.js-email-invite': this.inviteThroughEmail, 'click button.js-save': this.saveMailServerInfo, 'click button.js-send-smtp-test-email': this.sendSMTPTestEmail, + 'click a.js-toggle-hide-logo': this.toggleHideLogo, 'click button.js-save-layout': this.saveLayout, }]; }, diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 67e03cd0..9b1f2851 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -618,5 +618,6 @@ "authentication-method": "Authentication method", "authentication-type": "Authentication type", "custom-product-name": "Custom Product Name", - "layout": "Layout" + "layout": "Layout", + "hide-logo": "Hide Logo" } diff --git a/models/settings.js b/models/settings.js index c2a9bf01..52212809 100644 --- a/models/settings.js +++ b/models/settings.js @@ -32,6 +32,10 @@ Settings.attachSchema(new SimpleSchema({ type: String, optional: true, }, + hideLogo: { + type: Boolean, + optional: true, + }, createdAt: { type: Date, denyUpdate: true, diff --git a/server/migrations.js b/server/migrations.js index 5b9cc341..56d2858d 100644 --- a/server/migrations.js +++ b/server/migrations.js @@ -362,3 +362,15 @@ Migrations.add('add-product-name', () => { }, }, noValidateMulti); }); + +Migrations.add('add-hide-logo', () => { + Settings.update({ + hideLogo: { + $exists: false, + }, + }, { + $set: { + hideLogo: false, + }, + }, noValidateMulti); +}); diff --git a/server/publications/settings.js b/server/publications/settings.js index 72538124..d2690439 100644 --- a/server/publications/settings.js +++ b/server/publications/settings.js @@ -1,5 +1,5 @@ Meteor.publish('setting', () => { - return Settings.find({}, {fields:{disableRegistration: 1, productName: 1}}); + return Settings.find({}, {fields:{disableRegistration: 1, productName: 1, hideLogo: 1}}); }); Meteor.publish('mailServer', function () { |