Barış Soner Uşaklı 7 years ago
parent cca9c6408b
commit 2faaf5b35f

@ -45,5 +45,6 @@
"notificationType_new-reply": "notification",
"notificationType_follow": "notification",
"notificationType_new-chat": "notification",
"notificationType_group-invite": "notification"
"notificationType_group-invite": "notification",
"notificationType_mention": "notification"
}

@ -4,6 +4,7 @@ var async = require('async');
var meta = require('../../meta');
var emailer = require('../../emailer');
var plugins = require('../../plugins');
var settingsController = module.exports;
@ -14,7 +15,9 @@ settingsController.get = function (req, res, next) {
case 'email':
renderEmail(req, res, next);
break;
case 'user':
renderUser(req, res, next);
break;
default:
res.render('admin/settings/' + term);
}
@ -22,20 +25,53 @@ settingsController.get = function (req, res, next) {
function renderEmail(req, res, next) {
async.parallel({
emails: async.apply(emailer.getTemplates, meta.config),
services: emailer.listServices,
}, function (err, results) {
if (err) {
return next(err);
}
res.render('admin/settings/email', {
emails: results.emails,
sendable: results.emails.filter(function (email) {
return email.path.indexOf('_plaintext') === -1 && email.path.indexOf('partials') === -1;
}),
services: results.services,
});
});
async.waterfall([
function (next) {
async.parallel({
emails: async.apply(emailer.getTemplates, meta.config),
services: emailer.listServices,
}, next);
},
function (results) {
res.render('admin/settings/email', {
emails: results.emails,
sendable: results.emails.filter(function (email) {
return email.path.indexOf('_plaintext') === -1 && email.path.indexOf('partials') === -1;
}),
services: results.services,
});
},
], next);
}
function renderUser(req, res, next) {
var types = [
'notificationType_upvote',
'notificationType_new-topic',
'notificationType_new-reply',
'notificationType_follow',
'notificationType_new-chat',
'notificationType_group-invite',
];
async.waterfall([
function (next) {
plugins.fireHook('filter:user.notificationTypes', {
userData: {},
types: types,
privilegedTypes: [],
}, next);
},
function (results) {
var notificationSettings = results.types.map(function modifyType(type) {
return {
name: type,
label: '[[notifications:' + type + ']]',
};
});
res.render('admin/settings/user', {
notificationSettings: notificationSettings,
});
},
], next);
}

@ -292,77 +292,14 @@
</div>
<label>[[admin/settings/user:default-notification-settings]]</label>
<!-- BEGIN notificationSettings -->
<div class="row">
<div class="form-group col-xs-7">
<label>[[notifications:notificationType_upvote]]</label>
</div>
<div class="form-group col-xs-5">
<select class="form-control" data-field="notificationType_upvote">
<option value="none">[[notifications:none]]</option>
<option value="notification">[[notifications:notification_only]]</option>
<option value="email">[[notifications:email_only]]</option>
<option value="notificationemail">[[notifications:notification_and_email]]</option>
</select>
</div>
</div>
<div class="row">
<div class="form-group col-xs-7">
<label>[[notifications:notificationType_new-topic]]</label>
</div>
<div class="form-group col-xs-5">
<select class="form-control" data-field="notificationType_new-topic">
<option value="none">[[notifications:none]]</option>
<option value="notification">[[notifications:notification_only]]</option>
<option value="email">[[notifications:email_only]]</option>
<option value="notificationemail">[[notifications:notification_and_email]]</option>
</select>
</div>
</div>
<div class="row">
<div class="form-group col-xs-7">
<label>[[notifications:notificationType_new-reply]]</label>
</div>
<div class="form-group col-xs-5">
<select class="form-control" data-field="notificationType_new-reply">
<option value="none">[[notifications:none]]</option>
<option value="notification">[[notifications:notification_only]]</option>
<option value="email">[[notifications:email_only]]</option>
<option value="notificationemail">[[notifications:notification_and_email]]</option>
</select>
</div>
</div>
<div class="row">
<div class="form-group col-xs-7">
<label>[[notifications:notificationType_follow]]</label>
</div>
<div class="form-group col-xs-5">
<select class="form-control" data-field="notificationType_follow">
<option value="none">[[notifications:none]]</option>
<option value="notification">[[notifications:notification_only]]</option>
<option value="email">[[notifications:email_only]]</option>
<option value="notificationemail">[[notifications:notification_and_email]]</option>
</select>
</div>
</div>
<div class="row">
<div class="form-group col-xs-7">
<label>[[notifications:notificationType_new-chat]]</label>
</div>
<div class="form-group col-xs-5">
<select class="form-control" data-field="notificationType_new-chat">
<option value="none">[[notifications:none]]</option>
<option value="notification">[[notifications:notification_only]]</option>
<option value="email">[[notifications:email_only]]</option>
<option value="notificationemail">[[notifications:notification_and_email]]</option>
</select>
</div>
</div>
<div class="row">
<div class="form-group col-xs-7">
<label>[[notifications:notificationType_group-invite]]</label>
<label>{notificationSettings.label}</label>
</div>
<div class="form-group col-xs-5">
<select class="form-control" data-field="notificationType_group-invite">
<select class="form-control" data-field="{notificationSettings.name}">
<option value="none">[[notifications:none]]</option>
<option value="notification">[[notifications:notification_only]]</option>
<option value="email">[[notifications:email_only]]</option>
@ -370,6 +307,8 @@
</select>
</div>
</div>
<!-- END notificationSettings -->
</form>
</div>
</div>

Loading…
Cancel
Save