mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-08-26 19:07:17 +02:00
Merge remote-tracking branch 'origin/master' into develop
This commit is contained in:
@@ -6,8 +6,8 @@ var async = require('async');
|
||||
var sanitizeHTML = require('sanitize-html');
|
||||
var nconf = require('nconf');
|
||||
|
||||
var utils = require('../../public/src/utils');
|
||||
var Translator = require('../../public/src/modules/translator').Translator;
|
||||
var file = require('../file');
|
||||
var Translator = require('../translator').Translator;
|
||||
|
||||
function filterDirectories(directories) {
|
||||
return directories.map(function (dir) {
|
||||
@@ -24,7 +24,7 @@ function filterDirectories(directories) {
|
||||
}
|
||||
|
||||
function getAdminNamespaces(callback) {
|
||||
utils.walk(path.resolve(nconf.get('views_dir'), 'admin'), function (err, directories) {
|
||||
file.walk(path.resolve(nconf.get('views_dir'), 'admin'), function (err, directories) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
var async = require('async');
|
||||
var db = require('./database');
|
||||
var utils = require('../public/src/utils');
|
||||
var utils = require('./utils');
|
||||
|
||||
var DEFAULT_BATCH_SIZE = 100;
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ var db = require('../database');
|
||||
var groups = require('../groups');
|
||||
var plugins = require('../plugins');
|
||||
var privileges = require('../privileges');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
|
||||
module.exports = function (Categories) {
|
||||
Categories.create = function (data, callback) {
|
||||
|
||||
@@ -5,8 +5,8 @@ var async = require('async');
|
||||
|
||||
var db = require('../database');
|
||||
var meta = require('../meta');
|
||||
var utils = require('../../public/src/utils');
|
||||
var translator = require('../../public/src/modules/translator');
|
||||
var utils = require('../utils');
|
||||
var translator = require('../translator');
|
||||
var plugins = require('../plugins');
|
||||
|
||||
module.exports = function (Categories) {
|
||||
|
||||
@@ -9,7 +9,7 @@ var user = require('../../user');
|
||||
var groups = require('../../groups');
|
||||
var plugins = require('../../plugins');
|
||||
var meta = require('../../meta');
|
||||
var utils = require('../../../public/src/utils');
|
||||
var utils = require('../../utils');
|
||||
|
||||
var helpers = {};
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ var categories = require('../../categories');
|
||||
var privileges = require('../../privileges');
|
||||
var analytics = require('../../analytics');
|
||||
var plugins = require('../../plugins');
|
||||
var translator = require('../../../public/src/modules/translator');
|
||||
var translator = require('../../translator');
|
||||
|
||||
|
||||
var categoriesController = {};
|
||||
|
||||
@@ -24,13 +24,13 @@ settingsController.get = function (req, res, next) {
|
||||
function renderEmail(req, res, next) {
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var utils = require('../../../public/src/utils');
|
||||
var file = require('../../file');
|
||||
|
||||
var emailsPath = path.join(nconf.get('views_dir'), 'emails');
|
||||
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
utils.walk(emailsPath, next);
|
||||
file.walk(emailsPath, next);
|
||||
},
|
||||
function (emails, next) {
|
||||
async.map(emails, function (email, next) {
|
||||
|
||||
@@ -12,7 +12,7 @@ var categories = require('../categories');
|
||||
var privileges = require('../privileges');
|
||||
var plugins = require('../plugins');
|
||||
var widgets = require('../widgets');
|
||||
var translator = require('../../public/src/modules/translator');
|
||||
var translator = require('../translator');
|
||||
|
||||
var apiController = module.exports;
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ var db = require('../database');
|
||||
var meta = require('../meta');
|
||||
var user = require('../user');
|
||||
var plugins = require('../plugins');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
var Password = require('../password');
|
||||
|
||||
var sockets = require('../socket.io');
|
||||
|
||||
@@ -11,7 +11,7 @@ var categories = require('../categories');
|
||||
var meta = require('../meta');
|
||||
var pagination = require('../pagination');
|
||||
var helpers = require('./helpers');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
|
||||
var categoryController = {};
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ var privileges = require('../privileges');
|
||||
var plugins = require('../plugins');
|
||||
var helpers = require('./helpers');
|
||||
var pagination = require('../pagination');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
|
||||
var topicsController = {};
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
var async = require('async');
|
||||
var utils = require('../../../public/src/utils');
|
||||
var utils = require('../../utils');
|
||||
|
||||
module.exports = function (db, module) {
|
||||
var helpers = module.helpers.mongo;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function (redisClient, module) {
|
||||
var utils = require('../../../public/src/utils');
|
||||
var utils = require('../../utils');
|
||||
|
||||
var helpers = module.helpers.redis;
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ var url = require('url');
|
||||
var User = require('./user');
|
||||
var Plugins = require('./plugins');
|
||||
var meta = require('./meta');
|
||||
var translator = require('../public/src/modules/translator');
|
||||
var translator = require('./translator');
|
||||
|
||||
var transports = {
|
||||
sendmail: nodemailer.createTransport(sendmailTransport()),
|
||||
|
||||
@@ -7,7 +7,7 @@ var validator = require('validator');
|
||||
var db = require('./database');
|
||||
var batch = require('./batch');
|
||||
var user = require('./user');
|
||||
var utils = require('../public/src/utils');
|
||||
var utils = require('./utils');
|
||||
|
||||
(function (events) {
|
||||
events.log = function (data, callback) {
|
||||
|
||||
47
src/file.js
47
src/file.js
@@ -8,9 +8,9 @@ var jimp = require('jimp');
|
||||
var mkdirp = require('mkdirp');
|
||||
var mime = require('mime');
|
||||
|
||||
var utils = require('../public/src/utils');
|
||||
var utils = require('./utils');
|
||||
|
||||
var file = {};
|
||||
var file = module.exports;
|
||||
|
||||
file.saveFileToLocal = function (filename, folder, tempPath, callback) {
|
||||
/*
|
||||
@@ -137,4 +137,47 @@ file.typeToExtension = function (type) {
|
||||
return extension;
|
||||
};
|
||||
|
||||
// Adapted from http://stackoverflow.com/questions/5827612/node-js-fs-readdir-recursive-directory-search
|
||||
file.walk = function (dir, done) {
|
||||
var results = [];
|
||||
|
||||
fs.readdir(dir, function (err, list) {
|
||||
if (err) {
|
||||
return done(err);
|
||||
}
|
||||
var pending = list.length;
|
||||
if (!pending) {
|
||||
return done(null, results);
|
||||
}
|
||||
list.forEach(function (filename) {
|
||||
filename = dir + '/' + filename;
|
||||
fs.stat(filename, function (err, stat) {
|
||||
if (err) {
|
||||
return done(err);
|
||||
}
|
||||
|
||||
if (stat && stat.isDirectory()) {
|
||||
file.walk(filename, function (err, res) {
|
||||
if (err) {
|
||||
return done(err);
|
||||
}
|
||||
|
||||
results = results.concat(res);
|
||||
pending -= 1;
|
||||
if (!pending) {
|
||||
done(null, results);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
results.push(filename);
|
||||
pending -= 1;
|
||||
if (!pending) {
|
||||
done(null, results);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = file;
|
||||
|
||||
@@ -6,7 +6,7 @@ var validator = require('validator');
|
||||
var user = require('./user');
|
||||
var db = require('./database');
|
||||
var plugins = require('./plugins');
|
||||
var utils = require('../public/src/utils');
|
||||
var utils = require('./utils');
|
||||
|
||||
var Groups = module.exports;
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
var async = require('async');
|
||||
var meta = require('../meta');
|
||||
var plugins = require('../plugins');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
var db = require('../database');
|
||||
|
||||
module.exports = function (Groups) {
|
||||
|
||||
@@ -5,7 +5,7 @@ var validator = require('validator');
|
||||
|
||||
var db = require('../database');
|
||||
var plugins = require('../plugins');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
|
||||
module.exports = function (Groups) {
|
||||
Groups.getGroupsData = function (groupNames, callback) {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
var async = require('async');
|
||||
var plugins = require('../plugins');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
var db = require('./../database');
|
||||
|
||||
module.exports = function (Groups) {
|
||||
|
||||
@@ -5,7 +5,7 @@ var winston = require('winston');
|
||||
var _ = require('underscore');
|
||||
|
||||
var user = require('../user');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
var plugins = require('../plugins');
|
||||
var notifications = require('../notifications');
|
||||
var db = require('../database');
|
||||
|
||||
@@ -4,7 +4,7 @@ var async = require('async');
|
||||
var winston = require('winston');
|
||||
|
||||
var plugins = require('../plugins');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
var db = require('../database');
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ var path = require('path');
|
||||
var prompt = require('prompt');
|
||||
var winston = require('winston');
|
||||
var nconf = require('nconf');
|
||||
var utils = require('../public/src/utils.js');
|
||||
var utils = require('./utils.js');
|
||||
|
||||
var install = {};
|
||||
var questions = {};
|
||||
|
||||
@@ -8,7 +8,7 @@ var db = require('./database');
|
||||
var user = require('./user');
|
||||
var plugins = require('./plugins');
|
||||
var meta = require('./meta');
|
||||
var utils = require('../public/src/utils');
|
||||
var utils = require('./utils');
|
||||
|
||||
var Messaging = module.exports;
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ var S = require('string');
|
||||
|
||||
var db = require('../database');
|
||||
var user = require('../user');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
|
||||
module.exports = function (Messaging) {
|
||||
Messaging.newMessageCutoff = 1000 * 60 * 3;
|
||||
|
||||
@@ -6,7 +6,7 @@ var os = require('os');
|
||||
var nconf = require('nconf');
|
||||
|
||||
var pubsub = require('./pubsub');
|
||||
var utils = require('../public/src/utils');
|
||||
var utils = require('./utils');
|
||||
|
||||
(function (Meta) {
|
||||
Meta.reloadRequired = false;
|
||||
|
||||
@@ -13,7 +13,6 @@ var clean = require('postcss-clean');
|
||||
var plugins = require('../plugins');
|
||||
var db = require('../database');
|
||||
var file = require('../file');
|
||||
var utils = require('../../public/src/utils');
|
||||
|
||||
module.exports = function (Meta) {
|
||||
Meta.css = {};
|
||||
@@ -106,7 +105,7 @@ module.exports = function (Meta) {
|
||||
});
|
||||
|
||||
async.each(pluginDirectories, function (directory, next) {
|
||||
utils.walk(directory, function (err, styleFiles) {
|
||||
file.walk(directory, function (err, styleFiles) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@ var uglifyjs = require('uglify-js');
|
||||
|
||||
var file = require('../file');
|
||||
var plugins = require('../plugins');
|
||||
var utils = require('../../public/src/utils');
|
||||
|
||||
var minifierPath = path.join(__dirname, 'minifier.js');
|
||||
|
||||
@@ -25,7 +24,7 @@ module.exports = function (Meta) {
|
||||
'public/vendor/jquery/timeago/jquery.timeago.js',
|
||||
'public/vendor/jquery/js/jquery.form.min.js',
|
||||
'public/vendor/visibility/visibility.min.js',
|
||||
'public/vendor/bootstrap/js/bootstrap.js',
|
||||
'node_modules/bootstrap/dist/js/bootstrap.js',
|
||||
'public/vendor/jquery/bootstrap-tagsinput/bootstrap-tagsinput.min.js',
|
||||
'public/vendor/jquery/textcomplete/jquery.textcomplete.js',
|
||||
'public/vendor/requirejs/require.js',
|
||||
@@ -86,17 +85,17 @@ module.exports = function (Meta) {
|
||||
modules: {
|
||||
'Chart.js': 'node_modules/chart.js/dist/Chart.min.js',
|
||||
'mousetrap.js': 'node_modules/mousetrap/mousetrap.min.js',
|
||||
'jqueryui.js': 'public/vendor/jquery/js/jquery-ui.js',
|
||||
'buzz.js': 'public/vendor/buzz/buzz.js',
|
||||
'cropper.js': 'node_modules/cropperjs/dist/cropper.min.js',
|
||||
'jqueryui.js': 'public/vendor/jquery/js/jquery-ui.js',
|
||||
'zxcvbn.js': 'node_modules/zxcvbn/dist/zxcvbn.js',
|
||||
ace: 'node_modules/ace-builds/src-min',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
function minifyModules(modules, callback) {
|
||||
async.eachLimit(modules, 500, function (mod, next) {
|
||||
var filePath = mod.filePath;
|
||||
var srcPath = mod.srcPath;
|
||||
var destPath = mod.destPath;
|
||||
var minified;
|
||||
|
||||
@@ -105,15 +104,13 @@ module.exports = function (Meta) {
|
||||
mkdirp(path.dirname(destPath), cb);
|
||||
},
|
||||
function (cb) {
|
||||
fs.readFile(filePath, function (err, buffer) {
|
||||
fs.readFile(srcPath, function (err, buffer) {
|
||||
if (err) {
|
||||
return cb(err);
|
||||
}
|
||||
|
||||
if (filePath.endsWith('.min.js')) {
|
||||
minified = {
|
||||
code: buffer.toString(),
|
||||
};
|
||||
if (srcPath.endsWith('.min.js') || path.dirname(srcPath).endsWith('min')) {
|
||||
minified = { code: buffer.toString() };
|
||||
return cb();
|
||||
}
|
||||
|
||||
@@ -143,15 +140,27 @@ module.exports = function (Meta) {
|
||||
var modules = Meta.js.scripts.modules;
|
||||
|
||||
async.eachLimit(Object.keys(modules), 1000, function (relPath, next) {
|
||||
var filePath = path.join(__dirname, '../../', modules[relPath]);
|
||||
var srcPath = path.join(__dirname, '../../', modules[relPath]);
|
||||
var destPath = path.join(__dirname, '../../build/public/src/modules', relPath);
|
||||
|
||||
mkdirp(path.dirname(destPath), function (err) {
|
||||
async.parallel({
|
||||
dir: function (cb) {
|
||||
mkdirp(path.dirname(destPath), function (err) {
|
||||
cb(err);
|
||||
});
|
||||
},
|
||||
stats: function (cb) {
|
||||
fs.stat(srcPath, cb);
|
||||
},
|
||||
}, function (err, res) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
if (res.stats.isDirectory()) {
|
||||
return file.linkDirs(srcPath, destPath, next);
|
||||
}
|
||||
|
||||
file.link(filePath, destPath, next);
|
||||
file.link(srcPath, destPath, next);
|
||||
});
|
||||
}, callback);
|
||||
}
|
||||
@@ -161,36 +170,55 @@ module.exports = function (Meta) {
|
||||
function getModuleList(callback) {
|
||||
var modules = Object.keys(Meta.js.scripts.modules).map(function (relPath) {
|
||||
return {
|
||||
filePath: path.join(__dirname, '../../', Meta.js.scripts.modules[relPath]),
|
||||
srcPath: path.join(__dirname, '../../', Meta.js.scripts.modules[relPath]),
|
||||
destPath: path.join(__dirname, '../../build/public/src/modules', relPath),
|
||||
};
|
||||
});
|
||||
|
||||
var dirs = moduleDirs.map(function (dir) {
|
||||
return path.join(__dirname, '../../public/src', dir);
|
||||
var coreDirs = moduleDirs.map(function (dir) {
|
||||
return {
|
||||
srcPath: path.join(__dirname, '../../public/src', dir),
|
||||
destPath: path.join(__dirname, '../../build/public/src', dir),
|
||||
};
|
||||
});
|
||||
|
||||
async.each(dirs, function (dir, next) {
|
||||
utils.walk(dir, function (err, files) {
|
||||
modules = modules.concat(coreDirs);
|
||||
|
||||
var moduleFiles = [];
|
||||
async.eachLimit(modules, 1000, function (module, next) {
|
||||
var srcPath = module.srcPath;
|
||||
var destPath = module.destPath;
|
||||
|
||||
fs.stat(srcPath, function (err, stats) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
if (!stats.isDirectory()) {
|
||||
moduleFiles.push(module);
|
||||
return next();
|
||||
}
|
||||
|
||||
var mods = files.filter(function (filePath) {
|
||||
return path.extname(filePath) === '.js';
|
||||
}).map(function (filePath) {
|
||||
return {
|
||||
filePath: filePath,
|
||||
destPath: path.join(__dirname, '../../build/public/src', path.relative(path.dirname(dir), filePath)),
|
||||
};
|
||||
file.walk(srcPath, function (err, files) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
var mods = files.filter(function (filePath) {
|
||||
return path.extname(filePath) === '.js';
|
||||
}).map(function (filePath) {
|
||||
return {
|
||||
srcPath: path.normalize(filePath),
|
||||
destPath: path.join(destPath, path.relative(srcPath, filePath)),
|
||||
};
|
||||
});
|
||||
|
||||
moduleFiles = moduleFiles.concat(mods);
|
||||
|
||||
next();
|
||||
});
|
||||
|
||||
modules = modules.concat(mods);
|
||||
|
||||
next();
|
||||
});
|
||||
}, function (err) {
|
||||
callback(err, modules);
|
||||
callback(err, moduleFiles);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -296,7 +324,7 @@ module.exports = function (Meta) {
|
||||
});
|
||||
|
||||
async.each(pluginDirectories, function (directory, next) {
|
||||
utils.walk(directory, function (err, scripts) {
|
||||
file.walk(directory, function (err, scripts) {
|
||||
pluginsScripts = pluginsScripts.concat(scripts);
|
||||
next(err);
|
||||
});
|
||||
|
||||
@@ -8,7 +8,6 @@ var mkdirp = require('mkdirp');
|
||||
var rimraf = require('rimraf');
|
||||
|
||||
var file = require('../file');
|
||||
var utils = require('../../public/src/utils');
|
||||
var Plugins = require('../plugins');
|
||||
var db = require('../database');
|
||||
|
||||
@@ -65,7 +64,7 @@ function getTranslationTree(callback) {
|
||||
async.parallel([
|
||||
// get core languages and namespaces
|
||||
function (nxt) {
|
||||
utils.walk(coreLanguagesPath, function (err, paths) {
|
||||
file.walk(coreLanguagesPath, function (err, paths) {
|
||||
if (err) {
|
||||
return nxt(err);
|
||||
}
|
||||
@@ -78,7 +77,7 @@ function getTranslationTree(callback) {
|
||||
function (nxt) {
|
||||
async.each(plugins, function (pluginData, cb) {
|
||||
var pathToFolder = path.join(__dirname, '../../node_modules/', pluginData.id, pluginData.languages);
|
||||
utils.walk(pathToFolder, function (err, paths) {
|
||||
file.walk(pathToFolder, function (err, paths) {
|
||||
if (err) {
|
||||
return cb(err);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ var fs = require('fs');
|
||||
var nconf = require('nconf');
|
||||
|
||||
var plugins = require('../plugins');
|
||||
var utils = require('../../public/src/utils');
|
||||
var file = require('../file');
|
||||
|
||||
var Templates = {};
|
||||
|
||||
@@ -62,11 +62,11 @@ function preparePaths(baseTemplatesPaths, callback) {
|
||||
|
||||
async.parallel({
|
||||
coreTpls: function (next) {
|
||||
utils.walk(coreTemplatesPath, next);
|
||||
file.walk(coreTemplatesPath, next);
|
||||
},
|
||||
baseThemes: function (next) {
|
||||
async.map(baseTemplatesPaths, function (baseTemplatePath, next) {
|
||||
utils.walk(baseTemplatePath, function (err, paths) {
|
||||
file.walk(baseTemplatePath, function (err, paths) {
|
||||
paths = paths.map(function (tpl) {
|
||||
return {
|
||||
base: baseTemplatePath,
|
||||
|
||||
@@ -6,7 +6,7 @@ var validator = require('validator');
|
||||
var winston = require('winston');
|
||||
|
||||
var plugins = require('../plugins');
|
||||
var translator = require('../../public/src/modules/translator');
|
||||
var translator = require('../translator');
|
||||
|
||||
module.exports = function (middleware) {
|
||||
middleware.processRender = function (req, res, next) {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
var async = require('async');
|
||||
var plugins = require('../plugins');
|
||||
var db = require('../database');
|
||||
var translator = require('../../public/src/modules/translator');
|
||||
var translator = require('../translator');
|
||||
var pubsub = require('../pubsub');
|
||||
|
||||
var admin = module.exports;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
var nconf = require('nconf');
|
||||
var admin = require('./admin');
|
||||
var translator = require('../../public/src/modules/translator');
|
||||
var translator = require('../translator');
|
||||
|
||||
var navigation = {};
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ var groups = require('./groups');
|
||||
var meta = require('./meta');
|
||||
var batch = require('./batch');
|
||||
var plugins = require('./plugins');
|
||||
var utils = require('../public/src/utils');
|
||||
var utils = require('./utils');
|
||||
|
||||
(function (Notifications) {
|
||||
Notifications.init = function () {
|
||||
|
||||
@@ -9,7 +9,6 @@ var express = require('express');
|
||||
var nconf = require('nconf');
|
||||
|
||||
var db = require('./database');
|
||||
var utils = require('../public/src/utils');
|
||||
var hotswap = require('./hotswap');
|
||||
var file = require('./file');
|
||||
var languages = require('./languages');
|
||||
@@ -174,7 +173,7 @@ var middleware;
|
||||
if (plugin.templates || plugin.id.startsWith('nodebb-theme-')) {
|
||||
winston.verbose('[plugins] Loading templates (' + plugin.id + ')');
|
||||
var templatesPath = path.join(__dirname, '../node_modules', plugin.id, plugin.templates || 'templates');
|
||||
utils.walk(templatesPath, function (err, pluginTemplates) {
|
||||
file.walk(templatesPath, function (err, pluginTemplates) {
|
||||
if (pluginTemplates) {
|
||||
pluginTemplates.forEach(function (pluginTemplate) {
|
||||
if (pluginTemplate.endsWith('.tpl')) {
|
||||
|
||||
@@ -4,7 +4,7 @@ var async = require('async');
|
||||
var _ = require('underscore');
|
||||
|
||||
var db = require('./database');
|
||||
var utils = require('../public/src/utils');
|
||||
var utils = require('./utils');
|
||||
var user = require('./user');
|
||||
var topics = require('./topics');
|
||||
var privileges = require('./privileges');
|
||||
|
||||
@@ -9,7 +9,7 @@ var plugins = require('../plugins');
|
||||
var user = require('../user');
|
||||
var topics = require('../topics');
|
||||
var categories = require('../categories');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
|
||||
module.exports = function (Posts) {
|
||||
Posts.create = function (data, callback) {
|
||||
|
||||
@@ -11,7 +11,7 @@ var privileges = require('../privileges');
|
||||
var plugins = require('../plugins');
|
||||
var cache = require('./cache');
|
||||
var pubsub = require('../pubsub');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
|
||||
module.exports = function (Posts) {
|
||||
pubsub.on('post:edit', function (pid) {
|
||||
|
||||
@@ -9,7 +9,7 @@ var S = require('string');
|
||||
var meta = require('../meta');
|
||||
var cache = require('./cache');
|
||||
var plugins = require('../plugins');
|
||||
var translator = require('../../public/src/modules/translator');
|
||||
var translator = require('../translator');
|
||||
|
||||
var urlRegex = /href="([^"]+)"/g;
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ var db = require('../database');
|
||||
var user = require('../user');
|
||||
var plugins = require('../plugins');
|
||||
var categories = require('../categories');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
|
||||
|
||||
module.exports = function (Posts) {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
var async = require('async');
|
||||
|
||||
var topics = require('../topics');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
|
||||
module.exports = function (Posts) {
|
||||
Posts.getPostsFromSet = function (set, start, stop, uid, reverse, callback) {
|
||||
|
||||
@@ -10,7 +10,7 @@ var categories = require('./categories');
|
||||
var user = require('./user');
|
||||
var plugins = require('./plugins');
|
||||
var privileges = require('./privileges');
|
||||
var utils = require('../public/src/utils');
|
||||
var utils = require('./utils');
|
||||
|
||||
var search = {};
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ var topics = require('./topics');
|
||||
var privileges = require('./privileges');
|
||||
var meta = require('./meta');
|
||||
var plugins = require('./plugins');
|
||||
var utils = require('../public/src/utils');
|
||||
var utils = require('./utils');
|
||||
|
||||
var sitemap = {
|
||||
maps: {
|
||||
|
||||
@@ -5,7 +5,7 @@ var async = require('async');
|
||||
var groups = require('../groups');
|
||||
var meta = require('../meta');
|
||||
var user = require('../user');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
var groupsController = require('../controllers/groups');
|
||||
|
||||
var SocketGroups = {};
|
||||
|
||||
@@ -7,7 +7,7 @@ var meta = require('../meta');
|
||||
var notifications = require('../notifications');
|
||||
var plugins = require('../plugins');
|
||||
var Messaging = require('../messaging');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
var server = require('./');
|
||||
var user = require('../user');
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
var user = require('../user');
|
||||
var notifications = require('../notifications');
|
||||
|
||||
var SocketNotifs = module.exports;
|
||||
|
||||
SocketNotifs.get = function (socket, data, callback) {
|
||||
|
||||
@@ -9,7 +9,7 @@ var topics = require('../topics');
|
||||
var user = require('../user');
|
||||
var websockets = require('./index');
|
||||
var socketHelpers = require('./helpers');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
|
||||
var apiController = require('../controllers/api');
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ var async = require('async');
|
||||
var topics = require('../../topics');
|
||||
var privileges = require('../../privileges');
|
||||
var meta = require('../../meta');
|
||||
var utils = require('../../../public/src/utils');
|
||||
var utils = require('../../utils');
|
||||
var social = require('../../social');
|
||||
|
||||
module.exports = function (SocketTopics) {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
var async = require('async');
|
||||
var db = require('../../database');
|
||||
var topics = require('../../topics');
|
||||
var utils = require('../../../public/src/utils');
|
||||
var utils = require('../../utils');
|
||||
|
||||
module.exports = function (SocketTopics) {
|
||||
SocketTopics.isTagAllowed = function (socket, data, callback) {
|
||||
|
||||
@@ -5,7 +5,7 @@ var _ = require('underscore');
|
||||
|
||||
var db = require('./database');
|
||||
var posts = require('./posts');
|
||||
var utils = require('../public/src/utils');
|
||||
var utils = require('./utils');
|
||||
var plugins = require('./plugins');
|
||||
var user = require('./user');
|
||||
var categories = require('./categories');
|
||||
|
||||
@@ -6,7 +6,7 @@ var _ = require('underscore');
|
||||
var validator = require('validator');
|
||||
var S = require('string');
|
||||
var db = require('../database');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
var plugins = require('../plugins');
|
||||
var analytics = require('../analytics');
|
||||
var user = require('../user');
|
||||
@@ -88,6 +88,10 @@ module.exports = function (Topics) {
|
||||
], callback);
|
||||
};
|
||||
|
||||
function rtrim(str) {
|
||||
return str.replace(/\s+$/g, '');
|
||||
}
|
||||
|
||||
Topics.post = function (data, callback) {
|
||||
var uid = data.uid;
|
||||
data.title = String(data.title).trim();
|
||||
@@ -102,7 +106,7 @@ module.exports = function (Topics) {
|
||||
},
|
||||
function (next) {
|
||||
if (data.content) {
|
||||
data.content = data.content.rtrim();
|
||||
data.content = rtrim(data.content);
|
||||
}
|
||||
check(data.content, meta.config.minimumPostLength, meta.config.maximumPostLength, 'content-too-short', 'content-too-long', next);
|
||||
},
|
||||
@@ -235,7 +239,7 @@ module.exports = function (Topics) {
|
||||
function (filteredData, next) {
|
||||
content = filteredData.content || data.content;
|
||||
if (content) {
|
||||
content = content.rtrim();
|
||||
content = rtrim(content);
|
||||
}
|
||||
|
||||
check(content, meta.config.minimumPostLength, meta.config.maximumPostLength, 'content-too-short', 'content-too-long', next);
|
||||
|
||||
@@ -4,7 +4,7 @@ var validator = require('validator');
|
||||
|
||||
var db = require('../database');
|
||||
var categories = require('../categories');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
|
||||
module.exports = function (Topics) {
|
||||
Topics.getTopicField = function (tid, field, callback) {
|
||||
|
||||
@@ -7,7 +7,7 @@ var db = require('../database');
|
||||
var meta = require('../meta');
|
||||
var _ = require('underscore');
|
||||
var plugins = require('../plugins');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
|
||||
|
||||
module.exports = function (Topics) {
|
||||
|
||||
@@ -9,7 +9,7 @@ var meta = require('../meta');
|
||||
var user = require('../user');
|
||||
var posts = require('../posts');
|
||||
var plugins = require('../plugins');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
|
||||
module.exports = function (Topics) {
|
||||
Topics.getTeasers = function (topics, uid, callback) {
|
||||
|
||||
@@ -9,7 +9,7 @@ var notifications = require('../notifications');
|
||||
var categories = require('../categories');
|
||||
var privileges = require('../privileges');
|
||||
var meta = require('../meta');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
|
||||
module.exports = function (Topics) {
|
||||
Topics.getTotalUnread = function (uid, filter, callback) {
|
||||
|
||||
3
src/translator.js
Normal file
3
src/translator.js
Normal file
@@ -0,0 +1,3 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = require('../public/src/modules/translator');
|
||||
@@ -9,8 +9,8 @@ var meta = require('../meta');
|
||||
var emailer = require('../emailer');
|
||||
var notifications = require('../notifications');
|
||||
var groups = require('../groups');
|
||||
var translator = require('../../public/src/modules/translator');
|
||||
var utils = require('../../public/src/utils');
|
||||
var translator = require('../translator');
|
||||
var utils = require('../utils');
|
||||
var plugins = require('../plugins');
|
||||
|
||||
module.exports = function (User) {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
var async = require('async');
|
||||
var db = require('../database');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
var validator = require('validator');
|
||||
var plugins = require('../plugins');
|
||||
var groups = require('../groups');
|
||||
|
||||
@@ -7,7 +7,7 @@ var winston = require('winston');
|
||||
|
||||
var db = require('../database');
|
||||
var plugins = require('../plugins');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
|
||||
module.exports = function (User) {
|
||||
var iconBackgrounds = ['#f44336', '#e91e63', '#9c27b0', '#673ab7', '#3f51b5', '#2196f3',
|
||||
|
||||
@@ -10,7 +10,7 @@ var user = require('../user');
|
||||
var topics = require('../topics');
|
||||
var plugins = require('../plugins');
|
||||
var emailer = require('../emailer');
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
|
||||
(function (Digest) {
|
||||
Digest.execute = function (interval, callback) {
|
||||
|
||||
@@ -5,8 +5,8 @@ var async = require('async');
|
||||
var nconf = require('nconf');
|
||||
|
||||
var user = require('../user');
|
||||
var utils = require('../../public/src/utils');
|
||||
var translator = require('../../public/src/modules/translator');
|
||||
var utils = require('../utils');
|
||||
var translator = require('../translator');
|
||||
var plugins = require('../plugins');
|
||||
var db = require('../database');
|
||||
var meta = require('../meta');
|
||||
|
||||
@@ -7,8 +7,8 @@ var nconf = require('nconf');
|
||||
var db = require('./../database');
|
||||
var meta = require('../meta');
|
||||
var emailer = require('../emailer');
|
||||
var translator = require('../../public/src/modules/translator');
|
||||
var utils = require('../../public/src/utils');
|
||||
var translator = require('../translator');
|
||||
var utils = require('../utils');
|
||||
|
||||
|
||||
module.exports = function (User) {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
var async = require('async');
|
||||
var S = require('string');
|
||||
|
||||
var utils = require('../../public/src/utils');
|
||||
var utils = require('../utils');
|
||||
var meta = require('../meta');
|
||||
var db = require('../database');
|
||||
var groups = require('../groups');
|
||||
|
||||
@@ -5,8 +5,8 @@ var nconf = require('nconf');
|
||||
var winston = require('winston');
|
||||
|
||||
var user = require('../user');
|
||||
var utils = require('../../public/src/utils');
|
||||
var translator = require('../../public/src/modules/translator');
|
||||
var utils = require('../utils');
|
||||
var translator = require('../translator');
|
||||
|
||||
var db = require('../database');
|
||||
var meta = require('../meta');
|
||||
|
||||
3
src/utils.js
Normal file
3
src/utils.js
Normal file
@@ -0,0 +1,3 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = require('../public/src/utils');
|
||||
@@ -24,7 +24,6 @@
|
||||
<script type="text/javascript" src="{relative_path}/assets/acp.min.js?{cache-buster}"></script>
|
||||
<script type="text/javascript" src="{relative_path}/assets/vendor/colorpicker/colorpicker.js?{cache-buster}"></script>
|
||||
<script type="text/javascript" src="{relative_path}/assets/src/admin/admin.js?{cache-buster}"></script>
|
||||
<script type="text/javascript" src="{relative_path}/assets/vendor/ace/ace.js?{cache-buster}"></script>
|
||||
<script type="text/javascript" src="{relative_path}/assets/vendor/semver/semver.browser.js?{cache-buster}"></script>
|
||||
<script type="text/javascript" src="{relative_path}/assets/vendor/jquery/serializeObject/jquery.ba-serializeobject.min.js?{cache-buster}"></script>
|
||||
<script type="text/javascript" src="{relative_path}/assets/vendor/jquery/deserialize/jquery.deserialize.min.js?{cache-buster}"></script>
|
||||
|
||||
@@ -5,7 +5,7 @@ var winston = require('winston');
|
||||
var templates = require('templates.js');
|
||||
|
||||
var plugins = require('../plugins');
|
||||
var translator = require('../../public/src/modules/translator');
|
||||
var translator = require('../translator');
|
||||
var db = require('../database');
|
||||
|
||||
var widgets = {};
|
||||
|
||||
Reference in New Issue
Block a user