mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-11 08:25:46 +01:00
closes #5018
This commit is contained in:
@@ -179,12 +179,10 @@ function completeConfigSetup(err, config, next) {
|
|||||||
|
|
||||||
function setupDefaultConfigs(next) {
|
function setupDefaultConfigs(next) {
|
||||||
process.stdout.write('Populating database with default configs, if not already set...\n');
|
process.stdout.write('Populating database with default configs, if not already set...\n');
|
||||||
var meta = require('./meta'),
|
var meta = require('./meta');
|
||||||
defaults = require(path.join(__dirname, '../', 'install/data/defaults.json'));
|
var defaults = require(path.join(__dirname, '../', 'install/data/defaults.json'));
|
||||||
|
|
||||||
async.eachSeries(Object.keys(defaults), function (key, next) {
|
meta.configs.setOnEmpty(key, defaults, function (err) {
|
||||||
meta.configs.setOnEmpty(key, defaults[key], next);
|
|
||||||
}, function (err) {
|
|
||||||
if (err) {
|
if (err) {
|
||||||
return next(err);
|
return next(err);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -118,14 +118,19 @@ module.exports = function(Meta) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Meta.configs.setOnEmpty = function (field, value, callback) {
|
Meta.configs.setOnEmpty = function (values, callback) {
|
||||||
Meta.configs.get(field, function (err, curValue) {
|
db.getObject('config', function(err, data) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
|
var empty = {};
|
||||||
if (!curValue) {
|
Object.keys(values).forEach(function(key) {
|
||||||
Meta.configs.set(field, value, callback);
|
if (!data.hasOwnProperty(key)) {
|
||||||
|
empty[key] = values[key];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (Object.keys(empty).length) {
|
||||||
|
db.setObject('config', empty, callback);
|
||||||
} else {
|
} else {
|
||||||
callback();
|
callback();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,14 +38,20 @@ module.exports = function(Meta) {
|
|||||||
db.setObjectField('settings:' + hash, field, value, callback);
|
db.setObjectField('settings:' + hash, field, value, callback);
|
||||||
};
|
};
|
||||||
|
|
||||||
Meta.settings.setOnEmpty = function (hash, field, value, callback) {
|
Meta.settings.setOnEmpty = function (hash, values, callback) {
|
||||||
Meta.settings.getOne(hash, field, function (err, curValue) {
|
db.getObject('settings:' + hash, function(err, settings) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
|
var empty = {};
|
||||||
|
Object.keys(values).forEach(function(key) {
|
||||||
|
if (!settings.hasOwnProperty(key)) {
|
||||||
|
empty[key] = values[key];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if (!curValue) {
|
if (Object.keys(empty).length) {
|
||||||
Meta.settings.setOne(hash, field, value, callback);
|
db.setObject('settings:' + hash, empty, callback);
|
||||||
} else {
|
} else {
|
||||||
callback();
|
callback();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user