From 7a444242144c7d6f4c2e4c1af9399619c3784709 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 22 Oct 2018 20:59:13 -0400 Subject: [PATCH] parse '123' to 123 if it has no default --- install/data/defaults.json | 1 + src/controllers/accounts/edit.js | 2 +- src/controllers/admin/languages.js | 2 +- src/meta/configs.js | 6 ++++-- test/meta.js | 8 ++++---- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/install/data/defaults.json b/install/data/defaults.json index cd92bca23c..e41f0dc966 100644 --- a/install/data/defaults.json +++ b/install/data/defaults.json @@ -1,6 +1,7 @@ { "title": "NodeBB", "showSiteTitle": 1, + "defaultLang": "en-GB", "loginDays": 14, "loginSeconds": 0, "loginAttempts": 5, diff --git a/src/controllers/accounts/edit.js b/src/controllers/accounts/edit.js index 7c04633416..ada68d258c 100644 --- a/src/controllers/accounts/edit.js +++ b/src/controllers/accounts/edit.js @@ -42,7 +42,7 @@ editController.get = function (req, res, callback) { userData.allowWebsite = !userData.isSelf || userData.reputation >= meta.config['min:rep:website']; userData.allowAboutMe = !userData.isSelf || userData.reputation >= meta.config['min:rep:aboutme']; userData.allowSignature = results.canUseSignature && (!userData.isSelf || userData.reputation >= meta.config['min:rep:signature']); - userData.profileImageDimension = meta.config.profileImageDimension || 200; + userData.profileImageDimension = meta.config.profileImageDimension; userData.defaultAvatar = user.getDefaultAvatar(); userData.groups = userData.groups.filter(function (group) { diff --git a/src/controllers/admin/languages.js b/src/controllers/admin/languages.js index d51bad3e47..fe3849465a 100644 --- a/src/controllers/admin/languages.js +++ b/src/controllers/admin/languages.js @@ -14,7 +14,7 @@ languagesController.get = function (req, res, next) { }, function (languages) { languages.forEach(function (language) { - language.selected = language.code === (meta.config.defaultLang || 'en-GB'); + language.selected = language.code === meta.config.defaultLang; }); res.render('admin/general/languages', { diff --git a/src/meta/configs.js b/src/meta/configs.js index a3269a5c0e..cbc2332b01 100644 --- a/src/meta/configs.js +++ b/src/meta/configs.js @@ -21,11 +21,11 @@ function deserialize(config) { Object.keys(config).forEach(function (key) { const defaultType = typeof defaults[key]; const type = typeof config[key]; + const number = parseFloat(config[key]); - if ((defaultType === 'string' || defaultType === 'undefined') && type === 'number') { + if (defaultType === 'string' && type === 'number') { deserialized[key] = String(config[key]); } else if (defaultType === 'number' && type === 'string') { - const number = parseFloat(config[key]); if (!isNaN(number) && isFinite(config[key])) { deserialized[key] = number; } else { @@ -37,6 +37,8 @@ function deserialize(config) { deserialized[key] = false; } else if (config[key] === null) { deserialized[key] = defaults[key]; + } else if (defaultType === 'undefined' && !isNaN(number) && isFinite(config[key])) { + deserialized[key] = number; } else { deserialized[key] = config[key]; } diff --git a/test/meta.js b/test/meta.js index df15081afd..502cafbc95 100644 --- a/test/meta.js +++ b/test/meta.js @@ -218,7 +218,7 @@ describe('meta', function () { assert.ifError(err); meta.configs.getFields(['numericField'], function (err, data) { assert.ifError(err); - assert.strictEqual(data.numericField, '123'); + assert.strictEqual(data.numericField, 123); done(); }); }); @@ -236,11 +236,11 @@ describe('meta', function () { }); it('should set boolean config value', function (done) { - meta.configs.set('booleanField', 'true', function (err) { + meta.configs.set('booleanField', 'false', function (err) { assert.ifError(err); meta.configs.getFields(['booleanField'], function (err, data) { assert.ifError(err); - assert.strictEqual(data.booleanField, true); + assert.strictEqual(data.booleanField, false); done(); }); }); @@ -251,7 +251,7 @@ describe('meta', function () { assert.ifError(err); meta.configs.getFields(['stringField'], function (err, data) { assert.ifError(err); - assert.strictEqual(data.stringField, '123'); + assert.strictEqual(data.stringField, 123); done(); }); });