Admin Panel / Layout: Hide Logo: Yes / No. This does hide Wekan logo on Login page and Board page. Thanks to xet7.

This commit is contained in:
Lauri Ojansivu 2018-11-20 02:38:00 +02:00
parent cb9ced756f
commit dd6ba152a0
11 changed files with 67 additions and 9 deletions

View file

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

View file

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

View file

@ -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');
},

View file

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

View file

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

View file

@ -134,10 +134,16 @@ 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'}}

View file

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

View file

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

View file

@ -32,6 +32,10 @@ Settings.attachSchema(new SimpleSchema({
type: String,
optional: true,
},
hideLogo: {
type: Boolean,
optional: true,
},
createdAt: {
type: Date,
denyUpdate: true,

View file

@ -362,3 +362,15 @@ Migrations.add('add-product-name', () => {
},
}, noValidateMulti);
});
Migrations.add('add-hide-logo', () => {
Settings.update({
hideLogo: {
$exists: false,
},
}, {
$set: {
hideLogo: false,
},
}, noValidateMulti);
});

View file

@ -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 () {