Add route to get available languages

This commit is contained in:
Johannes Zellner
2020-11-18 00:10:06 +01:00
parent 2388fe5047
commit 784c8b2bd2
5 changed files with 39 additions and 8 deletions

View File

@@ -123,6 +123,7 @@ var addons = require('./addons.js'),
assert = require('assert'),
backups = require('./backups.js'),
BoxError = require('./boxerror.js'),
cloudron = require('./cloudron.js'),
constants = require('./constants.js'),
cron = require('./cron.js'),
CronJob = require('cron').CronJob,
@@ -202,9 +203,6 @@ let gDefaults = (function () {
let gCache = {};
// Keep in sync with dashboard
const gSupportedLanguages = ['en', 'de', 'fr', 'it'];
function notifyChange(key, value) {
assert.strictEqual(typeof key, 'string');
// value is a variant
@@ -672,14 +670,18 @@ function setLanguage(language, callback) {
assert.strictEqual(typeof language, 'string');
assert.strictEqual(typeof callback, 'function');
if (gSupportedLanguages.indexOf(language) === -1) return callback(new BoxError(BoxError.NOT_FOUND));
settingsdb.set(exports.LANGUAGE_KEY, language, function (error) {
cloudron.getLanguages(function (error, languages) {
if (error) return callback(error);
notifyChange(exports.LANGUAGE_KEY, language);
if (languages.indexOf(language) === -1) return callback(new BoxError(BoxError.NOT_FOUND));
callback(null);
settingsdb.set(exports.LANGUAGE_KEY, language, function (error) {
if (error) return callback(error);
notifyChange(exports.LANGUAGE_KEY, language);
callback(null);
});
});
}