added icons to all h1s in admin panel

languages tab in ACP
each language now also has a "language.json"
This commit is contained in:
Julian Lam
2014-01-09 13:29:41 -05:00
parent 119079ace5
commit cd6af45afb
26 changed files with 128 additions and 33 deletions

51
src/languages.js Normal file
View File

@@ -0,0 +1,51 @@
var fs = require('fs'),
path = require('path'),
async = require('async'),
Languages = {};
Languages.list = function(callback) {
var languagesPath = path.join(__dirname, '../public/language'),
languages = [];
fs.readdir(languagesPath, function(err, files) {
async.each(files, function(folder, next) {
fs.stat(path.join(languagesPath, folder), function(err, stat) {
if (!err) {
if (stat.isDirectory()) {
var configPath = path.join(languagesPath, folder, 'language.json');
fs.exists(configPath, function(exists) {
if (exists) {
fs.readFile(configPath, function(err, stream) {
languages.push(JSON.parse(stream.toString()));
next();
});
} else {
next();
}
});
} else {
next();
}
} else {
next();
}
});
}, function(err) {
// Float "en" to the top
languages = languages.sort(function(a, b) {
if (a.code === 'en') {
return -1;
} else if (b.code === 'en') {
return 1;
} else {
return 0;
}
});
callback(err, languages);
});
});
};
module.exports = Languages;

View File

@@ -11,11 +11,10 @@ var nconf = require('nconf'),
categories = require('./../categories'),
meta = require('../meta'),
plugins = require('../plugins'),
Languages = require('../languages'),
events = require('./../events'),
utils = require('./../../public/src/utils.js');
(function (Admin) {
Admin.isAdmin = function (req, res, next) {
user.isAdministrator((req.user && req.user.uid) ? req.user.uid : 0, function (err, isAdmin) {
@@ -57,9 +56,9 @@ var nconf = require('nconf'),
(function () {
var routes = [
'categories/active', 'categories/disabled', 'users', 'topics', 'settings', 'themes',
'twitter', 'facebook', 'gplus', 'database', 'events', 'motd', 'groups', 'plugins', 'logger',
'users/latest', 'users/sort-posts', 'users/sort-reputation',
'users/search'
'twitter', 'facebook', 'gplus', 'database', 'events', 'motd', 'groups', 'plugins',
'languages', 'logger',
'users/latest', 'users/sort-posts', 'users/sort-reputation', 'users/search'
];
for (var i = 0, ii = routes.length; i < ii; i++) {
@@ -384,6 +383,14 @@ var nconf = require('nconf'),
});
});
app.get('/languages', function(req, res) {
Languages.list(function(err, languages) {
res.send(200, {
languages: languages
});
});
});
app.get('/settings', function (req, res) {
res.json(200, {});
});

View File

@@ -80,14 +80,6 @@ var DebugRoute = function(app) {
});
app.get('/test', function(req, res) {
var Emailer = require('../emailer');
Emailer.send('welcome', 1, {
username: 'test',
subject: 'this is a subject',
site_title: 'derp',
confirm_link: 'linkylink'
});
res.send();
});
});