- Custom Product Name in Admin Panel / Layout. In Progress, setting does not affect change UI yet. Thanks to xet7 !

- Fix LDAP User Search Scope. Thanks to Vnimos and Akuket ! Related #119
- Fix Save Admin Panel STMP password. Thanks to saurabharch and xet7 ! Closes #1856
This commit is contained in:
Lauri Ojansivu 2018-10-24 11:39:45 +03:00
parent 82e90f7b94
commit 4cb25a5bcf
11 changed files with 98 additions and 43 deletions

View file

@ -16,6 +16,8 @@ template(name="setting")
a.js-setting-menu(data-id="account-setting") {{_ 'accounts'}} a.js-setting-menu(data-id="account-setting") {{_ 'accounts'}}
li li
a.js-setting-menu(data-id="announcement-setting") {{_ 'admin-announcement'}} a.js-setting-menu(data-id="announcement-setting") {{_ 'admin-announcement'}}
li
a.js-setting-menu(data-id="layout-setting") {{_ 'layout'}}
.main-body .main-body
if loading.get if loading.get
+spinner +spinner
@ -27,6 +29,8 @@ template(name="setting")
+accountSettings +accountSettings
else if announcementSetting.get else if announcementSetting.get
+announcementSettings +announcementSettings
else if layoutSetting.get
+layoutSettings
template(name="general") template(name="general")
ul#registration-setting.setting-detail ul#registration-setting.setting-detail
@ -72,7 +76,7 @@ template(name='email')
li.smtp-form li.smtp-form
.title {{_ 'smtp-password'}} .title {{_ 'smtp-password'}}
.form-group .form-group
input.form-control#mail-server-password(type="text", placeholder="{{_ 'password'}}" value="") input.form-control#mail-server-password(type="password", placeholder="{{_ 'password'}}" value="{{currentSetting.mailServer.password}}")
li.smtp-form li.smtp-form
.title {{_ 'smtp-tls'}} .title {{_ 'smtp-tls'}}
.form-group .form-group
@ -127,3 +131,13 @@ template(name='announcementSettings')
textarea#admin-announcement.form-control= currentSetting.body textarea#admin-announcement.form-control= currentSetting.body
li li
button.js-announcement-save.primary {{_ 'save'}} button.js-announcement-save.primary {{_ 'save'}}
template(name='layoutSettings')
ul#layout-setting.setting-detail
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

@ -6,6 +6,7 @@ BlazeComponent.extendComponent({
this.emailSetting = new ReactiveVar(false); this.emailSetting = new ReactiveVar(false);
this.accountSetting = new ReactiveVar(false); this.accountSetting = new ReactiveVar(false);
this.announcementSetting = new ReactiveVar(false); this.announcementSetting = new ReactiveVar(false);
this.layoutSetting = new ReactiveVar(false);
Meteor.subscribe('setting'); Meteor.subscribe('setting');
Meteor.subscribe('mailServer'); Meteor.subscribe('mailServer');
@ -68,6 +69,7 @@ BlazeComponent.extendComponent({
this.emailSetting.set('email-setting' === targetID); this.emailSetting.set('email-setting' === targetID);
this.accountSetting.set('account-setting' === targetID); this.accountSetting.set('account-setting' === targetID);
this.announcementSetting.set('announcement-setting' === targetID); this.announcementSetting.set('announcement-setting' === targetID);
this.layoutSetting.set('layout-setting' === targetID);
} }
}, },
@ -129,6 +131,25 @@ BlazeComponent.extendComponent({
}, },
saveLayout() {
this.setLoading(true);
$('li').removeClass('has-error');
try {
const productName = $('#product-name').val().trim();
Settings.update(Settings.findOne()._id, {
$set: {
'productName': productName,
},
});
} catch (e) {
return;
} finally {
this.setLoading(false);
}
},
sendSMTPTestEmail() { sendSMTPTestEmail() {
Meteor.call('sendSMTPTestEmail', (err, ret) => { Meteor.call('sendSMTPTestEmail', (err, ret) => {
if (!err && ret) { /* eslint-disable no-console */ if (!err && ret) { /* eslint-disable no-console */
@ -154,6 +175,7 @@ BlazeComponent.extendComponent({
'click button.js-email-invite': this.inviteThroughEmail, 'click button.js-email-invite': this.inviteThroughEmail,
'click button.js-save': this.saveMailServerInfo, 'click button.js-save': this.saveMailServerInfo,
'click button.js-send-smtp-test-email': this.sendSMTPTestEmail, 'click button.js-send-smtp-test-email': this.sendSMTPTestEmail,
'click button.js-save-layout': this.saveLayout,
}]; }];
}, },
}).register('setting'); }).register('setting');

View file

@ -66,7 +66,8 @@
padding: 0 0.5rem padding: 0 0.5rem
.admin-announcement, .admin-announcement,
.invite-people .invite-people,
.layout
padding-left 20px; padding-left 20px;
li li
min-width: 500px; min-width: 500px;

View file

@ -150,7 +150,7 @@ services:
# LDAP_USER_SEARCH_FILTER : Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed # LDAP_USER_SEARCH_FILTER : Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed
# example : LDAP_USER_SEARCH_FILTER= # example : LDAP_USER_SEARCH_FILTER=
- LDAP_USER_SEARCH_FILTER='' - LDAP_USER_SEARCH_FILTER=''
# LDAP_USER_SEARCH_SCOPE : Base (search only in the provided DN), one (search only in the provided DN and one level deep), or subtree (search the whole subtree) # LDAP_USER_SEARCH_SCOPE : base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search the whole subtree).
# example : LDAP_USER_SEARCH_SCOPE=one # example : LDAP_USER_SEARCH_SCOPE=one
- LDAP_USER_SEARCH_SCOPE='' - LDAP_USER_SEARCH_SCOPE=''
# LDAP_USER_SEARCH_FIELD : Which field is used to find the user # LDAP_USER_SEARCH_FIELD : Which field is used to find the user

View file

@ -137,7 +137,7 @@ services:
# LDAP_USER_SEARCH_FILTER : Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed # LDAP_USER_SEARCH_FILTER : Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed
# example : LDAP_USER_SEARCH_FILTER= # example : LDAP_USER_SEARCH_FILTER=
- LDAP_USER_SEARCH_FILTER='' - LDAP_USER_SEARCH_FILTER=''
# LDAP_USER_SEARCH_SCOPE : Base (search only in the provided DN), one (search only in the provided DN and one level deep), or subtree (search the whole subtree) # LDAP_USER_SEARCH_SCOPE : base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search the whole subtree)
# example : LDAP_USER_SEARCH_SCOPE=one # example : LDAP_USER_SEARCH_SCOPE=one
- LDAP_USER_SEARCH_SCOPE='' - LDAP_USER_SEARCH_SCOPE=''
# LDAP_USER_SEARCH_FIELD : Which field is used to find the user # LDAP_USER_SEARCH_FIELD : Which field is used to find the user

View file

@ -612,5 +612,7 @@
"oauth2": "OAuth2", "oauth2": "OAuth2",
"cas": "CAS", "cas": "CAS",
"authentication-method": "Authentication method", "authentication-method": "Authentication method",
"authentication-type": "Authentication type" "authentication-type": "Authentication type",
"custom-product-name": "Custom Product Name",
"layout": "Layout"
} }

View file

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

View file

@ -350,3 +350,15 @@ Migrations.add('remove-customFields-references-broken', () => {
}, },
}, noValidateMulti); }, noValidateMulti);
}); });
Migrations.add('add-product-name', () => {
Settings.update({
productName: {
$exists: false,
},
}, {
$set: {
productName:'',
},
}, noValidateMulti);
});

View file

@ -1,5 +1,5 @@
Meteor.publish('setting', () => { Meteor.publish('setting', () => {
return Settings.find({}, {fields:{disableRegistration: 1}}); return Settings.find({}, {fields:{disableRegistration: 1, productName: 1}});
}); });
Meteor.publish('mailServer', function () { Meteor.publish('mailServer', function () {

View file

@ -194,7 +194,7 @@ DESCRIPTION_LDAP_USER_SEARCH_FILTER="Optional extra LDAP filters. Don't forget t
DEFAULT_LDAP_USER_SEARCH_FILTER="" DEFAULT_LDAP_USER_SEARCH_FILTER=""
KEY_LDAP_USER_SEARCH_FILTER="ldap-user-search-filter" KEY_LDAP_USER_SEARCH_FILTER="ldap-user-search-filter"
DESCRIPTION_LDAP_USER_SEARCH_SCOPE="Base (search only in the provided DN), one (search only in the provided DN and one level deep), or subtree (search the whole subtree)." DESCRIPTION_LDAP_USER_SEARCH_SCOPE="base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search the whole subtree). Example: one"
DEFAULT_LDAP_USER_SEARCH_SCOPE="" DEFAULT_LDAP_USER_SEARCH_SCOPE=""
KEY_LDAP_USER_SEARCH_SCOPE="ldap-user-search-scope" KEY_LDAP_USER_SEARCH_SCOPE="ldap-user-search-scope"

View file

@ -180,7 +180,7 @@ echo -e "Optional extra LDAP filters. Don't forget the outmost enclosing parenth
echo -e "\t$ snap set $SNAP_NAME LDAP_USER_SEARCH_FILTER=''" echo -e "\t$ snap set $SNAP_NAME LDAP_USER_SEARCH_FILTER=''"
echo -e "\n" echo -e "\n"
echo -e "Ldap User Search Scope." echo -e "Ldap User Search Scope."
echo -e "Base (search only in the provided DN), one (search only in the provided DN and one level deep), or subtree (search the whole subtree):" echo -e "base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search the whole subtree). Example: one"
echo -e "\t$ snap set $SNAP_NAME LDAP_USER_SEARCH_SCOPE=one" echo -e "\t$ snap set $SNAP_NAME LDAP_USER_SEARCH_SCOPE=one"
echo -e "\n" echo -e "\n"
echo -e "Ldap User Search Field." echo -e "Ldap User Search Field."