Merge branch 'master' into develop

v1.18.x
Julian Lam 8 years ago
commit 58cbf44143

@ -2,7 +2,7 @@
"latest_users": "最新会员",
"top_posters": "发帖排行",
"most_reputation": "声望排行",
"most_flags": "被举报次数最多",
"most_flags": "最多举报",
"search": "搜索",
"enter_username": "输入用户名搜索",
"load_more": "加载更多",

@ -13,20 +13,6 @@ define('admin/general/sounds', ['sounds', 'settings', 'admin/settings'], functio
Sounds.playSound(soundName);
});
// Load Form Values
Settings.load('sounds', $('.sounds form'));
// Saving of Form Values
var saveEl = $('#save');
saveEl.on('click', function () {
Settings.save('sounds', $('.sounds form'), function () {
socket.emit('admin.fireEvent', {
name: 'event:sounds.reloadMapping',
});
app.alertSuccess('[[admin/general/sounds:saved]]');
});
});
AdminSettings.prepare();
};

@ -1,23 +1,23 @@
'use strict';
var plugins = require('../../plugins');
var db = require('../../database');
var meta = require('../../meta');
var soundsController = {};
soundsController.get = function (req, res, next) {
db.getObject('settings:sounds', function (err, settings) {
var types = [
'notification',
'chat-incoming',
'chat-outgoing',
];
meta.configs.getFields(types, function (err, settings) {
if (err) {
return next(err);
}
settings = settings || {};
var types = [
'notification',
'chat-incoming',
'chat-outgoing',
];
var output = {};
types.forEach(function (type) {

@ -9,8 +9,6 @@ var async = require('async');
var file = require('../file');
var plugins = require('../plugins');
var user = require('../user');
var db = require('../database');
var soundsPath = path.join(__dirname, '../../build/public/sounds');
var uploadsPath = path.join(__dirname, '../../public/uploads/sounds');
@ -100,7 +98,7 @@ module.exports = function (Meta) {
Meta.sounds.getUserSoundMap = function getUserSoundMap(uid, callback) {
async.parallel({
defaultMapping: function (next) {
db.getObject('settings:sounds', next);
Meta.configs.getFields(keys, next);
},
userSettings: function (next) {
user.getSettings(uid, next);
@ -121,9 +119,9 @@ module.exports = function (Meta) {
keys.forEach(function (key) {
if (userSettings[key] || userSettings[key] === '') {
soundMapping[key] = userSettings[key] || null;
soundMapping[key] = userSettings[key] || '';
} else {
soundMapping[key] = defaultMapping[key] || null;
soundMapping[key] = defaultMapping[key] || '';
}
});

@ -12,7 +12,7 @@ var schemaDate;
var thisSchemaDate;
// IMPORTANT: REMEMBER TO UPDATE VALUE OF latestSchema
var latestSchema = Date.UTC(2016, 11, 7);
var latestSchema = Date.UTC(2017, 1, 25);
Upgrade.check = function (callback) {
db.get('schemaDate', function (err, value) {
@ -407,6 +407,75 @@ Upgrade.upgrade = function (callback) {
next();
}
},
function (next) {
thisSchemaDate = Date.UTC(2017, 1, 25);
var schemaName = '[2017/2/25] Update global and user sound settings';
if (schemaDate < thisSchemaDate) {
updatesMade = true;
winston.verbose(schemaName);
var user = require('./user');
var meta = require('./meta');
var batch = require('./batch');
var map = {
'notification.mp3': 'Default | Deedle-dum',
'waterdrop-high.mp3': 'Default | Water drop (high)',
'waterdrop-low.mp3': 'Default | Water drop (low)',
};
async.parallel([
function (cb) {
var keys = ['chat-incoming', 'chat-outgoing', 'notification'];
db.getObject('settings:sounds', function (err, settings) {
if (err) {
return cb(err);
}
keys.forEach(function (key) {
if (settings[key] && settings[key].indexOf(' | ') === -1) {
settings[key] = map[settings[key]] || '';
}
});
meta.configs.setMultiple(settings, cb);
});
},
function (cb) {
var keys = ['notificationSound', 'incomingChatSound', 'outgoingChatSound'];
batch.processSortedSet('users:joindate', function (ids, next) {
async.each(ids, function (uid, next) {
user.getSettings(uid, function (err, settings) {
if (err) {
return next(err);
}
keys.forEach(function (key) {
if (settings[key] && settings[key].indexOf(' | ') === -1) {
settings[key] = map[settings[key]] || '';
}
});
user.saveSettings(uid, settings, next);
});
}, next);
}, cb);
},
], function (err) {
if (err) {
return next(err);
}
winston.verbose(schemaName + ' - done');
Upgrade.update(thisSchemaDate, next);
});
} else {
winston.verbose(schemaName + ' - skipped!');
next();
}
},
// Add new schema updates here
// IMPORTANT: REMEMBER TO UPDATE VALUE OF latestSchema IN LINE 24!!!
], function (err) {

@ -7,7 +7,7 @@
<label for="notification">[[admin/general/sounds:notifications]]</label>
<div class="row">
<div class="form-group col-xs-9">
<select class="form-control" id="notification" name="notification">
<select class="form-control" id="notification" data-field="notification">
<option value="">[[user:no-sound]]</option>
<!-- BEGIN notification-sound -->
<optgroup label="{notification-sound.name}">
@ -33,7 +33,7 @@
<label for="chat-incoming">[[admin/general/sounds:incoming-message]]</label>
<div class="row">
<div class="form-group col-xs-9">
<select class="form-control" id="chat-incoming" name="chat-incoming">
<select class="form-control" id="chat-incoming" data-field="chat-incoming">
<option value="">[[user:no-sound]]</option>
<!-- BEGIN chat-incoming-sound -->
<optgroup label="{chat-incoming-sound.name}">
@ -54,7 +54,7 @@
<label for="chat-outgoing">[[admin/general/sounds:outgoing-message]]</label>
<div class="row">
<div class="form-group col-xs-9">
<select class="form-control" id="chat-outgoing" name="chat-outgoing">
<select class="form-control" id="chat-outgoing" data-field="chat-outgoing">
<option value="">[[user:no-sound]]</option>
<!-- BEGIN chat-outgoing-sound -->
<optgroup label="{chat-outgoing-sound.name}">

Loading…
Cancel
Save