From bc1d70c1263e39317c146f426bb7ca9db6d352d6 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Fri, 17 Feb 2017 19:31:21 -0700 Subject: [PATCH 01/60] ESlint comma-dangle --- .eslintignore | 3 - .eslintrc.json | 5 +- Gruntfile.js | 32 ++++---- app.js | 12 +-- bcrypt.js | 2 +- install/databases.js | 8 +- install/web.js | 16 ++-- loader.js | 12 +-- minifier.js | 10 +-- public/src/admin/admin.js | 14 ++-- public/src/admin/advanced/errors.js | 38 +++++----- public/src/admin/appearance/skins.js | 10 +-- public/src/admin/appearance/themes.js | 10 +-- public/src/admin/extend/plugins.js | 14 ++-- public/src/admin/extend/rewards.js | 2 +- public/src/admin/extend/widgets.js | 18 ++--- public/src/admin/general/dashboard.js | 64 ++++++++-------- public/src/admin/general/navigation.js | 4 +- public/src/admin/general/sounds.js | 2 +- public/src/admin/manage/categories.js | 18 ++--- public/src/admin/manage/category-analytics.js | 74 +++++++++---------- public/src/admin/manage/category.js | 42 +++++------ public/src/admin/manage/flags.js | 24 +++--- public/src/admin/manage/group.js | 16 ++-- public/src/admin/manage/groups.js | 10 +-- public/src/admin/manage/ip-blacklist.js | 2 +- public/src/admin/manage/tags.js | 12 +-- public/src/admin/manage/users.js | 18 ++--- public/src/admin/modules/colorpicker.js | 2 +- public/src/admin/modules/instance.js | 10 +-- public/src/admin/modules/search.js | 4 +- public/src/admin/modules/selectable.js | 2 +- public/src/admin/settings.js | 6 +- public/src/admin/settings/cookies.js | 2 +- public/src/ajaxify.js | 16 ++-- public/src/app.js | 46 ++++++------ public/src/client/account/edit.js | 18 ++--- public/src/client/account/edit/email.js | 2 +- public/src/client/account/edit/password.js | 2 +- public/src/client/account/edit/username.js | 2 +- public/src/client/account/header.js | 20 ++--- public/src/client/account/info.js | 4 +- public/src/client/account/posts.js | 2 +- public/src/client/account/profile.js | 4 +- public/src/client/account/settings.js | 2 +- public/src/client/account/topics.js | 2 +- public/src/client/categories.js | 2 +- public/src/client/category.js | 8 +- public/src/client/category/tools.js | 4 +- public/src/client/chats.js | 12 +-- public/src/client/chats/messages.js | 12 +-- public/src/client/chats/recent.js | 2 +- public/src/client/chats/search.js | 2 +- public/src/client/compose.js | 2 +- public/src/client/groups/details.js | 26 +++---- public/src/client/groups/list.js | 12 +-- public/src/client/groups/memberlist.js | 6 +- public/src/client/login.js | 4 +- public/src/client/notifications.js | 2 +- public/src/client/recent.js | 2 +- public/src/client/register.js | 8 +- public/src/client/reset_code.js | 2 +- public/src/client/search.js | 4 +- public/src/client/tag.js | 2 +- public/src/client/tags.js | 4 +- public/src/client/topic.js | 8 +- public/src/client/topic/delete-posts.js | 2 +- public/src/client/topic/events.js | 6 +- public/src/client/topic/flag.js | 2 +- public/src/client/topic/fork.js | 4 +- public/src/client/topic/move.js | 2 +- public/src/client/topic/postTools.js | 26 +++---- public/src/client/topic/posts.js | 6 +- public/src/client/topic/replies.js | 2 +- public/src/client/topic/threadTools.js | 6 +- public/src/client/topic/votes.js | 4 +- public/src/client/unread.js | 2 +- public/src/client/users.js | 2 +- public/src/installer/install.js | 2 +- public/src/modules/autocomplete.js | 18 ++--- public/src/modules/chat.js | 12 +-- public/src/modules/components.js | 2 +- public/src/modules/coverPhoto.js | 8 +- public/src/modules/helpers.js | 4 +- public/src/modules/iconSelect.js | 8 +- public/src/modules/navigator.js | 6 +- public/src/modules/notifications.js | 4 +- public/src/modules/pictureCropper.js | 8 +- public/src/modules/search.js | 12 +-- public/src/modules/settings.js | 24 +++--- public/src/modules/settings/array.js | 6 +- public/src/modules/settings/checkbox.js | 4 +- public/src/modules/settings/key.js | 4 +- public/src/modules/settings/number.js | 2 +- public/src/modules/settings/object.js | 2 +- public/src/modules/settings/select.js | 2 +- public/src/modules/settings/textarea.js | 2 +- public/src/modules/taskbar.js | 4 +- public/src/modules/translator.js | 2 +- public/src/modules/uploader.js | 8 +- public/src/require-config.js | 4 +- public/src/sockets.js | 4 +- public/src/utils.js | 8 +- public/src/widgets.js | 4 +- src/analytics.js | 2 +- src/batch.js | 4 +- src/categories.js | 16 ++-- src/categories/activeusers.js | 2 +- src/categories/create.js | 12 +-- src/categories/data.js | 2 +- src/categories/delete.js | 14 ++-- src/categories/recentreplies.js | 18 ++--- src/categories/topics.js | 8 +- src/categories/update.js | 16 ++-- src/controllers/accounts.js | 2 +- src/controllers/accounts/chats.js | 12 +-- src/controllers/accounts/edit.js | 8 +- src/controllers/accounts/follow.js | 2 +- src/controllers/accounts/groups.js | 2 +- src/controllers/accounts/helpers.js | 4 +- src/controllers/accounts/info.js | 4 +- src/controllers/accounts/notifications.js | 2 +- src/controllers/accounts/posts.js | 22 +++--- src/controllers/accounts/profile.js | 20 ++--- src/controllers/accounts/session.js | 2 +- src/controllers/accounts/settings.js | 26 +++---- src/controllers/admin.js | 4 +- src/controllers/admin/blacklist.js | 2 +- src/controllers/admin/cache.js | 6 +- src/controllers/admin/categories.js | 6 +- src/controllers/admin/dashboard.js | 16 ++-- src/controllers/admin/database.js | 2 +- src/controllers/admin/errors.js | 4 +- src/controllers/admin/events.js | 4 +- src/controllers/admin/flags.js | 6 +- src/controllers/admin/groups.js | 6 +- src/controllers/admin/homepage.js | 14 ++-- src/controllers/admin/info.js | 10 +-- src/controllers/admin/languages.js | 2 +- src/controllers/admin/logs.js | 2 +- src/controllers/admin/plugins.js | 4 +- src/controllers/admin/settings.js | 6 +- src/controllers/admin/social.js | 2 +- src/controllers/admin/sounds.js | 4 +- src/controllers/admin/uploads.js | 4 +- src/controllers/admin/users.js | 16 ++-- src/controllers/api.js | 20 ++--- src/controllers/authentication.js | 18 ++--- src/controllers/categories.js | 16 ++-- src/controllers/category.js | 30 ++++---- src/controllers/groups.js | 22 +++--- src/controllers/helpers.js | 18 ++--- src/controllers/index.js | 40 +++++----- src/controllers/mods.js | 2 +- src/controllers/popular.js | 6 +- src/controllers/recent.js | 10 +-- src/controllers/search.js | 6 +- src/controllers/tags.js | 16 ++-- src/controllers/topics.js | 44 +++++------ src/controllers/unread.js | 10 +-- src/controllers/uploads.js | 12 +-- src/controllers/users.js | 14 ++-- src/database/mongo.js | 26 +++---- src/database/mongo/hash.js | 6 +- src/database/mongo/sets.js | 16 ++-- src/database/mongo/sorted.js | 4 +- src/database/mongo/sorted/intersect.js | 8 +- src/database/mongo/sorted/union.js | 4 +- src/database/redis.js | 12 +-- src/emailer.js | 18 ++--- src/events.js | 10 +-- src/file.js | 4 +- src/groups.js | 26 +++---- src/groups/cover.js | 10 +-- src/groups/create.js | 6 +- src/groups/delete.js | 2 +- src/groups/membership.js | 50 ++++++------- src/groups/ownership.js | 4 +- src/groups/search.js | 6 +- src/groups/update.js | 22 +++--- src/image.js | 6 +- src/install.js | 46 ++++++------ src/logger.js | 2 +- src/messaging.js | 24 +++--- src/messaging/create.js | 10 +-- src/messaging/data.js | 4 +- src/messaging/delete.js | 2 +- src/messaging/edit.js | 8 +- src/messaging/notifications.js | 10 +-- src/messaging/rooms.js | 22 +++--- src/messaging/unread.js | 2 +- src/meta.js | 4 +- src/meta/blacklist.js | 8 +- src/meta/build.js | 6 +- src/meta/configs.js | 10 +-- src/meta/css.js | 8 +- src/meta/dependencies.js | 2 +- src/meta/js.js | 12 +-- src/meta/logs.js | 4 +- src/meta/settings.js | 6 +- src/meta/sounds.js | 8 +- src/meta/tags.js | 40 +++++----- src/meta/templates.js | 6 +- src/meta/themes.js | 8 +- src/middleware/admin.js | 8 +- src/middleware/header.js | 12 +-- src/middleware/headers.js | 2 +- src/middleware/index.js | 12 +-- src/middleware/maintenance.js | 2 +- src/middleware/render.js | 4 +- src/middleware/user.js | 4 +- src/navigation/admin.js | 4 +- src/notifications.js | 18 ++--- src/pagination.js | 6 +- src/plugins.js | 12 +-- src/plugins/hooks.js | 4 +- src/plugins/install.js | 6 +- src/plugins/load.js | 4 +- src/posts.js | 12 +-- src/posts/bookmarks.js | 8 +- src/posts/cache.js | 2 +- src/posts/category.js | 4 +- src/posts/create.js | 8 +- src/posts/delete.js | 26 +++---- src/posts/edit.js | 14 ++-- src/posts/flags.js | 34 ++++----- src/posts/recent.js | 6 +- src/posts/summary.js | 4 +- src/posts/tools.js | 4 +- src/posts/topics.js | 10 +-- src/posts/user.js | 6 +- src/posts/votes.js | 14 ++-- src/privileges.js | 4 +- src/privileges/categories.js | 28 +++---- src/privileges/helpers.js | 6 +- src/privileges/posts.js | 24 +++--- src/privileges/topics.js | 26 +++---- src/privileges/users.js | 8 +- src/reset.js | 6 +- src/rewards/admin.js | 12 +-- src/rewards/index.js | 2 +- src/routes/authentication.js | 6 +- src/routes/debug.js | 2 +- src/routes/feeds.js | 40 +++++----- src/routes/index.js | 4 +- src/search.js | 22 +++--- src/settings.js | 2 +- src/sitemap.js | 28 +++---- src/social.js | 12 +-- src/socket.io/admin.js | 16 ++-- src/socket.io/admin/categories.js | 2 +- src/socket.io/admin/groups.js | 6 +- src/socket.io/admin/rooms.js | 12 +-- src/socket.io/admin/user.js | 16 ++-- src/socket.io/categories.js | 16 ++-- src/socket.io/groups.js | 14 ++-- src/socket.io/helpers.js | 16 ++-- src/socket.io/index.js | 12 +-- src/socket.io/meta.js | 2 +- src/socket.io/modules.js | 28 +++---- src/socket.io/notifications.js | 2 +- src/socket.io/posts.js | 6 +- src/socket.io/posts/edit.js | 6 +- src/socket.io/posts/flag.js | 16 ++-- src/socket.io/posts/helpers.js | 6 +- src/socket.io/posts/move.js | 2 +- src/socket.io/posts/tools.js | 20 ++--- src/socket.io/posts/votes.js | 8 +- src/socket.io/topics/infinitescroll.js | 6 +- src/socket.io/topics/move.js | 4 +- src/socket.io/topics/tags.js | 4 +- src/socket.io/topics/tools.js | 10 +-- src/socket.io/topics/unread.js | 12 +-- src/socket.io/user.js | 28 +++---- src/socket.io/user/ban.js | 16 ++-- src/socket.io/user/picture.js | 16 ++-- src/socket.io/user/profile.js | 16 ++-- src/socket.io/user/search.js | 2 +- src/socket.io/user/status.js | 6 +- src/start.js | 8 +- src/topics.js | 20 ++--- src/topics/bookmarks.js | 4 +- src/topics/create.js | 22 +++--- src/topics/delete.js | 24 +++--- src/topics/follow.js | 18 ++--- src/topics/fork.js | 14 ++-- src/topics/popular.js | 4 +- src/topics/posts.js | 24 +++--- src/topics/recent.js | 16 ++-- src/topics/suggested.js | 8 +- src/topics/tags.js | 40 +++++----- src/topics/teaser.js | 4 +- src/topics/thumb.js | 4 +- src/topics/tools.js | 36 ++++----- src/topics/unread.js | 28 +++---- src/upgrade.js | 10 +-- src/user.js | 26 +++---- src/user/admin.js | 2 +- src/user/approval.js | 24 +++--- src/user/auth.js | 16 ++-- src/user/bans.js | 8 +- src/user/categories.js | 6 +- src/user/create.js | 14 ++-- src/user/delete.js | 26 +++---- src/user/digest.js | 14 ++-- src/user/email.js | 8 +- src/user/follow.js | 10 +-- src/user/info.js | 8 +- src/user/invite.js | 16 ++-- src/user/notifications.js | 16 ++-- src/user/password.js | 2 +- src/user/picture.js | 28 +++---- src/user/posts.js | 4 +- src/user/profile.js | 24 +++--- src/user/reset.js | 20 ++--- src/user/search.js | 4 +- src/user/settings.js | 6 +- src/user/topics.js | 2 +- src/webserver.js | 14 ++-- src/widgets/admin.js | 10 +-- src/widgets/index.js | 10 +-- test/authentication.js | 24 +++--- test/categories.js | 46 ++++++------ test/controllers-admin.js | 4 +- test/controllers.js | 38 +++++----- test/database/hash.js | 8 +- test/database/keys.js | 4 +- test/database/list.js | 8 +- test/database/sets.js | 2 +- test/database/sorted.js | 20 ++--- test/groups.js | 34 ++++----- test/helpers/index.js | 22 +++--- test/messaging.js | 6 +- test/meta.js | 4 +- test/mocks/databasemock.js | 10 +-- test/notifications.js | 12 +-- test/posts.js | 52 ++++++------- test/rewards.js | 8 +- test/search-admin.js | 12 +-- test/search.js | 26 +++---- test/socket.io.js | 12 +-- test/topics.js | 50 ++++++------- test/translator.js | 10 +-- test/uploads.js | 4 +- test/user.js | 40 +++++----- 345 files changed, 1974 insertions(+), 1978 deletions(-) diff --git a/.eslintignore b/.eslintignore index 250640f954..1692d5add2 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,5 +1,4 @@ node_modules/ -public/src/nodebb.min.js *.sublime-project *.sublime-workspace .project @@ -10,8 +9,6 @@ logs/ /public/uploads /public/sounds /public/vendor -/public/nodebb.min.js -/public/acp.min.js /public/src/modules/string.js .idea/ .vscode/ diff --git a/.eslintrc.json b/.eslintrc.json index f64256f73d..28d82dc1ac 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -3,7 +3,7 @@ "rules": { "handle-callback-err": [ "error","^(e$|(e|(.*(_e|E)))rr)" ], - "linebreak-style": "off", + // "linebreak-style": "off", "import/no-unresolved": "off", "import/no-extraneous-dependencies": "off", "one-var": "off", @@ -72,7 +72,7 @@ "no-param-reassign": "off", "consistent-return": "off", "strict": "off", - "comma-dangle": "off", + // "comma-dangle": "off", "no-multi-spaces": "off", "quotes": "off", "keyword-spacing": "off", @@ -100,7 +100,6 @@ "dot-notation": "off", "func-call-spacing": "off", "newline-per-chained-call": "off", - "newline-per-chained-call": "off", "array-bracket-spacing": "off", "object-property-newline": "off", "no-continue": "off", diff --git a/Gruntfile.js b/Gruntfile.js index 85ea76938f..bc1cf50a95 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -70,17 +70,17 @@ module.exports = function (grunt) { 'public/*.less', 'node_modules/nodebb-*/*.less', 'node_modules/nodebb-*/**/*.less', '!node_modules/nodebb-*/node_modules/**', - '!node_modules/nodebb-*/.git/**' + '!node_modules/nodebb-*/.git/**', ], options: { - interval: 1000 - } + interval: 1000, + }, }, lessUpdated_Admin: { files: ['public/**/*.less'], options: { - interval: 1000 - } + interval: 1000, + }, }, clientUpdated: { files: [ @@ -88,28 +88,28 @@ module.exports = function (grunt) { 'node_modules/nodebb-*/*.js', 'node_modules/nodebb-*/**/*.js', '!node_modules/nodebb-*/node_modules/**', 'node_modules/templates.js/lib/templates.js', - '!node_modules/nodebb-*/.git/**' + '!node_modules/nodebb-*/.git/**', ], options: { - interval: 1000 - } + interval: 1000, + }, }, serverUpdated: { files: ['*.js', 'install/*.js', 'src/**/*.js'], options: { - interval: 1000 - } + interval: 1000, + }, }, templatesUpdated: { files: [ 'src/views/**/*.tpl', 'node_modules/nodebb-*/*.tpl', 'node_modules/nodebb-*/**/*.tpl', '!node_modules/nodebb-*/node_modules/**', - '!node_modules/nodebb-*/.git/**' + '!node_modules/nodebb-*/.git/**', ], options: { - interval: 1000 - } + interval: 1000, + }, }, langUpdated: { files: [ @@ -123,10 +123,10 @@ module.exports = function (grunt) { '!node_modules/nodebb-*/theme.json', ], options: { - interval: 1000 - } + interval: 1000, + }, }, - } + }, }); grunt.loadNpmTasks('grunt-contrib-watch'); diff --git a/app.js b/app.js index 57c57d61b6..5c667bc14b 100644 --- a/app.js +++ b/app.js @@ -41,7 +41,7 @@ winston.add(winston.transports.Console, { }, level: nconf.get('log-level') || (global.env === 'production' ? 'info' : 'verbose'), json: (!!nconf.get('json-logging')), - stringify: (!!nconf.get('json-logging')) + stringify: (!!nconf.get('json-logging')), }); @@ -75,7 +75,7 @@ if (nconf.get('setup') || nconf.get('install')) { } else if (nconf.get('reset')) { async.waterfall([ async.apply(require('./src/reset').reset), - async.apply(require('./src/meta/build').buildAll) + async.apply(require('./src/meta/build').buildAll), ], function (err) { process.exit(err ? 1 : 0); }); @@ -93,7 +93,7 @@ function loadConfig(callback) { winston.verbose('* using configuration stored in: %s', configFile); nconf.file({ - file: configFile + file: configFile, }); nconf.defaults({ @@ -101,7 +101,7 @@ function loadConfig(callback) { themes_path: path.join(__dirname, 'node_modules'), upload_path: 'public/uploads', views_dir: path.join(__dirname, 'build/public/templates'), - version: pkg.version + version: pkg.version, }); if (!nconf.get('isCluster')) { @@ -149,7 +149,7 @@ function setup() { async.series([ async.apply(install.setup), async.apply(loadConfig), - async.apply(build.buildAll) + async.apply(build.buildAll), ], function (err, data) { // Disregard build step data data = data[0]; @@ -194,7 +194,7 @@ function upgrade() { async.apply(db.init), async.apply(meta.configs.init), async.apply(upgrade.upgrade), - async.apply(build.buildAll) + async.apply(build.buildAll), ], function (err) { if (err) { winston.error(err.stack); diff --git a/bcrypt.js b/bcrypt.js index 4040aa2a8f..35e36b839f 100644 --- a/bcrypt.js +++ b/bcrypt.js @@ -20,7 +20,7 @@ function hashPassword(password, rounds) { }, function (salt, next) { bcrypt.hash(password, salt, next); - } + }, ], done); } diff --git a/install/databases.js b/install/databases.js index c314ad75ef..7ce33bc1aa 100644 --- a/install/databases.js +++ b/install/databases.js @@ -6,7 +6,7 @@ var winston = require('winston'); var questions = { redis: require('../src/database/redis').questions, - mongo: require('../src/database/mongo').questions + mongo: require('../src/database/mongo').questions, }; module.exports = function (config, callback) { @@ -18,7 +18,7 @@ module.exports = function (config, callback) { }, function (databaseConfig, next) { saveDatabaseConfig(config, databaseConfig, next); - } + }, ], callback); }; @@ -55,7 +55,7 @@ function saveDatabaseConfig(config, databaseConfig, callback) { host: databaseConfig['redis:host'], port: databaseConfig['redis:port'], password: databaseConfig['redis:password'], - database: databaseConfig['redis:database'] + database: databaseConfig['redis:database'], }; if (config.redis.host.slice(0, 1) === '/') { @@ -67,7 +67,7 @@ function saveDatabaseConfig(config, databaseConfig, callback) { port: databaseConfig['mongo:port'], username: databaseConfig['mongo:username'], password: databaseConfig['mongo:password'], - database: databaseConfig['mongo:database'] + database: databaseConfig['mongo:database'], }; } else { return callback(new Error('unknown database : ' + config.database)); diff --git a/install/web.js b/install/web.js index 1bac1577d0..448483d747 100644 --- a/install/web.js +++ b/install/web.js @@ -19,7 +19,7 @@ winston.add(winston.transports.File, { var date = new Date(); return date.getDate() + '/' + (date.getMonth() + 1) + ' ' + date.toTimeString().substr(0,5) + ' [' + global.process.pid + ']'; }, - level: 'verbose' + level: 'verbose', }); var web = {}; @@ -27,7 +27,7 @@ var scripts = [ 'public/vendor/xregexp/xregexp.js', 'public/vendor/xregexp/unicode/unicode-base.js', 'public/src/utils.js', - 'public/src/installer/install.js' + 'public/src/installer/install.js', ]; web.install = function (port) { @@ -39,7 +39,7 @@ web.install = function (port) { app.set('view engine', 'tpl'); app.set('views', path.join(__dirname, '../src/views')); app.use(bodyParser.urlencoded({ - extended: true + extended: true, })); async.parallel([compileLess, compileJS], function () { @@ -66,7 +66,7 @@ function welcome(req, res) { var databases = dbs.map(function (el) { return { name: el, - questions: require('../src/database/' + el).questions + questions: require('../src/database/' + el).questions, }; }); @@ -78,7 +78,7 @@ function welcome(req, res) { error: res.locals.error ? true : false, success: res.locals.success ? true : false, values: req.body, - minimumPasswordLength: defaults.minimumPasswordLength + minimumPasswordLength: defaults.minimumPasswordLength, }); } @@ -90,7 +90,7 @@ function install(req, res) { } var child = require('child_process').fork('app', ['--setup'], { - env: process.env + env: process.env, }); child.on('close', function (data) { @@ -110,7 +110,7 @@ function launch(req, res) { var child = require('child_process').spawn('node', ['loader.js'], { detached: true, - stdio: ['ignore', 'ignore', 'ignore'] + stdio: ['ignore', 'ignore', 'ignore'], }); process.stdout.write('\nStarting NodeBB\n'); @@ -120,7 +120,7 @@ function launch(req, res) { async.parallel([ async.apply(fs.unlink(path.join(__dirname, '../public/installer.css'))), - async.apply(fs.unlink(path.join(__dirname, '../public/installer.min.js'))) + async.apply(fs.unlink(path.join(__dirname, '../public/installer.min.js'))), ], function (err) { if (err) { winston.warn('Unable to remove installer files'); diff --git a/loader.js b/loader.js index 592a15c490..a1effda6c8 100644 --- a/loader.js +++ b/loader.js @@ -12,7 +12,7 @@ var nconf = require('nconf'), pkg = require('./package.json'); nconf.argv().env().file({ - file: path.join(__dirname, '/config.json') + file: path.join(__dirname, '/config.json'), }); var pidFilePath = __dirname + '/pidfile', @@ -22,7 +22,7 @@ var pidFilePath = __dirname + '/pidfile', workers = [], Loader = { - timesStarted: 0 + timesStarted: 0, }; Loader.init = function (callback) { @@ -118,7 +118,7 @@ function forkWorker(index, isPrimary) { var worker = fork('app.js', args, { silent: silent, - env: process.env + env: process.env, }); worker.index = index; @@ -175,7 +175,7 @@ Loader.restart = function () { Loader.reload = function () { workers.forEach(function (worker) { worker.send({ - action: 'reload' + action: 'reload', }); }); }; @@ -222,7 +222,7 @@ fs.open(path.join(__dirname, 'config.json'), 'r', function (err) { require('daemon')({ stdout: process.stdout, - stderr: process.stderr + stderr: process.stderr, }); fs.writeFile(__dirname + '/pidfile', process.pid); @@ -231,7 +231,7 @@ fs.open(path.join(__dirname, 'config.json'), 'r', function (err) { async.series([ Loader.init, Loader.displayStartupMessages, - Loader.start + Loader.start, ], function (err) { if (err) { console.log('[loader] Error during startup: ' + err.message); diff --git a/minifier.js b/minifier.js index 25c0177175..dd367b58a7 100644 --- a/minifier.js +++ b/minifier.js @@ -6,7 +6,7 @@ var fs = require('fs'); var file = require('./src/file'); var Minifier = { - js: {} + js: {}, }; /* Javascript */ @@ -39,7 +39,7 @@ process.on('message', function (payload) { process.send({ type: 'end', // sourceMap: sourceMap, - minified: minified + minified: minified, }); }); break; @@ -52,14 +52,14 @@ function minifyScripts(scripts, callback) { try { var minified = uglifyjs.minify(scripts, { // outSourceMap: "nodebb.min.js.map", - compress: false + compress: false, }); callback(minified.code/*, minified.map*/); } catch(err) { process.send({ type: 'error', - message: err.message + message: err.message, }); } } @@ -69,7 +69,7 @@ function concatenateScripts(scripts, callback) { if (err) { process.send({ type: 'error', - message: err.message + message: err.message, }); return; } diff --git a/public/src/admin/admin.js b/public/src/admin/admin.js index c4d92d63bc..8940d07284 100644 --- a/public/src/admin/admin.js +++ b/public/src/admin/admin.js @@ -14,7 +14,7 @@ message: '[[login:logged-out-due-to-inactivity]]', callback: function () { window.location.reload(); - } + }, }); }, 3600000); } @@ -165,7 +165,7 @@ var bar = $.snackbar({ content: html, timeout: params.timeout || 3000, - htmlAllowed: true + htmlAllowed: true, }); if (params.clickfn) { @@ -182,7 +182,7 @@ 'panel': document.getElementById('panel'), 'menu': document.getElementById('menu'), 'padding': 256, - 'tolerance': 70 + 'tolerance': 70, }); if (env === 'md' || env === 'lg') { @@ -205,12 +205,12 @@ if (env === 'md' || env === 'lg') { slideout.disableTouch(); $('#header').css({ - 'position': 'relative' + 'position': 'relative', }); } else { slideout.enableTouch(); $('#header').css({ - 'position': 'fixed' + 'position': 'fixed', }); } }); @@ -218,7 +218,7 @@ function onOpeningMenu() { $('#header').css({ 'top': $('#panel').position().top * -1 + 'px', - 'position': 'absolute' + 'position': 'absolute', }); } @@ -227,7 +227,7 @@ slideout.on('close', function () { $('#header').css({ 'top': '0px', - 'position': 'fixed' + 'position': 'fixed', }); }); } diff --git a/public/src/admin/advanced/errors.js b/public/src/admin/advanced/errors.js index d4cfccb7bd..56c2612d05 100644 --- a/public/src/admin/advanced/errors.js +++ b/public/src/admin/advanced/errors.js @@ -48,9 +48,9 @@ define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, transl pointHoverBackgroundColor: "#fff", pointBorderColor: "#fff", pointHoverBorderColor: "rgba(186,139,175,1)", - data: ajaxify.data.analytics['not-found'] - } - ] + data: ajaxify.data.analytics['not-found'], + }, + ], }, 'toobusy': { labels: dailyLabels, @@ -63,10 +63,10 @@ define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, transl pointHoverBackgroundColor: "#fff", pointBorderColor: "#fff", pointHoverBorderColor: "rgba(151,187,205,1)", - data: ajaxify.data.analytics['toobusy'] - } - ] - } + data: ajaxify.data.analytics['toobusy'], + }, + ], + }, }; notFoundCanvas.width = $(notFoundCanvas).parent().width(); @@ -78,16 +78,16 @@ define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, transl options: { responsive: true, legend: { - display: false + display: false, }, scales: { yAxes: [{ ticks: { - beginAtZero: true - } - }] - } - } + beginAtZero: true, + }, + }], + }, + }, }); new Chart(tooBusyCanvas.getContext('2d'), { @@ -96,16 +96,16 @@ define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, transl options: { responsive: true, legend: { - display: false + display: false, }, scales: { yAxes: [{ ticks: { - beginAtZero: true - } - }] - } - } + beginAtZero: true, + }, + }], + }, + }, }); }; diff --git a/public/src/admin/appearance/skins.js b/public/src/admin/appearance/skins.js index 35ad5a2289..cbdcb51a82 100644 --- a/public/src/admin/appearance/skins.js +++ b/public/src/admin/appearance/skins.js @@ -8,7 +8,7 @@ define('admin/appearance/skins', ['translator'], function (translator) { // Populate skins from Bootswatch API $.ajax({ method: 'get', - url: 'https://bootswatch.com/api/3.json' + url: 'https://bootswatch.com/api/3.json', }).done(Skins.render); $('#skins').on('click', function (e) { @@ -30,7 +30,7 @@ define('admin/appearance/skins', ['translator'], function (translator) { socket.emit('admin.themes.set', { type: themeType, id: themeId, - src: cssSrc + src: cssSrc, }, function (err) { if (err) { return app.alertError(err.message); @@ -42,7 +42,7 @@ define('admin/appearance/skins', ['translator'], function (translator) { type: 'info', title: '[[admin/appearance/skins:skin-updated]]', message: themeId ? ('[[admin/appearance/skins:applied-success, ' + themeId + ']]') : '[[admin/appearance/skins:revert-success]]', - timeout: 5000 + timeout: 5000, }); }); } @@ -62,10 +62,10 @@ define('admin/appearance/skins', ['translator'], function (translator) { screenshot_url: theme.thumbnail, url: theme.preview, css: theme.cssCdn, - skin: true + skin: true, }; }), - showRevert: true + showRevert: true, }, function (html) { translator.translate(html, function (html) { themeContainer.html(html); diff --git a/public/src/admin/appearance/themes.js b/public/src/admin/appearance/themes.js index 4158f6fef7..ecf90c6882 100644 --- a/public/src/admin/appearance/themes.js +++ b/public/src/admin/appearance/themes.js @@ -18,7 +18,7 @@ define('admin/appearance/themes', ['translator'], function (translator) { socket.emit('admin.themes.set', { type: themeType, id: themeId, - src: cssSrc + src: cssSrc, }, function (err) { if (err) { return app.alertError(err.message); @@ -34,7 +34,7 @@ define('admin/appearance/themes', ['translator'], function (translator) { timeout: 5000, clickfn: function () { socket.emit('admin.restart'); - } + }, }); }); } @@ -45,7 +45,7 @@ define('admin/appearance/themes', ['translator'], function (translator) { if (confirm) { socket.emit('admin.themes.set', { type: 'local', - id: 'nodebb-theme-persona' + id: 'nodebb-theme-persona', }, function (err) { if (err) { return app.alertError(err.message); @@ -56,7 +56,7 @@ define('admin/appearance/themes', ['translator'], function (translator) { type: 'success', title: '[[admin/appearance/themes:theme-changed]]', message: '[[admin/appearance/themes:revert-success]]', - timeout: 3500 + timeout: 3500, }); }); } @@ -75,7 +75,7 @@ define('admin/appearance/themes', ['translator'], function (translator) { return; } else { templates.parse('admin/partials/theme_list', { - themes: themes + themes: themes, }, function (html) { translator.translate(html, function (html) { instListEl.html(html); diff --git a/public/src/admin/extend/plugins.js b/public/src/admin/extend/plugins.js index d3774922c6..73d57d7b1a 100644 --- a/public/src/admin/extend/plugins.js +++ b/public/src/admin/extend/plugins.js @@ -44,7 +44,7 @@ define('admin/extend/plugins', ['jqueryui', 'translator'], function (jqueryui, t require(['admin/modules/instance'], function (instance) { instance.restart(); }); - } + }, }); }); }); @@ -170,7 +170,7 @@ define('admin/extend/plugins', ['jqueryui', 'translator'], function (jqueryui, t btn.attr('disabled', true).find('i').attr('class', 'fa fa-refresh fa-spin'); socket.emit('admin.plugins.upgrade', { id: pluginID, - version: version + version: version, }, function (err, isActive) { if (err) { return app.alertError(err.message); @@ -190,7 +190,7 @@ define('admin/extend/plugins', ['jqueryui', 'translator'], function (jqueryui, t require(['admin/modules/instance'], function (instance) { instance.reload(); }); - } + }, }); } }); @@ -203,7 +203,7 @@ define('admin/extend/plugins', ['jqueryui', 'translator'], function (jqueryui, t socket.emit('admin.plugins.toggleInstall', { id: pluginID, - version: version + version: version, }, function (err, pluginData) { if (err) { btn.removeAttr('disabled'); @@ -217,7 +217,7 @@ define('admin/extend/plugins', ['jqueryui', 'translator'], function (jqueryui, t title: '[[admin/extend/plugins:alert.' + (pluginData.installed ? 'installed' : 'uninstalled') + ']]', message: '[[admin/extend/plugins:alert.' + (pluginData.installed ? 'install-success' : 'uninstall-success') + ']]', type: 'info', - timeout: 5000 + timeout: 5000, }); if (typeof callback === 'function') { @@ -232,9 +232,9 @@ define('admin/extend/plugins', ['jqueryui', 'translator'], function (jqueryui, t type: 'GET', data: { package: pluginId, - version: nbbVersion[0] + version: nbbVersion[0], }, - dataType: 'json' + dataType: 'json', }).done(function (payload) { callback(undefined, payload); }).fail(callback); diff --git a/public/src/admin/extend/rewards.js b/public/src/admin/extend/rewards.js index 8b347101f9..3854568eed 100644 --- a/public/src/admin/extend/rewards.js +++ b/public/src/admin/extend/rewards.js @@ -133,7 +133,7 @@ define('admin/extend/rewards', ['translator'], function (translator) { value: '', claimable: 1, rid: null, - id: null + id: null, }], conditions: conditions, conditionals: conditionals, diff --git a/public/src/admin/extend/widgets.js b/public/src/admin/extend/widgets.js index 6db6b53490..67267df2a1 100644 --- a/public/src/admin/extend/widgets.js +++ b/public/src/admin/extend/widgets.js @@ -35,7 +35,7 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { return $(e.target).parents('.widget-panel').clone(); }, distance: 10, - connectToSortable: ".widget-area" + connectToSortable: ".widget-area", }); $('#widgets .available-containers .containers > [data-container-html]') @@ -46,7 +46,7 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { return target.clone().addClass('block').width(target.width()).css('opacity', '0.5'); }, - distance: 10 + distance: 10, }) .each(function () { $(this).attr('data-container-html', $(this).attr('data-container-html').replace(/\\\{([\s\S]*?)\\\}/g, '{$1}')); @@ -57,7 +57,7 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { createDatePicker(ui.item); appendToggle(ui.item); }, - connectWith: "div" + connectWith: "div", }).on('click', '.delete-widget', function () { var panel = $(this).parents('.widget-panel'); @@ -106,14 +106,14 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { widgets.push({ widget: $(this).attr('data-widget'), - data: widgetData + data: widgetData, }); }); socket.emit('admin.widgets.set', { template: template, location: location, - widgets: widgets + widgets: widgets, }, function (err) { total--; @@ -127,7 +127,7 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { type: 'success', title: '[[admin/extend/widgets:alert.updated]]', message: '[[admin/extend/widgets:alert.update-success]]', - timeout: 2500 + timeout: 2500, }); } @@ -150,7 +150,7 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { .addClass(btn.attr('data-class')); container.attr('data-container-html', container.attr('data-container-html') - .replace(/class="[a-zA-Z0-9-\s]+"/, 'class="' + container[0].className.replace(' pointer ui-draggable', '') + '"') + .replace(/class="[a-zA-Z0-9-\s]+"/, 'class="' + container[0].className.replace(' pointer ui-draggable', '') + '"'), ); }); } @@ -160,7 +160,7 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { el.find('.date-selector').datepicker({ changeMonth: true, changeYear: true, - yearRange: currentYear + ':' + (currentYear + 100) + yearRange: currentYear + ':' + (currentYear + 100), }); } @@ -175,7 +175,7 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { el.find('.panel-body .container-html').val(ui.draggable.attr('data-container-html')); el.find('.panel-body').removeClass('hidden'); }, - hoverClass: "panel-info" + hoverClass: "panel-info", }) .children('.panel-heading') .append('
 
') diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index f9e2589f65..3c4c4eb199 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -5,23 +5,23 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s var Admin = {}; var intervals = { rooms: false, - graphs: false + graphs: false, }; var isMobile = false; var isPrerelease = /^v?\d+\.\d+\.\d+-.+$/; var graphData = { rooms: {}, - traffic: {} + traffic: {}, }; var currentGraph = { units: 'hours', - until: undefined + until: undefined, }; var DEFAULTS = { roomInterval: 10000, graphInterval: 15000, - realtimeInterval: 1500 + realtimeInterval: 1500, }; $(window).on('action:ajaxify.start', function (ev, data) { @@ -123,7 +123,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s traffic: null, registered: null, presence: null, - topics: null + topics: null, }; var topicColors = ["#bf616a","#5B90BF","#d08770","#ebcb8b","#a3be8c","#96b5b4","#8fa1b3","#b48ead","#ab7967","#46BFBD"]; @@ -196,7 +196,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s pointHoverBackgroundColor: "#fff", pointBorderColor: "#fff", pointHoverBorderColor: "rgba(220,220,220,1)", - data: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + data: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], }, { label: translations[1], @@ -206,9 +206,9 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s pointHoverBackgroundColor: "#fff", pointBorderColor: "#fff", pointHoverBorderColor: "rgba(151,187,205,1)", - data: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] - } - ] + data: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + }, + ], }; trafficCanvas.width = $(trafficCanvas).parent().width(); @@ -218,16 +218,16 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s options: { responsive: true, legend: { - display: false + display: false, }, scales: { yAxes: [{ ticks: { - beginAtZero: true - } - }] - } - } + beginAtZero: true, + }, + }], + }, + }, }); graphs.registered = new Chart(registeredCtx, { @@ -237,15 +237,15 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s datasets: [{ data: [1, 1], backgroundColor: ["#F7464A", "#46BFBD"], - hoverBackgroundColor: ["#FF5A5E", "#5AD3D1"] - }] + hoverBackgroundColor: ["#FF5A5E", "#5AD3D1"], + }], }, options: { responsive: true, legend: { - display: false - } - } + display: false, + }, + }, }); graphs.presence = new Chart(presenceCtx, { @@ -255,15 +255,15 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s datasets: [{ data: [1, 1, 1, 1, 1], backgroundColor: ["#F7464A", "#46BFBD", "#FDB45C", "#949FB1", "#9FB194"], - hoverBackgroundColor: ["#FF5A5E", "#5AD3D1", "#FFC870", "#A8B3C5", "#A8B3C5"] - }] + hoverBackgroundColor: ["#FF5A5E", "#5AD3D1", "#FFC870", "#A8B3C5", "#A8B3C5"], + }], }, options: { responsive: true, legend: { - display: false - } - } + display: false, + }, + }, }); graphs.topics = new Chart(topicsCtx, { @@ -273,15 +273,15 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s datasets: [{ data: [], backgroundColor: [], - hoverBackgroundColor: [] - }] + hoverBackgroundColor: [], + }], }, options: { responsive: true, legend: { - display: false - } - } + display: false, + }, + }, }); updateTrafficGraph(); @@ -322,7 +322,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s socket.emit('admin.analytics.get', { graph: 'traffic', units: units || 'hours', - until: until + until: until, }, function (err, data) { if (err) { return app.alertError(err.message); @@ -376,7 +376,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s if (!Object.keys(topics).length) { topics = {"0": { title: "No users browsing", - value: 1 + value: 1, }}; } diff --git a/public/src/admin/general/navigation.js b/public/src/admin/general/navigation.js index 6fa59aff24..163c955e32 100644 --- a/public/src/admin/general/navigation.js +++ b/public/src/admin/general/navigation.js @@ -18,12 +18,12 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun connectToSortable: '#active-navigation', helper: 'clone', distance: 10, - stop: drop + stop: drop, }); }); $('#active-navigation').sortable().droppable({ - accept: $('#available li .drag-item') + accept: $('#available li .drag-item'), }); $('#enabled').on('click', '.iconPicker', function () { diff --git a/public/src/admin/general/sounds.js b/public/src/admin/general/sounds.js index 64926e60db..e258e0db55 100644 --- a/public/src/admin/general/sounds.js +++ b/public/src/admin/general/sounds.js @@ -21,7 +21,7 @@ define('admin/general/sounds', ['sounds', 'settings'], function (Sounds, Setting saveEl.on('click', function () { Settings.save('sounds', $('.sounds form'), function () { socket.emit('admin.fireEvent', { - name: 'event:sounds.reloadMapping' + name: 'event:sounds.reloadMapping', }); app.alertSuccess('[[admin/general/sounds:saved]]'); }); diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js index acb55b82e9..2e78f3a97c 100644 --- a/public/src/admin/manage/categories.js +++ b/public/src/admin/manage/categories.js @@ -38,7 +38,7 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri } templates.parse('admin/partials/categories/create', { - categories: categories + categories: categories, }, function (html) { function submit() { var formData = modal.find('form').serializeObject(); @@ -57,9 +57,9 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri save: { label: '[[global:save]]', className: 'btn-primary', - callback: submit - } - } + callback: submit, + }, + }, }); modal.find('form').on('submit', submit); @@ -78,7 +78,7 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri title: '[[admin/manage/categories:alert.created]]', message: '[[admin/manage/categories:alert.create-success]]', type: 'success', - timeout: 2000 + timeout: 2000, }); ajaxify.go('admin/manage/categories/' + data.cid); @@ -106,7 +106,7 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri cids.forEach(function (cid) { payload[cid] = { - disabled: disabled ? 1 : 0 + disabled: disabled ? 1 : 0, }; }); @@ -132,7 +132,7 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri for(i; i < len; ++i) { modified[list[i]] = { - order: (i + 1) + order: (i + 1), }; } @@ -176,7 +176,7 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri function continueRender() { templates.parse('admin/partials/categories/category-rows', { cid: parentId, - categories: categories + categories: categories, }, function (html) { translator.translate(html, function (html) { container.append(html); @@ -194,7 +194,7 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri dataIdAttr: 'data-cid', ghostClass: "placeholder", onAdd: itemDidAdd, - onEnd: itemDragDidEnd + onEnd: itemDragDidEnd, }); }); }); diff --git a/public/src/admin/manage/category-analytics.js b/public/src/admin/manage/category-analytics.js index 4bd80c305e..95f8093d2f 100644 --- a/public/src/admin/manage/category-analytics.js +++ b/public/src/admin/manage/category-analytics.js @@ -32,9 +32,9 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { pointHoverBackgroundColor: "#fff", pointBorderColor: "#fff", pointHoverBorderColor: "rgba(186,139,175,1)", - data: ajaxify.data.analytics['pageviews:hourly'] - } - ] + data: ajaxify.data.analytics['pageviews:hourly'], + }, + ], }, 'pageviews:daily': { labels: dailyLabels, @@ -47,9 +47,9 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { pointHoverBackgroundColor: "#fff", pointBorderColor: "#fff", pointHoverBorderColor: "rgba(151,187,205,1)", - data: ajaxify.data.analytics['pageviews:daily'] - } - ] + data: ajaxify.data.analytics['pageviews:daily'], + }, + ], }, 'topics:daily': { labels: dailyLabels.slice(-7), @@ -62,9 +62,9 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { pointHoverBackgroundColor: "#fff", pointBorderColor: "#fff", pointHoverBorderColor: "rgba(171,70,66,1)", - data: ajaxify.data.analytics['topics:daily'] - } - ] + data: ajaxify.data.analytics['topics:daily'], + }, + ], }, 'posts:daily': { labels: dailyLabels.slice(-7), @@ -77,10 +77,10 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { pointHoverBackgroundColor: "#fff", pointBorderColor: "#fff", pointHoverBorderColor: "rgba(161,181,108,1)", - data: ajaxify.data.analytics['posts:daily'] - } - ] - } + data: ajaxify.data.analytics['posts:daily'], + }, + ], + }, }; hourlyCanvas.width = $(hourlyCanvas).parent().width(); @@ -95,16 +95,16 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { responsive: true, animation: false, legend: { - display: false + display: false, }, scales: { yAxes: [{ ticks: { - beginAtZero: true - } - }] - } - } + beginAtZero: true, + }, + }], + }, + }, }); new Chart(dailyCanvas.getContext('2d'), { @@ -114,16 +114,16 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { responsive: true, animation: false, legend: { - display: false + display: false, }, scales: { yAxes: [{ ticks: { - beginAtZero: true - } - }] - } - } + beginAtZero: true, + }, + }], + }, + }, }); new Chart(topicsCanvas.getContext('2d'), { @@ -133,16 +133,16 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { responsive: true, animation: false, legend: { - display: false + display: false, }, scales: { yAxes: [{ ticks: { - beginAtZero: true - } - }] - } - } + beginAtZero: true, + }, + }], + }, + }, }); new Chart(postsCanvas.getContext('2d'), { @@ -152,16 +152,16 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { responsive: true, animation: false, legend: { - display: false + display: false, }, scales: { yAxes: [{ ticks: { - beginAtZero: true - } - }] - } - } + beginAtZero: true, + }, + }], + }, + }, }); }; diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js index cb0eb22a35..c4662eecce 100644 --- a/public/src/admin/manage/category.js +++ b/public/src/admin/manage/category.js @@ -6,7 +6,7 @@ define('admin/manage/category', [ 'iconSelect', 'admin/modules/colorpicker', 'autocomplete', - 'translator' + 'translator', ], function (uploader, iconSelect, colorpicker, autocomplete, translator) { var Category = {}; var modified_categories = {}; @@ -41,10 +41,10 @@ define('admin/manage/category', [ title: '[[admin/manage/categories:alert.updated]]', message: translator.compile( 'admin/manage/categories:alert.updated-success', - results.join(', ') + results.join(', '), ), type: 'success', - timeout: 2000 + timeout: 2000, }); } }); @@ -103,7 +103,7 @@ define('admin/manage/category', [ title: 'Updated Categories', message: 'Category IDs ' + result.join(', ') + ' was successfully updated.', type: 'success', - timeout: 2000 + timeout: 2000, }); } }); @@ -117,7 +117,7 @@ define('admin/manage/category', [ bootbox.confirm(translator.compile( 'admin/manage/categories:alert.confirm-purge', - $('form.category').find('input[data-name="name"]').val() + $('form.category').find('input[data-name="name"]').val(), ), function (confirm) { if (!confirm) { return; @@ -152,7 +152,7 @@ define('admin/manage/category', [ uploader.show({ title: '[[admin/manage/categories:alert.upload-image]]', route: config.relative_path + '/api/admin/category/uploadpicture', - params: {cid: cid} + params: {cid: cid}, }, function (imageUrlOnServer) { $('#category-image').val(imageUrlOnServer); var previewBox = inputEl.parent().parent().siblings('.category-preview'); @@ -186,7 +186,7 @@ define('admin/manage/category', [ $('button[data-action="removeParent"]').on('click', function () { var payload = {}; payload[ajaxify.data.category.cid] = { - parentCid: 0 + parentCid: 0, }; socket.emit('admin.categories.update', payload, function (err) { @@ -220,7 +220,7 @@ define('admin/manage/category', [ var tagEl = $('#tag-whitelist'); tagEl.tagsinput({ confirmKeys: [13, 44], - trimValue: true + trimValue: true, }); ajaxify.data.category.tagWhitelist.forEach(function (tag) { @@ -273,7 +273,7 @@ define('admin/manage/category', [ } templates.parse('admin/partials/categories/privileges', { - privileges: privileges + privileges: privileges, }, function (html) { translator.translate(html, function (html) { $('.privilege-table-container').html(html); @@ -310,7 +310,7 @@ define('admin/manage/category', [ cid: ajaxify.data.category.cid, privilege: privilege, set: state, - member: member + member: member, }, function (err) { if (err) { return app.alertError(err.message); @@ -332,11 +332,11 @@ define('admin/manage/category', [ }); templates.parse('partials/category_list', { - categories: categories + categories: categories, }, function (html) { var modal = bootbox.dialog({ message: html, - title: '[[admin/manage/categories:alert.set-parent-category]]' + title: '[[admin/manage/categories:alert.set-parent-category]]', }); modal.find('li[data-cid]').on('click', function () { @@ -344,7 +344,7 @@ define('admin/manage/category', [ payload = {}; payload[ajaxify.data.category.cid] = { - parentCid: parentCid + parentCid: parentCid, }; socket.emit('admin.categories.update', payload, function (err) { @@ -371,7 +371,7 @@ define('admin/manage/category', [ var modal = bootbox.dialog({ title: '[[admin/manage/categories:alert.find-user]]', message: '', - show: true + show: true, }); modal.on('shown.bs.modal', function () { @@ -382,7 +382,7 @@ define('admin/manage/category', [ cid: ajaxify.data.category.cid, privilege: ['find', 'read', 'topics:read'], set: true, - member: ui.item.user.uid + member: ui.item.user.uid, }, function (err) { if (err) { return app.alertError(err.message); @@ -399,7 +399,7 @@ define('admin/manage/category', [ var modal = bootbox.dialog({ title: '[[admin/manage/categories:alert.find-group]]', message: '', - show: true + show: true, }); modal.on('shown.bs.modal', function () { @@ -410,7 +410,7 @@ define('admin/manage/category', [ cid: ajaxify.data.category.cid, privilege: ['groups:find', 'groups:read', 'groups:topics:read'], set: true, - member: ui.item.group.name + member: ui.item.group.name, }, function (err) { if (err) { return app.alertError(err.message); @@ -450,7 +450,7 @@ define('admin/manage/category', [ } templates.parse('admin/partials/categories/select-category', { - categories: categories + categories: categories, }, function (html) { translator.translate(html, function (html) { function submit() { @@ -467,9 +467,9 @@ define('admin/manage/category', [ save: { label: 'Copy', className: 'btn-primary', - callback: submit - } - } + callback: submit, + }, + }, }); modal.find('form').on('submit', submit); diff --git a/public/src/admin/manage/flags.js b/public/src/admin/manage/flags.js index 0bf47060dd..16f928c260 100644 --- a/public/src/admin/manage/flags.js +++ b/public/src/admin/manage/flags.js @@ -5,7 +5,7 @@ define('admin/manage/flags', [ 'autocomplete', 'Chart', 'components', - 'translator' + 'translator', ], function (autocomplete, Chart, components, translator) { var Flags = {}; @@ -105,10 +105,10 @@ define('admin/manage/flags', [ pointHoverBackgroundColor: "#fff", pointBorderColor: "#fff", pointHoverBorderColor: "rgba(151,187,205,1)", - data: ajaxify.data.analytics - } - ] - } + data: ajaxify.data.analytics, + }, + ], + }, }; dailyCanvas.width = $(dailyCanvas).parent().width(); @@ -119,16 +119,16 @@ define('admin/manage/flags', [ responsive: true, animation: false, legend: { - display: false + display: false, }, scales: { yAxes: [{ ticks: { - beginAtZero: true - } - }] - } - } + beginAtZero: true, + }, + }], + }, + }, }); } @@ -162,7 +162,7 @@ define('admin/manage/flags', [ socket.emit('posts.updateFlag', { pid: pid, - data: formData + data: formData, }, function (err) { if (err) { return app.alertError(err.message); diff --git a/public/src/admin/manage/group.js b/public/src/admin/manage/group.js index a64ca9dd63..150b1d2315 100644 --- a/public/src/admin/manage/group.js +++ b/public/src/admin/manage/group.js @@ -5,7 +5,7 @@ define('admin/manage/group', [ 'forum/groups/memberlist', 'iconSelect', 'admin/modules/colorpicker', - 'translator' + 'translator', ], function (memberList, iconSelect, colorpicker, translator) { var Groups = {}; @@ -59,7 +59,7 @@ define('admin/manage/group', [ 'data-userslug': results.users[x].userslug, 'data-picture': results.users[x].picture, 'data-usericon-bgColor': results.users[x]['icon:bgColor'], - 'data-usericon-text': results.users[x]['icon:text'] + 'data-usericon-text': results.users[x]['icon:text'], }) .append(results.users[x].picture ? $('').addClass('avatar avatar-sm').attr('src', results.users[x].picture) : @@ -81,7 +81,7 @@ define('admin/manage/group', [ socket.emit('admin.groups.join', { groupName: groupName, - uid: uid + uid: uid, }, function (err) { if (err) { return app.alertError(err.message); @@ -93,7 +93,7 @@ define('admin/manage/group', [ userslug: userLabel.attr('data-userslug'), picture: userLabel.attr('data-picture'), "icon:bgColor": userLabel.attr('data-usericon-bgColor'), - "icon:text": userLabel.attr('data-usericon-text') + "icon:text": userLabel.attr('data-usericon-text'), }; templates.parse('partials/groups/memberlist', 'members', {group: {isOwner: ajaxify.data.group.isOwner, members: [member]}}, function (html) { @@ -116,7 +116,7 @@ define('admin/manage/group', [ case 'toggleOwnership': socket.emit('groups.' + (isOwner ? 'rescind' : 'grant'), { toUid: uid, - groupName: groupName + groupName: groupName, }, function (err) { if (err) { return app.alertError(err.message); @@ -132,7 +132,7 @@ define('admin/manage/group', [ } socket.emit('admin.groups.leave', { uid: uid, - groupName: groupName + groupName: groupName, }, function (err) { if (err) { return app.alertError(err.message); @@ -167,8 +167,8 @@ define('admin/manage/group', [ userTitleEnabled: $('#group-userTitleEnabled').is(':checked'), private: $('#group-private').is(':checked'), hidden: $('#group-hidden').is(':checked'), - disableJoinRequests: $('#group-disableJoinRequests').is(':checked') - } + disableJoinRequests: $('#group-disableJoinRequests').is(':checked'), + }, }, function (err) { if (err) { return app.alertError(err.message); diff --git a/public/src/admin/manage/groups.js b/public/src/admin/manage/groups.js index 5c30e7f3cd..e63b78b8c7 100644 --- a/public/src/admin/manage/groups.js +++ b/public/src/admin/manage/groups.js @@ -30,7 +30,7 @@ define('admin/manage/groups', ['translator'], function (translator) { createModalGo.on('click', function () { var submitObj = { name: createGroupName.val(), - description: $('#create-group-desc').val() + description: $('#create-group-desc').val(), }, errorText; @@ -61,7 +61,7 @@ define('admin/manage/groups', ['translator'], function (translator) { bootbox.confirm('[[admin/manage/groups:alerts.confirm-delete]]', function (confirm) { if (confirm) { socket.emit('groups.delete', { - groupName: groupName + groupName: groupName, }, function (err, data) { if(err) { return app.alertError(err.message); @@ -86,15 +86,15 @@ define('admin/manage/groups', ['translator'], function (translator) { socket.emit('groups.search', { query: queryEl.val(), options: { - sort: 'date' - } + sort: 'date', + }, }, function (err, groups) { if (err) { return app.alertError(err.message); } templates.parse('admin/manage/groups', 'groups', { - groups: groups + groups: groups, }, function (html) { translator.translate(html, function (html) { groupsEl.find('[data-groupname]').remove(); diff --git a/public/src/admin/manage/ip-blacklist.js b/public/src/admin/manage/ip-blacklist.js index 321bc9fac1..637dd5ebe9 100644 --- a/public/src/admin/manage/ip-blacklist.js +++ b/public/src/admin/manage/ip-blacklist.js @@ -27,7 +27,7 @@ define('admin/manage/ip-blacklist', ['translator'], function (translator) { $('[data-action="test"]').on('click', function () { socket.emit('blacklist.validate', { - rules: blacklist.val() + rules: blacklist.val(), }, function (err, data) { if (err) { return app.alertError(err.message); diff --git a/public/src/admin/manage/tags.js b/public/src/admin/manage/tags.js index 9984c8182d..1116feed7c 100644 --- a/public/src/admin/manage/tags.js +++ b/public/src/admin/manage/tags.js @@ -4,7 +4,7 @@ define('admin/manage/tags', [ 'forum/infinitescroll', 'admin/modules/selectable', - 'admin/modules/colorpicker' + 'admin/modules/colorpicker', ], function (infinitescroll, selectable, colorpicker) { var Tags = {}, timeoutId = 0; @@ -38,7 +38,7 @@ define('admin/manage/tags', [ createModalGo.on('click', function () { socket.emit('admin.tags.create', { - tag: createTagName.val() + tag: createTagName.val(), }, function (err) { if (err) { return app.alertError(err.message); @@ -109,9 +109,9 @@ define('admin/manage/tags', [ save(tag); }); - } - } - } + }, + }, + }, }); handleColorPickers(modal); @@ -156,7 +156,7 @@ define('admin/manage/tags', [ var data = { tag: tag.attr('data-tag'), bgColor : tag.find('[data-name="bgColor"]').val(), - color : tag.find('[data-name="color"]').val() + color : tag.find('[data-name="color"]').val(), }; socket.emit('admin.tags.update', data, function (err) { diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js index 192dec7501..858baaff75 100644 --- a/public/src/admin/manage/users.js +++ b/public/src/admin/manage/users.js @@ -91,7 +91,7 @@ define('admin/manage/users', ['translator'], function (translator) { buttons: { close: { label: '[[global:close]]', - className: 'btn-link' + className: 'btn-link', }, submit: { label: '[[admin/manage/users:alerts.button-ban-x, ' + uids.length + ']]', @@ -102,9 +102,9 @@ define('admin/manage/users', ['translator'], function (translator) { }, {}); var until = formData.length ? (Date.now() + formData.length * 1000 * 60 * 60 * (parseInt(formData.unit, 10) ? 24 : 1)) : 0; socket.emit('user.banUsers', { uids: uids, until: until, reason: formData.reason }, done('[[admin/manage/users:alerts.ban-success]]', '.ban', true)); - } - } - } + }, + }, + }, }); }); }); @@ -266,7 +266,7 @@ define('admin/manage/users', ['translator'], function (translator) { buttons: { cancel: { label: '[[admin/manage/users:alerts.button-cancel]]', - className: 'btn-link' + className: 'btn-link', }, create: { label: '[[admin/manage/users:alerts.button-create]]', @@ -274,9 +274,9 @@ define('admin/manage/users', ['translator'], function (translator) { callback: function () { createUser.call(this); return false; - } - } - } + }, + }, + }, }); }); }); @@ -298,7 +298,7 @@ define('admin/manage/users', ['translator'], function (translator) { var user = { username: username, email: email, - password: password + password: password, }; socket.emit('admin.user.createUser', user, function (err) { diff --git a/public/src/admin/modules/colorpicker.js b/public/src/admin/modules/colorpicker.js index 47e129249a..84dbc5f052 100644 --- a/public/src/admin/modules/colorpicker.js +++ b/public/src/admin/modules/colorpicker.js @@ -19,7 +19,7 @@ define('admin/modules/colorpicker', function () { }, onShow: function (colpkr) { $(colpkr).css('z-index', 1051); - } + }, }); }); }; diff --git a/public/src/admin/modules/instance.js b/public/src/admin/modules/instance.js index 0b74ef3405..89e627d639 100644 --- a/public/src/admin/modules/instance.js +++ b/public/src/admin/modules/instance.js @@ -11,7 +11,7 @@ define('admin/modules/instance', function () { type: 'info', title: 'Reloading... ', message: 'NodeBB is reloading.', - timeout: 5000 + timeout: 5000, }); $(window).one('action:reconnected', function () { @@ -20,7 +20,7 @@ define('admin/modules/instance', function () { type: 'success', title: ' Success', message: 'NodeBB has reloaded successfully.', - timeout: 5000 + timeout: 5000, }); if (typeof callback === 'function') { @@ -37,7 +37,7 @@ define('admin/modules/instance', function () { type: 'info', title: 'Rebuilding... ', message: 'NodeBB is rebuilding front-end assets (css, javascript, etc).', - timeout: 10000 + timeout: 10000, }); $(window).one('action:reconnected', function () { @@ -46,7 +46,7 @@ define('admin/modules/instance', function () { type: 'success', title: ' Success', message: 'NodeBB has successfully restarted.', - timeout: 10000 + timeout: 10000, }); if (typeof callback === 'function') { @@ -60,7 +60,7 @@ define('admin/modules/instance', function () { type: 'info', title: 'Build Complete!... ', message: 'NodeBB is reloading.', - timeout: 10000 + timeout: 10000, }); }); }; diff --git a/public/src/admin/modules/search.js b/public/src/admin/modules/search.js index 29379f0dac..abdfed2936 100644 --- a/public/src/admin/modules/search.js +++ b/public/src/admin/modules/search.js @@ -21,7 +21,7 @@ define('admin/modules/search', ['mousetrap'], function (mousetrap) { // and wrap the match in a `.search-match` element .replace( new RegExp('^[\\s\\S]*?(.{0,25})(' + term + ')(.{0,25})[\\s\\S]*?$', 'gmi'), - '...$1$2$3...
' + '...$1$2$3...
', ) // collapse whitespace .replace(/(?:\n ?)+/g, '\n') @@ -29,7 +29,7 @@ define('admin/modules/search', ['mousetrap'], function (mousetrap) { title = title.replace( new RegExp('(^.*?)(' + term + ')(.*?$)', 'gi'), - '$1$2$3' + '$1$2$3', ); return '
  • [[admin/extend/plugins:none-found]]

  • ', function (html) { diff --git a/public/src/admin/extend/rewards.js b/public/src/admin/extend/rewards.js index 3854568eed..f02f106f64 100644 --- a/public/src/admin/extend/rewards.js +++ b/public/src/admin/extend/rewards.js @@ -5,10 +5,10 @@ define('admin/extend/rewards', ['translator'], function (translator) { var rewards = {}; - var available, - active, - conditions, - conditionals; + var available; + var active; + var conditions; + var conditionals; rewards.init = function () { available = ajaxify.data.rewards; @@ -25,8 +25,8 @@ define('admin/extend/rewards', ['translator'], function (translator) { update($(this)); }) .on('click', '.delete', function () { - var parent = $(this).parents('[data-id]'), - id = parent.attr('data-id'); + var parent = $(this).parents('[data-id]'); + var id = parent.attr('data-id'); socket.emit('admin.rewards.delete', {id: id}, function (err) { if (err) { @@ -40,9 +40,9 @@ define('admin/extend/rewards', ['translator'], function (translator) { return false; }) .on('click', '.toggle', function () { - var btn = $(this), - disabled = btn.hasClass('btn-success'), - id = $(this).parents('[data-id]').attr('data-id'); + var btn = $(this); + var disabled = btn.hasClass('btn-success'); + var id = $(this).parents('[data-id]').attr('data-id'); btn.toggleClass('btn-warning').toggleClass('btn-success').translateHtml('[[admin/extend/rewards:' + disabled ? 'disable' : 'enable' + ']]'); // send disable api call return false; @@ -73,10 +73,10 @@ define('admin/extend/rewards', ['translator'], function (translator) { } function selectReward(el) { - var parent = el.parents('[data-rid]'), - div = parent.find('.inputs'), - inputs, - html = ''; + var parent = el.parents('[data-rid]'); + var div = parent.find('.inputs'); + var inputs; + var html = ''; for (var reward in available) { if (available.hasOwnProperty(reward)) { @@ -113,8 +113,8 @@ define('admin/extend/rewards', ['translator'], function (translator) { function populateInputs() { $('[data-rid]').each(function (i) { - var div = $(this).find('.inputs'), - rewards = active[i].rewards; + var div = $(this).find('.inputs'); + var rewards = active[i].rewards; for (var reward in rewards) { if (rewards.hasOwnProperty(reward)) { @@ -153,9 +153,9 @@ define('admin/extend/rewards', ['translator'], function (translator) { var activeRewards = []; $('#active li').each(function () { - var data = {rewards: {}}, - main = $(this).find('form.main').serializeArray(), - rewards = $(this).find('form.rewards').serializeArray(); + var data = {rewards: {}}; + var main = $(this).find('form.main').serializeArray(); + var rewards = $(this).find('form.rewards').serializeArray(); main.forEach(function (obj) { data[obj.name] = obj.value; diff --git a/public/src/admin/extend/widgets.js b/public/src/admin/extend/widgets.js index 67267df2a1..a57a82ab57 100644 --- a/public/src/admin/extend/widgets.js +++ b/public/src/admin/extend/widgets.js @@ -80,14 +80,14 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { $('#widgets [data-template][data-location]').each(function (i, el) { el = $(el); - var template = el.attr('data-template'), - location = el.attr('data-location'), - area = el.children('.widget-area'), - widgets = []; + var template = el.attr('data-template'); + var location = el.attr('data-location'); + var area = el.children('.widget-area'); + var widgets = []; area.find('.widget-panel[data-widget]').each(function () { - var widgetData = {}, - data = $(this).find('form').serializeArray(); + var widgetData = {}; + var data = $(this).find('form').serializeArray(); for (var d in data) { if (data.hasOwnProperty(d)) { @@ -136,10 +136,10 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { } $('.color-selector').on('click', '.btn', function () { - var btn = $(this), - selector = btn.parents('.color-selector'), - container = selector.parents('[data-container-html]'), - classList = []; + var btn = $(this); + var selector = btn.parents('.color-selector'); + var container = selector.parents('[data-container-html]'); + var classList = []; selector.children().each(function () { classList.push($(this).attr('data-class')); @@ -150,7 +150,7 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { .addClass(btn.attr('data-class')); container.attr('data-container-html', container.attr('data-container-html') - .replace(/class="[a-zA-Z0-9-\s]+"/, 'class="' + container[0].className.replace(' pointer ui-draggable', '') + '"'), + .replace(/class="[a-zA-Z0-9-\s]+"/, 'class="' + container[0].className.replace(' pointer ui-draggable', '') + '"') ); }); } @@ -191,8 +191,8 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { } widget.find('input, textarea, select').each(function () { - var input = $(this), - value = data[input.attr('name')]; + var input = $(this); + var value = data[input.attr('name')]; if (input.attr('type') === 'checkbox') { input.prop('checked', !!value).trigger('change'); @@ -208,14 +208,14 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { var areas = data.areas; for(var i = 0; i < areas.length; ++i) { - var area = areas[i], - widgetArea = $('#widgets .area[data-template="' + area.template + '"][data-location="' + area.location + '"]').find('.widget-area'); + var area = areas[i]; + var widgetArea = $('#widgets .area[data-template="' + area.template + '"][data-location="' + area.location + '"]').find('.widget-area'); widgetArea.html(''); for (var k = 0; k < area.data.length; ++k) { - var widgetData = area.data[k], - widgetEl = $('.available-widgets [data-widget="' + widgetData.widget + '"]').clone(true).removeClass('hide'); + var widgetData = area.data[k]; + var widgetEl = $('.available-widgets [data-widget="' + widgetData.widget + '"]').clone(true).removeClass('hide'); widgetArea.append(populateWidget(widgetEl, widgetData.data)); appendToggle(widgetEl); diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index 3c4c4eb199..4af4d0d579 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -51,10 +51,10 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s return !isPrerelease.test(version.name); // filter out automated prerelease versions }); - var version = $('#version').html(), - latestVersion = releases[0].name.slice(1), - checkEl = $('.version-check'), - text; + var version = $('#version').html(); + var latestVersion = releases[0].name.slice(1); + var checkEl = $('.version-check'); + var text; // Alter box colour accordingly if (semver.eq(latestVersion, version)) { @@ -159,15 +159,15 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s } function setupGraphs() { - var trafficCanvas = document.getElementById('analytics-traffic'), - registeredCanvas = document.getElementById('analytics-registered'), - presenceCanvas = document.getElementById('analytics-presence'), - topicsCanvas = document.getElementById('analytics-topics'), - trafficCtx = trafficCanvas.getContext('2d'), - registeredCtx = registeredCanvas.getContext('2d'), - presenceCtx = presenceCanvas.getContext('2d'), - topicsCtx = topicsCanvas.getContext('2d'), - trafficLabels = utils.getHoursArray(); + var trafficCanvas = document.getElementById('analytics-traffic'); + var registeredCanvas = document.getElementById('analytics-registered'); + var presenceCanvas = document.getElementById('analytics-presence'); + var topicsCanvas = document.getElementById('analytics-topics'); + var trafficCtx = trafficCanvas.getContext('2d'); + var registeredCtx = registeredCanvas.getContext('2d'); + var presenceCtx = presenceCanvas.getContext('2d'); + var topicsCtx = topicsCanvas.getContext('2d'); + var trafficLabels = utils.getHoursArray(); if (isMobile) { Chart.defaults.global.tooltips.enabled = false; diff --git a/public/src/admin/general/navigation.js b/public/src/admin/general/navigation.js index 163c955e32..63f4ff26a4 100644 --- a/public/src/admin/general/navigation.js +++ b/public/src/admin/general/navigation.js @@ -2,8 +2,8 @@ /* global define, app, ajaxify, socket, templates */ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], function (translator, iconSelect, jqueryui) { - var navigation = {}, - available; + var navigation = {}; + var available; navigation.init = function () { available = ajaxify.data.available; @@ -61,9 +61,9 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun } function drop(ev, ui) { - var id = ui.helper.attr('data-id'), - el = $('#active-navigation [data-id="' + id + '"]'), - data = id === 'custom' ? {iconClass: 'fa-navicon'} : available[id]; + var id = ui.helper.attr('data-id'); + var el = $('#active-navigation [data-id="' + id + '"]'); + var data = id === 'custom' ? {iconClass: 'fa-navicon'} : available[id]; data.enabled = false; data.index = (parseInt($('#enabled').children().last().attr('data-index'), 10) || 0) + 1; @@ -95,9 +95,9 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun indices.forEach(function (index) { var el = $('#enabled').children('[data-index="' + index + '"]'); - var form = el.find('form').serializeArray(), - data = {}, - properties = {}; + var form = el.find('form').serializeArray(); + var data = {}; + var properties = {}; form.forEach(function (input) { if (input.name.slice(0, 9) === 'property:' && input.value === 'on') { @@ -135,8 +135,8 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun } function toggle() { - var btn = $(this), - disabled = btn.hasClass('btn-success'); + var btn = $(this); + var disabled = btn.hasClass('btn-success'); translator.translate(disabled ? '[[admin/general/navigation:btn.disable]]' : '[[admin/general/navigation:btn.enable]]', function (html) { btn.toggleClass('btn-warning').toggleClass('btn-success').html(html); btn.parents('li').find('[name="enabled"]').val(disabled ? 'on' : ''); diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js index 2e78f3a97c..7004854649 100644 --- a/public/src/admin/manage/categories.js +++ b/public/src/admin/manage/categories.js @@ -2,7 +2,9 @@ /*global define, socket, app, bootbox, templates, ajaxify, Sortable */ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-serializeobject.min', 'translator'], function (serialize, translator) { - var Categories = {}, newCategoryId = -1, sortables; + var Categories = {}; + var newCategoryId = -1; + var sortables; Categories.init = function () { socket.emit('admin.categories.getAll', function (error, payload) { @@ -17,10 +19,10 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri // Enable/Disable toggle events $('.categories').on('click', 'button[data-action="toggle"]', function () { - var $this = $(this), - cid = $this.attr('data-cid'), - parentEl = $this.parents('li[data-cid="' + cid + '"]'), - disabled = parentEl.hasClass('disabled'); + var $this = $(this); + var cid = $this.attr('data-cid'); + var parentEl = $this.parents('li[data-cid="' + cid + '"]'); + var disabled = parentEl.hasClass('disabled'); var children = parentEl.find('li[data-cid]').map(function () { return $(this).attr('data-cid'); @@ -127,8 +129,11 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri //Update needed? if((e.newIndex != undefined && e.oldIndex != e.newIndex) || isCategoryUpdate) { - var parentCategory = isCategoryUpdate ? sortables[newCategoryId] : sortables[e.from.dataset.cid], - modified = {}, i = 0, list = parentCategory.toArray(), len = list.length; + var parentCategory = isCategoryUpdate ? sortables[newCategoryId] : sortables[e.from.dataset.cid]; + var modified = {}; + var i = 0; + var list = parentCategory.toArray(); + var len = list.length; for(i; i < len; ++i) { modified[list[i]] = { diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js index c4662eecce..527a66c3ed 100644 --- a/public/src/admin/manage/category.js +++ b/public/src/admin/manage/category.js @@ -41,7 +41,7 @@ define('admin/manage/category', [ title: '[[admin/manage/categories:alert.updated]]', message: translator.compile( 'admin/manage/categories:alert.updated-success', - results.join(', '), + results.join(', ') ), type: 'success', timeout: 2000, @@ -58,8 +58,8 @@ define('admin/manage/category', [ }); function enableColorPicker(idx, inputEl) { - var $inputEl = $(inputEl), - previewEl = $inputEl.parents('[data-cid]').find('.category-preview'); + var $inputEl = $(inputEl); + var previewEl = $inputEl.parents('[data-cid]').find('.category-preview'); colorpicker.enable($inputEl, function (hsb, hex) { if ($inputEl.attr('data-name') === 'bgColor') { @@ -117,7 +117,7 @@ define('admin/manage/category', [ bootbox.confirm(translator.compile( 'admin/manage/categories:alert.confirm-purge', - $('form.category').find('input[data-name="name"]').val(), + $('form.category').find('input[data-name="name"]').val() ), function (confirm) { if (!confirm) { return; @@ -233,13 +233,13 @@ define('admin/manage/category', [ Category.setupPrivilegeTable = function () { $('.privilege-table-container').on('change', 'input[type="checkbox"]', function () { - var checkboxEl = $(this), - privilege = checkboxEl.parent().attr('data-privilege'), - state = checkboxEl.prop('checked'), - rowEl = checkboxEl.parents('tr'), - member = rowEl.attr('data-group-name') || rowEl.attr('data-uid'), - isPrivate = parseInt(rowEl.attr('data-private') || 0, 10), - isGroup = rowEl.attr('data-group-name') !== undefined; + var checkboxEl = $(this); + var privilege = checkboxEl.parent().attr('data-privilege'); + var state = checkboxEl.prop('checked'); + var rowEl = checkboxEl.parents('tr'); + var member = rowEl.attr('data-group-name') || rowEl.attr('data-uid'); + var isPrivate = parseInt(rowEl.attr('data-private') || 0, 10); + var isGroup = rowEl.attr('data-group-name') !== undefined; if (member) { if (isGroup && privilege === 'groups:moderate' && !isPrivate && state) { @@ -340,8 +340,8 @@ define('admin/manage/category', [ }); modal.find('li[data-cid]').on('click', function () { - var parentCid = $(this).attr('data-cid'), - payload = {}; + var parentCid = $(this).attr('data-cid'); + var payload = {}; payload[ajaxify.data.category.cid] = { parentCid: parentCid, diff --git a/public/src/admin/manage/group.js b/public/src/admin/manage/group.js index 150b1d2315..973c20fd83 100644 --- a/public/src/admin/manage/group.js +++ b/public/src/admin/manage/group.js @@ -10,13 +10,13 @@ define('admin/manage/group', [ var Groups = {}; Groups.init = function () { - var groupDetailsSearch = $('#group-details-search'), - groupDetailsSearchResults = $('#group-details-search-results'), - groupIcon = $('#group-icon'), - changeGroupUserTitle = $('#change-group-user-title'), - changeGroupLabelColor = $('#change-group-label-color'), - groupLabelPreview = $('#group-label-preview'), - searchDelay; + var groupDetailsSearch = $('#group-details-search'); + var groupDetailsSearchResults = $('#group-details-search-results'); + var groupIcon = $('#group-icon'); + var changeGroupUserTitle = $('#change-group-user-title'); + var changeGroupLabelColor = $('#change-group-label-color'); + var groupLabelPreview = $('#group-label-preview'); + var searchDelay; var groupName = ajaxify.data.group.name; @@ -38,12 +38,13 @@ define('admin/manage/group', [ } searchDelay = setTimeout(function () { - var searchText = groupDetailsSearch.val(), - foundUser; + var searchText = groupDetailsSearch.val(); + var foundUser; socket.emit('admin.user.search', {query: searchText}, function (err, results) { if (!err && results && results.users.length > 0) { - var numResults = results.users.length, x; + var numResults = results.users.length; + var x; if (numResults > 20) { numResults = 20; } @@ -76,8 +77,8 @@ define('admin/manage/group', [ }); groupDetailsSearchResults.on('click', 'li[data-uid]', function () { - var userLabel = $(this), - uid = parseInt(userLabel.attr('data-uid'), 10); + var userLabel = $(this); + var uid = parseInt(userLabel.attr('data-uid'), 10); socket.emit('admin.groups.join', { groupName: groupName, @@ -105,12 +106,12 @@ define('admin/manage/group', [ }); $('[component="groups/members"]').on('click', '[data-action]', function () { - var btnEl = $(this), - userRow = btnEl.parents('[data-uid]'), - ownerFlagEl = userRow.find('.member-name i'), - isOwner = !ownerFlagEl.hasClass('invisible') ? true : false, - uid = userRow.attr('data-uid'), - action = btnEl.attr('data-action'); + var btnEl = $(this); + var userRow = btnEl.parents('[data-uid]'); + var ownerFlagEl = userRow.find('.member-name i'); + var isOwner = !ownerFlagEl.hasClass('invisible') ? true : false; + var uid = userRow.attr('data-uid'); + var action = btnEl.attr('data-action'); switch(action) { case 'toggleOwnership': diff --git a/public/src/admin/manage/groups.js b/public/src/admin/manage/groups.js index e63b78b8c7..58488bde7c 100644 --- a/public/src/admin/manage/groups.js +++ b/public/src/admin/manage/groups.js @@ -7,10 +7,10 @@ define('admin/manage/groups', ['translator'], function (translator) { var intervalId = 0; Groups.init = function () { - var createModal = $('#create-modal'), - createGroupName = $('#create-group-name'), - createModalGo = $('#create-modal-go'), - createModalError = $('#create-modal-error'); + var createModal = $('#create-modal'); + var createGroupName = $('#create-group-name'); + var createModalGo = $('#create-modal-go'); + var createModalError = $('#create-modal-error'); handleSearch(); @@ -29,10 +29,10 @@ define('admin/manage/groups', ['translator'], function (translator) { createModalGo.on('click', function () { var submitObj = { - name: createGroupName.val(), - description: $('#create-group-desc').val(), - }, - errorText; + name: createGroupName.val(), + description: $('#create-group-desc').val(), + }; + var errorText; socket.emit('admin.groups.create', submitObj, function (err) { if (err) { @@ -52,9 +52,9 @@ define('admin/manage/groups', ['translator'], function (translator) { }); $('.groups-list').on('click', 'button[data-action]', function () { - var el = $(this), - action = el.attr('data-action'), - groupName = el.parents('tr[data-groupname]').attr('data-groupname'); + var el = $(this); + var action = el.attr('data-action'); + var groupName = el.parents('tr[data-groupname]').attr('data-groupname'); switch (action) { case 'delete': diff --git a/public/src/admin/manage/registration.js b/public/src/admin/manage/registration.js index 864ce2bf86..230a02b1d8 100644 --- a/public/src/admin/manage/registration.js +++ b/public/src/admin/manage/registration.js @@ -30,9 +30,9 @@ define('admin/manage/registration', function () { var method = 'admin.user.deleteInvitation'; var removeRow = function () { - var nextRow = parent.next(), - thisRowinvitedBy = parent.find('.invited-by'), - nextRowInvitedBy = nextRow.find('.invited-by'); + var nextRow = parent.next(); + var thisRowinvitedBy = parent.find('.invited-by'); + var nextRowInvitedBy = nextRow.find('.invited-by'); if (nextRowInvitedBy.html() !== undefined && nextRowInvitedBy.html().length < 2) { nextRowInvitedBy.html(thisRowinvitedBy.html()); } diff --git a/public/src/admin/manage/tags.js b/public/src/admin/manage/tags.js index 1116feed7c..b9001dabc2 100644 --- a/public/src/admin/manage/tags.js +++ b/public/src/admin/manage/tags.js @@ -6,8 +6,8 @@ define('admin/manage/tags', [ 'admin/modules/selectable', 'admin/modules/colorpicker', ], function (infinitescroll, selectable, colorpicker) { - var Tags = {}, - timeoutId = 0; + var Tags = {}; + var timeoutId = 0; Tags.init = function () { selectable.enable('.tag-management', '.tag-row'); @@ -85,8 +85,8 @@ define('admin/manage/tags', [ return; } - var firstTag = $(tagsToModify[0]), - title = tagsToModify.length > 1 ? '[[admin/manage/tags:alerts.editing-multiple]]' : '[[admin/manage/tags:alerts.editing-x, ' + firstTag.find('.tag-item').text() + ']]'; + var firstTag = $(tagsToModify[0]); + var title = tagsToModify.length > 1 ? '[[admin/manage/tags:alerts.editing-multiple]]' : '[[admin/manage/tags:alerts.editing-x, ' + firstTag.find('.tag-item').text() + ']]'; var modal = bootbox.dialog({ title: title, @@ -96,9 +96,9 @@ define('admin/manage/tags', [ label: "Save", className: "btn-primary save", callback: function () { - var modal = $('.bootbox'), - bgColor = modal.find('[data-name="bgColor"]').val(), - color = modal.find('[data-name="color"]').val(); + var modal = $('.bootbox'); + var bgColor = modal.find('[data-name="bgColor"]').val(); + var color = modal.find('[data-name="color"]').val(); tagsToModify.each(function (idx, tag) { tag = $(tag); diff --git a/public/src/admin/modules/search.js b/public/src/admin/modules/search.js index abdfed2936..29379f0dac 100644 --- a/public/src/admin/modules/search.js +++ b/public/src/admin/modules/search.js @@ -21,7 +21,7 @@ define('admin/modules/search', ['mousetrap'], function (mousetrap) { // and wrap the match in a `.search-match` element .replace( new RegExp('^[\\s\\S]*?(.{0,25})(' + term + ')(.{0,25})[\\s\\S]*?$', 'gmi'), - '...$1$2$3...
    ', + '...$1$2$3...
    ' ) // collapse whitespace .replace(/(?:\n ?)+/g, '\n') @@ -29,7 +29,7 @@ define('admin/modules/search', ['mousetrap'], function (mousetrap) { title = title.replace( new RegExp('(^.*?)(' + term + ')(.*?$)', 'gi'), - '$1$2$3', + '$1$2$3' ); return '
  • ' + header + '
  • '); @@ -21,11 +21,14 @@ define('admin/settings', ['uploader'], function (uploader) { Settings.prepare = function (callback) { // Populate the fields on the page from the config - var fields = $('#content [data-field]'), - numFields = fields.length, - saveBtn = $('#save'), - revertBtn = $('#revert'), - x, key, inputType, field; + var fields = $('#content [data-field]'); + var numFields = fields.length; + var saveBtn = $('#save'); + var revertBtn = $('#revert'); + var x; + var key; + var inputType; + var field; // Handle unsaved changes $(fields).on('change', function () { @@ -148,8 +151,9 @@ define('admin/settings', ['uploader'], function (uploader) { fields.each(function () { var field = $(this); - var key = field.attr('data-field'), - value, inputType; + var key = field.attr('data-field'); + var value; + var inputType; if (field.is('input')) { inputType = field.attr('type'); diff --git a/public/src/admin/settings/email.js b/public/src/admin/settings/email.js index 4cdb4da6d6..4f2275ecb2 100644 --- a/public/src/admin/settings/email.js +++ b/public/src/admin/settings/email.js @@ -2,8 +2,8 @@ /* global define, socket, app, ajaxify, ace */ define('admin/settings/email', ['admin/settings'], function (settings) { - var module = {}, - emailEditor; + var module = {}; + var emailEditor; module.init = function () { configureEmailTester(); diff --git a/public/src/app.js b/public/src/app.js index 99f67883bf..d0390d50cf 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -462,9 +462,9 @@ app.cacheBuster = null; } app.handleSearch = function () { - var searchButton = $("#search-button"), - searchFields = $("#search-fields"), - searchInput = $('#search-fields input'); + var searchButton = $("#search-button"); + var searchFields = $("#search-fields"); + var searchInput = $('#search-fields input'); $('#search-form .advanced-search-link').on('mousedown', function () { ajaxify.go('/search'); diff --git a/public/src/client/account/header.js b/public/src/client/account/header.js index a136154293..a9f2bd7921 100644 --- a/public/src/client/account/header.js +++ b/public/src/client/account/header.js @@ -91,7 +91,7 @@ define('forum/account/header', [ components.get('account/cover').css('background-image', 'url(' + imageUrlOnServer + '?' + config['cache-buster'] + ')'); }); }, - removeCover, + removeCover ); } diff --git a/public/src/client/account/posts.js b/public/src/client/account/posts.js index 385e0e5205..1647f8a2f0 100644 --- a/public/src/client/account/posts.js +++ b/public/src/client/account/posts.js @@ -4,7 +4,8 @@ define('forum/account/posts', ['forum/account/header', 'forum/infinitescroll'], function (header, infinitescroll) { var AccountPosts = {}; - var method, template; + var method; + var template; AccountPosts.init = function () { header.init(); diff --git a/public/src/client/account/topics.js b/public/src/client/account/topics.js index 97a7187d52..e9217c0c5c 100644 --- a/public/src/client/account/topics.js +++ b/public/src/client/account/topics.js @@ -4,7 +4,8 @@ define('forum/account/topics', ['forum/account/header', 'forum/infinitescroll'], function (header, infinitescroll) { var AccountTopics = {}; - var template, set; + var template; + var set; AccountTopics.init = function () { header.init(); diff --git a/public/src/client/category.js b/public/src/client/category.js index 3893eebf06..060e39eb36 100644 --- a/public/src/client/category.js +++ b/public/src/client/category.js @@ -211,10 +211,10 @@ define('forum/category', [ template: {category: true}, }, function (html) { translator.translate(html, function (translatedHTML) { - var topic = $(translatedHTML), - container = $('[component="category"]'), - topics = $('[component="category/topic"]'), - numTopics = topics.length; + var topic = $(translatedHTML); + var container = $('[component="category"]'); + var topics = $('[component="category/topic"]'); + var numTopics = topics.length; $('[component="category"]').removeClass('hidden'); $('.category-sidebar').removeClass('hidden'); @@ -319,7 +319,8 @@ define('forum/category', [ data.showSelect = data.privileges.editable; - var after, before; + var after; + var before; var topics = $('[component="category/topic"]'); if (direction > 0 && topics.length) { @@ -337,8 +338,8 @@ define('forum/category', [ if (after) { html.insertAfter(after); } else if (before) { - var height = $(document).height(), - scrollTop = $(window).scrollTop(); + var height = $(document).height(); + var scrollTop = $(window).scrollTop(); html.insertBefore(before); diff --git a/public/src/client/chats.js b/public/src/client/chats.js index c29a57db4b..36c600ec71 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -134,16 +134,16 @@ define('forum/chats', [ Chats.addHotkeys = function () { mousetrap.bind('ctrl+up', function () { - var activeContact = $('.chats-list .bg-primary'), - prev = activeContact.prev(); + var activeContact = $('.chats-list .bg-primary'); + var prev = activeContact.prev(); if (prev.length) { Chats.switchChat(prev.attr('data-roomid')); } }); mousetrap.bind('ctrl+down', function () { - var activeContact = $('.chats-list .bg-primary'), - next = activeContact.next(); + var activeContact = $('.chats-list .bg-primary'); + var next = activeContact.next(); if (next.length) { Chats.switchChat(next.attr('data-roomid')); diff --git a/public/src/client/chats/messages.js b/public/src/client/chats/messages.js index 7e98bdc020..19f7bf1b7f 100644 --- a/public/src/client/chats/messages.js +++ b/public/src/client/chats/messages.js @@ -91,7 +91,7 @@ define('forum/chats/messages', ['components', 'sounds', 'translator'], function messages.scrollToBottom = function (containerEl) { if (containerEl.length) { containerEl.scrollTop( - containerEl[0].scrollHeight - containerEl.height(), + containerEl[0].scrollHeight - containerEl.height() ); } }; diff --git a/public/src/client/groups/details.js b/public/src/client/groups/details.js index 0e91aa6ae8..373e169ff1 100644 --- a/public/src/client/groups/details.js +++ b/public/src/client/groups/details.js @@ -41,7 +41,7 @@ define('forum/groups/details', [ components.get('groups/cover').css('background-image', 'url(' + imageUrlOnServer + ')'); }); }, - removeCover, + removeCover ); } @@ -52,12 +52,12 @@ define('forum/groups/details', [ components.get('groups/activity').find('.content img:not(.not-responsive)').addClass('img-responsive'); detailsPage.on('click', '[data-action]', function () { - var btnEl = $(this), - userRow = btnEl.parents('[data-uid]'), - ownerFlagEl = userRow.find('.member-name > i'), - isOwner = !ownerFlagEl.hasClass('invisible') ? true : false, - uid = userRow.attr('data-uid'), - action = btnEl.attr('data-action'); + var btnEl = $(this); + var userRow = btnEl.parents('[data-uid]'); + var ownerFlagEl = userRow.find('.member-name > i'); + var isOwner = !ownerFlagEl.hasClass('invisible') ? true : false; + var uid = userRow.attr('data-uid'); + var action = btnEl.attr('data-action'); switch(action) { case 'toggleOwnership': @@ -120,15 +120,15 @@ define('forum/groups/details', [ }; Details.prepareSettings = function () { - var settingsFormEl = components.get('groups/settings'), - colorBtn = settingsFormEl.find('[data-action="color-select"]'), - colorValueEl = settingsFormEl.find('[name="labelColor"]'), - iconBtn = settingsFormEl.find('[data-action="icon-select"]'), - previewEl = settingsFormEl.find('.label'), - previewIcon = previewEl.find('i'), - userTitleEl = settingsFormEl.find('[name="userTitle"]'), - userTitleEnabledEl = settingsFormEl.find('[name="userTitleEnabled"]'), - iconValueEl = settingsFormEl.find('[name="icon"]'); + var settingsFormEl = components.get('groups/settings'); + var colorBtn = settingsFormEl.find('[data-action="color-select"]'); + var colorValueEl = settingsFormEl.find('[name="labelColor"]'); + var iconBtn = settingsFormEl.find('[data-action="icon-select"]'); + var previewEl = settingsFormEl.find('.label'); + var previewIcon = previewEl.find('i'); + var userTitleEl = settingsFormEl.find('[name="userTitle"]'); + var userTitleEnabledEl = settingsFormEl.find('[name="userTitleEnabled"]'); + var iconValueEl = settingsFormEl.find('[name="icon"]'); // Add color picker to settings form colorBtn.ColorPicker({ @@ -171,8 +171,8 @@ define('forum/groups/details', [ }; Details.update = function () { - var settingsFormEl = components.get('groups/settings'), - checkboxes = settingsFormEl.find('input[type="checkbox"][name]'); + var settingsFormEl = components.get('groups/settings'); + var checkboxes = settingsFormEl.find('input[type="checkbox"][name]'); if (settingsFormEl.length) { require(['vendor/jquery/serializeObject/jquery.ba-serializeobject.min'], function () { diff --git a/public/src/client/groups/list.js b/public/src/client/groups/list.js index 850ad21a40..960fba8c78 100644 --- a/public/src/client/groups/list.js +++ b/public/src/client/groups/list.js @@ -63,9 +63,9 @@ define('forum/groups/list', ['forum/infinitescroll'], function (infinitescroll) }; Groups.search = function () { - var groupsEl = $('#groups-list'), - queryEl = $('#search-text'), - sortEl = $('#search-sort'); + var groupsEl = $('#groups-list'); + var queryEl = $('#search-text'); + var sortEl = $('#search-sort'); socket.emit('groups.search', { query: queryEl.val(), diff --git a/public/src/client/infinitescroll.js b/public/src/client/infinitescroll.js index ed43e4da22..d681ab1779 100644 --- a/public/src/client/infinitescroll.js +++ b/public/src/client/infinitescroll.js @@ -34,7 +34,8 @@ define('forum/infinitescroll', function () { var offsetTop = container.offset() ? container.offset().top : 0; var scrollPercent = 100 * (currentScrollTop - offsetTop) / (viewportHeight <= 0 ? wh : viewportHeight); - var top = 20, bottom = 80; + var top = 20; + var bottom = 80; var direction = currentScrollTop > previousScrollTop ? 1 : -1; @@ -76,8 +77,8 @@ define('forum/infinitescroll', function () { var removeCount = els.length - count; if (direction > 0) { - var height = $(document).height(), - scrollTop = $(window).scrollTop(); + var height = $(document).height(); + var scrollTop = $(window).scrollTop(); els.slice(0, removeCount).remove(); diff --git a/public/src/client/login.js b/public/src/client/login.js index e6395f6331..fb88797410 100644 --- a/public/src/client/login.js +++ b/public/src/client/login.js @@ -5,9 +5,9 @@ define('forum/login', ['translator'], function (translator) { var Login = {}; Login.init = function () { - var errorEl = $('#login-error-notify'), - submitEl = $('#login'), - formEl = $('#login-form'); + var errorEl = $('#login-error-notify'); + var submitEl = $('#login'); + var formEl = $('#login-form'); submitEl.on('click', function (e) { e.preventDefault(); diff --git a/public/src/client/register.js b/public/src/client/register.js index 7c8f828475..adae04de2a 100644 --- a/public/src/client/register.js +++ b/public/src/client/register.js @@ -4,16 +4,16 @@ define('forum/register', ['translator'], function (translator) { - var Register = {}, - validationError = false, - successIcon = ''; + var Register = {}; + var validationError = false; + var successIcon = ''; Register.init = function () { - var email = $('#email'), - username = $('#username'), - password = $('#password'), - password_confirm = $('#password-confirm'), - register = $('#register'); + var email = $('#email'); + var username = $('#username'); + var password = $('#password'); + var password_confirm = $('#password-confirm'); + var register = $('#register'); handleLanguageOverride(); @@ -170,8 +170,8 @@ define('forum/register', ['translator'], function (translator) { } function validatePassword(password, password_confirm) { - var password_notify = $('#password-notify'), - password_confirm_notify = $('#password-confirm-notify'); + var password_notify = $('#password-notify'); + var password_confirm_notify = $('#password-confirm-notify'); if (password.length < ajaxify.data.minimumPasswordLength) { showError(password_notify, '[[user:change_password_error_length]]'); @@ -193,8 +193,8 @@ define('forum/register', ['translator'], function (translator) { } function validatePasswordConfirm(password, password_confirm) { - var password_notify = $('#password-notify'), - password_confirm_notify = $('#password-confirm-notify'); + var password_notify = $('#password-notify'); + var password_confirm_notify = $('#password-confirm-notify'); if (!password || password_notify.hasClass('alert-error')) { return; @@ -230,8 +230,8 @@ define('forum/register', ['translator'], function (translator) { function handleLanguageOverride() { if (!app.user.uid && config.defaultLang !== config.userLang) { - var formEl = $('[component="register/local"]'), - langEl = $(''); + var formEl = $('[component="register/local"]'); + var langEl = $(''); formEl.append(langEl); } diff --git a/public/src/client/reset.js b/public/src/client/reset.js index 3e0220957b..3712957e36 100644 --- a/public/src/client/reset.js +++ b/public/src/client/reset.js @@ -5,9 +5,9 @@ define('forum/reset', function () { var ResetPassword = {}; ResetPassword.init = function () { - var inputEl = $('#email'), - errorEl = $('#error'), - successEl = $('#success'); + var inputEl = $('#email'); + var errorEl = $('#error'); + var successEl = $('#success'); $('#reset').on('click', function () { if (inputEl.val() && inputEl.val().indexOf('@') !== -1) { diff --git a/public/src/client/search.js b/public/src/client/search.js index 3975e245d3..c528b011c8 100644 --- a/public/src/client/search.js +++ b/public/src/client/search.js @@ -128,7 +128,8 @@ define('forum/search', ['search', 'autocomplete'], function (searchModule, autoc var regex = new RegExp('(' + regexStr + ')', 'gi'); $('.search-result-text p, .search-result-text h4').each(function () { - var result = $(this), nested = []; + var result = $(this); + var nested = []; result.find('*').each(function () { $(this).after(''); diff --git a/public/src/client/topic.js b/public/src/client/topic.js index 12bd11843a..68f3679a16 100644 --- a/public/src/client/topic.js +++ b/public/src/client/topic.js @@ -14,8 +14,8 @@ define('forum/topic', [ 'sort', 'components', ], function (infinitescroll, threadTools, postTools, events, posts, replies, navigator, sort, components) { - var Topic = {}, - currentUrl = ''; + var Topic = {}; + var currentUrl = ''; $(window).on('action:ajaxify.start', function (ev, data) { if (Topic.replaceURLTimeout) { @@ -112,8 +112,8 @@ define('forum/topic', [ mousetrap.bind('ctrl+f', function (e) { if (config.topicSearchEnabled) { // If in topic, open search window and populate, otherwise regular behaviour - var match = ajaxify.currentPage.match(/^topic\/([\d]+)/), - tid; + var match = ajaxify.currentPage.match(/^topic\/([\d]+)/); + var tid; if (match) { e.preventDefault(); tid = match[1]; diff --git a/public/src/client/topic/flag.js b/public/src/client/topic/flag.js index 1b3546e462..82b3fdfb00 100644 --- a/public/src/client/topic/flag.js +++ b/public/src/client/topic/flag.js @@ -4,9 +4,9 @@ define('forum/topic/flag', [], function () { - var Flag = {}, - flagModal, - flagCommit; + var Flag = {}; + var flagModal; + var flagCommit; Flag.showFlagModal = function (pid, username, userslug) { parseModal({ diff --git a/public/src/client/topic/move-post.js b/public/src/client/topic/move-post.js index fa1c0f2b47..1da810a599 100644 --- a/public/src/client/topic/move-post.js +++ b/public/src/client/topic/move-post.js @@ -11,8 +11,8 @@ define('forum/topic/move-post', [], function () { app.parseAndTranslate('partials/move_post_modal', {}, function (html) { var moveModal = $(html); - var moveBtn = moveModal.find('#move_post_commit'), - topicId = moveModal.find('#topicId'); + var moveBtn = moveModal.find('#move_post_commit'); + var topicId = moveModal.find('#topicId'); moveModal.on('hidden.bs.modal', function () { moveModal.remove(); diff --git a/public/src/client/topic/move.js b/public/src/client/topic/move.js index 794da71347..d5eea6e10f 100644 --- a/public/src/client/topic/move.js +++ b/public/src/client/topic/move.js @@ -4,9 +4,9 @@ define('forum/topic/move', function () { - var Move = {}, - modal, - selectedEl; + var Move = {}; + var modal; + var selectedEl; Move.init = function (tids, currentCid, onComplete) { Move.tids = tids; diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js index e34efc07bf..da07207379 100644 --- a/public/src/client/topic/posts.js +++ b/public/src/client/topic/posts.js @@ -165,7 +165,8 @@ define('forum/topic/posts', [ return callback(); } - var after, before; + var after; + var before; if (direction > 0 && repliesSelector.length) { after = repliesSelector.last(); @@ -188,8 +189,8 @@ define('forum/topic/posts', [ html.insertAfter(after); } else if (before) { // Save document height and position for future reference (about 5 lines down) - var height = $(document).height(), - scrollTop = $(window).scrollTop(); + var height = $(document).height(); + var scrollTop = $(window).scrollTop(); html.insertBefore(before); @@ -290,40 +291,42 @@ define('forum/topic/posts', [ default */ - var images = components.get('post/content').find('img[data-state="unloaded"]'), - visible = images.filter(function () { + var images = components.get('post/content').find('img[data-state="unloaded"]'); + var visible = images.filter(function () { return utils.isElementInViewport(this); - }), - posts = $.unique(visible.map(function () { + }); + var posts = $.unique(visible.map(function () { return $(this).parents('[component="post"]').get(0); - })), - scrollTop = $(window).scrollTop(), - adjusting = false, - adjustQueue = [], - adjustPosition = function () { - adjusting = true; - oldHeight = document.body.clientHeight; - - // Display the image - $(this).attr('data-state', 'loaded'); - newHeight = document.body.clientHeight; - - var imageRect = this.getBoundingClientRect(); - if (imageRect.top < threshold) { - scrollTop = scrollTop + (newHeight - oldHeight); - $(window).scrollTop(scrollTop); - } + })); + var scrollTop = $(window).scrollTop(); + var adjusting = false; + var adjustQueue = []; + var oldHeight; + var newHeight; + + function adjustPosition() { + adjusting = true; + oldHeight = document.body.clientHeight; + + // Display the image + $(this).attr('data-state', 'loaded'); + newHeight = document.body.clientHeight; + + var imageRect = this.getBoundingClientRect(); + if (imageRect.top < threshold) { + scrollTop = scrollTop + (newHeight - oldHeight); + $(window).scrollTop(scrollTop); + } - if (adjustQueue.length) { - adjustQueue.pop()(); - } else { - adjusting = false; + if (adjustQueue.length) { + adjustQueue.pop()(); + } else { + adjusting = false; - Posts.wrapImagesInLinks(posts); - posts.length = 0; - } - }, - oldHeight, newHeight; + Posts.wrapImagesInLinks(posts); + posts.length = 0; + } + }; // For each image, reset the source and adjust scrollTop when loaded visible.attr('data-state', 'loading'); @@ -346,9 +349,9 @@ define('forum/topic/posts', [ Posts.wrapImagesInLinks = function (posts) { posts.find('[component="post/content"] img:not(.emoji)').each(function () { - var $this = $(this), - src = $this.attr('src'), - suffixRegex = /-resized(\.[\w]+)?$/; + var $this = $(this); + var src = $this.attr('src'); + var suffixRegex = /-resized(\.[\w]+)?$/; if (src === 'about:blank') { return; diff --git a/public/src/client/topic/votes.js b/public/src/client/topic/votes.js index cf342e3e9d..37c612eacf 100644 --- a/public/src/client/topic/votes.js +++ b/public/src/client/topic/votes.js @@ -64,8 +64,8 @@ define('forum/topic/votes', ['components', 'translator'], function (components, Votes.toggleVote = function (button, className, method) { - var post = button.parents('[data-pid]'), - currentState = post.find(className).length; + var post = button.parents('[data-pid]'); + var currentState = post.find(className).length; socket.emit(currentState ? 'posts.unvote' : method , { pid: post.attr('data-pid'), diff --git a/public/src/installer/install.js b/public/src/installer/install.js index 1cb4eea7a5..760dc788a2 100644 --- a/public/src/installer/install.js +++ b/public/src/installer/install.js @@ -52,9 +52,9 @@ $('document').ready(function () { } function activate(type, el) { - var field = el.val(), - parent = el.parents('.input-row'), - help = parent.children('.help-text'); + var field = el.val(); + var parent = el.parents('.input-row'); + var help = parent.children('.help-text'); function validateUsername(field) { if (!utils.isUserNameValid(field) || !utils.slugify(field)) { diff --git a/public/src/modules/coverPhoto.js b/public/src/modules/coverPhoto.js index e1eba864d0..e8f1342c6b 100644 --- a/public/src/modules/coverPhoto.js +++ b/public/src/modules/coverPhoto.js @@ -38,8 +38,8 @@ define('coverPhoto', [ e.stopPropagation(); e.preventDefault(); - var files = e.originalEvent.dataTransfer.files, - reader = new FileReader(); + var files = e.originalEvent.dataTransfer.files; + var reader = new FileReader(); if (files.length && files[0].type.match('image.*')) { reader.onload = function (e) { diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js index 83bfc5a80d..ad04f2b9d6 100644 --- a/public/src/modules/helpers.js +++ b/public/src/modules/helpers.js @@ -37,19 +37,19 @@ }; helpers.buildMetaTag = function (tag) { - var name = tag.name ? 'name="' + tag.name + '" ' : '', - property = tag.property ? 'property="' + tag.property + '" ' : '', - content = tag.content ? 'content="' + tag.content.replace(/\n/g, ' ') + '" ' : ''; + var name = tag.name ? 'name="' + tag.name + '" ' : ''; + var property = tag.property ? 'property="' + tag.property + '" ' : ''; + var content = tag.content ? 'content="' + tag.content.replace(/\n/g, ' ') + '" ' : ''; return '\n\t'; }; helpers.buildLinkTag = function (tag) { - var link = tag.link ? 'link="' + tag.link + '" ' : '', - rel = tag.rel ? 'rel="' + tag.rel + '" ' : '', - type = tag.type ? 'type="' + tag.type + '" ' : '', - href = tag.href ? 'href="' + tag.href + '" ' : '', - sizes = tag.sizes ? 'sizes="' + tag.sizes + '" ' : ''; + var link = tag.link ? 'link="' + tag.link + '" ' : ''; + var rel = tag.rel ? 'rel="' + tag.rel + '" ' : ''; + var type = tag.type ? 'type="' + tag.type + '" ' : ''; + var href = tag.href ? 'href="' + tag.href + '" ' : ''; + var sizes = tag.sizes ? 'sizes="' + tag.sizes + '" ' : ''; return '\n\t'; }; @@ -285,5 +285,5 @@ }( typeof exports === 'object' ? exports : typeof define === 'function' && define.amd ? {} : - helpers = {}, + helpers = {} )); diff --git a/public/src/modules/iconSelect.js b/public/src/modules/iconSelect.js index 1919f8242c..b7849245ca 100644 --- a/public/src/modules/iconSelect.js +++ b/public/src/modules/iconSelect.js @@ -62,8 +62,8 @@ define('iconSelect', function () { }); picker.on('show.bs.modal', function () { - var modalEl = $(this), - searchEl = modalEl.find('input'); + var modalEl = $(this); + var searchEl = modalEl.find('input'); if (selected) { modalEl.find('.' + selected).addClass('selected'); @@ -72,10 +72,10 @@ define('iconSelect', function () { }).modal('show'); picker.on('shown.bs.modal', function () { - var modalEl = $(this), - searchEl = modalEl.find('input'), - icons = modalEl.find('.fa-icons i'), - submitEl = modalEl.find('button.btn-primary'); + var modalEl = $(this); + var searchEl = modalEl.find('input'); + var icons = modalEl.find('.fa-icons i'); + var submitEl = modalEl.find('button.btn-primary'); function changeSelection(newSelection) { modalEl.find('i.selected').removeClass('selected'); diff --git a/public/src/modules/notifications.js b/public/src/modules/notifications.js index 1ae246e282..ab97cea18d 100644 --- a/public/src/modules/notifications.js +++ b/public/src/modules/notifications.js @@ -8,10 +8,10 @@ define('notifications', ['sounds', 'translator', 'components'], function (sound, var unreadNotifs = {}; Notifications.prepareDOM = function () { - var notifContainer = components.get('notifications'), - notifTrigger = notifContainer.children('a'), - notifList = components.get('notifications/list'), - notifIcon = components.get('notifications/icon'); + var notifContainer = components.get('notifications'); + var notifTrigger = notifContainer.children('a'); + var notifList = components.get('notifications/list'); + var notifIcon = components.get('notifications/icon'); notifTrigger .on('click', function (e) { diff --git a/public/src/modules/settings.js b/public/src/modules/settings.js index c1bdaa219f..77825a6175 100644 --- a/public/src/modules/settings.js +++ b/public/src/modules/settings.js @@ -13,10 +13,10 @@ define('settings', function () { 'settings/object', ]; - var Settings, - onReady = [], - waitingJobs = 0, - helper; + var Settings; + var onReady = []; + var waitingJobs = 0; + var helper; /** Returns the hook of given name that matches the given type or element. @@ -24,7 +24,8 @@ define('settings', function () { @param name The name of the hook. */ function getHook(type, name) { - var hook, plugin; + var hook; + var plugin; if (typeof type !== 'string') { type = $(type); type = type.data('type') || type.attr('type') || type.prop('tagName'); @@ -99,7 +100,8 @@ define('settings', function () { @returns JQuery The created element. */ createElementOfType: function (type, tagName, data) { - var element, hook = getHook(type, 'create'); + var element; + var hook = getHook(type, 'create'); if (hook != null) { element = $(hook.call(Settings, type, tagName, data)); } else { @@ -151,11 +153,11 @@ define('settings', function () { @returns Object The value of the element. */ readValue: function (element) { - var empty = !helper.isFalse(element.data('empty')), - trim = !helper.isFalse(element.data('trim')), - split = element.data('split'), - hook = getHook(element, 'get'), - value; + var empty = !helper.isFalse(element.data('empty')); + var trim = !helper.isFalse(element.data('trim')); + var split = element.data('split'); + var hook = getHook(element, 'get'); + var value; if (hook != null) { return hook.call(Settings, element, trim, empty); } @@ -183,8 +185,8 @@ define('settings', function () { @param value The value to set. */ fillField: function (element, value) { - var hook = getHook(element, 'set'), - trim = element.data('trim'); + var hook = getHook(element, 'set'); + var trim = element.data('trim'); trim = trim !== 'false' && +trim !== 0; if (hook != null) { return hook.call(Settings, element, value, trim); @@ -218,9 +220,9 @@ define('settings', function () { initFields: function (wrapper) { $('[data-key]', wrapper).each(function (ignored, field) { field = $(field); - var hook = getHook(field, 'init'), - keyParts = field.data('key').split('.'), - value = Settings.get(); + var hook = getHook(field, 'init'); + var keyParts = field.data('key').split('.'); + var value = Settings.get(); if (hook != null) { hook.call(Settings, field); } @@ -408,17 +410,17 @@ define('settings', function () { @param notify Whether to send notification when settings got saved. */ persist: function (hash, wrapper, callback, notify) { - var notSaved = [], - fields = $('[data-key]', wrapper || 'form').toArray(); + var notSaved = []; + var fields = $('[data-key]', wrapper || 'form').toArray(); if (notify == null) { notify = true; } for (var i = 0; i < fields.length; i++) { - var field = $(fields[i]), - value = helper.readValue(field), - parentCfg = Settings.get(), - keyParts = field.data('key').split('.'), - lastKey = keyParts[keyParts.length - 1]; + var field = $(fields[i]); + var value = helper.readValue(field); + var parentCfg = Settings.get(); + var keyParts = field.data('key').split('.'); + var lastKey = keyParts[keyParts.length - 1]; if (keyParts.length > 1) { for (var j = 0; j < keyParts.length - 1; j++) { var part = keyParts[j]; diff --git a/public/src/modules/settings/array.js b/public/src/modules/settings/array.js index 4ea250b575..96dcc744cb 100644 --- a/public/src/modules/settings/array.js +++ b/public/src/modules/settings/array.js @@ -1,8 +1,8 @@ define('settings/array', function () { - var Settings = null, - SettingsArray, - helper = null; + var Settings = null; + var SettingsArray; + var helper = null; /** Creates a new button that removes itself and the given elements on click. @@ -41,8 +41,8 @@ define('settings/array', function () { */ function addArrayChildElement(field, key, attributes, value, separator, insertCb) { attributes = helper.deepClone(attributes); - var type = attributes['data-type'] || attributes.type || 'text', - element = $(helper.createElementOfType(type, attributes.tagName, attributes)); + var type = attributes['data-type'] || attributes.type || 'text'; + var element = $(helper.createElementOfType(type, attributes.tagName, attributes)); element.attr('data-parent', '_' + key); delete attributes['data-type']; delete attributes['tagName']; @@ -72,12 +72,12 @@ define('settings/array', function () { @param separator The separator to forward to {@link addArrayChildElement}. */ function addAddButton(element, key, attributes, separator) { - var addSpace = $(document.createTextNode(' ')), - newValue = element.data('new') || '', - add = $(helper.createElement('button', { - "class": 'btn btn-sm btn-primary add', - title: 'Expand Array', - }, '+')); + var addSpace = $(document.createTextNode(' ')); + var newValue = element.data('new') || ''; + var add = $(helper.createElement('button', { + "class": 'btn btn-sm btn-primary add', + title: 'Expand Array', + }, '+')); add.click(function (event) { event.preventDefault(); addArrayChildElement(element, key, attributes, newValue, separator.clone(), function (el) { @@ -98,9 +98,9 @@ define('settings/array', function () { return helper.createElement(tagName || 'div'); }, set: function (element, value) { - var attributes = element.data('attributes'), - key = element.data('key') || element.data('parent'), - separator = element.data('split') || ', '; + var attributes = element.data('attributes'); + var key = element.data('key') || element.data('parent'); + var separator = element.data('split') || ', '; separator = (function () { try { return $(separator); @@ -123,13 +123,13 @@ define('settings/array', function () { addAddButton(element, key, attributes, separator); }, get: function (element, trim, empty) { - var key = element.data('key') || element.data('parent'), - children = $("[data-parent=\"_" + key + "\"]", element), - values = []; + var key = element.data('key') || element.data('parent'); + var children = $("[data-parent=\"_" + key + "\"]", element); + var values = []; children.each(function (i, child) { child = $(child); - var val = helper.readValue(child), - empty = helper.isTrue(child.data('empty')); + var val = helper.readValue(child); + var empty = helper.isTrue(child.data('empty')); if (empty || val !== void 0 && (val == null || val.length !== 0)) { return values.push(val); } diff --git a/public/src/modules/settings/checkbox.js b/public/src/modules/settings/checkbox.js index ca4aaab829..f9f233d7c6 100644 --- a/public/src/modules/settings/checkbox.js +++ b/public/src/modules/settings/checkbox.js @@ -1,7 +1,7 @@ define('settings/checkbox', function () { - var Settings = null, - SettingsCheckbox; + var Settings = null; + var SettingsCheckbox; SettingsCheckbox = { types: ['checkbox'], diff --git a/public/src/modules/settings/key.js b/public/src/modules/settings/key.js index d155a8808a..f782b614d9 100644 --- a/public/src/modules/settings/key.js +++ b/public/src/modules/settings/key.js @@ -1,31 +1,31 @@ define('settings/key', function () { - var Settings = null, - SettingsKey, - helper = null, - lastKey = null, - oldKey = null, - keyMap = Object.freeze({ - 0: '', - 8: 'Backspace', - 9: 'Tab', - 13: 'Enter', - 27: 'Escape', - 32: 'Space', - 37: 'Left', - 38: 'Up', - 39: 'Right', - 40: 'Down', - 45: 'Insert', - 46: 'Delete', - 187: '=', - 189: '-', - 190: '.', - 191: '/', - 219: '[', - 220: '\\', - 221: ']', - }); + var Settings = null; + var SettingsKey; + var helper = null; + var lastKey = null; + var oldKey = null; + var keyMap = Object.freeze({ + 0: '', + 8: 'Backspace', + 9: 'Tab', + 13: 'Enter', + 27: 'Escape', + 32: 'Space', + 37: 'Left', + 38: 'Up', + 39: 'Right', + 40: 'Down', + 45: 'Insert', + 46: 'Delete', + 187: '=', + 189: '-', + 190: '.', + 191: '/', + 219: '[', + 220: '\\', + 221: ']', + }); function Key() { this.c = false; @@ -42,9 +42,9 @@ define('settings/key', function () { @returns Key | null The Key-Object the focused element should be set to. */ function getKey(event) { - var anyModChange = event.ctrlKey !== lastKey.c || event.altKey !== lastKey.a || event.shiftKey !== lastKey.s || event.metaKey !== lastKey.m, - modChange = event.ctrlKey + event.altKey + event.shiftKey + event.metaKey - lastKey.c - lastKey.a - lastKey.s - lastKey.m, - key = new Key(); + var anyModChange = event.ctrlKey !== lastKey.c || event.altKey !== lastKey.a || event.shiftKey !== lastKey.s || event.metaKey !== lastKey.m; + var modChange = event.ctrlKey + event.altKey + event.shiftKey + event.metaKey - lastKey.c - lastKey.a - lastKey.s - lastKey.m; + var key = new Key(); key.c = event.ctrlKey; key.a = event.altKey; key.s = event.shiftKey; @@ -128,9 +128,9 @@ define('settings/key', function () { if (str instanceof Key) { return str; } - var key = new Key(), - sep = /([^CtrlAShifMea#\d]+)(?:#|\d)/.exec(str), - parts = sep != null ? str.split(sep[1]) : [str]; + var key = new Key(); + var sep = /([^CtrlAShifMea#\d]+)(?:#|\d)/.exec(str); + var parts = sep != null ? str.split(sep[1]) : [str]; for (var i = 0; i < parts.length; i++) { var part = parts[i]; switch (part) { @@ -199,9 +199,9 @@ define('settings/key', function () { element.val(getKeyString(key, true, false, ' + ')); }, get: function (element, trim, empty) { - var key = element.data('keyData'), - separator = element.data('split') || element.data('separator') || '+', - short = !helper.isFalse(element.data('short')); + var key = element.data('keyData'); + var separator = element.data('split') || element.data('separator') || '+'; + var short = !helper.isFalse(element.data('short')); if (trim) { if (empty || (key != null && key.char)) { return getKeyString(key, false, short, separator); diff --git a/public/src/modules/settings/object.js b/public/src/modules/settings/object.js index 6c5e061a60..8c761fcfb4 100644 --- a/public/src/modules/settings/object.js +++ b/public/src/modules/settings/object.js @@ -1,8 +1,8 @@ define('settings/object', function () { - var Settings = null, - SettingsObject, - helper = null; + var Settings = null; + var SettingsObject; + var helper = null; /** Creates a new child-element of given property with given data and calls given callback with elements to add. @@ -15,9 +15,10 @@ define('settings/object', function () { @param insertCb The callback to insert the elements. */ function addObjectPropertyElement(field, key, attributes, prop, value, separator, insertCb) { - var prepend = attributes['data-prepend'], - append = attributes['data-append'], - type, element; + var prepend = attributes['data-prepend']; + var append = attributes['data-append']; + var type; + var element; delete attributes['data-prepend']; delete attributes['data-append']; attributes = helper.deepClone(attributes); @@ -59,10 +60,12 @@ define('settings/object', function () { return helper.createElement(tagName || 'div'); }, set: function (element, value) { - var properties = element.data('attributes') || element.data('properties'), - key = element.data('key') || element.data('parent'), - separator = element.data('split') || ', ', - propertyIndex, propertyName, attributes; + var properties = element.data('attributes') || element.data('properties'); + var key = element.data('key') || element.data('parent'); + var separator = element.data('split') || ', '; + var propertyIndex; + var propertyName; + var attributes; separator = (function () { try { return $(separator); @@ -91,14 +94,14 @@ define('settings/object', function () { } }, get: function (element, trim, empty) { - var key = element.data('key') || element.data('parent'), - properties = $('[data-parent="_' + key + '"]', element), - value = {}; + var key = element.data('key') || element.data('parent'); + var properties = $('[data-parent="_' + key + '"]', element); + var value = {}; properties.each(function (i, property) { property = $(property); - var val = helper.readValue(property), - prop = property.data('prop'), - empty = helper.isTrue(property.data('empty')); + var val = helper.readValue(property); + var prop = property.data('prop'); + var empty = helper.isTrue(property.data('empty')); if (empty || val !== void 0 && (val == null || val.length !== 0)) { return value[prop] = val; } diff --git a/public/src/modules/settings/select.js b/public/src/modules/settings/select.js index bb13fcbb65..c0d11a1632 100644 --- a/public/src/modules/settings/select.js +++ b/public/src/modules/settings/select.js @@ -1,12 +1,12 @@ define('settings/select', function () { - var Settings = null, - SettingsSelect; + var Settings = null; + var SettingsSelect; function addOptions(element, options) { for (var i = 0; i < options.length; i++) { - var optionData = options[i], - value = optionData.text || optionData.value; + var optionData = options[i]; + var value = optionData.text || optionData.value; delete optionData.text; element.append($(Settings.helper.createElement('option', optionData)).text(value)); } diff --git a/public/src/modules/settings/textarea.js b/public/src/modules/settings/textarea.js index b0b9840443..86a96be935 100644 --- a/public/src/modules/settings/textarea.js +++ b/public/src/modules/settings/textarea.js @@ -1,7 +1,7 @@ define('settings/textarea', function () { - var Settings = null, - SettingsArea; + var Settings = null; + var SettingsArea; SettingsArea = { types: ['textarea'], diff --git a/public/src/modules/taskbar.js b/public/src/modules/taskbar.js index 6536faafc7..8961359ca5 100644 --- a/public/src/modules/taskbar.js +++ b/public/src/modules/taskbar.js @@ -13,9 +13,9 @@ define('taskbar', function () { $(document.body).append(self.taskbar); self.taskbar.on('click', 'li', function () { - var $btn = $(this), - module = $btn.attr('data-module'), - uuid = $btn.attr('data-uuid'); + var $btn = $(this); + var module = $btn.attr('data-module'); + var uuid = $btn.attr('data-uuid'); require([module], function (module) { if (!$btn.hasClass('active')) { diff --git a/public/src/utils.js b/public/src/utils.js index d5b0e87054..b64ce63a5b 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -1,7 +1,9 @@ (function (module) { 'use strict'; - var utils, fs, XRegExp; + var utils; + var fs; + var XRegExp; if ('undefined' === typeof window) { fs = require('fs'); @@ -24,8 +26,8 @@ module.exports = utils = { generateUUID: function () { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { - var r = Math.random() * 16 | 0, - v = c === 'x' ? r : (r & 0x3 | 0x8); + var r = Math.random() * 16 | 0; + var v = c === 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); }); }, @@ -143,7 +145,9 @@ // shallow objects merge merge: function () { - var result = {}, obj, keys; + var result = {}; + var obj; + var keys; for (var i = 0; i < arguments.length; i++) { obj = arguments[i] || {}; keys = Object.keys(obj); @@ -268,8 +272,8 @@ findBootstrapEnvironment: function () { //http://stackoverflow.com/questions/14441456/how-to-detect-which-device-view-youre-on-using-twitter-bootstrap-api - var envs = ['xs', 'sm', 'md', 'lg'], - $el = $('
    '); + var envs = ['xs', 'sm', 'md', 'lg']; + var $el = $('
    '); $el.appendTo($('body')); @@ -292,8 +296,8 @@ }, getHoursArray: function () { - var currentHour = new Date().getHours(), - labels = []; + var currentHour = new Date().getHours(); + var labels = []; for (var i = currentHour, ii = currentHour - 24; i > ii; i--) { var hour = i < 0 ? 24 + i : i; @@ -304,10 +308,10 @@ }, getDaysArray: function (from) { - var currentDay = new Date(from || Date.now()).getTime(), - months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], - labels = [], - tmpDate; + var currentDay = new Date(from || Date.now()).getTime(); + var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; + var labels = []; + var tmpDate; for(var x = 29; x >= 0; x--) { tmpDate = new Date(currentDay - (1000 * 60 * 60 * 24 * x)); @@ -336,7 +340,9 @@ // get all the url params in a single key/value hash params: function (options) { - var a, hash = {}, params; + var a; + var hash = {}; + var params; options = options || {}; options.skipToType = options.skipToType || {}; @@ -347,9 +353,9 @@ params = (a ? a.search : window.location.search).substring(1).split("&"); params.forEach(function (param) { - var val = param.split('='), - key = decodeURI(val[0]), - value = options.skipToType[key] ? decodeURI(val[1]) : utils.toType(decodeURI(val[1])); + var val = param.split('='); + var key = decodeURI(val[0]); + var value = options.skipToType[key] ? decodeURI(val[1]) : utils.toType(decodeURI(val[1])); if (key) { if (key.substr(-2, 2) === '[]') { @@ -423,8 +429,8 @@ } return obj[props]; } - var prop = props.slice(0, i), - newProps = props.slice(i + 1); + var prop = props.slice(0, i); + var newProps = props.slice(i + 1); if(props !== undefined && !(obj[prop] instanceof Object) ) { obj[prop] = {}; diff --git a/src/analytics.js b/src/analytics.js index 4da4c819bb..6aa5bf0505 100644 --- a/src/analytics.js +++ b/src/analytics.js @@ -50,8 +50,8 @@ Analytics.pageView = function (payload) { } if (payload.path) { - var categoryMatch = payload.path.match(isCategory), - cid = categoryMatch ? parseInt(categoryMatch[1], 10) : null; + var categoryMatch = payload.path.match(isCategory); + var cid = categoryMatch ? parseInt(categoryMatch[1], 10) : null; if (cid) { Analytics.increment(['pageviews:byCid:' + cid]); @@ -103,8 +103,8 @@ Analytics.writeData = function (callback) { }; Analytics.getHourlyStatsForSet = function (set, hour, numHours, callback) { - var terms = {}, - hoursArr = []; + var terms = {}; + var hoursArr = []; hour = new Date(hour); hour.setHours(hour.getHours(), 0, 0, 0); diff --git a/src/batch.js b/src/batch.js index 53f88bfc05..19595df07e 100644 --- a/src/batch.js +++ b/src/batch.js @@ -57,7 +57,7 @@ exports.processSortedSet = function (setKey, process, options, callback) { }); }); }, - callback, + callback ); }; @@ -105,6 +105,6 @@ exports.processArray = function (array, process, options, callback) { }, function (err) { callback(err); - }, + } ); }; diff --git a/src/categories.js b/src/categories.js index 4021f05749..32aa5bf88b 100644 --- a/src/categories.js +++ b/src/categories.js @@ -293,7 +293,10 @@ var privileges = require('./privileges'); * @param parentCid {number} start from 0 to build full tree */ Categories.getTree = function (categories, parentCid) { - var tree = [], i = 0, len = categories.length, category; + var tree = []; + var i = 0; + var len = categories.length; + var category; for (i; i < len; ++i) { category = categories[i]; diff --git a/src/controllers/accounts/profile.js b/src/controllers/accounts/profile.js index 29d7ca57a7..f6279aa8eb 100644 --- a/src/controllers/accounts/profile.js +++ b/src/controllers/accounts/profile.js @@ -120,7 +120,7 @@ profileController.get = function (req, res, callback) { property: "og:image:url", content: userData.picture, noEscape: true, - }, + } ); } userData.selectedGroup = userData.groups.find(function (group) { diff --git a/src/controllers/admin/themes.js b/src/controllers/admin/themes.js index 4f6f3e1f3b..1cf51ae7e6 100644 --- a/src/controllers/admin/themes.js +++ b/src/controllers/admin/themes.js @@ -12,8 +12,8 @@ themesController.get = function (req, res, next) { return next(); } - var themeConfig = require(path.join(themeDir, 'theme.json')), - screenshotPath = path.join(themeDir, themeConfig.screenshot); + var themeConfig = require(path.join(themeDir, 'theme.json')); + var screenshotPath = path.join(themeDir, themeConfig.screenshot); if (themeConfig.screenshot && file.existsSync(screenshotPath)) { res.sendFile(screenshotPath); } else { diff --git a/src/controllers/admin/uploads.js b/src/controllers/admin/uploads.js index 701294153b..3ed6f9b6f4 100644 --- a/src/controllers/admin/uploads.js +++ b/src/controllers/admin/uploads.js @@ -55,9 +55,9 @@ uploadsController.uploadFavicon = function (req, res, next) { }; uploadsController.uploadTouchIcon = function (req, res, next) { - var uploadedFile = req.files.files[0], - allowedTypes = ['image/png'], - sizes = [36, 48, 72, 96, 144, 192]; + var uploadedFile = req.files.files[0]; + var allowedTypes = ['image/png']; + var sizes = [36, 48, 72, 96, 144, 192]; if (validateUpload(req, res, next, uploadedFile, allowedTypes)) { file.saveFileToLocal('touchicon-orig.png', 'system', uploadedFile.path, function (err, imageObj) { @@ -105,8 +105,8 @@ uploadsController.uploadSound = function (req, res, next) { return next(err); } - var soundsPath = path.join(__dirname, '../../../build/public/sounds'), - filePath = path.join(nconf.get('upload_path'), 'sounds', uploadedFile.name); + var soundsPath = path.join(__dirname, '../../../build/public/sounds'); + var filePath = path.join(nconf.get('upload_path'), 'sounds', uploadedFile.name); file.link(filePath, path.join(soundsPath, path.basename(filePath))); diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index 289b43055e..6561bc5385 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -343,7 +343,8 @@ authenticationController.localLogin = function (req, username, password, next) { } var userslug = utils.slugify(username); - var uid, userData = {}; + var uid; + var userData = {}; async.waterfall([ function (next) { diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index 214d796ddd..ef76db33d9 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -259,9 +259,9 @@ module.exports = function (db, module) { return callback(err); } - var map = helpers.toMap(result), - returnData = [], - item; + var map = helpers.toMap(result); + var returnData = []; + var item; for(var i = 0; i < keys.length; ++i) { item = map[keys[i]]; @@ -500,7 +500,7 @@ module.exports = function (db, module) { }); }); }, - callback, + callback ); }; diff --git a/src/database/redis/sorted.js b/src/database/redis/sorted.js index 1e8c629fa9..90e2cfdf08 100644 --- a/src/database/redis/sorted.js +++ b/src/database/redis/sorted.js @@ -198,7 +198,8 @@ module.exports = function (redisClient, module) { function sortedSetLex(method, reverse, key, min, max, start, count, callback) { callback = callback || start; - var minmin, maxmax; + var minmin; + var maxmax; if (reverse) { minmin = '+'; maxmax = '-'; diff --git a/src/groups.js b/src/groups.js index 5f8102a807..5db8c32c83 100644 --- a/src/groups.js +++ b/src/groups.js @@ -20,30 +20,30 @@ var utils = require('../public/src/utils'); require('./groups/search')(Groups); require('./groups/cover')(Groups); - var ephemeralGroups = ['guests'], - - internals = { - getEphemeralGroup: function (groupName) { - return { - name: groupName, - slug: utils.slugify(groupName), - description: '', - deleted: '0', - hidden: '0', - system: '1', - }; - }, - removeEphemeralGroups: function (groups) { - var x = groups.length; - while(x--) { - if (ephemeralGroups.indexOf(groups[x]) !== -1) { - groups.splice(x, 1); - } + var ephemeralGroups = ['guests']; + + var internals = { + getEphemeralGroup: function (groupName) { + return { + name: groupName, + slug: utils.slugify(groupName), + description: '', + deleted: '0', + hidden: '0', + system: '1', + }; + }, + removeEphemeralGroups: function (groups) { + var x = groups.length; + while(x--) { + if (ephemeralGroups.indexOf(groups[x]) !== -1) { + groups.splice(x, 1); } + } - return groups; - }, - }; + return groups; + }, + }; Groups.internals = internals; diff --git a/src/groups/ownership.js b/src/groups/ownership.js index 7edaf19659..9bb007a7da 100644 --- a/src/groups/ownership.js +++ b/src/groups/ownership.js @@ -1,8 +1,8 @@ 'use strict'; -var async = require('async'), - db = require('../database'), - plugins = require('../plugins'); +var async = require('async'); +var db = require('../database'); +var plugins = require('../plugins'); module.exports = function (Groups) { diff --git a/src/hotswap.js b/src/hotswap.js index ece8f205d7..9fa776a16a 100644 --- a/src/hotswap.js +++ b/src/hotswap.js @@ -1,8 +1,8 @@ "use strict"; -var HotSwap = {}, - winston = require('winston'), - stack; +var HotSwap = {}; +var winston = require('winston'); +var stack; HotSwap.prepare = function (app) { stack = app._router.stack; diff --git a/src/image.js b/src/image.js index 4ecb49387a..54777d6c79 100644 --- a/src/image.js +++ b/src/image.js @@ -24,13 +24,13 @@ image.resizeImage = function (data, callback) { return callback(err); } - var w = image.bitmap.width, - h = image.bitmap.height, - origRatio = w / h, - desiredRatio = data.width && data.height ? data.width / data.height : origRatio, - x = 0, - y = 0, - crop; + var w = image.bitmap.width; + var h = image.bitmap.height; + var origRatio = w / h; + var desiredRatio = data.width && data.height ? data.width / data.height : origRatio; + var x = 0; + var y = 0; + var crop; if (origRatio !== desiredRatio) { if (desiredRatio > origRatio) { diff --git a/src/install.js b/src/install.js index 8e9b32fee7..4c3e4df0ec 100644 --- a/src/install.js +++ b/src/install.js @@ -228,84 +228,84 @@ function createAdmin(callback) { winston.warn('No administrators have been detected, running initial user setup\n'); var questions = [{ - name: 'username', - description: 'Administrator username', - required: true, - type: 'string', - }, { - name: 'email', - description: 'Administrator email address', - pattern: /.+@.+/, - required: true, - }], - passwordQuestions = [{ - name: 'password', - description: 'Password', - required: true, - hidden: true, - type: 'string', - }, { - name: 'password:confirm', - description: 'Confirm Password', - required: true, - hidden: true, - type: 'string', - }], - success = function (err, results) { + name: 'username', + description: 'Administrator username', + required: true, + type: 'string', + }, { + name: 'email', + description: 'Administrator email address', + pattern: /.+@.+/, + required: true, + }]; + var passwordQuestions = [{ + name: 'password', + description: 'Password', + required: true, + hidden: true, + type: 'string', + }, { + name: 'password:confirm', + description: 'Confirm Password', + required: true, + hidden: true, + type: 'string', + }]; + function success(err, results) { + if (err) { + return callback(err); + } + if (!results) { + return callback(new Error('aborted')); + } + + if (results['password:confirm'] !== results.password) { + winston.warn("Passwords did not match, please try again"); + return retryPassword(results); + } + + if (results.password.length < meta.config.minimumPasswordLength) { + winston.warn("Password too short, please try again"); + return retryPassword(results); + } + + var adminUid; + async.waterfall([ + function (next) { + User.create({username: results.username, password: results.password, email: results.email}, next); + }, + function (uid, next) { + adminUid = uid; + Groups.join('administrators', uid, next); + }, + function (next) { + Groups.show('administrators', next); + }, + function (next) { + Groups.ownership.grant(adminUid, 'administrators', next); + }, + ], function (err) { if (err) { return callback(err); } + callback(null, password ? results : undefined); + }); + } + function retryPassword(originalResults) { + // Ask only the password questions + prompt.get(passwordQuestions, function (err, results) { if (!results) { return callback(new Error('aborted')); } - if (results['password:confirm'] !== results.password) { - winston.warn("Passwords did not match, please try again"); - return retryPassword(results); - } - - if (results.password.length < meta.config.minimumPasswordLength) { - winston.warn("Password too short, please try again"); - return retryPassword(results); - } - - var adminUid; - async.waterfall([ - function (next) { - User.create({username: results.username, password: results.password, email: results.email}, next); - }, - function (uid, next) { - adminUid = uid; - Groups.join('administrators', uid, next); - }, - function (next) { - Groups.show('administrators', next); - }, - function (next) { - Groups.ownership.grant(adminUid, 'administrators', next); - }, - ], function (err) { - if (err) { - return callback(err); - } - callback(null, password ? results : undefined); - }); - }, - retryPassword = function (originalResults) { - // Ask only the password questions - prompt.get(passwordQuestions, function (err, results) { - if (!results) { - return callback(new Error('aborted')); - } - - // Update the original data with newly collected password - originalResults.password = results.password; - originalResults['password:confirm'] = results['password:confirm']; + // Update the original data with newly collected password + originalResults.password = results.password; + originalResults['password:confirm'] = results['password:confirm']; - // Send back to success to handle - success(err, originalResults); - }); - }; + // Send back to success to handle + success(err, originalResults); + }); + } // Add the password questions questions = questions.concat(passwordQuestions); @@ -389,16 +389,16 @@ function createMenuItems(next) { if (err || exists) { return next(err); } - var navigation = require('./navigation/admin'), - data = require('../install/data/navigation.json'); + var navigation = require('./navigation/admin'); + var data = require('../install/data/navigation.json'); navigation.save(data, next); }); } function createWelcomePost(next) { - var db = require('./database'), - Topics = require('./topics'); + var db = require('./database'); + var Topics = require('./topics'); async.parallel([ function (next) { @@ -412,8 +412,8 @@ function createWelcomePost(next) { return next(err); } - var content = results[0], - numTopics = results[1]; + var content = results[0]; + var numTopics = results[1]; if (!parseInt(numTopics, 10)) { process.stdout.write('Creating welcome post!\n'); @@ -434,16 +434,16 @@ function enableDefaultPlugins(next) { process.stdout.write('Enabling default plugins\n'); var defaultEnabled = [ - 'nodebb-plugin-composer-default', - 'nodebb-plugin-markdown', - 'nodebb-plugin-mentions', - 'nodebb-widget-essentials', - 'nodebb-rewards-essentials', - 'nodebb-plugin-soundpack-default', - 'nodebb-plugin-emoji-extended', - 'nodebb-plugin-emoji-one', - ], - customDefaults = nconf.get('defaultPlugins'); + 'nodebb-plugin-composer-default', + 'nodebb-plugin-markdown', + 'nodebb-plugin-mentions', + 'nodebb-widget-essentials', + 'nodebb-rewards-essentials', + 'nodebb-plugin-soundpack-default', + 'nodebb-plugin-emoji-extended', + 'nodebb-plugin-emoji-one', + ]; + var customDefaults = nconf.get('defaultPlugins'); winston.info('[install/defaultPlugins] customDefaults', customDefaults); diff --git a/src/logger.js b/src/logger.js index f098ef7289..87e14d2f65 100644 --- a/src/logger.js +++ b/src/logger.js @@ -4,14 +4,14 @@ * Logger module: ability to dynamically turn on/off logging for http requests & socket.io events */ -var fs = require('fs'), - path = require('path'), - winston = require('winston'), - util = require('util'), - - file = require('./file'), - meta = require('./meta'), - morgan = require('morgan'); +var fs = require('fs'); +var path = require('path'); +var winston = require('winston'); +var util = require('util'); + +var file = require('./file'); +var meta = require('./meta'); +var morgan = require('morgan'); var opts = { /* diff --git a/src/meta/blacklist.js b/src/meta/blacklist.js index 97f6b5b974..3487d31f41 100644 --- a/src/meta/blacklist.js +++ b/src/meta/blacklist.js @@ -78,9 +78,9 @@ Blacklist.validate = function (rules, callback) { var cidr = []; var invalid = []; - var isCidrSubnet = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))$/, - inlineCommentMatch = /#.*$/, - whitelist = ['127.0.0.1', '::1', '::ffff:0:127.0.0.1']; + var isCidrSubnet = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))$/; + var inlineCommentMatch = /#.*$/; + var whitelist = ['127.0.0.1', '::1', '::ffff:0:127.0.0.1']; // Filter out blank lines and lines starting with the hash character (comments) // Also trim inputs and remove inline comments diff --git a/src/meta/css.js b/src/meta/css.js index fd3c526e48..99c4abd96b 100644 --- a/src/meta/css.js +++ b/src/meta/css.js @@ -90,8 +90,8 @@ module.exports = function (Meta) { }; function getStyleSource(files, prefix, extension, callback) { - var pluginDirectories = [], - source = ''; + var pluginDirectories = []; + var source = ''; files.forEach(function (styleFile) { if (styleFile.endsWith(extension)) { diff --git a/src/meta/languages.js b/src/meta/languages.js index b7c79db5ba..c386141ccb 100644 --- a/src/meta/languages.js +++ b/src/meta/languages.js @@ -38,7 +38,8 @@ function getTranslationTree(callback) { // generate list of languages and namespaces function (plugins, next) { - var languages = [], namespaces = []; + var languages = []; + namespaces = []; // pull languages and namespaces from paths function extrude(languageDir, paths) { diff --git a/src/meta/templates.js b/src/meta/templates.js index f15efd0fa9..c30db7f3b7 100644 --- a/src/meta/templates.js +++ b/src/meta/templates.js @@ -21,8 +21,9 @@ Templates.compile = function (callback) { function getBaseTemplates(theme) { - var baseTemplatesPaths = [], - baseThemePath, baseThemeConfig; + var baseTemplatesPaths = []; + var baseThemePath; + var baseThemeConfig; while (theme) { baseThemePath = path.join(nconf.get('themes_path'), theme); @@ -78,9 +79,9 @@ function preparePaths(baseTemplatesPaths, callback) { }, next); }, }, function (err, data) { - var baseThemes = data.baseThemes, - coreTpls = data.coreTpls, - paths = {}; + var baseThemes = data.baseThemes; + var coreTpls = data.coreTpls; + var paths = {}; coreTpls.forEach(function (el, i) { paths[coreTpls[i].replace(coreTemplatesPath, '')] = coreTpls[i]; @@ -104,9 +105,9 @@ function preparePaths(baseTemplatesPaths, callback) { } function compile(callback) { - var themeConfig = require(nconf.get('theme_config')), - baseTemplatesPaths = themeConfig.baseTheme ? getBaseTemplates(themeConfig.baseTheme) : [nconf.get('base_templates_path')], - viewsPath = nconf.get('views_dir'); + var themeConfig = require(nconf.get('theme_config')); + var baseTemplatesPaths = themeConfig.baseTheme ? getBaseTemplates(themeConfig.baseTheme) : [nconf.get('base_templates_path')]; + var viewsPath = nconf.get('views_dir'); preparePaths(baseTemplatesPaths, function (err, paths) { @@ -115,9 +116,9 @@ function compile(callback) { } async.each(Object.keys(paths), function (relativePath, next) { - var file = fs.readFileSync(paths[relativePath]).toString(), - matches = null, - regex = /[ \t]*[ \t]*/; + var file = fs.readFileSync(paths[relativePath]).toString(); + var matches = null; + var regex = /[ \t]*[ \t]*/; while((matches = file.match(regex)) !== null) { var partial = "/" + matches[1]; diff --git a/src/meta/themes.js b/src/meta/themes.js index 0a21dc32b1..9dfc9f376b 100644 --- a/src/meta/themes.js +++ b/src/meta/themes.js @@ -153,8 +153,8 @@ module.exports = function (Meta) { Meta.themes.setPath = function (themeObj) { // Theme's templates path - var themePath = nconf.get('base_templates_path'), - fallback = path.join(nconf.get('themes_path'), themeObj.id, 'templates'); + var themePath = nconf.get('base_templates_path'); + var fallback = path.join(nconf.get('themes_path'), themeObj.id, 'templates'); if (themeObj.templates) { themePath = path.join(nconf.get('themes_path'), themeObj.id, themeObj.templates); diff --git a/src/middleware/index.js b/src/middleware/index.js index 7f01ea06a2..fd1c816a80 100644 --- a/src/middleware/index.js +++ b/src/middleware/index.js @@ -184,9 +184,9 @@ middleware.applyBlacklist = function (req, res, next) { }; middleware.processTimeagoLocales = function (req, res, next) { - var fallback = req.path.indexOf('-short') === -1 ? 'jquery.timeago.en.js' : 'jquery.timeago.en-short.js', - localPath = path.join(__dirname, '../../public/vendor/jquery/timeago/locales', req.path), - exists; + var fallback = req.path.indexOf('-short') === -1 ? 'jquery.timeago.en.js' : 'jquery.timeago.en-short.js'; + var localPath = path.join(__dirname, '../../public/vendor/jquery/timeago/locales', req.path); + var exists; try { exists = fs.accessSync(localPath, fs.F_OK | fs.R_OK); diff --git a/src/notifications.js b/src/notifications.js index 9faf5a3bfa..74453e5046 100644 --- a/src/notifications.js +++ b/src/notifications.js @@ -373,8 +373,8 @@ var utils = require('../public/src/utils'); }; Notifications.prune = function () { - var week = 604800000, - numPruned = 0; + var week = 604800000; + var numPruned = 0; var cutoffTime = Date.now() - week; @@ -411,13 +411,17 @@ var utils = require('../public/src/utils'); Notifications.merge = function (notifications, callback) { // When passed a set of notification objects, merge any that can be merged var mergeIds = [ - 'notifications:upvoted_your_post_in', - 'notifications:user_started_following_you', - 'notifications:user_posted_to', - 'notifications:user_flagged_post_in', - 'new_register', - ], - isolated, differentiators, differentiator, modifyIndex, set; + 'notifications:upvoted_your_post_in', + 'notifications:user_started_following_you', + 'notifications:user_posted_to', + 'notifications:user_flagged_post_in', + 'new_register', + ]; + var isolated; + var differentiators; + var differentiator; + var modifyIndex; + var set; notifications = mergeIds.reduce(function (notifications, mergeId) { isolated = notifications.filter(function (notifObj) { diff --git a/src/plugins.js b/src/plugins.js index 84a9e148f7..5dfead6383 100644 --- a/src/plugins.js +++ b/src/plugins.js @@ -147,8 +147,8 @@ var middleware; }; Plugins.getTemplates = function (callback) { - var templates = {}, - tplName; + var templates = {}; + var tplName; async.waterfall([ async.apply(db.getSortedSetRange, 'plugins:active', 0, -1), diff --git a/src/plugins/hooks.js b/src/plugins/hooks.js index be0fb4cf8f..979cf90994 100644 --- a/src/plugins/hooks.js +++ b/src/plugins/hooks.js @@ -1,7 +1,7 @@ 'use strict'; -var winston = require('winston'), - async = require('async'); +var winston = require('winston'); +var async = require('async'); module.exports = function (Plugins) { Plugins.deprecatedHooks = { @@ -36,7 +36,7 @@ module.exports = function (Plugins) { (Plugins.deprecatedHooks[data.hook] ? 'please use `' + Plugins.deprecatedHooks[data.hook] + '` instead.' : 'there is no alternative.' - ), + ) ); } else { // handle hook's startsWith, i.e. action:homepage.get diff --git a/src/posts/parse.js b/src/posts/parse.js index e4b4cc7d3c..7497dc6781 100644 --- a/src/posts/parse.js +++ b/src/posts/parse.js @@ -49,7 +49,9 @@ module.exports = function (Posts) { Posts.relativeToAbsolute = function (content) { // Turns relative links in post body to absolute urls - var parsed, current, absolute; + var parsed; + var current; + var absolute; while ((current = urlRegex.exec(content)) !== null) { if (current[1]) { @@ -76,8 +78,8 @@ module.exports = function (Posts) { }; function sanitizeSignature(signature) { - var string = S(signature), - tagsToStrip = []; + var string = S(signature); + var tagsToStrip = []; if (parseInt(meta.config['signatures:disableLinks'], 10) === 1) { tagsToStrip.push('a'); diff --git a/src/posts/votes.js b/src/posts/votes.js index d13acf3736..3ecf71a018 100644 --- a/src/posts/votes.js +++ b/src/posts/votes.js @@ -158,9 +158,9 @@ module.exports = function (Posts) { return callback(new Error('[[error:not-enough-reputation-to-downvote]]')); } - var voteStatus = results.voteStatus, - hook, - current = voteStatus.upvoted ? 'upvote' : 'downvote'; + var voteStatus = results.voteStatus; + var hook; + var current = voteStatus.upvoted ? 'upvote' : 'downvote'; if (voteStatus.upvoted && command === 'downvote' || voteStatus.downvoted && command === 'upvote') { // e.g. User *has* upvoted, and clicks downvote hook = command; diff --git a/src/privileges/helpers.js b/src/privileges/helpers.js index 22d8795c7c..90c9c38ba4 100644 --- a/src/privileges/helpers.js +++ b/src/privileges/helpers.js @@ -31,7 +31,8 @@ function isUserAllowedToCids(privilege, uid, cids, callback) { return isGuestAllowedToCids(privilege, cids, callback); } - var userKeys = [], groupKeys = []; + var userKeys = []; + var groupKeys = []; for (var i = 0; i < cids.length; ++i) { userKeys.push('cid:' + cids[i] + ':privileges:' + privilege); groupKeys.push('cid:' + cids[i] + ':privileges:groups:' + privilege); @@ -63,7 +64,8 @@ function isUserAllowedToPrivileges(privileges, uid, cid, callback) { return isGuestAllowedToPrivileges(privileges, cid, callback); } - var userKeys = [], groupKeys = []; + var userKeys = []; + var groupKeys = []; for (var i = 0; i < privileges.length; ++i) { userKeys.push('cid:' + cid + ':privileges:' + privileges[i]); groupKeys.push('cid:' + cid + ':privileges:groups:' + privileges[i]); diff --git a/src/privileges/users.js b/src/privileges/users.js index 7bdac2df14..a91175ecb1 100644 --- a/src/privileges/users.js +++ b/src/privileges/users.js @@ -73,9 +73,9 @@ module.exports = function (privileges) { } var isMembers = checks.user.map(function (isMember, idx) { - return isMember || checks.group[idx]; - }), - map = {}; + return isMember || checks.group[idx]; + }); + var map = {}; uniqueCids.forEach(function (cid, index) { map[cid] = isMembers[index]; diff --git a/src/pubsub.js b/src/pubsub.js index a2e11746e1..f5c6c2f0ed 100644 --- a/src/pubsub.js +++ b/src/pubsub.js @@ -1,10 +1,10 @@ 'use strict'; -var nconf = require('nconf'), - util = require('util'), - winston = require('winston'), - EventEmitter = require('events').EventEmitter; +var nconf = require('nconf'); +var util = require('util'); +var winston = require('winston'); +var EventEmitter = require('events').EventEmitter; var channelName; diff --git a/src/routes/authentication.js b/src/routes/authentication.js index b0de9b9024..bc8833f034 100644 --- a/src/routes/authentication.js +++ b/src/routes/authentication.js @@ -1,17 +1,17 @@ (function (Auth) { "use strict"; - var passport = require('passport'), - passportLocal = require('passport-local').Strategy, - nconf = require('nconf'), - winston = require('winston'), - express = require('express'), + var passport = require('passport'); + var passportLocal = require('passport-local').Strategy; + var nconf = require('nconf'); + var winston = require('winston'); + var express = require('express'); - controllers = require('../controllers'), - plugins = require('../plugins'), - hotswap = require('../hotswap'), + var controllers = require('../controllers'); + var plugins = require('../plugins'); + var hotswap = require('../hotswap'); - loginStrategies = []; + var loginStrategies = []; Auth.initialize = function (app, middleware) { app.use(passport.initialize()); diff --git a/src/settings.js b/src/settings.js index a50c1ff51f..9472f3e4e5 100644 --- a/src/settings.js +++ b/src/settings.js @@ -3,7 +3,11 @@ var meta = require('./meta'); function expandObjBy(obj1, obj2) { - var key, val1, val2, xorValIsArray, changed = false; + var key; + var val1; + var val2; + var xorValIsArray; + var changed = false; for (key in obj2) { if (obj2.hasOwnProperty(key)) { val2 = obj2[key]; @@ -23,7 +27,8 @@ function expandObjBy(obj1, obj2) { } function trim(obj1, obj2) { - var key, val1; + var key; + var val1; for (key in obj1) { if (obj1.hasOwnProperty(key)) { val1 = obj1[key]; @@ -106,8 +111,8 @@ Settings.prototype.sync = function (callback) { @param callback Gets called when done. */ Settings.prototype.persist = function (callback) { - var conf = this.cfg._, - _this = this; + var conf = this.cfg._; + var _this = this; if (typeof conf === 'object') { conf = JSON.stringify(conf); } @@ -126,9 +131,9 @@ Settings.prototype.persist = function (callback) { @returns Object The setting to be used. */ Settings.prototype.get = function (key, def) { - var obj = this.cfg._, - parts = (key || '').split('.'), - part; + var obj = this.cfg._; + var parts = (key || '').split('.'); + var part; for (var i = 0; i < parts.length; i++) { part = parts[i]; if (part && obj != null) { @@ -183,7 +188,9 @@ Settings.prototype.createDefaultWrapper = function () { @param val The value to set. */ Settings.prototype.set = function (key, val) { - var part, obj, parts; + var part; + var obj; + var parts; this.cfg.v = this.version; if (val == null || !key) { this.cfg._ = val || key; diff --git a/src/socket.io/admin/navigation.js b/src/socket.io/admin/navigation.js index 2f4d9817b4..07af8baa04 100644 --- a/src/socket.io/admin/navigation.js +++ b/src/socket.io/admin/navigation.js @@ -1,7 +1,7 @@ "use strict"; -var navigationAdmin = require('../../navigation/admin'), - SocketNavigation = {}; +var navigationAdmin = require('../../navigation/admin'); +var SocketNavigation = {}; SocketNavigation.save = function (socket, data, callback) { navigationAdmin.save(data, callback); diff --git a/src/socket.io/admin/social.js b/src/socket.io/admin/social.js index 77227ea760..5cb797edf1 100644 --- a/src/socket.io/admin/social.js +++ b/src/socket.io/admin/social.js @@ -1,7 +1,7 @@ "use strict"; -var social = require('../../social'), - SocketSocial = {}; +var social = require('../../social'); +var SocketSocial = {}; SocketSocial.savePostSharingNetworks = function (socket, data, callback) { social.setActivePostSharingNetworks(data, callback); diff --git a/src/topics.js b/src/topics.js index ec03c04b47..1da7994a7b 100644 --- a/src/topics.js +++ b/src/topics.js @@ -89,7 +89,9 @@ var social = require('./social'); return callback(null, []); } - var uids, cids, topics; + var uids; + var cids; + var topics; async.waterfall([ function (next) { diff --git a/src/topics/delete.js b/src/topics/delete.js index 9d114629ae..4dc1e866d2 100644 --- a/src/topics/delete.js +++ b/src/topics/delete.js @@ -70,7 +70,8 @@ module.exports = function (Topics) { postData = postData.filter(function (post) { return post && parseInt(post.deleted, 10) !== 1; }); - var pidsToAdd = [], scores = []; + var pidsToAdd = []; + var scores = []; postData.forEach(function (post) { pidsToAdd.push(post.pid); scores.push(post.timestamp); diff --git a/src/topics/posts.js b/src/topics/posts.js index 69905b454e..5ab032cedc 100644 --- a/src/topics/posts.js +++ b/src/topics/posts.js @@ -263,7 +263,7 @@ module.exports = function (Topics) { }, function (err) { callback(err, latestPid); - }, + } ); }; diff --git a/src/user/auth.js b/src/user/auth.js index 92b206b4c0..ddbcc57520 100644 --- a/src/user/auth.js +++ b/src/user/auth.js @@ -78,8 +78,8 @@ module.exports = function (User) { }); // Revoke any sessions that have expired, return filtered list - var expiredSids = [], - expired; + var expiredSids = []; + var expired; sessions = sessions.filter(function (sessionObj, idx) { expired = !sessionObj || !sessionObj.hasOwnProperty('passport') || diff --git a/src/user/info.js b/src/user/info.js index 16b383340c..6df33f4757 100644 --- a/src/user/info.js +++ b/src/user/info.js @@ -11,7 +11,9 @@ var topics = require('../topics'); module.exports = function (User) { User.getLatestBanInfo = function (uid, callback) { // Simply retrieves the last record of the user's ban, even if they've been unbanned since then. - var timestamp, expiry, reason; + var timestamp; + var expiry; + var reason; async.waterfall([ async.apply(db.getSortedSetRevRangeWithScores, 'uid:' + uid + ':bans', 0, 0), diff --git a/src/user/picture.js b/src/user/picture.js index 1d5653c371..379834f914 100644 --- a/src/user/picture.js +++ b/src/user/picture.js @@ -126,7 +126,8 @@ module.exports = function (User) { User.updateCoverPicture = function (data, callback) { var keepAllVersions = parseInt(meta.config['profile:keepAllUserImages'], 10) === 1; - var url, md5sum; + var url; + var md5sum; if (!data.imageData && data.position) { return User.updateCoverPosition(data.uid, data.position, callback); @@ -224,7 +225,8 @@ module.exports = function (User) { User.uploadCroppedPicture = function (data, callback) { var keepAllVersions = parseInt(meta.config['profile:keepAllUserImages'], 10) === 1; - var url, md5sum; + var url; + var md5sum; if (!data.imageData) { return callback(new Error('[[error:invalid-data]]')); diff --git a/src/user/reset.js b/src/user/reset.js index dc484d1825..9b3732c13e 100644 --- a/src/user/reset.js +++ b/src/user/reset.js @@ -1,16 +1,16 @@ 'use strict'; -var async = require('async'), - nconf = require('nconf'), - winston = require('winston'), +var async = require('async'); +var nconf = require('nconf'); +var winston = require('winston'); - user = require('../user'), - utils = require('../../public/src/utils'), - translator = require('../../public/src/modules/translator'), +var user = require('../user'); +var utils = require('../../public/src/utils'); +var translator = require('../../public/src/modules/translator'); - db = require('../database'), - meta = require('../meta'), - emailer = require('../emailer'); +var db = require('../database'); +var meta = require('../meta'); +var emailer = require('../emailer'); (function (UserReset) { var twoHours = 7200000; diff --git a/src/widgets/admin.js b/src/widgets/admin.js index e92df2e154..c4730f7de9 100644 --- a/src/widgets/admin.js +++ b/src/widgets/admin.js @@ -48,8 +48,9 @@ admin.get = function (callback) { w.content += widgetData.adminTemplate; }); - var templates = [], - list = {}, index = 0; + var templates = []; + var list = {}; + var index = 0; widgetData.areas.forEach(function (area) { if (typeof list[area.template] === 'undefined') { diff --git a/test/database/hash.js b/test/database/hash.js index 266e8cbdae..39df28e6fc 100644 --- a/test/database/hash.js +++ b/test/database/hash.js @@ -1,9 +1,9 @@ 'use strict'; /*global require, after, before*/ -var async = require('async'), - assert = require('assert'), - db = require('../mocks/databasemock'); +var async = require('async'); +var assert = require('assert'); +var db = require('../mocks/databasemock'); describe('Hash methods', function () { var testData = { diff --git a/test/database/keys.js b/test/database/keys.js index 602731241f..7f44fea060 100644 --- a/test/database/keys.js +++ b/test/database/keys.js @@ -1,9 +1,9 @@ 'use strict'; /*global require, after*/ -var async = require('async'), - assert = require('assert'), - db = require('../mocks/databasemock'); +var async = require('async'); +var assert = require('assert'); +var db = require('../mocks/databasemock'); describe('Key methods', function () { diff --git a/test/database/list.js b/test/database/list.js index 09528a00fe..4d51b3dbd9 100644 --- a/test/database/list.js +++ b/test/database/list.js @@ -1,9 +1,9 @@ 'use strict'; /*global require, after, before*/ -var async = require('async'), - assert = require('assert'), - db = require('../mocks/databasemock'); +var async = require('async'); +var assert = require('assert'); +var db = require('../mocks/databasemock'); describe('List methods', function () { diff --git a/test/database/sets.js b/test/database/sets.js index a753de9eae..7b36d5fc60 100644 --- a/test/database/sets.js +++ b/test/database/sets.js @@ -1,9 +1,9 @@ 'use strict'; /*global require, after, before*/ -var async = require('async'), - assert = require('assert'), - db = require('../mocks/databasemock'); +var async = require('async'); +var assert = require('assert'); +var db = require('../mocks/databasemock'); describe('Set methods', function () { diff --git a/test/database/sorted.js b/test/database/sorted.js index f3c7c297f9..f1ed54ca00 100644 --- a/test/database/sorted.js +++ b/test/database/sorted.js @@ -1,9 +1,9 @@ 'use strict'; /*global require, after, before*/ -var async = require('async'), - assert = require('assert'), - db = require('../mocks/databasemock'); +var async = require('async'); +var assert = require('assert'); +var db = require('../mocks/databasemock'); describe('Sorted Set methods', function () { diff --git a/test/mocks/databasemock.js b/test/mocks/databasemock.js index 00f076ae2a..1ef42e3298 100644 --- a/test/mocks/databasemock.js +++ b/test/mocks/databasemock.js @@ -60,7 +60,7 @@ ' "password": "",' + '\n' + ' "database": "nodebb_test"' + '\n' + '}\n' + - '===========================================================', + '===========================================================' ); winston.error(errorText); throw new Error(errorText); diff --git a/test/search-admin.js b/test/search-admin.js index 8a8a810f63..216d26d35f 100644 --- a/test/search-admin.js +++ b/test/search-admin.js @@ -40,7 +40,7 @@ describe('admin search', function () { search.sanitize('Pellentesque tristique senectus' + ' habitant morbi'), 'Pellentesque tristique senectus' + - ' habitant morbi', + ' habitant morbi' ); done(); }); @@ -49,7 +49,7 @@ describe('admin search', function () { search.sanitize('

    Pellentesque habitant morbi tristique senectus' + 'Aenean vitae est.Mauris eleifend leo.

    '), 'Pellentesque habitant morbi tristique senectus' + - 'Aenean vitae est.Mauris eleifend leo.', + 'Aenean vitae est.Mauris eleifend leo.' ); done(); }); @@ -60,10 +60,10 @@ describe('admin search', function () { assert.equal( search.simplify( 'Pellentesque tristique {{senectus}}habitant morbi' + - 'liquam tincidunt {mauris.eu}risus', + 'liquam tincidunt {mauris.eu}risus' ), 'Pellentesque tristique habitant morbi' + - 'liquam tincidunt risus', + 'liquam tincidunt risus' ); done(); }); @@ -71,10 +71,10 @@ describe('admin search', function () { assert.equal( search.simplify( 'Pellentesque tristique habitant morbi' + - ' \n\n liquam tincidunt mauris eu risus.', + ' \n\n liquam tincidunt mauris eu risus.' ), 'Pellentesque tristique habitant morbi' + - '\nliquam tincidunt mauris eu risus.', + '\nliquam tincidunt mauris eu risus.' ); done(); }); diff --git a/test/topics.js b/test/topics.js index 741f095192..88d264f4fd 100644 --- a/test/topics.js +++ b/test/topics.js @@ -569,7 +569,7 @@ describe('Topic\'s', function () { assert.ok(result); replies.push(result); next(); - }, + } ); } diff --git a/test/translator.js b/test/translator.js index ad8c9c34ee..8198814164 100644 --- a/test/translator.js +++ b/test/translator.js @@ -218,7 +218,7 @@ describe('Translator static methods', function () { it('should remove translator patterns from text', function (done) { assert.strictEqual( Translator.removePatterns('Lorem ipsum dolor [[sit:amet]], consectetur adipiscing elit. [[sed:vitae, [[semper:dolor]]]] lorem'), - 'Lorem ipsum dolor , consectetur adipiscing elit. lorem', + 'Lorem ipsum dolor , consectetur adipiscing elit. lorem' ); done(); }); @@ -227,7 +227,7 @@ describe('Translator static methods', function () { it('should escape translation patterns within text', function (done) { assert.strictEqual( Translator.escape('some nice text [[global:home]] here'), - 'some nice text \\[\\[global:home\\]\\] here', + 'some nice text \\[\\[global:home\\]\\] here' ); done(); }); @@ -237,7 +237,7 @@ describe('Translator static methods', function () { it('should unescape escaped translation patterns within text', function (done) { assert.strictEqual( Translator.unescape('some nice text \\[\\[global:home\\]\\] here'), - 'some nice text [[global:home]] here', + 'some nice text [[global:home]] here' ); done(); }); @@ -247,7 +247,7 @@ describe('Translator static methods', function () { it('should create a translator pattern from a key and list of arguments', function (done) { assert.strictEqual( Translator.compile('amazing:cool', 'awesome', 'great'), - '[[amazing:cool, awesome, great]]', + '[[amazing:cool, awesome, great]]' ); done(); }); @@ -255,7 +255,7 @@ describe('Translator static methods', function () { it('should escape `%` and `,` in arguments', function (done) { assert.strictEqual( Translator.compile('amazing:cool', '100% awesome!', 'one, two, and three'), - '[[amazing:cool, 100% awesome!, one, two, and three]]', + '[[amazing:cool, 100% awesome!, one, two, and three]]' ); done(); }); diff --git a/test/user.js b/test/user.js index a9003d6b9c..96d6cfbbfc 100644 --- a/test/user.js +++ b/test/user.js @@ -230,8 +230,8 @@ describe('User', function () { }); describe('passwordReset', function () { - var uid, - code; + var uid; + var code; before(function (done) { User.create({username: 'resetuser', password: '123456', email: 'reset@me.com'}, function (err, newUid) { assert.ifError(err); diff --git a/test/utils.js b/test/utils.js index 95f3040df4..bb71b0c9ec 100644 --- a/test/utils.js +++ b/test/utils.js @@ -30,8 +30,8 @@ describe('Utility Methods', function () { describe('UUID generation', function () { it('return unique random value every time', function () { - var uuid1 = utils.generateUUID(), - uuid2 = utils.generateUUID(); + var uuid1 = utils.generateUUID(); + var uuid2 = utils.generateUUID(); assert.notEqual(uuid1, uuid2, 'matches'); }); }); From b09b3aef7fe501759156c914eff80d4c591d4ac0 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Fri, 17 Feb 2017 21:55:19 -0700 Subject: [PATCH 03/60] ESlint no-undef, remove global comments --- .eslintrc.json => .eslintrc | 2 +- app.js | 1 - public/.eslintrc | 22 +++++ public/.jshintrc | 84 +++++++++++++++++++ public/src/admin/.eslintrc | 8 ++ public/src/admin/advanced/errors.js | 2 +- public/src/admin/advanced/events.js | 2 +- public/src/admin/advanced/logs.js | 2 +- public/src/admin/appearance/customise.js | 2 +- public/src/admin/appearance/skins.js | 2 +- public/src/admin/appearance/themes.js | 2 +- public/src/admin/extend/plugins.js | 2 +- public/src/admin/extend/rewards.js | 2 +- public/src/admin/extend/widgets.js | 2 +- public/src/admin/general/dashboard.js | 2 +- public/src/admin/general/homepage.js | 2 +- public/src/admin/general/languages.js | 2 +- public/src/admin/general/navigation.js | 2 +- public/src/admin/general/social.js | 2 +- public/src/admin/general/sounds.js | 2 +- public/src/admin/manage/categories.js | 2 +- public/src/admin/manage/category-analytics.js | 2 +- public/src/admin/manage/category.js | 2 +- public/src/admin/manage/flags.js | 2 +- public/src/admin/manage/group.js | 2 +- public/src/admin/manage/groups.js | 2 +- public/src/admin/manage/ip-blacklist.js | 2 +- public/src/admin/manage/registration.js | 2 +- public/src/admin/manage/tags.js | 2 +- public/src/admin/manage/users.js | 2 +- public/src/admin/modules/colorpicker.js | 2 +- public/src/admin/modules/instance.js | 2 +- public/src/admin/modules/search.js | 2 +- public/src/admin/modules/selectable.js | 2 +- public/src/admin/settings.js | 2 +- public/src/admin/settings/cookies.js | 2 +- public/src/admin/settings/email.js | 2 +- public/src/admin/settings/general.js | 2 +- public/src/ajaxify.js | 2 +- public/src/app.js | 2 +- public/src/client/account/best.js | 2 +- public/src/client/account/bookmarks.js | 2 +- public/src/client/account/downvoted.js | 2 +- public/src/client/account/edit.js | 2 +- public/src/client/account/edit/email.js | 2 +- public/src/client/account/edit/password.js | 2 +- public/src/client/account/edit/username.js | 2 +- public/src/client/account/followers.js | 2 +- public/src/client/account/following.js | 2 +- public/src/client/account/groups.js | 2 +- public/src/client/account/header.js | 2 +- public/src/client/account/info.js | 2 +- public/src/client/account/posts.js | 2 +- public/src/client/account/profile.js | 2 +- public/src/client/account/settings.js | 2 +- public/src/client/account/topics.js | 2 +- public/src/client/account/upvoted.js | 2 +- public/src/client/account/watched.js | 2 +- public/src/client/categories.js | 2 +- public/src/client/category.js | 2 +- public/src/client/category/tools.js | 2 +- public/src/client/chats.js | 2 +- public/src/client/chats/messages.js | 2 +- public/src/client/chats/recent.js | 2 +- public/src/client/chats/search.js | 2 +- public/src/client/compose.js | 2 +- public/src/client/footer.js | 2 +- public/src/client/groups/details.js | 2 +- public/src/client/groups/list.js | 2 +- public/src/client/groups/memberlist.js | 2 +- public/src/client/infinitescroll.js | 2 +- public/src/client/login.js | 2 +- public/src/client/notifications.js | 2 +- public/src/client/pagination.js | 2 +- public/src/client/popular.js | 2 +- public/src/client/recent.js | 2 +- public/src/client/register.js | 2 +- public/src/client/reset.js | 2 +- public/src/client/reset_code.js | 2 +- public/src/client/search.js | 2 +- public/src/client/tag.js | 2 +- public/src/client/tags.js | 2 +- public/src/client/topic.js | 2 +- public/src/client/topic/delete-posts.js | 2 +- public/src/client/topic/events.js | 2 +- public/src/client/topic/flag.js | 2 +- public/src/client/topic/fork.js | 2 +- public/src/client/topic/move-post.js | 2 +- public/src/client/topic/move.js | 2 +- public/src/client/topic/postTools.js | 2 +- public/src/client/topic/posts.js | 2 +- public/src/client/topic/replies.js | 2 +- public/src/client/topic/threadTools.js | 2 +- public/src/client/topic/votes.js | 2 +- public/src/client/unread.js | 2 +- public/src/client/users.js | 2 +- public/src/installer/install.js | 2 +- public/src/modules/alerts.js | 2 +- public/src/modules/autocomplete.js | 2 +- public/src/modules/chat.js | 2 +- public/src/modules/coverPhoto.js | 2 +- public/src/modules/helpers.js | 4 +- public/src/modules/iconSelect.js | 2 +- public/src/modules/navigator.js | 2 +- public/src/modules/notifications.js | 2 +- public/src/modules/pictureCropper.js | 2 +- public/src/modules/postSelect.js | 2 +- public/src/modules/scrollStop.js | 2 +- public/src/modules/search.js | 2 +- public/src/modules/settings.js | 2 +- public/src/modules/share.js | 2 +- public/src/modules/sort.js | 2 +- public/src/modules/sounds.js | 2 +- public/src/modules/taskbar.js | 2 +- public/src/modules/topicSelect.js | 2 +- public/src/modules/translator.js | 2 +- public/src/modules/uploader.js | 2 +- public/src/overrides.js | 2 +- public/src/sockets.js | 2 +- public/src/widgets.js | 2 +- src/messaging/unread.js | 2 +- src/meta/languages.js | 2 +- src/upgrade.js | 2 +- test/.eslintrc | 5 ++ test/authentication.js | 2 +- test/categories.js | 2 +- test/database.js | 2 +- test/database/hash.js | 2 +- test/database/keys.js | 2 +- test/database/list.js | 2 +- test/database/sets.js | 2 +- test/database/sorted.js | 2 +- test/mocks/databasemock.js | 2 +- test/notifications.js | 2 +- test/pagination.js | 2 +- test/plugins.js | 2 +- test/posts.js | 2 +- test/search-admin.js | 2 +- test/search.js | 2 +- test/socket.io.js | 2 +- test/translator.js | 2 +- test/utils.js | 2 +- 142 files changed, 257 insertions(+), 139 deletions(-) rename .eslintrc.json => .eslintrc (99%) create mode 100644 public/.eslintrc create mode 100644 public/.jshintrc create mode 100644 public/src/admin/.eslintrc create mode 100644 test/.eslintrc diff --git a/.eslintrc.json b/.eslintrc similarity index 99% rename from .eslintrc.json rename to .eslintrc index e89a04f1dc..e1374e915b 100644 --- a/.eslintrc.json +++ b/.eslintrc @@ -14,7 +14,7 @@ "import/no-unresolved": "off", "import/no-extraneous-dependencies": "off", // "one-var": "off", - "no-undef": "off", + // "no-undef": "off", "max-len": "off", "no-new": "off", "max-nested-callbacks": "off", diff --git a/app.js b/app.js index 5c667bc14b..1cd10a446c 100644 --- a/app.js +++ b/app.js @@ -18,7 +18,6 @@ */ "use strict"; -/*global require, global, process*/ var nconf = require('nconf'); nconf.argv().env('__'); diff --git a/public/.eslintrc b/public/.eslintrc new file mode 100644 index 0000000000..6e7ddc57e0 --- /dev/null +++ b/public/.eslintrc @@ -0,0 +1,22 @@ +{ + "globals": { + "app": true, + "io": true, + "socket": true, + "ajaxify": true, + "config": true, + "RELATIVE_PATH": true, + "utils": true, + "overrides": true, + "componentHandler": true, + "bootbox": true, + "templates": true, + "Visibility": true, + "Tinycon": true + }, + "env": { + "jquery": true, + "amd": true, + "browser": true + } +} diff --git a/public/.jshintrc b/public/.jshintrc new file mode 100644 index 0000000000..5201bccc62 --- /dev/null +++ b/public/.jshintrc @@ -0,0 +1,84 @@ +{ + "maxerr" : 50, // {int} Maximum error before stopping + + // Enforcing + "bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.) + "camelcase" : false, // true: Identifiers must be in camelCase + "curly" : true, // true: Require {} for every new block or scope + "eqeqeq" : true, // true: Require triple equals (===) for comparison + "forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty() + "immed" : false, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());` + "indent" : 4, // {int} Number of spaces to use for indentation + "latedef" : false, // true: Require variables/functions to be defined before being used + "newcap" : false, // true: Require capitalization of all constructor functions e.g. `new F()` + "noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee` + "noempty" : true, // true: Prohibit use of empty blocks + "nonew" : false, // true: Prohibit use of constructors for side-effects (without assignment) + "plusplus" : false, // true: Prohibit use of `++` & `--` + "quotmark" : false, // Quotation mark consistency: + // false : do nothing (default) + // true : ensure whatever is used is consistent + // "single" : require single quotes + // "double" : require double quotes + "undef" : true, // true: Require all non-global variables to be declared (prevents global leaks) + "unused" : true, // true: Require all defined variables be used + "strict" : true, // true: Requires all functions run in ES5 Strict Mode + "trailing" : false, // true: Prohibit trailing whitespaces + "maxparams" : false, // {int} Max number of formal params allowed per function + "maxdepth" : false, // {int} Max depth of nested blocks (within functions) + "maxstatements" : false, // {int} Max number statements per function + "maxcomplexity" : false, // {int} Max cyclomatic complexity per function + "maxlen" : false, // {int} Max number of characters per line + + // Relaxing + "asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons) + "boss" : false, // true: Tolerate assignments where comparisons would be expected + "debug" : false, // true: Allow debugger statements e.g. browser breakpoints. + "eqnull" : false, // true: Tolerate use of `== null` + "es5" : false, // true: Allow ES5 syntax (ex: getters and setters) + "esnext" : false, // true: Allow ES.next (ES6) syntax (ex: `const`) + "moz" : false, // true: Allow Mozilla specific syntax (extends and overrides esnext features) + // (ex: `for each`, multiple try/catch, function expression…) + "evil" : false, // true: Tolerate use of `eval` and `new Function()` + "expr" : false, // true: Tolerate `ExpressionStatement` as Programs + "funcscope" : false, // true: Tolerate defining variables inside control statements" + "globalstrict" : false, // true: Allow global "use strict" (also enables 'strict') + "iterator" : false, // true: Tolerate using the `__iterator__` property + "lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block + "laxbreak" : false, // true: Tolerate possibly unsafe line breakings + "laxcomma" : false, // true: Tolerate comma-first style coding + "loopfunc" : false, // true: Tolerate functions being defined in loops + "multistr" : false, // true: Tolerate multi-line strings + "proto" : false, // true: Tolerate using the `__proto__` property + "scripturl" : false, // true: Tolerate script-targeted URLs + "smarttabs" : false, // true: Tolerate mixed tabs/spaces when used for alignment + "shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;` + "sub" : false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation + "supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;` + "validthis" : false, // true: Tolerate using this in a non-constructor function + + "globals": { + "app": true, + "io": true, + "socket": true, + "ajaxify": true, + "config": true, + "RELATIVE_PATH": true, + "utils": true, + "overrides": true, + "componentHandler": true, + "bootbox": true, + "templates": true, + "Visibility": true, + "Tinycon": true, + "require": true, + "define": true, + "ace": true, + "Sortable": true, + "Slideout": true, + "NProgress": true + }, + + "jquery": true, + "browser": true +} \ No newline at end of file diff --git a/public/src/admin/.eslintrc b/public/src/admin/.eslintrc new file mode 100644 index 0000000000..0c670302fa --- /dev/null +++ b/public/src/admin/.eslintrc @@ -0,0 +1,8 @@ +{ + "globals": { + "ace": true, + "Sortable": true, + "Slideout": true, + "NProgress": true + } +} \ No newline at end of file diff --git a/public/src/admin/advanced/errors.js b/public/src/admin/advanced/errors.js index 827309d14c..ec1bf1bff5 100644 --- a/public/src/admin/advanced/errors.js +++ b/public/src/admin/advanced/errors.js @@ -1,5 +1,5 @@ "use strict"; -/*global config, define, app, socket, ajaxify, bootbox, templates, Chart, utils */ + define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, translator) { var Errors = {}; diff --git a/public/src/admin/advanced/events.js b/public/src/admin/advanced/events.js index b4f18414ea..9da3f0fcec 100644 --- a/public/src/admin/advanced/events.js +++ b/public/src/admin/advanced/events.js @@ -1,6 +1,6 @@ "use strict"; -/* global define, socket, app */ + define('admin/advanced/events', function () { diff --git a/public/src/admin/advanced/logs.js b/public/src/admin/advanced/logs.js index 9f3e6d4d94..054e1af77d 100644 --- a/public/src/admin/advanced/logs.js +++ b/public/src/admin/advanced/logs.js @@ -1,5 +1,5 @@ "use strict"; -/* global define, socket, app */ + define('admin/advanced/logs', function () { var Logs = {}; diff --git a/public/src/admin/appearance/customise.js b/public/src/admin/appearance/customise.js index b5b4df85cd..b38b391828 100644 --- a/public/src/admin/appearance/customise.js +++ b/public/src/admin/appearance/customise.js @@ -1,5 +1,5 @@ "use strict"; -/* global ace, define, app, socket */ + define('admin/appearance/customise', ['admin/settings'], function (Settings) { var Customise = {}; diff --git a/public/src/admin/appearance/skins.js b/public/src/admin/appearance/skins.js index d314d948c5..e6651551f4 100644 --- a/public/src/admin/appearance/skins.js +++ b/public/src/admin/appearance/skins.js @@ -1,5 +1,5 @@ "use strict"; -/* global define, app, socket, templates */ + define('admin/appearance/skins', ['translator'], function (translator) { var Skins = {}; diff --git a/public/src/admin/appearance/themes.js b/public/src/admin/appearance/themes.js index 68f899da37..d217520a13 100644 --- a/public/src/admin/appearance/themes.js +++ b/public/src/admin/appearance/themes.js @@ -1,5 +1,5 @@ "use strict"; -/* global define, app, socket, bootbox, templates, config */ + define('admin/appearance/themes', ['translator'], function (translator) { var Themes = {}; diff --git a/public/src/admin/extend/plugins.js b/public/src/admin/extend/plugins.js index fc487e975f..ed99847dd3 100644 --- a/public/src/admin/extend/plugins.js +++ b/public/src/admin/extend/plugins.js @@ -1,5 +1,5 @@ "use strict"; -/* global define, app, socket, bootbox */ + define('admin/extend/plugins', ['jqueryui', 'translator'], function (jqueryui, translator) { var Plugins = {}; diff --git a/public/src/admin/extend/rewards.js b/public/src/admin/extend/rewards.js index f02f106f64..50b2adebf0 100644 --- a/public/src/admin/extend/rewards.js +++ b/public/src/admin/extend/rewards.js @@ -1,5 +1,5 @@ "use strict"; -/* global define, app, ajaxify, socket, templates, bootbox */ + define('admin/extend/rewards', ['translator'], function (translator) { var rewards = {}; diff --git a/public/src/admin/extend/widgets.js b/public/src/admin/extend/widgets.js index a57a82ab57..b8a07d9d97 100644 --- a/public/src/admin/extend/widgets.js +++ b/public/src/admin/extend/widgets.js @@ -1,5 +1,5 @@ "use strict"; -/* global define, app, socket, bootbox */ + define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { var Widgets = {}; diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index 4af4d0d579..6097a58339 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -1,5 +1,5 @@ "use strict"; -/*global define, ajaxify, app, socket, utils, bootbox, RELATIVE_PATH*/ + define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (semver, Chart, translator) { var Admin = {}; diff --git a/public/src/admin/general/homepage.js b/public/src/admin/general/homepage.js index f0239e784c..7116422048 100644 --- a/public/src/admin/general/homepage.js +++ b/public/src/admin/general/homepage.js @@ -1,5 +1,5 @@ "use strict"; -/*global define*/ + define('admin/general/homepage', ['admin/settings'], function (Settings) { diff --git a/public/src/admin/general/languages.js b/public/src/admin/general/languages.js index 8ccf016698..d0d270f5c2 100644 --- a/public/src/admin/general/languages.js +++ b/public/src/admin/general/languages.js @@ -1,5 +1,5 @@ "use strict"; -/*global define*/ + define('admin/general/languages', ['admin/settings'], function (Settings) { var Languages = {}; diff --git a/public/src/admin/general/navigation.js b/public/src/admin/general/navigation.js index 63f4ff26a4..3181ebacee 100644 --- a/public/src/admin/general/navigation.js +++ b/public/src/admin/general/navigation.js @@ -1,5 +1,5 @@ "use strict"; -/* global define, app, ajaxify, socket, templates */ + define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], function (translator, iconSelect, jqueryui) { var navigation = {}; diff --git a/public/src/admin/general/social.js b/public/src/admin/general/social.js index cfcc3d3c52..45f02afa66 100644 --- a/public/src/admin/general/social.js +++ b/public/src/admin/general/social.js @@ -1,5 +1,5 @@ "use strict"; -/*global define, socket*/ + define('admin/general/social', [], function () { var social = {}; diff --git a/public/src/admin/general/sounds.js b/public/src/admin/general/sounds.js index e258e0db55..a3f25de5af 100644 --- a/public/src/admin/general/sounds.js +++ b/public/src/admin/general/sounds.js @@ -1,5 +1,5 @@ "use strict"; -/* global app, define, socket */ + define('admin/general/sounds', ['sounds', 'settings'], function (Sounds, Settings) { var SoundsAdmin = {}; diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js index 7004854649..8d83050bf1 100644 --- a/public/src/admin/manage/categories.js +++ b/public/src/admin/manage/categories.js @@ -1,5 +1,5 @@ "use strict"; -/*global define, socket, app, bootbox, templates, ajaxify, Sortable */ + define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-serializeobject.min', 'translator'], function (serialize, translator) { var Categories = {}; diff --git a/public/src/admin/manage/category-analytics.js b/public/src/admin/manage/category-analytics.js index 95f8093d2f..c9cf8162f4 100644 --- a/public/src/admin/manage/category-analytics.js +++ b/public/src/admin/manage/category-analytics.js @@ -1,5 +1,5 @@ "use strict"; -/*global define, ajaxify, utils */ + define('admin/manage/category-analytics', ['Chart'], function (Chart) { var CategoryAnalytics = {}; diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js index 527a66c3ed..d864a96b94 100644 --- a/public/src/admin/manage/category.js +++ b/public/src/admin/manage/category.js @@ -1,5 +1,5 @@ "use strict"; -/*global config, define, app, socket, ajaxify, bootbox, templates */ + define('admin/manage/category', [ 'uploader', diff --git a/public/src/admin/manage/flags.js b/public/src/admin/manage/flags.js index 16f928c260..eec663ffcb 100644 --- a/public/src/admin/manage/flags.js +++ b/public/src/admin/manage/flags.js @@ -1,5 +1,5 @@ "use strict"; -/*global define, socket, app, utils, bootbox, ajaxify*/ + define('admin/manage/flags', [ 'autocomplete', diff --git a/public/src/admin/manage/group.js b/public/src/admin/manage/group.js index 973c20fd83..b799b7c9ea 100644 --- a/public/src/admin/manage/group.js +++ b/public/src/admin/manage/group.js @@ -1,5 +1,5 @@ "use strict"; -/*global define, templates, socket, ajaxify, app, bootbox */ + define('admin/manage/group', [ 'forum/groups/memberlist', diff --git a/public/src/admin/manage/groups.js b/public/src/admin/manage/groups.js index 58488bde7c..718437eb50 100644 --- a/public/src/admin/manage/groups.js +++ b/public/src/admin/manage/groups.js @@ -1,5 +1,5 @@ "use strict"; -/*global define, templates, socket, ajaxify, app, admin, bootbox, utils, config */ + define('admin/manage/groups', ['translator'], function (translator) { var Groups = {}; diff --git a/public/src/admin/manage/ip-blacklist.js b/public/src/admin/manage/ip-blacklist.js index 637dd5ebe9..b77aa7e064 100644 --- a/public/src/admin/manage/ip-blacklist.js +++ b/public/src/admin/manage/ip-blacklist.js @@ -1,5 +1,5 @@ 'use strict'; -/* globals $, app, socket, templates, define, bootbox */ + define('admin/manage/ip-blacklist', ['translator'], function (translator) { diff --git a/public/src/admin/manage/registration.js b/public/src/admin/manage/registration.js index 230a02b1d8..d1c999ab99 100644 --- a/public/src/admin/manage/registration.js +++ b/public/src/admin/manage/registration.js @@ -1,6 +1,6 @@ "use strict"; -/* global config, socket, define, templates, bootbox, app, ajaxify, */ + define('admin/manage/registration', function () { var Registration = {}; diff --git a/public/src/admin/manage/tags.js b/public/src/admin/manage/tags.js index b9001dabc2..29fb27ba3e 100644 --- a/public/src/admin/manage/tags.js +++ b/public/src/admin/manage/tags.js @@ -1,5 +1,5 @@ "use strict"; -/*global define, socket, app, utils, bootbox, ajaxify*/ + define('admin/manage/tags', [ 'forum/infinitescroll', diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js index 858baaff75..c4a8df97d6 100644 --- a/public/src/admin/manage/users.js +++ b/public/src/admin/manage/users.js @@ -1,6 +1,6 @@ "use strict"; -/* global config, socket, define, templates, bootbox, app, ajaxify */ + define('admin/manage/users', ['translator'], function (translator) { var Users = {}; diff --git a/public/src/admin/modules/colorpicker.js b/public/src/admin/modules/colorpicker.js index 84dbc5f052..29329c4085 100644 --- a/public/src/admin/modules/colorpicker.js +++ b/public/src/admin/modules/colorpicker.js @@ -1,6 +1,6 @@ "use strict"; -/*globals define*/ + define('admin/modules/colorpicker', function () { var colorpicker = {}; diff --git a/public/src/admin/modules/instance.js b/public/src/admin/modules/instance.js index 89e627d639..ca115199c4 100644 --- a/public/src/admin/modules/instance.js +++ b/public/src/admin/modules/instance.js @@ -1,6 +1,6 @@ "use strict"; -/*globals define, app, socket*/ + define('admin/modules/instance', function () { var instance = {}; diff --git a/public/src/admin/modules/search.js b/public/src/admin/modules/search.js index 29379f0dac..d485131e6c 100644 --- a/public/src/admin/modules/search.js +++ b/public/src/admin/modules/search.js @@ -1,5 +1,5 @@ "use strict"; -/* globals socket, app, define, ajaxify, config */ + define('admin/modules/search', ['mousetrap'], function (mousetrap) { var search = {}; diff --git a/public/src/admin/modules/selectable.js b/public/src/admin/modules/selectable.js index a3a693d49b..8dc8b4e489 100644 --- a/public/src/admin/modules/selectable.js +++ b/public/src/admin/modules/selectable.js @@ -1,6 +1,6 @@ "use strict"; -/*globals define*/ + define('admin/modules/selectable', ['jqueryui'], function (jqueryui) { var selectable = {}; diff --git a/public/src/admin/settings.js b/public/src/admin/settings.js index 13fa82cf68..d9ae99714f 100644 --- a/public/src/admin/settings.js +++ b/public/src/admin/settings.js @@ -1,5 +1,5 @@ 'use strict'; -/*global define, app, socket, ajaxify */ + define('admin/settings', ['uploader'], function (uploader) { var Settings = {}; diff --git a/public/src/admin/settings/cookies.js b/public/src/admin/settings/cookies.js index 26d2b90a37..10e825d4ae 100644 --- a/public/src/admin/settings/cookies.js +++ b/public/src/admin/settings/cookies.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define */ + define('admin/settings/cookies', [ 'admin/modules/colorpicker', diff --git a/public/src/admin/settings/email.js b/public/src/admin/settings/email.js index 4f2275ecb2..e4b02bebc1 100644 --- a/public/src/admin/settings/email.js +++ b/public/src/admin/settings/email.js @@ -1,5 +1,5 @@ "use strict"; -/* global define, socket, app, ajaxify, ace */ + define('admin/settings/email', ['admin/settings'], function (settings) { var module = {}; diff --git a/public/src/admin/settings/general.js b/public/src/admin/settings/general.js index af1028c70e..ac8a0eee91 100644 --- a/public/src/admin/settings/general.js +++ b/public/src/admin/settings/general.js @@ -1,5 +1,5 @@ "use strict"; -/* global define, socket */ + define('admin/settings/general', ['admin/settings'], function (Settings) { var Module = {}; diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index 3506bd6b6f..22af54a266 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -1,5 +1,5 @@ "use strict"; -/*global app, bootbox, templates, socket, config, RELATIVE_PATH*/ + var ajaxify = ajaxify || {}; diff --git a/public/src/app.js b/public/src/app.js index d0390d50cf..99b67a2094 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -1,5 +1,5 @@ "use strict"; -/*global templates, ajaxify, utils, bootbox, overrides, socket, config, Visibility*/ + var app = app || {}; diff --git a/public/src/client/account/best.js b/public/src/client/account/best.js index abc88620bf..3146935be9 100644 --- a/public/src/client/account/best.js +++ b/public/src/client/account/best.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define */ + define('forum/account/best', ['forum/account/header', 'forum/account/posts'], function (header, posts) { var Best = {}; diff --git a/public/src/client/account/bookmarks.js b/public/src/client/account/bookmarks.js index 3f9b848b75..16b13216be 100644 --- a/public/src/client/account/bookmarks.js +++ b/public/src/client/account/bookmarks.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define */ + define('forum/account/bookmarks', ['forum/account/header', 'forum/account/posts'], function (header, posts) { var Bookmarks = {}; diff --git a/public/src/client/account/downvoted.js b/public/src/client/account/downvoted.js index b84e5da6bf..d27b460af0 100644 --- a/public/src/client/account/downvoted.js +++ b/public/src/client/account/downvoted.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define */ + define('forum/account/downvoted', ['forum/account/header', 'forum/account/posts'], function (header, posts) { var Downvoted = {}; diff --git a/public/src/client/account/edit.js b/public/src/client/account/edit.js index f2556b1cf9..7c05e1ccab 100644 --- a/public/src/client/account/edit.js +++ b/public/src/client/account/edit.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, ajaxify, socket, app, config, templates, bootbox */ + define('forum/account/edit', ['forum/account/header', 'translator', 'components', 'pictureCropper'], function (header, translator, components, pictureCropper) { var AccountEdit = {}; diff --git a/public/src/client/account/edit/email.js b/public/src/client/account/edit/email.js index 65b9b7616b..66362e850d 100644 --- a/public/src/client/account/edit/email.js +++ b/public/src/client/account/edit/email.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, ajaxify, socket, app */ + define('forum/account/edit/email', ['forum/account/header'], function (header) { var AccountEditEmail = {}; diff --git a/public/src/client/account/edit/password.js b/public/src/client/account/edit/password.js index 75efd0bbc9..f983e230ea 100644 --- a/public/src/client/account/edit/password.js +++ b/public/src/client/account/edit/password.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, ajaxify, socket, app, utils */ + define('forum/account/edit/password', ['forum/account/header', 'translator'], function (header, translator) { var AccountEditPassword = {}; diff --git a/public/src/client/account/edit/username.js b/public/src/client/account/edit/username.js index b65474bfdf..bedc6c400e 100644 --- a/public/src/client/account/edit/username.js +++ b/public/src/client/account/edit/username.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, ajaxify, socket, app, utils, config */ + define('forum/account/edit/username', ['forum/account/header'], function (header) { var AccountEditUsername = {}; diff --git a/public/src/client/account/followers.js b/public/src/client/account/followers.js index 22970327fb..a055b12194 100644 --- a/public/src/client/account/followers.js +++ b/public/src/client/account/followers.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define */ + define('forum/account/followers', ['forum/account/header'], function (header) { var Followers = {}; diff --git a/public/src/client/account/following.js b/public/src/client/account/following.js index dff2f92709..e52e973204 100644 --- a/public/src/client/account/following.js +++ b/public/src/client/account/following.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define */ + define('forum/account/following', ['forum/account/header'], function (header) { var Following = {}; diff --git a/public/src/client/account/groups.js b/public/src/client/account/groups.js index f8fe55fdd9..aaa3f3d930 100644 --- a/public/src/client/account/groups.js +++ b/public/src/client/account/groups.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals ajaxify, define, app, socket, utils */ + define('forum/account/groups', ['forum/account/header'], function (header) { var AccountTopics = {}; diff --git a/public/src/client/account/header.js b/public/src/client/account/header.js index a9f2bd7921..9e453e8203 100644 --- a/public/src/client/account/header.js +++ b/public/src/client/account/header.js @@ -1,5 +1,5 @@ 'use strict'; -/* globals define, app, config, ajaxify, socket, bootbox, templates */ + define('forum/account/header', [ 'coverPhoto', diff --git a/public/src/client/account/info.js b/public/src/client/account/info.js index aef4349376..82bafaadb5 100644 --- a/public/src/client/account/info.js +++ b/public/src/client/account/info.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, socket, ajaxify, app */ + define('forum/account/info', ['forum/account/header', 'components'], function (header, components) { var Info = {}; diff --git a/public/src/client/account/posts.js b/public/src/client/account/posts.js index 1647f8a2f0..5c5668a267 100644 --- a/public/src/client/account/posts.js +++ b/public/src/client/account/posts.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, socket, utils, config, ajaxify */ + define('forum/account/posts', ['forum/account/header', 'forum/infinitescroll'], function (header, infinitescroll) { var AccountPosts = {}; diff --git a/public/src/client/account/profile.js b/public/src/client/account/profile.js index 8e99f48786..2f7775c682 100644 --- a/public/src/client/account/profile.js +++ b/public/src/client/account/profile.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, ajaxify, app, socket, bootbox */ + define('forum/account/profile', [ 'forum/account/header', diff --git a/public/src/client/account/settings.js b/public/src/client/account/settings.js index 51ccb36a47..967e80bfd4 100644 --- a/public/src/client/account/settings.js +++ b/public/src/client/account/settings.js @@ -1,6 +1,6 @@ 'use strict'; -/*global define, socket, app, ajaxify, config*/ + define('forum/account/settings', ['forum/account/header', 'components', 'sounds'], function (header, components, sounds) { var AccountSettings = {}; diff --git a/public/src/client/account/topics.js b/public/src/client/account/topics.js index e9217c0c5c..b825810e85 100644 --- a/public/src/client/account/topics.js +++ b/public/src/client/account/topics.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, socket, utils, config, ajaxify */ + define('forum/account/topics', ['forum/account/header', 'forum/infinitescroll'], function (header, infinitescroll) { var AccountTopics = {}; diff --git a/public/src/client/account/upvoted.js b/public/src/client/account/upvoted.js index 76bf001b77..192961402f 100644 --- a/public/src/client/account/upvoted.js +++ b/public/src/client/account/upvoted.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define */ + define('forum/account/upvoted', ['forum/account/header', 'forum/account/posts'], function (header, posts) { var Upvoted = {}; diff --git a/public/src/client/account/watched.js b/public/src/client/account/watched.js index 4e1ca01cfe..6ba9ccc19d 100644 --- a/public/src/client/account/watched.js +++ b/public/src/client/account/watched.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, socket, utils */ + define('forum/account/watched', ['forum/account/header', 'forum/account/topics'], function (header, topics) { var AccountWatched = {}; diff --git a/public/src/client/categories.js b/public/src/client/categories.js index 9f1e4ba51d..5e4e01e2b7 100644 --- a/public/src/client/categories.js +++ b/public/src/client/categories.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, socket, app, templates, ajaxify*/ + define('forum/categories', ['components', 'translator'], function (components, translator) { var categories = {}; diff --git a/public/src/client/category.js b/public/src/client/category.js index 060e39eb36..f394ee0a88 100644 --- a/public/src/client/category.js +++ b/public/src/client/category.js @@ -1,5 +1,5 @@ "use strict"; -/* global define, config, templates, app, utils, ajaxify, socket */ + define('forum/category', [ 'forum/infinitescroll', diff --git a/public/src/client/category/tools.js b/public/src/client/category/tools.js index 66000e12ff..d85ddadaf8 100644 --- a/public/src/client/category/tools.js +++ b/public/src/client/category/tools.js @@ -1,7 +1,7 @@ 'use strict'; -/* globals define, app, socket, bootbox, ajaxify */ + define('forum/category/tools', [ diff --git a/public/src/client/chats.js b/public/src/client/chats.js index 36c600ec71..45e08c85e7 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, ajaxify, utils, socket, templates */ + define('forum/chats', [ 'components', diff --git a/public/src/client/chats/messages.js b/public/src/client/chats/messages.js index 19f7bf1b7f..ab325cc950 100644 --- a/public/src/client/chats/messages.js +++ b/public/src/client/chats/messages.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, socket, app, ajaxify, templates, bootbox */ + define('forum/chats/messages', ['components', 'sounds', 'translator'], function (components, sounds, translator) { diff --git a/public/src/client/chats/recent.js b/public/src/client/chats/recent.js index f51b8c1242..8ecb0e8448 100644 --- a/public/src/client/chats/recent.js +++ b/public/src/client/chats/recent.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, socket, app */ + define('forum/chats/recent', function () { diff --git a/public/src/client/chats/search.js b/public/src/client/chats/search.js index 986dfaa9c4..d886a7e6bb 100644 --- a/public/src/client/chats/search.js +++ b/public/src/client/chats/search.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, socket, app */ + define('forum/chats/search', ['components'], function (components) { diff --git a/public/src/client/compose.js b/public/src/client/compose.js index a27edad14d..27cf0be90d 100644 --- a/public/src/client/compose.js +++ b/public/src/client/compose.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define */ + define('forum/compose', [], function () { var Compose = {}; diff --git a/public/src/client/footer.js b/public/src/client/footer.js index d10f47e317..58837406ee 100644 --- a/public/src/client/footer.js +++ b/public/src/client/footer.js @@ -1,5 +1,5 @@ "use strict"; -/*globals define, app, socket*/ + define('forum/footer', ['notifications', 'chat', 'components', 'translator'], function (Notifications, Chat, components, translator) { diff --git a/public/src/client/groups/details.js b/public/src/client/groups/details.js index 373e169ff1..baf05e107c 100644 --- a/public/src/client/groups/details.js +++ b/public/src/client/groups/details.js @@ -1,5 +1,5 @@ "use strict"; -/* globals define, socket, ajaxify, app, bootbox, utils, config */ + define('forum/groups/details', [ 'forum/groups/memberlist', diff --git a/public/src/client/groups/list.js b/public/src/client/groups/list.js index 960fba8c78..3a6a651c39 100644 --- a/public/src/client/groups/list.js +++ b/public/src/client/groups/list.js @@ -1,5 +1,5 @@ "use strict"; -/* globals app, define, ajaxify, socket, bootbox, utils, templates */ + define('forum/groups/list', ['forum/infinitescroll'], function (infinitescroll) { var Groups = {}; diff --git a/public/src/client/groups/memberlist.js b/public/src/client/groups/memberlist.js index 2a5da78458..9550ad2568 100644 --- a/public/src/client/groups/memberlist.js +++ b/public/src/client/groups/memberlist.js @@ -1,5 +1,5 @@ "use strict"; -/* globals define, socket, ajaxify, app */ + define('forum/groups/memberlist', ['components', 'forum/infinitescroll'], function (components, infinitescroll) { diff --git a/public/src/client/infinitescroll.js b/public/src/client/infinitescroll.js index d681ab1779..1c9e55bbac 100644 --- a/public/src/client/infinitescroll.js +++ b/public/src/client/infinitescroll.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, socket, app */ + define('forum/infinitescroll', function () { diff --git a/public/src/client/login.js b/public/src/client/login.js index fb88797410..00b0e8ed73 100644 --- a/public/src/client/login.js +++ b/public/src/client/login.js @@ -1,5 +1,5 @@ "use strict"; -/* global define, app, config, RELATIVE_PATH */ + define('forum/login', ['translator'], function (translator) { var Login = {}; diff --git a/public/src/client/notifications.js b/public/src/client/notifications.js index f68496bf3e..0ca79ae6c0 100644 --- a/public/src/client/notifications.js +++ b/public/src/client/notifications.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, socket, app */ + define('forum/notifications', ['components', 'notifications', 'forum/infinitescroll'], function (components, notifs, infinitescroll) { var Notifications = {}; diff --git a/public/src/client/pagination.js b/public/src/client/pagination.js index 6cbd7102f0..1fba9d354d 100644 --- a/public/src/client/pagination.js +++ b/public/src/client/pagination.js @@ -1,5 +1,5 @@ 'use strict'; -/*global define, utils, ajaxify, bootbox*/ + define('forum/pagination', function () { var pagination = {}; diff --git a/public/src/client/popular.js b/public/src/client/popular.js index 00fb6937e2..b8999de7cf 100644 --- a/public/src/client/popular.js +++ b/public/src/client/popular.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, socket*/ + define('forum/popular', ['components'], function (components) { var Popular = {}; diff --git a/public/src/client/recent.js b/public/src/client/recent.js index 676fa5e815..b29b1bddef 100644 --- a/public/src/client/recent.js +++ b/public/src/client/recent.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, socket, utils, ajaxify, config */ + define('forum/recent', ['forum/infinitescroll', 'components'], function (infinitescroll, components) { var Recent = {}; diff --git a/public/src/client/register.js b/public/src/client/register.js index adae04de2a..79287d088e 100644 --- a/public/src/client/register.js +++ b/public/src/client/register.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, utils, socket, config, ajaxify, bootbox */ + define('forum/register', ['translator'], function (translator) { diff --git a/public/src/client/reset.js b/public/src/client/reset.js index 3712957e36..84915b597c 100644 --- a/public/src/client/reset.js +++ b/public/src/client/reset.js @@ -1,5 +1,5 @@ "use strict"; -/*globals define, app, socket*/ + define('forum/reset', function () { var ResetPassword = {}; diff --git a/public/src/client/reset_code.js b/public/src/client/reset_code.js index a0c005311e..4104648c47 100644 --- a/public/src/client/reset_code.js +++ b/public/src/client/reset_code.js @@ -1,5 +1,5 @@ "use strict"; -/*globals define, app, ajaxify, socket, config*/ + define('forum/reset_code', function () { var ResetCode = {}; diff --git a/public/src/client/search.js b/public/src/client/search.js index c528b011c8..7df69aa440 100644 --- a/public/src/client/search.js +++ b/public/src/client/search.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals app, define, utils*/ + define('forum/search', ['search', 'autocomplete'], function (searchModule, autocomplete) { var Search = {}; diff --git a/public/src/client/tag.js b/public/src/client/tag.js index b51d57b32d..8667cbc303 100644 --- a/public/src/client/tag.js +++ b/public/src/client/tag.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, ajaxify, socket */ + define('forum/tag', ['forum/recent', 'forum/infinitescroll'], function (recent, infinitescroll) { var Tag = {}; diff --git a/public/src/client/tags.js b/public/src/client/tags.js index 832e4c773c..7d683831e8 100644 --- a/public/src/client/tags.js +++ b/public/src/client/tags.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, utils, socket */ + define('forum/tags', ['forum/infinitescroll'], function (infinitescroll) { var Tags = {}; diff --git a/public/src/client/topic.js b/public/src/client/topic.js index 68f3679a16..2c6c11ae2a 100644 --- a/public/src/client/topic.js +++ b/public/src/client/topic.js @@ -1,7 +1,7 @@ 'use strict'; -/* globals define, app, socket, config, ajaxify, RELATIVE_PATH, utils */ + define('forum/topic', [ 'forum/infinitescroll', diff --git a/public/src/client/topic/delete-posts.js b/public/src/client/topic/delete-posts.js index 3ff058509c..d8f752706c 100644 --- a/public/src/client/topic/delete-posts.js +++ b/public/src/client/topic/delete-posts.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, ajaxify, socket */ + define('forum/topic/delete-posts', ['components', 'postSelect'], function (components, postSelect) { diff --git a/public/src/client/topic/events.js b/public/src/client/topic/events.js index 88d8391fa4..dba8b950aa 100644 --- a/public/src/client/topic/events.js +++ b/public/src/client/topic/events.js @@ -1,7 +1,7 @@ 'use strict'; -/* globals config, app, ajaxify, define, socket, templates, utils */ + define('forum/topic/events', [ 'forum/topic/postTools', diff --git a/public/src/client/topic/flag.js b/public/src/client/topic/flag.js index 82b3fdfb00..e44c77072c 100644 --- a/public/src/client/topic/flag.js +++ b/public/src/client/topic/flag.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, socket, templates */ + define('forum/topic/flag', [], function () { diff --git a/public/src/client/topic/fork.js b/public/src/client/topic/fork.js index 8dfa0a8365..ab8368ec52 100644 --- a/public/src/client/topic/fork.js +++ b/public/src/client/topic/fork.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, ajaxify, socket */ + define('forum/topic/fork', ['components', 'postSelect'], function (components, postSelect) { diff --git a/public/src/client/topic/move-post.js b/public/src/client/topic/move-post.js index 1da810a599..c4a66917e6 100644 --- a/public/src/client/topic/move-post.js +++ b/public/src/client/topic/move-post.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, socket */ + define('forum/topic/move-post', [], function () { diff --git a/public/src/client/topic/move.js b/public/src/client/topic/move.js index d5eea6e10f..4043dc211d 100644 --- a/public/src/client/topic/move.js +++ b/public/src/client/topic/move.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, socket, templates */ + define('forum/topic/move', function () { diff --git a/public/src/client/topic/postTools.js b/public/src/client/topic/postTools.js index ac542940a8..d7eedfd840 100644 --- a/public/src/client/topic/postTools.js +++ b/public/src/client/topic/postTools.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, ajaxify, bootbox, socket, templates, utils, config */ + define('forum/topic/postTools', [ 'share', diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js index da07207379..f2c20a5a8f 100644 --- a/public/src/client/topic/posts.js +++ b/public/src/client/topic/posts.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals config, app, ajaxify, define, utils */ + define('forum/topic/posts', [ 'forum/pagination', diff --git a/public/src/client/topic/replies.js b/public/src/client/topic/replies.js index 07eeab847e..03529225a5 100644 --- a/public/src/client/topic/replies.js +++ b/public/src/client/topic/replies.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, ajaxify, socket */ + define('forum/topic/replies', ['navigator', 'components', 'forum/topic/posts'], function (navigator, components, posts) { diff --git a/public/src/client/topic/threadTools.js b/public/src/client/topic/threadTools.js index aab7654e27..9563e6d3ae 100644 --- a/public/src/client/topic/threadTools.js +++ b/public/src/client/topic/threadTools.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, ajaxify, socket, bootbox, templates */ + define('forum/topic/threadTools', [ 'forum/topic/fork', diff --git a/public/src/client/topic/votes.js b/public/src/client/topic/votes.js index 37c612eacf..f8f9785407 100644 --- a/public/src/client/topic/votes.js +++ b/public/src/client/topic/votes.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, socket, ajaxify, templates, bootbox */ + define('forum/topic/votes', ['components', 'translator'], function (components, translator) { diff --git a/public/src/client/unread.js b/public/src/client/unread.js index a9fea6b15e..41686a9eee 100644 --- a/public/src/client/unread.js +++ b/public/src/client/unread.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, app, socket */ + define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', 'components'], function (recent, topicSelect, infinitescroll, components) { var Unread = {}; diff --git a/public/src/client/users.js b/public/src/client/users.js index 5d7ff6ea8b..302f65c2c6 100644 --- a/public/src/client/users.js +++ b/public/src/client/users.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, socket, app, templates, bootbox, utils */ + define('forum/users', ['translator'], function (translator) { var Users = {}; diff --git a/public/src/installer/install.js b/public/src/installer/install.js index 760dc788a2..c3bc1a06de 100644 --- a/public/src/installer/install.js +++ b/public/src/installer/install.js @@ -1,5 +1,5 @@ "use strict"; -/*global utils*/ + $('document').ready(function () { setupInputs(); diff --git a/public/src/modules/alerts.js b/public/src/modules/alerts.js index 1c9b0bd086..6c5595d889 100644 --- a/public/src/modules/alerts.js +++ b/public/src/modules/alerts.js @@ -1,5 +1,5 @@ 'use strict'; -/* globals define, templates */ + define('alerts', ['translator', 'components'], function (translator, components) { var module = {}; diff --git a/public/src/modules/autocomplete.js b/public/src/modules/autocomplete.js index 390822012c..5988797c13 100644 --- a/public/src/modules/autocomplete.js +++ b/public/src/modules/autocomplete.js @@ -1,7 +1,7 @@ 'use strict'; -/* globals define, socket, app */ + define('autocomplete', function () { var module = {}; diff --git a/public/src/modules/chat.js b/public/src/modules/chat.js index 9bfa0306b3..c891a67b70 100644 --- a/public/src/modules/chat.js +++ b/public/src/modules/chat.js @@ -1,5 +1,5 @@ "use strict"; -/* globals app, define, socket, templates, utils, ajaxify */ + define('chat', [ 'components', diff --git a/public/src/modules/coverPhoto.js b/public/src/modules/coverPhoto.js index e8f1342c6b..797211eff4 100644 --- a/public/src/modules/coverPhoto.js +++ b/public/src/modules/coverPhoto.js @@ -1,5 +1,5 @@ "use strict"; -/* globals define, app */ + define('coverPhoto', [ 'vendor/jquery/draggable-background/backgroundDraggable', diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js index ad04f2b9d6..ec6e443921 100644 --- a/public/src/modules/helpers.js +++ b/public/src/modules/helpers.js @@ -1,6 +1,6 @@ ;(function (exports) { "use strict"; - /* globals define, utils, config */ + // export the class if we are in a Node-like system. if (typeof module === 'object' && module.exports === exports) { @@ -285,5 +285,5 @@ }( typeof exports === 'object' ? exports : typeof define === 'function' && define.amd ? {} : - helpers = {} + window.helpers = {} )); diff --git a/public/src/modules/iconSelect.js b/public/src/modules/iconSelect.js index b7849245ca..118515a5d5 100644 --- a/public/src/modules/iconSelect.js +++ b/public/src/modules/iconSelect.js @@ -1,6 +1,6 @@ "use strict"; -/* globals define, bootbox, templates */ + define('iconSelect', function () { var iconSelect = {}; diff --git a/public/src/modules/navigator.js b/public/src/modules/navigator.js index cdc5d728bc..f5c729f265 100644 --- a/public/src/modules/navigator.js +++ b/public/src/modules/navigator.js @@ -1,7 +1,7 @@ 'use strict'; -/* globals define, ajaxify, utils, config */ + define('navigator', ['forum/pagination', 'components'], function (pagination, components) { diff --git a/public/src/modules/notifications.js b/public/src/modules/notifications.js index ab97cea18d..64b8e2f896 100644 --- a/public/src/modules/notifications.js +++ b/public/src/modules/notifications.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, socket, app, ajaxify, templates, Tinycon*/ + define('notifications', ['sounds', 'translator', 'components'], function (sound, translator, components) { var Notifications = {}; diff --git a/public/src/modules/pictureCropper.js b/public/src/modules/pictureCropper.js index f8da4c4442..3df948e979 100644 --- a/public/src/modules/pictureCropper.js +++ b/public/src/modules/pictureCropper.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, socket, app, templates */ + define('pictureCropper', ['translator', 'cropper'], function (translator, cropper) { var module = {}; diff --git a/public/src/modules/postSelect.js b/public/src/modules/postSelect.js index 6001488708..528e488eaf 100644 --- a/public/src/modules/postSelect.js +++ b/public/src/modules/postSelect.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define*/ + define('postSelect', ['components'], function (components) { var PostSelect = {}; diff --git a/public/src/modules/scrollStop.js b/public/src/modules/scrollStop.js index 13d722402c..f083a01aa0 100644 --- a/public/src/modules/scrollStop.js +++ b/public/src/modules/scrollStop.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals console, define */ + /* The point of this library is to enhance(tm) a textarea so that if scrolled, diff --git a/public/src/modules/search.js b/public/src/modules/search.js index e7aefb7056..582ea3d4f2 100644 --- a/public/src/modules/search.js +++ b/public/src/modules/search.js @@ -1,5 +1,5 @@ "use strict"; -/* globals socket, ajaxify, app, define, config */ + define('search', ['navigator', 'translator'], function (nav, translator) { diff --git a/public/src/modules/settings.js b/public/src/modules/settings.js index 77825a6175..31aeac9788 100644 --- a/public/src/modules/settings.js +++ b/public/src/modules/settings.js @@ -1,5 +1,5 @@ "use strict"; -/*global define, app, socket*/ + define('settings', function () { diff --git a/public/src/modules/share.js b/public/src/modules/share.js index ec850ed1c9..b99068ea42 100644 --- a/public/src/modules/share.js +++ b/public/src/modules/share.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, config */ + define('share', function () { diff --git a/public/src/modules/sort.js b/public/src/modules/sort.js index c9e80020af..8242df566b 100644 --- a/public/src/modules/sort.js +++ b/public/src/modules/sort.js @@ -1,5 +1,5 @@ 'use strict'; -/* globals define, config, socket, app, ajaxify, templates */ + define('sort', ['components'], function (components) { var module = {}; diff --git a/public/src/modules/sounds.js b/public/src/modules/sounds.js index a31bbe507a..9b23ab97bc 100644 --- a/public/src/modules/sounds.js +++ b/public/src/modules/sounds.js @@ -1,5 +1,5 @@ "use strict"; -/* global app, define, socket, config */ + define('sounds', ['buzz'], function (buzz) { var Sounds = {}; diff --git a/public/src/modules/taskbar.js b/public/src/modules/taskbar.js index 8961359ca5..e797f14ecf 100644 --- a/public/src/modules/taskbar.js +++ b/public/src/modules/taskbar.js @@ -1,5 +1,5 @@ "use strict"; -/*global define, app, templates*/ + define('taskbar', function () { var taskbar = {}; diff --git a/public/src/modules/topicSelect.js b/public/src/modules/topicSelect.js index 4368b97237..097e443bf6 100644 --- a/public/src/modules/topicSelect.js +++ b/public/src/modules/topicSelect.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define*/ + define('topicSelect', ['components'], function (components) { var TopicSelect = {}; diff --git a/public/src/modules/translator.js b/public/src/modules/translator.js index fc7498c821..7652ba3837 100644 --- a/public/src/modules/translator.js +++ b/public/src/modules/translator.js @@ -1,4 +1,4 @@ -/* global define, jQuery, config, utils, window, Promise */ + (function (factory) { 'use strict'; diff --git a/public/src/modules/uploader.js b/public/src/modules/uploader.js index 4fb79bd3ad..ac1ba7e9f3 100644 --- a/public/src/modules/uploader.js +++ b/public/src/modules/uploader.js @@ -1,6 +1,6 @@ 'use strict'; -/* globals define, templates */ + define('uploader', ['translator'], function (translator) { diff --git a/public/src/overrides.js b/public/src/overrides.js index 95c9c3d69e..3cbe27ef28 100644 --- a/public/src/overrides.js +++ b/public/src/overrides.js @@ -1,6 +1,6 @@ 'use strict'; -/* global bootbox */ + var overrides = overrides || {}; diff --git a/public/src/sockets.js b/public/src/sockets.js index e98e059da7..80463cce0a 100644 --- a/public/src/sockets.js +++ b/public/src/sockets.js @@ -1,5 +1,5 @@ 'use strict'; -/* globals config, io, ajaxify */ + var app = app || {}; var socket; diff --git a/public/src/widgets.js b/public/src/widgets.js index 041804ae95..961f0a8672 100644 --- a/public/src/widgets.js +++ b/public/src/widgets.js @@ -1,5 +1,5 @@ "use strict"; -/*global ajaxify, templates, config, utils*/ + (function (ajaxify) { ajaxify.widgets = {}; diff --git a/src/messaging/unread.js b/src/messaging/unread.js index ffea6b52fd..74f4fc99c2 100644 --- a/src/messaging/unread.js +++ b/src/messaging/unread.js @@ -16,7 +16,7 @@ module.exports = function (Messaging) { Messaging.pushUnreadCount = function (uid) { if (!parseInt(uid, 10)) { - return callback(null, 0); + return; } Messaging.getUnreadCount(uid, function (err, unreadCount) { if (err) { diff --git a/src/meta/languages.js b/src/meta/languages.js index c386141ccb..381c22c34f 100644 --- a/src/meta/languages.js +++ b/src/meta/languages.js @@ -39,7 +39,7 @@ function getTranslationTree(callback) { // generate list of languages and namespaces function (plugins, next) { var languages = []; - namespaces = []; + var namespaces = []; // pull languages and namespaces from paths function extrude(languageDir, paths) { diff --git a/src/upgrade.js b/src/upgrade.js index 923684662b..a9670ef763 100644 --- a/src/upgrade.js +++ b/src/upgrade.js @@ -1,6 +1,6 @@ "use strict"; -/* globals console, require */ + var db = require('./database'); var async = require('async'); diff --git a/test/.eslintrc b/test/.eslintrc new file mode 100644 index 0000000000..d17a3b4940 --- /dev/null +++ b/test/.eslintrc @@ -0,0 +1,5 @@ +{ + "env": { + "mocha": true + } +} diff --git a/test/authentication.js b/test/authentication.js index 815070d660..e475f1c395 100644 --- a/test/authentication.js +++ b/test/authentication.js @@ -1,5 +1,5 @@ 'use strict'; -/*global require, before*/ + var assert = require('assert'); var nconf = require('nconf'); diff --git a/test/categories.js b/test/categories.js index 8795548577..900d1a9aea 100644 --- a/test/categories.js +++ b/test/categories.js @@ -1,5 +1,5 @@ 'use strict'; -/*global require, after, before*/ + var async = require('async'); diff --git a/test/database.js b/test/database.js index 36b2ef932d..d2f51c907e 100644 --- a/test/database.js +++ b/test/database.js @@ -1,5 +1,5 @@ 'use strict'; -/*global require*/ + var assert = require('assert'); var db = require('./mocks/databasemock'); diff --git a/test/database/hash.js b/test/database/hash.js index 39df28e6fc..c8e67c9f1f 100644 --- a/test/database/hash.js +++ b/test/database/hash.js @@ -1,5 +1,5 @@ 'use strict'; -/*global require, after, before*/ + var async = require('async'); var assert = require('assert'); diff --git a/test/database/keys.js b/test/database/keys.js index 7f44fea060..f4b577f038 100644 --- a/test/database/keys.js +++ b/test/database/keys.js @@ -1,5 +1,5 @@ 'use strict'; -/*global require, after*/ + var async = require('async'); var assert = require('assert'); diff --git a/test/database/list.js b/test/database/list.js index 4d51b3dbd9..d328191e7a 100644 --- a/test/database/list.js +++ b/test/database/list.js @@ -1,5 +1,5 @@ 'use strict'; -/*global require, after, before*/ + var async = require('async'); var assert = require('assert'); diff --git a/test/database/sets.js b/test/database/sets.js index 7b36d5fc60..7400fea70e 100644 --- a/test/database/sets.js +++ b/test/database/sets.js @@ -1,5 +1,5 @@ 'use strict'; -/*global require, after, before*/ + var async = require('async'); var assert = require('assert'); diff --git a/test/database/sorted.js b/test/database/sorted.js index f1ed54ca00..c38820f7fb 100644 --- a/test/database/sorted.js +++ b/test/database/sorted.js @@ -1,5 +1,5 @@ 'use strict'; -/*global require, after, before*/ + var async = require('async'); var assert = require('assert'); diff --git a/test/mocks/databasemock.js b/test/mocks/databasemock.js index 1ef42e3298..256c8117d1 100644 --- a/test/mocks/databasemock.js +++ b/test/mocks/databasemock.js @@ -5,7 +5,7 @@ (function (module) { 'use strict'; - /*global require, before, __dirname*/ + var async = require('async'); var winston = require('winston'); diff --git a/test/notifications.js b/test/notifications.js index e989b7f16e..041ac54fcf 100644 --- a/test/notifications.js +++ b/test/notifications.js @@ -1,5 +1,5 @@ 'use strict'; -/*global require, after, before*/ + var assert = require('assert'); diff --git a/test/pagination.js b/test/pagination.js index b3c50e57f2..df362d9df4 100644 --- a/test/pagination.js +++ b/test/pagination.js @@ -1,5 +1,5 @@ 'use strict'; -/*global require*/ + var assert = require('assert'); var pagination = require('../src/pagination'); diff --git a/test/plugins.js b/test/plugins.js index 09537d8990..b7267d8f4f 100644 --- a/test/plugins.js +++ b/test/plugins.js @@ -1,5 +1,5 @@ 'use strict'; -/*global require*/ + var assert = require('assert'); var path = require('path'); diff --git a/test/posts.js b/test/posts.js index 4a291d401b..4e135831ba 100644 --- a/test/posts.js +++ b/test/posts.js @@ -1,5 +1,5 @@ 'use strict'; -/*global require, before, after*/ + var assert = require('assert'); var async = require('async'); diff --git a/test/search-admin.js b/test/search-admin.js index 216d26d35f..25fb940adf 100644 --- a/test/search-admin.js +++ b/test/search-admin.js @@ -1,5 +1,5 @@ 'use strict'; -/*global require*/ + var assert = require('assert'); var search = require('../src/admin/search'); diff --git a/test/search.js b/test/search.js index 0c4713b720..12287c93e4 100644 --- a/test/search.js +++ b/test/search.js @@ -1,5 +1,5 @@ 'use strict'; -/*global require, before, after*/ + var assert = require('assert'); var async = require('async'); diff --git a/test/socket.io.js b/test/socket.io.js index ca3ba2bb0e..3965448142 100644 --- a/test/socket.io.js +++ b/test/socket.io.js @@ -2,7 +2,7 @@ // see https://gist.github.com/jfromaniello/4087861#gistcomment-1447029 -/* global process, require, before, after*/ + process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; diff --git a/test/translator.js b/test/translator.js index 8198814164..e24754d8e8 100644 --- a/test/translator.js +++ b/test/translator.js @@ -1,5 +1,5 @@ 'use strict'; -/*global require*/ + var assert = require('assert'); var shim = require('../public/src/modules/translator.js'); diff --git a/test/utils.js b/test/utils.js index bb71b0c9ec..31efbfe8df 100644 --- a/test/utils.js +++ b/test/utils.js @@ -1,5 +1,5 @@ 'use strict'; -/*global require*/ + var assert = require('assert'); var utils = require('./../public/src/utils.js'); From 52f20282065a89f33415875ca61c02a8eea67218 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Fri, 17 Feb 2017 22:08:23 -0700 Subject: [PATCH 04/60] ESlint no-multiple-empty-lines --- .eslintrc | 2 +- public/src/admin/advanced/events.js | 2 -- public/src/admin/manage/registration.js | 1 - public/src/admin/manage/users.js | 1 - public/src/admin/modules/colorpicker.js | 1 - public/src/admin/modules/instance.js | 1 - public/src/admin/modules/selectable.js | 1 - public/src/admin/settings/cookies.js | 1 - public/src/client/account/best.js | 1 - public/src/client/account/bookmarks.js | 1 - public/src/client/account/downvoted.js | 1 - public/src/client/account/edit.js | 1 - public/src/client/account/edit/email.js | 1 - public/src/client/account/edit/password.js | 1 - public/src/client/account/edit/username.js | 1 - public/src/client/account/followers.js | 1 - public/src/client/account/following.js | 1 - public/src/client/account/groups.js | 1 - public/src/client/account/info.js | 1 - public/src/client/account/posts.js | 1 - public/src/client/account/profile.js | 1 - public/src/client/account/settings.js | 1 - public/src/client/account/topics.js | 1 - public/src/client/account/upvoted.js | 1 - public/src/client/categories.js | 1 - public/src/client/category/tools.js | 2 -- public/src/client/chats.js | 1 - public/src/client/chats/messages.js | 1 - public/src/client/chats/recent.js | 1 - public/src/client/chats/search.js | 1 - public/src/client/compose.js | 1 - public/src/client/infinitescroll.js | 1 - public/src/client/notifications.js | 1 - public/src/client/popular.js | 1 - public/src/client/recent.js | 1 - public/src/client/register.js | 2 -- public/src/client/search.js | 1 - public/src/client/tag.js | 1 - public/src/client/tags.js | 1 - public/src/client/topic.js | 2 -- public/src/client/topic/delete-posts.js | 1 - public/src/client/topic/events.js | 1 - public/src/client/topic/flag.js | 1 - public/src/client/topic/fork.js | 1 - public/src/client/topic/move-post.js | 1 - public/src/client/topic/move.js | 1 - public/src/client/topic/postTools.js | 1 - public/src/client/topic/posts.js | 1 - public/src/client/topic/replies.js | 1 - public/src/client/topic/threadTools.js | 1 - public/src/client/topic/votes.js | 1 - public/src/client/unread.js | 1 - public/src/client/users.js | 1 - public/src/installer/install.js | 1 - public/src/modules/autocomplete.js | 1 - public/src/modules/iconSelect.js | 1 - public/src/modules/navigator.js | 2 -- public/src/modules/notifications.js | 1 - public/src/modules/pictureCropper.js | 1 - public/src/modules/postSelect.js | 2 -- public/src/modules/scrollStop.js | 1 - public/src/modules/share.js | 1 - public/src/modules/topicSelect.js | 1 - public/src/modules/uploader.js | 1 - public/src/overrides.js | 1 - src/categories/recentreplies.js | 1 - src/controllers/accounts/chats.js | 1 - src/controllers/admin/database.js | 1 - src/controllers/admin/rewards.js | 1 - src/controllers/uploads.js | 1 - src/middleware/header.js | 2 -- src/middleware/headers.js | 2 -- src/navigation/admin.js | 1 - src/posts/create.js | 1 - src/routes/feeds.js | 1 - src/socket.io/index.js | 1 - src/upgrade.js | 1 - src/webserver.js | 1 - test/categories.js | 1 - test/controllers.js | 1 - test/database/hash.js | 1 - test/meta.js | 1 - test/notifications.js | 1 - test/plugins.js | 1 - test/rewards.js | 4 ---- test/socket.io.js | 2 -- test/uploads.js | 2 -- 87 files changed, 1 insertion(+), 100 deletions(-) diff --git a/.eslintrc b/.eslintrc index e1374e915b..22e7d07d94 100644 --- a/.eslintrc +++ b/.eslintrc @@ -92,7 +92,7 @@ "import/newline-after-import": "off", "no-underscore-dangle": "off", "prefer-spread": "off", - "no-multiple-empty-lines": "off", + // "no-multiple-empty-lines": "off", "spaced-comment": "off", "prefer-rest-params": "off", "space-in-parens": "off", diff --git a/public/src/admin/advanced/events.js b/public/src/admin/advanced/events.js index 9da3f0fcec..c1ad423ed8 100644 --- a/public/src/admin/advanced/events.js +++ b/public/src/admin/advanced/events.js @@ -1,8 +1,6 @@ "use strict"; - - define('admin/advanced/events', function () { var Events = {}; diff --git a/public/src/admin/manage/registration.js b/public/src/admin/manage/registration.js index d1c999ab99..f6918bd674 100644 --- a/public/src/admin/manage/registration.js +++ b/public/src/admin/manage/registration.js @@ -1,7 +1,6 @@ "use strict"; - define('admin/manage/registration', function () { var Registration = {}; diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js index c4a8df97d6..5e3dddf19a 100644 --- a/public/src/admin/manage/users.js +++ b/public/src/admin/manage/users.js @@ -1,7 +1,6 @@ "use strict"; - define('admin/manage/users', ['translator'], function (translator) { var Users = {}; diff --git a/public/src/admin/modules/colorpicker.js b/public/src/admin/modules/colorpicker.js index 29329c4085..99b6fe9ba3 100644 --- a/public/src/admin/modules/colorpicker.js +++ b/public/src/admin/modules/colorpicker.js @@ -1,7 +1,6 @@ "use strict"; - define('admin/modules/colorpicker', function () { var colorpicker = {}; diff --git a/public/src/admin/modules/instance.js b/public/src/admin/modules/instance.js index ca115199c4..23c0a76124 100644 --- a/public/src/admin/modules/instance.js +++ b/public/src/admin/modules/instance.js @@ -1,7 +1,6 @@ "use strict"; - define('admin/modules/instance', function () { var instance = {}; diff --git a/public/src/admin/modules/selectable.js b/public/src/admin/modules/selectable.js index 8dc8b4e489..73f026023c 100644 --- a/public/src/admin/modules/selectable.js +++ b/public/src/admin/modules/selectable.js @@ -1,7 +1,6 @@ "use strict"; - define('admin/modules/selectable', ['jqueryui'], function (jqueryui) { var selectable = {}; diff --git a/public/src/admin/settings/cookies.js b/public/src/admin/settings/cookies.js index 10e825d4ae..f00411082c 100644 --- a/public/src/admin/settings/cookies.js +++ b/public/src/admin/settings/cookies.js @@ -1,7 +1,6 @@ 'use strict'; - define('admin/settings/cookies', [ 'admin/modules/colorpicker', ], function (colorpicker) { diff --git a/public/src/client/account/best.js b/public/src/client/account/best.js index 3146935be9..562438297a 100644 --- a/public/src/client/account/best.js +++ b/public/src/client/account/best.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/account/best', ['forum/account/header', 'forum/account/posts'], function (header, posts) { var Best = {}; diff --git a/public/src/client/account/bookmarks.js b/public/src/client/account/bookmarks.js index 16b13216be..80357fe89b 100644 --- a/public/src/client/account/bookmarks.js +++ b/public/src/client/account/bookmarks.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/account/bookmarks', ['forum/account/header', 'forum/account/posts'], function (header, posts) { var Bookmarks = {}; diff --git a/public/src/client/account/downvoted.js b/public/src/client/account/downvoted.js index d27b460af0..b4f0cc181f 100644 --- a/public/src/client/account/downvoted.js +++ b/public/src/client/account/downvoted.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/account/downvoted', ['forum/account/header', 'forum/account/posts'], function (header, posts) { var Downvoted = {}; diff --git a/public/src/client/account/edit.js b/public/src/client/account/edit.js index 7c05e1ccab..ddba6b266d 100644 --- a/public/src/client/account/edit.js +++ b/public/src/client/account/edit.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/account/edit', ['forum/account/header', 'translator', 'components', 'pictureCropper'], function (header, translator, components, pictureCropper) { var AccountEdit = {}; diff --git a/public/src/client/account/edit/email.js b/public/src/client/account/edit/email.js index 66362e850d..e1a068979a 100644 --- a/public/src/client/account/edit/email.js +++ b/public/src/client/account/edit/email.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/account/edit/email', ['forum/account/header'], function (header) { var AccountEditEmail = {}; diff --git a/public/src/client/account/edit/password.js b/public/src/client/account/edit/password.js index f983e230ea..e2210e724c 100644 --- a/public/src/client/account/edit/password.js +++ b/public/src/client/account/edit/password.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/account/edit/password', ['forum/account/header', 'translator'], function (header, translator) { var AccountEditPassword = {}; diff --git a/public/src/client/account/edit/username.js b/public/src/client/account/edit/username.js index bedc6c400e..33d8ea99cd 100644 --- a/public/src/client/account/edit/username.js +++ b/public/src/client/account/edit/username.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/account/edit/username', ['forum/account/header'], function (header) { var AccountEditUsername = {}; diff --git a/public/src/client/account/followers.js b/public/src/client/account/followers.js index a055b12194..bae7343262 100644 --- a/public/src/client/account/followers.js +++ b/public/src/client/account/followers.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/account/followers', ['forum/account/header'], function (header) { var Followers = {}; diff --git a/public/src/client/account/following.js b/public/src/client/account/following.js index e52e973204..5881ae1bec 100644 --- a/public/src/client/account/following.js +++ b/public/src/client/account/following.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/account/following', ['forum/account/header'], function (header) { var Following = {}; diff --git a/public/src/client/account/groups.js b/public/src/client/account/groups.js index aaa3f3d930..ba3fb3ce7c 100644 --- a/public/src/client/account/groups.js +++ b/public/src/client/account/groups.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/account/groups', ['forum/account/header'], function (header) { var AccountTopics = {}; diff --git a/public/src/client/account/info.js b/public/src/client/account/info.js index 82bafaadb5..38f3111b83 100644 --- a/public/src/client/account/info.js +++ b/public/src/client/account/info.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/account/info', ['forum/account/header', 'components'], function (header, components) { var Info = {}; diff --git a/public/src/client/account/posts.js b/public/src/client/account/posts.js index 5c5668a267..3430fa3c98 100644 --- a/public/src/client/account/posts.js +++ b/public/src/client/account/posts.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/account/posts', ['forum/account/header', 'forum/infinitescroll'], function (header, infinitescroll) { var AccountPosts = {}; var method; diff --git a/public/src/client/account/profile.js b/public/src/client/account/profile.js index 2f7775c682..1b38dc0bbd 100644 --- a/public/src/client/account/profile.js +++ b/public/src/client/account/profile.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/account/profile', [ 'forum/account/header', 'forum/infinitescroll', diff --git a/public/src/client/account/settings.js b/public/src/client/account/settings.js index 967e80bfd4..8159f50458 100644 --- a/public/src/client/account/settings.js +++ b/public/src/client/account/settings.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/account/settings', ['forum/account/header', 'components', 'sounds'], function (header, components, sounds) { var AccountSettings = {}; diff --git a/public/src/client/account/topics.js b/public/src/client/account/topics.js index b825810e85..83bd4ef557 100644 --- a/public/src/client/account/topics.js +++ b/public/src/client/account/topics.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/account/topics', ['forum/account/header', 'forum/infinitescroll'], function (header, infinitescroll) { var AccountTopics = {}; var template; diff --git a/public/src/client/account/upvoted.js b/public/src/client/account/upvoted.js index 192961402f..74c1f6c753 100644 --- a/public/src/client/account/upvoted.js +++ b/public/src/client/account/upvoted.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/account/upvoted', ['forum/account/header', 'forum/account/posts'], function (header, posts) { var Upvoted = {}; diff --git a/public/src/client/categories.js b/public/src/client/categories.js index 5e4e01e2b7..57b77c3af3 100644 --- a/public/src/client/categories.js +++ b/public/src/client/categories.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/categories', ['components', 'translator'], function (components, translator) { var categories = {}; diff --git a/public/src/client/category/tools.js b/public/src/client/category/tools.js index d85ddadaf8..77d662e5ad 100644 --- a/public/src/client/category/tools.js +++ b/public/src/client/category/tools.js @@ -2,8 +2,6 @@ 'use strict'; - - define('forum/category/tools', [ 'forum/topic/move', 'topicSelect', diff --git a/public/src/client/chats.js b/public/src/client/chats.js index 45e08c85e7..e0df5804df 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/chats', [ 'components', 'translator', diff --git a/public/src/client/chats/messages.js b/public/src/client/chats/messages.js index ab325cc950..5aa0585981 100644 --- a/public/src/client/chats/messages.js +++ b/public/src/client/chats/messages.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/chats/messages', ['components', 'sounds', 'translator'], function (components, sounds, translator) { var messages = {}; diff --git a/public/src/client/chats/recent.js b/public/src/client/chats/recent.js index 8ecb0e8448..e689f0faad 100644 --- a/public/src/client/chats/recent.js +++ b/public/src/client/chats/recent.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/chats/recent', function () { var recent = {}; diff --git a/public/src/client/chats/search.js b/public/src/client/chats/search.js index d886a7e6bb..e1a7905bc2 100644 --- a/public/src/client/chats/search.js +++ b/public/src/client/chats/search.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/chats/search', ['components'], function (components) { var search = {}; diff --git a/public/src/client/compose.js b/public/src/client/compose.js index 27cf0be90d..e5df728610 100644 --- a/public/src/client/compose.js +++ b/public/src/client/compose.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/compose', [], function () { var Compose = {}; diff --git a/public/src/client/infinitescroll.js b/public/src/client/infinitescroll.js index 1c9e55bbac..9387fa44a7 100644 --- a/public/src/client/infinitescroll.js +++ b/public/src/client/infinitescroll.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/infinitescroll', function () { var scroll = {}; diff --git a/public/src/client/notifications.js b/public/src/client/notifications.js index 0ca79ae6c0..97760b0e0f 100644 --- a/public/src/client/notifications.js +++ b/public/src/client/notifications.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/notifications', ['components', 'notifications', 'forum/infinitescroll'], function (components, notifs, infinitescroll) { var Notifications = {}; diff --git a/public/src/client/popular.js b/public/src/client/popular.js index b8999de7cf..02a1348156 100644 --- a/public/src/client/popular.js +++ b/public/src/client/popular.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/popular', ['components'], function (components) { var Popular = {}; diff --git a/public/src/client/recent.js b/public/src/client/recent.js index b29b1bddef..2ad5677a3a 100644 --- a/public/src/client/recent.js +++ b/public/src/client/recent.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/recent', ['forum/infinitescroll', 'components'], function (infinitescroll, components) { var Recent = {}; diff --git a/public/src/client/register.js b/public/src/client/register.js index 79287d088e..329762271e 100644 --- a/public/src/client/register.js +++ b/public/src/client/register.js @@ -1,8 +1,6 @@ 'use strict'; - - define('forum/register', ['translator'], function (translator) { var Register = {}; var validationError = false; diff --git a/public/src/client/search.js b/public/src/client/search.js index 7df69aa440..36daa34420 100644 --- a/public/src/client/search.js +++ b/public/src/client/search.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/search', ['search', 'autocomplete'], function (searchModule, autocomplete) { var Search = {}; diff --git a/public/src/client/tag.js b/public/src/client/tag.js index 8667cbc303..08774a0e36 100644 --- a/public/src/client/tag.js +++ b/public/src/client/tag.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/tag', ['forum/recent', 'forum/infinitescroll'], function (recent, infinitescroll) { var Tag = {}; diff --git a/public/src/client/tags.js b/public/src/client/tags.js index 7d683831e8..fb57d4d553 100644 --- a/public/src/client/tags.js +++ b/public/src/client/tags.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/tags', ['forum/infinitescroll'], function (infinitescroll) { var Tags = {}; var timeoutId = 0; diff --git a/public/src/client/topic.js b/public/src/client/topic.js index 2c6c11ae2a..ec64795895 100644 --- a/public/src/client/topic.js +++ b/public/src/client/topic.js @@ -1,8 +1,6 @@ 'use strict'; - - define('forum/topic', [ 'forum/infinitescroll', 'forum/topic/threadTools', diff --git a/public/src/client/topic/delete-posts.js b/public/src/client/topic/delete-posts.js index d8f752706c..c770bf045a 100644 --- a/public/src/client/topic/delete-posts.js +++ b/public/src/client/topic/delete-posts.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/topic/delete-posts', ['components', 'postSelect'], function (components, postSelect) { var DeletePosts = {}; diff --git a/public/src/client/topic/events.js b/public/src/client/topic/events.js index dba8b950aa..8f3010bd41 100644 --- a/public/src/client/topic/events.js +++ b/public/src/client/topic/events.js @@ -2,7 +2,6 @@ 'use strict'; - define('forum/topic/events', [ 'forum/topic/postTools', 'forum/topic/threadTools', diff --git a/public/src/client/topic/flag.js b/public/src/client/topic/flag.js index e44c77072c..cb46377641 100644 --- a/public/src/client/topic/flag.js +++ b/public/src/client/topic/flag.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/topic/flag', [], function () { var Flag = {}; diff --git a/public/src/client/topic/fork.js b/public/src/client/topic/fork.js index ab8368ec52..8cc5035e2c 100644 --- a/public/src/client/topic/fork.js +++ b/public/src/client/topic/fork.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/topic/fork', ['components', 'postSelect'], function (components, postSelect) { var Fork = {}; diff --git a/public/src/client/topic/move-post.js b/public/src/client/topic/move-post.js index c4a66917e6..167ef5f413 100644 --- a/public/src/client/topic/move-post.js +++ b/public/src/client/topic/move-post.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/topic/move-post', [], function () { var MovePost = {}; diff --git a/public/src/client/topic/move.js b/public/src/client/topic/move.js index 4043dc211d..85be9013dc 100644 --- a/public/src/client/topic/move.js +++ b/public/src/client/topic/move.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/topic/move', function () { var Move = {}; diff --git a/public/src/client/topic/postTools.js b/public/src/client/topic/postTools.js index d7eedfd840..903c90f4df 100644 --- a/public/src/client/topic/postTools.js +++ b/public/src/client/topic/postTools.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/topic/postTools', [ 'share', 'navigator', diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js index f2c20a5a8f..22d75dad80 100644 --- a/public/src/client/topic/posts.js +++ b/public/src/client/topic/posts.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/topic/posts', [ 'forum/pagination', 'forum/infinitescroll', diff --git a/public/src/client/topic/replies.js b/public/src/client/topic/replies.js index 03529225a5..be54d7027d 100644 --- a/public/src/client/topic/replies.js +++ b/public/src/client/topic/replies.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/topic/replies', ['navigator', 'components', 'forum/topic/posts'], function (navigator, components, posts) { var Replies = {}; diff --git a/public/src/client/topic/threadTools.js b/public/src/client/topic/threadTools.js index 9563e6d3ae..7c1529f12b 100644 --- a/public/src/client/topic/threadTools.js +++ b/public/src/client/topic/threadTools.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/topic/threadTools', [ 'forum/topic/fork', 'forum/topic/move', diff --git a/public/src/client/topic/votes.js b/public/src/client/topic/votes.js index f8f9785407..53b898ee67 100644 --- a/public/src/client/topic/votes.js +++ b/public/src/client/topic/votes.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/topic/votes', ['components', 'translator'], function (components, translator) { var Votes = {}; diff --git a/public/src/client/unread.js b/public/src/client/unread.js index 41686a9eee..df35bfe4da 100644 --- a/public/src/client/unread.js +++ b/public/src/client/unread.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', 'components'], function (recent, topicSelect, infinitescroll, components) { var Unread = {}; diff --git a/public/src/client/users.js b/public/src/client/users.js index 302f65c2c6..5c6f23bc7b 100644 --- a/public/src/client/users.js +++ b/public/src/client/users.js @@ -1,7 +1,6 @@ 'use strict'; - define('forum/users', ['translator'], function (translator) { var Users = {}; diff --git a/public/src/installer/install.js b/public/src/installer/install.js index c3bc1a06de..5f8e59b1eb 100644 --- a/public/src/installer/install.js +++ b/public/src/installer/install.js @@ -17,7 +17,6 @@ $('document').ready(function () { $('#launch').on('click', launchForum); - function setupInputs() { $('form').on('focus', '.form-control', function () { var parent = $(this).parents('.input-row'); diff --git a/public/src/modules/autocomplete.js b/public/src/modules/autocomplete.js index 5988797c13..3635932630 100644 --- a/public/src/modules/autocomplete.js +++ b/public/src/modules/autocomplete.js @@ -2,7 +2,6 @@ 'use strict'; - define('autocomplete', function () { var module = {}; diff --git a/public/src/modules/iconSelect.js b/public/src/modules/iconSelect.js index 118515a5d5..9bbc28369d 100644 --- a/public/src/modules/iconSelect.js +++ b/public/src/modules/iconSelect.js @@ -1,7 +1,6 @@ "use strict"; - define('iconSelect', function () { var iconSelect = {}; diff --git a/public/src/modules/navigator.js b/public/src/modules/navigator.js index f5c729f265..b6f7480027 100644 --- a/public/src/modules/navigator.js +++ b/public/src/modules/navigator.js @@ -2,8 +2,6 @@ 'use strict'; - - define('navigator', ['forum/pagination', 'components'], function (pagination, components) { var navigator = {}; diff --git a/public/src/modules/notifications.js b/public/src/modules/notifications.js index 64b8e2f896..cfb53df136 100644 --- a/public/src/modules/notifications.js +++ b/public/src/modules/notifications.js @@ -1,7 +1,6 @@ 'use strict'; - define('notifications', ['sounds', 'translator', 'components'], function (sound, translator, components) { var Notifications = {}; diff --git a/public/src/modules/pictureCropper.js b/public/src/modules/pictureCropper.js index 3df948e979..7113c6bdd8 100644 --- a/public/src/modules/pictureCropper.js +++ b/public/src/modules/pictureCropper.js @@ -1,7 +1,6 @@ 'use strict'; - define('pictureCropper', ['translator', 'cropper'], function (translator, cropper) { var module = {}; diff --git a/public/src/modules/postSelect.js b/public/src/modules/postSelect.js index 528e488eaf..59cb6a3043 100644 --- a/public/src/modules/postSelect.js +++ b/public/src/modules/postSelect.js @@ -1,7 +1,6 @@ 'use strict'; - define('postSelect', ['components'], function (components) { var PostSelect = {}; @@ -54,6 +53,5 @@ define('postSelect', ['components'], function (components) { }; - return PostSelect; }); \ No newline at end of file diff --git a/public/src/modules/scrollStop.js b/public/src/modules/scrollStop.js index f083a01aa0..f8bd7e8868 100644 --- a/public/src/modules/scrollStop.js +++ b/public/src/modules/scrollStop.js @@ -1,7 +1,6 @@ 'use strict'; - /* The point of this library is to enhance(tm) a textarea so that if scrolled, you can only scroll to the top of it and the event doesn't bubble up to diff --git a/public/src/modules/share.js b/public/src/modules/share.js index b99068ea42..cdfd755bb0 100644 --- a/public/src/modules/share.js +++ b/public/src/modules/share.js @@ -1,7 +1,6 @@ 'use strict'; - define('share', function () { var module = {}; diff --git a/public/src/modules/topicSelect.js b/public/src/modules/topicSelect.js index 097e443bf6..baa8576eb7 100644 --- a/public/src/modules/topicSelect.js +++ b/public/src/modules/topicSelect.js @@ -1,7 +1,6 @@ 'use strict'; - define('topicSelect', ['components'], function (components) { var TopicSelect = {}; var lastSelected; diff --git a/public/src/modules/uploader.js b/public/src/modules/uploader.js index ac1ba7e9f3..12d2f4c0fc 100644 --- a/public/src/modules/uploader.js +++ b/public/src/modules/uploader.js @@ -1,7 +1,6 @@ 'use strict'; - define('uploader', ['translator'], function (translator) { var module = {}; diff --git a/public/src/overrides.js b/public/src/overrides.js index 3cbe27ef28..78b6e3b1db 100644 --- a/public/src/overrides.js +++ b/public/src/overrides.js @@ -1,7 +1,6 @@ 'use strict'; - var overrides = overrides || {}; if ('undefined' !== typeof window) { diff --git a/src/categories/recentreplies.js b/src/categories/recentreplies.js index c77819f28e..33572aabbc 100644 --- a/src/categories/recentreplies.js +++ b/src/categories/recentreplies.js @@ -248,4 +248,3 @@ module.exports = function (Categories) { } }; - diff --git a/src/controllers/accounts/chats.js b/src/controllers/accounts/chats.js index 0e551c4fda..069734dbdc 100644 --- a/src/controllers/accounts/chats.js +++ b/src/controllers/accounts/chats.js @@ -114,5 +114,4 @@ chatsController.redirectToChat = function (req, res, next) { }; - module.exports = chatsController; \ No newline at end of file diff --git a/src/controllers/admin/database.js b/src/controllers/admin/database.js index 5ad87e6c5f..f5006af109 100644 --- a/src/controllers/admin/database.js +++ b/src/controllers/admin/database.js @@ -6,7 +6,6 @@ var nconf = require('nconf'); var databaseController = {}; - databaseController.get = function (req, res, next) { async.parallel({ redis: function (next) { diff --git a/src/controllers/admin/rewards.js b/src/controllers/admin/rewards.js index 8ff05c75b3..87f2cc16c7 100644 --- a/src/controllers/admin/rewards.js +++ b/src/controllers/admin/rewards.js @@ -13,5 +13,4 @@ rewardsController.get = function (req, res, next) { }; - module.exports = rewardsController; \ No newline at end of file diff --git a/src/controllers/uploads.js b/src/controllers/uploads.js index 6f98dabdf2..a70874b921 100644 --- a/src/controllers/uploads.js +++ b/src/controllers/uploads.js @@ -248,5 +248,4 @@ function deleteTempFiles(files) { } - module.exports = uploadsController; diff --git a/src/middleware/header.js b/src/middleware/header.js index 167b784672..0706374c1a 100644 --- a/src/middleware/header.js +++ b/src/middleware/header.js @@ -187,5 +187,3 @@ module.exports = function (middleware) { }; - - diff --git a/src/middleware/headers.js b/src/middleware/headers.js index 5e3a436013..899ce03c12 100644 --- a/src/middleware/headers.js +++ b/src/middleware/headers.js @@ -36,5 +36,3 @@ module.exports = function (middleware) { }; - - diff --git a/src/navigation/admin.js b/src/navigation/admin.js index 1261b2c822..50214179da 100644 --- a/src/navigation/admin.js +++ b/src/navigation/admin.js @@ -1,7 +1,6 @@ "use strict"; - var async = require('async'); var plugins = require('../plugins'); var db = require('../database'); diff --git a/src/posts/create.js b/src/posts/create.js index 429289ea78..fcd7bd1109 100644 --- a/src/posts/create.js +++ b/src/posts/create.js @@ -115,4 +115,3 @@ module.exports = function (Posts) { }; }; - diff --git a/src/routes/feeds.js b/src/routes/feeds.js index 2b8ed242c5..d75491e573 100644 --- a/src/routes/feeds.js +++ b/src/routes/feeds.js @@ -401,4 +401,3 @@ function sendFeed(feed, res) { res.type('xml').set('Content-Length', Buffer.byteLength(xml)).send(xml); } - diff --git a/src/socket.io/index.js b/src/socket.io/index.js index 0493b093fd..80640a4578 100644 --- a/src/socket.io/index.js +++ b/src/socket.io/index.js @@ -244,4 +244,3 @@ Sockets.reqFromSocket = function (socket, payload, event) { }; }; - diff --git a/src/upgrade.js b/src/upgrade.js index a9670ef763..f71a5c93ea 100644 --- a/src/upgrade.js +++ b/src/upgrade.js @@ -1,7 +1,6 @@ "use strict"; - var db = require('./database'); var async = require('async'); var winston = require('winston'); diff --git a/src/webserver.js b/src/webserver.js index cf2d97b39f..a1f45cec04 100644 --- a/src/webserver.js +++ b/src/webserver.js @@ -284,4 +284,3 @@ module.exports.testSocket = function (socketPath, callback) { ], callback); }; - diff --git a/test/categories.js b/test/categories.js index 900d1a9aea..b1553df264 100644 --- a/test/categories.js +++ b/test/categories.js @@ -1,7 +1,6 @@ 'use strict'; - var async = require('async'); var assert = require('assert'); var nconf = require('nconf'); diff --git a/test/controllers.js b/test/controllers.js index 42496db702..1d9399ef24 100644 --- a/test/controllers.js +++ b/test/controllers.js @@ -46,7 +46,6 @@ describe('Controllers', function () { }); - it('should load default home route', function (done) { request(nconf.get('url'), function (err, res, body) { assert.ifError(err); diff --git a/test/database/hash.js b/test/database/hash.js index c8e67c9f1f..c560b37a44 100644 --- a/test/database/hash.js +++ b/test/database/hash.js @@ -391,7 +391,6 @@ describe('Hash methods', function () { }); - after(function (done) { db.emptydb(done); }); diff --git a/test/meta.js b/test/meta.js index b293f78ed9..cb231d9f39 100644 --- a/test/meta.js +++ b/test/meta.js @@ -183,7 +183,6 @@ describe('meta', function () { }); - after(function (done) { db.emptydb(done); }); diff --git a/test/notifications.js b/test/notifications.js index 041ac54fcf..e0a856b961 100644 --- a/test/notifications.js +++ b/test/notifications.js @@ -1,7 +1,6 @@ 'use strict'; - var assert = require('assert'); var async = require('async'); diff --git a/test/plugins.js b/test/plugins.js index b7267d8f4f..90fe7cabda 100644 --- a/test/plugins.js +++ b/test/plugins.js @@ -181,6 +181,5 @@ describe('Plugins', function () { }); - }); diff --git a/test/rewards.js b/test/rewards.js index ead6c6dd1a..7d61398d29 100644 --- a/test/rewards.js +++ b/test/rewards.js @@ -76,10 +76,6 @@ describe('rewards', function () { }); - - - - after(function (done) { db.emptydb(done); }); diff --git a/test/socket.io.js b/test/socket.io.js index 3965448142..3fcc7afa2c 100644 --- a/test/socket.io.js +++ b/test/socket.io.js @@ -3,7 +3,6 @@ // see https://gist.github.com/jfromaniello/4087861#gistcomment-1447029 - process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; var assert = require('assert'); @@ -254,7 +253,6 @@ describe('socket.io', function () { }); - describe('validation emails', function () { var socketAdmin = require('../src/socket.io/admin'); var meta = require('../src/meta'); diff --git a/test/uploads.js b/test/uploads.js index d1fd0e0df3..066a20434f 100644 --- a/test/uploads.js +++ b/test/uploads.js @@ -159,8 +159,6 @@ describe('Upload Controllers', function () { }); - - after(function (done) { db.emptydb(done); }); From 879470f417ed930ce5507b2c359332002a8adf84 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Fri, 17 Feb 2017 22:11:35 -0700 Subject: [PATCH 05/60] ESlint brace-style --- .eslintrc | 4 ++-- public/src/utils.js | 3 +-- src/install.js | 7 +++++-- src/logger.js | 3 +-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.eslintrc b/.eslintrc index 22e7d07d94..b5ab35f18b 100644 --- a/.eslintrc +++ b/.eslintrc @@ -10,16 +10,16 @@ "exports": "always-multiline", "functions": "never" }], - // "linebreak-style": "off", "import/no-unresolved": "off", "import/no-extraneous-dependencies": "off", + // "linebreak-style": "off", // "one-var": "off", // "no-undef": "off", "max-len": "off", "no-new": "off", "max-nested-callbacks": "off", "no-mixed-requires": "off", - "brace-style": "off", + // "brace-style": "off", "max-statements-per-line": "off", "no-unused-vars": "off", "no-mixed-spaces-and-tabs": "off", diff --git a/public/src/utils.js b/public/src/utils.js index b64ce63a5b..6a2e444438 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -214,8 +214,7 @@ } if (n > 999999) { return (n / 1000000).toFixed(1) + 'm'; - } - else if(n > 999) { + } else if(n > 999) { return (n / 1000).toFixed(1) + 'k'; } return n; diff --git a/src/install.js b/src/install.js index 4c3e4df0ec..9e463b5e25 100644 --- a/src/install.js +++ b/src/install.js @@ -513,8 +513,11 @@ install.setup = function (callback) { if (err) { return next(err); } - if (!uptodate) { upgrade.upgrade(next); } - else { next(); } + if (!uptodate) { + upgrade.upgrade(next); + } else { + next(); + } }); }, ], function (err, results) { diff --git a/src/logger.js b/src/logger.js index 87e14d2f65..29138b2e4d 100644 --- a/src/logger.js +++ b/src/logger.js @@ -66,8 +66,7 @@ var opts = { } else { opts.streams.log.f = process.stdout; } - } - else { + } else { Logger.close(opts.streams.log); } }; From 3d6bfa47c5483c87f2ba8dfdbc737136f92b0595 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Fri, 17 Feb 2017 22:13:41 -0700 Subject: [PATCH 06/60] ESlint no-useless-return --- .eslintrc | 2 +- public/src/admin/appearance/themes.js | 2 +- public/src/ajaxify.js | 2 +- src/controllers/index.js | 2 +- src/user/jobs.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.eslintrc b/.eslintrc index b5ab35f18b..9bdcaa181f 100644 --- a/.eslintrc +++ b/.eslintrc @@ -112,6 +112,6 @@ "no-continue": "off", "no-extra-semi": "off", "no-spaced-func": "off", - "no-useless-return": "off" + // "no-useless-return": "off" } } diff --git a/public/src/admin/appearance/themes.js b/public/src/admin/appearance/themes.js index d217520a13..ced02666be 100644 --- a/public/src/admin/appearance/themes.js +++ b/public/src/admin/appearance/themes.js @@ -72,7 +72,7 @@ define('admin/appearance/themes', ['translator'], function (translator) { if (!themes.length) { instListEl.append($('
  • ').addClass('no-themes').translateHtml('[[admin/appearance/themes:no-themes]]')); - return; + } else { templates.parse('admin/partials/theme_list', { themes: themes, diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index 22af54a266..7fb15ec72c 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -158,7 +158,7 @@ $(document).ready(function () { app.alertError('[[global:please_log_in]]'); app.previousUrl = url; window.location.href = config.relative_path + '/login'; - return; + } else if (status === 302 || status === 308) { if (data.responseJSON && data.responseJSON.external) { window.location.href = data.responseJSON.external; diff --git a/src/controllers/index.js b/src/controllers/index.js index 7ce1730dd6..e8b10ead0b 100644 --- a/src/controllers/index.js +++ b/src/controllers/index.js @@ -414,7 +414,7 @@ Controllers.handleURIErrors = function (err, req, res, next) { } } - return; + } else { next(err); } diff --git a/src/user/jobs.js b/src/user/jobs.js index c01f2c613c..a4a7f40ea6 100644 --- a/src/user/jobs.js +++ b/src/user/jobs.js @@ -63,7 +63,7 @@ module.exports = function (User) { callback(); } - return; + }; }; From 1cf25f57fc759c29f3ca22240d393e59bda4e7b6 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Fri, 17 Feb 2017 22:17:10 -0700 Subject: [PATCH 07/60] ESlint no-space-func --- .eslintrc | 2 +- src/database/mongo.js | 2 +- src/database/redis.js | 2 +- src/posts/votes.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.eslintrc b/.eslintrc index 9bdcaa181f..d11613a4fd 100644 --- a/.eslintrc +++ b/.eslintrc @@ -111,7 +111,7 @@ "object-property-newline": "off", "no-continue": "off", "no-extra-semi": "off", - "no-spaced-func": "off", + // "no-spaced-func": "off", // "no-useless-return": "off" } } diff --git a/src/database/mongo.js b/src/database/mongo.js index 61128f9916..4f67122a86 100644 --- a/src/database/mongo.js +++ b/src/database/mongo.js @@ -247,4 +247,4 @@ db.close(); }; -} (exports)); +}(exports)); diff --git a/src/database/redis.js b/src/database/redis.js index e34d626473..f363aafb5c 100644 --- a/src/database/redis.js +++ b/src/database/redis.js @@ -168,5 +168,5 @@ module.helpers = module.helpers || {}; module.helpers.redis = require('./redis/helpers'); -} (exports)); +}(exports)); diff --git a/src/posts/votes.js b/src/posts/votes.js index 3ecf71a018..f4a766ff76 100644 --- a/src/posts/votes.js +++ b/src/posts/votes.js @@ -72,7 +72,7 @@ module.exports = function (Posts) { return callback(err); } - callback (null, {upvoted: hasVoted[0], downvoted: hasVoted[1]}); + callback(null, {upvoted: hasVoted[0], downvoted: hasVoted[1]}); }); }; From d9c1f6f0884efe564329b4fc1ab45c35f72e1624 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Fri, 17 Feb 2017 22:20:45 -0700 Subject: [PATCH 08/60] ESlint no-extra-semi --- .eslintrc | 2 +- public/src/client/topic/posts.js | 2 +- public/src/modules/helpers.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.eslintrc b/.eslintrc index d11613a4fd..96041347bc 100644 --- a/.eslintrc +++ b/.eslintrc @@ -110,7 +110,7 @@ "array-bracket-spacing": "off", "object-property-newline": "off", "no-continue": "off", - "no-extra-semi": "off", + // "no-extra-semi": "off", // "no-spaced-func": "off", // "no-useless-return": "off" } diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js index 22d75dad80..edc0a6298c 100644 --- a/public/src/client/topic/posts.js +++ b/public/src/client/topic/posts.js @@ -325,7 +325,7 @@ define('forum/topic/posts', [ Posts.wrapImagesInLinks(posts); posts.length = 0; } - }; + } // For each image, reset the source and adjust scrollTop when loaded visible.attr('data-state', 'loading'); diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js index ec6e443921..97dc55dfa8 100644 --- a/public/src/modules/helpers.js +++ b/public/src/modules/helpers.js @@ -1,4 +1,4 @@ -;(function (exports) { +(function (exports) { "use strict"; From 554075b312108c334819e9dc0ae541cc89cce3d9 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Fri, 17 Feb 2017 22:31:05 -0700 Subject: [PATCH 09/60] ESlint no-continue --- .eslintrc | 2 +- public/src/client/category.js | 13 ++++++------- public/src/utils.js | 19 +++++++------------ 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/.eslintrc b/.eslintrc index 96041347bc..0664b80eae 100644 --- a/.eslintrc +++ b/.eslintrc @@ -109,7 +109,7 @@ "newline-per-chained-call": "off", "array-bracket-spacing": "off", "object-property-newline": "off", - "no-continue": "off", + // "no-continue": "off", // "no-extra-semi": "off", // "no-spaced-func": "off", // "no-useless-return": "off" diff --git a/public/src/client/category.js b/public/src/client/category.js index f394ee0a88..173b141a96 100644 --- a/public/src/client/category.js +++ b/public/src/client/category.js @@ -228,14 +228,13 @@ define('forum/category', [ if (numTopics > 0) { for (var x = 0; x < numTopics; x++) { var pinned = $(topics[x]).hasClass('pinned'); - if (pinned) { - if(x === numTopics - 1) { - topic.insertAfter(topics[x]); - } - continue; + if (!pinned) { + topic.insertBefore(topics[x]); + break; + } + if(x === numTopics - 1) { + topic.insertAfter(topics[x]); } - topic.insertBefore(topics[x]); - break; } } else { container.append(topic); diff --git a/public/src/utils.js b/public/src/utils.js index 6a2e444438..485ab05fdd 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -447,33 +447,28 @@ }, }; - if (typeof String.prototype.startsWith != 'function') { + if (typeof String.prototype.startsWith !== 'function') { String.prototype.startsWith = function (prefix) { if (this.length < prefix.length) { return false; } - for (var i = prefix.length - 1; (i >= 0) && (this[i] === prefix[i]); --i) { - continue; - } - return i < 0; + return this.slice(0, prefix.length) === prefix; }; } - if (typeof String.prototype.endsWith != 'function') { + if (typeof String.prototype.endsWith !== 'function') { String.prototype.endsWith = function (suffix) { if (this.length < suffix.length) { return false; } - var len = this.length; - var suffixLen = suffix.length; - for (var i = 1; (i <= suffixLen && this[len - i] === suffix[suffixLen - i]); ++i) { - continue; + if (suffix.length === 0) { + return true; } - return i > suffixLen; + return this.slice(-suffix.length) === suffix; }; } - if (typeof String.prototype.rtrim != 'function') { + if (typeof String.prototype.rtrim !== 'function') { String.prototype.rtrim = function () { return this.replace(/\s+$/g, ''); }; From d7526b5e4457b85e9856f2c09c4cc1f018fdaef2 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 00:04:34 -0700 Subject: [PATCH 10/60] ESlint array-bracket-spacing and object-property-newline --- .eslintignore | 1 + .eslintrc | 4 ++-- public/src/admin/extend/widgets.js | 4 +++- src/database/mongo/sorted/intersect.js | 10 +++++++++- src/meta/css.js | 2 +- test/controllers.js | 4 ++-- 6 files changed, 18 insertions(+), 7 deletions(-) diff --git a/.eslintignore b/.eslintignore index 1692d5add2..3278600389 100644 --- a/.eslintignore +++ b/.eslintignore @@ -16,3 +16,4 @@ logs/ *.iws /coverage /build +.eslintrc diff --git a/.eslintrc b/.eslintrc index 0664b80eae..fce036ca1a 100644 --- a/.eslintrc +++ b/.eslintrc @@ -107,8 +107,8 @@ "dot-notation": "off", "func-call-spacing": "off", "newline-per-chained-call": "off", - "array-bracket-spacing": "off", - "object-property-newline": "off", + // "array-bracket-spacing": "off", + // "object-property-newline": "off", // "no-continue": "off", // "no-extra-semi": "off", // "no-spaced-func": "off", diff --git a/public/src/admin/extend/widgets.js b/public/src/admin/extend/widgets.js index b8a07d9d97..c949090036 100644 --- a/public/src/admin/extend/widgets.js +++ b/public/src/admin/extend/widgets.js @@ -94,7 +94,9 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { if (data[d].name) { if (widgetData[data[d].name]) { if(!Array.isArray(widgetData[data[d].name])) { - widgetData[data[d].name] = [ widgetData[data[d].name] ]; + widgetData[data[d].name] = [ + widgetData[data[d].name], + ]; } widgetData[data[d].name].push(data[d].value); }else{ diff --git a/src/database/mongo/sorted/intersect.js b/src/database/mongo/sorted/intersect.js index 2aa51ef8e8..4a58b6d72e 100644 --- a/src/database/mongo/sorted/intersect.js +++ b/src/database/mongo/sorted/intersect.js @@ -56,7 +56,15 @@ module.exports = function (db, module) { $project: { value: 1, score: { - $cond: { if: { $eq: [ "$_key", sets[index] ] }, then: { $multiply: [ '$score', weight ] }, else: '$score' }, + $cond: { + if: { + $eq: ["$_key", sets[index]], + }, + then: { + $multiply: ['$score', weight], + }, + else: '$score', + }, }, }, }); diff --git a/src/meta/css.js b/src/meta/css.js index 99c4abd96b..b3f75ae368 100644 --- a/src/meta/css.js +++ b/src/meta/css.js @@ -143,7 +143,7 @@ module.exports = function (Meta) { return callback(err); } - postcss(global.env === 'development' ? [ autoprefixer ] : [ + postcss(global.env === 'development' ? [autoprefixer] : [ autoprefixer, clean({ processImportFrom: ['local'], diff --git a/test/controllers.js b/test/controllers.js index 1d9399ef24..8c426e24ea 100644 --- a/test/controllers.js +++ b/test/controllers.js @@ -585,14 +585,14 @@ describe('Controllers', function () { widgets: [ { widget: 'html', - data: [ { + data: [{ widget: 'html', data: { html: 'test', title: '', container: '', }, - } ], + }], }, ], }; From d1101a7fb407cd15fd315fb7d0ef916a7aa58c94 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 00:21:44 -0700 Subject: [PATCH 11/60] ESlint dot-notation and func-call-spacing --- .eslintrc | 7 +++---- public/src/admin/advanced/errors.js | 4 ++-- public/src/modules/pictureCropper.js | 2 +- public/src/modules/search.js | 2 +- public/src/modules/settings/array.js | 2 +- public/src/modules/settings/object.js | 2 +- src/install.js | 2 +- 7 files changed, 10 insertions(+), 11 deletions(-) diff --git a/.eslintrc b/.eslintrc index fce036ca1a..6d0b50a7da 100644 --- a/.eslintrc +++ b/.eslintrc @@ -12,6 +12,7 @@ }], "import/no-unresolved": "off", "import/no-extraneous-dependencies": "off", + "newline-per-chained-call": "off", // "linebreak-style": "off", // "one-var": "off", // "no-undef": "off", @@ -103,10 +104,8 @@ "import/no-dynamic-require": "off", "no-bitwise": "off", "no-empty": "off", - "array-bracket-spacin": "off", - "dot-notation": "off", - "func-call-spacing": "off", - "newline-per-chained-call": "off", + // "dot-notation": "off", + // "func-call-spacing": "off", // "array-bracket-spacing": "off", // "object-property-newline": "off", // "no-continue": "off", diff --git a/public/src/admin/advanced/errors.js b/public/src/admin/advanced/errors.js index ec1bf1bff5..1d428da4c2 100644 --- a/public/src/admin/advanced/errors.js +++ b/public/src/admin/advanced/errors.js @@ -63,7 +63,7 @@ define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, transl pointHoverBackgroundColor: "#fff", pointBorderColor: "#fff", pointHoverBorderColor: "rgba(151,187,205,1)", - data: ajaxify.data.analytics['toobusy'], + data: ajaxify.data.analytics.toobusy, }, ], }, @@ -92,7 +92,7 @@ define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, transl new Chart(tooBusyCanvas.getContext('2d'), { type: 'line', - data: data['toobusy'], + data: data.toobusy, options: { responsive: true, legend: { diff --git a/public/src/modules/pictureCropper.js b/public/src/modules/pictureCropper.js index 7113c6bdd8..4a6e7b1388 100644 --- a/public/src/modules/pictureCropper.js +++ b/public/src/modules/pictureCropper.js @@ -67,7 +67,7 @@ define('pictureCropper', ['translator', 'cropper'], function (translator, croppe var socketData = {}; socketData[data.paramName] = data.paramValue; - socketData['imageData'] = imageData; + socketData.imageData = imageData; socket.emit(data.socketMethod, socketData, function (err, imageData) { if (err) { diff --git a/public/src/modules/search.js b/public/src/modules/search.js index 582ea3d4f2..f6cf3c1621 100644 --- a/public/src/modules/search.js +++ b/public/src/modules/search.js @@ -35,7 +35,7 @@ define('search', ['navigator', 'translator'], function (nav, translator) { }; function createQueryString(data) { - var searchIn = data['in'] || 'titlesposts'; + var searchIn = data.in || 'titlesposts'; var postedBy = data.by || ''; var query = { term: data.term, diff --git a/public/src/modules/settings/array.js b/public/src/modules/settings/array.js index 96dcc744cb..e505839568 100644 --- a/public/src/modules/settings/array.js +++ b/public/src/modules/settings/array.js @@ -45,7 +45,7 @@ define('settings/array', function () { var element = $(helper.createElementOfType(type, attributes.tagName, attributes)); element.attr('data-parent', '_' + key); delete attributes['data-type']; - delete attributes['tagName']; + delete attributes.tagName; for (var name in attributes) { var val = attributes[name]; if (name.search('data-') === 0) { diff --git a/public/src/modules/settings/object.js b/public/src/modules/settings/object.js index 8c761fcfb4..11166607e7 100644 --- a/public/src/modules/settings/object.js +++ b/public/src/modules/settings/object.js @@ -27,7 +27,7 @@ define('settings/object', function () { element.attr('data-parent', '_' + key); element.attr('data-prop', prop); delete attributes['data-type']; - delete attributes['tagName']; + delete attributes.tagName; for (var name in attributes) { var val = attributes[name]; if (name.search('data-') === 0) { diff --git a/src/install.js b/src/install.js index 9e463b5e25..cd94e8726d 100644 --- a/src/install.js +++ b/src/install.js @@ -133,7 +133,7 @@ function setupConfig(next) { var allQuestions = questions.main.concat(questions.optional).concat(redisQuestions).concat(mongoQuestions); allQuestions.forEach(function (question) { - config[question.name] = install.values[question.name] || question['default'] || undefined; + config[question.name] = install.values[question.name] || question.default || undefined; }); setImmediate(next, null, config); } else { From 3361a72725ce455d14cc3a301b91a80ba7d8dcd9 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 01:12:18 -0700 Subject: [PATCH 12/60] ESlint no-plusplus and no-empty, space-unary-ops --- .eslintrc | 14 ++++++++------ Gruntfile.js | 4 ++-- app.js | 2 +- install/databases.js | 2 +- loader.js | 4 ++-- public/src/admin/extend/widgets.js | 6 +++--- public/src/admin/general/dashboard.js | 4 ++-- public/src/admin/manage/categories.js | 6 +++--- public/src/admin/manage/category.js | 2 +- public/src/admin/manage/group.js | 2 +- public/src/admin/settings.js | 2 +- public/src/ajaxify.js | 3 ++- public/src/client/category.js | 2 +- public/src/client/category/tools.js | 4 ++-- public/src/client/recent.js | 4 ++-- public/src/client/search.js | 2 +- public/src/client/topic/events.js | 4 ++-- public/src/client/topic/posts.js | 4 ++-- public/src/client/unread.js | 2 +- public/src/modules/notifications.js | 2 +- public/src/modules/settings.js | 14 +++++++------- public/src/modules/settings/array.js | 2 +- public/src/modules/settings/key.js | 2 +- public/src/modules/settings/select.js | 2 +- public/src/modules/topicSelect.js | 2 +- public/src/utils.js | 16 +++++++++------- public/src/widgets.js | 4 ++-- src/analytics.js | 13 +++++++------ src/categories.js | 2 +- src/categories/topics.js | 2 +- src/categories/unread.js | 2 +- src/controllers/admin/plugins.js | 2 +- src/controllers/topics.js | 2 +- src/controllers/users.js | 2 +- src/database/mongo.js | 2 +- src/database/mongo/hash.js | 12 ++++++------ src/database/mongo/helpers.js | 2 +- src/database/mongo/sets.js | 8 ++++---- src/database/mongo/sorted.js | 8 ++++---- src/database/mongo/sorted/add.js | 4 ++-- src/database/redis/hash.js | 4 ++-- src/database/redis/helpers.js | 8 ++++---- src/database/redis/main.js | 2 +- src/database/redis/sorted.js | 8 ++++---- src/database/redis/sorted/add.js | 4 ++-- src/database/redis/sorted/remove.js | 2 +- src/groups.js | 3 +-- src/groups/membership.js | 2 +- src/groups/search.js | 2 +- src/hotswap.js | 2 +- src/messaging.js | 2 +- src/middleware/ratelimit.js | 2 +- src/pagination.js | 4 ++-- src/plugins.js | 4 ++-- src/posts.js | 4 ++-- src/posts/summary.js | 2 +- src/posts/votes.js | 2 +- src/privileges/categories.js | 4 ++-- src/privileges/helpers.js | 14 +++++++------- src/privileges/posts.js | 2 +- src/routes/index.js | 4 ++-- src/settings.js | 6 +++--- src/sitemap.js | 2 +- src/socket.io/admin/rooms.js | 2 +- src/socket.io/admin/user.js | 2 +- src/topics.js | 6 +++--- src/topics/bookmarks.js | 4 ++-- src/topics/data.js | 2 +- src/topics/posts.js | 6 +++--- src/topics/tags.js | 2 +- src/upgrade.js | 4 ++-- src/user.js | 2 +- src/user/data.js | 2 +- src/user/jobs.js | 10 +++++----- src/user/notifications.js | 2 +- src/user/settings.js | 2 +- src/widgets/admin.js | 2 +- test/plugins.js | 2 +- test/posts.js | 2 +- test/topics.js | 2 +- test/utils.js | 8 ++++---- 81 files changed, 167 insertions(+), 162 deletions(-) diff --git a/.eslintrc b/.eslintrc index 6d0b50a7da..0a6be521c6 100644 --- a/.eslintrc +++ b/.eslintrc @@ -12,7 +12,12 @@ }], "import/no-unresolved": "off", "import/no-extraneous-dependencies": "off", + "import/no-dynamic-require": "off", + "no-bitwise": "off", "newline-per-chained-call": "off", + "no-console": "off", + "no-empty": ["error", { "allowEmptyCatch": true }], + // "linebreak-style": "off", // "one-var": "off", // "no-undef": "off", @@ -84,7 +89,6 @@ "no-multi-spaces": "off", "quotes": "off", "keyword-spacing": "off", - "no-plusplus": "off", "no-mixed-operators": "off", "comma-spacing": "off", "global-require": "off", @@ -99,11 +103,9 @@ "space-in-parens": "off", "block-spacing": "off", "quote-props": "off", - "no-console": "off", - "space-unary-ops": "off", - "import/no-dynamic-require": "off", - "no-bitwise": "off", - "no-empty": "off", + // "space-unary-ops": "off", + // "no-plusplus": "off", + // "no-empty": "off", // "dot-notation": "off", // "func-call-spacing": "off", // "array-bracket-spacing": "off", diff --git a/Gruntfile.js b/Gruntfile.js index e0544e60c5..86db9c77f2 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -46,9 +46,9 @@ module.exports = function (grunt) { updateWorker.kill('SIGKILL'); } updateWorker = fork('app.js', updateArgs, { env: env }); - ++running; + running += 1; updateWorker.on('exit', function () { - --running; + running -= 1; if (running === 0) { worker = fork('app.js', args, { env: env }); worker.on('message', function () { diff --git a/app.js b/app.js index 1cd10a446c..3dba714fbf 100644 --- a/app.js +++ b/app.js @@ -155,7 +155,7 @@ function setup() { var separator = ' '; if (process.stdout.columns > 10) { - for(var x = 0,cols = process.stdout.columns - 10; x < cols; x++) { + for(var x = 0,cols = process.stdout.columns - 10; x < cols; x += 1) { separator += '='; } } diff --git a/install/databases.js b/install/databases.js index 7ce33bc1aa..08f5a2bafb 100644 --- a/install/databases.js +++ b/install/databases.js @@ -74,7 +74,7 @@ function saveDatabaseConfig(config, databaseConfig, callback) { } var allQuestions = questions.redis.concat(questions.mongo); - for (var x = 0; x < allQuestions.length; x++) { + for (var x = 0; x < allQuestions.length; x += 1) { delete config[allQuestions[x].name]; } diff --git a/loader.js b/loader.js index 959e5124b7..bcfad1b52c 100644 --- a/loader.js +++ b/loader.js @@ -52,7 +52,7 @@ Loader.addWorkerEvents = function (worker) { worker.on('exit', function (code, signal) { if (code !== 0) { if (Loader.timesStarted < numProcs * 3) { - Loader.timesStarted++; + Loader.timesStarted += 1; if (Loader.crashTimer) { clearTimeout(Loader.crashTimer); } @@ -93,7 +93,7 @@ Loader.start = function (callback) { numProcs = getPorts().length; console.log('Clustering enabled: Spinning up ' + numProcs + ' process(es).\n'); - for (var x = 0; x < numProcs; ++x) { + for (var x = 0; x < numProcs; x += 1) { forkWorker(x, x === 0); } diff --git a/public/src/admin/extend/widgets.js b/public/src/admin/extend/widgets.js index c949090036..4576e6d72b 100644 --- a/public/src/admin/extend/widgets.js +++ b/public/src/admin/extend/widgets.js @@ -117,7 +117,7 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { location: location, widgets: widgets, }, function (err) { - total--; + total -= 1; if (err) { app.alertError(err.message); @@ -209,13 +209,13 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { $.get(RELATIVE_PATH + '/api/admin/extend/widgets', function (data) { var areas = data.areas; - for(var i = 0; i < areas.length; ++i) { + for(var i = 0; i < areas.length; i += 1) { var area = areas[i]; var widgetArea = $('#widgets .area[data-template="' + area.template + '"][data-location="' + area.location + '"]').find('.widget-area'); widgetArea.html(''); - for (var k = 0; k < area.data.length; ++k) { + for (var k = 0; k < area.data.length; k += 1) { var widgetData = area.data[k]; var widgetEl = $('.available-widgets [data-widget="' + widgetData.widget + '"]').clone(true).removeClass('hide'); diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index 6097a58339..798f470ae8 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -387,7 +387,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s graphs.topics.data.datasets[0].backgroundColor = []; graphs.topics.data.datasets[0].hoverBackgroundColor = []; - for (var i = 0, ii = tids.length; i < ii; i++) { + for (var i = 0, ii = tids.length; i < ii; i += 1) { graphs.topics.data.labels.push(topics[tids[i]].title); graphs.topics.data.datasets[0].data.push(topics[tids[i]].value); graphs.topics.data.datasets[0].backgroundColor.push(topicColors[i]); @@ -397,7 +397,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s function buildTopicsLegend() { var legend = $('#topics-legend').html(''); - for (var i = 0, ii = tids.length; i < ii; i++) { + for (var i = 0, ii = tids.length; i < ii; i += 1) { var topic = topics[tids[i]]; var label = topic.value === '0' ? topic.title : ' ' + topic.title + ''; diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js index 8d83050bf1..e953af0fba 100644 --- a/public/src/admin/manage/categories.js +++ b/public/src/admin/manage/categories.js @@ -135,7 +135,7 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri var list = parentCategory.toArray(); var len = list.length; - for(i; i < len; ++i) { + for(i; i < len; i += 1) { modified[list[i]] = { order: (i + 1), }; @@ -166,7 +166,7 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri if (category.name !== translated) { category.name = translated; } - ++count; + count += 1; if (count === parent.length) { continueRender(); @@ -187,7 +187,7 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri container.append(html); // Handle and children categories in this level have - for(var x = 0,numCategories = categories.length; x < numCategories; x++) { + for(var x = 0, numCategories = categories.length; x < numCategories; x += 1) { renderList(categories[x].children, $('li[data-cid="' + categories[x].cid + '"]'), categories[x].cid); } diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js index d864a96b94..bf6f140f41 100644 --- a/public/src/admin/manage/category.js +++ b/public/src/admin/manage/category.js @@ -295,7 +295,7 @@ define('admin/manage/category', [ privs.push(el.getAttribute('data-privilege')); } }); - for(var x = 0,numPrivs = privs.length; x < numPrivs; x++) { + for(var x = 0, numPrivs = privs.length; x < numPrivs; x += 1) { var inputs = $('.privilege-table tr[data-group-name]:not([data-group-name="registered-users"],[data-group-name="guests"]) td[data-privilege="' + privs[x] + '"] input'); inputs.each(function (idx, el) { if (!el.checked) { diff --git a/public/src/admin/manage/group.js b/public/src/admin/manage/group.js index b799b7c9ea..93b73ac527 100644 --- a/public/src/admin/manage/group.js +++ b/public/src/admin/manage/group.js @@ -51,7 +51,7 @@ define('admin/manage/group', [ groupDetailsSearchResults.empty(); - for (x = 0; x < numResults; x++) { + for (x = 0; x < numResults; x += 1) { foundUser = $('
  • '); foundUser .attr({title: results.users[x].username, diff --git a/public/src/admin/settings.js b/public/src/admin/settings.js index d9ae99714f..f38fac8bc5 100644 --- a/public/src/admin/settings.js +++ b/public/src/admin/settings.js @@ -36,7 +36,7 @@ define('admin/settings', ['uploader'], function (uploader) { app.flags._unsaved = true; }); - for (x = 0; x < numFields; x++) { + for (x = 0; x < numFields; x += 1) { field = fields.eq(x); key = field.attr('data-field'); inputType = field.attr('type'); diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index 7fb15ec72c..a25c79fe1e 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -196,7 +196,8 @@ $(document).ready(function () { ajaxify.end = function (url, tpl_url) { function done() { - if (--count === 0) { + count -= 1; + if (count === 0) { $(window).trigger('action:ajaxify.end', {url: url, tpl_url: tpl_url, title: ajaxify.data.title}); } } diff --git a/public/src/client/category.js b/public/src/client/category.js index 173b141a96..aa46eb1405 100644 --- a/public/src/client/category.js +++ b/public/src/client/category.js @@ -226,7 +226,7 @@ define('forum/category', [ } if (numTopics > 0) { - for (var x = 0; x < numTopics; x++) { + for (var x = 0; x < numTopics; x += 1) { var pinned = $(topics[x]).hasClass('pinned'); if (!pinned) { topic.insertBefore(topics[x]); diff --git a/public/src/client/category/tools.js b/public/src/client/category/tools.js index 77d662e5ad..814e06691c 100644 --- a/public/src/client/category/tools.js +++ b/public/src/client/category/tools.js @@ -180,7 +180,7 @@ define('forum/category/tools', [ } function isAny(method, tids) { - for(var i = 0; i < tids.length; ++i) { + for(var i = 0; i < tids.length; i += 1) { if(method(tids[i])) { return true; } @@ -189,7 +189,7 @@ define('forum/category/tools', [ } function areAll(method, tids) { - for(var i = 0; i < tids.length; ++i) { + for(var i = 0; i < tids.length; i += 1) { if(!method(tids[i])) { return false; } diff --git a/public/src/client/recent.js b/public/src/client/recent.js index 2ad5677a3a..511137adbb 100644 --- a/public/src/client/recent.js +++ b/public/src/client/recent.js @@ -46,13 +46,13 @@ define('forum/recent', ['forum/infinitescroll', 'components'], function (infinit return; } - ++newTopicCount; + newTopicCount += 1; Recent.updateAlertText(); } function onNewPost(data) { function showAlert() { - ++newPostCount; + newPostCount += 1; Recent.updateAlertText(); } diff --git a/public/src/client/search.js b/public/src/client/search.js index 36daa34420..4f65935913 100644 --- a/public/src/client/search.js +++ b/public/src/client/search.js @@ -137,7 +137,7 @@ define('forum/search', ['search', 'autocomplete'], function (searchModule, autoc result.html(result.html().replace(regex, '$1')); - for (var i = 0, ii = nested.length; i < ii; i++) { + for (var i = 0, ii = nested.length; i < ii; i += 1) { result.html(result.html().replace('', nested[i].html())); } }); diff --git a/public/src/client/topic/events.js b/public/src/client/topic/events.js index 8f3010bd41..0f5b58c311 100644 --- a/public/src/client/topic/events.js +++ b/public/src/client/topic/events.js @@ -165,7 +165,7 @@ define('forum/topic/events', [ return true; } - for (var i = 0; i < tags.length; ++i) { + for (var i = 0; i < tags.length; i += 1) { if (!$('.tags .tag-item[data-tag="' + tags[i].value + '"]').length) { return true; } @@ -178,7 +178,7 @@ define('forum/topic/events', [ $(this).remove(); posts.showBottomPostBar(); }); - ajaxify.data.postcount --; + ajaxify.data.postcount -= 1; postTools.updatePostCount(ajaxify.data.postcount); require(['forum/topic/replies'], function (replies) { replies.onPostPurged(postData); diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js index edc0a6298c..9ab48cbeaa 100644 --- a/public/src/client/topic/posts.js +++ b/public/src/client/topic/posts.js @@ -28,7 +28,7 @@ define('forum/topic/posts', [ updatePostCounts(data.posts); - ajaxify.data.postcount ++; + ajaxify.data.postcount += 1; postTools.updatePostCount(ajaxify.data.postcount); if (config.usePagination) { @@ -54,7 +54,7 @@ define('forum/topic/posts', [ }; function updatePostCounts(posts) { - for (var i = 0; i < posts.length; ++i) { + for (var i = 0; i < posts.length; i += 1) { var cmp = components.get('user/postcount', posts[i].uid); cmp.html(parseInt(cmp.attr('data-postcount'), 10) + 1); utils.addCommasToNumbers(cmp); diff --git a/public/src/client/unread.js b/public/src/client/unread.js index df35bfe4da..73b392ab3e 100644 --- a/public/src/client/unread.js +++ b/public/src/client/unread.js @@ -118,7 +118,7 @@ define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', ' } function removeTids(tids) { - for(var i = 0; i < tids.length; ++i) { + for(var i = 0; i < tids.length; i += 1) { components.get('category/topic', 'tid', tids[i]).remove(); } } diff --git a/public/src/modules/notifications.js b/public/src/modules/notifications.js index cfb53df136..e8a6e0a97b 100644 --- a/public/src/modules/notifications.js +++ b/public/src/modules/notifications.js @@ -125,7 +125,7 @@ define('notifications', ['sounds', 'translator', 'components'], function (sound, }); translator.toggleTimeagoShorthand(); - for(var i = 0; i < notifs.length; ++i) { + for(var i = 0; i < notifs.length; i += 1) { notifs[i].timeago = $.timeago(new Date(parseInt(notifs[i].datetime, 10))); } translator.toggleTimeagoShorthand(); diff --git a/public/src/modules/settings.js b/public/src/modules/settings.js index 31aeac9788..cc10a7cdf4 100644 --- a/public/src/modules/settings.js +++ b/public/src/modules/settings.js @@ -129,7 +129,7 @@ define('settings', function () { if (!trim && empty) { return array; } - for (var i = 0; i < array.length; i++) { + for (var i = 0; i < array.length; i += 1) { var value = array[i]; if (trim) { value = value === true ? 1 : value === false ? 0 : typeof value.trim === 'function' ? value.trim() : value; @@ -226,7 +226,7 @@ define('settings', function () { if (hook != null) { hook.call(Settings, field); } - for (var i = 0; i < keyParts.length; i++) { + for (var i = 0; i < keyParts.length; i += 1) { var part = keyParts[i]; if (part && value != null) { value = value[part]; @@ -254,7 +254,7 @@ define('settings', function () { if (waitingJobs > 0) { waitingJobs -= amount; if (waitingJobs <= 0) { - for (var i = 0; i < onReady.length; i++) { + for (var i = 0; i < onReady.length; i += 1) { onReady[i](); } onReady = []; @@ -352,7 +352,7 @@ define('settings', function () { if (typeof service.use === 'function') { service.use.call(Settings); } - for (var i = 0; i < types.length; i++) { + for (var i = 0; i < types.length; i += 1) { var type = types[i].toLowerCase(); if (Settings.plugins[type] == null) { Settings.plugins[type] = service; @@ -415,14 +415,14 @@ define('settings', function () { if (notify == null) { notify = true; } - for (var i = 0; i < fields.length; i++) { + for (var i = 0; i < fields.length; i += 1) { var field = $(fields[i]); var value = helper.readValue(field); var parentCfg = Settings.get(); var keyParts = field.data('key').split('.'); var lastKey = keyParts[keyParts.length - 1]; if (keyParts.length > 1) { - for (var j = 0; j < keyParts.length - 1; j++) { + for (var j = 0; j < keyParts.length - 1; j += 1) { var part = keyParts[j]; if (part && parentCfg != null) { parentCfg = parentCfg[part]; @@ -534,7 +534,7 @@ define('settings', function () { helper.registerReadyJobs(1); require(DEFAULT_PLUGINS, function () { - for (var i = 0; i < arguments.length; i++) { + for (var i = 0; i < arguments.length; i += 1) { Settings.registerPlugin(arguments[i]); } helper.beforeReadyJobsDecreased(); diff --git a/public/src/modules/settings/array.js b/public/src/modules/settings/array.js index e505839568..7096953299 100644 --- a/public/src/modules/settings/array.js +++ b/public/src/modules/settings/array.js @@ -115,7 +115,7 @@ define('settings/array', function () { if (!(value instanceof Array)) { value = []; } - for (var i = 0; i < value.length; i++) { + for (var i = 0; i < value.length; i += 1) { addArrayChildElement(element, key, attributes, value[i], separator.clone(), function (el) { element.append(el); }); diff --git a/public/src/modules/settings/key.js b/public/src/modules/settings/key.js index f782b614d9..a7537b1c51 100644 --- a/public/src/modules/settings/key.js +++ b/public/src/modules/settings/key.js @@ -131,7 +131,7 @@ define('settings/key', function () { var key = new Key(); var sep = /([^CtrlAShifMea#\d]+)(?:#|\d)/.exec(str); var parts = sep != null ? str.split(sep[1]) : [str]; - for (var i = 0; i < parts.length; i++) { + for (var i = 0; i < parts.length; i += 1) { var part = parts[i]; switch (part) { case 'C': diff --git a/public/src/modules/settings/select.js b/public/src/modules/settings/select.js index c0d11a1632..78f98b4cea 100644 --- a/public/src/modules/settings/select.js +++ b/public/src/modules/settings/select.js @@ -4,7 +4,7 @@ define('settings/select', function () { var SettingsSelect; function addOptions(element, options) { - for (var i = 0; i < options.length; i++) { + for (var i = 0; i < options.length; i += 1) { var optionData = options[i]; var value = optionData.text || optionData.value; delete optionData.text; diff --git a/public/src/modules/topicSelect.js b/public/src/modules/topicSelect.js index baa8576eb7..90949a140e 100644 --- a/public/src/modules/topicSelect.js +++ b/public/src/modules/topicSelect.js @@ -70,7 +70,7 @@ define('topicSelect', ['components'], function (components) { end = tmp; } - for(var i = start; i <= end; ++i) { + for(var i = start; i <= end; i += 1) { var topic = $('[component="category/topic"]').eq(i); toggleSelect(topic.find('[component="topic/select"]'), isSelected); } diff --git a/public/src/utils.js b/public/src/utils.js index 485ab05fdd..891bb21da1 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -58,13 +58,15 @@ } results = results.concat(res); - if (!--pending) { + pending -= 1; + if (!pending) { done(null, results); } }); } else { results.push(file); - if (!--pending) { + pending -= 1; + if (!pending) { done(null, results); } } @@ -148,10 +150,10 @@ var result = {}; var obj; var keys; - for (var i = 0; i < arguments.length; i++) { + for (var i = 0; i < arguments.length; i += 1) { obj = arguments[i] || {}; keys = Object.keys(obj); - for (var j = 0; j < keys.length; j++) { + for (var j = 0; j < keys.length; j += 1) { result[keys[j]] = obj[keys[j]]; } } @@ -276,7 +278,7 @@ $el.appendTo($('body')); - for (var i = envs.length - 1; i >= 0; i--) { + for (var i = envs.length - 1; i >= 0; i -= 1) { var env = envs[i]; $el.addClass('hidden-' + env); @@ -298,7 +300,7 @@ var currentHour = new Date().getHours(); var labels = []; - for (var i = currentHour, ii = currentHour - 24; i > ii; i--) { + for (var i = currentHour, ii = currentHour - 24; i > ii; i -= 1) { var hour = i < 0 ? 24 + i : i; labels.push(hour + ':00'); } @@ -312,7 +314,7 @@ var labels = []; var tmpDate; - for(var x = 29; x >= 0; x--) { + for(var x = 29; x >= 0; x -= 1) { tmpDate = new Date(currentDay - (1000 * 60 * 60 * 24 * x)); labels.push(months[tmpDate.getMonth()] + ' ' + tmpDate.getDate()); } diff --git a/public/src/widgets.js b/public/src/widgets.js index 961f0a8672..de8a1077ee 100644 --- a/public/src/widgets.js +++ b/public/src/widgets.js @@ -36,12 +36,12 @@ cid: ajaxify.data.cid, isMobile: utils.isMobile(), }, function (renderedAreas) { - for (var x = 0; x < renderedAreas.length; ++x) { + for (var x = 0; x < renderedAreas.length; x += 1) { var renderedWidgets = renderedAreas[x].widgets; var location = renderedAreas[x].location; var html = ''; - for (var i = 0; i < renderedWidgets.length; ++i) { + for (var i = 0; i < renderedWidgets.length; i += 1) { html += templates.parse(renderedWidgets[i].html, {}); } diff --git a/src/analytics.js b/src/analytics.js index 6aa5bf0505..e3544aa281 100644 --- a/src/analytics.js +++ b/src/analytics.js @@ -25,12 +25,12 @@ Analytics.increment = function (keys) { keys.forEach(function (key) { counters[key] = counters[key] || 0; - ++counters[key]; + counters[key] += 1; }); }; Analytics.pageView = function (payload) { - ++pageViews; + pageViews += 1; if (payload.ip) { db.sortedSetScore('ip:recent', payload.ip, function (err, score) { @@ -38,12 +38,12 @@ Analytics.pageView = function (payload) { return; } if (!score) { - ++uniqueIPCount; + uniqueIPCount += 1; } var today = new Date(); today.setHours(today.getHours(), 0, 0, 0); if (!score || score < today.getTime()) { - ++uniquevisitors; + uniquevisitors += 1; db.sortedSetAdd('ip:recent', Date.now(), payload.ip); } }); @@ -109,7 +109,7 @@ Analytics.getHourlyStatsForSet = function (set, hour, numHours, callback) { hour = new Date(hour); hour.setHours(hour.getHours(), 0, 0, 0); - for (var i = 0, ii = numHours; i < ii; i++) { + for (var i = 0, ii = numHours; i < ii; i += 1) { hoursArr.push(hour.getTime()); hour.setHours(hour.getHours() - 1, 0, 0, 0); } @@ -142,7 +142,8 @@ Analytics.getDailyStatsForSet = function (set, day, numDays, callback) { day.setHours(0, 0, 0, 0); async.whilst(function () { - return numDays--; + numDays -= 1; + return numDays + 1; }, function (next) { Analytics.getHourlyStatsForSet(set, day.getTime() - (1000 * 60 * 60 * 24 * numDays), 24, function (err, day) { if (err) { diff --git a/src/categories.js b/src/categories.js index 32aa5bf88b..650723f46d 100644 --- a/src/categories.js +++ b/src/categories.js @@ -298,7 +298,7 @@ var privileges = require('./privileges'); var len = categories.length; var category; - for (i; i < len; ++i) { + for (i; i < len; i += 1) { category = categories[i]; if (!category.hasOwnProperty('parentCid') || category.parentCid === null) { category.parentCid = 0; diff --git a/src/categories/topics.js b/src/categories/topics.js index 7dba06ab37..f487846f1b 100644 --- a/src/categories/topics.js +++ b/src/categories/topics.js @@ -24,7 +24,7 @@ module.exports = function (Categories) { return next(null, {topics: [], uid: data.uid}); } - for (var i = 0; i < topics.length; ++i) { + for (var i = 0; i < topics.length; i += 1) { topics[i].index = data.start + i; } diff --git a/src/categories/unread.js b/src/categories/unread.js index 3a1ba27277..8fe4ecaa31 100644 --- a/src/categories/unread.js +++ b/src/categories/unread.js @@ -43,7 +43,7 @@ module.exports = function (Categories) { Categories.hasReadCategories = function (cids, uid, callback) { var sets = []; - for (var i = 0, ii = cids.length; i < ii; i++) { + for (var i = 0, ii = cids.length; i < ii; i += 1) { sets.push('cid:' + cids[i] + ':read_by_uid'); } diff --git a/src/controllers/admin/plugins.js b/src/controllers/admin/plugins.js index 1c70077bec..d339276286 100644 --- a/src/controllers/admin/plugins.js +++ b/src/controllers/admin/plugins.js @@ -39,7 +39,7 @@ pluginsController.get = function (req, res, next) { }), upgradeCount: payload.compatible.reduce(function (count, current) { if (current.installed && current.outdated) { - ++count; + count += 1; } return count; }, 0), diff --git a/src/controllers/topics.js b/src/controllers/topics.js index 5db311a8ad..4b5ef83245 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -149,7 +149,7 @@ topicsController.get = function (req, res, callback) { }, function (topicData, next) { function findPost(index) { - for(var i = 0; i < topicData.posts.length; ++i) { + for(var i = 0; i < topicData.posts.length; i += 1) { if (parseInt(topicData.posts[i].index, 10) === parseInt(index, 10)) { return topicData.posts[i]; } diff --git a/src/controllers/users.js b/src/controllers/users.js index 78a9f8beb1..2d8f3c8225 100644 --- a/src/controllers/users.js +++ b/src/controllers/users.js @@ -79,7 +79,7 @@ usersController.getOnlineUsers = function (req, res, next) { if (!userData.isAdminOrGlobalMod) { userData.users = userData.users.filter(function (user) { if (user && user.status === 'offline') { - hiddenCount ++; + hiddenCount += 1; } return user && user.status !== 'offline'; }); diff --git a/src/database/mongo.js b/src/database/mongo.js index 4f67122a86..1dfc45ccb4 100644 --- a/src/database/mongo.js +++ b/src/database/mongo.js @@ -76,7 +76,7 @@ var ports = nconf.get('mongo:port').toString().split(','); var servers = []; - for (var i = 0; i < hosts.length; i++) { + for (var i = 0; i < hosts.length; i += 1) { servers.push(hosts[i] + ':' + ports[i]); } diff --git a/src/database/mongo/hash.js b/src/database/mongo/hash.js index e48b3959f8..aa655ba658 100644 --- a/src/database/mongo/hash.js +++ b/src/database/mongo/hash.js @@ -44,7 +44,7 @@ module.exports = function (db, module) { var map = helpers.toMap(data); var returnData = []; - for (var i = 0; i < keys.length; ++i) { + for (var i = 0; i < keys.length; i += 1) { returnData.push(map[keys[i]]); } @@ -78,7 +78,7 @@ module.exports = function (db, module) { _id: 0, }; - for(var i = 0; i < fields.length; ++i) { + for(var i = 0; i < fields.length; i += 1) { fields[i] = helpers.fieldToString(fields[i]); _fields[fields[i]] = 1; } @@ -88,7 +88,7 @@ module.exports = function (db, module) { } item = item || {}; var result = {}; - for(i = 0; i < fields.length; ++i) { + for(i = 0; i < fields.length; i += 1) { result[fields[i]] = item[fields[i]] !== undefined ? item[fields[i]] : null; } callback(null, result); @@ -104,7 +104,7 @@ module.exports = function (db, module) { _key: 1, }; - for(var i = 0; i < fields.length; ++i) { + for(var i = 0; i < fields.length; i += 1) { fields[i] = helpers.fieldToString(fields[i]); _fields[fields[i]] = 1; } @@ -122,10 +122,10 @@ module.exports = function (db, module) { var returnData = []; var item; - for (var i = 0; i < keys.length; ++i) { + for (var i = 0; i < keys.length; i += 1) { item = map[keys[i]] || {}; - for (var k = 0; k < fields.length; ++k) { + for (var k = 0; k < fields.length; k += 1) { if (item[fields[k]] === undefined) { item[fields[k]] = null; } diff --git a/src/database/mongo/helpers.js b/src/database/mongo/helpers.js index 0985e62617..75ca83edbd 100644 --- a/src/database/mongo/helpers.js +++ b/src/database/mongo/helpers.js @@ -4,7 +4,7 @@ var helpers = {}; helpers.toMap = function (data) { var map = {}; - for (var i = 0; i < data.length; ++i) { + for (var i = 0; i < data.length; i += 1) { map[data[i]._key] = data[i]; data[i]._key = undefined; } diff --git a/src/database/mongo/sets.js b/src/database/mongo/sets.js index 1c3c53739c..262c0761ff 100644 --- a/src/database/mongo/sets.js +++ b/src/database/mongo/sets.js @@ -46,7 +46,7 @@ module.exports = function (db, module) { var bulk = db.collection('objects').initializeUnorderedBulkOp(); - for(var i = 0; i < keys.length; ++i) { + for(var i = 0; i < keys.length; i += 1) { bulk.find({_key: keys[i]}).upsert().updateOne({ $addToSet: { members: { $each: value, @@ -83,7 +83,7 @@ module.exports = function (db, module) { var bulk = db.collection('objects').initializeUnorderedBulkOp(); - for(var i = 0; i < keys.length; ++i) { + for(var i = 0; i < keys.length; i += 1) { bulk.find({_key: keys[i]}).updateOne({$pull: { members: value, }}); @@ -110,7 +110,7 @@ module.exports = function (db, module) { return callback(null, []); } - for (var i = 0; i < values.length; ++i) { + for (var i = 0; i < values.length; i += 1) { values[i] = helpers.valueToString(values[i]); } @@ -174,7 +174,7 @@ module.exports = function (db, module) { }); var returnData = new Array(keys.length); - for(var i = 0; i < keys.length; ++i) { + for(var i = 0; i < keys.length; i += 1) { returnData[i] = sets[keys[i]] || []; } callback(null, returnData); diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index ef76db33d9..56c4a80688 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -212,7 +212,7 @@ module.exports = function (db, module) { return callback(null, []); } var data = new Array(values.length); - for (var i = 0; i < values.length; ++i) { + for (var i = 0; i < values.length; i += 1) { data[i] = {key: keys[i], value: values[i]}; } @@ -263,7 +263,7 @@ module.exports = function (db, module) { var returnData = []; var item; - for(var i = 0; i < keys.length; ++i) { + for(var i = 0; i < keys.length; i += 1) { item = map[keys[i]]; returnData.push(item ? item.score : null); } @@ -290,7 +290,7 @@ module.exports = function (db, module) { var returnData = new Array(values.length); var score; - for(var i = 0; i < values.length; ++i) { + for(var i = 0; i < values.length; i += 1) { score = map[values[i]]; returnData[i] = utils.isNumber(score) ? score : null; } @@ -367,7 +367,7 @@ module.exports = function (db, module) { }); var returnData = new Array(keys.length); - for(var i = 0; i < keys.length; ++i) { + for(var i = 0; i < keys.length; i += 1) { returnData[i] = sets[keys[i]] || []; } callback(null, returnData); diff --git a/src/database/mongo/sorted/add.js b/src/database/mongo/sorted/add.js index e03452b3df..67caed682d 100644 --- a/src/database/mongo/sorted/add.js +++ b/src/database/mongo/sorted/add.js @@ -35,7 +35,7 @@ module.exports = function (db, module) { var bulk = db.collection('objects').initializeUnorderedBulkOp(); - for(var i = 0; i < scores.length; ++i) { + for(var i = 0; i < scores.length; i += 1) { bulk.find({_key: key, value: values[i]}).upsert().updateOne({$set: {score: parseFloat(scores[i])}}); } @@ -53,7 +53,7 @@ module.exports = function (db, module) { var bulk = db.collection('objects').initializeUnorderedBulkOp(); - for(var i = 0; i < keys.length; ++i) { + for(var i = 0; i < keys.length; i += 1) { bulk.find({_key: keys[i], value: value}).upsert().updateOne({$set: {score: parseFloat(score)}}); } diff --git a/src/database/redis/hash.js b/src/database/redis/hash.js index f679f7637d..1f0b30a03e 100644 --- a/src/database/redis/hash.js +++ b/src/database/redis/hash.js @@ -52,14 +52,14 @@ module.exports = function (redisClient, module) { } var multi = redisClient.multi(); - for(var x = 0; x < keys.length; ++x) { + for(var x = 0; x < keys.length; x += 1) { multi.hmget.apply(multi, [keys[x]].concat(fields)); } function makeObject(array) { var obj = {}; - for (var i = 0, ii = fields.length; i < ii; ++i) { + for (var i = 0, ii = fields.length; i < ii; i += 1) { obj[fields[i]] = array[i]; } return obj; diff --git a/src/database/redis/helpers.js b/src/database/redis/helpers.js index a4ca7e116f..53167fb5ee 100644 --- a/src/database/redis/helpers.js +++ b/src/database/redis/helpers.js @@ -5,7 +5,7 @@ var helpers = {}; helpers.multiKeys = function (redisClient, command, keys, callback) { callback = callback || function () {}; var multi = redisClient.multi(); - for (var i = 0; i < keys.length; ++i) { + for (var i = 0; i < keys.length; i += 1) { multi[command](keys[i]); } multi.exec(callback); @@ -14,7 +14,7 @@ helpers.multiKeys = function (redisClient, command, keys, callback) { helpers.multiKeysValue = function (redisClient, command, keys, value, callback) { callback = callback || function () {}; var multi = redisClient.multi(); - for (var i = 0; i < keys.length; ++i) { + for (var i = 0; i < keys.length; i += 1) { multi[command](keys[i], value); } multi.exec(callback); @@ -23,14 +23,14 @@ helpers.multiKeysValue = function (redisClient, command, keys, value, callback) helpers.multiKeyValues = function (redisClient, command, key, values, callback) { callback = callback || function () {}; var multi = redisClient.multi(); - for (var i = 0; i < values.length; ++i) { + for (var i = 0; i < values.length; i += 1) { multi[command](key, values[i]); } multi.exec(callback); }; helpers.resultsToBool = function (results) { - for (var i = 0; i < results.length; ++i) { + for (var i = 0; i < results.length; i += 1) { results[i] = results[i] === 1; } return results; diff --git a/src/database/redis/main.js b/src/database/redis/main.js index 10f26cfd3e..2bc31a38e5 100644 --- a/src/database/redis/main.js +++ b/src/database/redis/main.js @@ -30,7 +30,7 @@ module.exports = function (redisClient, module) { module.deleteAll = function (keys, callback) { callback = callback || function () {}; var multi = redisClient.multi(); - for(var i = 0; i < keys.length; ++i) { + for(var i = 0; i < keys.length; i += 1) { multi.del(keys[i]); } multi.exec(function (err, res) { diff --git a/src/database/redis/sorted.js b/src/database/redis/sorted.js index 90e2cfdf08..26d6f45b34 100644 --- a/src/database/redis/sorted.js +++ b/src/database/redis/sorted.js @@ -94,7 +94,7 @@ module.exports = function (redisClient, module) { return callback(null, []); } var multi = redisClient.multi(); - for(var i = 0; i < keys.length; ++i) { + for(var i = 0; i < keys.length; i += 1) { multi.zcard(keys[i]); } multi.exec(callback); @@ -106,7 +106,7 @@ module.exports = function (redisClient, module) { module.sortedSetsRanks = function (keys, values, callback) { var multi = redisClient.multi(); - for(var i = 0; i < values.length; ++i) { + for(var i = 0; i < values.length; i += 1) { multi.zrank(keys[i], values[i]); } multi.exec(callback); @@ -114,7 +114,7 @@ module.exports = function (redisClient, module) { module.sortedSetRanks = function (key, values, callback) { var multi = redisClient.multi(); - for(var i = 0; i < values.length; ++i) { + for(var i = 0; i < values.length; i += 1) { multi.zrank(key, values[i]); } multi.exec(callback); @@ -164,7 +164,7 @@ module.exports = function (redisClient, module) { module.getSortedSetsMembers = function (keys, callback) { var multi = redisClient.multi(); - for (var i = 0; i < keys.length; ++i) { + for (var i = 0; i < keys.length; i += 1) { multi.zrange(keys[i], 0, -1); } multi.exec(callback); diff --git a/src/database/redis/sorted/add.js b/src/database/redis/sorted/add.js index b2eb710221..024d71c7c7 100644 --- a/src/database/redis/sorted/add.js +++ b/src/database/redis/sorted/add.js @@ -23,7 +23,7 @@ module.exports = function (redisClient, module) { var args = [key]; - for(var i = 0; i < scores.length; ++i) { + for(var i = 0; i < scores.length; i += 1) { args.push(scores[i], values[i]); } @@ -36,7 +36,7 @@ module.exports = function (redisClient, module) { callback = callback || function () {}; var multi = redisClient.multi(); - for(var i = 0; i < keys.length; ++i) { + for(var i = 0; i < keys.length; i += 1) { multi.zadd(keys[i], score, value); } diff --git a/src/database/redis/sorted/remove.js b/src/database/redis/sorted/remove.js index aa1d42a3ce..51e889cecb 100644 --- a/src/database/redis/sorted/remove.js +++ b/src/database/redis/sorted/remove.js @@ -28,7 +28,7 @@ module.exports = function (redisClient, module) { module.sortedSetsRemoveRangeByScore = function (keys, min, max, callback) { callback = callback || function () {}; var multi = redisClient.multi(); - for(var i = 0; i < keys.length; ++i) { + for(var i = 0; i < keys.length; i += 1) { multi.zremrangebyscore(keys[i], min, max); } multi.exec(function (err) { diff --git a/src/groups.js b/src/groups.js index 5db8c32c83..651e2adde7 100644 --- a/src/groups.js +++ b/src/groups.js @@ -34,8 +34,7 @@ var utils = require('../public/src/utils'); }; }, removeEphemeralGroups: function (groups) { - var x = groups.length; - while(x--) { + for (var x = groups.length; x >= 0; x -= 1) { if (ephemeralGroups.indexOf(groups[x]) !== -1) { groups.splice(x, 1); } diff --git a/src/groups/membership.js b/src/groups/membership.js index 6eec4b24a2..d28ad927f2 100644 --- a/src/groups/membership.js +++ b/src/groups/membership.js @@ -471,7 +471,7 @@ module.exports = function (Groups) { }); var result = members.map(function (groupNames) { - for (var i = 0; i < groupNames.length; ++i) { + for (var i = 0; i < groupNames.length; i += 1) { if (map[groupNames[i]]) { return true; } diff --git a/src/groups/search.js b/src/groups/search.js index c13c14262c..893b687b68 100644 --- a/src/groups/search.js +++ b/src/groups/search.js @@ -77,7 +77,7 @@ module.exports = function (Groups) { }, function (users, next) { var uids = []; - for(var i = 0; i < users.length; ++i) { + for(var i = 0; i < users.length; i += 1) { var field = users[i][searchBy]; if (field.toLowerCase().startsWith(query)) { uids.push(users[i].uid); diff --git a/src/hotswap.js b/src/hotswap.js index 9fa776a16a..b25d854201 100644 --- a/src/hotswap.js +++ b/src/hotswap.js @@ -10,7 +10,7 @@ HotSwap.prepare = function (app) { HotSwap.find = function (id) { if (stack) { - for(var x = 0,numEntries = stack.length; x < numEntries; x++) { + for(var x = 0, numEntries = stack.length; x < numEntries; x += 1) { if (stack[x].handle.hotswapId === id) { return x; } diff --git a/src/messaging.js b/src/messaging.js index dd4e288f04..5078370b98 100644 --- a/src/messaging.js +++ b/src/messaging.js @@ -331,7 +331,7 @@ Messaging.hasPrivateChat = function (uid, withUid, callback) { roomId = roomIds[index]; next(null, roomId); } else { - ++ index; + index += 1; next(); } }); diff --git a/src/middleware/ratelimit.js b/src/middleware/ratelimit.js index f02bf74c3e..878deb2727 100644 --- a/src/middleware/ratelimit.js +++ b/src/middleware/ratelimit.js @@ -13,7 +13,7 @@ ratelimit.isFlooding = function (socket) { socket.elapsedTime = socket.elapsedTime || 0; socket.lastCallTime = socket.lastCallTime || Date.now(); - ++socket.callsPerSecond; + socket.callsPerSecond += 1; var now = Date.now(); socket.elapsedTime += now - socket.lastCallTime; diff --git a/src/pagination.js b/src/pagination.js index d6006c0c9d..4e0d5d012b 100644 --- a/src/pagination.js +++ b/src/pagination.js @@ -26,7 +26,7 @@ pagination.create = function (currentPage, pageCount, queryObj) { if (startPage > pageCount - 5) { startPage -= 2 - (pageCount - currentPage); } - for(var i = 0; i < 5; ++i) { + for(var i = 0; i < 5; i += 1) { pagesToShow.push(startPage + i); } @@ -45,7 +45,7 @@ pagination.create = function (currentPage, pageCount, queryObj) { return {page: page, active: page === currentPage, qs: qs.stringify(queryObj)}; }); - for (i = pages.length - 1; i > 0; --i) { + for (i = pages.length - 1; i > 0; i -= 1) { if (pages[i].page - 2 === pages[i - 1].page) { pages.splice(i, 0, {page: pages[i].page - 1, active: false, qs: qs.stringify(queryObj)}); } else if (pages[i].page - 1 !== pages[i - 1].page) { diff --git a/src/plugins.js b/src/plugins.js index 5dfead6383..10183f5d79 100644 --- a/src/plugins.js +++ b/src/plugins.js @@ -107,7 +107,7 @@ var middleware; if (Plugins.versionWarning.length && nconf.get('isPrimary') === 'true') { process.stdout.write('\n'); winston.warn('[plugins/load] The following plugins may not be compatible with your version of NodeBB. This may cause unintended behaviour or crashing. In the event of an unresponsive NodeBB caused by this plugin, run `./nodebb reset -p PLUGINNAME` to disable it.'); - for(var x = 0,numPlugins = Plugins.versionWarning.length; x < numPlugins; x++) { + for(var x = 0, numPlugins = Plugins.versionWarning.length; x < numPlugins; x += 1) { process.stdout.write(' * '.yellow + Plugins.versionWarning[x] + '\n'); } process.stdout.write('\n'); @@ -252,7 +252,7 @@ var middleware; var pluginMap = {}; var dependencies = require(path.join(nconf.get('base_dir'), 'package.json')).dependencies; apiReturn = apiReturn || []; - for(var i = 0; i < apiReturn.length; ++i) { + for(var i = 0; i < apiReturn.length; i += 1) { apiReturn[i].id = apiReturn[i].name; apiReturn[i].installed = false; apiReturn[i].active = false; diff --git a/src/posts.js b/src/posts.js index 539be5f8a6..fe0ac57719 100644 --- a/src/posts.js +++ b/src/posts.js @@ -44,7 +44,7 @@ var plugins = require('./plugins'); var keys = []; - for (var x = 0, numPids = pids.length; x < numPids; ++x) { + for (var x = 0, numPids = pids.length; x < numPids; x += 1) { keys.push('post:' + pids[x]); } @@ -212,7 +212,7 @@ var plugins = require('./plugins'); db[method](sets, pids, next); }, function (indices, next) { - for (var i = 0; i < indices.length; ++i) { + for (var i = 0; i < indices.length; i += 1) { indices[i] = utils.isNumber(indices[i]) ? parseInt(indices[i], 10) + 1 : 0; } diff --git a/src/posts/summary.js b/src/posts/summary.js index 8a27ec9050..74b53a05a2 100644 --- a/src/posts/summary.js +++ b/src/posts/summary.js @@ -136,7 +136,7 @@ module.exports = function (Posts) { function toObject(key, data) { var obj = {}; - for(var i = 0; i < data.length; ++i) { + for(var i = 0; i < data.length; i += 1) { obj[data[i][key]] = data[i]; } return obj; diff --git a/src/posts/votes.js b/src/posts/votes.js index f4a766ff76..61ba87b919 100644 --- a/src/posts/votes.js +++ b/src/posts/votes.js @@ -84,7 +84,7 @@ module.exports = function (Posts) { var upvoteSets = []; var downvoteSets = []; - for (var i = 0; i < pids.length; ++i) { + for (var i = 0; i < pids.length; i += 1) { upvoteSets.push('pid:' + pids[i] + ':upvote'); downvoteSets.push('pid:' + pids[i] + ':downvote'); } diff --git a/src/privileges/categories.js b/src/privileges/categories.js index 5761b2b23a..bc95e4b528 100644 --- a/src/privileges/categories.js +++ b/src/privileges/categories.js @@ -66,7 +66,7 @@ module.exports = function (privileges) { memberData.forEach(function (member) { member.privileges = {}; - for(var x = 0,numPrivs = userPrivileges.length; x < numPrivs; x++) { + for(var x = 0,numPrivs = userPrivileges.length; x < numPrivs; x += 1) { member.privileges[userPrivileges[x]] = memberSets[x].indexOf(parseInt(member.uid, 10)) !== -1; } }); @@ -117,7 +117,7 @@ module.exports = function (privileges) { var memberData = groupNames.map(function (member) { memberPrivs = {}; - for(var x = 0,numPrivs = groupPrivileges.length; x < numPrivs; x++) { + for(var x = 0,numPrivs = groupPrivileges.length; x < numPrivs; x += 1) { memberPrivs[groupPrivileges[x]] = memberSets[x].indexOf(member) !== -1; } return { diff --git a/src/privileges/helpers.js b/src/privileges/helpers.js index 90c9c38ba4..0939d2eeb5 100644 --- a/src/privileges/helpers.js +++ b/src/privileges/helpers.js @@ -33,7 +33,7 @@ function isUserAllowedToCids(privilege, uid, cids, callback) { var userKeys = []; var groupKeys = []; - for (var i = 0; i < cids.length; ++i) { + for (var i = 0; i < cids.length; i += 1) { userKeys.push('cid:' + cids[i] + ':privileges:' + privilege); groupKeys.push('cid:' + cids[i] + ':privileges:groups:' + privilege); } @@ -51,7 +51,7 @@ function isUserAllowedToCids(privilege, uid, cids, callback) { } var result = []; - for (var i = 0; i < cids.length; ++i) { + for (var i = 0; i < cids.length; i += 1) { result.push(results.hasUserPrivilege[i] || results.hasGroupPrivilege[i]); } @@ -66,7 +66,7 @@ function isUserAllowedToPrivileges(privileges, uid, cid, callback) { var userKeys = []; var groupKeys = []; - for (var i = 0; i < privileges.length; ++i) { + for (var i = 0; i < privileges.length; i += 1) { userKeys.push('cid:' + cid + ':privileges:' + privileges[i]); groupKeys.push('cid:' + cid + ':privileges:groups:' + privileges[i]); } @@ -84,7 +84,7 @@ function isUserAllowedToPrivileges(privileges, uid, cid, callback) { } var result = []; - for (var i = 0; i < privileges.length; ++i) { + for (var i = 0; i < privileges.length; i += 1) { result.push(results.hasUserPrivilege[i] || results.hasGroupPrivilege[i]); } @@ -107,7 +107,7 @@ helpers.isUsersAllowedTo = function (privilege, uids, cid, callback) { } var result = []; - for(var i = 0; i < uids.length; ++i) { + for(var i = 0; i < uids.length; i += 1) { result.push(results.hasUserPrivilege[i] || results.hasGroupPrivilege[i]); } @@ -117,7 +117,7 @@ helpers.isUsersAllowedTo = function (privilege, uids, cid, callback) { function isGuestAllowedToCids(privilege, cids, callback) { var groupKeys = []; - for (var i = 0; i < cids.length; ++i) { + for (var i = 0; i < cids.length; i += 1) { groupKeys.push('cid:' + cids[i] + ':privileges:groups:' + privilege); } @@ -126,7 +126,7 @@ function isGuestAllowedToCids(privilege, cids, callback) { function isGuestAllowedToPrivileges(privileges, cid, callback) { var groupKeys = []; - for (var i = 0; i < privileges.length; ++i) { + for (var i = 0; i < privileges.length; i += 1) { groupKeys.push('cid:' + cid + ':privileges:groups:' + privileges[i]); } diff --git a/src/privileges/posts.js b/src/privileges/posts.js index e24ca168aa..e53a9d148a 100644 --- a/src/privileges/posts.js +++ b/src/privileges/posts.js @@ -40,7 +40,7 @@ module.exports = function (privileges) { var privileges = []; - for (var i = 0; i < pids.length; ++i) { + for (var i = 0; i < pids.length; i += 1) { var isAdminOrMod = results.isAdmin || results.isModerator[i]; var editable = isAdminOrMod || (results.isOwner[i] && results['posts:edit'][i]); diff --git a/src/routes/index.js b/src/routes/index.js index 196f9f3ed4..2869a90bdd 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -98,7 +98,7 @@ module.exports = function (app, middleware, hotswapIds) { var ensureLoggedIn = require('connect-ensure-login'); if (Array.isArray(hotswapIds) && hotswapIds.length) { - for(var idx,x = 0; x < hotswapIds.length; x++) { + for(var idx,x = 0; x < hotswapIds.length; x += 1) { idx = routers.push(express.Router()) - 1; routers[idx].hotswapId = hotswapIds[x]; } @@ -132,7 +132,7 @@ module.exports = function (app, middleware, hotswapIds) { userRoutes(router, middleware, controllers); groupRoutes(router, middleware, controllers); - for(var x = 0; x < routers.length; x++) { + for(var x = 0; x < routers.length; x += 1) { app.use(relativePath, routers[x]); } diff --git a/src/settings.js b/src/settings.js index 9472f3e4e5..f740a6272a 100644 --- a/src/settings.js +++ b/src/settings.js @@ -134,7 +134,7 @@ Settings.prototype.get = function (key, def) { var obj = this.cfg._; var parts = (key || '').split('.'); var part; - for (var i = 0; i < parts.length; i++) { + for (var i = 0; i < parts.length; i += 1) { part = parts[i]; if (part && obj != null) { obj = obj[part]; @@ -143,7 +143,7 @@ Settings.prototype.get = function (key, def) { if (obj === void 0) { if (def === void 0) { def = this.defCfg; - for (var j = 0; j < parts.length; j++) { + for (var j = 0; j < parts.length; j += 1) { part = parts[j]; if (part && def != null) { def = def[part]; @@ -197,7 +197,7 @@ Settings.prototype.set = function (key, val) { } else { obj = this.cfg._; parts = key.split('.'); - for (var i = 0, _len = parts.length - 1; i < _len; i++) { + for (var i = 0, _len = parts.length - 1; i < _len; i += 1) { if (part = parts[i]) { if (!obj.hasOwnProperty(part)) { obj[part] = {}; diff --git a/src/sitemap.js b/src/sitemap.js index 7bb4c45a35..0fc0e9b478 100644 --- a/src/sitemap.js +++ b/src/sitemap.js @@ -38,7 +38,7 @@ sitemap.render = function (callback) { numPages = Math.ceil(tids.length / numTopics); } - for(var x = 1; x <= numPages; x++) { + for(var x = 1; x <= numPages; x += 1) { returnData.topics.push(x); } diff --git a/src/socket.io/admin/rooms.js b/src/socket.io/admin/rooms.js index 1f477559b0..ee26ac1428 100644 --- a/src/socket.io/admin/rooms.js +++ b/src/socket.io/admin/rooms.js @@ -123,7 +123,7 @@ SocketRooms.getOnlineUserCount = function (io) { if (io) { for (var key in io.sockets.adapter.rooms) { if (io.sockets.adapter.rooms.hasOwnProperty(key) && key.startsWith('uid_')) { - ++ count; + count += 1; } } } diff --git a/src/socket.io/admin/user.js b/src/socket.io/admin/user.js index 59b6261ea1..733f162425 100644 --- a/src/socket.io/admin/user.js +++ b/src/socket.io/admin/user.js @@ -22,7 +22,7 @@ User.makeAdmins = function (socket, uids, callback) { return callback(err); } - for(var i = 0; i < userData.length; i++) { + for(var i = 0; i < userData.length; i += 1) { if (userData[i] && parseInt(userData[i].banned, 10) === 1) { return callback(new Error('[[error:cant-make-banned-users-admin]]')); } diff --git a/src/topics.js b/src/topics.js index 1da7994a7b..8d1184be5f 100644 --- a/src/topics.js +++ b/src/topics.js @@ -138,7 +138,7 @@ var social = require('./social'); var users = _.object(uids, results.users); var categories = _.object(cids, results.categories); - for (var i = 0; i < topics.length; ++i) { + for (var i = 0; i < topics.length; i += 1) { if (topics[i]) { topics[i].category = categories[topics[i].cid]; topics[i].user = users[topics[i].uid]; @@ -224,9 +224,9 @@ var social = require('./social'); async.waterfall([ function (next) { if (stop > 0) { - stop--; + stop -= 1; if (start > 0) { - start --; + start -= 1; } } diff --git a/src/topics/bookmarks.js b/src/topics/bookmarks.js index 2b3dbb3ec4..f1ed4c3ae8 100644 --- a/src/topics/bookmarks.js +++ b/src/topics/bookmarks.js @@ -63,8 +63,8 @@ module.exports = function (Topics) { var bookmark = data.bookmark; bookmark = bookmark < maxIndex ? bookmark : maxIndex; - for (var i = 0; i < postIndices.length && postIndices[i] < data.bookmark; ++i) { - --bookmark; + for (var i = 0; i < postIndices.length && postIndices[i] < data.bookmark; i += 1) { + bookmark -= 1; } if (parseInt(bookmark, 10) !== parseInt(data.bookmark, 10)) { diff --git a/src/topics/data.js b/src/topics/data.js index a0196e1508..199393c714 100644 --- a/src/topics/data.js +++ b/src/topics/data.js @@ -40,7 +40,7 @@ module.exports = function (Topics) { Topics.getTopicsData = function (tids, callback) { var keys = []; - for (var i = 0; i < tids.length; ++i) { + for (var i = 0; i < tids.length; i += 1) { keys.push('topic:' + tids[i]); } diff --git a/src/topics/posts.js b/src/topics/posts.js index 5ab032cedc..39b3d5a049 100644 --- a/src/topics/posts.js +++ b/src/topics/posts.js @@ -69,7 +69,7 @@ module.exports = function (Topics) { userData: function (next) { var uids = []; - for(var i = 0; i < postData.length; ++i) { + for(var i = 0; i < postData.length; i += 1) { if (postData[i] && uids.indexOf(postData[i].uid) === -1) { uids.push(postData[i].uid); } @@ -90,7 +90,7 @@ module.exports = function (Topics) { }, editors: function (next) { var editors = []; - for(var i = 0; i < postData.length; ++i) { + for(var i = 0; i < postData.length; i += 1) { if (postData[i] && postData[i].editor && editors.indexOf(postData[i].editor) === -1) { editors.push(postData[i].editor); } @@ -253,7 +253,7 @@ module.exports = function (Topics) { if (!isDeleted) { latestPid = pids[0]; } - ++index; + index += 1; next(); }); }); diff --git a/src/topics/tags.js b/src/topics/tags.js index d37ae6a929..116b0e412d 100644 --- a/src/topics/tags.js +++ b/src/topics/tags.js @@ -366,7 +366,7 @@ module.exports = function (Topics) { query = query.toLowerCase(); var matches = []; - for(var i = 0; i < tags.length; ++i) { + for(var i = 0; i < tags.length; i += 1) { if (tags[i].toLowerCase().startsWith(query)) { matches.push(tags[i]); if (matches.length > 19) { diff --git a/src/upgrade.js b/src/upgrade.js index f71a5c93ea..01ca6a264f 100644 --- a/src/upgrade.js +++ b/src/upgrade.js @@ -241,14 +241,14 @@ Upgrade.upgrade = function (callback) { async.waterfall([ async.apply(db.getObjectField, 'user:' + uid + ':settings', 'userLang'), function (language, next) { - ++i; + i += 1; if (!language) { return setImmediate(next); } newLanguage = language.replace('_', '-').replace('@', '-x-'); if (newLanguage !== language) { - ++j; + j += 1; user.setSetting(uid, 'userLang', newLanguage, next); } else { setImmediate(next); diff --git a/src/user.js b/src/user.js index 6c1e9a2891..3d75eca479 100644 --- a/src/user.js +++ b/src/user.js @@ -171,7 +171,7 @@ var meta = require('./meta'); User.existsBySlug = function (userslug, callback) { User.getUidByUserslug(userslug, function (err, exists) { - callback(err, !! exists); + callback(err, !!exists); }); }; diff --git a/src/user/data.js b/src/user/data.js index cbaf066ded..b49d038a3a 100644 --- a/src/user/data.js +++ b/src/user/data.js @@ -126,7 +126,7 @@ module.exports = function (User) { user.status = User.getStatus(user); } - for(var i = 0; i < fieldsToRemove.length; ++i) { + for(var i = 0; i < fieldsToRemove.length; i += 1) { user[fieldsToRemove[i]] = undefined; } diff --git a/src/user/jobs.js b/src/user/jobs.js index a4a7f40ea6..c45fa03dd8 100644 --- a/src/user/jobs.js +++ b/src/user/jobs.js @@ -27,7 +27,7 @@ module.exports = function (User) { winston.verbose('[user/jobs] Terminating job (' + jobId + ')'); jobs[jobId].stop(); delete jobs[jobId]; - ++terminated; + terminated += 1; } } winston.verbose('[user/jobs] ' + terminated + ' jobs terminated'); @@ -37,25 +37,25 @@ module.exports = function (User) { User.digest.execute('day'); }, null, true); winston.verbose('[user/jobs] Starting job (digest.daily)'); - ++started; + started += 1; jobs['digest.weekly'] = new cronJob('0 ' + digestHour + ' * * 0', function () { winston.verbose('[user/jobs] Digest job (weekly) started.'); User.digest.execute('week'); }, null, true); winston.verbose('[user/jobs] Starting job (digest.weekly)'); - ++started; + started += 1; jobs['digest.monthly'] = new cronJob('0 ' + digestHour + ' 1 * *', function () { winston.verbose('[user/jobs] Digest job (monthly) started.'); User.digest.execute('month'); }, null, true); winston.verbose('[user/jobs] Starting job (digest.monthly)'); - ++started; + started += 1; jobs['reset.clean'] = new cronJob('0 0 * * *', User.reset.clean, null, true); winston.verbose('[user/jobs] Starting job (reset.clean)'); - ++started; + started += 1; winston.verbose('[user/jobs] ' + started + ' jobs started'); diff --git a/src/user/notifications.js b/src/user/notifications.js index 74c8751d23..6c8f3a85c3 100644 --- a/src/user/notifications.js +++ b/src/user/notifications.js @@ -146,7 +146,7 @@ var privileges = require('../privileges'); callback(err, mergeIds.reduce(function (count, cur, idx, arr) { if (cur === null || idx === arr.indexOf(cur)) { - ++count; + count += 1; } return count; diff --git a/src/user/settings.js b/src/user/settings.js index 9d423f4084..d76fc92392 100644 --- a/src/user/settings.js +++ b/src/user/settings.js @@ -36,7 +36,7 @@ module.exports = function (User) { return callback(err); } - for (var i = 0; i < settings.length; ++i) { + for (var i = 0; i < settings.length; i += 1) { settings[i] = settings[i] || {}; settings[i].uid = uids[i]; } diff --git a/src/widgets/admin.js b/src/widgets/admin.js index c4730f7de9..88c13332cc 100644 --- a/src/widgets/admin.js +++ b/src/widgets/admin.js @@ -60,7 +60,7 @@ admin.get = function (callback) { areas: [], }); - index++; + index += 1; } templates[list[area.template]].areas.push({ diff --git a/test/plugins.js b/test/plugins.js index 90fe7cabda..1df1c49f09 100644 --- a/test/plugins.js +++ b/test/plugins.js @@ -30,7 +30,7 @@ describe('Plugins', function () { it('should register and fire a filter hook', function (done) { function filterMethod1(data, callback) { - data.foo ++; + data.foo += 1; callback(null, data); } function filterMethod2(data, callback) { diff --git a/test/posts.js b/test/posts.js index 4e135831ba..db8fa6a787 100644 --- a/test/posts.js +++ b/test/posts.js @@ -366,7 +366,7 @@ describe('Post\'s', function () { it('should error with too many tags', function (done) { var tags = []; - for(var i = 0; i < meta.config.maximumTagsPerTopic + 1; ++i) { + for(var i = 0; i < meta.config.maximumTagsPerTopic + 1; i += 1) { tags.push('tag' + i); } socketPosts.edit({uid: voterUid}, {pid: pid, content: 'edited post content', tags: tags}, function (err) { diff --git a/test/topics.js b/test/topics.js index 88d264f4fd..1341ab694b 100644 --- a/test/topics.js +++ b/test/topics.js @@ -505,7 +505,7 @@ describe('Topic\'s', function () { var topics = results.topics; var topic; var i; - for(i = 0; i < topics.length; ++i) { + for(i = 0; i < topics.length; i += 1) { if (parseInt(topics[i].tid, 10) === parseInt(newTid, 10)) { assert.equal(false, topics[i].unread, 'ignored topic was marked as unread in recent list'); return done(); diff --git a/test/utils.js b/test/utils.js index 31efbfe8df..023051d4c2 100644 --- a/test/utils.js +++ b/test/utils.js @@ -151,10 +151,10 @@ describe('Utility Methods', function () { var currentHour = new Date().getHours(); var hours = utils.getHoursArray(); var index = hours.length - 1; - for (var i = currentHour, ii = currentHour - 24; i > ii; i--) { + for (var i = currentHour, ii = currentHour - 24; i > ii; i -= 1) { var hour = i < 0 ? 24 + i : i; assert.equal(hours[index], hour + ':00'); - -- index; + index -= 1; } done(); }); @@ -164,10 +164,10 @@ describe('Utility Methods', function () { var days = utils.getDaysArray(); var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; var index = 0; - for(var x = 29; x >= 0; x--) { + for(var x = 29; x >= 0; x -= 1) { var tmpDate = new Date(currentDay - (1000 * 60 * 60 * 24 * x)); assert.equal(months[tmpDate.getMonth()] + ' ' + tmpDate.getDate(), days[index]); - ++ index; + index += 1; } done(); }); From b1b486f729ddc34be44fd35f95c3c40b83b86774 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 01:19:20 -0700 Subject: [PATCH 13/60] ESlint quote-props --- .eslintrc | 2 +- public/src/admin/admin.js | 20 +++++----- public/src/admin/advanced/errors.js | 2 +- public/src/admin/general/dashboard.js | 2 +- public/src/client/account/edit/password.js | 6 +-- public/src/client/chats.js | 2 +- public/src/client/topic.js | 4 +- public/src/installer/install.js | 2 +- public/src/modules/components.js | 4 +- public/src/modules/search.js | 2 +- public/src/modules/settings/array.js | 4 +- public/src/require-config.js | 8 ++-- public/src/utils.js | 46 +++++++++++----------- src/analytics.js | 2 +- src/controllers/accounts/settings.js | 40 +++++++++---------- src/controllers/index.js | 2 +- src/controllers/recent.js | 2 +- src/controllers/unread.js | 2 +- src/database/mongo.js | 12 +++--- src/database/redis.js | 6 +-- src/install.js | 6 +-- src/middleware/admin.js | 4 +- src/posts/create.js | 12 +++--- src/topics/create.js | 26 ++++++------ src/user/create.js | 38 +++++++++--------- 25 files changed, 128 insertions(+), 128 deletions(-) diff --git a/.eslintrc b/.eslintrc index 0a6be521c6..2a6f9e3368 100644 --- a/.eslintrc +++ b/.eslintrc @@ -102,7 +102,7 @@ "prefer-rest-params": "off", "space-in-parens": "off", "block-spacing": "off", - "quote-props": "off", + // "quote-props": "off", // "space-unary-ops": "off", // "no-plusplus": "off", // "no-empty": "off", diff --git a/public/src/admin/admin.js b/public/src/admin/admin.js index 8940d07284..8d1d56ab64 100644 --- a/public/src/admin/admin.js +++ b/public/src/admin/admin.js @@ -179,10 +179,10 @@ var env = utils.findBootstrapEnvironment(); var slideout = new Slideout({ - 'panel': document.getElementById('panel'), - 'menu': document.getElementById('menu'), - 'padding': 256, - 'tolerance': 70, + panel: document.getElementById('panel'), + menu: document.getElementById('menu'), + padding: 256, + tolerance: 70, }); if (env === 'md' || env === 'lg') { @@ -205,20 +205,20 @@ if (env === 'md' || env === 'lg') { slideout.disableTouch(); $('#header').css({ - 'position': 'relative', + position: 'relative', }); } else { slideout.enableTouch(); $('#header').css({ - 'position': 'fixed', + position: 'fixed', }); } }); function onOpeningMenu() { $('#header').css({ - 'top': $('#panel').position().top * -1 + 'px', - 'position': 'absolute', + top: $('#panel').position().top * -1 + 'px', + position: 'absolute', }); } @@ -226,8 +226,8 @@ slideout.on('close', function () { $('#header').css({ - 'top': '0px', - 'position': 'fixed', + top: '0px', + position: 'fixed', }); }); } diff --git a/public/src/admin/advanced/errors.js b/public/src/admin/advanced/errors.js index 1d428da4c2..816a145a72 100644 --- a/public/src/admin/advanced/errors.js +++ b/public/src/admin/advanced/errors.js @@ -52,7 +52,7 @@ define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, transl }, ], }, - 'toobusy': { + toobusy: { labels: dailyLabels, datasets: [ { diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index 798f470ae8..2b8709962a 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -374,7 +374,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s function updateTopicsGraph(topics) { if (!Object.keys(topics).length) { - topics = {"0": { + topics = {0: { title: "No users browsing", value: 1, }}; diff --git a/public/src/client/account/edit/password.js b/public/src/client/account/edit/password.js index e2210e724c..e6fccf46e5 100644 --- a/public/src/client/account/edit/password.js +++ b/public/src/client/account/edit/password.js @@ -63,9 +63,9 @@ define('forum/account/edit/password', ['forum/account/header', 'translator'], fu if ((passwordvalid && passwordsmatch) || app.user.isAdmin) { btn.addClass('disabled').find('i').removeClass('hide'); socket.emit('user.changePassword', { - 'currentPassword': currentPassword.val(), - 'newPassword': password.val(), - 'uid': ajaxify.data.theirid, + currentPassword: currentPassword.val(), + newPassword: password.val(), + uid: ajaxify.data.theirid, }, function (err) { btn.removeClass('disabled').find('i').addClass('hide'); currentPassword.val(''); diff --git a/public/src/client/chats.js b/public/src/client/chats.js index e0df5804df..d05e9d2e99 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -321,7 +321,7 @@ define('forum/chats', [ } else { var recentEl = components.get('chat/recent'); templates.parse('partials/chats/recent_room', { - rooms: { "roomId": data.roomId, "lastUser": data.message.fromUser, "usernames": data.message.fromUser.username, "unread": true }, + rooms: { roomId: data.roomId, lastUser: data.message.fromUser, usernames: data.message.fromUser.username, unread: true }, }, function (html) { translator.translate(html, function (translated) { recentEl.prepend(translated); diff --git a/public/src/client/topic.js b/public/src/client/topic.js index ec64795895..06462f4d87 100644 --- a/public/src/client/topic.js +++ b/public/src/client/topic.js @@ -279,8 +279,8 @@ define('forum/topic', [ if (ajaxify.data.postcount > ajaxify.data.bookmarkThreshold && (!currentBookmark || parseInt(index, 10) > parseInt(currentBookmark, 10))) { if (app.user.uid) { socket.emit('topics.bookmark', { - 'tid': ajaxify.data.tid, - 'index': index, + tid: ajaxify.data.tid, + index: index, }, function (err) { if (err) { return app.alertError(err.message); diff --git a/public/src/installer/install.js b/public/src/installer/install.js index 5f8e59b1eb..540f5c877c 100644 --- a/public/src/installer/install.js +++ b/public/src/installer/install.js @@ -42,7 +42,7 @@ $('document').ready(function () { if ($('form .admin .error').length) { ev.preventDefault(); - $('html, body').animate({'scrollTop': '0px'}, 400); + $('html, body').animate({scrollTop: '0px'}, 400); return false; } else { diff --git a/public/src/modules/components.js b/public/src/modules/components.js index 2aeefb7f57..da6bd20086 100644 --- a/public/src/modules/components.js +++ b/public/src/modules/components.js @@ -10,10 +10,10 @@ define('components', function () { return $('[component="topic/teaser"]'); } }, - 'topic': function (name, value) { + topic: function (name, value) { return $('[component="topic"][data-' + name + '="' + value + '"]'); }, - 'post': function (name, value) { + post: function (name, value) { return $('[component="post"][data-' + name + '="' + value + '"]'); }, 'post/content': function (pid) { diff --git a/public/src/modules/search.js b/public/src/modules/search.js index f6cf3c1621..f17baab285 100644 --- a/public/src/modules/search.js +++ b/public/src/modules/search.js @@ -39,7 +39,7 @@ define('search', ['navigator', 'translator'], function (nav, translator) { var postedBy = data.by || ''; var query = { term: data.term, - 'in': searchIn, + in: searchIn, }; if (postedBy && (searchIn === 'posts' || searchIn === 'titles' || searchIn === 'titlesposts')) { diff --git a/public/src/modules/settings/array.js b/public/src/modules/settings/array.js index 7096953299..6957b85bc7 100644 --- a/public/src/modules/settings/array.js +++ b/public/src/modules/settings/array.js @@ -12,7 +12,7 @@ define('settings/array', function () { */ function createRemoveButton(elements) { var rm = $(helper.createElement('button', { - "class": 'btn btn-xs btn-primary remove', + class: 'btn btn-xs btn-primary remove', title: 'Remove Item', }, '-')); rm.click(function (event) { @@ -75,7 +75,7 @@ define('settings/array', function () { var addSpace = $(document.createTextNode(' ')); var newValue = element.data('new') || ''; var add = $(helper.createElement('button', { - "class": 'btn btn-sm btn-primary add', + class: 'btn btn-sm btn-primary add', title: 'Expand Array', }, '+')); add.click(function (event) { diff --git a/public/src/require-config.js b/public/src/require-config.js index 661083fb8e..b102a5abae 100644 --- a/public/src/require-config.js +++ b/public/src/require-config.js @@ -3,9 +3,9 @@ require.config({ waitSeconds: 7, urlArgs: config['cache-buster'], paths: { - 'forum': '../client', - 'admin': '../admin', - 'vendor': '../../vendor', - 'plugins': '../../plugins', + forum: '../client', + admin: '../admin', + vendor: '../../vendor', + plugins: '../../plugins', }, }); diff --git a/public/src/utils.js b/public/src/utils.js index 891bb21da1..1d74b53b38 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -165,29 +165,29 @@ }, extensionMimeTypeMap: { - "bmp": "image/bmp", - "cmx": "image/x-cmx", - "cod": "image/cis-cod", - "gif": "image/gif", - "ico": "image/x-icon", - "ief": "image/ief", - "jfif": "image/pipeg", - "jpe": "image/jpeg", - "jpeg": "image/jpeg", - "jpg": "image/jpeg", - "png": "image/png", - "pbm": "image/x-portable-bitmap", - "pgm": "image/x-portable-graymap", - "pnm": "image/x-portable-anymap", - "ppm": "image/x-portable-pixmap", - "ras": "image/x-cmu-raster", - "rgb": "image/x-rgb", - "svg": "image/svg+xml", - "tif": "image/tiff", - "tiff": "image/tiff", - "xbm": "image/x-xbitmap", - "xpm": "image/x-xpixmap", - "xwd": "image/x-xwindowdump", + bmp: "image/bmp", + cmx: "image/x-cmx", + cod: "image/cis-cod", + gif: "image/gif", + ico: "image/x-icon", + ief: "image/ief", + jfif: "image/pipeg", + jpe: "image/jpeg", + jpeg: "image/jpeg", + jpg: "image/jpeg", + png: "image/png", + pbm: "image/x-portable-bitmap", + pgm: "image/x-portable-graymap", + pnm: "image/x-portable-anymap", + ppm: "image/x-portable-pixmap", + ras: "image/x-cmu-raster", + rgb: "image/x-rgb", + svg: "image/svg+xml", + tif: "image/tiff", + tiff: "image/tiff", + xbm: "image/x-xbitmap", + xpm: "image/x-xpixmap", + xwd: "image/x-xwindowdump", }, fileMimeType: function (path) { diff --git a/src/analytics.js b/src/analytics.js index e3544aa281..30708d5a22 100644 --- a/src/analytics.js +++ b/src/analytics.js @@ -194,7 +194,7 @@ Analytics.getCategoryAnalytics = function (cid, callback) { Analytics.getErrorAnalytics = function (callback) { async.parallel({ 'not-found': async.apply(Analytics.getDailyStatsForSet, 'analytics:errors:404', Date.now(), 7), - 'toobusy': async.apply(Analytics.getDailyStatsForSet, 'analytics:errors:503', Date.now(), 7), + toobusy: async.apply(Analytics.getDailyStatsForSet, 'analytics:errors:503', Date.now(), 7), }, callback); }; diff --git a/src/controllers/accounts/settings.js b/src/controllers/accounts/settings.js index 39141fcb2f..16939be08d 100644 --- a/src/controllers/accounts/settings.js +++ b/src/controllers/accounts/settings.js @@ -51,9 +51,9 @@ settingsController.get = function (req, res, callback) { userData.homePageRoutes = results.homePageRoutes; var soundSettings = { - 'notificationSound': 'notification', - 'incomingChatSound': 'chat-incoming', - 'outgoingChatSound': 'chat-outgoing', + notificationSound: 'notification', + incomingChatSound: 'chat-incoming', + outgoingChatSound: 'chat-outgoing', }; Object.keys(soundSettings).forEach(function (setting) { @@ -83,23 +83,23 @@ settingsController.get = function (req, res, callback) { userData.bootswatchSkinOptions = [ - { "name": "Default", "value": "default" }, - { "name": "Cerulean", "value": "cerulean" }, - { "name": "Cosmo", "value": "cosmo" }, - { "name": "Cyborg", "value": "cyborg" }, - { "name": "Darkly", "value": "darkly" }, - { "name": "Flatly", "value": "flatly" }, - { "name": "Journal", "value": "journal" }, - { "name": "Lumen", "value": "lumen" }, - { "name": "Paper", "value": "paper" }, - { "name": "Readable", "value": "readable" }, - { "name": "Sandstone", "value": "sandstone" }, - { "name": "Simplex", "value": "simplex" }, - { "name": "Slate", "value": "slate" }, - { "name": "Spacelab", "value": "spacelab" }, - { "name": "Superhero", "value": "superhero" }, - { "name": "United", "value": "united" }, - { "name": "Yeti", "value": "yeti" }, + { name: "Default", value: "default" }, + { name: "Cerulean", value: "cerulean" }, + { name: "Cosmo", value: "cosmo" }, + { name: "Cyborg", value: "cyborg" }, + { name: "Darkly", value: "darkly" }, + { name: "Flatly", value: "flatly" }, + { name: "Journal", value: "journal" }, + { name: "Lumen", value: "lumen" }, + { name: "Paper", value: "paper" }, + { name: "Readable", value: "readable" }, + { name: "Sandstone", value: "sandstone" }, + { name: "Simplex", value: "simplex" }, + { name: "Slate", value: "slate" }, + { name: "Spacelab", value: "spacelab" }, + { name: "Superhero", value: "superhero" }, + { name: "United", value: "united" }, + { name: "Yeti", value: "yeti" }, ]; var isCustom = true; diff --git a/src/controllers/index.js b/src/controllers/index.js index e8b10ead0b..13927824d3 100644 --- a/src/controllers/index.js +++ b/src/controllers/index.js @@ -180,7 +180,7 @@ Controllers.register = function (req, res, next) { var loginStrategies = require('../routes/authentication').getLoginStrategies(); var data = { 'register_window:spansize': loginStrategies.length ? 'col-md-6' : 'col-md-12', - 'alternate_logins': !!loginStrategies.length, + alternate_logins: !!loginStrategies.length, }; data.authentication = loginStrategies; diff --git a/src/controllers/recent.js b/src/controllers/recent.js index a8abd92d28..94a8c6a9ec 100644 --- a/src/controllers/recent.js +++ b/src/controllers/recent.js @@ -13,7 +13,7 @@ var pagination = require('../pagination'); var recentController = {}; -var validFilter = {'': true, 'new': true, 'watched': true}; +var validFilter = {'': true, new: true, watched: true}; recentController.get = function (req, res, next) { var page = parseInt(req.query.page, 10) || 1; diff --git a/src/controllers/unread.js b/src/controllers/unread.js index ef390ba7e0..a0da19c6c4 100644 --- a/src/controllers/unread.js +++ b/src/controllers/unread.js @@ -12,7 +12,7 @@ var helpers = require('./helpers'); var unreadController = {}; -var validFilter = {'': true, 'new': true, 'watched': true}; +var validFilter = {'': true, new: true, watched: true}; unreadController.get = function (req, res, next) { var page = parseInt(req.query.page, 10) || 1; diff --git a/src/database/mongo.js b/src/database/mongo.js index 1dfc45ccb4..27cbbef503 100644 --- a/src/database/mongo.js +++ b/src/database/mongo.js @@ -17,17 +17,17 @@ { name: 'mongo:host', description: 'Host IP or address of your MongoDB instance', - 'default': nconf.get('mongo:host') || '127.0.0.1', + default: nconf.get('mongo:host') || '127.0.0.1', }, { name: 'mongo:port', description: 'Host port of your MongoDB instance', - 'default': nconf.get('mongo:port') || 27017, + default: nconf.get('mongo:port') || 27017, }, { name: 'mongo:username', description: 'MongoDB username', - 'default': nconf.get('mongo:username') || '', + default: nconf.get('mongo:username') || '', }, { name: 'mongo:password', @@ -39,7 +39,7 @@ { name: "mongo:database", description: "MongoDB database name", - 'default': nconf.get('mongo:database') || 'nodebb', + default: nconf.get('mongo:database') || 'nodebb', }, ]; @@ -189,10 +189,10 @@ } async.parallel({ serverStatus: function (next) { - db.command({ 'serverStatus': 1 }, next); + db.command({ serverStatus: 1 }, next); }, stats: function (next) { - db.command({ 'dbStats': 1 }, next); + db.command({ dbStats: 1 }, next); }, listCollections: function (next) { db.listCollections().toArray(function (err, items) { diff --git a/src/database/redis.js b/src/database/redis.js index f363aafb5c..83384c06f2 100644 --- a/src/database/redis.js +++ b/src/database/redis.js @@ -14,12 +14,12 @@ { name: 'redis:host', description: 'Host IP or address of your Redis instance', - 'default': nconf.get('redis:host') || '127.0.0.1', + default: nconf.get('redis:host') || '127.0.0.1', }, { name: 'redis:port', description: 'Host port of your Redis instance', - 'default': nconf.get('redis:port') || 6379, + default: nconf.get('redis:port') || 6379, }, { name: 'redis:password', @@ -31,7 +31,7 @@ { name: "redis:database", description: "Which database to use (0..n)", - 'default': nconf.get('redis:database') || 0, + default: nconf.get('redis:database') || 0, }, ]; diff --git a/src/install.js b/src/install.js index cd94e8726d..19532403a6 100644 --- a/src/install.js +++ b/src/install.js @@ -15,7 +15,7 @@ questions.main = [ { name: 'url', description: 'URL used to access this NodeBB', - 'default': + default: nconf.get('url') || (nconf.get('base_url') ? (nconf.get('base_url') + (nconf.get('use_port') ? ':' + nconf.get('port') : '')) : null) || // backwards compatibility (remove for v0.7.0) 'http://localhost:4567', @@ -25,12 +25,12 @@ questions.main = [ { name: 'secret', description: 'Please enter a NodeBB secret', - 'default': nconf.get('secret') || utils.generateUUID(), + default: nconf.get('secret') || utils.generateUUID(), }, { name: 'database', description: 'Which database to use', - 'default': nconf.get('database') || 'mongo', + default: nconf.get('database') || 'mongo', }, ]; diff --git a/src/middleware/admin.js b/src/middleware/admin.js index 0665ff4415..f5439a139b 100644 --- a/src/middleware/admin.js +++ b/src/middleware/admin.js @@ -44,8 +44,8 @@ module.exports = function (middleware) { middleware.admin.renderHeader = function (req, res, data, next) { var custom_header = { - 'plugins': [], - 'authentication': [], + plugins: [], + authentication: [], }; user.getUserFields(req.uid, ['username', 'userslug', 'email', 'picture', 'email:confirmed'], function (err, userData) { diff --git a/src/posts/create.js b/src/posts/create.js index fcd7bd1109..6e21494137 100644 --- a/src/posts/create.js +++ b/src/posts/create.js @@ -38,12 +38,12 @@ module.exports = function (Posts) { function (pid, next) { postData = { - 'pid': pid, - 'uid': uid, - 'tid': tid, - 'content': content, - 'timestamp': timestamp, - 'deleted': 0, + pid: pid, + uid: uid, + tid: tid, + content: content, + timestamp: timestamp, + deleted: 0, }; if (data.toPid) { diff --git a/src/topics/create.js b/src/topics/create.js index cdb0a79bf3..8419f56c91 100644 --- a/src/topics/create.js +++ b/src/topics/create.js @@ -30,19 +30,19 @@ module.exports = function (Topics) { }, function (tid, next) { topicData = { - 'tid': tid, - 'uid': data.uid, - 'cid': data.cid, - 'mainPid': 0, - 'title': data.title, - 'slug': tid + '/' + (utils.slugify(data.title) || 'topic'), - 'timestamp': timestamp, - 'lastposttime': 0, - 'postcount': 0, - 'viewcount': 0, - 'locked': 0, - 'deleted': 0, - 'pinned': 0, + tid: tid, + uid: data.uid, + cid: data.cid, + mainPid: 0, + title: data.title, + slug: tid + '/' + (utils.slugify(data.title) || 'topic'), + timestamp: timestamp, + lastposttime: 0, + postcount: 0, + viewcount: 0, + locked: 0, + deleted: 0, + pinned: 0, }; if (data.thumb) { diff --git a/src/user/create.js b/src/user/create.js index d61a79d39a..ebd3a56d15 100644 --- a/src/user/create.js +++ b/src/user/create.js @@ -24,25 +24,25 @@ module.exports = function (User) { var timestamp = data.timestamp || Date.now(); var userData = { - 'username': data.username, - 'userslug': data.userslug, - 'email': data.email || '', - 'joindate': timestamp, - 'lastonline': timestamp, - 'picture': '', - 'fullname': data.fullname || '', - 'location': '', - 'birthday': '', - 'website': '', - 'signature': '', - 'uploadedpicture': '', - 'profileviews': 0, - 'reputation': 0, - 'postcount': 0, - 'topiccount': 0, - 'lastposttime': 0, - 'banned': 0, - 'status': 'online', + username: data.username, + userslug: data.userslug, + email: data.email || '', + joindate: timestamp, + lastonline: timestamp, + picture: '', + fullname: data.fullname || '', + location: '', + birthday: '', + website: '', + signature: '', + uploadedpicture: '', + profileviews: 0, + reputation: 0, + postcount: 0, + topiccount: 0, + lastposttime: 0, + banned: 0, + status: 'online', }; async.parallel({ From 532951c24f67a7176213bf77b6eb4786d6dc92e2 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 01:21:34 -0700 Subject: [PATCH 14/60] ESlint space-in-parens, block-spacing --- .eslintrc | 4 +- public/src/admin/appearance/skins.js | 2 +- public/src/admin/extend/widgets.js | 2 +- public/src/client/topic/threadTools.js | 2 +- public/src/utils.js | 4 +- src/categories.js | 2 +- src/categories/create.js | 2 +- src/groups/membership.js | 4 +- src/plugins.js | 4 +- src/posts/user.js | 4 +- src/privileges/users.js | 4 +- src/socket.io/admin.js | 2 +- src/topics/fork.js | 2 +- src/topics/tags.js | 2 +- test/controllers.js | 2 +- test/meta.js | 2 +- test/topics.js | 90 +++++++++++++------------- 17 files changed, 67 insertions(+), 67 deletions(-) diff --git a/.eslintrc b/.eslintrc index 2a6f9e3368..296ff1e04f 100644 --- a/.eslintrc +++ b/.eslintrc @@ -100,8 +100,8 @@ // "no-multiple-empty-lines": "off", "spaced-comment": "off", "prefer-rest-params": "off", - "space-in-parens": "off", - "block-spacing": "off", + // "space-in-parens": "off", + // "block-spacing": "off", // "quote-props": "off", // "space-unary-ops": "off", // "no-plusplus": "off", diff --git a/public/src/admin/appearance/skins.js b/public/src/admin/appearance/skins.js index e6651551f4..c946faa2da 100644 --- a/public/src/admin/appearance/skins.js +++ b/public/src/admin/appearance/skins.js @@ -73,7 +73,7 @@ define('admin/appearance/skins', ['translator'], function (translator) { if (config['theme:src']) { var skin = config['theme:src'] .match(/latest\/(\S+)\/bootstrap.min.css/)[1] - .replace(/(^|\s)([a-z])/g , function (m,p1,p2) {return p1 + p2.toUpperCase();}); + .replace(/(^|\s)([a-z])/g , function (m,p1,p2) { return p1 + p2.toUpperCase(); }); highlightSelectedTheme(skin); } diff --git a/public/src/admin/extend/widgets.js b/public/src/admin/extend/widgets.js index 4576e6d72b..0b9707a5a5 100644 --- a/public/src/admin/extend/widgets.js +++ b/public/src/admin/extend/widgets.js @@ -67,7 +67,7 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { } }); }).on('mouseup', '> .panel > .panel-heading', function (evt) { - if ( !( $(this).parent().is('.ui-sortable-helper') || $(evt.target).closest('.delete-widget').length ) ) { + if (!($(this).parent().is('.ui-sortable-helper') || $(evt.target).closest('.delete-widget').length)) { $(this).parent().children('.panel-body').toggleClass('hidden'); } }); diff --git a/public/src/client/topic/threadTools.js b/public/src/client/topic/threadTools.js index 7c1529f12b..88eb4940c1 100644 --- a/public/src/client/topic/threadTools.js +++ b/public/src/client/topic/threadTools.js @@ -236,7 +236,7 @@ define('forum/topic/threadTools', [ components.get('topic/not-following/check').toggleClass('fa-check', state === 'unfollow'); menu = components.get('topic/ignoring/menu'); - menu.toggleClass('hidden', state !== 'ignore' ); + menu.toggleClass('hidden', state !== 'ignore'); components.get('topic/ignoring/check').toggleClass('fa-check', state === 'ignore'); } diff --git a/public/src/utils.js b/public/src/utils.js index 1d74b53b38..9016b8da65 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -424,7 +424,7 @@ return undefined; } var i = props.indexOf('.'); - if( i == -1 ) { + if(i == -1) { if(value !== undefined) { obj[props] = value; } @@ -433,7 +433,7 @@ var prop = props.slice(0, i); var newProps = props.slice(i + 1); - if(props !== undefined && !(obj[prop] instanceof Object) ) { + if(props !== undefined && !(obj[prop] instanceof Object)) { obj[prop] = {}; } diff --git a/src/categories.js b/src/categories.js index 650723f46d..ea795320bb 100644 --- a/src/categories.js +++ b/src/categories.js @@ -214,7 +214,7 @@ var privileges = require('./privileges'); }); if (!parentCids.length) { - return callback(null, cids.map(function () {return null;})); + return callback(null, cids.map(function () { return null; })); } Categories.getCategoriesData(parentCids, next); diff --git a/src/categories/create.js b/src/categories/create.js index 26c4e45240..0673e7929c 100644 --- a/src/categories/create.js +++ b/src/categories/create.js @@ -40,7 +40,7 @@ module.exports = function (Categories) { order: order, link: '', numRecentReplies: 1, - class: ( data.class ? data.class : 'col-md-3 col-xs-6' ), + class: (data.class ? data.class : 'col-md-3 col-xs-6'), imageClass: 'cover', }; diff --git a/src/groups/membership.js b/src/groups/membership.js index d28ad927f2..d3908b135e 100644 --- a/src/groups/membership.js +++ b/src/groups/membership.js @@ -355,7 +355,7 @@ module.exports = function (Groups) { } if (!groupName || !uids.length) { - return callback(null, uids.map(function () {return false;})); + return callback(null, uids.map(function () { return false; })); } var nonCachedUids = uids.filter(function (uid) { @@ -388,7 +388,7 @@ module.exports = function (Groups) { } if (!uid || parseInt(uid, 10) <= 0 || !groups.length) { - return callback(null, groups.map(function () {return false;})); + return callback(null, groups.map(function () { return false; })); } var nonCachedGroups = groups.filter(function (groupName) { diff --git a/src/plugins.js b/src/plugins.js index 10183f5d79..f6b27f8ec7 100644 --- a/src/plugins.js +++ b/src/plugins.js @@ -312,9 +312,9 @@ var middleware; } pluginArray.sort(function (a, b) { - if (a.name > b.name ) { + if (a.name > b.name) { return 1; - } else if (a.name < b.name ) { + } else if (a.name < b.name) { return -1; } else { return 0; diff --git a/src/posts/user.js b/src/posts/user.js index 933b972759..644ee5fe11 100644 --- a/src/posts/user.js +++ b/src/posts/user.js @@ -95,7 +95,7 @@ module.exports = function (Posts) { uid = parseInt(uid, 10); if (Array.isArray(pid)) { if (!uid) { - return callback(null, pid.map(function () {return false;})); + return callback(null, pid.map(function () { return false; })); } Posts.getPostsFields(pid, ['uid'], function (err, posts) { if (err) { @@ -118,7 +118,7 @@ module.exports = function (Posts) { Posts.isModerator = function (pids, uid, callback) { if (!parseInt(uid, 10)) { - return callback(null, pids.map(function () {return false;})); + return callback(null, pids.map(function () { return false; })); } Posts.getCidsByPids(pids, function (err, cids) { if (err) { diff --git a/src/privileges/users.js b/src/privileges/users.js index a91175ecb1..94426d154c 100644 --- a/src/privileges/users.js +++ b/src/privileges/users.js @@ -40,7 +40,7 @@ module.exports = function (privileges) { function isModeratorOfCategories(cids, uid, callback) { if (!parseInt(uid, 10)) { - return filterIsModerator(cids, uid, cids.map(function () {return false;}), callback); + return filterIsModerator(cids, uid, cids.map(function () { return false; }), callback); } privileges.users.isGlobalModerator(uid, function (err, isGlobalModerator) { @@ -48,7 +48,7 @@ module.exports = function (privileges) { return callback(err); } if (isGlobalModerator) { - return filterIsModerator(cids, uid, cids.map(function () {return true;}), callback); + return filterIsModerator(cids, uid, cids.map(function () { return true; }), callback); } diff --git a/src/socket.io/admin.js b/src/socket.io/admin.js index 7a86c725ed..f3266f0152 100644 --- a/src/socket.io/admin.js +++ b/src/socket.io/admin.js @@ -232,7 +232,7 @@ SocketAdmin.analytics.get = function (socket, data, callback) { analytics.getMonthlyPageViews(next); }, }, function (err, data) { - data.pastDay = data.pageviews.reduce(function (a, b) {return parseInt(a, 10) + parseInt(b, 10);}); + data.pastDay = data.pageviews.reduce(function (a, b) { return parseInt(a, 10) + parseInt(b, 10); }); data.pageviews[data.pageviews.length - 1] = parseInt(data.pageviews[data.pageviews.length - 1], 10) + analytics.getUnwrittenPageviews(); callback(err, data); }); diff --git a/src/topics/fork.js b/src/topics/fork.js index 436096fa5b..ef62d65b1d 100644 --- a/src/topics/fork.js +++ b/src/topics/fork.js @@ -56,7 +56,7 @@ module.exports = function (Topics) { Topics.create({uid: results.postData.uid, title: title, cid: cid}, next); }, function (results, next) { - Topics.updateTopicBookmarks(fromTid, pids, function () { next( null, results );} ); + Topics.updateTopicBookmarks(fromTid, pids, function () { next(null, results); }); }, function (_tid, next) { function move(pid, next) { diff --git a/src/topics/tags.js b/src/topics/tags.js index 116b0e412d..99f6c49a44 100644 --- a/src/topics/tags.js +++ b/src/topics/tags.js @@ -252,7 +252,7 @@ module.exports = function (Topics) { topicTags.forEach(function (tags, index) { if (Array.isArray(tags)) { - topicTags[index] = tags.map(function (tag) {return tagData[tag];}); + topicTags[index] = tags.map(function (tag) { return tagData[tag]; }); } }); diff --git a/test/controllers.js b/test/controllers.js index 8c426e24ea..057e20b2a0 100644 --- a/test/controllers.js +++ b/test/controllers.js @@ -871,7 +871,7 @@ describe('Controllers', function () { }); }); - it('should return empty after unfollow', function (done ) { + it('should return empty after unfollow', function (done) { socketUser.unfollow({uid: uid}, {uid: fooUid}, function (err) { assert.ifError(err); request(nconf.get('url') + '/api/user/foo/followers', {json: true}, function (err, res, body) { diff --git a/test/meta.js b/test/meta.js index cb231d9f39..1854cf3b53 100644 --- a/test/meta.js +++ b/test/meta.js @@ -142,7 +142,7 @@ describe('meta', function () { }); }); - it('should set multiple values', function (done ) { + it('should set multiple values', function (done) { socketAdmin.config.setMultiple({uid: fooUid}, { someField1: 'someValue1', someField2: 'someValue2', diff --git a/test/topics.js b/test/topics.js index 1341ab694b..15db5d1668 100644 --- a/test/topics.js +++ b/test/topics.js @@ -471,7 +471,7 @@ describe('Topic\'s', function () { }); }, function (done) { - topics.markUnread( newTid, uid, done ); + topics.markUnread(newTid, uid, done); }, ],done); }); @@ -479,14 +479,14 @@ describe('Topic\'s', function () { it('should not appear in the unread list', function (done) { async.waterfall([ function (done) { - topics.ignore( newTid, uid, done ); + topics.ignore(newTid, uid, done); }, function (done) { - topics.getUnreadTopics(0, uid, 0, -1, '', done ); + topics.getUnreadTopics(0, uid, 0, -1, '', done); }, function (results, done) { var topics = results.topics; - var tids = topics.map( function (topic) { return topic.tid; } ); + var tids = topics.map(function (topic) { return topic.tid; }); assert.equal(tids.indexOf(newTid), -1, 'The topic appeared in the unread list.'); done(); }, @@ -496,10 +496,10 @@ describe('Topic\'s', function () { it('should not appear as unread in the recent list', function (done) { async.waterfall([ function (done) { - topics.ignore( newTid, uid, done ); + topics.ignore(newTid, uid, done); }, function (done) { - topics.getLatestTopics( uid, 0, -1, 'year', done ); + topics.getLatestTopics(uid, 0, -1, 'year', done); }, function (results, done) { var topics = results.topics; @@ -520,17 +520,17 @@ describe('Topic\'s', function () { it('should appear as unread again when marked as reading', function (done) { async.waterfall([ function (done) { - topics.ignore( newTid, uid, done ); + topics.ignore(newTid, uid, done); }, function (done) { - topics.follow( newTid, uid, done ); + topics.follow(newTid, uid, done); }, function (done) { - topics.getUnreadTopics(0, uid, 0, -1, '', done ); + topics.getUnreadTopics(0, uid, 0, -1, '', done); }, function (results, done) { var topics = results.topics; - var tids = topics.map( function (topic) { return topic.tid; } ); + var tids = topics.map(function (topic) { return topic.tid; }); assert.notEqual(tids.indexOf(newTid), -1, 'The topic did not appear in the unread list.'); done(); }, @@ -540,17 +540,17 @@ describe('Topic\'s', function () { it('should appear as unread again when marked as following', function (done) { async.waterfall([ function (done) { - topics.ignore( newTid, uid, done ); + topics.ignore(newTid, uid, done); }, function (done) { - topics.follow( newTid, uid, done ); + topics.follow(newTid, uid, done); }, function (done) { - topics.getUnreadTopics(0, uid, 0, -1, '', done ); + topics.getUnreadTopics(0, uid, 0, -1, '', done); }, function (results, done) { var topics = results.topics; - var tids = topics.map( function (topic) { return topic.tid; } ); + var tids = topics.map(function (topic) { return topic.tid; }); assert.notEqual(tids.indexOf(newTid), -1, 'The topic did not appear in the unread list.'); done(); }, @@ -578,34 +578,34 @@ describe('Topic\'s', function () { function (next) { groups.join('administrators', topic.userId, next); }, - function ( next ) { + function (next) { topics.post({uid: topic.userId, title: topic.title, content: topic.content, cid: topic.categoryId}, function (err, result) { - assert.ifError( err ); + assert.ifError(err); newTopic = result.topicData; next(); }); }, - function ( next ) { postReply( next );}, - function ( next ) { postReply( next );}, - function ( next ) { postReply( next );}, - function ( next ) { postReply( next );}, - function ( next ) { postReply( next );}, - function ( next ) { postReply( next );}, - function ( next ) { postReply( next );}, - function ( next ) { postReply( next );}, - function ( next ) { postReply( next );}, - function ( next ) { postReply( next );}, - function ( next ) { postReply( next );}, - function ( next ) { postReply( next );}, - function ( next ) { - topicPids = replies.map( function ( reply ) { return reply.pid; } ); - topics.setUserBookmark( newTopic.tid, topic.userId, originalBookmark, next ); + function (next) { postReply(next); }, + function (next) { postReply(next); }, + function (next) { postReply(next); }, + function (next) { postReply(next); }, + function (next) { postReply(next); }, + function (next) { postReply(next); }, + function (next) { postReply(next); }, + function (next) { postReply(next); }, + function (next) { postReply(next); }, + function (next) { postReply(next); }, + function (next) { postReply(next); }, + function (next) { postReply(next); }, + function (next) { + topicPids = replies.map(function (reply) { return reply.pid; }); + topics.setUserBookmark(newTopic.tid, topic.userId, originalBookmark, next); }], - done ); + done); }); it('should have 12 replies', function (done) { - assert.equal( 12, replies.length ); + assert.equal(12, replies.length); done(); }); @@ -615,15 +615,15 @@ describe('Topic\'s', function () { topics.createTopicFromPosts( topic.userId, 'Fork test, no bookmark update', - topicPids.slice( -2 ), + topicPids.slice(-2), newTopic.tid, - next ); + next); }, - function ( forkedTopicData, next) { - topics.getUserBookmark( newTopic.tid, topic.userId, next ); + function (forkedTopicData, next) { + topics.getUserBookmark(newTopic.tid, topic.userId, next); }, - function ( bookmark, next ) { - assert.equal( originalBookmark, bookmark ); + function (bookmark, next) { + assert.equal(originalBookmark, bookmark); next(); }, ],done); @@ -635,15 +635,15 @@ describe('Topic\'s', function () { topics.createTopicFromPosts( topic.userId, 'Fork test, no bookmark update', - topicPids.slice( 1, 3 ), + topicPids.slice(1, 3), newTopic.tid, - next ); + next); }, - function ( forkedTopicData, next) { - topics.getUserBookmark( newTopic.tid, topic.userId, next ); + function (forkedTopicData, next) { + topics.getUserBookmark(newTopic.tid, topic.userId, next); }, - function ( bookmark, next ) { - assert.equal( originalBookmark - 2, bookmark ); + function (bookmark, next) { + assert.equal(originalBookmark - 2, bookmark); next(); }, ],done); From 34e233fe1daef8c0688871fc8060baf3c611047e Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 01:25:46 -0700 Subject: [PATCH 15/60] ESlint spaced-comment --- .eslintrc | 8 ++++---- minifier.js | 4 ++-- public/src/admin/admin.js | 1 - public/src/admin/extend/plugins.js | 2 +- public/src/admin/manage/categories.js | 2 +- public/src/overrides.js | 2 +- public/src/utils.js | 12 ++++++------ src/meta/js.js | 2 +- src/socket.io/admin/categories.js | 2 +- test/helpers/index.js | 2 +- 10 files changed, 18 insertions(+), 19 deletions(-) diff --git a/.eslintrc b/.eslintrc index 296ff1e04f..5d0b9f37dc 100644 --- a/.eslintrc +++ b/.eslintrc @@ -13,10 +13,13 @@ "import/no-unresolved": "off", "import/no-extraneous-dependencies": "off", "import/no-dynamic-require": "off", + "import/newline-after-import": "off", "no-bitwise": "off", "newline-per-chained-call": "off", "no-console": "off", "no-empty": ["error", { "allowEmptyCatch": true }], + "prefer-rest-params": "off", + "prefer-spread": "off", // "linebreak-style": "off", // "one-var": "off", @@ -94,12 +97,9 @@ "global-require": "off", "no-trailing-spaces": "off", "key-spacing": "off", - "import/newline-after-import": "off", "no-underscore-dangle": "off", - "prefer-spread": "off", // "no-multiple-empty-lines": "off", - "spaced-comment": "off", - "prefer-rest-params": "off", + // "spaced-comment": "off", // "space-in-parens": "off", // "block-spacing": "off", // "quote-props": "off", diff --git a/minifier.js b/minifier.js index dd367b58a7..8504312d22 100644 --- a/minifier.js +++ b/minifier.js @@ -35,7 +35,7 @@ Minifier.js.minify = function (scripts, minify, callback) { process.on('message', function (payload) { switch(payload.action) { case 'js': - Minifier.js.minify(payload.scripts, payload.minify, function (minified/*, sourceMap*/) { + Minifier.js.minify(payload.scripts, payload.minify, function (minified/* , sourceMap*/) { process.send({ type: 'end', // sourceMap: sourceMap, @@ -55,7 +55,7 @@ function minifyScripts(scripts, callback) { compress: false, }); - callback(minified.code/*, minified.map*/); + callback(minified.code/* , minified.map*/); } catch(err) { process.send({ type: 'error', diff --git a/public/src/admin/admin.js b/public/src/admin/admin.js index 8d1d56ab64..6b71868258 100644 --- a/public/src/admin/admin.js +++ b/public/src/admin/admin.js @@ -1,5 +1,4 @@ "use strict"; -/*global config, componentHandler, socket, app, bootbox, Slideout, NProgress, utils*/ (function () { var logoutTimer = 0; diff --git a/public/src/admin/extend/plugins.js b/public/src/admin/extend/plugins.js index ed99847dd3..df43edf5f7 100644 --- a/public/src/admin/extend/plugins.js +++ b/public/src/admin/extend/plugins.js @@ -29,7 +29,7 @@ define('admin/extend/plugins', ['jqueryui', 'translator'], function (jqueryui, t btn.html(buttonText); btn.toggleClass('btn-warning', status.active).toggleClass('btn-success', !status.active); - //clone it to active plugins tab + // clone it to active plugins tab if (status.active && !$('#active #' + pluginID).length) { $('#active ul').prepend(pluginEl.clone(true)); } diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js index e953af0fba..c19a316060 100644 --- a/public/src/admin/manage/categories.js +++ b/public/src/admin/manage/categories.js @@ -127,7 +127,7 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri function itemDragDidEnd(e) { var isCategoryUpdate = (newCategoryId != -1); - //Update needed? + // Update needed? if((e.newIndex != undefined && e.oldIndex != e.newIndex) || isCategoryUpdate) { var parentCategory = isCategoryUpdate ? sortables[newCategoryId] : sortables[e.from.dataset.cid]; var modified = {}; diff --git a/public/src/overrides.js b/public/src/overrides.js index 78b6e3b1db..5ffbdde3b0 100644 --- a/public/src/overrides.js +++ b/public/src/overrides.js @@ -40,7 +40,7 @@ if ('undefined' !== typeof window) { }); }; - //http://stackoverflow.com/questions/511088/use-javascript-to-place-cursor-at-end-of-text-in-text-input-element + // http://stackoverflow.com/questions/511088/use-javascript-to-place-cursor-at-end-of-text-in-text-input-element $.fn.putCursorAtEnd = function () { return this.each(function () { $(this).focus(); diff --git a/public/src/utils.js b/public/src/utils.js index 9016b8da65..eb9fec1e27 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -32,7 +32,7 @@ }); }, - //Adapted from http://stackoverflow.com/questions/5827612/node-js-fs-readdir-recursive-directory-search + // Adapted from http://stackoverflow.com/questions/5827612/node-js-fs-readdir-recursive-directory-search walk: function (dir, done) { var results = []; @@ -85,7 +85,7 @@ isLatin: /^[\w\d\s.,\-@]+$/, languageKeyRegex: /\[\[[\w]+:.+\]\]/, - //http://dense13.com/blog/2009/05/03/converting-string-to-slug-javascript/ + // http://dense13.com/blog/2009/05/03/converting-string-to-slug-javascript/ slugify: function (str, preserveCase) { if (!str) { return ''; @@ -272,7 +272,7 @@ }, findBootstrapEnvironment: function () { - //http://stackoverflow.com/questions/14441456/how-to-detect-which-device-view-youre-on-using-twitter-bootstrap-api + // http://stackoverflow.com/questions/14441456/how-to-detect-which-device-view-youre-on-using-twitter-bootstrap-api var envs = ['xs', 'sm', 'md', 'lg']; var $el = $('
    '); @@ -324,7 +324,7 @@ /* Retrieved from http://stackoverflow.com/a/7557433 @ 27 Mar 2016 */ isElementInViewport: function (el) { - //special bonus for those using jQuery + // special bonus for those using jQuery if (typeof jQuery === "function" && el instanceof jQuery) { el = el[0]; } @@ -334,8 +334,8 @@ return ( rect.top >= 0 && rect.left >= 0 && - rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */ - rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */ + rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /* or $(window).height() */ + rect.right <= (window.innerWidth || document.documentElement.clientWidth) /* or $(window).width() */ ); }, diff --git a/src/meta/js.js b/src/meta/js.js index a9adbead9e..4aaff6f7a9 100644 --- a/src/meta/js.js +++ b/src/meta/js.js @@ -231,7 +231,7 @@ module.exports = function (Meta) { * use the line below if you want to debug minifier.js script too (or even --debug-brk option, but * you'll have to setup your debugger and connect to the forked process) */ - //forkProcessParams = {execArgv: ['--debug=' + (global.process.debugPort + 1), '--nolazy']}; + // forkProcessParams = {execArgv: ['--debug=' + (global.process.debugPort + 1), '--nolazy']}; /** * otherwise, just clean up --debug/--debug-brk options which are set up by default from the parent one diff --git a/src/socket.io/admin/categories.js b/src/socket.io/admin/categories.js index 468564297c..43287fc2b8 100644 --- a/src/socket.io/admin/categories.js +++ b/src/socket.io/admin/categories.js @@ -22,7 +22,7 @@ Categories.getAll = function (socket, data, callback) { async.apply(db.getSortedSetRange, 'categories:cid', 0, -1), async.apply(categories.getCategoriesData), function (categories, next) { - //Hook changes, there is no req, and res + // Hook changes, there is no req, and res plugins.fireHook('filter:admin.categories.get', {categories: categories}, next); }, function (result, next) { diff --git a/test/helpers/index.js b/test/helpers/index.js index 91582cae11..cfc1f20074 100644 --- a/test/helpers/index.js +++ b/test/helpers/index.js @@ -142,7 +142,7 @@ helpers.registerUser = function (data, callback) { }); }; -//http://stackoverflow.com/a/14387791/583363 +// http://stackoverflow.com/a/14387791/583363 helpers.copyFile = function (source, target, callback) { var cbCalled = false; From 277a7fb8b428a29e918b7e4a28b51899f9d34daf Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 01:27:46 -0700 Subject: [PATCH 16/60] ESlint key-spacing, no-trailing-spaces --- .eslintrc | 6 ++-- Gruntfile.js | 4 +-- app.js | 2 +- install/web.js | 2 +- public/src/admin/admin.js | 16 +++++------ public/src/admin/advanced/errors.js | 4 +-- public/src/admin/appearance/customise.js | 13 ++++----- public/src/admin/appearance/skins.js | 2 +- public/src/admin/appearance/themes.js | 4 +-- public/src/admin/general/dashboard.js | 16 +++++------ public/src/admin/general/navigation.js | 4 +-- public/src/admin/general/social.js | 2 +- public/src/admin/manage/category-analytics.js | 8 +++--- public/src/admin/manage/flags.js | 2 +- public/src/admin/manage/tags.js | 6 ++-- public/src/admin/modules/search.js | 2 +- public/src/ajaxify.js | 2 +- public/src/app.js | 4 +-- public/src/client/account/edit.js | 6 ++-- public/src/client/account/profile.js | 6 ++-- public/src/client/category/tools.js | 6 ++-- public/src/client/chats/messages.js | 2 +- public/src/client/chats/search.js | 4 +-- public/src/client/groups/details.js | 2 +- public/src/client/topic.js | 4 +-- public/src/modules/chat.js | 6 ++-- public/src/modules/helpers.js | 2 +- public/src/modules/iconSelect.js | 2 +- public/src/modules/pictureCropper.js | 8 +++--- public/src/modules/scrollStop.js | 2 +- public/src/modules/taskbar.js | 2 +- public/src/modules/translator.js | 4 +-- public/src/overrides.js | 2 +- public/src/utils.js | 4 +-- src/admin/search.js | 2 +- src/controllers/admin/dashboard.js | 6 ++-- src/controllers/groups.js | 2 +- src/controllers/index.js | 2 +- src/coverPhoto.js | 4 +-- src/database/mongo/hash.js | 2 +- src/database/mongo/list.js | 6 ++-- src/database/mongo/main.js | 2 +- src/database/mongo/sets.js | 4 +-- src/database/mongo/sorted.js | 6 ++-- src/database/mongo/sorted/add.js | 2 +- src/install.js | 4 +-- src/logger.js | 14 +++++----- src/meta/configs.js | 2 +- src/meta/js.js | 2 +- src/reset.js | 4 +-- src/routes/index.js | 4 +-- src/socket.io/user/profile.js | 2 +- src/topics/recent.js | 2 +- src/topics/tools.js | 4 +-- src/topics/unread.js | 2 +- src/user.js | 2 +- src/user/bans.js | 2 +- src/user/jobs.js | 2 +- src/user/picture.js | 4 +-- src/user/settings.js | 2 +- test/database/hash.js | 2 +- test/mocks/databasemock.js | 2 +- test/translator.js | 2 +- test/user.js | 28 +++++++++---------- 64 files changed, 142 insertions(+), 143 deletions(-) diff --git a/.eslintrc b/.eslintrc index 5d0b9f37dc..cea249bb96 100644 --- a/.eslintrc +++ b/.eslintrc @@ -20,6 +20,7 @@ "no-empty": ["error", { "allowEmptyCatch": true }], "prefer-rest-params": "off", "prefer-spread": "off", + "no-underscore-dangle": "off", // "linebreak-style": "off", // "one-var": "off", @@ -95,9 +96,8 @@ "no-mixed-operators": "off", "comma-spacing": "off", "global-require": "off", - "no-trailing-spaces": "off", - "key-spacing": "off", - "no-underscore-dangle": "off", + // "no-trailing-spaces": "off", + // "key-spacing": "off", // "no-multiple-empty-lines": "off", // "spaced-comment": "off", // "space-in-parens": "off", diff --git a/Gruntfile.js b/Gruntfile.js index 86db9c77f2..2e221df277 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -19,7 +19,7 @@ module.exports = function (grunt) { var fromFile = ''; var compiling = ''; var time = Date.now(); - + if (target === 'lessUpdated_Client') { compiling = 'clientCSS'; } else if (target === 'lessUpdated_Admin') { @@ -137,7 +137,7 @@ module.exports = function (grunt) { } else { grunt.registerTask('default', ['watch']); } - + env.NODE_ENV = 'development'; diff --git a/app.js b/app.js index 3dba714fbf..c85e30ef0a 100644 --- a/app.js +++ b/app.js @@ -112,7 +112,7 @@ function loadConfig(callback) { nconf.set('themes_path', path.resolve(__dirname, nconf.get('themes_path'))); nconf.set('core_templates_path', path.join(__dirname, 'src/views')); nconf.set('base_templates_path', path.join(nconf.get('themes_path'), 'nodebb-theme-persona/templates')); - + nconf.set('upload_path', path.resolve(nconf.get('base_dir'), nconf.get('upload_path'))); if (nconf.get('url')) { diff --git a/install/web.js b/install/web.js index 448483d747..2b086dc890 100644 --- a/install/web.js +++ b/install/web.js @@ -120,7 +120,7 @@ function launch(req, res) { async.parallel([ async.apply(fs.unlink(path.join(__dirname, '../public/installer.css'))), - async.apply(fs.unlink(path.join(__dirname, '../public/installer.min.js'))), + async.apply(fs.unlink(path.join(__dirname, '../public/installer.min.js'))), ], function (err) { if (err) { winston.warn('Unable to remove installer files'); diff --git a/public/src/admin/admin.js b/public/src/admin/admin.js index 6b71868258..d492f7d831 100644 --- a/public/src/admin/admin.js +++ b/public/src/admin/admin.js @@ -115,7 +115,7 @@ } else { var matches = url.match(/admin\/(.+?)\/(.+?)$/); mainTitle = '[[admin/menu:' + matches[1] + '/' + matches[2] + ']]'; - pageTitle = '[[admin/menu:section-' + + pageTitle = '[[admin/menu:section-' + (matches[1] === 'development' ? 'advanced' : matches[1]) + ']]' + (matches[2] ? (' > ' + mainTitle) : ''); if (matches[2] === 'settings') { @@ -176,18 +176,18 @@ function configureSlidemenu() { var env = utils.findBootstrapEnvironment(); - + var slideout = new Slideout({ panel: document.getElementById('panel'), menu: document.getElementById('menu'), padding: 256, tolerance: 70, }); - + if (env === 'md' || env === 'lg') { slideout.disableTouch(); } - + $('#mobile-menu').on('click', function () { slideout.toggle(); }); @@ -198,14 +198,14 @@ $(window).on('resize', function () { slideout.close(); - + env = utils.findBootstrapEnvironment(); - + if (env === 'md' || env === 'lg') { slideout.disableTouch(); $('#header').css({ position: 'relative', - }); + }); } else { slideout.enableTouch(); $('#header').css({ @@ -222,7 +222,7 @@ } slideout.on('open', onOpeningMenu); - + slideout.on('close', function () { $('#header').css({ top: '0px', diff --git a/public/src/admin/advanced/errors.js b/public/src/admin/advanced/errors.js index 816a145a72..e8ec4b6acb 100644 --- a/public/src/admin/advanced/errors.js +++ b/public/src/admin/advanced/errors.js @@ -71,7 +71,7 @@ define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, transl notFoundCanvas.width = $(notFoundCanvas).parent().width(); tooBusyCanvas.width = $(tooBusyCanvas).parent().width(); - + new Chart(notFoundCanvas.getContext('2d'), { type: 'line', data: data['not-found'], @@ -89,7 +89,7 @@ define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, transl }, }, }); - + new Chart(tooBusyCanvas.getContext('2d'), { type: 'line', data: data.toobusy, diff --git a/public/src/admin/appearance/customise.js b/public/src/admin/appearance/customise.js index b38b391828..eeb8f7c518 100644 --- a/public/src/admin/appearance/customise.js +++ b/public/src/admin/appearance/customise.js @@ -3,23 +3,23 @@ define('admin/appearance/customise', ['admin/settings'], function (Settings) { var Customise = {}; - - Customise.init = function () { + + Customise.init = function () { Settings.prepare(function () { $('#customCSS').text($('#customCSS-holder').val()); $('#customHTML').text($('#customHTML-holder').val()); - + var customCSS = ace.edit("customCSS"); var customHTML = ace.edit("customHTML"); customCSS.setTheme("ace/theme/twilight"); - customCSS.getSession().setMode("ace/mode/css"); + customCSS.getSession().setMode("ace/mode/css"); customCSS.on('change', function (event) { app.flags = app.flags || {}; app.flags._unsaved = true; $('#customCSS-holder').val(customCSS.getValue()); - }); + }); customHTML.setTheme("ace/theme/twilight"); customHTML.getSession().setMode("ace/mode/html"); @@ -28,10 +28,9 @@ define('admin/appearance/customise', ['admin/settings'], function (Settings) { app.flags = app.flags || {}; app.flags._unsaved = true; $('#customHTML-holder').val(customHTML.getValue()); - }); + }); }); }; return Customise; }); - \ No newline at end of file diff --git a/public/src/admin/appearance/skins.js b/public/src/admin/appearance/skins.js index c946faa2da..f7de9997a7 100644 --- a/public/src/admin/appearance/skins.js +++ b/public/src/admin/appearance/skins.js @@ -3,7 +3,7 @@ define('admin/appearance/skins', ['translator'], function (translator) { var Skins = {}; - + Skins.init = function () { // Populate skins from Bootswatch API $.ajax({ diff --git a/public/src/admin/appearance/themes.js b/public/src/admin/appearance/themes.js index ced02666be..d8f96c1c65 100644 --- a/public/src/admin/appearance/themes.js +++ b/public/src/admin/appearance/themes.js @@ -39,7 +39,7 @@ define('admin/appearance/themes', ['translator'], function (translator) { }); } }); - + $('#revert_theme').on('click', function () { bootbox.confirm('[[admin/appearance/themes:revert-confirm]]', function (confirm) { if (confirm) { @@ -72,7 +72,7 @@ define('admin/appearance/themes', ['translator'], function (translator) { if (!themes.length) { instListEl.append($('
  • ').addClass('no-themes').translateHtml('[[admin/appearance/themes:no-themes]]')); - + } else { templates.parse('admin/partials/theme_list', { themes: themes, diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index 2b8709962a..b598618d58 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -23,7 +23,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s graphInterval: 15000, realtimeInterval: 1500, }; - + $(window).on('action:ajaxify.start', function (ev, data) { clearInterval(intervals.rooms); clearInterval(intervals.graphs); @@ -229,7 +229,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s }, }, }); - + graphs.registered = new Chart(registeredCtx, { type: 'doughnut', data: { @@ -265,7 +265,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s }, }, }); - + graphs.topics = new Chart(topicsCtx, { type: 'doughnut', data: { @@ -371,7 +371,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s graphs.presence.update(); } - + function updateTopicsGraph(topics) { if (!Object.keys(topics).length) { topics = {0: { @@ -381,26 +381,26 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s } var tids = Object.keys(topics); - + graphs.topics.data.labels = []; graphs.topics.data.datasets[0].data = []; graphs.topics.data.datasets[0].backgroundColor = []; graphs.topics.data.datasets[0].hoverBackgroundColor = []; - + for (var i = 0, ii = tids.length; i < ii; i += 1) { graphs.topics.data.labels.push(topics[tids[i]].title); graphs.topics.data.datasets[0].data.push(topics[tids[i]].value); graphs.topics.data.datasets[0].backgroundColor.push(topicColors[i]); graphs.topics.data.datasets[0].hoverBackgroundColor.push(lighten(topicColors[i], 10)); } - + function buildTopicsLegend() { var legend = $('#topics-legend').html(''); for (var i = 0, ii = tids.length; i < ii; i += 1) { var topic = topics[tids[i]]; var label = topic.value === '0' ? topic.title : ' ' + topic.title + ''; - + legend.append( '
  • ' + '
    ' + diff --git a/public/src/admin/general/navigation.js b/public/src/admin/general/navigation.js index 3181ebacee..855b1d095e 100644 --- a/public/src/admin/general/navigation.js +++ b/public/src/admin/general/navigation.js @@ -21,7 +21,7 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun stop: drop, }); }); - + $('#active-navigation').sortable().droppable({ accept: $('#available li .drag-item'), }); @@ -81,7 +81,7 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun li = $(translator.unescape(li)); $('#enabled').append(li); componentHandler.upgradeDom(); - }); + }); }); } diff --git a/public/src/admin/general/social.js b/public/src/admin/general/social.js index 45f02afa66..d1bbccefe4 100644 --- a/public/src/admin/general/social.js +++ b/public/src/admin/general/social.js @@ -12,7 +12,7 @@ define('admin/general/social', [], function () { networks.push($(this).attr('id')); } }); - + socket.emit('admin.social.savePostSharingNetworks', networks, function (err) { if (err) { return app.alertError(err); diff --git a/public/src/admin/manage/category-analytics.js b/public/src/admin/manage/category-analytics.js index c9cf8162f4..3ae9416a1d 100644 --- a/public/src/admin/manage/category-analytics.js +++ b/public/src/admin/manage/category-analytics.js @@ -87,7 +87,7 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { dailyCanvas.width = $(dailyCanvas).parent().width(); topicsCanvas.width = $(topicsCanvas).parent().width(); postsCanvas.width = $(postsCanvas).parent().width(); - + new Chart(hourlyCanvas.getContext('2d'), { type: 'line', data: data['pageviews:hourly'], @@ -106,7 +106,7 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { }, }, }); - + new Chart(dailyCanvas.getContext('2d'), { type: 'line', data: data['pageviews:daily'], @@ -125,7 +125,7 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { }, }, }); - + new Chart(topicsCanvas.getContext('2d'), { type: 'line', data: data['topics:daily'], @@ -144,7 +144,7 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { }, }, }); - + new Chart(postsCanvas.getContext('2d'), { type: 'line', data: data['posts:daily'], diff --git a/public/src/admin/manage/flags.js b/public/src/admin/manage/flags.js index eec663ffcb..77a8bb8e0d 100644 --- a/public/src/admin/manage/flags.js +++ b/public/src/admin/manage/flags.js @@ -133,7 +133,7 @@ define('admin/manage/flags', [ } function updateFlagDetails(source) { - // As the flag details are returned in the API, + // As the flag details are returned in the API, // update the form controls to show the correct data // Create reference hash for use in this method diff --git a/public/src/admin/manage/tags.js b/public/src/admin/manage/tags.js index 29fb27ba3e..6a157487c0 100644 --- a/public/src/admin/manage/tags.js +++ b/public/src/admin/manage/tags.js @@ -89,7 +89,7 @@ define('admin/manage/tags', [ var title = tagsToModify.length > 1 ? '[[admin/manage/tags:alerts.editing-multiple]]' : '[[admin/manage/tags:alerts.editing-x, ' + firstTag.find('.tag-item').text() + ']]'; var modal = bootbox.dialog({ - title: title, + title: title, message: firstTag.find('.tag-modal').html(), buttons: { success: { @@ -155,8 +155,8 @@ define('admin/manage/tags', [ function save(tag) { var data = { tag: tag.attr('data-tag'), - bgColor : tag.find('[data-name="bgColor"]').val(), - color : tag.find('[data-name="color"]').val(), + bgColor: tag.find('[data-name="bgColor"]').val(), + color: tag.find('[data-name="color"]').val(), }; socket.emit('admin.tags.update', data, function (err) { diff --git a/public/src/admin/modules/search.js b/public/src/admin/modules/search.js index d485131e6c..f47f5f4827 100644 --- a/public/src/admin/modules/search.js +++ b/public/src/admin/modules/search.js @@ -128,7 +128,7 @@ define('admin/modules/search', ['mousetrap'], function (mousetrap) { menu.toggleClass('state-start-typing', len === 0); menu.toggleClass('state-keep-typing', len > 0 && len < 3); - + if (len >= 3) { menu.prepend(find(dict, value)); diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index a25c79fe1e..ee010cfc47 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -158,7 +158,7 @@ $(document).ready(function () { app.alertError('[[global:please_log_in]]'); app.previousUrl = url; window.location.href = config.relative_path + '/login'; - + } else if (status === 302 || status === 308) { if (data.responseJSON && data.responseJSON.external) { window.location.href = data.responseJSON.external; diff --git a/public/src/app.js b/public/src/app.js index 99b67a2094..a1667eb0a7 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -223,7 +223,7 @@ app.cacheBuster = null; app.createStatusTooltips = function () { if (!utils.isTouchDevice()) { $('body').tooltip({ - selector:'.fa-circle.status', + selector: '.fa-circle.status', placement: 'top', }); } @@ -481,7 +481,7 @@ app.cacheBuster = null; searchButton.on('click', function (e) { if (!config.loggedIn && !config.allowGuestSearching) { app.alert({ - message:'[[error:search-requires-login]]', + message: '[[error:search-requires-login]]', timeout: 3000, }); ajaxify.go('login'); diff --git a/public/src/client/account/edit.js b/public/src/client/account/edit.js index ddba6b266d..b805404cbc 100644 --- a/public/src/client/account/edit.js +++ b/public/src/client/account/edit.js @@ -241,9 +241,9 @@ define('forum/account/edit', ['forum/account/header', 'translator', 'components' if (!url) { return; } - + uploadModal.modal('hide'); - + pictureCropper.handleImageCrop({ url: url, socketMethod: 'user.uploadCroppedPicture', @@ -251,7 +251,7 @@ define('forum/account/edit', ['forum/account/header', 'translator', 'components' paramName: 'uid', paramValue: ajaxify.data.theirid, }, onUploadComplete); - + return false; }); }); diff --git a/public/src/client/account/profile.js b/public/src/client/account/profile.js index 1b38dc0bbd..e703b23af5 100644 --- a/public/src/client/account/profile.js +++ b/public/src/client/account/profile.js @@ -21,10 +21,10 @@ define('forum/account/profile', [ socket.removeListener('event:user_status_change', onUserStatusChange); socket.on('event:user_status_change', onUserStatusChange); - + if (!config.usePagination) { - infinitescroll.init(loadMorePosts); - } + infinitescroll.init(loadMorePosts); + } }; function processPage() { diff --git a/public/src/client/category/tools.js b/public/src/client/category/tools.js index 814e06691c..d376025b53 100644 --- a/public/src/client/category/tools.js +++ b/public/src/client/category/tools.js @@ -3,9 +3,9 @@ define('forum/category/tools', [ - 'forum/topic/move', - 'topicSelect', - 'components', + 'forum/topic/move', + 'topicSelect', + 'components', 'translator', ], function (move, topicSelect, components, translator) { diff --git a/public/src/client/chats/messages.js b/public/src/client/chats/messages.js index 5aa0585981..e448554a8e 100644 --- a/public/src/client/chats/messages.js +++ b/public/src/client/chats/messages.js @@ -25,7 +25,7 @@ define('forum/chats/messages', ['components', 'sounds', 'translator'], function message: msg, mid: mid, }); - + if (!mid) { socket.emit('modules.chats.send', { roomId: roomId, diff --git a/public/src/client/chats/search.js b/public/src/client/chats/search.js index e1a7905bc2..ab8b8d54fd 100644 --- a/public/src/client/chats/search.js +++ b/public/src/client/chats/search.js @@ -40,11 +40,11 @@ define('forum/chats/search', ['components'], function (components) { function displayResults(chatsListEl, data) { chatsListEl.empty(); - + data.users = data.users.filter(function (user) { return parseInt(user.uid, 10) !== parseInt(app.user.uid, 10); }); - + if (!data.users.length) { return chatsListEl.translateHtml('
  • [[users:no-users-found]]
  • '); } diff --git a/public/src/client/groups/details.js b/public/src/client/groups/details.js index baf05e107c..c4f8be092f 100644 --- a/public/src/client/groups/details.js +++ b/public/src/client/groups/details.js @@ -273,7 +273,7 @@ define('forum/groups/details', [ if (!confirm) { return; } - + socket.emit('groups.cover.remove', { groupName: ajaxify.data.group.name, }, function (err) { diff --git a/public/src/client/topic.js b/public/src/client/topic.js index 06462f4d87..106a8e99f1 100644 --- a/public/src/client/topic.js +++ b/public/src/client/topic.js @@ -155,10 +155,10 @@ define('forum/topic', [ message: '[[topic:bookmark_instructions]]', timeout: 0, type: 'info', - clickfn : function () { + clickfn: function () { navigator.scrollToPost(parseInt(bookmark - 1, 10), true); }, - closefn : function () { + closefn: function () { localStorage.removeItem('topic:' + tid + ':bookmark'); }, }); diff --git a/public/src/modules/chat.js b/public/src/modules/chat.js index c891a67b70..f2e15c57b5 100644 --- a/public/src/modules/chat.js +++ b/public/src/modules/chat.js @@ -187,17 +187,17 @@ define('chat', [ }); chatModal.draggable({ - start:function () { + start: function () { module.bringModalToTop(chatModal); }, - stop:function () { + stop: function () { chatModal.find('#chat-message-input').focus(); }, distance: 10, handle: '.modal-header', }); }); - + scrollStop.apply(chatModal.find('[component="chat/messages"]')); chatModal.find('#chat-close-btn').on('click', function () { diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js index 97dc55dfa8..0fcde40a07 100644 --- a/public/src/modules/helpers.js +++ b/public/src/modules/helpers.js @@ -1,6 +1,6 @@ (function (exports) { "use strict"; - + // export the class if we are in a Node-like system. if (typeof module === 'object' && module.exports === exports) { diff --git a/public/src/modules/iconSelect.js b/public/src/modules/iconSelect.js index 9bbc28369d..29aff83014 100644 --- a/public/src/modules/iconSelect.js +++ b/public/src/modules/iconSelect.js @@ -16,7 +16,7 @@ define('iconSelect', function () { $('#icons .fa-icons .fa.' + selected).addClass('selected'); } catch (err) { selected = ''; - } + } } templates.parse('partials/fontawesome', {}, function (html) { diff --git a/public/src/modules/pictureCropper.js b/public/src/modules/pictureCropper.js index 4a6e7b1388..e70676b021 100644 --- a/public/src/modules/pictureCropper.js +++ b/public/src/modules/pictureCropper.js @@ -57,18 +57,18 @@ define('pictureCropper', ['translator', 'cropper'], function (translator, croppe cropperModal.find('.reset').on('click', function () { cropperTool.reset(); }); - + cropperModal.find('.crop-btn').on('click', function () { $(this).addClass('disabled'); var imageData = data.imageType ? cropperTool.getCroppedCanvas().toDataURL(data.imageType) : cropperTool.getCroppedCanvas().toDataURL(); - + cropperModal.find('#upload-progress-bar').css('width', '100%'); cropperModal.find('#upload-progress-box').show().removeClass('hide'); - + var socketData = {}; socketData[data.paramName] = data.paramValue; socketData.imageData = imageData; - + socket.emit(data.socketMethod, socketData, function (err, imageData) { if (err) { cropperModal.find('#upload-progress-box').hide(); diff --git a/public/src/modules/scrollStop.js b/public/src/modules/scrollStop.js index f8bd7e8868..0fd722ff89 100644 --- a/public/src/modules/scrollStop.js +++ b/public/src/modules/scrollStop.js @@ -17,7 +17,7 @@ define('scrollStop', function () { var scrollTop = this.scrollTop; var scrollHeight = this.scrollHeight; var elementHeight = this.getBoundingClientRect().height; - + if ( (e.originalEvent.deltaY < 0 && scrollTop === 0) || // scroll up (e.originalEvent.deltaY > 0 && (elementHeight + scrollTop) >= scrollHeight) // scroll down diff --git a/public/src/modules/taskbar.js b/public/src/modules/taskbar.js index e797f14ecf..40761ea45a 100644 --- a/public/src/modules/taskbar.js +++ b/public/src/modules/taskbar.js @@ -39,7 +39,7 @@ define('taskbar', function () { taskbar.discard = function (module, uuid) { var btnEl = taskbar.tasklist.find('[data-module="' + module + '"][data-uuid="' + uuid + '"]'); btnEl.remove(); - + update(); }; diff --git a/public/src/modules/translator.js b/public/src/modules/translator.js index 7652ba3837..4caf71ac68 100644 --- a/public/src/modules/translator.js +++ b/public/src/modules/translator.js @@ -155,7 +155,7 @@ while (cursor + 2 <= len) { sliced = str.slice(cursor, cursor + 2); - // found some text after the double bracket, + // found some text after the double bracket, // so this is probably a translation string if (!textBeforeColonFound && validTextRegex.test(sliced[0])) { textBeforeColonFound = true; @@ -174,7 +174,7 @@ cursor += 1; // a space or comma was found before the name // this isn't a translation string, so back out - } else if (!(textBeforeColonFound && colonFound && textAfterColonFound && commaAfterNameFound) && + } else if (!(textBeforeColonFound && colonFound && textAfterColonFound && commaAfterNameFound) && invalidTextRegex.test(sliced[0])) { cursor += 1; lastBreak -= 2; diff --git a/public/src/overrides.js b/public/src/overrides.js index 5ffbdde3b0..9bc95d68c6 100644 --- a/public/src/overrides.js +++ b/public/src/overrides.js @@ -85,7 +85,7 @@ if ('undefined' !== typeof window) { }); } }); - }(jQuery || {fn:{}})); + }(jQuery || {fn: {}})); (function () { // FIX FOR #1245 - https://github.com/NodeBB/NodeBB/issues/1245 diff --git a/public/src/utils.js b/public/src/utils.js index eb9fec1e27..96c2dcd310 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -241,9 +241,9 @@ return Date.prototype.toISOString ? new Date(parseInt(timestamp, 10)).toISOString() : timestamp; }, - tags : ['a', 'abbr', 'acronym', 'address', 'applet', 'area', 'article', 'aside', 'audio', 'b', 'base', 'basefont', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'command', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'map', 'mark', 'menu', 'meta', 'meter', 'nav', 'noframes', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr'], + tags: ['a', 'abbr', 'acronym', 'address', 'applet', 'area', 'article', 'aside', 'audio', 'b', 'base', 'basefont', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'command', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'map', 'mark', 'menu', 'meta', 'meter', 'nav', 'noframes', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr'], - stripTags : ['abbr', 'acronym', 'address', 'applet', 'area', 'article', 'aside', 'audio', 'base', 'basefont', + stripTags: ['abbr', 'acronym', 'address', 'applet', 'area', 'article', 'aside', 'audio', 'base', 'basefont', 'bdi', 'bdo', 'big', 'blink', 'body', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'command', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', diff --git a/src/admin/search.js b/src/admin/search.js index 4c53815e48..44f9a53a9f 100644 --- a/src/admin/search.js +++ b/src/admin/search.js @@ -137,7 +137,7 @@ function initDict(language, callback) { title = '[[admin/menu:general/dashboard]]'; } else { title = title.match(/admin\/(.+?)\/(.+?)$/); - title = '[[admin/menu:section-' + + title = '[[admin/menu:section-' + (title[1] === 'development' ? 'advanced' : title[1]) + ']]' + (title[2] ? (' > [[admin/menu:' + title[1] + '/' + title[2] + ']]') : ''); diff --git a/src/controllers/admin/dashboard.js b/src/controllers/admin/dashboard.js index 4ca100326b..63ccc5eb7d 100644 --- a/src/controllers/admin/dashboard.js +++ b/src/controllers/admin/dashboard.js @@ -20,14 +20,14 @@ dashboardController.get = function (req, res, next) { { done: !meta.reloadRequired, doneText: '[[admin/general/dashboard:restart-not-required]]', - notDoneText:'[[admin/general/dashboard:restart-required]]', + notDoneText: '[[admin/general/dashboard:restart-required]]', }, { done: plugins.hasListeners('filter:search.query'), doneText: '[[admin/general/dashboard:search-plugin-installed]]', - notDoneText:'[[admin/general/dashboard:search-plugin-not-installed]]', + notDoneText: '[[admin/general/dashboard:search-plugin-not-installed]]', tooltip: '[[admin/general/dashboard:search-plugin-tooltip]]', - link:'/admin/extend/plugins', + link: '/admin/extend/plugins', }, ]; plugins.fireHook('filter:admin.notices', notices, next); diff --git a/src/controllers/groups.js b/src/controllers/groups.js index 442c764d46..e87a9b4361 100644 --- a/src/controllers/groups.js +++ b/src/controllers/groups.js @@ -90,7 +90,7 @@ groupsController.details = function (req, res, callback) { posts: function (next) { groups.getLatestMemberPosts(groupName, 10, req.uid, next); }, - isAdmin:function (next) { + isAdmin: function (next) { user.isAdministrator(req.uid, next); }, isGlobalMod: function (next) { diff --git a/src/controllers/index.js b/src/controllers/index.js index 13927824d3..359d2ffa40 100644 --- a/src/controllers/index.js +++ b/src/controllers/index.js @@ -414,7 +414,7 @@ Controllers.handleURIErrors = function (err, req, res, next) { } } - + } else { next(err); } diff --git a/src/coverPhoto.js b/src/coverPhoto.js index 6307110253..0d13098e62 100644 --- a/src/coverPhoto.js +++ b/src/coverPhoto.js @@ -14,9 +14,9 @@ coverPhoto.getDefaultProfileCover = function (uid) { }; function getCover(type, id) { - if (meta.config[type + ':defaultCovers']) { + if (meta.config[type + ':defaultCovers']) { var covers = meta.config[type + ':defaultCovers'].trim().split(/[\s,]+/g); - + if (typeof id === 'string') { id = (id.charCodeAt(0) + id.charCodeAt(1)) % covers.length; } else { diff --git a/src/database/mongo/hash.js b/src/database/mongo/hash.js index aa655ba658..c59d53c513 100644 --- a/src/database/mongo/hash.js +++ b/src/database/mongo/hash.js @@ -216,7 +216,7 @@ module.exports = function (db, module) { data[field] = ''; }); - db.collection('objects').update({_key: key}, {$unset : data}, function (err) { + db.collection('objects').update({_key: key}, {$unset: data}, function (err) { callback(err); }); }; diff --git a/src/database/mongo/list.js b/src/database/mongo/list.js index c4b4ffbb6c..250d1951ca 100644 --- a/src/database/mongo/list.js +++ b/src/database/mongo/list.js @@ -18,7 +18,7 @@ module.exports = function (db, module) { } if (exists) { - db.collection('objects').update({_key:key}, {$push: {array: {$each: [value], $position: 0}}}, {upsert:true, w:1 }, function (err, res) { + db.collection('objects').update({_key: key}, {$push: {array: {$each: [value], $position: 0}}}, {upsert: true, w: 1 }, function (err, res) { callback(err); }); } else { @@ -33,7 +33,7 @@ module.exports = function (db, module) { return callback(); } value = helpers.valueToString(value); - db.collection('objects').update({ _key: key }, { $push: { array: value } }, {upsert:true, w:1}, function (err, res) { + db.collection('objects').update({ _key: key }, { $push: { array: value } }, {upsert: true, w: 1}, function (err, res) { callback(err); }); }; @@ -87,7 +87,7 @@ module.exports = function (db, module) { return callback(); } - db.collection('objects').findOne({_key:key}, { array: 1}, function (err, data) { + db.collection('objects').findOne({_key: key}, { array: 1}, function (err, data) { if(err || !(data && data.array)) { return callback(err, []); } diff --git a/src/database/mongo/main.js b/src/database/mongo/main.js index 0aebaf75b2..49bb8453bf 100644 --- a/src/database/mongo/main.js +++ b/src/database/mongo/main.js @@ -76,7 +76,7 @@ module.exports = function (db, module) { module.rename = function (oldKey, newKey, callback) { callback = callback || helpers.noop; - db.collection('objects').update({_key: oldKey}, {$set:{_key: newKey}}, {multi: true}, function (err, res) { + db.collection('objects').update({_key: oldKey}, {$set: {_key: newKey}}, {multi: true}, function (err, res) { callback(err); }); }; diff --git a/src/database/mongo/sets.js b/src/database/mongo/sets.js index 262c0761ff..51c0070e3d 100644 --- a/src/database/mongo/sets.js +++ b/src/database/mongo/sets.js @@ -133,7 +133,7 @@ module.exports = function (db, module) { } value = helpers.valueToString(value); - db.collection('objects').find({_key: {$in : sets}, members: value}, {_id:0, members: 0}).toArray(function (err, result) { + db.collection('objects').find({_key: {$in: sets}, members: value}, {_id: 0, members: 0}).toArray(function (err, result) { if (err) { return callback(err); } @@ -205,7 +205,7 @@ module.exports = function (db, module) { module.setRemoveRandom = function (key, callback) { callback = callback || function () {}; - db.collection('objects').findOne({_key:key}, function (err, data) { + db.collection('objects').findOne({_key: key}, function (err, data) { if(err || !data) { return callback(err); } diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index 56c4a80688..23105bd44a 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -157,7 +157,7 @@ module.exports = function (db, module) { return callback(); } var pipeline = [ - { $match : { _key : { $in: keys } } } , + { $match: { _key: { $in: keys } } } , { $group: { _id: {_key: '$_key'}, count: { $sum: 1 } } }, { $project: { _id: 1, count: '$count' } }, ]; @@ -244,7 +244,7 @@ module.exports = function (db, module) { return callback(); } value = helpers.valueToString(value); - db.collection('objects').findOne({_key: key, value: value}, {fields:{_id: 0, score: 1}}, function (err, result) { + db.collection('objects').findOne({_key: key, value: value}, {fields: {_id: 0, score: 1}}, function (err, result) { callback(err, result ? result.score : null); }); }; @@ -254,7 +254,7 @@ module.exports = function (db, module) { return callback(); } value = helpers.valueToString(value); - db.collection('objects').find({_key:{$in:keys}, value: value}, {_id:0, _key:1, score: 1}).toArray(function (err, result) { + db.collection('objects').find({_key: {$in: keys}, value: value}, {_id: 0, _key: 1, score: 1}).toArray(function (err, result) { if (err) { return callback(err); } diff --git a/src/database/mongo/sorted/add.js b/src/database/mongo/sorted/add.js index 67caed682d..9172003a09 100644 --- a/src/database/mongo/sorted/add.js +++ b/src/database/mongo/sorted/add.js @@ -15,7 +15,7 @@ module.exports = function (db, module) { value = helpers.valueToString(value); - db.collection('objects').update({_key: key, value: value}, {$set: {score: parseFloat(score)}}, {upsert:true, w: 1}, function (err) { + db.collection('objects').update({_key: key, value: value}, {$set: {score: parseFloat(score)}}, {upsert: true, w: 1}, function (err) { if (err && err.message.startsWith('E11000 duplicate key error')) { return process.nextTick(module.sortedSetAdd, key, score, value, callback); } diff --git a/src/install.js b/src/install.js index 19532403a6..4935261c5a 100644 --- a/src/install.js +++ b/src/install.js @@ -263,12 +263,12 @@ function createAdmin(callback) { winston.warn("Passwords did not match, please try again"); return retryPassword(results); } - + if (results.password.length < meta.config.minimumPasswordLength) { winston.warn("Password too short, please try again"); return retryPassword(results); } - + var adminUid; async.waterfall([ function (next) { diff --git a/src/logger.js b/src/logger.js index 29138b2e4d..823c0599db 100644 --- a/src/logger.js +++ b/src/logger.js @@ -17,13 +17,13 @@ var opts = { /* * state used by Logger */ - express : { - app : {}, - set : 0, - ofn : null, + express: { + app: {}, + set: 0, + ofn: null, }, - streams : { - log : { f : process.stdout }, + streams: { + log: { f: process.stdout }, }, }; @@ -124,7 +124,7 @@ var opts = { /* * Always initialize "ofn" (original function) with the original logger function */ - opts.express.ofn = morgan('combined', {stream : opts.streams.log.f}); + opts.express.ofn = morgan('combined', {stream: opts.streams.log.f}); }; Logger.expressLogger = function (req,res,next) { diff --git a/src/meta/configs.js b/src/meta/configs.js index d21b36c6dc..084a4d1463 100644 --- a/src/meta/configs.js +++ b/src/meta/configs.js @@ -25,7 +25,7 @@ module.exports = function (Meta) { if (err) { return next(err); } - + config['cache-buster'] = 'v=' + (buster || Date.now()); Meta.config = config; diff --git a/src/meta/js.js b/src/meta/js.js index 4aaff6f7a9..722d6bdba0 100644 --- a/src/meta/js.js +++ b/src/meta/js.js @@ -89,7 +89,7 @@ module.exports = function (Meta) { }, }, }; - + Meta.js.linkModules = function (callback) { rimraf(path.join(__dirname, '../../build/public/src/modules'), function (err) { if (err) { diff --git a/src/reset.js b/src/reset.js index 43bf8b61b2..05a337869f 100644 --- a/src/reset.js +++ b/src/reset.js @@ -82,7 +82,7 @@ function resetSettings(callback) { function resetTheme(themeId, callback) { var meta = require('./meta'); var fs = require('fs'); - + fs.access('node_modules/' + themeId + '/package.json', function (err, fd) { if (err) { winston.warn('[reset] Theme `%s` is not installed on this forum', themeId); @@ -99,7 +99,7 @@ function resetTheme(themeId, callback) { } callback(); - }); + }); } }); } diff --git a/src/routes/index.js b/src/routes/index.js index 2869a90bdd..80079b5e91 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -154,7 +154,7 @@ module.exports = function (app, middleware, hotswapIds) { if (path.resolve(__dirname, '../../public/uploads') !== nconf.get('upload_path')) { statics.unshift({ route: '/assets/uploads', path: nconf.get('upload_path') }); } - + statics.forEach(function (obj) { app.use(relativePath + obj.route, express.static(obj.path, staticOptions)); }); @@ -180,7 +180,7 @@ module.exports = function (app, middleware, hotswapIds) { ]; app.use(relativePath, function (req, res, next) { if (deprecatedPaths.some(function (path) { return req.path.startsWith(path); })) { - winston.warn('[deprecated] Accessing `' + req.path.slice(1) + '` from `/` is deprecated. ' + + winston.warn('[deprecated] Accessing `' + req.path.slice(1) + '` from `/` is deprecated. ' + 'Use `/assets' + req.path + '` to access this file.'); res.redirect(relativePath + '/assets' + req.path + '?' + meta.config['cache-buster']); } else { diff --git a/src/socket.io/user/profile.js b/src/socket.io/user/profile.js index ed7b868ba2..ef62090939 100644 --- a/src/socket.io/user/profile.js +++ b/src/socket.io/user/profile.js @@ -37,7 +37,7 @@ module.exports = function (SocketUser) { }, ], callback); }; - + SocketUser.uploadCroppedPicture = function (socket, data, callback) { if (!socket.uid) { return callback(new Error('[[error:no-privileges]]')); diff --git a/src/topics/recent.js b/src/topics/recent.js index 4c68ceff9b..8defa37585 100644 --- a/src/topics/recent.js +++ b/src/topics/recent.js @@ -19,7 +19,7 @@ module.exports = function (Topics) { Topics.getRecentTopics = function (cid, uid, start, stop, filter, callback) { var recentTopics = { - nextStart : 0, + nextStart: 0, topics: [], }; diff --git a/src/topics/tools.js b/src/topics/tools.js index 8edf72142e..da29498ec4 100644 --- a/src/topics/tools.js +++ b/src/topics/tools.js @@ -225,7 +225,7 @@ module.exports = function (Topics) { var uniqueCids = _.unique(topicData.map(function (topicData) { return topicData && parseInt(topicData.cid, 10); })); - + if (uniqueCids.length > 1 || !uniqueCids.length || !uniqueCids[0]) { return next(new Error('[[error:invalid-data]]')); } @@ -249,7 +249,7 @@ module.exports = function (Topics) { setImmediate(next); } }, - ], next); + ], next); }, next); }, ], callback); diff --git a/src/topics/unread.js b/src/topics/unread.js index 717cdc8ef5..e76ee22fda 100644 --- a/src/topics/unread.js +++ b/src/topics/unread.js @@ -28,7 +28,7 @@ module.exports = function (Topics) { var unreadTopics = { showSelect: true, - nextStart : 0, + nextStart: 0, topics: [], }; diff --git a/src/user.js b/src/user.js index 3d75eca479..13dd352b1a 100644 --- a/src/user.js +++ b/src/user.js @@ -276,7 +276,7 @@ var meta = require('./meta'); callback(); }); }; - + User.isAdminOrGlobalModOrSelf = function (callerUid, uid, callback) { if (parseInt(callerUid, 10) === parseInt(uid, 10)) { return callback(); diff --git a/src/user/bans.js b/src/user/bans.js index 7af1e36cf0..964a70669d 100644 --- a/src/user/bans.js +++ b/src/user/bans.js @@ -75,7 +75,7 @@ module.exports = function (User) { async.parallel([ async.apply(db.sortedSetRemove.bind(db), 'users:banned:expire', uid), async.apply(db.sortedSetRemove.bind(db), 'users:banned', uid), - async.apply(User.setUserFields, uid, {banned:0, 'banned:expire': 0}), + async.apply(User.setUserFields, uid, {banned: 0, 'banned:expire': 0}), ], function (err) { next(err, false); }); diff --git a/src/user/jobs.js b/src/user/jobs.js index c45fa03dd8..63e6ef8b4b 100644 --- a/src/user/jobs.js +++ b/src/user/jobs.js @@ -63,7 +63,7 @@ module.exports = function (User) { callback(); } - + }; }; diff --git a/src/user/picture.js b/src/user/picture.js index 379834f914..acea101294 100644 --- a/src/user/picture.js +++ b/src/user/picture.js @@ -222,7 +222,7 @@ module.exports = function (User) { } }); }; - + User.uploadCroppedPicture = function (data, callback) { var keepAllVersions = parseInt(meta.config['profile:keepAllUserImages'], 10) === 1; var url; @@ -231,7 +231,7 @@ module.exports = function (User) { if (!data.imageData) { return callback(new Error('[[error:invalid-data]]')); } - + async.waterfall([ function (next) { var size = data.file ? data.file.size : data.imageData.length; diff --git a/src/user/settings.js b/src/user/settings.js index d76fc92392..5868e1f45c 100644 --- a/src/user/settings.js +++ b/src/user/settings.js @@ -120,7 +120,7 @@ module.exports = function (User) { restrictChat: data.restrictChat, topicSearchEnabled: data.topicSearchEnabled, delayImageLoading: data.delayImageLoading, - homePageRoute : ((data.homePageRoute === 'custom' ? data.homePageCustom : data.homePageRoute) || '').replace(/^\//, ''), + homePageRoute: ((data.homePageRoute === 'custom' ? data.homePageCustom : data.homePageRoute) || '').replace(/^\//, ''), scrollToMyPost: data.scrollToMyPost, notificationSound: data.notificationSound, incomingChatSound: data.incomingChatSound, diff --git a/test/database/hash.js b/test/database/hash.js index c560b37a44..41428818f0 100644 --- a/test/database/hash.js +++ b/test/database/hash.js @@ -161,7 +161,7 @@ describe('Hash methods', function () { describe('getObjectsFields()', function () { before(function (done) { async.parallel([ - async.apply(db.setObject, 'testObject8', {name: 'baris', age:99}), + async.apply(db.setObject, 'testObject8', {name: 'baris', age: 99}), async.apply(db.setObject, 'testObject9', {name: 'ginger', age: 3}), ], done); }); diff --git a/test/mocks/databasemock.js b/test/mocks/databasemock.js index 256c8117d1..5a87ab69f3 100644 --- a/test/mocks/databasemock.js +++ b/test/mocks/databasemock.js @@ -5,7 +5,7 @@ (function (module) { 'use strict'; - + var async = require('async'); var winston = require('winston'); diff --git a/test/translator.js b/test/translator.js index e24754d8e8..185f8235f3 100644 --- a/test/translator.js +++ b/test/translator.js @@ -173,7 +173,7 @@ describe('Translator.create()', function () { describe('Translator modules', function () { it('should work before registered', function () { var translator = Translator.create(); - + Translator.registerModule('test-custom-integer-format', function (lang) { return function (key, args) { var num = parseInt(args[0], 10) || 0; diff --git a/test/user.js b/test/user.js index 96d6cfbbfc..958f300113 100644 --- a/test/user.js +++ b/test/user.js @@ -155,7 +155,7 @@ describe('User', function () { it('should not error if a non-newbie user posts if the last post time is 10 < 30 seconds', function (done) { User.setUserFields(testUid, { - lastposttime: +new Date() - (20 * 1000), + lastposttime: +new Date() - (20 * 1000), reputation: 10, }, function () { Topics.post({ @@ -508,7 +508,7 @@ describe('User', function () { done(); }); }); - + it('should return error if profile image uploads disabled', function (done) { meta.config.allowProfileImageUploads = 0; var path = require('path'); @@ -522,7 +522,7 @@ describe('User', function () { done(); }); }); - + it('should return error if profile image is too big', function (done) { meta.config.allowProfileImageUploads = 1; var path = require('path'); @@ -536,7 +536,7 @@ describe('User', function () { done(); }); }); - + it('should return error if profile image file has no extension', function (done) { var path = require('path'); var picture = { @@ -549,7 +549,7 @@ describe('User', function () { done(); }); }); - + it('should return error if no plugins listening for filter:uploadImage when uploading from url', function (done) { var url = nconf.get('url') + '/logo.png'; User.uploadFromUrl(uid, url, function (err, uploadedPicture) { @@ -557,51 +557,51 @@ describe('User', function () { done(); }); }); - + it('should return error if the extension is invalid when uploading from url', function (done) { var url = nconf.get('url') + '/favicon.ico'; - + function filterMethod(data, callback) { data.foo += 5; callback(null, data); } plugins.registerHook('test-plugin', {hook: 'filter:uploadImage', method: filterMethod}); - + User.uploadFromUrl(uid, url, function (err, uploadedPicture) { assert.equal(err.message, '[[error:invalid-image-extension]]'); done(); }); }); - + it('should return error if the file is too big when uploading from url', function (done) { var url = nconf.get('url') + '/logo.png'; meta.config.maximumProfileImageSize = 1; - + function filterMethod(data, callback) { data.foo += 5; callback(null, data); } plugins.registerHook('test-plugin', {hook: 'filter:uploadImage', method: filterMethod}); - + User.uploadFromUrl(uid, url, function (err, uploadedPicture) { assert.equal(err.message, '[[error:file-too-big, ' + meta.config.maximumProfileImageSize + ']]'); done(); }); }); - + it('should upload picture when uploading from url', function (done) { var url = nconf.get('url') + '/logo.png'; meta.config.maximumProfileImageSize = ''; - + function filterMethod(data, callback) { data.foo += 5; callback(null, {url: url}); } plugins.registerHook('test-plugin', {hook: 'filter:uploadImage', method: filterMethod}); - + User.uploadFromUrl(uid, url, function (err, uploadedPicture) { assert.ifError(err); assert.equal(uploadedPicture.url, url); From 2e031f3759e6751d04170a218122ad73b91b5a09 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 01:31:47 -0700 Subject: [PATCH 17/60] ESlint comma-spacing --- .eslintrc | 21 +++++++++++++-------- app.js | 4 ++-- install/web.js | 2 +- public/src/admin/appearance/skins.js | 2 +- public/src/admin/general/dashboard.js | 8 ++++---- public/src/client/topic/votes.js | 2 +- public/src/modules/helpers.js | 2 +- public/src/modules/postSelect.js | 2 +- public/src/utils.js | 2 +- src/controllers/admin/plugins.js | 2 +- src/database/mongo/sets.js | 2 +- src/database/mongo/sorted.js | 2 +- src/groups/search.js | 2 +- src/logger.js | 6 +++--- src/messaging.js | 4 ++-- src/privileges/categories.js | 4 ++-- src/routes/index.js | 2 +- src/user/notifications.js | 2 +- test/categories.js | 2 +- test/database/sets.js | 8 ++++---- test/database/sorted.js | 10 +++++----- test/mocks/databasemock.js | 2 +- test/topics.js | 6 +++--- test/user.js | 4 ++-- 24 files changed, 54 insertions(+), 49 deletions(-) diff --git a/.eslintrc b/.eslintrc index cea249bb96..7fc8f5ecf8 100644 --- a/.eslintrc +++ b/.eslintrc @@ -2,6 +2,7 @@ "extends": "airbnb", "rules": { + // Customized "handle-callback-err": [ "error","^(e$|(e|(.*(_e|E)))rr)" ], "comma-dangle": ["error", { "arrays": "always-multiline", @@ -10,17 +11,22 @@ "exports": "always-multiline", "functions": "never" }], + "no-empty": ["error", { "allowEmptyCatch": true }], + "no-underscore-dangle": "off", + "newline-per-chained-call": "off", + "no-console": "off", + + // ES6 + "prefer-rest-params": "off", + "prefer-spread": "off", + + // TODO "import/no-unresolved": "off", "import/no-extraneous-dependencies": "off", "import/no-dynamic-require": "off", "import/newline-after-import": "off", "no-bitwise": "off", - "newline-per-chained-call": "off", - "no-console": "off", - "no-empty": ["error", { "allowEmptyCatch": true }], - "prefer-rest-params": "off", - "prefer-spread": "off", - "no-underscore-dangle": "off", + "global-require": "off", // "linebreak-style": "off", // "one-var": "off", @@ -94,8 +100,7 @@ "quotes": "off", "keyword-spacing": "off", "no-mixed-operators": "off", - "comma-spacing": "off", - "global-require": "off", + // "comma-spacing": "off", // "no-trailing-spaces": "off", // "key-spacing": "off", // "no-multiple-empty-lines": "off", diff --git a/app.js b/app.js index c85e30ef0a..5a88f999b1 100644 --- a/app.js +++ b/app.js @@ -36,7 +36,7 @@ winston.add(winston.transports.Console, { colorize: true, timestamp: function () { var date = new Date(); - return (!!nconf.get('json-logging')) ? date.toJSON() : date.getDate() + '/' + (date.getMonth() + 1) + ' ' + date.toTimeString().substr(0,8) + ' [' + global.process.pid + ']'; + return (!!nconf.get('json-logging')) ? date.toJSON() : date.getDate() + '/' + (date.getMonth() + 1) + ' ' + date.toTimeString().substr(0, 8) + ' [' + global.process.pid + ']'; }, level: nconf.get('log-level') || (global.env === 'production' ? 'info' : 'verbose'), json: (!!nconf.get('json-logging')), @@ -155,7 +155,7 @@ function setup() { var separator = ' '; if (process.stdout.columns > 10) { - for(var x = 0,cols = process.stdout.columns - 10; x < cols; x += 1) { + for(var x = 0, cols = process.stdout.columns - 10; x < cols; x += 1) { separator += '='; } } diff --git a/install/web.js b/install/web.js index 2b086dc890..86dbd18013 100644 --- a/install/web.js +++ b/install/web.js @@ -17,7 +17,7 @@ winston.add(winston.transports.File, { colorize: true, timestamp: function () { var date = new Date(); - return date.getDate() + '/' + (date.getMonth() + 1) + ' ' + date.toTimeString().substr(0,5) + ' [' + global.process.pid + ']'; + return date.getDate() + '/' + (date.getMonth() + 1) + ' ' + date.toTimeString().substr(0, 5) + ' [' + global.process.pid + ']'; }, level: 'verbose', }); diff --git a/public/src/admin/appearance/skins.js b/public/src/admin/appearance/skins.js index f7de9997a7..d6cc31ea8a 100644 --- a/public/src/admin/appearance/skins.js +++ b/public/src/admin/appearance/skins.js @@ -73,7 +73,7 @@ define('admin/appearance/skins', ['translator'], function (translator) { if (config['theme:src']) { var skin = config['theme:src'] .match(/latest\/(\S+)\/bootstrap.min.css/)[1] - .replace(/(^|\s)([a-z])/g , function (m,p1,p2) { return p1 + p2.toUpperCase(); }); + .replace(/(^|\s)([a-z])/g, function (m, p1, p2) { return p1 + p2.toUpperCase(); }); highlightSelectedTheme(skin); } diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index b598618d58..1c10cc4df4 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -126,7 +126,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s topics: null, }; - var topicColors = ["#bf616a","#5B90BF","#d08770","#ebcb8b","#a3be8c","#96b5b4","#8fa1b3","#b48ead","#ab7967","#46BFBD"]; + var topicColors = ["#bf616a", "#5B90BF", "#d08770", "#ebcb8b", "#a3be8c", "#96b5b4", "#8fa1b3", "#b48ead", "#ab7967", "#46BFBD"]; var usedTopicColors = []; // from chartjs.org @@ -138,7 +138,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s usePound = true; } - var num = parseInt(col,16); + var num = parseInt(col, 16); var r = (num >> 16) + amt; @@ -196,7 +196,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s pointHoverBackgroundColor: "#fff", pointBorderColor: "#fff", pointHoverBorderColor: "rgba(220,220,220,1)", - data: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], }, { label: translations[1], @@ -206,7 +206,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s pointHoverBackgroundColor: "#fff", pointBorderColor: "#fff", pointHoverBorderColor: "rgba(151,187,205,1)", - data: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], }, ], }; diff --git a/public/src/client/topic/votes.js b/public/src/client/topic/votes.js index 53b898ee67..ea0ad4291e 100644 --- a/public/src/client/topic/votes.js +++ b/public/src/client/topic/votes.js @@ -66,7 +66,7 @@ define('forum/topic/votes', ['components', 'translator'], function (components, var post = button.parents('[data-pid]'); var currentState = post.find(className).length; - socket.emit(currentState ? 'posts.unvote' : method , { + socket.emit(currentState ? 'posts.unvote' : method, { pid: post.attr('data-pid'), room_id: app.currentRoom, }, function (err) { diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js index 0fcde40a07..fb56e904f6 100644 --- a/public/src/modules/helpers.js +++ b/public/src/modules/helpers.js @@ -56,7 +56,7 @@ helpers.stringify = function (obj) { // Turns the incoming object into a JSON string - return JSON.stringify(obj).replace(/&/gm,"&").replace(//gm,">").replace(/"/g, '"'); + return JSON.stringify(obj).replace(/&/gm, "&").replace(//gm, ">").replace(/"/g, '"'); }; helpers.escape = function (str) { diff --git a/public/src/modules/postSelect.js b/public/src/modules/postSelect.js index 59cb6a3043..21629786a7 100644 --- a/public/src/modules/postSelect.js +++ b/public/src/modules/postSelect.js @@ -33,7 +33,7 @@ define('postSelect', ['components'], function (components) { } if (PostSelect.pids.length) { - PostSelect.pids.sort(function (a,b) { return a - b; }); + PostSelect.pids.sort(function (a, b) { return a - b; }); } callback(); } diff --git a/public/src/utils.js b/public/src/utils.js index 96c2dcd310..93b67dff5c 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -258,7 +258,7 @@ }, escapeHTML: function (raw) { - return raw.replace(/&/gm,"&").replace(//gm,">"); + return raw.replace(/&/gm, "&").replace(//gm, ">"); }, isAndroidBrowser: function () { diff --git a/src/controllers/admin/plugins.js b/src/controllers/admin/plugins.js index d339276286..84d0335059 100644 --- a/src/controllers/admin/plugins.js +++ b/src/controllers/admin/plugins.js @@ -33,7 +33,7 @@ pluginsController.get = function (req, res, next) { return pkgData.name; }); - res.render('admin/extend/plugins' , { + res.render('admin/extend/plugins', { installed: payload.compatible.filter(function (plugin) { return plugin.installed; }), diff --git a/src/database/mongo/sets.js b/src/database/mongo/sets.js index 51c0070e3d..b10682e8d5 100644 --- a/src/database/mongo/sets.js +++ b/src/database/mongo/sets.js @@ -100,7 +100,7 @@ module.exports = function (db, module) { } value = helpers.valueToString(value); - db.collection('objects').findOne({_key: key, members: value}, {_id: 0, members: 0},function (err, item) { + db.collection('objects').findOne({_key: key, members: value}, {_id: 0, members: 0}, function (err, item) { callback(err, item !== null && item !== undefined); }); }; diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index 23105bd44a..fb7815be68 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -157,7 +157,7 @@ module.exports = function (db, module) { return callback(); } var pipeline = [ - { $match: { _key: { $in: keys } } } , + { $match: { _key: { $in: keys } } }, { $group: { _id: {_key: '$_key'}, count: { $sum: 1 } } }, { $project: { _id: 1, count: '$count' } }, ]; diff --git a/src/groups/search.js b/src/groups/search.js index 893b687b68..0b7f672d0c 100644 --- a/src/groups/search.js +++ b/src/groups/search.js @@ -119,7 +119,7 @@ module.exports = function (Groups) { } }); - results.users.sort(function (a,b) { + results.users.sort(function (a, b) { if (a.isOwner && !b.isOwner) { return -1; } else if (!a.isOwner && b.isOwner) { diff --git a/src/logger.js b/src/logger.js index 823c0599db..ef908c5883 100644 --- a/src/logger.js +++ b/src/logger.js @@ -111,7 +111,7 @@ var opts = { /* * This monitor's when a user clicks "save" in the Logger section of the admin panel */ - Logger.setup_one(data.key,data.value); + Logger.setup_one(data.key, data.value); Logger.io_close(socket); Logger.io(socket); }; @@ -127,14 +127,14 @@ var opts = { opts.express.ofn = morgan('combined', {stream: opts.streams.log.f}); }; - Logger.expressLogger = function (req,res,next) { + Logger.expressLogger = function (req, res, next) { /* * The new express.logger * * This hijack allows us to turn logger on/off dynamically within express */ if(meta.config.loggerStatus > 0) { - return opts.express.ofn(req,res,next); + return opts.express.ofn(req, res, next); } else { return next(); } diff --git a/src/messaging.js b/src/messaging.js index 5078370b98..7e74f0bb3b 100644 --- a/src/messaging.js +++ b/src/messaging.js @@ -139,7 +139,7 @@ Messaging.getRecentChats = function (callerUid, uid, start, stop, callback) { uids = uids.filter(function (value) { return value && parseInt(value, 10) !== parseInt(uid, 10); }); - user.getUsersFields(uids, ['uid', 'username', 'userslug', 'picture', 'status', 'lastonline'] , next); + user.getUsersFields(uids, ['uid', 'username', 'userslug', 'picture', 'status', 'lastonline'], next); }); }, next); }, @@ -206,7 +206,7 @@ Messaging.getTeaser = function (uid, roomId, callback) { } teaser.timestampISO = utils.toISOString(teaser.timestamp); - user.getUserFields(teaser.fromuid, ['uid', 'username', 'userslug', 'picture', 'status', 'lastonline'] , next); + user.getUserFields(teaser.fromuid, ['uid', 'username', 'userslug', 'picture', 'status', 'lastonline'], next); }, function (user, next) { teaser.user = user; diff --git a/src/privileges/categories.js b/src/privileges/categories.js index bc95e4b528..3b3649ddf9 100644 --- a/src/privileges/categories.js +++ b/src/privileges/categories.js @@ -66,7 +66,7 @@ module.exports = function (privileges) { memberData.forEach(function (member) { member.privileges = {}; - for(var x = 0,numPrivs = userPrivileges.length; x < numPrivs; x += 1) { + for(var x = 0, numPrivs = userPrivileges.length; x < numPrivs; x += 1) { member.privileges[userPrivileges[x]] = memberSets[x].indexOf(parseInt(member.uid, 10)) !== -1; } }); @@ -117,7 +117,7 @@ module.exports = function (privileges) { var memberData = groupNames.map(function (member) { memberPrivs = {}; - for(var x = 0,numPrivs = groupPrivileges.length; x < numPrivs; x += 1) { + for(var x = 0, numPrivs = groupPrivileges.length; x < numPrivs; x += 1) { memberPrivs[groupPrivileges[x]] = memberSets[x].indexOf(member) !== -1; } return { diff --git a/src/routes/index.js b/src/routes/index.js index 80079b5e91..4d3eef927e 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -98,7 +98,7 @@ module.exports = function (app, middleware, hotswapIds) { var ensureLoggedIn = require('connect-ensure-login'); if (Array.isArray(hotswapIds) && hotswapIds.length) { - for(var idx,x = 0; x < hotswapIds.length; x += 1) { + for(var idx, x = 0; x < hotswapIds.length; x += 1) { idx = routers.push(express.Router()) - 1; routers[idx].hotswapId = hotswapIds[x]; } diff --git a/src/user/notifications.js b/src/user/notifications.js index 6c8f3a85c3..61dfc50f50 100644 --- a/src/user/notifications.js +++ b/src/user/notifications.js @@ -14,7 +14,7 @@ var privileges = require('../privileges'); UserNotifications.get = function (uid, callback) { if (!parseInt(uid, 10)) { - return callback(null , {read: [], unread: []}); + return callback(null, {read: [], unread: []}); } getNotifications(uid, 0, 9, function (err, notifications) { if (err) { diff --git a/test/categories.js b/test/categories.js index b1553df264..a2b699f7c1 100644 --- a/test/categories.js +++ b/test/categories.js @@ -299,7 +299,7 @@ describe('Categories', function () { }); }); - it('should get category data' , function (done) { + it('should get category data', function (done) { socketCategories.getCategory({uid: posterUid}, categoryObj.cid, function (err, data) { assert.ifError(err); assert.equal(categoryObj.cid, data.cid); diff --git a/test/database/sets.js b/test/database/sets.js index 7400fea70e..594af8d061 100644 --- a/test/database/sets.js +++ b/test/database/sets.js @@ -27,7 +27,7 @@ describe('Set methods', function () { describe('getSetMembers()', function () { before(function (done) { - db.setAdd('testSet2', [1,2,3,4,5], done); + db.setAdd('testSet2', [1, 2, 3, 4, 5], done); }); it('should return an empty set', function (done) { @@ -139,7 +139,7 @@ describe('Set methods', function () { describe('setCount()', function () { before(function (done) { - db.setAdd('testSet5', [1,2,3,4,5], done); + db.setAdd('testSet5', [1, 2, 3, 4, 5], done); }); it('should return the element count of set', function (done) { @@ -155,7 +155,7 @@ describe('Set methods', function () { describe('setsCount()', function () { before(function (done) { async.parallel([ - async.apply(db.setAdd, 'set5', [1,2,3,4,5]), + async.apply(db.setAdd, 'set5', [1, 2, 3, 4, 5]), async.apply(db.setAdd, 'set6', 1), async.apply(db.setAdd, 'set7', 2), ], done); @@ -211,7 +211,7 @@ describe('Set methods', function () { describe('setRemoveRandom()', function () { before(function (done) { - db.setAdd('testSet7', [1,2,3,4,5], done); + db.setAdd('testSet7', [1, 2, 3, 4, 5], done); }); it('should remove a random element from set', function (done) { diff --git a/test/database/sorted.js b/test/database/sorted.js index c38820f7fb..25830671d6 100644 --- a/test/database/sorted.js +++ b/test/database/sorted.js @@ -521,8 +521,8 @@ describe('Sorted Set methods', function () { describe('sortedSetsRemove()', function () { before(function (done) { async.parallel([ - async.apply(db.sortedSetAdd, 'sorted4', [1,2], ['value1', 'value2']), - async.apply(db.sortedSetAdd, 'sorted5', [1,2], ['value1', 'value3']), + async.apply(db.sortedSetAdd, 'sorted4', [1, 2], ['value1', 'value2']), + async.apply(db.sortedSetAdd, 'sorted5', [1, 2], ['value1', 'value3']), ], done); }); @@ -541,7 +541,7 @@ describe('Sorted Set methods', function () { describe('sortedSetsRemoveRangeByScore()', function () { before(function (done) { - db.sortedSetAdd('sorted6', [1,2,3,4,5], ['value1','value2','value3','value4','value5'], done); + db.sortedSetAdd('sorted6', [1, 2, 3, 4, 5], ['value1', 'value2', 'value3', 'value4', 'value5'], done); }); it('should remove elements with scores between min max inclusive', function (done) { @@ -561,10 +561,10 @@ describe('Sorted Set methods', function () { before(function (done) { async.parallel([ function (next) { - db.sortedSetAdd('interSet1', [1,2,3], ['value1', 'value2', 'value3'], next); + db.sortedSetAdd('interSet1', [1, 2, 3], ['value1', 'value2', 'value3'], next); }, function (next) { - db.sortedSetAdd('interSet2', [4,5,6], ['value2', 'value3', 'value5'], next); + db.sortedSetAdd('interSet2', [4, 5, 6], ['value2', 'value3', 'value5'], next); }, ], done); }); diff --git a/test/mocks/databasemock.js b/test/mocks/databasemock.js index 5a87ab69f3..39b88a5c5a 100644 --- a/test/mocks/databasemock.js +++ b/test/mocks/databasemock.js @@ -17,7 +17,7 @@ nconf.file({ file: path.join(__dirname, '../../config.json') }); nconf.defaults({ - base_dir: path.join(__dirname,'../..'), + base_dir: path.join(__dirname, '../..'), themes_path: path.join(__dirname, '../../node_modules'), upload_path: 'public/uploads', views_dir: path.join(__dirname, '../../build/public/templates'), diff --git a/test/topics.js b/test/topics.js index 15db5d1668..77ef54f5b7 100644 --- a/test/topics.js +++ b/test/topics.js @@ -473,7 +473,7 @@ describe('Topic\'s', function () { function (done) { topics.markUnread(newTid, uid, done); }, - ],done); + ], done); }); it('should not appear in the unread list', function (done) { @@ -626,7 +626,7 @@ describe('Topic\'s', function () { assert.equal(originalBookmark, bookmark); next(); }, - ],done); + ], done); }); it('should update the user\'s bookmark ', function (done) { @@ -646,7 +646,7 @@ describe('Topic\'s', function () { assert.equal(originalBookmark - 2, bookmark); next(); }, - ],done); + ], done); }); }); diff --git a/test/user.js b/test/user.js index 958f300113..9db04d8a74 100644 --- a/test/user.js +++ b/test/user.js @@ -52,7 +52,7 @@ describe('User', function () { describe('.create(), when created', function () { it('should be created properly', function (done) { - User.create({username: userData.username, password: userData.password, email: userData.email}, function (error,userId) { + User.create({username: userData.username, password: userData.password, email: userData.email}, function (error, userId) { assert.equal(error, null, 'was created with error'); assert.ok(userId); @@ -62,7 +62,7 @@ describe('User', function () { }); it('should have a valid email, if using an email', function (done) { - User.create({username: userData.username, password: userData.password, email: 'fakeMail'},function (err) { + User.create({username: userData.username, password: userData.password, email: 'fakeMail'}, function (err) { assert(err); assert.equal(err.message, '[[error:invalid-email]]'); done(); From a5a3f3089a30353986a900ae93cc7c435a9cff8e Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 01:51:11 -0700 Subject: [PATCH 18/60] ESlint no-mixed-operators --- .eslintrc | 3 ++- loader.js | 2 +- public/src/admin/admin.js | 2 +- public/src/admin/manage/users.js | 2 +- public/src/client/account/header.js | 2 +- public/src/client/chats.js | 2 +- public/src/modules/chat.js | 2 +- public/src/modules/navigator.js | 2 +- public/src/modules/settings.js | 2 +- public/src/modules/settings/array.js | 2 +- public/src/modules/settings/object.js | 2 +- public/src/utils.js | 4 ++-- src/controllers/category.js | 2 +- src/controllers/topics.js | 2 +- src/image.js | 2 +- src/middleware/render.js | 2 +- src/posts/votes.js | 2 +- src/privileges/users.js | 2 +- src/topics/unread.js | 3 ++- src/user/email.js | 2 +- src/user/reset.js | 2 +- src/user/search.js | 2 +- 22 files changed, 25 insertions(+), 23 deletions(-) diff --git a/.eslintrc b/.eslintrc index 7fc8f5ecf8..30c2dddcff 100644 --- a/.eslintrc +++ b/.eslintrc @@ -15,6 +15,7 @@ "no-underscore-dangle": "off", "newline-per-chained-call": "off", "no-console": "off", + "no-mixed-operators": ["error", { "allowSamePrecedence": true }], // ES6 "prefer-rest-params": "off", @@ -99,7 +100,7 @@ "no-multi-spaces": "off", "quotes": "off", "keyword-spacing": "off", - "no-mixed-operators": "off", + // "no-mixed-operators": "off", // "comma-spacing": "off", // "no-trailing-spaces": "off", // "key-spacing": "off", diff --git a/loader.js b/loader.js index bcfad1b52c..a8e1bf712e 100644 --- a/loader.js +++ b/loader.js @@ -60,7 +60,7 @@ Loader.addWorkerEvents = function (worker) { Loader.timesStarted = 0; }, 10000); } else { - console.log(numProcs * 3 + ' restarts in 10 seconds, most likely an error on startup. Halting.'); + console.log((numProcs * 3) + ' restarts in 10 seconds, most likely an error on startup. Halting.'); process.exit(); } } diff --git a/public/src/admin/admin.js b/public/src/admin/admin.js index d492f7d831..45211d9934 100644 --- a/public/src/admin/admin.js +++ b/public/src/admin/admin.js @@ -216,7 +216,7 @@ function onOpeningMenu() { $('#header').css({ - top: $('#panel').position().top * -1 + 'px', + top: ($('#panel').position().top * -1) + 'px', position: 'absolute', }); } diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js index 5e3dddf19a..34cd2476cd 100644 --- a/public/src/admin/manage/users.js +++ b/public/src/admin/manage/users.js @@ -99,7 +99,7 @@ define('admin/manage/users', ['translator'], function (translator) { data[cur.name] = cur.value; return data; }, {}); - var until = formData.length ? (Date.now() + formData.length * 1000 * 60 * 60 * (parseInt(formData.unit, 10) ? 24 : 1)) : 0; + var until = formData.length ? (Date.now() + (formData.length * 1000 * 60 * 60 * (parseInt(formData.unit, 10) ? 24 : 1))) : 0; socket.emit('user.banUsers', { uids: uids, until: until, reason: formData.reason }, done('[[admin/manage/users:alerts.ban-success]]', '.ban', true)); }, }, diff --git a/public/src/client/account/header.js b/public/src/client/account/header.js index 9e453e8203..33756e5b6c 100644 --- a/public/src/client/account/header.js +++ b/public/src/client/account/header.js @@ -129,7 +129,7 @@ define('forum/account/header', [ data[cur.name] = cur.value; return data; }, {}); - var until = parseInt(formData.length, 10) ? (Date.now() + formData.length * 1000 * 60 * 60 * (parseInt(formData.unit, 10) ? 24 : 1)) : 0; + var until = parseInt(formData.length, 10) ? (Date.now() + (formData.length * 1000 * 60 * 60 * (parseInt(formData.unit, 10) ? 24 : 1))) : 0; socket.emit('user.banUsers', { uids: [ajaxify.data.theirid], until: until, reason: formData.reason || '' }, function (err) { if (err) { diff --git a/public/src/client/chats.js b/public/src/client/chats.js index d05e9d2e99..82a4354c39 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -355,7 +355,7 @@ define('forum/chats', [ messagesList.height($(window).height() - (fromTop + inputHeight + (margin * 4))); components.get('chat/recent').height($('.expanded-chat').height() - (searchHeight + searchListHeight)); - $('[component="chat/search/list"]').css('max-height', components.get('chat/recent').height() / 2 + 'px'); + $('[component="chat/search/list"]').css('max-height', (components.get('chat/recent').height() / 2) + 'px'); } Chats.setActive(); diff --git a/public/src/modules/chat.js b/public/src/modules/chat.js index f2e15c57b5..e5d82ba4aa 100644 --- a/public/src/modules/chat.js +++ b/public/src/modules/chat.js @@ -298,7 +298,7 @@ define('chat', [ hideAfter = true; } chatModal.css('left', Math.max(0, (($(window).width() - $(chatModal).outerWidth()) / 2) + $(window).scrollLeft()) + 'px'); - chatModal.css('top', Math.max(0, $(window).height() / 2 - $(chatModal).outerHeight() / 2) + 'px'); + chatModal.css('top', Math.max(0, ($(window).height() / 2) - ($(chatModal).outerHeight() / 2)) + 'px'); if (hideAfter) { chatModal.addClass('hide'); diff --git a/public/src/modules/navigator.js b/public/src/modules/navigator.js index b6f7480027..62d5bbb788 100644 --- a/public/src/modules/navigator.js +++ b/public/src/modules/navigator.js @@ -114,7 +114,7 @@ define('navigator', ['forum/pagination', 'components'], function (pagination, co var scrollTop = $(window).scrollTop(); var windowHeight = $(window).height(); var documentHeight = $(document).height(); - var middleOfViewport = scrollTop + windowHeight / 2; + var middleOfViewport = scrollTop + (windowHeight / 2); var previousDistance = Number.MAX_VALUE; els.each(function () { var distanceToMiddle = Math.abs(middleOfViewport - $(this).offset().top); diff --git a/public/src/modules/settings.js b/public/src/modules/settings.js index cc10a7cdf4..cb733b970a 100644 --- a/public/src/modules/settings.js +++ b/public/src/modules/settings.js @@ -171,7 +171,7 @@ define('settings', function () { if (trim && value != null && typeof value.trim === 'function') { value = value.trim(); } - if (empty || value !== void 0 && (value == null || value.length !== 0)) { + if (empty || (value !== void 0 && (value == null || value.length !== 0))) { return value; } else { return void 0; diff --git a/public/src/modules/settings/array.js b/public/src/modules/settings/array.js index 6957b85bc7..368574f68e 100644 --- a/public/src/modules/settings/array.js +++ b/public/src/modules/settings/array.js @@ -130,7 +130,7 @@ define('settings/array', function () { child = $(child); var val = helper.readValue(child); var empty = helper.isTrue(child.data('empty')); - if (empty || val !== void 0 && (val == null || val.length !== 0)) { + if (empty || (val !== void 0 && (val == null || val.length !== 0))) { return values.push(val); } }); diff --git a/public/src/modules/settings/object.js b/public/src/modules/settings/object.js index 11166607e7..8bf7e8400b 100644 --- a/public/src/modules/settings/object.js +++ b/public/src/modules/settings/object.js @@ -102,7 +102,7 @@ define('settings/object', function () { var val = helper.readValue(property); var prop = property.data('prop'); var empty = helper.isTrue(property.data('empty')); - if (empty || val !== void 0 && (val == null || val.length !== 0)) { + if (empty || (val !== void 0 && (val == null || val.length !== 0))) { return value[prop] = val; } }); diff --git a/public/src/utils.js b/public/src/utils.js index 93b67dff5c..c80d530b13 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -15,7 +15,7 @@ process.elapsedTimeSince = function (start) { var diff = process.hrtime(start); - return diff[0] * 1e3 + diff[1] / 1e6; + return (diff[0] * 1e3) + (diff[1] / 1e6); }; } else { @@ -27,7 +27,7 @@ generateUUID: function () { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = Math.random() * 16 | 0; - var v = c === 'x' ? r : (r & 0x3 | 0x8); + var v = c === 'x' ? r : ((r & 0x3) | 0x8); return v.toString(16); }); }, diff --git a/src/controllers/category.js b/src/controllers/category.js index 70e167b9c7..218c7c3144 100644 --- a/src/controllers/category.js +++ b/src/controllers/category.js @@ -87,7 +87,7 @@ categoryController.get = function (req, res, callback) { set = 'cid:' + cid + ':tids:posts'; } - var start = (currentPage - 1) * settings.topicsPerPage + topicIndex; + var start = ((currentPage - 1) * settings.topicsPerPage) + topicIndex; var stop = start + settings.topicsPerPage - 1; var payload = { diff --git a/src/controllers/topics.js b/src/controllers/topics.js index 4b5ef83245..12082fa32e 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -113,7 +113,7 @@ topicsController.get = function (req, res, callback) { currentPage = Math.max(1, Math.ceil(index / settings.postsPerPage)); } - var start = (currentPage - 1) * settings.postsPerPage + postIndex; + var start = ((currentPage - 1) * settings.postsPerPage) + postIndex; var stop = start + settings.postsPerPage - 1; topics.getTopicWithPosts(results.topic, set, req.uid, start, stop, reverse, next); diff --git a/src/image.js b/src/image.js index 54777d6c79..82d8886895 100644 --- a/src/image.js +++ b/src/image.js @@ -42,7 +42,7 @@ image.resizeImage = function (data, callback) { crop = async.apply(image.crop.bind(image), x, y, h * desiredRatio, h); } else { x = 0; // width is the smaller dimension here - y = Math.floor(h / 2 - (w * desiredRatio / 2)); + y = Math.floor((h / 2) - (w * desiredRatio / 2)); crop = async.apply(image.crop.bind(image), x, y, w, w * desiredRatio); } } else { diff --git a/src/middleware/render.js b/src/middleware/render.js index 8d2c96a4ee..3f565353a1 100644 --- a/src/middleware/render.js +++ b/src/middleware/render.js @@ -107,7 +107,7 @@ module.exports = function (middleware) { } function translate(str, req, res, next) { - var language = res.locals.config && res.locals.config.userLang || 'en-GB'; + var language = (res.locals.config && res.locals.config.userLang) || 'en-GB'; language = req.query.lang ? validator.escape(String(req.query.lang)) : language; translator.translate(str, language, function (translated) { next(null, translator.unescape(translated)); diff --git a/src/posts/votes.js b/src/posts/votes.js index 61ba87b919..d069f0f57a 100644 --- a/src/posts/votes.js +++ b/src/posts/votes.js @@ -162,7 +162,7 @@ module.exports = function (Posts) { var hook; var current = voteStatus.upvoted ? 'upvote' : 'downvote'; - if (voteStatus.upvoted && command === 'downvote' || voteStatus.downvoted && command === 'upvote') { // e.g. User *has* upvoted, and clicks downvote + if ((voteStatus.upvoted && command === 'downvote') || (voteStatus.downvoted && command === 'upvote')) { // e.g. User *has* upvoted, and clicks downvote hook = command; } else if (voteStatus.upvoted || voteStatus.downvoted) { // e.g. User *has* upvoted, clicks upvote (so we "unvote") hook = 'unvote'; diff --git a/src/privileges/users.js b/src/privileges/users.js index 94426d154c..5dd26f5189 100644 --- a/src/privileges/users.js +++ b/src/privileges/users.js @@ -128,7 +128,7 @@ module.exports = function (privileges) { if (err) { return callback(err); } - if (Array.isArray(uid) && !Array.isArray(data.isModerator) || Array.isArray(cid) && !Array.isArray(data.isModerator)) { + if ((Array.isArray(uid) || Array.isArray(cid)) && !Array.isArray(data.isModerator)) { return callback(new Error('filter:user.isModerator - i/o mismatch')); } diff --git a/src/topics/unread.js b/src/topics/unread.js index e76ee22fda..17c5b701e0 100644 --- a/src/topics/unread.js +++ b/src/topics/unread.js @@ -64,7 +64,8 @@ module.exports = function (Topics) { }; Topics.unreadCutoff = function () { - return Date.now() - (parseInt(meta.config.unreadCutoff, 10) || 2) * 86400000; + var cutoff = parseInt(meta.config.unreadCutoff, 10) || 2; + return Date.now() - (cutoff * 86400000); }; Topics.getUnreadTids = function (cid, uid, filter, callback) { diff --git a/src/user/email.js b/src/user/email.js index 05a3db8719..2e51da951a 100644 --- a/src/user/email.js +++ b/src/user/email.js @@ -57,7 +57,7 @@ var emailer = require('../emailer'); }, next); }, function (next) { - db.expireAt('confirm:' + confirm_code, Math.floor(Date.now() / 1000 + 60 * 60 * 24), next); + db.expireAt('confirm:' + confirm_code, Math.floor((Date.now() / 1000) + (60 * 60 * 24)), next); }, function (next) { user.getUserField(uid, 'username', next); diff --git a/src/user/reset.js b/src/user/reset.js index 9b3732c13e..90aa9f072e 100644 --- a/src/user/reset.js +++ b/src/user/reset.js @@ -48,7 +48,7 @@ var emailer = require('../emailer'); db.sortedSetScore('reset:issueDate:uid', uid, next); }, function (score, next) { - if (score > Date.now() - 1000 * 60) { + if (score > Date.now() - (1000 * 60)) { return next(new Error('[[error:cant-reset-password-more-than-once-a-minute]]')); } next(); diff --git a/src/user/search.js b/src/user/search.js index ee20b48c39..95e5b6ed29 100644 --- a/src/user/search.js +++ b/src/user/search.js @@ -156,7 +156,7 @@ module.exports = function (User) { }, function (users, next) { var diff = process.hrtime(start); - var timing = (diff[0] * 1e3 + diff[1] / 1e6).toFixed(1); + var timing = ((diff[0] * 1e3) + (diff[1] / 1e6)).toFixed(1); next(null, {timing: timing, users: users}); }, ], callback); From 604358ecc4cb3ffeeec765b1e876726e5015f360 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 01:52:56 -0700 Subject: [PATCH 19/60] ESlint keyword-spacing, no-multi-spaces --- .eslintrc | 4 ++-- app.js | 2 +- install/web.js | 2 +- loader.js | 2 +- minifier.js | 4 ++-- public/src/admin/admin.js | 2 +- public/src/admin/advanced/logs.js | 2 +- public/src/admin/appearance/themes.js | 2 +- public/src/admin/extend/widgets.js | 6 ++--- public/src/admin/general/dashboard.js | 6 ++--- public/src/admin/general/homepage.js | 2 +- public/src/admin/manage/categories.js | 8 +++---- public/src/admin/manage/category.js | 4 ++-- public/src/admin/manage/flags.js | 2 +- public/src/admin/manage/group.js | 2 +- public/src/admin/manage/groups.js | 2 +- public/src/admin/manage/users.js | 4 ++-- public/src/admin/settings.js | 2 +- public/src/app.js | 2 +- public/src/client/categories.js | 2 +- public/src/client/category.js | 4 ++-- public/src/client/category/tools.js | 8 +++---- public/src/client/chats.js | 2 +- public/src/client/groups/details.js | 2 +- public/src/client/reset.js | 2 +- public/src/client/tag.js | 2 +- public/src/client/topic/events.js | 4 ++-- public/src/client/unread.js | 12 +++++----- public/src/client/users.js | 2 +- public/src/modules/alerts.js | 6 ++--- public/src/modules/helpers.js | 6 ++--- public/src/modules/notifications.js | 2 +- public/src/modules/pictureCropper.js | 4 ++-- public/src/modules/postSelect.js | 2 +- public/src/modules/search.js | 4 ++-- public/src/modules/settings.js | 2 +- public/src/modules/topicSelect.js | 4 ++-- public/src/overrides.js | 8 +++---- public/src/sockets.js | 2 +- public/src/utils.js | 18 +++++++-------- src/analytics.js | 2 +- src/controllers/admin/groups.js | 2 +- src/controllers/admin/info.js | 2 +- src/controllers/admin/uploads.js | 2 +- src/controllers/tags.js | 2 +- src/controllers/topics.js | 2 +- src/database/mongo/hash.js | 10 ++++---- src/database/mongo/helpers.js | 6 ++--- src/database/mongo/list.js | 4 ++-- src/database/mongo/sets.js | 14 +++++------ src/database/mongo/sorted.js | 8 +++---- src/database/mongo/sorted/add.js | 4 ++-- src/database/mongo/sorted/intersect.js | 2 +- src/database/mongo/sorted/union.js | 2 +- src/database/redis/hash.js | 2 +- src/database/redis/main.js | 2 +- src/database/redis/sorted.js | 10 ++++---- src/database/redis/sorted/add.js | 4 ++-- src/database/redis/sorted/intersect.js | 2 +- src/database/redis/sorted/remove.js | 2 +- src/database/redis/sorted/union.js | 2 +- src/events.js | 2 +- src/file.js | 2 +- src/groups/search.js | 4 ++-- src/groups/update.js | 2 +- src/hotswap.js | 2 +- src/install.js | 2 +- src/logger.js | 32 +++++++++++++------------- src/meta/build.js | 2 +- src/meta/dependencies.js | 2 +- src/meta/js.js | 4 ++-- src/meta/templates.js | 2 +- src/meta/themes.js | 2 +- src/middleware/index.js | 2 +- src/middleware/user.js | 2 +- src/notifications.js | 2 +- src/pagination.js | 2 +- src/password.js | 2 +- src/plugins.js | 4 ++-- src/plugins/hooks.js | 2 +- src/plugins/load.js | 4 ++-- src/posts/flags.js | 10 ++++---- src/posts/parse.js | 2 +- src/posts/summary.js | 2 +- src/posts/tools.js | 2 +- src/privileges/categories.js | 4 ++-- src/privileges/helpers.js | 2 +- src/pubsub.js | 2 +- src/routes/api.js | 2 +- src/routes/index.js | 4 ++-- src/sitemap.js | 2 +- src/socket.io/admin/user.js | 6 ++--- src/socket.io/categories.js | 2 +- src/socket.io/groups.js | 2 +- src/socket.io/posts/votes.js | 2 +- src/socket.io/topics/infinitescroll.js | 2 +- src/socket.io/user/picture.js | 2 +- src/start.js | 2 +- src/topics/posts.js | 4 ++-- src/topics/recent.js | 2 +- src/topics/tags.js | 2 +- src/topics/teaser.js | 2 +- src/topics/tools.js | 2 +- src/upgrade.js | 6 ++--- src/user/create.js | 2 +- src/user/data.js | 2 +- src/user/delete.js | 2 +- src/user/jobs.js | 2 +- src/user/notifications.js | 2 +- src/user/profile.js | 2 +- src/user/search.js | 4 ++-- src/widgets/index.js | 4 ++-- test/mocks/databasemock.js | 2 +- test/posts.js | 2 +- test/topics.js | 2 +- test/utils.js | 4 ++-- 116 files changed, 210 insertions(+), 210 deletions(-) diff --git a/.eslintrc b/.eslintrc index 30c2dddcff..023667f42e 100644 --- a/.eslintrc +++ b/.eslintrc @@ -97,9 +97,9 @@ "consistent-return": "off", "strict": "off", // "comma-dangle": "off", - "no-multi-spaces": "off", + // "no-multi-spaces": "off", "quotes": "off", - "keyword-spacing": "off", + // "keyword-spacing": "off", // "no-mixed-operators": "off", // "comma-spacing": "off", // "no-trailing-spaces": "off", diff --git a/app.js b/app.js index 5a88f999b1..3cdd03b50c 100644 --- a/app.js +++ b/app.js @@ -155,7 +155,7 @@ function setup() { var separator = ' '; if (process.stdout.columns > 10) { - for(var x = 0, cols = process.stdout.columns - 10; x < cols; x += 1) { + for (var x = 0, cols = process.stdout.columns - 10; x < cols; x += 1) { separator += '='; } } diff --git a/install/web.js b/install/web.js index 86dbd18013..1d5a755785 100644 --- a/install/web.js +++ b/install/web.js @@ -138,7 +138,7 @@ function compileLess(callback) { } less.render(style.toString(), function (err, css) { - if(err) { + if (err) { return winston.error('Unable to compile LESS: ', err); } diff --git a/loader.js b/loader.js index a8e1bf712e..9141ead0f8 100644 --- a/loader.js +++ b/loader.js @@ -106,7 +106,7 @@ function forkWorker(index, isPrimary) { var ports = getPorts(); var args = []; - if(!ports[index]) { + if (!ports[index]) { return console.log('[cluster] invalid port for worker : ' + index + ' ports: ' + ports.length); } diff --git a/minifier.js b/minifier.js index 8504312d22..77b0151e02 100644 --- a/minifier.js +++ b/minifier.js @@ -33,7 +33,7 @@ Minifier.js.minify = function (scripts, minify, callback) { }; process.on('message', function (payload) { - switch(payload.action) { + switch (payload.action) { case 'js': Minifier.js.minify(payload.scripts, payload.minify, function (minified/* , sourceMap*/) { process.send({ @@ -56,7 +56,7 @@ function minifyScripts(scripts, callback) { }); callback(minified.code/* , minified.map*/); - } catch(err) { + } catch (err) { process.send({ type: 'error', message: err.message, diff --git a/public/src/admin/admin.js b/public/src/admin/admin.js index 45211d9934..36fbb692f6 100644 --- a/public/src/admin/admin.js +++ b/public/src/admin/admin.js @@ -33,7 +33,7 @@ $(document).ready(function () { setupKeybindings(); - if(!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { + if (!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { require(['admin/modules/search'], function (search) { search.init(); }); diff --git a/public/src/admin/advanced/logs.js b/public/src/admin/advanced/logs.js index 054e1af77d..478544b271 100644 --- a/public/src/admin/advanced/logs.js +++ b/public/src/admin/advanced/logs.js @@ -14,7 +14,7 @@ define('admin/advanced/logs', function () { var btnEl = $(this); var action = btnEl.attr('data-action'); - switch(action) { + switch (action) { case 'reload': socket.emit('admin.logs.get', function (err, logs) { if (!err) { diff --git a/public/src/admin/appearance/themes.js b/public/src/admin/appearance/themes.js index d8f96c1c65..434deb4cd2 100644 --- a/public/src/admin/appearance/themes.js +++ b/public/src/admin/appearance/themes.js @@ -64,7 +64,7 @@ define('admin/appearance/themes', ['translator'], function (translator) { }); socket.emit('admin.themes.getInstalled', function (err, themes) { - if(err) { + if (err) { return app.alertError(err.message); } diff --git a/public/src/admin/extend/widgets.js b/public/src/admin/extend/widgets.js index 0b9707a5a5..6923b0437d 100644 --- a/public/src/admin/extend/widgets.js +++ b/public/src/admin/extend/widgets.js @@ -93,13 +93,13 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { if (data.hasOwnProperty(d)) { if (data[d].name) { if (widgetData[data[d].name]) { - if(!Array.isArray(widgetData[data[d].name])) { + if (!Array.isArray(widgetData[data[d].name])) { widgetData[data[d].name] = [ widgetData[data[d].name], ]; } widgetData[data[d].name].push(data[d].value); - }else{ + } else { widgetData[data[d].name] = data[d].value; } } @@ -209,7 +209,7 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { $.get(RELATIVE_PATH + '/api/admin/extend/widgets', function (data) { var areas = data.areas; - for(var i = 0; i < areas.length; i += 1) { + for (var i = 0; i < areas.length; i += 1) { var area = areas[i]; var widgetArea = $('#widgets .area[data-template="' + area.template + '"][data-location="' + area.location + '"]').find('.widget-area'); diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index 1c10cc4df4..e01964b253 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -143,12 +143,12 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s var r = (num >> 16) + amt; if (r > 255) r = 255; - else if (r < 0) r = 0; + else if (r < 0) r = 0; var b = ((num >> 8) & 0x00FF) + amt; if (b > 255) b = 255; - else if (b < 0) b = 0; + else if (b < 0) b = 0; var g = (num & 0x0000FF) + amt; @@ -291,7 +291,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s $('[data-action="updateGraph"]').on('click', function () { var until; - switch($(this).attr('data-until')) { + switch ($(this).attr('data-until')) { case 'last-month': var lastMonth = new Date(); lastMonth.setDate(lastMonth.getDate() - 30); diff --git a/public/src/admin/general/homepage.js b/public/src/admin/general/homepage.js index 7116422048..00626680b8 100644 --- a/public/src/admin/general/homepage.js +++ b/public/src/admin/general/homepage.js @@ -6,7 +6,7 @@ define('admin/general/homepage', ['admin/settings'], function (Settings) { function toggleCustomRoute() { if ($('[data-field="homePageRoute"]').val()) { $('#homePageCustom').hide(); - }else{ + } else { $('#homePageCustom').show(); } } diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js index c19a316060..0e443c14e1 100644 --- a/public/src/admin/manage/categories.js +++ b/public/src/admin/manage/categories.js @@ -8,7 +8,7 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri Categories.init = function () { socket.emit('admin.categories.getAll', function (error, payload) { - if(error) { + if (error) { return app.alertError(error.message); } @@ -128,14 +128,14 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri var isCategoryUpdate = (newCategoryId != -1); // Update needed? - if((e.newIndex != undefined && e.oldIndex != e.newIndex) || isCategoryUpdate) { + if ((e.newIndex != undefined && e.oldIndex != e.newIndex) || isCategoryUpdate) { var parentCategory = isCategoryUpdate ? sortables[newCategoryId] : sortables[e.from.dataset.cid]; var modified = {}; var i = 0; var list = parentCategory.toArray(); var len = list.length; - for(i; i < len; i += 1) { + for (i; i < len; i += 1) { modified[list[i]] = { order: (i + 1), }; @@ -187,7 +187,7 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri container.append(html); // Handle and children categories in this level have - for(var x = 0, numCategories = categories.length; x < numCategories; x += 1) { + for (var x = 0, numCategories = categories.length; x < numCategories; x += 1) { renderList(categories[x].children, $('li[data-cid="' + categories[x].cid + '"]'), categories[x].cid); } diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js index bf6f140f41..d6e47a6807 100644 --- a/public/src/admin/manage/category.js +++ b/public/src/admin/manage/category.js @@ -29,7 +29,7 @@ define('admin/manage/category', [ function save(e) { e.preventDefault(); - if(Object.keys(modified_categories).length) { + if (Object.keys(modified_categories).length) { socket.emit('admin.categories.update', modified_categories, function (err, results) { if (err) { return app.alertError(err.message); @@ -295,7 +295,7 @@ define('admin/manage/category', [ privs.push(el.getAttribute('data-privilege')); } }); - for(var x = 0, numPrivs = privs.length; x < numPrivs; x += 1) { + for (var x = 0, numPrivs = privs.length; x < numPrivs; x += 1) { var inputs = $('.privilege-table tr[data-group-name]:not([data-group-name="registered-users"],[data-group-name="guests"]) td[data-privilege="' + privs[x] + '"] input'); inputs.each(function (idx, el) { if (!el.checked) { diff --git a/public/src/admin/manage/flags.js b/public/src/admin/manage/flags.js index 77a8bb8e0d..09b68ed560 100644 --- a/public/src/admin/manage/flags.js +++ b/public/src/admin/manage/flags.js @@ -147,7 +147,7 @@ define('admin/manage/flags', [ el = $(el); if (source[pid]) { - for(var prop in source[pid]) { + for (var prop in source[pid]) { if (source[pid].hasOwnProperty(prop)) { el.find('[name="' + prop + '"]').val(source[pid][prop]); } diff --git a/public/src/admin/manage/group.js b/public/src/admin/manage/group.js index 93b73ac527..703c126171 100644 --- a/public/src/admin/manage/group.js +++ b/public/src/admin/manage/group.js @@ -113,7 +113,7 @@ define('admin/manage/group', [ var uid = userRow.attr('data-uid'); var action = btnEl.attr('data-action'); - switch(action) { + switch (action) { case 'toggleOwnership': socket.emit('groups.' + (isOwner ? 'rescind' : 'grant'), { toUid: uid, diff --git a/public/src/admin/manage/groups.js b/public/src/admin/manage/groups.js index 718437eb50..9f86c6a74d 100644 --- a/public/src/admin/manage/groups.js +++ b/public/src/admin/manage/groups.js @@ -63,7 +63,7 @@ define('admin/manage/groups', ['translator'], function (translator) { socket.emit('groups.delete', { groupName: groupName, }, function (err, data) { - if(err) { + if (err) { return app.alertError(err.message); } diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js index 34cd2476cd..e59cf28d5b 100644 --- a/public/src/admin/manage/users.js +++ b/public/src/admin/manage/users.js @@ -301,7 +301,7 @@ define('admin/manage/users', ['translator'], function (translator) { }; socket.emit('admin.user.createUser', user, function (err) { - if(err) { + if (err) { return errorEl.translateHtml('[[admin/manage/users:alerts.error-x, ' + err.message + ']]').removeClass('hide'); } @@ -322,7 +322,7 @@ define('admin/manage/users', ['translator'], function (translator) { } var $this = $(this); - var type = $this.attr('data-search-type'); + var type = $this.attr('data-search-type'); timeoutId = setTimeout(function () { $('.fa-spinner').removeClass('hidden'); diff --git a/public/src/admin/settings.js b/public/src/admin/settings.js index f38fac8bc5..041de4a40f 100644 --- a/public/src/admin/settings.js +++ b/public/src/admin/settings.js @@ -182,7 +182,7 @@ define('admin/settings', ['uploader'], function (uploader) { return callback(err); } - for(var field in data) { + for (var field in data) { if (data.hasOwnProperty(field)) { app.config[field] = data[field]; } diff --git a/public/src/app.js b/public/src/app.js index a1667eb0a7..792abfa76a 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -516,7 +516,7 @@ app.cacheBuster = null; $('[component="header/usercontrol"] [data-status]').off('click').on('click', function (e) { var status = $(this).attr('data-status'); socket.emit('user.setStatus', status, function (err) { - if(err) { + if (err) { return app.alertError(err.message); } $('[data-uid="' + app.user.uid + '"] [component="user/status"], [component="header/profilelink"] [component="user/status"]') diff --git a/public/src/client/categories.js b/public/src/client/categories.js index 57b77c3af3..40f93b0dc6 100644 --- a/public/src/client/categories.js +++ b/public/src/client/categories.js @@ -39,7 +39,7 @@ define('forum/categories', ['components', 'translator'], function (components, t parseAndTranslate([post], function (html) { html.hide(); - if(recentPosts.length === 0) { + if (recentPosts.length === 0) { html.appendTo(category); } else { html.insertBefore(recentPosts.first()); diff --git a/public/src/client/category.js b/public/src/client/category.js index aa46eb1405..21ebcda265 100644 --- a/public/src/client/category.js +++ b/public/src/client/category.js @@ -232,7 +232,7 @@ define('forum/category', [ topic.insertBefore(topics[x]); break; } - if(x === numTopics - 1) { + if (x === numTopics - 1) { topic.insertAfter(topics[x]); } } @@ -253,7 +253,7 @@ define('forum/category', [ function updateTopicCount() { socket.emit('categories.getTopicCount', ajaxify.data.cid, function (err, topicCount) { - if(err) { + if (err) { return app.alertError(err.message); } navigator.setCount(topicCount); diff --git a/public/src/client/category/tools.js b/public/src/client/category/tools.js index d376025b53..36955d25ff 100644 --- a/public/src/client/category/tools.js +++ b/public/src/client/category/tools.js @@ -180,8 +180,8 @@ define('forum/category/tools', [ } function isAny(method, tids) { - for(var i = 0; i < tids.length; i += 1) { - if(method(tids[i])) { + for (var i = 0; i < tids.length; i += 1) { + if (method(tids[i])) { return true; } } @@ -189,8 +189,8 @@ define('forum/category/tools', [ } function areAll(method, tids) { - for(var i = 0; i < tids.length; i += 1) { - if(!method(tids[i])) { + for (var i = 0; i < tids.length; i += 1) { + if (!method(tids[i])) { return false; } } diff --git a/public/src/client/chats.js b/public/src/client/chats.js index 82a4354c39..81b72f198b 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -98,7 +98,7 @@ define('forum/chats', [ return; } loading = true; - var start = parseInt($('.chat-content').children('[data-index]').first().attr('data-index'), 10) + 1; + var start = parseInt($('.chat-content').children('[data-index]').first().attr('data-index'), 10) + 1; socket.emit('modules.chats.getMessages', {roomId: roomId, uid: uid, start: start}, function (err, data) { if (err) { return app.alertError(err.message); diff --git a/public/src/client/groups/details.js b/public/src/client/groups/details.js index c4f8be092f..9e8191a20f 100644 --- a/public/src/client/groups/details.js +++ b/public/src/client/groups/details.js @@ -59,7 +59,7 @@ define('forum/groups/details', [ var uid = userRow.attr('data-uid'); var action = btnEl.attr('data-action'); - switch(action) { + switch (action) { case 'toggleOwnership': socket.emit('groups.' + (isOwner ? 'rescind' : 'grant'), { toUid: uid, diff --git a/public/src/client/reset.js b/public/src/client/reset.js index 84915b597c..ea8e1143f6 100644 --- a/public/src/client/reset.js +++ b/public/src/client/reset.js @@ -12,7 +12,7 @@ define('forum/reset', function () { $('#reset').on('click', function () { if (inputEl.val() && inputEl.val().indexOf('@') !== -1) { socket.emit('user.reset.send', inputEl.val(), function (err) { - if(err) { + if (err) { return app.alertError(err.message); } diff --git a/public/src/client/tag.js b/public/src/client/tag.js index 08774a0e36..2b74c17193 100644 --- a/public/src/client/tag.js +++ b/public/src/client/tag.js @@ -20,7 +20,7 @@ define('forum/tag', ['forum/recent', 'forum/infinitescroll'], function (recent, } function loadMoreTopics(direction) { - if(direction < 0 || !$('[component="category"]').length) { + if (direction < 0 || !$('[component="category"]').length) { return; } diff --git a/public/src/client/topic/events.js b/public/src/client/topic/events.js index 0f5b58c311..d88a0dee54 100644 --- a/public/src/client/topic/events.js +++ b/public/src/client/topic/events.js @@ -48,7 +48,7 @@ define('forum/topic/events', [ Events.init = function () { Events.removeListeners(); - for(var eventName in events) { + for (var eventName in events) { if (events.hasOwnProperty(eventName)) { socket.on(eventName, events[eventName]); } @@ -56,7 +56,7 @@ define('forum/topic/events', [ }; Events.removeListeners = function () { - for(var eventName in events) { + for (var eventName in events) { if (events.hasOwnProperty(eventName)) { socket.removeListener(eventName, events[eventName]); } diff --git a/public/src/client/unread.js b/public/src/client/unread.js index 73b392ab3e..18140185ef 100644 --- a/public/src/client/unread.js +++ b/public/src/client/unread.js @@ -23,11 +23,11 @@ define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', ' $('#markSelectedRead').on('click', function () { var tids = topicSelect.getSelectedTids(); - if(!tids.length) { + if (!tids.length) { return; } socket.emit('topics.markAsRead', tids, function (err) { - if(err) { + if (err) { return app.alertError(err.message); } @@ -37,7 +37,7 @@ define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', ' $('#markAllRead').on('click', function () { socket.emit('topics.markAllRead', function (err) { - if(err) { + if (err) { return app.alertError(err.message); } @@ -62,7 +62,7 @@ define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', ' var tids = getCategoryTids(cid); socket.emit('topics.markCategoryTopicsRead', cid, function (err) { - if(err) { + if (err) { return app.alertError(err.message); } @@ -85,7 +85,7 @@ define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', ' } function loadMoreTopics(direction) { - if(direction < 0 || !$('[component="category"]').length) { + if (direction < 0 || !$('[component="category"]').length) { return; } var params = utils.params(); @@ -118,7 +118,7 @@ define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', ' } function removeTids(tids) { - for(var i = 0; i < tids.length; i += 1) { + for (var i = 0; i < tids.length; i += 1) { components.get('category/topic', 'tid', tids[i]).remove(); } } diff --git a/public/src/client/users.js b/public/src/client/users.js index 5c6f23bc7b..0074af2e8f 100644 --- a/public/src/client/users.js +++ b/public/src/client/users.js @@ -65,7 +65,7 @@ define('forum/users', ['translator'], function (translator) { query.onlineOnly = true; } if (activeSection === 'banned') { - query.bannedOnly = true; + query.bannedOnly = true; } if (activeSection === 'flagged') { query.flaggedOnly = true; diff --git a/public/src/modules/alerts.js b/public/src/modules/alerts.js index 6c5595d889..3e55ce1ff1 100644 --- a/public/src/modules/alerts.js +++ b/public/src/modules/alerts.js @@ -30,7 +30,7 @@ define('alerts', ['translator', 'components'], function (translator, components) components.get('toaster/tray').prepend(alert); - if(typeof params.closefn === 'function') { + if (typeof params.closefn === 'function') { alert.find('button').on('click', function () { params.closefn(); fadeOut(alert); @@ -46,7 +46,7 @@ define('alerts', ['translator', 'components'], function (translator, components) alert .addClass('pointer') .on('click', function (e) { - if(!$(e.target).is('.close')) { + if (!$(e.target).is('.close')) { params.clickfn(); } fadeOut(alert); @@ -82,7 +82,7 @@ define('alerts', ['translator', 'components'], function (translator, components) alert .addClass('pointer') .on('click', function (e) { - if(!$(e.target).is('.close')) { + if (!$(e.target).is('.close')) { params.clickfn(); } fadeOut(alert); diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js index fb56e904f6..6f2d92fea6 100644 --- a/public/src/modules/helpers.js +++ b/public/src/modules/helpers.js @@ -170,7 +170,7 @@ helpers.spawnPrivilegeStates = function (member, privileges) { var states = []; - for(var priv in privileges) { + for (var priv in privileges) { if (privileges.hasOwnProperty(priv)) { states.push({ name: priv, @@ -214,7 +214,7 @@ helpers.userAgentIcons = function (data) { var icons = ''; - switch(data.platform) { + switch (data.platform) { case 'Linux': icons += ''; break; @@ -239,7 +239,7 @@ break; } - switch(data.browser) { + switch (data.browser) { case 'Chrome': icons += ''; break; diff --git a/public/src/modules/notifications.js b/public/src/modules/notifications.js index e8a6e0a97b..4bd786bb19 100644 --- a/public/src/modules/notifications.js +++ b/public/src/modules/notifications.js @@ -125,7 +125,7 @@ define('notifications', ['sounds', 'translator', 'components'], function (sound, }); translator.toggleTimeagoShorthand(); - for(var i = 0; i < notifs.length; i += 1) { + for (var i = 0; i < notifs.length; i += 1) { notifs[i].timeago = $.timeago(new Date(parseInt(notifs[i].datetime, 10))); } translator.toggleTimeagoShorthand(); diff --git a/public/src/modules/pictureCropper.js b/public/src/modules/pictureCropper.js index e70676b021..c558775c51 100644 --- a/public/src/modules/pictureCropper.js +++ b/public/src/modules/pictureCropper.js @@ -114,8 +114,8 @@ define('pictureCropper', ['translator', 'cropper'], function (translator, croppe return showAlert('error', '[[uploads:select-file-to-upload]]'); } - var file = fileInput[0].files[0]; - var reader = new FileReader(); + var file = fileInput[0].files[0]; + var reader = new FileReader(); var imageUrl; var imageType = file.type; diff --git a/public/src/modules/postSelect.js b/public/src/modules/postSelect.js index 21629786a7..c9c7aba08d 100644 --- a/public/src/modules/postSelect.js +++ b/public/src/modules/postSelect.js @@ -24,7 +24,7 @@ define('postSelect', ['components'], function (components) { if (newPid) { var index = PostSelect.pids.indexOf(newPid); - if(index === -1) { + if (index === -1) { PostSelect.pids.push(newPid); post.toggleClass('bg-success', true); } else { diff --git a/public/src/modules/search.js b/public/src/modules/search.js index f17baab285..e4e64288b2 100644 --- a/public/src/modules/search.js +++ b/public/src/modules/search.js @@ -18,7 +18,7 @@ define('search', ['navigator', 'translator'], function (nav, translator) { try { term = encodeURIComponent(term); - } catch(e) { + } catch (e) { return app.alertError('[[error:invalid-search-term]]'); } @@ -81,7 +81,7 @@ define('search', ['navigator', 'translator'], function (nav, translator) { Search.getSearchPreferences = function () { try { return JSON.parse(localStorage.getItem('search-preferences') || '{}'); - } catch(e) { + } catch (e) { return {}; } }; diff --git a/public/src/modules/settings.js b/public/src/modules/settings.js index cb733b970a..510fa8e822 100644 --- a/public/src/modules/settings.js +++ b/public/src/modules/settings.js @@ -459,7 +459,7 @@ define('settings', function () { } // Parse all values. If they are json, return json - for(var key in values) { + for (var key in values) { if (values.hasOwnProperty(key)) { try { values[key] = JSON.parse(values[key]); diff --git a/public/src/modules/topicSelect.js b/public/src/modules/topicSelect.js index 90949a140e..46d3a9ffe7 100644 --- a/public/src/modules/topicSelect.js +++ b/public/src/modules/topicSelect.js @@ -52,7 +52,7 @@ define('topicSelect', ['components'], function (components) { function selectRange(clickedTid) { - if(!lastSelected) { + if (!lastSelected) { lastSelected = $('[component="category/topic"]').first().find('[component="topic/select"]'); } @@ -70,7 +70,7 @@ define('topicSelect', ['components'], function (components) { end = tmp; } - for(var i = start; i <= end; i += 1) { + for (var i = start; i <= end; i += 1) { var topic = $('[component="category/topic"]').eq(i); toggleSelect(topic.find('[component="topic/select"]'), isSelected); } diff --git a/public/src/overrides.js b/public/src/overrides.js index 9bc95d68c6..899b2d194d 100644 --- a/public/src/overrides.js +++ b/public/src/overrides.js @@ -10,9 +10,9 @@ if ('undefined' !== typeof window) { $.fn.getCursorPosition = function () { var el = $(this).get(0); var pos = 0; - if('selectionStart' in el) { + if ('selectionStart' in el) { pos = el.selectionStart; - } else if('selection' in document) { + } else if ('selection' in document) { el.focus(); var Sel = document.selection.createRange(); var SelLength = document.selection.createRange().text.length; @@ -23,7 +23,7 @@ if ('undefined' !== typeof window) { }; $.fn.selectRange = function (start, end) { - if(!end) { + if (!end) { end = start; } return this.each(function () { @@ -95,7 +95,7 @@ if ('undefined' !== typeof window) { return el.namespace === 'bs.data-api.dropdown' && el.selector === undefined; }); - if(_clearMenus.length) { + if (_clearMenus.length) { _clearMenus = _clearMenus[0].handler; } diff --git a/public/src/sockets.js b/public/src/sockets.js index 80463cce0a..bc33dc9bbf 100644 --- a/public/src/sockets.js +++ b/public/src/sockets.js @@ -71,7 +71,7 @@ app.isConnected = false; var url_parts = window.location.pathname.slice(config.relative_path.length).split('/').slice(1); var room; - switch(url_parts[0]) { + switch (url_parts[0]) { case 'user': room = 'user/' + (ajaxify.data ? ajaxify.data.theirid : 0); break; diff --git a/public/src/utils.js b/public/src/utils.js index c80d530b13..3a0ba8fb2d 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -91,7 +91,7 @@ return ''; } str = str.replace(utils.trimRegex, ''); - if(utils.isLatin.test(str)) { + if (utils.isLatin.test(str)) { str = str.replace(utils.invalidLatinChars, '-'); } else { str = XRegExp.replace(str, utils.invalidUnicodeChars, '-'); @@ -211,12 +211,12 @@ makeNumberHumanReadable: function (num) { var n = parseInt(num, 10); - if(!n) { + if (!n) { return num; } if (n > 999999) { return (n / 1000000).toFixed(1) + 'm'; - } else if(n > 999) { + } else if (n > 999) { return (n / 1000).toFixed(1) + 'k'; } return n; @@ -314,7 +314,7 @@ var labels = []; var tmpDate; - for(var x = 29; x >= 0; x -= 1) { + for (var x = 29; x >= 0; x -= 1) { tmpDate = new Date(currentDay - (1000 * 60 * 60 * 24 * x)); labels.push(months[tmpDate.getMonth()] + ' ' + tmpDate.getDate()); } @@ -417,15 +417,15 @@ // get example: utils.props(A, 'a.b.c.foo.bar') // returns undefined without throwing a TypeError // credits to github.com/gkindel props: function (obj, props, value) { - if(obj === undefined) { + if (obj === undefined) { obj = window; } - if(props == null) { + if (props == null) { return undefined; } var i = props.indexOf('.'); - if(i == -1) { - if(value !== undefined) { + if (i == -1) { + if (value !== undefined) { obj[props] = value; } return obj[props]; @@ -433,7 +433,7 @@ var prop = props.slice(0, i); var newProps = props.slice(i + 1); - if(props !== undefined && !(obj[prop] instanceof Object)) { + if (props !== undefined && !(obj[prop] instanceof Object)) { obj[prop] = {}; } diff --git a/src/analytics.js b/src/analytics.js index 30708d5a22..d0c4dd5b25 100644 --- a/src/analytics.js +++ b/src/analytics.js @@ -86,7 +86,7 @@ Analytics.writeData = function (callback) { } if (Object.keys(counters).length > 0) { - for(var key in counters) { + for (var key in counters) { if (counters.hasOwnProperty(key)) { dbQueue.push(async.apply(db.sortedSetIncrBy, 'analytics:' + key, counters[key], today.getTime())); delete counters[key]; diff --git a/src/controllers/admin/groups.js b/src/controllers/admin/groups.js index ce2fdaba97..dbd0787818 100644 --- a/src/controllers/admin/groups.js +++ b/src/controllers/admin/groups.js @@ -28,7 +28,7 @@ groupsController.list = function (req, res, next) { pageCount = Math.ceil(groupNames.length / groupsPerPage); var start = (page - 1) * groupsPerPage; - var stop = start + groupsPerPage - 1; + var stop = start + groupsPerPage - 1; groupNames = groupNames.slice(start, stop + 1); groups.getGroupsData(groupNames, next); diff --git a/src/controllers/admin/info.js b/src/controllers/admin/info.js index 89160fb21f..3517472eba 100644 --- a/src/controllers/admin/info.js +++ b/src/controllers/admin/info.js @@ -79,7 +79,7 @@ function getNodeInfo(callback) { } function getGitInfo(callback) { - function get(cmd, callback) { + function get(cmd, callback) { exec(cmd, function (err, stdout) { if (err) { winston.error(err); diff --git a/src/controllers/admin/uploads.js b/src/controllers/admin/uploads.js index 3ed6f9b6f4..bce0d982d6 100644 --- a/src/controllers/admin/uploads.js +++ b/src/controllers/admin/uploads.js @@ -29,7 +29,7 @@ uploadsController.uploadCategoryPicture = function (req, res, next) { } if (validateUpload(req, res, next, uploadedFile, allowedImageTypes)) { - var filename = 'category-' + params.cid + path.extname(uploadedFile.name); + var filename = 'category-' + params.cid + path.extname(uploadedFile.name); uploadImage(filename, 'category', uploadedFile, req, res, next); } }; diff --git a/src/controllers/tags.js b/src/controllers/tags.js index 1be03d603e..3e364b38d1 100644 --- a/src/controllers/tags.js +++ b/src/controllers/tags.js @@ -8,7 +8,7 @@ var validator = require('validator'); var user = require('../user'); var topics = require('../topics'); var pagination = require('../pagination'); -var helpers = require('./helpers'); +var helpers = require('./helpers'); var tagsController = {}; diff --git a/src/controllers/topics.js b/src/controllers/topics.js index 12082fa32e..967747dba4 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -149,7 +149,7 @@ topicsController.get = function (req, res, callback) { }, function (topicData, next) { function findPost(index) { - for(var i = 0; i < topicData.posts.length; i += 1) { + for (var i = 0; i < topicData.posts.length; i += 1) { if (parseInt(topicData.posts[i].index, 10) === parseInt(index, 10)) { return topicData.posts[i]; } diff --git a/src/database/mongo/hash.js b/src/database/mongo/hash.js index c59d53c513..a82fb294b2 100644 --- a/src/database/mongo/hash.js +++ b/src/database/mongo/hash.js @@ -78,7 +78,7 @@ module.exports = function (db, module) { _id: 0, }; - for(var i = 0; i < fields.length; i += 1) { + for (var i = 0; i < fields.length; i += 1) { fields[i] = helpers.fieldToString(fields[i]); _fields[fields[i]] = 1; } @@ -88,7 +88,7 @@ module.exports = function (db, module) { } item = item || {}; var result = {}; - for(i = 0; i < fields.length; i += 1) { + for (i = 0; i < fields.length; i += 1) { result[fields[i]] = item[fields[i]] !== undefined ? item[fields[i]] : null; } callback(null, result); @@ -104,7 +104,7 @@ module.exports = function (db, module) { _key: 1, }; - for(var i = 0; i < fields.length; i += 1) { + for (var i = 0; i < fields.length; i += 1) { fields[i] = helpers.fieldToString(fields[i]); _fields[fields[i]] = 1; } @@ -145,12 +145,12 @@ module.exports = function (db, module) { module.getObjectValues = function (key, callback) { module.getObject(key, function (err, data) { - if(err) { + if (err) { return callback(err); } var values = []; - for(var key in data) { + for (var key in data) { if (data && data.hasOwnProperty(key)) { values.push(data[key]); } diff --git a/src/database/mongo/helpers.js b/src/database/mongo/helpers.js index 75ca83edbd..beda1b506b 100644 --- a/src/database/mongo/helpers.js +++ b/src/database/mongo/helpers.js @@ -12,11 +12,11 @@ helpers.toMap = function (data) { }; helpers.fieldToString = function (field) { - if(field === null || field === undefined) { + if (field === null || field === undefined) { return field; } - if(typeof field !== 'string') { + if (typeof field !== 'string') { field = field.toString(); } // if there is a '.' in the field name it inserts subdocument in mongo, replace '.'s with \uff0E @@ -25,7 +25,7 @@ helpers.fieldToString = function (field) { }; helpers.valueToString = function (value) { - if(value === null || value === undefined) { + if (value === null || value === undefined) { return value; } diff --git a/src/database/mongo/list.js b/src/database/mongo/list.js index 250d1951ca..02871e78fd 100644 --- a/src/database/mongo/list.js +++ b/src/database/mongo/list.js @@ -55,7 +55,7 @@ module.exports = function (db, module) { }; module.listRemoveAll = function (key, value, callback) { - callback = callback || helpers.noop; + callback = callback || helpers.noop; if (!key) { return callback(); } @@ -88,7 +88,7 @@ module.exports = function (db, module) { } db.collection('objects').findOne({_key: key}, { array: 1}, function (err, data) { - if(err || !(data && data.array)) { + if (err || !(data && data.array)) { return callback(err, []); } diff --git a/src/database/mongo/sets.js b/src/database/mongo/sets.js index b10682e8d5..f3df45647a 100644 --- a/src/database/mongo/sets.js +++ b/src/database/mongo/sets.js @@ -5,7 +5,7 @@ module.exports = function (db, module) { module.setAdd = function (key, value, callback) { callback = callback || helpers.noop; - if(!Array.isArray(value)) { + if (!Array.isArray(value)) { value = [value]; } @@ -36,7 +36,7 @@ module.exports = function (db, module) { return callback(); } - if(!Array.isArray(value)) { + if (!Array.isArray(value)) { value = [value]; } @@ -46,7 +46,7 @@ module.exports = function (db, module) { var bulk = db.collection('objects').initializeUnorderedBulkOp(); - for(var i = 0; i < keys.length; i += 1) { + for (var i = 0; i < keys.length; i += 1) { bulk.find({_key: keys[i]}).upsert().updateOne({ $addToSet: { members: { $each: value, @@ -61,7 +61,7 @@ module.exports = function (db, module) { module.setRemove = function (key, value, callback) { callback = callback || helpers.noop; - if(!Array.isArray(value)) { + if (!Array.isArray(value)) { value = [value]; } @@ -83,7 +83,7 @@ module.exports = function (db, module) { var bulk = db.collection('objects').initializeUnorderedBulkOp(); - for(var i = 0; i < keys.length; i += 1) { + for (var i = 0; i < keys.length; i += 1) { bulk.find({_key: keys[i]}).updateOne({$pull: { members: value, }}); @@ -174,7 +174,7 @@ module.exports = function (db, module) { }); var returnData = new Array(keys.length); - for(var i = 0; i < keys.length; i += 1) { + for (var i = 0; i < keys.length; i += 1) { returnData[i] = sets[keys[i]] || []; } callback(null, returnData); @@ -206,7 +206,7 @@ module.exports = function (db, module) { module.setRemoveRandom = function (key, callback) { callback = callback || function () {}; db.collection('objects').findOne({_key: key}, function (err, data) { - if(err || !data) { + if (err || !data) { return callback(err); } diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index fb7815be68..b8522a323f 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -198,7 +198,7 @@ module.exports = function (db, module) { } value = helpers.valueToString(value); method(key, 0, -1, function (err, result) { - if(err) { + if (err) { return callback(err); } @@ -263,7 +263,7 @@ module.exports = function (db, module) { var returnData = []; var item; - for(var i = 0; i < keys.length; i += 1) { + for (var i = 0; i < keys.length; i += 1) { item = map[keys[i]]; returnData.push(item ? item.score : null); } @@ -290,7 +290,7 @@ module.exports = function (db, module) { var returnData = new Array(values.length); var score; - for(var i = 0; i < values.length; i += 1) { + for (var i = 0; i < values.length; i += 1) { score = map[values[i]]; returnData[i] = utils.isNumber(score) ? score : null; } @@ -367,7 +367,7 @@ module.exports = function (db, module) { }); var returnData = new Array(keys.length); - for(var i = 0; i < keys.length; i += 1) { + for (var i = 0; i < keys.length; i += 1) { returnData[i] = sets[keys[i]] || []; } callback(null, returnData); diff --git a/src/database/mongo/sorted/add.js b/src/database/mongo/sorted/add.js index 9172003a09..1342586478 100644 --- a/src/database/mongo/sorted/add.js +++ b/src/database/mongo/sorted/add.js @@ -35,7 +35,7 @@ module.exports = function (db, module) { var bulk = db.collection('objects').initializeUnorderedBulkOp(); - for(var i = 0; i < scores.length; i += 1) { + for (var i = 0; i < scores.length; i += 1) { bulk.find({_key: key, value: values[i]}).upsert().updateOne({$set: {score: parseFloat(scores[i])}}); } @@ -53,7 +53,7 @@ module.exports = function (db, module) { var bulk = db.collection('objects').initializeUnorderedBulkOp(); - for(var i = 0; i < keys.length; i += 1) { + for (var i = 0; i < keys.length; i += 1) { bulk.find({_key: keys[i], value: value}).upsert().updateOne({$set: {score: parseFloat(score)}}); } diff --git a/src/database/mongo/sorted/intersect.js b/src/database/mongo/sorted/intersect.js index 4a58b6d72e..989ccefd71 100644 --- a/src/database/mongo/sorted/intersect.js +++ b/src/database/mongo/sorted/intersect.js @@ -11,7 +11,7 @@ module.exports = function (db, module) { { $match: { _key: {$in: keys}} }, { $group: { _id: {value: '$value'}, count: {$sum: 1}} }, { $match: { count: keys.length} }, - { $group: { _id: null, count: { $sum: 1 } } }, + { $group: { _id: null, count: { $sum: 1 } } }, ]; db.collection('objects').aggregate(pipeline, function (err, data) { diff --git a/src/database/mongo/sorted/union.js b/src/database/mongo/sorted/union.js index 74eb452fe0..e150bb6831 100644 --- a/src/database/mongo/sorted/union.js +++ b/src/database/mongo/sorted/union.js @@ -10,7 +10,7 @@ module.exports = function (db, module) { var pipeline = [ { $match: { _key: {$in: keys} } }, { $group: { _id: {value: '$value' } } }, - { $group: { _id: null, count: { $sum: 1 } } }, + { $group: { _id: null, count: { $sum: 1 } } }, ]; var project = { _id: 0, count: '$count' }; diff --git a/src/database/redis/hash.js b/src/database/redis/hash.js index 1f0b30a03e..cdc364e47e 100644 --- a/src/database/redis/hash.js +++ b/src/database/redis/hash.js @@ -52,7 +52,7 @@ module.exports = function (redisClient, module) { } var multi = redisClient.multi(); - for(var x = 0; x < keys.length; x += 1) { + for (var x = 0; x < keys.length; x += 1) { multi.hmget.apply(multi, [keys[x]].concat(fields)); } diff --git a/src/database/redis/main.js b/src/database/redis/main.js index 2bc31a38e5..431b234b47 100644 --- a/src/database/redis/main.js +++ b/src/database/redis/main.js @@ -30,7 +30,7 @@ module.exports = function (redisClient, module) { module.deleteAll = function (keys, callback) { callback = callback || function () {}; var multi = redisClient.multi(); - for(var i = 0; i < keys.length; i += 1) { + for (var i = 0; i < keys.length; i += 1) { multi.del(keys[i]); } multi.exec(function (err, res) { diff --git a/src/database/redis/sorted.js b/src/database/redis/sorted.js index 26d6f45b34..8276476571 100644 --- a/src/database/redis/sorted.js +++ b/src/database/redis/sorted.js @@ -45,7 +45,7 @@ module.exports = function (redisClient, module) { return callback(null, data); } var objects = []; - for(var i = 0; i < data.length; i += 2) { + for (var i = 0; i < data.length; i += 2) { objects.push({value: data[i], score: parseFloat(data[i + 1])}); } callback(null, objects); @@ -74,7 +74,7 @@ module.exports = function (redisClient, module) { return callback(err); } var objects = []; - for(var i = 0; i < data.length; i += 2) { + for (var i = 0; i < data.length; i += 2) { objects.push({value: data[i], score: parseFloat(data[i + 1])}); } callback(null, objects); @@ -94,7 +94,7 @@ module.exports = function (redisClient, module) { return callback(null, []); } var multi = redisClient.multi(); - for(var i = 0; i < keys.length; i += 1) { + for (var i = 0; i < keys.length; i += 1) { multi.zcard(keys[i]); } multi.exec(callback); @@ -106,7 +106,7 @@ module.exports = function (redisClient, module) { module.sortedSetsRanks = function (keys, values, callback) { var multi = redisClient.multi(); - for(var i = 0; i < values.length; i += 1) { + for (var i = 0; i < values.length; i += 1) { multi.zrank(keys[i], values[i]); } multi.exec(callback); @@ -114,7 +114,7 @@ module.exports = function (redisClient, module) { module.sortedSetRanks = function (key, values, callback) { var multi = redisClient.multi(); - for(var i = 0; i < values.length; i += 1) { + for (var i = 0; i < values.length; i += 1) { multi.zrank(key, values[i]); } multi.exec(callback); diff --git a/src/database/redis/sorted/add.js b/src/database/redis/sorted/add.js index 024d71c7c7..fcccffa213 100644 --- a/src/database/redis/sorted/add.js +++ b/src/database/redis/sorted/add.js @@ -23,7 +23,7 @@ module.exports = function (redisClient, module) { var args = [key]; - for(var i = 0; i < scores.length; i += 1) { + for (var i = 0; i < scores.length; i += 1) { args.push(scores[i], values[i]); } @@ -36,7 +36,7 @@ module.exports = function (redisClient, module) { callback = callback || function () {}; var multi = redisClient.multi(); - for(var i = 0; i < keys.length; i += 1) { + for (var i = 0; i < keys.length; i += 1) { multi.zadd(keys[i], score, value); } diff --git a/src/database/redis/sorted/intersect.js b/src/database/redis/sorted/intersect.js index a4e3c131b4..a42556cd7e 100644 --- a/src/database/redis/sorted/intersect.js +++ b/src/database/redis/sorted/intersect.js @@ -70,7 +70,7 @@ module.exports = function (redisClient, module) { } results = results[1] || []; var objects = []; - for(var i = 0; i < results.length; i += 2) { + for (var i = 0; i < results.length; i += 2) { objects.push({value: results[i], score: parseFloat(results[i + 1])}); } callback(null, objects); diff --git a/src/database/redis/sorted/remove.js b/src/database/redis/sorted/remove.js index 51e889cecb..8619e0be34 100644 --- a/src/database/redis/sorted/remove.js +++ b/src/database/redis/sorted/remove.js @@ -28,7 +28,7 @@ module.exports = function (redisClient, module) { module.sortedSetsRemoveRangeByScore = function (keys, min, max, callback) { callback = callback || function () {}; var multi = redisClient.multi(); - for(var i = 0; i < keys.length; i += 1) { + for (var i = 0; i < keys.length; i += 1) { multi.zremrangebyscore(keys[i], min, max); } multi.exec(function (err) { diff --git a/src/database/redis/sorted/union.js b/src/database/redis/sorted/union.js index 677b086259..ab8584858c 100644 --- a/src/database/redis/sorted/union.js +++ b/src/database/redis/sorted/union.js @@ -51,7 +51,7 @@ module.exports = function (redisClient, module) { } results = results[1] || []; var objects = []; - for(var i = 0; i < results.length; i += 2) { + for (var i = 0; i < results.length; i += 2) { objects.push({value: results[i], score: parseFloat(results[i + 1])}); } callback(null, objects); diff --git a/src/events.js b/src/events.js index 832daf7170..79ee5a0b8d 100644 --- a/src/events.js +++ b/src/events.js @@ -4,7 +4,7 @@ var async = require('async'); var validator = require('validator'); -var db = require('./database'); +var db = require('./database'); var batch = require('./batch'); var user = require('./user'); var utils = require('../public/src/utils'); diff --git a/src/file.js b/src/file.js index b9ecee378e..b056e64ac5 100644 --- a/src/file.js +++ b/src/file.js @@ -100,7 +100,7 @@ file.existsSync = function (path) { var exists = false; try { exists = fs.statSync(path); - } catch(err) { + } catch (err) { exists = false; } diff --git a/src/groups/search.js b/src/groups/search.js index 0b7f672d0c..865d0619ca 100644 --- a/src/groups/search.js +++ b/src/groups/search.js @@ -38,7 +38,7 @@ module.exports = function (Groups) { }; Groups.sort = function (strategy, groups, next) { - switch(strategy) { + switch (strategy) { case 'count': groups = groups.sort(function (a, b) { return a.slug > b.slug; @@ -77,7 +77,7 @@ module.exports = function (Groups) { }, function (users, next) { var uids = []; - for(var i = 0; i < users.length; i += 1) { + for (var i = 0; i < users.length; i += 1) { var field = users[i][searchBy]; if (field.toLowerCase().startsWith(query)) { uids.push(users[i].uid); diff --git a/src/groups/update.js b/src/groups/update.js index 49d722692b..c5fe6f5749 100644 --- a/src/groups/update.js +++ b/src/groups/update.js @@ -131,7 +131,7 @@ module.exports = function (Groups) { }, function (currentValue, next) { var currentlyPrivate = parseInt(currentValue.private, 10) === 1; - if (!currentlyPrivate || currentlyPrivate === isPrivate) { + if (!currentlyPrivate || currentlyPrivate === isPrivate) { return callback(); } db.getSetMembers('group:' + groupName + ':pending', next); diff --git a/src/hotswap.js b/src/hotswap.js index b25d854201..6ef0f943eb 100644 --- a/src/hotswap.js +++ b/src/hotswap.js @@ -10,7 +10,7 @@ HotSwap.prepare = function (app) { HotSwap.find = function (id) { if (stack) { - for(var x = 0, numEntries = stack.length; x < numEntries; x += 1) { + for (var x = 0, numEntries = stack.length; x < numEntries; x += 1) { if (stack[x].handle.hotswapId === id) { return x; } diff --git a/src/install.js b/src/install.js index 4935261c5a..5d93d04764 100644 --- a/src/install.js +++ b/src/install.js @@ -153,7 +153,7 @@ function completeConfigSetup(config, next) { // Add CI object if (install.ciVals) { config.test_database = {}; - for(var prop in install.ciVals) { + for (var prop in install.ciVals) { if (install.ciVals.hasOwnProperty(prop)) { config.test_database[prop] = install.ciVals[prop]; } diff --git a/src/logger.js b/src/logger.js index ef908c5883..f90744afad 100644 --- a/src/logger.js +++ b/src/logger.js @@ -59,9 +59,9 @@ var opts = { * If logging is currently enabled, create a stream. * Otherwise, close the current stream */ - if(meta.config.loggerStatus > 0 || meta.config.loggerIOStatus) { + if (meta.config.loggerStatus > 0 || meta.config.loggerIOStatus) { var stream = Logger.open(value); - if(stream) { + if (stream) { opts.streams.log.f = stream; } else { opts.streams.log.f = process.stdout; @@ -74,11 +74,11 @@ var opts = { Logger.open = function (value) { /* Open the streams to log to: either a path or stdout */ var stream; - if(value) { - if(file.existsSync(value)) { + if (value) { + if (file.existsSync(value)) { var stats = fs.statSync(value); - if(stats) { - if(stats.isDirectory()) { + if (stats) { + if (stats.isDirectory()) { stream = fs.createWriteStream(path.join(value, 'nodebb.log'), {flags: 'a'}); } else { stream = fs.createWriteStream(value, {flags: 'a'}); @@ -89,7 +89,7 @@ var opts = { } - if(stream) { + if (stream) { stream.on('error', function (err) { winston.error(err.message); }); @@ -101,7 +101,7 @@ var opts = { }; Logger.close = function (stream) { - if(stream.f !== process.stdout && stream.f) { + if (stream.f !== process.stdout && stream.f) { stream.end(); } stream.f = null; @@ -117,7 +117,7 @@ var opts = { }; Logger.express_open = function () { - if(opts.express.set !== 1) { + if (opts.express.set !== 1) { opts.express.set = 1; opts.express.app.use(Logger.expressLogger); } @@ -133,7 +133,7 @@ var opts = { * * This hijack allows us to turn logger on/off dynamically within express */ - if(meta.config.loggerStatus > 0) { + if (meta.config.loggerStatus > 0) { return opts.express.ofn(req, res, next); } else { return next(); @@ -148,7 +148,7 @@ var opts = { */ try { return 'io: ' + _uid + ' ' + _type + ' ' + util.inspect(Array.prototype.slice.call(_args)) + '\n'; - } catch(err) { + } catch (err) { winston.info("Logger.prepare_io_string: Failed", err); return "error"; } @@ -165,11 +165,11 @@ var opts = { for (var sid in clients) { if (clients.hasOwnProperty(sid)) { var client = clients[sid]; - if(client.oEmit && client.oEmit !== client.emit) { + if (client.oEmit && client.oEmit !== client.emit) { client.emit = client.oEmit; } - if(client.$oEmit && client.$oEmit !== client.$emit) { + if (client.$oEmit && client.$oEmit !== client.$emit) { client.$emit = client.$oEmit; } } @@ -186,7 +186,7 @@ var opts = { } var clients = socket.io.sockets.sockets; - for(var sid in clients) { + for (var sid in clients) { if (clients.hasOwnProperty(sid)) { Logger.io_one(clients[sid], clients[sid].uid); } @@ -199,13 +199,13 @@ var opts = { */ function override(method, name, errorMsg) { return function () { - if(opts.streams.log.f) { + if (opts.streams.log.f) { opts.streams.log.f.write(Logger.prepare_io_string(name, uid, arguments)); } try { method.apply(socket, arguments); - } catch(err) { + } catch (err) { winston.info(errorMsg, err); } }; diff --git a/src/meta/build.js b/src/meta/build.js index 56aa624ffb..cf07b15c9d 100644 --- a/src/meta/build.js +++ b/src/meta/build.js @@ -83,7 +83,7 @@ exports.buildTargets = function (targets, callback) { function (next) { async.eachSeries(targets, function (target, next) { var startTime; - switch(target) { + switch (target) { case 'js': setImmediate(next); break; diff --git a/src/meta/dependencies.js b/src/meta/dependencies.js index 9c68cc7727..fff0308e83 100644 --- a/src/meta/dependencies.js +++ b/src/meta/dependencies.js @@ -31,7 +31,7 @@ module.exports = function (Meta) { try { pkgData = JSON.parse(pkgData); - } catch(e) { + } catch (e) { process.stdout.write('[' + 'missing'.red + '] ' + module.bold + ' is a required dependency but could not be found\n'); depsMissing = true; return next(true); diff --git a/src/meta/js.js b/src/meta/js.js index 722d6bdba0..ba00c8fc18 100644 --- a/src/meta/js.js +++ b/src/meta/js.js @@ -150,7 +150,7 @@ module.exports = function (Meta) { }); minifier.on('message', function (message) { - switch(message.type) { + switch (message.type) { case 'end': Meta.js.target[target].cache = message.minified; Meta.js.target[target].map = message.sourceMap; @@ -226,7 +226,7 @@ module.exports = function (Meta) { * Check if the parent process is running with the debug option --debug (or --debug-brk) */ var forkProcessParams = {}; - if(global.v8debug || parseInt(process.execArgv.indexOf('--debug'), 10) !== -1) { + if (global.v8debug || parseInt(process.execArgv.indexOf('--debug'), 10) !== -1) { /** * use the line below if you want to debug minifier.js script too (or even --debug-brk option, but * you'll have to setup your debugger and connect to the forked process) diff --git a/src/meta/templates.js b/src/meta/templates.js index c30db7f3b7..44740fc787 100644 --- a/src/meta/templates.js +++ b/src/meta/templates.js @@ -120,7 +120,7 @@ function compile(callback) { var matches = null; var regex = /[ \t]*[ \t]*/; - while((matches = file.match(regex)) !== null) { + while ((matches = file.match(regex)) !== null) { var partial = "/" + matches[1]; if (paths[partial] && relativePath !== partial) { diff --git a/src/meta/themes.js b/src/meta/themes.js index 9dfc9f376b..e5359232fb 100644 --- a/src/meta/themes.js +++ b/src/meta/themes.js @@ -78,7 +78,7 @@ module.exports = function (Meta) { 'theme:src': '', }; - switch(data.type) { + switch (data.type) { case 'local': async.waterfall([ async.apply(Meta.configs.get, 'theme:id'), diff --git a/src/middleware/index.js b/src/middleware/index.js index fd1c816a80..21208cf9a6 100644 --- a/src/middleware/index.js +++ b/src/middleware/index.js @@ -190,7 +190,7 @@ middleware.processTimeagoLocales = function (req, res, next) { try { exists = fs.accessSync(localPath, fs.F_OK | fs.R_OK); - } catch(e) { + } catch (e) { exists = false; } diff --git a/src/middleware/user.js b/src/middleware/user.js index cdfbe1e548..4c02702802 100644 --- a/src/middleware/user.js +++ b/src/middleware/user.js @@ -1,7 +1,7 @@ 'use strict'; var async = require('async'); -var nconf = require('nconf'); +var nconf = require('nconf'); var meta = require('../meta'); var user = require('../user'); diff --git a/src/notifications.js b/src/notifications.js index 74453e5046..6f20999229 100644 --- a/src/notifications.js +++ b/src/notifications.js @@ -460,7 +460,7 @@ var utils = require('../public/src/utils'); return notifications; } - switch(mergeId) { + switch (mergeId) { // intentional fall-through case 'notifications:upvoted_your_post_in': case 'notifications:user_started_following_you': diff --git a/src/pagination.js b/src/pagination.js index 4e0d5d012b..7480756d1d 100644 --- a/src/pagination.js +++ b/src/pagination.js @@ -26,7 +26,7 @@ pagination.create = function (currentPage, pageCount, queryObj) { if (startPage > pageCount - 5) { startPage -= 2 - (pageCount - currentPage); } - for(var i = 0; i < 5; i += 1) { + for (var i = 0; i < 5; i += 1) { pagesToShow.push(startPage + i); } diff --git a/src/password.js b/src/password.js index 2744cbefba..54547abef3 100644 --- a/src/password.js +++ b/src/password.js @@ -13,7 +13,7 @@ function forkChild(message, callback) { var forkProcessParams = {}; - if(global.v8debug || parseInt(process.execArgv.indexOf('--debug'), 10) !== -1) { + if (global.v8debug || parseInt(process.execArgv.indexOf('--debug'), 10) !== -1) { forkProcessParams = {execArgv: ['--debug=' + (5859), '--nolazy']}; } var child = fork('./bcrypt', [], forkProcessParams); diff --git a/src/plugins.js b/src/plugins.js index f6b27f8ec7..3ef50f2c57 100644 --- a/src/plugins.js +++ b/src/plugins.js @@ -107,7 +107,7 @@ var middleware; if (Plugins.versionWarning.length && nconf.get('isPrimary') === 'true') { process.stdout.write('\n'); winston.warn('[plugins/load] The following plugins may not be compatible with your version of NodeBB. This may cause unintended behaviour or crashing. In the event of an unresponsive NodeBB caused by this plugin, run `./nodebb reset -p PLUGINNAME` to disable it.'); - for(var x = 0, numPlugins = Plugins.versionWarning.length; x < numPlugins; x += 1) { + for (var x = 0, numPlugins = Plugins.versionWarning.length; x < numPlugins; x += 1) { process.stdout.write(' * '.yellow + Plugins.versionWarning[x] + '\n'); } process.stdout.write('\n'); @@ -252,7 +252,7 @@ var middleware; var pluginMap = {}; var dependencies = require(path.join(nconf.get('base_dir'), 'package.json')).dependencies; apiReturn = apiReturn || []; - for(var i = 0; i < apiReturn.length; i += 1) { + for (var i = 0; i < apiReturn.length; i += 1) { apiReturn[i].id = apiReturn[i].name; apiReturn[i].installed = false; apiReturn[i].active = false; diff --git a/src/plugins/hooks.js b/src/plugins/hooks.js index 979cf90994..dc2093bf95 100644 --- a/src/plugins/hooks.js +++ b/src/plugins/hooks.js @@ -160,7 +160,7 @@ module.exports = function (Plugins) { next.apply(null, arguments); } }); - } catch(err) { + } catch (err) { winston.error('[plugins] Error executing \'' + hook + '\' in plugin \'' + hookObj.id + '\''); winston.error(err); clearTimeout(timeoutId); diff --git a/src/plugins/load.js b/src/plugins/load.js index 4147260d9a..56f3ff563f 100644 --- a/src/plugins/load.js +++ b/src/plugins/load.js @@ -140,7 +140,7 @@ module.exports = function (Plugins) { } else { callback(); } - } catch(err) { + } catch (err) { winston.error(err.stack); winston.warn('[plugins] Unable to parse library for: ' + pluginData.id); callback(); @@ -301,7 +301,7 @@ module.exports = function (Plugins) { pluginData.repository = packageData.repository; pluginData.nbbpm = packageData.nbbpm; pluginData.path = pluginPath; - } catch(err) { + } catch (err) { var pluginDir = pluginPath.split(path.sep); pluginDir = pluginDir[pluginDir.length - 1]; diff --git a/src/posts/flags.js b/src/posts/flags.js index a1d40a6729..744f64227f 100644 --- a/src/posts/flags.js +++ b/src/posts/flags.js @@ -240,14 +240,14 @@ module.exports = function (Posts) { function (posts, next) { // Parse out flag data into its own object inside each post hash async.map(posts, function (postObj, next) { - for(var prop in postObj) { + for (var prop in postObj) { postObj.flagData = postObj.flagData || {}; if (postObj.hasOwnProperty(prop) && prop.startsWith('flag:')) { postObj.flagData[prop.slice(5)] = postObj[prop]; if (prop === 'flag:state') { - switch(postObj[prop]) { + switch (postObj[prop]) { case 'open': postObj.flagData.labelClass = 'info'; break; @@ -296,14 +296,14 @@ module.exports = function (Posts) { } // Track new additions - for(prop in flagObj) { + for (prop in flagObj) { if (flagObj.hasOwnProperty(prop) && !postData.hasOwnProperty('flag:' + prop) && flagObj[prop].length) { changes.push(prop); } } // Track changed items - for(prop in postData) { + for (prop in postData) { if ( postData.hasOwnProperty(prop) && prop.startsWith('flag:') && flagObj.hasOwnProperty(prop.slice(5)) && @@ -324,7 +324,7 @@ module.exports = function (Posts) { var history = JSON.parse(postData['flag:history'] || '[]'); changes.forEach(function (property) { - switch(property) { + switch (property) { case 'assignee': // intentional fall-through case 'state': history.unshift({ diff --git a/src/posts/parse.js b/src/posts/parse.js index 7497dc6781..f78a5debf1 100644 --- a/src/posts/parse.js +++ b/src/posts/parse.js @@ -68,7 +68,7 @@ module.exports = function (Posts) { content = content.slice(0, current.index + 6) + absolute + content.slice(current.index + 6 + current[1].length); } - } catch(err) { + } catch (err) { winston.verbose(err.messsage); } } diff --git a/src/posts/summary.js b/src/posts/summary.js index 74b53a05a2..79d091012e 100644 --- a/src/posts/summary.js +++ b/src/posts/summary.js @@ -136,7 +136,7 @@ module.exports = function (Posts) { function toObject(key, data) { var obj = {}; - for(var i = 0; i < data.length; i += 1) { + for (var i = 0; i < data.length; i += 1) { obj[data[i][key]] = data[i]; } return obj; diff --git a/src/posts/tools.js b/src/posts/tools.js index ab47632931..a93a19ef3c 100644 --- a/src/posts/tools.js +++ b/src/posts/tools.js @@ -30,7 +30,7 @@ module.exports = function (Posts) { function (deleted, next) { if (parseInt(deleted, 10) === 1 && isDelete) { return next(new Error('[[error:post-already-deleted]]')); - } else if(parseInt(deleted, 10) !== 1 && !isDelete) { + } else if (parseInt(deleted, 10) !== 1 && !isDelete) { return next(new Error('[[error:post-already-restored]]')); } diff --git a/src/privileges/categories.js b/src/privileges/categories.js index 3b3649ddf9..ff3e2ed3ec 100644 --- a/src/privileges/categories.js +++ b/src/privileges/categories.js @@ -66,7 +66,7 @@ module.exports = function (privileges) { memberData.forEach(function (member) { member.privileges = {}; - for(var x = 0, numPrivs = userPrivileges.length; x < numPrivs; x += 1) { + for (var x = 0, numPrivs = userPrivileges.length; x < numPrivs; x += 1) { member.privileges[userPrivileges[x]] = memberSets[x].indexOf(parseInt(member.uid, 10)) !== -1; } }); @@ -117,7 +117,7 @@ module.exports = function (privileges) { var memberData = groupNames.map(function (member) { memberPrivs = {}; - for(var x = 0, numPrivs = groupPrivileges.length; x < numPrivs; x += 1) { + for (var x = 0, numPrivs = groupPrivileges.length; x < numPrivs; x += 1) { memberPrivs[groupPrivileges[x]] = memberSets[x].indexOf(member) !== -1; } return { diff --git a/src/privileges/helpers.js b/src/privileges/helpers.js index 0939d2eeb5..bf3f45751e 100644 --- a/src/privileges/helpers.js +++ b/src/privileges/helpers.js @@ -107,7 +107,7 @@ helpers.isUsersAllowedTo = function (privilege, uids, cid, callback) { } var result = []; - for(var i = 0; i < uids.length; i += 1) { + for (var i = 0; i < uids.length; i += 1) { result.push(results.hasUserPrivilege[i] || results.hasGroupPrivilege[i]); } diff --git a/src/pubsub.js b/src/pubsub.js index f5c6c2f0ed..157cb7da98 100644 --- a/src/pubsub.js +++ b/src/pubsub.js @@ -26,7 +26,7 @@ var PubSub = function () { try { var msg = JSON.parse(message); self.emit(msg.event, msg.data); - } catch(err) { + } catch (err) { winston.error(err.stack); } }); diff --git a/src/routes/api.js b/src/routes/api.js index 98c884c237..c8c11c099e 100644 --- a/src/routes/api.js +++ b/src/routes/api.js @@ -4,7 +4,7 @@ var express = require('express'); var uploadsController = require('../controllers/uploads'); -module.exports = function (app, middleware, controllers) { +module.exports = function (app, middleware, controllers) { var router = express.Router(); app.use('/api', router); diff --git a/src/routes/index.js b/src/routes/index.js index 4d3eef927e..5e92851ef9 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -98,7 +98,7 @@ module.exports = function (app, middleware, hotswapIds) { var ensureLoggedIn = require('connect-ensure-login'); if (Array.isArray(hotswapIds) && hotswapIds.length) { - for(var idx, x = 0; x < hotswapIds.length; x += 1) { + for (var idx, x = 0; x < hotswapIds.length; x += 1) { idx = routers.push(express.Router()) - 1; routers[idx].hotswapId = hotswapIds[x]; } @@ -132,7 +132,7 @@ module.exports = function (app, middleware, hotswapIds) { userRoutes(router, middleware, controllers); groupRoutes(router, middleware, controllers); - for(var x = 0; x < routers.length; x += 1) { + for (var x = 0; x < routers.length; x += 1) { app.use(relativePath, routers[x]); } diff --git a/src/sitemap.js b/src/sitemap.js index 0fc0e9b478..4663c2df9f 100644 --- a/src/sitemap.js +++ b/src/sitemap.js @@ -38,7 +38,7 @@ sitemap.render = function (callback) { numPages = Math.ceil(tids.length / numTopics); } - for(var x = 1; x <= numPages; x += 1) { + for (var x = 1; x <= numPages; x += 1) { returnData.topics.push(x); } diff --git a/src/socket.io/admin/user.js b/src/socket.io/admin/user.js index 733f162425..f2dd3a6483 100644 --- a/src/socket.io/admin/user.js +++ b/src/socket.io/admin/user.js @@ -13,7 +13,7 @@ var plugins = require('../../plugins'); var User = {}; User.makeAdmins = function (socket, uids, callback) { - if(!Array.isArray(uids)) { + if (!Array.isArray(uids)) { return callback(new Error('[[error:invalid-data]]')); } @@ -22,7 +22,7 @@ User.makeAdmins = function (socket, uids, callback) { return callback(err); } - for(var i = 0; i < userData.length; i += 1) { + for (var i = 0; i < userData.length; i += 1) { if (userData[i] && parseInt(userData[i].banned, 10) === 1) { return callback(new Error('[[error:cant-make-banned-users-admin]]')); } @@ -35,7 +35,7 @@ User.makeAdmins = function (socket, uids, callback) { }; User.removeAdmins = function (socket, uids, callback) { - if(!Array.isArray(uids)) { + if (!Array.isArray(uids)) { return callback(new Error('[[error:invalid-data]]')); } diff --git a/src/socket.io/categories.js b/src/socket.io/categories.js index ff95fc9f7f..2c0ef102b4 100644 --- a/src/socket.io/categories.js +++ b/src/socket.io/categories.js @@ -44,7 +44,7 @@ SocketCategories.getWatchedCategories = function (socket, data, callback) { if (err) { return callback(err); } - var watchedCategories = results.categories.filter(function (category) { + var watchedCategories = results.categories.filter(function (category) { return category && results.ignoredCids.indexOf(category.cid.toString()) === -1; }); diff --git a/src/socket.io/groups.js b/src/socket.io/groups.js index 556739c1df..5689b75538 100644 --- a/src/socket.io/groups.js +++ b/src/socket.io/groups.js @@ -241,7 +241,7 @@ SocketGroups.search = function (socket, data, callback) { }; SocketGroups.loadMore = function (socket, data, callback) { - if (!data.sort || !utils.isNumber(data.after) || parseInt(data.after, 10) < 0) { + if (!data.sort || !utils.isNumber(data.after) || parseInt(data.after, 10) < 0) { return callback(); } diff --git a/src/socket.io/posts/votes.js b/src/socket.io/posts/votes.js index e5668789f2..c131155c87 100644 --- a/src/socket.io/posts/votes.js +++ b/src/socket.io/posts/votes.js @@ -62,7 +62,7 @@ module.exports = function (SocketPosts) { return callback(err, []); } - async.map(data, function (uids, next) { + async.map(data, function (uids, next) { var otherCount = 0; if (uids.length > 6) { otherCount = uids.length - 5; diff --git a/src/socket.io/topics/infinitescroll.js b/src/socket.io/topics/infinitescroll.js index 9b694550ff..e3d4239f33 100644 --- a/src/socket.io/topics/infinitescroll.js +++ b/src/socket.io/topics/infinitescroll.js @@ -11,7 +11,7 @@ var social = require('../../social'); module.exports = function (SocketTopics) { SocketTopics.loadMore = function (socket, data, callback) { - if (!data || !data.tid || !utils.isNumber(data.after) || parseInt(data.after, 10) < 0) { + if (!data || !data.tid || !utils.isNumber(data.after) || parseInt(data.after, 10) < 0) { return callback(new Error('[[error:invalid-data]]')); } var userPrivileges; diff --git a/src/socket.io/user/picture.js b/src/socket.io/user/picture.js index 56c4c4c1c9..a47623c24b 100644 --- a/src/socket.io/user/picture.js +++ b/src/socket.io/user/picture.js @@ -26,7 +26,7 @@ module.exports = function (SocketUser) { user.isAdminOrGlobalModOrSelf(socket.uid, data.uid, next); }, function (next) { - switch(type) { + switch (type) { case 'default': next(null, ''); break; diff --git a/src/start.js b/src/start.js index 68378d331c..489f114f53 100644 --- a/src/start.js +++ b/src/start.js @@ -56,7 +56,7 @@ start.start = function () { }, ], function (err) { if (err) { - switch(err.message) { + switch (err.message) { case 'schema-out-of-date': winston.warn('Your NodeBB schema is out-of-date. Please run the following command to bring your dataset up to spec:'); winston.warn(' ./nodebb upgrade'); diff --git a/src/topics/posts.js b/src/topics/posts.js index 39b3d5a049..5bcebf38ca 100644 --- a/src/topics/posts.js +++ b/src/topics/posts.js @@ -69,7 +69,7 @@ module.exports = function (Topics) { userData: function (next) { var uids = []; - for(var i = 0; i < postData.length; i += 1) { + for (var i = 0; i < postData.length; i += 1) { if (postData[i] && uids.indexOf(postData[i].uid) === -1) { uids.push(postData[i].uid); } @@ -90,7 +90,7 @@ module.exports = function (Topics) { }, editors: function (next) { var editors = []; - for(var i = 0; i < postData.length; i += 1) { + for (var i = 0; i < postData.length; i += 1) { if (postData[i] && postData[i].editor && editors.indexOf(postData[i].editor) === -1) { editors.push(postData[i].editor); } diff --git a/src/topics/recent.js b/src/topics/recent.js index 8defa37585..3d4f298369 100644 --- a/src/topics/recent.js +++ b/src/topics/recent.js @@ -7,7 +7,7 @@ var db = require('../database'); var plugins = require('../plugins'); var privileges = require('../privileges'); var user = require('../user'); -var categories = require('../categories'); +var categories = require('../categories'); module.exports = function (Topics) { var terms = { diff --git a/src/topics/tags.js b/src/topics/tags.js index 99f6c49a44..69d0de3332 100644 --- a/src/topics/tags.js +++ b/src/topics/tags.js @@ -366,7 +366,7 @@ module.exports = function (Topics) { query = query.toLowerCase(); var matches = []; - for(var i = 0; i < tags.length; i += 1) { + for (var i = 0; i < tags.length; i += 1) { if (tags[i].toLowerCase().startsWith(query)) { matches.push(tags[i]); if (matches.length > 19) { diff --git a/src/topics/teaser.js b/src/topics/teaser.js index 264c5c77a6..c8526a981d 100644 --- a/src/topics/teaser.js +++ b/src/topics/teaser.js @@ -30,7 +30,7 @@ module.exports = function (Topics) { delete topic.teaserPid; } - switch(meta.config.teaserPost) { + switch (meta.config.teaserPost) { case 'first': teaserPids.push(topic.mainPid); break; diff --git a/src/topics/tools.js b/src/topics/tools.js index da29498ec4..aa877e7de7 100644 --- a/src/topics/tools.js +++ b/src/topics/tools.js @@ -46,7 +46,7 @@ module.exports = function (Topics) { if (parseInt(topicData.deleted, 10) === 1 && isDelete) { return callback(new Error('[[error:topic-already-deleted]]')); - } else if(parseInt(topicData.deleted, 10) !== 1 && !isDelete) { + } else if (parseInt(topicData.deleted, 10) !== 1 && !isDelete) { return callback(new Error('[[error:topic-already-restored]]')); } diff --git a/src/upgrade.js b/src/upgrade.js index 01ca6a264f..99ac96842d 100644 --- a/src/upgrade.js +++ b/src/upgrade.js @@ -52,7 +52,7 @@ Upgrade.upgrade = function (callback) { return next(err); } - if(!value) { + if (!value) { db.set('schemaDate', latestSchema, function () { next(); }); @@ -317,13 +317,13 @@ Upgrade.upgrade = function (callback) { // IMPORTANT: REMEMBER TO UPDATE VALUE OF latestSchema IN LINE 24!!! ], function (err) { if (!err) { - if(updatesMade) { + if (updatesMade) { winston.info('[upgrade] Schema update complete!'); } else { winston.info('[upgrade] Schema already up to date!'); } } else { - switch(err.message) { + switch (err.message) { case 'upgrade-not-possible': winston.error('[upgrade] NodeBB upgrade could not complete, as your database schema is too far out of date.'); winston.error('[upgrade] Please ensure that you did not skip any minor version upgrades.'); diff --git a/src/user/create.js b/src/user/create.js index ebd3a56d15..4bd6ddcaa4 100644 --- a/src/user/create.js +++ b/src/user/create.js @@ -18,7 +18,7 @@ module.exports = function (User) { } User.isDataValid(data, function (err) { - if (err) { + if (err) { return callback(err); } var timestamp = data.timestamp || Date.now(); diff --git a/src/user/data.js b/src/user/data.js index b49d038a3a..a303080e9c 100644 --- a/src/user/data.js +++ b/src/user/data.js @@ -126,7 +126,7 @@ module.exports = function (User) { user.status = User.getStatus(user); } - for(var i = 0; i < fieldsToRemove.length; i += 1) { + for (var i = 0; i < fieldsToRemove.length; i += 1) { user[fieldsToRemove[i]] = undefined; } diff --git a/src/user/delete.js b/src/user/delete.js index bc0ae912c6..ba3b56695d 100644 --- a/src/user/delete.js +++ b/src/user/delete.js @@ -57,7 +57,7 @@ module.exports = function (User) { } User.getUserFields(uid, ['username', 'userslug', 'fullname', 'email'], next); }, - function (_userData, next) { + function (_userData, next) { userData = _userData; plugins.fireHook('static:user.delete', {uid: uid}, next); }, diff --git a/src/user/jobs.js b/src/user/jobs.js index 63e6ef8b4b..591dba16fd 100644 --- a/src/user/jobs.js +++ b/src/user/jobs.js @@ -22,7 +22,7 @@ module.exports = function (User) { } // Terminate any active cron jobs - for(var jobId in jobs) { + for (var jobId in jobs) { if (jobs.hasOwnProperty(jobId)) { winston.verbose('[user/jobs] Terminating job (' + jobId + ')'); jobs[jobId].stop(); diff --git a/src/user/notifications.js b/src/user/notifications.js index 61dfc50f50..cc8d8b6ec1 100644 --- a/src/user/notifications.js +++ b/src/user/notifications.js @@ -64,7 +64,7 @@ var privileges = require('../privileges'); async.waterfall([ async.apply(db.getSortedSetRevRange, set, start, stop), function (nids, next) { - if(!Array.isArray(nids) || !nids.length) { + if (!Array.isArray(nids) || !nids.length) { return callback(null, []); } diff --git a/src/user/profile.js b/src/user/profile.js index 90df742d8e..1987bf1ae4 100644 --- a/src/user/profile.js +++ b/src/user/profile.js @@ -170,7 +170,7 @@ module.exports = function (User) { db.sortedSetAdd('email:uid', uid, newEmail.toLowerCase(), next); }, function (next) { - db.sortedSetAdd('email:sorted', 0, newEmail.toLowerCase() + ':' + uid, next); + db.sortedSetAdd('email:sorted', 0, newEmail.toLowerCase() + ':' + uid, next); }, function (next) { db.sortedSetAdd('user:' + uid + ':emails', Date.now(), newEmail + ':' + Date.now(), next); diff --git a/src/user/search.js b/src/user/search.js index 95e5b6ed29..a567b73ed6 100644 --- a/src/user/search.js +++ b/src/user/search.js @@ -135,9 +135,9 @@ module.exports = function (User) { }); } else { userData.sort(function (u1, u2) { - if(u1[sortBy] < u2[sortBy]) { + if (u1[sortBy] < u2[sortBy]) { return -1; - } else if(u1[sortBy] > u2[sortBy]) { + } else if (u1[sortBy] > u2[sortBy]) { return 1; } return 0; diff --git a/src/widgets/index.js b/src/widgets/index.js index 5d46b42416..247700ea21 100644 --- a/src/widgets/index.js +++ b/src/widgets/index.js @@ -89,7 +89,7 @@ widgets.getAreas = function (templates, locations, callback) { if (data && data[index] && data[index][location]) { try { returnData[template][location] = JSON.parse(data[index][location]); - } catch(err) { + } catch (err) { winston.error('can not parse widget data. template: ' + template + ' location: ' + location); returnData[template][location] = []; } @@ -113,7 +113,7 @@ widgets.getArea = function (template, location, callback) { } try { result = JSON.parse(result); - } catch(err) { + } catch (err) { return callback(err); } diff --git a/test/mocks/databasemock.js b/test/mocks/databasemock.js index 39b88a5c5a..dd4424c959 100644 --- a/test/mocks/databasemock.js +++ b/test/mocks/databasemock.js @@ -9,7 +9,7 @@ var async = require('async'); var winston = require('winston'); - var path = require('path'); + var path = require('path'); var nconf = require('nconf'); var url = require('url'); var errorText; diff --git a/test/posts.js b/test/posts.js index db8fa6a787..5b0687ca5e 100644 --- a/test/posts.js +++ b/test/posts.js @@ -366,7 +366,7 @@ describe('Post\'s', function () { it('should error with too many tags', function (done) { var tags = []; - for(var i = 0; i < meta.config.maximumTagsPerTopic + 1; i += 1) { + for (var i = 0; i < meta.config.maximumTagsPerTopic + 1; i += 1) { tags.push('tag' + i); } socketPosts.edit({uid: voterUid}, {pid: pid, content: 'edited post content', tags: tags}, function (err) { diff --git a/test/topics.js b/test/topics.js index 77ef54f5b7..91577cfa3d 100644 --- a/test/topics.js +++ b/test/topics.js @@ -505,7 +505,7 @@ describe('Topic\'s', function () { var topics = results.topics; var topic; var i; - for(i = 0; i < topics.length; i += 1) { + for (i = 0; i < topics.length; i += 1) { if (parseInt(topics[i].tid, 10) === parseInt(newTid, 10)) { assert.equal(false, topics[i].unread, 'ignored topic was marked as unread in recent list'); return done(); diff --git a/test/utils.js b/test/utils.js index 023051d4c2..96ccdce201 100644 --- a/test/utils.js +++ b/test/utils.js @@ -164,9 +164,9 @@ describe('Utility Methods', function () { var days = utils.getDaysArray(); var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; var index = 0; - for(var x = 29; x >= 0; x -= 1) { + for (var x = 29; x >= 0; x -= 1) { var tmpDate = new Date(currentDay - (1000 * 60 * 60 * 24 * x)); - assert.equal(months[tmpDate.getMonth()] + ' ' + tmpDate.getDate(), days[index]); + assert.equal(months[tmpDate.getMonth()] + ' ' + tmpDate.getDate(), days[index]); index += 1; } done(); From a038c665496701cba4a66856817096ab16a32b73 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 01:56:23 -0700 Subject: [PATCH 20/60] ESlint quotes --- .eslintrc | 2 +- Gruntfile.js | 2 +- app.js | 2 +- install/databases.js | 2 +- install/web.js | 2 +- minifier.js | 2 +- public/src/admin/admin.js | 4 +- public/src/admin/advanced/errors.js | 30 +++++----- public/src/admin/advanced/events.js | 2 +- public/src/admin/advanced/logs.js | 2 +- public/src/admin/appearance/customise.js | 14 ++--- public/src/admin/appearance/skins.js | 2 +- public/src/admin/appearance/themes.js | 2 +- public/src/admin/extend/plugins.js | 2 +- public/src/admin/extend/rewards.js | 2 +- public/src/admin/extend/widgets.js | 8 +-- public/src/admin/general/dashboard.js | 42 +++++++------- public/src/admin/general/homepage.js | 2 +- public/src/admin/general/languages.js | 2 +- public/src/admin/general/navigation.js | 2 +- public/src/admin/general/social.js | 2 +- public/src/admin/general/sounds.js | 2 +- public/src/admin/manage/categories.js | 4 +- public/src/admin/manage/category-analytics.js | 58 +++++++++---------- public/src/admin/manage/category.js | 2 +- public/src/admin/manage/flags.js | 16 ++--- public/src/admin/manage/group.js | 6 +- public/src/admin/manage/groups.js | 2 +- public/src/admin/manage/registration.js | 2 +- public/src/admin/manage/tags.js | 6 +- public/src/admin/manage/users.js | 2 +- public/src/admin/modules/colorpicker.js | 2 +- public/src/admin/modules/instance.js | 2 +- public/src/admin/modules/search.js | 2 +- public/src/admin/modules/selectable.js | 2 +- public/src/admin/settings/email.js | 8 +-- public/src/admin/settings/general.js | 2 +- public/src/ajaxify.js | 4 +- public/src/app.js | 10 ++-- public/src/client/category.js | 2 +- public/src/client/chats.js | 4 +- public/src/client/footer.js | 2 +- public/src/client/groups/details.js | 2 +- public/src/client/groups/list.js | 2 +- public/src/client/groups/memberlist.js | 2 +- public/src/client/login.js | 2 +- public/src/client/reset.js | 2 +- public/src/client/reset_code.js | 2 +- public/src/client/topic/move-post.js | 8 +-- public/src/client/unread.js | 2 +- public/src/installer/install.js | 2 +- public/src/modules/chat.js | 2 +- public/src/modules/components.js | 2 +- public/src/modules/coverPhoto.js | 2 +- public/src/modules/helpers.js | 4 +- public/src/modules/iconSelect.js | 2 +- public/src/modules/pictureCropper.js | 10 ++-- public/src/modules/search.js | 2 +- public/src/modules/settings.js | 6 +- public/src/modules/settings/array.js | 4 +- public/src/modules/settings/key.js | 4 +- public/src/modules/sounds.js | 2 +- public/src/modules/taskbar.js | 2 +- public/src/modules/translator.js | 2 +- public/src/overrides.js | 2 +- public/src/utils.js | 56 +++++++++--------- public/src/widgets.js | 2 +- src/categories/unread.js | 2 +- src/controllers/accounts/profile.js | 6 +- src/controllers/accounts/settings.js | 34 +++++------ src/controllers/admin.js | 2 +- src/controllers/admin/appearance.js | 2 +- src/controllers/admin/blacklist.js | 2 +- src/controllers/admin/categories.js | 2 +- src/controllers/admin/flags.js | 2 +- src/controllers/admin/groups.js | 2 +- src/controllers/admin/tags.js | 2 +- src/controllers/admin/uploads.js | 2 +- src/controllers/admin/users.js | 2 +- src/controllers/api.js | 2 +- src/controllers/authentication.js | 2 +- src/controllers/categories.js | 6 +- src/controllers/category.js | 4 +- src/controllers/globalmods.js | 2 +- src/controllers/groups.js | 2 +- src/controllers/index.js | 14 ++--- src/controllers/mods.js | 2 +- src/controllers/posts.js | 2 +- src/controllers/tags.js | 2 +- src/controllers/topics.js | 14 ++--- src/controllers/uploads.js | 2 +- src/controllers/users.js | 2 +- src/coverPhoto.js | 2 +- src/database.js | 2 +- src/database/mongo.js | 6 +- src/database/mongo/hash.js | 2 +- src/database/mongo/helpers.js | 2 +- src/database/mongo/list.js | 2 +- src/database/mongo/main.js | 2 +- src/database/mongo/sets.js | 2 +- src/database/mongo/sorted.js | 2 +- src/database/mongo/sorted/intersect.js | 2 +- src/database/redis.js | 8 +-- src/database/redis/hash.js | 2 +- src/database/redis/helpers.js | 2 +- src/database/redis/list.js | 2 +- src/database/redis/main.js | 2 +- src/database/redis/sets.js | 2 +- src/database/redis/sorted.js | 2 +- src/emailer.js | 2 +- src/emitter.js | 2 +- src/file.js | 2 +- src/hotswap.js | 2 +- src/install.js | 4 +- src/logger.js | 4 +- src/meta.js | 2 +- src/meta/js.js | 12 ++-- src/meta/tags.js | 6 +- src/meta/templates.js | 6 +- src/middleware/admin.js | 2 +- src/middleware/headers.js | 8 +-- src/middleware/index.js | 2 +- src/navigation/admin.js | 2 +- src/navigation/index.js | 2 +- src/plugins.js | 2 +- src/privileges.js | 2 +- src/rewards/admin.js | 2 +- src/rewards/index.js | 2 +- src/routes/accounts.js | 2 +- src/routes/admin.js | 2 +- src/routes/api.js | 2 +- src/routes/authentication.js | 2 +- src/routes/debug.js | 2 +- src/routes/feeds.js | 2 +- src/routes/index.js | 2 +- src/routes/meta.js | 2 +- src/settings.js | 2 +- src/social.js | 20 +++---- src/socket.io/admin.js | 2 +- src/socket.io/admin/categories.js | 2 +- src/socket.io/admin/groups.js | 2 +- src/socket.io/admin/navigation.js | 2 +- src/socket.io/admin/rewards.js | 2 +- src/socket.io/admin/social.js | 2 +- src/socket.io/admin/tags.js | 2 +- src/socket.io/admin/user.js | 2 +- src/socket.io/groups.js | 2 +- src/socket.io/index.js | 2 +- src/socket.io/modules.js | 2 +- src/socket.io/notifications.js | 2 +- src/socket.io/posts.js | 2 +- src/topics.js | 2 +- src/upgrade.js | 2 +- src/user/digest.js | 2 +- src/webserver.js | 2 +- src/widgets/admin.js | 2 +- src/widgets/index.js | 2 +- test/helpers/index.js | 6 +- test/mocks/newXhr.js | 2 +- test/socket.io.js | 2 +- test/translator.js | 2 +- 161 files changed, 356 insertions(+), 356 deletions(-) diff --git a/.eslintrc b/.eslintrc index 023667f42e..abfaa76baf 100644 --- a/.eslintrc +++ b/.eslintrc @@ -98,7 +98,7 @@ "strict": "off", // "comma-dangle": "off", // "no-multi-spaces": "off", - "quotes": "off", + // "quotes": "off", // "keyword-spacing": "off", // "no-mixed-operators": "off", // "comma-spacing": "off", diff --git a/Gruntfile.js b/Gruntfile.js index 2e221df277..5e498affdb 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var fork = require('child_process').fork; var env = process.env; diff --git a/app.js b/app.js index 3cdd03b50c..31ae60bccf 100644 --- a/app.js +++ b/app.js @@ -17,7 +17,7 @@ along with this program. If not, see . */ -"use strict"; +'use strict'; var nconf = require('nconf'); nconf.argv().env('__'); diff --git a/install/databases.js b/install/databases.js index 08f5a2bafb..2540884096 100644 --- a/install/databases.js +++ b/install/databases.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var prompt = require('prompt'); diff --git a/install/web.js b/install/web.js index 1d5a755785..d1df6faae3 100644 --- a/install/web.js +++ b/install/web.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var winston = require('winston'); var express = require('express'); diff --git a/minifier.js b/minifier.js index 77b0151e02..d0e92752ca 100644 --- a/minifier.js +++ b/minifier.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var uglifyjs = require('uglify-js'); var async = require('async'); diff --git a/public/src/admin/admin.js b/public/src/admin/admin.js index 36fbb692f6..93b7755ac6 100644 --- a/public/src/admin/admin.js +++ b/public/src/admin/admin.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; (function () { var logoutTimer = 0; @@ -157,7 +157,7 @@ } function launchSnackbar(params) { - var message = (params.title ? "" + params.title + "" : '') + (params.message ? params.message : ''); + var message = (params.title ? '' + params.title + '' : '') + (params.message ? params.message : ''); require(['translator'], function (translator) { translator.translate(message, function (html) { diff --git a/public/src/admin/advanced/errors.js b/public/src/admin/advanced/errors.js index e8ec4b6acb..9113939b2a 100644 --- a/public/src/admin/advanced/errors.js +++ b/public/src/admin/advanced/errors.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, translator) { @@ -41,13 +41,13 @@ define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, transl labels: dailyLabels, datasets: [ { - label: "", - backgroundColor: "rgba(186,139,175,0.2)", - borderColor: "rgba(186,139,175,1)", - pointBackgroundColor: "rgba(186,139,175,1)", - pointHoverBackgroundColor: "#fff", - pointBorderColor: "#fff", - pointHoverBorderColor: "rgba(186,139,175,1)", + label: '', + backgroundColor: 'rgba(186,139,175,0.2)', + borderColor: 'rgba(186,139,175,1)', + pointBackgroundColor: 'rgba(186,139,175,1)', + pointHoverBackgroundColor: '#fff', + pointBorderColor: '#fff', + pointHoverBorderColor: 'rgba(186,139,175,1)', data: ajaxify.data.analytics['not-found'], }, ], @@ -56,13 +56,13 @@ define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, transl labels: dailyLabels, datasets: [ { - label: "", - backgroundColor: "rgba(151,187,205,0.2)", - borderColor: "rgba(151,187,205,1)", - pointBackgroundColor: "rgba(151,187,205,1)", - pointHoverBackgroundColor: "#fff", - pointBorderColor: "#fff", - pointHoverBorderColor: "rgba(151,187,205,1)", + label: '', + backgroundColor: 'rgba(151,187,205,0.2)', + borderColor: 'rgba(151,187,205,1)', + pointBackgroundColor: 'rgba(151,187,205,1)', + pointHoverBackgroundColor: '#fff', + pointBorderColor: '#fff', + pointHoverBorderColor: 'rgba(151,187,205,1)', data: ajaxify.data.analytics.toobusy, }, ], diff --git a/public/src/admin/advanced/events.js b/public/src/admin/advanced/events.js index c1ad423ed8..92f660f707 100644 --- a/public/src/admin/advanced/events.js +++ b/public/src/admin/advanced/events.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/advanced/events', function () { diff --git a/public/src/admin/advanced/logs.js b/public/src/admin/advanced/logs.js index 478544b271..c0e9fee0f0 100644 --- a/public/src/admin/advanced/logs.js +++ b/public/src/admin/advanced/logs.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/advanced/logs', function () { diff --git a/public/src/admin/appearance/customise.js b/public/src/admin/appearance/customise.js index eeb8f7c518..026de7c204 100644 --- a/public/src/admin/appearance/customise.js +++ b/public/src/admin/appearance/customise.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/appearance/customise', ['admin/settings'], function (Settings) { @@ -9,11 +9,11 @@ define('admin/appearance/customise', ['admin/settings'], function (Settings) { $('#customCSS').text($('#customCSS-holder').val()); $('#customHTML').text($('#customHTML-holder').val()); - var customCSS = ace.edit("customCSS"); - var customHTML = ace.edit("customHTML"); + var customCSS = ace.edit('customCSS'); + var customHTML = ace.edit('customHTML'); - customCSS.setTheme("ace/theme/twilight"); - customCSS.getSession().setMode("ace/mode/css"); + customCSS.setTheme('ace/theme/twilight'); + customCSS.getSession().setMode('ace/mode/css'); customCSS.on('change', function (event) { app.flags = app.flags || {}; @@ -21,8 +21,8 @@ define('admin/appearance/customise', ['admin/settings'], function (Settings) { $('#customCSS-holder').val(customCSS.getValue()); }); - customHTML.setTheme("ace/theme/twilight"); - customHTML.getSession().setMode("ace/mode/html"); + customHTML.setTheme('ace/theme/twilight'); + customHTML.getSession().setMode('ace/mode/html'); customHTML.on('change', function (event) { app.flags = app.flags || {}; diff --git a/public/src/admin/appearance/skins.js b/public/src/admin/appearance/skins.js index d6cc31ea8a..f234cac414 100644 --- a/public/src/admin/appearance/skins.js +++ b/public/src/admin/appearance/skins.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/appearance/skins', ['translator'], function (translator) { diff --git a/public/src/admin/appearance/themes.js b/public/src/admin/appearance/themes.js index 434deb4cd2..95c3f896f0 100644 --- a/public/src/admin/appearance/themes.js +++ b/public/src/admin/appearance/themes.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/appearance/themes', ['translator'], function (translator) { diff --git a/public/src/admin/extend/plugins.js b/public/src/admin/extend/plugins.js index df43edf5f7..6d0a1b7de9 100644 --- a/public/src/admin/extend/plugins.js +++ b/public/src/admin/extend/plugins.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/extend/plugins', ['jqueryui', 'translator'], function (jqueryui, translator) { diff --git a/public/src/admin/extend/rewards.js b/public/src/admin/extend/rewards.js index 50b2adebf0..a605b87186 100644 --- a/public/src/admin/extend/rewards.js +++ b/public/src/admin/extend/rewards.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/extend/rewards', ['translator'], function (translator) { diff --git a/public/src/admin/extend/widgets.js b/public/src/admin/extend/widgets.js index 6923b0437d..d4356a1cb4 100644 --- a/public/src/admin/extend/widgets.js +++ b/public/src/admin/extend/widgets.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { @@ -35,7 +35,7 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { return $(e.target).parents('.widget-panel').clone(); }, distance: 10, - connectToSortable: ".widget-area", + connectToSortable: '.widget-area', }); $('#widgets .available-containers .containers > [data-container-html]') @@ -57,7 +57,7 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { createDatePicker(ui.item); appendToggle(ui.item); }, - connectWith: "div", + connectWith: 'div', }).on('click', '.delete-widget', function () { var panel = $(this).parents('.widget-panel'); @@ -177,7 +177,7 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { el.find('.panel-body .container-html').val(ui.draggable.attr('data-container-html')); el.find('.panel-body').removeClass('hidden'); }, - hoverClass: "panel-info", + hoverClass: 'panel-info', }) .children('.panel-heading') .append('
     
    ') diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index e01964b253..a6600ce93a 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (semver, Chart, translator) { @@ -126,14 +126,14 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s topics: null, }; - var topicColors = ["#bf616a", "#5B90BF", "#d08770", "#ebcb8b", "#a3be8c", "#96b5b4", "#8fa1b3", "#b48ead", "#ab7967", "#46BFBD"]; + var topicColors = ['#bf616a', '#5B90BF', '#d08770', '#ebcb8b', '#a3be8c', '#96b5b4', '#8fa1b3', '#b48ead', '#ab7967', '#46BFBD']; var usedTopicColors = []; // from chartjs.org function lighten(col, amt) { var usePound = false; - if (col[0] == "#") { + if (col[0] == '#') { col = col.slice(1); usePound = true; } @@ -155,7 +155,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s if (g > 255) g = 255; else if (g < 0) g = 0; - return (usePound ? "#" : "") + (g | (b << 8) | (r << 16)).toString(16); + return (usePound ? '#' : '') + (g | (b << 8) | (r << 16)).toString(16); } function setupGraphs() { @@ -190,22 +190,22 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s datasets: [ { label: translations[0], - backgroundColor: "rgba(220,220,220,0.2)", - borderColor: "rgba(220,220,220,1)", - pointBackgroundColor: "rgba(220,220,220,1)", - pointHoverBackgroundColor: "#fff", - pointBorderColor: "#fff", - pointHoverBorderColor: "rgba(220,220,220,1)", + backgroundColor: 'rgba(220,220,220,0.2)', + borderColor: 'rgba(220,220,220,1)', + pointBackgroundColor: 'rgba(220,220,220,1)', + pointHoverBackgroundColor: '#fff', + pointBorderColor: '#fff', + pointHoverBorderColor: 'rgba(220,220,220,1)', data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], }, { label: translations[1], - backgroundColor: "rgba(151,187,205,0.2)", - borderColor: "rgba(151,187,205,1)", - pointBackgroundColor: "rgba(151,187,205,1)", - pointHoverBackgroundColor: "#fff", - pointBorderColor: "#fff", - pointHoverBorderColor: "rgba(151,187,205,1)", + backgroundColor: 'rgba(151,187,205,0.2)', + borderColor: 'rgba(151,187,205,1)', + pointBackgroundColor: 'rgba(151,187,205,1)', + pointHoverBackgroundColor: '#fff', + pointBorderColor: '#fff', + pointHoverBorderColor: 'rgba(151,187,205,1)', data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], }, ], @@ -236,8 +236,8 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s labels: translations.slice(2, 4), datasets: [{ data: [1, 1], - backgroundColor: ["#F7464A", "#46BFBD"], - hoverBackgroundColor: ["#FF5A5E", "#5AD3D1"], + backgroundColor: ['#F7464A', '#46BFBD'], + hoverBackgroundColor: ['#FF5A5E', '#5AD3D1'], }], }, options: { @@ -254,8 +254,8 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s labels: translations.slice(4, 9), datasets: [{ data: [1, 1, 1, 1, 1], - backgroundColor: ["#F7464A", "#46BFBD", "#FDB45C", "#949FB1", "#9FB194"], - hoverBackgroundColor: ["#FF5A5E", "#5AD3D1", "#FFC870", "#A8B3C5", "#A8B3C5"], + backgroundColor: ['#F7464A', '#46BFBD', '#FDB45C', '#949FB1', '#9FB194'], + hoverBackgroundColor: ['#FF5A5E', '#5AD3D1', '#FFC870', '#A8B3C5', '#A8B3C5'], }], }, options: { @@ -375,7 +375,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s function updateTopicsGraph(topics) { if (!Object.keys(topics).length) { topics = {0: { - title: "No users browsing", + title: 'No users browsing', value: 1, }}; } diff --git a/public/src/admin/general/homepage.js b/public/src/admin/general/homepage.js index 00626680b8..3d36460e3c 100644 --- a/public/src/admin/general/homepage.js +++ b/public/src/admin/general/homepage.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/general/homepage', ['admin/settings'], function (Settings) { diff --git a/public/src/admin/general/languages.js b/public/src/admin/general/languages.js index d0d270f5c2..05d3175b27 100644 --- a/public/src/admin/general/languages.js +++ b/public/src/admin/general/languages.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/general/languages', ['admin/settings'], function (Settings) { diff --git a/public/src/admin/general/navigation.js b/public/src/admin/general/navigation.js index 855b1d095e..ad9f5bc676 100644 --- a/public/src/admin/general/navigation.js +++ b/public/src/admin/general/navigation.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], function (translator, iconSelect, jqueryui) { diff --git a/public/src/admin/general/social.js b/public/src/admin/general/social.js index d1bbccefe4..49ee4e6ad0 100644 --- a/public/src/admin/general/social.js +++ b/public/src/admin/general/social.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/general/social', [], function () { diff --git a/public/src/admin/general/sounds.js b/public/src/admin/general/sounds.js index a3f25de5af..ae239034b9 100644 --- a/public/src/admin/general/sounds.js +++ b/public/src/admin/general/sounds.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/general/sounds', ['sounds', 'settings'], function (Sounds, Settings) { diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js index 0e443c14e1..ea3d94d9df 100644 --- a/public/src/admin/manage/categories.js +++ b/public/src/admin/manage/categories.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-serializeobject.min', 'translator'], function (serialize, translator) { @@ -197,7 +197,7 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri animation: 150, handle: '.icon', dataIdAttr: 'data-cid', - ghostClass: "placeholder", + ghostClass: 'placeholder', onAdd: itemDidAdd, onEnd: itemDragDidEnd, }); diff --git a/public/src/admin/manage/category-analytics.js b/public/src/admin/manage/category-analytics.js index 3ae9416a1d..2df2683fcd 100644 --- a/public/src/admin/manage/category-analytics.js +++ b/public/src/admin/manage/category-analytics.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/manage/category-analytics', ['Chart'], function (Chart) { @@ -25,13 +25,13 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { labels: hourlyLabels, datasets: [ { - label: "", - backgroundColor: "rgba(186,139,175,0.2)", - borderColor: "rgba(186,139,175,1)", - pointBackgroundColor: "rgba(186,139,175,1)", - pointHoverBackgroundColor: "#fff", - pointBorderColor: "#fff", - pointHoverBorderColor: "rgba(186,139,175,1)", + label: '', + backgroundColor: 'rgba(186,139,175,0.2)', + borderColor: 'rgba(186,139,175,1)', + pointBackgroundColor: 'rgba(186,139,175,1)', + pointHoverBackgroundColor: '#fff', + pointBorderColor: '#fff', + pointHoverBorderColor: 'rgba(186,139,175,1)', data: ajaxify.data.analytics['pageviews:hourly'], }, ], @@ -40,13 +40,13 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { labels: dailyLabels, datasets: [ { - label: "", - backgroundColor: "rgba(151,187,205,0.2)", - borderColor: "rgba(151,187,205,1)", - pointBackgroundColor: "rgba(151,187,205,1)", - pointHoverBackgroundColor: "#fff", - pointBorderColor: "#fff", - pointHoverBorderColor: "rgba(151,187,205,1)", + label: '', + backgroundColor: 'rgba(151,187,205,0.2)', + borderColor: 'rgba(151,187,205,1)', + pointBackgroundColor: 'rgba(151,187,205,1)', + pointHoverBackgroundColor: '#fff', + pointBorderColor: '#fff', + pointHoverBorderColor: 'rgba(151,187,205,1)', data: ajaxify.data.analytics['pageviews:daily'], }, ], @@ -55,13 +55,13 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { labels: dailyLabels.slice(-7), datasets: [ { - label: "", - backgroundColor: "rgba(171,70,66,0.2)", - borderColor: "rgba(171,70,66,1)", - pointBackgroundColor: "rgba(171,70,66,1)", - pointHoverBackgroundColor: "#fff", - pointBorderColor: "#fff", - pointHoverBorderColor: "rgba(171,70,66,1)", + label: '', + backgroundColor: 'rgba(171,70,66,0.2)', + borderColor: 'rgba(171,70,66,1)', + pointBackgroundColor: 'rgba(171,70,66,1)', + pointHoverBackgroundColor: '#fff', + pointBorderColor: '#fff', + pointHoverBorderColor: 'rgba(171,70,66,1)', data: ajaxify.data.analytics['topics:daily'], }, ], @@ -70,13 +70,13 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { labels: dailyLabels.slice(-7), datasets: [ { - label: "", - backgroundColor: "rgba(161,181,108,0.2)", - borderColor: "rgba(161,181,108,1)", - pointBackgroundColor: "rgba(161,181,108,1)", - pointHoverBackgroundColor: "#fff", - pointBorderColor: "#fff", - pointHoverBorderColor: "rgba(161,181,108,1)", + label: '', + backgroundColor: 'rgba(161,181,108,0.2)', + borderColor: 'rgba(161,181,108,1)', + pointBackgroundColor: 'rgba(161,181,108,1)', + pointHoverBackgroundColor: '#fff', + pointBorderColor: '#fff', + pointHoverBorderColor: 'rgba(161,181,108,1)', data: ajaxify.data.analytics['posts:daily'], }, ], diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js index d6e47a6807..efd87deae8 100644 --- a/public/src/admin/manage/category.js +++ b/public/src/admin/manage/category.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/manage/category', [ diff --git a/public/src/admin/manage/flags.js b/public/src/admin/manage/flags.js index 09b68ed560..45bfff7f70 100644 --- a/public/src/admin/manage/flags.js +++ b/public/src/admin/manage/flags.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/manage/flags', [ @@ -98,13 +98,13 @@ define('admin/manage/flags', [ labels: dailyLabels, datasets: [ { - label: "", - backgroundColor: "rgba(151,187,205,0.2)", - borderColor: "rgba(151,187,205,1)", - pointBackgroundColor: "rgba(151,187,205,1)", - pointHoverBackgroundColor: "#fff", - pointBorderColor: "#fff", - pointHoverBorderColor: "rgba(151,187,205,1)", + label: '', + backgroundColor: 'rgba(151,187,205,0.2)', + borderColor: 'rgba(151,187,205,1)', + pointBackgroundColor: 'rgba(151,187,205,1)', + pointHoverBackgroundColor: '#fff', + pointBorderColor: '#fff', + pointHoverBorderColor: 'rgba(151,187,205,1)', data: ajaxify.data.analytics, }, ], diff --git a/public/src/admin/manage/group.js b/public/src/admin/manage/group.js index 703c126171..19397dc9fd 100644 --- a/public/src/admin/manage/group.js +++ b/public/src/admin/manage/group.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/manage/group', [ @@ -93,8 +93,8 @@ define('admin/manage/group', [ username: userLabel.attr('data-username'), userslug: userLabel.attr('data-userslug'), picture: userLabel.attr('data-picture'), - "icon:bgColor": userLabel.attr('data-usericon-bgColor'), - "icon:text": userLabel.attr('data-usericon-text'), + 'icon:bgColor': userLabel.attr('data-usericon-bgColor'), + 'icon:text': userLabel.attr('data-usericon-text'), }; templates.parse('partials/groups/memberlist', 'members', {group: {isOwner: ajaxify.data.group.isOwner, members: [member]}}, function (html) { diff --git a/public/src/admin/manage/groups.js b/public/src/admin/manage/groups.js index 9f86c6a74d..90f46e82c3 100644 --- a/public/src/admin/manage/groups.js +++ b/public/src/admin/manage/groups.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/manage/groups', ['translator'], function (translator) { diff --git a/public/src/admin/manage/registration.js b/public/src/admin/manage/registration.js index f6918bd674..2b4d430325 100644 --- a/public/src/admin/manage/registration.js +++ b/public/src/admin/manage/registration.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/manage/registration', function () { diff --git a/public/src/admin/manage/tags.js b/public/src/admin/manage/tags.js index 6a157487c0..93846da70e 100644 --- a/public/src/admin/manage/tags.js +++ b/public/src/admin/manage/tags.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/manage/tags', [ @@ -93,8 +93,8 @@ define('admin/manage/tags', [ message: firstTag.find('.tag-modal').html(), buttons: { success: { - label: "Save", - className: "btn-primary save", + label: 'Save', + className: 'btn-primary save', callback: function () { var modal = $('.bootbox'); var bgColor = modal.find('[data-name="bgColor"]').val(); diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js index e59cf28d5b..d5c0ec7ad9 100644 --- a/public/src/admin/manage/users.js +++ b/public/src/admin/manage/users.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/manage/users', ['translator'], function (translator) { diff --git a/public/src/admin/modules/colorpicker.js b/public/src/admin/modules/colorpicker.js index 99b6fe9ba3..c219df634f 100644 --- a/public/src/admin/modules/colorpicker.js +++ b/public/src/admin/modules/colorpicker.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/modules/colorpicker', function () { diff --git a/public/src/admin/modules/instance.js b/public/src/admin/modules/instance.js index 23c0a76124..a8b38062d9 100644 --- a/public/src/admin/modules/instance.js +++ b/public/src/admin/modules/instance.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/modules/instance', function () { diff --git a/public/src/admin/modules/search.js b/public/src/admin/modules/search.js index f47f5f4827..2449a27b2e 100644 --- a/public/src/admin/modules/search.js +++ b/public/src/admin/modules/search.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/modules/search', ['mousetrap'], function (mousetrap) { diff --git a/public/src/admin/modules/selectable.js b/public/src/admin/modules/selectable.js index 73f026023c..80df206333 100644 --- a/public/src/admin/modules/selectable.js +++ b/public/src/admin/modules/selectable.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/modules/selectable', ['jqueryui'], function (jqueryui) { diff --git a/public/src/admin/settings/email.js b/public/src/admin/settings/email.js index e4b02bebc1..ab989903d0 100644 --- a/public/src/admin/settings/email.js +++ b/public/src/admin/settings/email.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/settings/email', ['admin/settings'], function (settings) { @@ -30,10 +30,10 @@ define('admin/settings/email', ['admin/settings'], function (settings) { function configureEmailEditor() { $('#email-editor-selector').on('change', updateEmailEditor); - emailEditor = ace.edit("email-editor"); + emailEditor = ace.edit('email-editor'); emailEditor.$blockScrolling = Infinity; - emailEditor.setTheme("ace/theme/twilight"); - emailEditor.getSession().setMode("ace/mode/html"); + emailEditor.setTheme('ace/theme/twilight'); + emailEditor.getSession().setMode('ace/mode/html'); emailEditor.on('change', function () { var emailPath = $('#email-editor-selector').val(); diff --git a/public/src/admin/settings/general.js b/public/src/admin/settings/general.js index ac8a0eee91..2487035a8b 100644 --- a/public/src/admin/settings/general.js +++ b/public/src/admin/settings/general.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('admin/settings/general', ['admin/settings'], function (Settings) { diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index ee010cfc47..bcb6f5fd05 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var ajaxify = ajaxify || {}; @@ -329,7 +329,7 @@ $(document).ready(function () { callback(data.toString()); }, error: function (error) { - throw new Error("Unable to load template: " + template + " (" + error.statusText + ")"); + throw new Error('Unable to load template: ' + template + ' (' + error.statusText + ')'); }, }); } diff --git a/public/src/app.js b/public/src/app.js index 792abfa76a..2a95ba29f7 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var app = app || {}; @@ -462,8 +462,8 @@ app.cacheBuster = null; } app.handleSearch = function () { - var searchButton = $("#search-button"); - var searchFields = $("#search-fields"); + var searchButton = $('#search-button'); + var searchFields = $('#search-fields'); var searchInput = $('#search-fields input'); $('#search-form .advanced-search-link').on('mousedown', function () { @@ -507,8 +507,8 @@ app.cacheBuster = null; }; app.prepareSearch = function () { - $("#search-fields").removeClass('hidden'); - $("#search-button").addClass('hidden'); + $('#search-fields').removeClass('hidden'); + $('#search-button').addClass('hidden'); $('#search-fields input').focus(); }; diff --git a/public/src/client/category.js b/public/src/client/category.js index 21ebcda265..e61b0b5e53 100644 --- a/public/src/client/category.js +++ b/public/src/client/category.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('forum/category', [ diff --git a/public/src/client/chats.js b/public/src/client/chats.js index 81b72f198b..88fc720080 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -313,11 +313,11 @@ define('forum/chats', [ messages.appendChatMessage($('.expanded-chat .chat-content'), data.message); } else { - if (ajaxify.currentPage.startsWith("chats")) { + if (ajaxify.currentPage.startsWith('chats')) { var roomEl = $('[data-roomid=' + data.roomId + ']'); if (roomEl.length > 0) { - roomEl.addClass("unread"); + roomEl.addClass('unread'); } else { var recentEl = components.get('chat/recent'); templates.parse('partials/chats/recent_room', { diff --git a/public/src/client/footer.js b/public/src/client/footer.js index 58837406ee..b6b7d243c9 100644 --- a/public/src/client/footer.js +++ b/public/src/client/footer.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('forum/footer', ['notifications', 'chat', 'components', 'translator'], function (Notifications, Chat, components, translator) { diff --git a/public/src/client/groups/details.js b/public/src/client/groups/details.js index 9e8191a20f..87ef07b573 100644 --- a/public/src/client/groups/details.js +++ b/public/src/client/groups/details.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('forum/groups/details', [ diff --git a/public/src/client/groups/list.js b/public/src/client/groups/list.js index 3a6a651c39..8a1bb996b4 100644 --- a/public/src/client/groups/list.js +++ b/public/src/client/groups/list.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('forum/groups/list', ['forum/infinitescroll'], function (infinitescroll) { diff --git a/public/src/client/groups/memberlist.js b/public/src/client/groups/memberlist.js index 9550ad2568..e69deb1d82 100644 --- a/public/src/client/groups/memberlist.js +++ b/public/src/client/groups/memberlist.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('forum/groups/memberlist', ['components', 'forum/infinitescroll'], function (components, infinitescroll) { diff --git a/public/src/client/login.js b/public/src/client/login.js index 00b0e8ed73..bf138c2a25 100644 --- a/public/src/client/login.js +++ b/public/src/client/login.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('forum/login', ['translator'], function (translator) { diff --git a/public/src/client/reset.js b/public/src/client/reset.js index ea8e1143f6..06bda6307a 100644 --- a/public/src/client/reset.js +++ b/public/src/client/reset.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('forum/reset', function () { diff --git a/public/src/client/reset_code.js b/public/src/client/reset_code.js index 4104648c47..b62a682273 100644 --- a/public/src/client/reset_code.js +++ b/public/src/client/reset_code.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('forum/reset_code', function () { diff --git a/public/src/client/topic/move-post.js b/public/src/client/topic/move-post.js index 167ef5f413..45845bbcf7 100644 --- a/public/src/client/topic/move-post.js +++ b/public/src/client/topic/move-post.js @@ -39,10 +39,10 @@ define('forum/topic/move-post', [], function () { function showMoveModal(modal) { modal.modal('show') - .css("position", "fixed") - .css("left", Math.max(0, (($(window).width() - modal.outerWidth()) / 2) + $(window).scrollLeft()) + "px") - .css("top", "0px") - .css("z-index", "2000"); + .css('position', 'fixed') + .css('left', Math.max(0, (($(window).width() - modal.outerWidth()) / 2) + $(window).scrollLeft()) + 'px') + .css('top', '0px') + .css('z-index', '2000'); } function movePost(post, pid, tid, callback) { diff --git a/public/src/client/unread.js b/public/src/client/unread.js index 18140185ef..4c1c65b7f1 100644 --- a/public/src/client/unread.js +++ b/public/src/client/unread.js @@ -72,7 +72,7 @@ define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', ' topicSelect.init(); - if ($("body").height() <= $(window).height() && $('[component="category"]').children().length >= 20) { + if ($('body').height() <= $(window).height() && $('[component="category"]').children().length >= 20) { $('#load-more-btn').show(); } diff --git a/public/src/installer/install.js b/public/src/installer/install.js index 540f5c877c..e9aaf7629f 100644 --- a/public/src/installer/install.js +++ b/public/src/installer/install.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; $('document').ready(function () { diff --git a/public/src/modules/chat.js b/public/src/modules/chat.js index e5d82ba4aa..ef5f844d64 100644 --- a/public/src/modules/chat.js +++ b/public/src/modules/chat.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('chat', [ diff --git a/public/src/modules/components.js b/public/src/modules/components.js index da6bd20086..14bf2791b3 100644 --- a/public/src/modules/components.js +++ b/public/src/modules/components.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('components', function () { var components = {}; diff --git a/public/src/modules/coverPhoto.js b/public/src/modules/coverPhoto.js index 797211eff4..8620a5df47 100644 --- a/public/src/modules/coverPhoto.js +++ b/public/src/modules/coverPhoto.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('coverPhoto', [ diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js index 6f2d92fea6..a3251706b3 100644 --- a/public/src/modules/helpers.js +++ b/public/src/modules/helpers.js @@ -1,5 +1,5 @@ (function (exports) { - "use strict"; + 'use strict'; // export the class if we are in a Node-like system. @@ -56,7 +56,7 @@ helpers.stringify = function (obj) { // Turns the incoming object into a JSON string - return JSON.stringify(obj).replace(/&/gm, "&").replace(//gm, ">").replace(/"/g, '"'); + return JSON.stringify(obj).replace(/&/gm, '&').replace(//gm, '>').replace(/"/g, '"'); }; helpers.escape = function (str) { diff --git a/public/src/modules/iconSelect.js b/public/src/modules/iconSelect.js index 29aff83014..3c72303b73 100644 --- a/public/src/modules/iconSelect.js +++ b/public/src/modules/iconSelect.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('iconSelect', function () { diff --git a/public/src/modules/pictureCropper.js b/public/src/modules/pictureCropper.js index c558775c51..670f9bf91b 100644 --- a/public/src/modules/pictureCropper.js +++ b/public/src/modules/pictureCropper.js @@ -43,15 +43,15 @@ define('pictureCropper', ['translator', 'cropper'], function (translator, croppe viewMode: 1, ready: function () { cropperModal.find('.rotate').on('click', function () { - var degrees = this.getAttribute("data-degrees"); + var degrees = this.getAttribute('data-degrees'); cropperTool.rotate(degrees); }); cropperModal.find('.flip').on('click', function () { - var option = this.getAttribute("data-option"); - var method = this.getAttribute("data-method"); + var option = this.getAttribute('data-option'); + var method = this.getAttribute('data-method'); method === 'scaleX' ? cropperTool.scaleX(option) : cropperTool.scaleY(option); - this.setAttribute("data-option", option * -1); + this.setAttribute('data-option', option * -1); }); cropperModal.find('.reset').on('click', function () { @@ -119,7 +119,7 @@ define('pictureCropper', ['translator', 'cropper'], function (translator, croppe var imageUrl; var imageType = file.type; - reader.addEventListener("load", function () { + reader.addEventListener('load', function () { imageUrl = reader.result; data.uploadModal.modal('hide'); diff --git a/public/src/modules/search.js b/public/src/modules/search.js index e4e64288b2..b4ceec533c 100644 --- a/public/src/modules/search.js +++ b/public/src/modules/search.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('search', ['navigator', 'translator'], function (nav, translator) { diff --git a/public/src/modules/settings.js b/public/src/modules/settings.js index 510fa8e822..04d88e40cd 100644 --- a/public/src/modules/settings.js +++ b/public/src/modules/settings.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('settings', function () { @@ -293,14 +293,14 @@ define('settings', function () { app.alert({ title: 'Settings Not Saved', type: 'danger', - message: "NodeBB failed to save the settings.", + message: 'NodeBB failed to save the settings.', timeout: 5000, }); } else { app.alert({ title: 'Settings Saved', type: 'success', - message: "Settings have been successfully saved", + message: 'Settings have been successfully saved', timeout: 2500, }); } diff --git a/public/src/modules/settings/array.js b/public/src/modules/settings/array.js index 368574f68e..c0753ad0c0 100644 --- a/public/src/modules/settings/array.js +++ b/public/src/modules/settings/array.js @@ -57,7 +57,7 @@ define('settings/array', function () { } } helper.fillField(element, value); - if ($("[data-parent=\"_" + key + "\"]", field).length) { + if ($('[data-parent="_' + key + '"]', field).length) { insertCb(separator); } insertCb(element); @@ -124,7 +124,7 @@ define('settings/array', function () { }, get: function (element, trim, empty) { var key = element.data('key') || element.data('parent'); - var children = $("[data-parent=\"_" + key + "\"]", element); + var children = $('[data-parent="_' + key + '"]', element); var values = []; children.each(function (i, child) { child = $(child); diff --git a/public/src/modules/settings/key.js b/public/src/modules/settings/key.js index a7537b1c51..0e5de046ec 100644 --- a/public/src/modules/settings/key.js +++ b/public/src/modules/settings/key.js @@ -75,9 +75,9 @@ define('settings/key', function () { } else if (code >= 48 && code <= 90) { return String.fromCharCode(code).toUpperCase(); } else if (code >= 112 && code <= 123) { - return "F" + (code - 111); + return 'F' + (code - 111); } else { - return keyMap[code] || ("#" + code); + return keyMap[code] || ('#' + code); } } diff --git a/public/src/modules/sounds.js b/public/src/modules/sounds.js index 9b23ab97bc..f3d07acb6c 100644 --- a/public/src/modules/sounds.js +++ b/public/src/modules/sounds.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('sounds', ['buzz'], function (buzz) { diff --git a/public/src/modules/taskbar.js b/public/src/modules/taskbar.js index 40761ea45a..3897fbe6a1 100644 --- a/public/src/modules/taskbar.js +++ b/public/src/modules/taskbar.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; define('taskbar', function () { diff --git a/public/src/modules/translator.js b/public/src/modules/translator.js index 4caf71ac68..8765540d09 100644 --- a/public/src/modules/translator.js +++ b/public/src/modules/translator.js @@ -46,7 +46,7 @@ }(function (string, load, warn) { 'use strict'; var assign = Object.assign || jQuery.extend; - function classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + function classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } var Translator = (function () { /** diff --git a/public/src/overrides.js b/public/src/overrides.js index 899b2d194d..c3c2d64040 100644 --- a/public/src/overrides.js +++ b/public/src/overrides.js @@ -91,7 +91,7 @@ if ('undefined' !== typeof window) { // FIX FOR #1245 - https://github.com/NodeBB/NodeBB/issues/1245 // from http://stackoverflow.com/questions/15931962/bootstrap-dropdown-disappear-with-right-click-on-firefox // obtain a reference to the original handler - var _clearMenus = $._data(document, "events").click.filter(function (el) { + var _clearMenus = $._data(document, 'events').click.filter(function (el) { return el.namespace === 'bs.data-api.dropdown' && el.selector === undefined; }); diff --git a/public/src/utils.js b/public/src/utils.js index 3a0ba8fb2d..504db54ef6 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -165,29 +165,29 @@ }, extensionMimeTypeMap: { - bmp: "image/bmp", - cmx: "image/x-cmx", - cod: "image/cis-cod", - gif: "image/gif", - ico: "image/x-icon", - ief: "image/ief", - jfif: "image/pipeg", - jpe: "image/jpeg", - jpeg: "image/jpeg", - jpg: "image/jpeg", - png: "image/png", - pbm: "image/x-portable-bitmap", - pgm: "image/x-portable-graymap", - pnm: "image/x-portable-anymap", - ppm: "image/x-portable-pixmap", - ras: "image/x-cmu-raster", - rgb: "image/x-rgb", - svg: "image/svg+xml", - tif: "image/tiff", - tiff: "image/tiff", - xbm: "image/x-xbitmap", - xpm: "image/x-xpixmap", - xwd: "image/x-xwindowdump", + bmp: 'image/bmp', + cmx: 'image/x-cmx', + cod: 'image/cis-cod', + gif: 'image/gif', + ico: 'image/x-icon', + ief: 'image/ief', + jfif: 'image/pipeg', + jpe: 'image/jpeg', + jpeg: 'image/jpeg', + jpg: 'image/jpeg', + png: 'image/png', + pbm: 'image/x-portable-bitmap', + pgm: 'image/x-portable-graymap', + pnm: 'image/x-portable-anymap', + ppm: 'image/x-portable-pixmap', + ras: 'image/x-cmu-raster', + rgb: 'image/x-rgb', + svg: 'image/svg+xml', + tif: 'image/tiff', + tiff: 'image/tiff', + xbm: 'image/x-xbitmap', + xpm: 'image/x-xpixmap', + xwd: 'image/x-xwindowdump', }, fileMimeType: function (path) { @@ -230,7 +230,7 @@ // takes a string like 1000 and returns 1,000 addCommas: function (text) { - return text.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"); + return text.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,'); }, toISOString: function (timestamp) { @@ -254,11 +254,11 @@ 'th', 'thead', 'time', 'title', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr'], escapeRegexChars: function (text) { - return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); }, escapeHTML: function (raw) { - return raw.replace(/&/gm, "&").replace(//gm, ">"); + return raw.replace(/&/gm, '&').replace(//gm, '>'); }, isAndroidBrowser: function () { @@ -325,7 +325,7 @@ /* Retrieved from http://stackoverflow.com/a/7557433 @ 27 Mar 2016 */ isElementInViewport: function (el) { // special bonus for those using jQuery - if (typeof jQuery === "function" && el instanceof jQuery) { + if (typeof jQuery === 'function' && el instanceof jQuery) { el = el[0]; } @@ -351,7 +351,7 @@ if (options.url) { a = utils.urlToLocation(options.url); } - params = (a ? a.search : window.location.search).substring(1).split("&"); + params = (a ? a.search : window.location.search).substring(1).split('&'); params.forEach(function (param) { var val = param.split('='); diff --git a/public/src/widgets.js b/public/src/widgets.js index de8a1077ee..5c950563f0 100644 --- a/public/src/widgets.js +++ b/public/src/widgets.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; (function (ajaxify) { diff --git a/src/categories/unread.js b/src/categories/unread.js index 8fe4ecaa31..498391693e 100644 --- a/src/categories/unread.js +++ b/src/categories/unread.js @@ -1,5 +1,5 @@ -"use strict"; +'use strict'; var async = require('async'); var db = require('../database'); diff --git a/src/controllers/accounts/profile.js b/src/controllers/accounts/profile.js index f6279aa8eb..d51a2f56da 100644 --- a/src/controllers/accounts/profile.js +++ b/src/controllers/accounts/profile.js @@ -92,11 +92,11 @@ profileController.get = function (req, res, callback) { res.locals.metaTags = [ { - name: "title", + name: 'title', content: userData.fullname || userData.username, }, { - name: "description", + name: 'description', content: plainAboutMe, }, { @@ -117,7 +117,7 @@ profileController.get = function (req, res, callback) { noEscape: true, }, { - property: "og:image:url", + property: 'og:image:url', content: userData.picture, noEscape: true, } diff --git a/src/controllers/accounts/settings.js b/src/controllers/accounts/settings.js index 16939be08d..68f53bd070 100644 --- a/src/controllers/accounts/settings.js +++ b/src/controllers/accounts/settings.js @@ -83,23 +83,23 @@ settingsController.get = function (req, res, callback) { userData.bootswatchSkinOptions = [ - { name: "Default", value: "default" }, - { name: "Cerulean", value: "cerulean" }, - { name: "Cosmo", value: "cosmo" }, - { name: "Cyborg", value: "cyborg" }, - { name: "Darkly", value: "darkly" }, - { name: "Flatly", value: "flatly" }, - { name: "Journal", value: "journal" }, - { name: "Lumen", value: "lumen" }, - { name: "Paper", value: "paper" }, - { name: "Readable", value: "readable" }, - { name: "Sandstone", value: "sandstone" }, - { name: "Simplex", value: "simplex" }, - { name: "Slate", value: "slate" }, - { name: "Spacelab", value: "spacelab" }, - { name: "Superhero", value: "superhero" }, - { name: "United", value: "united" }, - { name: "Yeti", value: "yeti" }, + { name: 'Default', value: 'default' }, + { name: 'Cerulean', value: 'cerulean' }, + { name: 'Cosmo', value: 'cosmo' }, + { name: 'Cyborg', value: 'cyborg' }, + { name: 'Darkly', value: 'darkly' }, + { name: 'Flatly', value: 'flatly' }, + { name: 'Journal', value: 'journal' }, + { name: 'Lumen', value: 'lumen' }, + { name: 'Paper', value: 'paper' }, + { name: 'Readable', value: 'readable' }, + { name: 'Sandstone', value: 'sandstone' }, + { name: 'Simplex', value: 'simplex' }, + { name: 'Slate', value: 'slate' }, + { name: 'Spacelab', value: 'spacelab' }, + { name: 'Superhero', value: 'superhero' }, + { name: 'United', value: 'united' }, + { name: 'Yeti', value: 'yeti' }, ]; var isCustom = true; diff --git a/src/controllers/admin.js b/src/controllers/admin.js index 70fbe6795d..056a7025aa 100644 --- a/src/controllers/admin.js +++ b/src/controllers/admin.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var adminController = { dashboard: require('./admin/dashboard'), diff --git a/src/controllers/admin/appearance.js b/src/controllers/admin/appearance.js index 8956bd175d..ee3232204a 100644 --- a/src/controllers/admin/appearance.js +++ b/src/controllers/admin/appearance.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var appearanceController = {}; diff --git a/src/controllers/admin/blacklist.js b/src/controllers/admin/blacklist.js index e4ce35ccdc..7ce4edda49 100644 --- a/src/controllers/admin/blacklist.js +++ b/src/controllers/admin/blacklist.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var meta = require('../../meta'); diff --git a/src/controllers/admin/categories.js b/src/controllers/admin/categories.js index 727332a24c..d1e7b1ef7c 100644 --- a/src/controllers/admin/categories.js +++ b/src/controllers/admin/categories.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); diff --git a/src/controllers/admin/flags.js b/src/controllers/admin/flags.js index ad81494c19..2191394b57 100644 --- a/src/controllers/admin/flags.js +++ b/src/controllers/admin/flags.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var validator = require('validator'); diff --git a/src/controllers/admin/groups.js b/src/controllers/admin/groups.js index dbd0787818..2f4fa31664 100644 --- a/src/controllers/admin/groups.js +++ b/src/controllers/admin/groups.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); diff --git a/src/controllers/admin/tags.js b/src/controllers/admin/tags.js index a645e2ef11..5e6c0d71a4 100644 --- a/src/controllers/admin/tags.js +++ b/src/controllers/admin/tags.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var topics = require('../../topics'); diff --git a/src/controllers/admin/uploads.js b/src/controllers/admin/uploads.js index bce0d982d6..c939da345f 100644 --- a/src/controllers/admin/uploads.js +++ b/src/controllers/admin/uploads.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var fs = require('fs'); var path = require('path'); diff --git a/src/controllers/admin/users.js b/src/controllers/admin/users.js index eb774f1e26..cb84792b85 100644 --- a/src/controllers/admin/users.js +++ b/src/controllers/admin/users.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var validator = require('validator'); diff --git a/src/controllers/api.js b/src/controllers/api.js index ff2f0041ac..544beed40a 100644 --- a/src/controllers/api.js +++ b/src/controllers/api.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var validator = require('validator'); diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index 6561bc5385..ffbe36dfc9 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var winston = require('winston'); diff --git a/src/controllers/categories.js b/src/controllers/categories.js index 7fbc26d474..5133444f7a 100644 --- a/src/controllers/categories.js +++ b/src/controllers/categories.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var nconf = require('nconf'); @@ -12,10 +12,10 @@ var categoriesController = {}; categoriesController.list = function (req, res, next) { res.locals.metaTags = [{ - name: "title", + name: 'title', content: validator.escape(String(meta.config.title || 'NodeBB')), }, { - name: "description", + name: 'description', content: validator.escape(String(meta.config.description || '')), }, { property: 'og:title', diff --git a/src/controllers/category.js b/src/controllers/category.js index 218c7c3144..0e68d5a5ce 100644 --- a/src/controllers/category.js +++ b/src/controllers/category.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); @@ -178,7 +178,7 @@ categoryController.get = function (req, res, callback) { content: categoryData.description, }, { - property: "og:type", + property: 'og:type', content: 'website', }, ]; diff --git a/src/controllers/globalmods.js b/src/controllers/globalmods.js index 7e4fd1ffec..793c33653e 100644 --- a/src/controllers/globalmods.js +++ b/src/controllers/globalmods.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var user = require('../user'); var adminBlacklistController = require('./admin/blacklist'); diff --git a/src/controllers/groups.js b/src/controllers/groups.js index e87a9b4361..75df1112eb 100644 --- a/src/controllers/groups.js +++ b/src/controllers/groups.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var nconf = require('nconf'); diff --git a/src/controllers/index.js b/src/controllers/index.js index 359d2ffa40..0f16a19f27 100644 --- a/src/controllers/index.js +++ b/src/controllers/index.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var nconf = require('nconf'); @@ -61,7 +61,7 @@ Controllers.home = function (req, res, next) { var match = /^category\/(\d+)\/(.*)$/.exec(route); if (match) { - req.params.topic_index = "1"; + req.params.topic_index = '1'; req.params.category_id = match[1]; req.params.slug = match[2]; Controllers.category.get(req, res, next); @@ -270,12 +270,12 @@ Controllers.confirmEmail = function (req, res) { Controllers.robots = function (req, res) { res.set('Content-Type', 'text/plain'); - if (meta.config["robots.txt"]) { - res.send(meta.config["robots.txt"]); + if (meta.config['robots.txt']) { + res.send(meta.config['robots.txt']); } else { - res.send("User-agent: *\n" + - "Disallow: " + nconf.get('relative_path') + "/admin/\n" + - "Sitemap: " + nconf.get('url') + "/sitemap.xml"); + res.send('User-agent: *\n' + + 'Disallow: ' + nconf.get('relative_path') + '/admin/\n' + + 'Sitemap: ' + nconf.get('url') + '/sitemap.xml'); } }; diff --git a/src/controllers/mods.js b/src/controllers/mods.js index 4581d7d645..6a1835f980 100644 --- a/src/controllers/mods.js +++ b/src/controllers/mods.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); diff --git a/src/controllers/posts.js b/src/controllers/posts.js index dae990e171..90596d5b34 100644 --- a/src/controllers/posts.js +++ b/src/controllers/posts.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var posts = require('../posts'); var helpers = require('./helpers'); diff --git a/src/controllers/tags.js b/src/controllers/tags.js index 3e364b38d1..36d1969a1d 100644 --- a/src/controllers/tags.js +++ b/src/controllers/tags.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); diff --git a/src/controllers/topics.js b/src/controllers/topics.js index 967747dba4..d74152a37a 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); @@ -187,11 +187,11 @@ topicsController.get = function (req, res, callback) { res.locals.metaTags = [ { - name: "title", + name: 'title', content: topicData.titleRaw, }, { - name: "description", + name: 'description', content: description, }, { @@ -203,11 +203,11 @@ topicsController.get = function (req, res, callback) { content: description, }, { - property: "og:type", + property: 'og:type', content: 'article', }, { - property: "og:url", + property: 'og:url', content: nconf.get('url') + '/topic/' + topicData.slug + (req.params.post_index ? ('/' + req.params.post_index) : ''), noEscape: true, }, @@ -217,12 +217,12 @@ topicsController.get = function (req, res, callback) { noEscape: true, }, { - property: "og:image:url", + property: 'og:image:url', content: ogImageUrl, noEscape: true, }, { - property: "article:published_time", + property: 'article:published_time', content: utils.toISOString(topicData.timestamp), }, { diff --git a/src/controllers/uploads.js b/src/controllers/uploads.js index a70874b921..a82ff32818 100644 --- a/src/controllers/uploads.js +++ b/src/controllers/uploads.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var fs = require('fs'); var path = require('path'); diff --git a/src/controllers/users.js b/src/controllers/users.js index 2d8f3c8225..fdf6fa36cc 100644 --- a/src/controllers/users.js +++ b/src/controllers/users.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var user = require('../user'); diff --git a/src/coverPhoto.js b/src/coverPhoto.js index 0d13098e62..b86d032a24 100644 --- a/src/coverPhoto.js +++ b/src/coverPhoto.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var coverPhoto = {}; var meta = require('./meta'); diff --git a/src/database.js b/src/database.js index 65a5453d09..ef98e09a59 100644 --- a/src/database.js +++ b/src/database.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var nconf = require('nconf'); var databaseName = nconf.get('database'); diff --git a/src/database/mongo.js b/src/database/mongo.js index 27cbbef503..d82d1527c3 100644 --- a/src/database/mongo.js +++ b/src/database/mongo.js @@ -37,8 +37,8 @@ before: function (value) { value = value || nconf.get('mongo:password') || ''; return value; }, }, { - name: "mongo:database", - description: "MongoDB database name", + name: 'mongo:database', + description: 'MongoDB database name', default: nconf.get('mongo:database') || 'nodebb', }, ]; @@ -92,7 +92,7 @@ mongoClient.connect(connString, connOptions, function (err, _db) { if (err) { - winston.error("NodeBB could not connect to your Mongo database. Mongo returned the following error: " + err.message); + winston.error('NodeBB could not connect to your Mongo database. Mongo returned the following error: ' + err.message); return callback(err); } diff --git a/src/database/mongo/hash.js b/src/database/mongo/hash.js index a82fb294b2..a70578cc9f 100644 --- a/src/database/mongo/hash.js +++ b/src/database/mongo/hash.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; module.exports = function (db, module) { var helpers = module.helpers.mongo; diff --git a/src/database/mongo/helpers.js b/src/database/mongo/helpers.js index beda1b506b..c135cf7f12 100644 --- a/src/database/mongo/helpers.js +++ b/src/database/mongo/helpers.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var helpers = {}; diff --git a/src/database/mongo/list.js b/src/database/mongo/list.js index 02871e78fd..e96ad236fb 100644 --- a/src/database/mongo/list.js +++ b/src/database/mongo/list.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; module.exports = function (db, module) { var helpers = module.helpers.mongo; diff --git a/src/database/mongo/main.js b/src/database/mongo/main.js index 49bb8453bf..5eacf84242 100644 --- a/src/database/mongo/main.js +++ b/src/database/mongo/main.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var winston = require('winston'); diff --git a/src/database/mongo/sets.js b/src/database/mongo/sets.js index f3df45647a..3580702d7a 100644 --- a/src/database/mongo/sets.js +++ b/src/database/mongo/sets.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; module.exports = function (db, module) { var helpers = module.helpers.mongo; diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index b8522a323f..cf9dfecc99 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var utils = require('../../../public/src/utils'); diff --git a/src/database/mongo/sorted/intersect.js b/src/database/mongo/sorted/intersect.js index 989ccefd71..b5c0dae92f 100644 --- a/src/database/mongo/sorted/intersect.js +++ b/src/database/mongo/sorted/intersect.js @@ -58,7 +58,7 @@ module.exports = function (db, module) { score: { $cond: { if: { - $eq: ["$_key", sets[index]], + $eq: ['$_key', sets[index]], }, then: { $multiply: ['$score', weight], diff --git a/src/database/redis.js b/src/database/redis.js index 83384c06f2..41dc300d54 100644 --- a/src/database/redis.js +++ b/src/database/redis.js @@ -29,8 +29,8 @@ before: function (value) { value = value || nconf.get('redis:password') || ''; return value; }, }, { - name: "redis:database", - description: "Which database to use (0..n)", + name: 'redis:database', + description: 'Which database to use (0..n)', default: nconf.get('redis:database') || 0, }, ]; @@ -110,7 +110,7 @@ if (dbIdx) { cxn.select(dbIdx, function (error) { if (error) { - winston.error("NodeBB could not connect to your Redis database. Redis returned the following error: " + error.message); + winston.error('NodeBB could not connect to your Redis database. Redis returned the following error: ' + error.message); process.exit(); } }); @@ -150,7 +150,7 @@ return callback(err); } - var lines = data.toString().split("\r\n").sort(); + var lines = data.toString().split('\r\n').sort(); var redisData = {}; lines.forEach(function (line) { var parts = line.split(':'); diff --git a/src/database/redis/hash.js b/src/database/redis/hash.js index cdc364e47e..bb3c24df5d 100644 --- a/src/database/redis/hash.js +++ b/src/database/redis/hash.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; module.exports = function (redisClient, module) { diff --git a/src/database/redis/helpers.js b/src/database/redis/helpers.js index 53167fb5ee..cb2a77d0f9 100644 --- a/src/database/redis/helpers.js +++ b/src/database/redis/helpers.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var helpers = {}; diff --git a/src/database/redis/list.js b/src/database/redis/list.js index c44c23b475..7c6011e3bc 100644 --- a/src/database/redis/list.js +++ b/src/database/redis/list.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; module.exports = function (redisClient, module) { module.listPrepend = function (key, value, callback) { diff --git a/src/database/redis/main.js b/src/database/redis/main.js index 431b234b47..1ddef46355 100644 --- a/src/database/redis/main.js +++ b/src/database/redis/main.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; module.exports = function (redisClient, module) { diff --git a/src/database/redis/sets.js b/src/database/redis/sets.js index 5b2b803868..72bdceb9fd 100644 --- a/src/database/redis/sets.js +++ b/src/database/redis/sets.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; module.exports = function (redisClient, module) { var helpers = module.helpers.redis; diff --git a/src/database/redis/sorted.js b/src/database/redis/sorted.js index 8276476571..9fa7e07694 100644 --- a/src/database/redis/sorted.js +++ b/src/database/redis/sorted.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; module.exports = function (redisClient, module) { diff --git a/src/emailer.js b/src/emailer.js index e9e529c58f..2a1298ac8c 100644 --- a/src/emailer.js +++ b/src/emailer.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var winston = require('winston'); diff --git a/src/emitter.js b/src/emitter.js index ca262257b7..833c091cb6 100644 --- a/src/emitter.js +++ b/src/emitter.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var eventEmitter = new (require('events')).EventEmitter(); diff --git a/src/file.js b/src/file.js index b056e64ac5..1983b8861a 100644 --- a/src/file.js +++ b/src/file.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var fs = require('fs'); var nconf = require('nconf'); diff --git a/src/hotswap.js b/src/hotswap.js index 6ef0f943eb..d46f6fec8e 100644 --- a/src/hotswap.js +++ b/src/hotswap.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var HotSwap = {}; var winston = require('winston'); diff --git a/src/install.js b/src/install.js index 5d93d04764..cb44f75589 100644 --- a/src/install.js +++ b/src/install.js @@ -260,12 +260,12 @@ function createAdmin(callback) { } if (results['password:confirm'] !== results.password) { - winston.warn("Passwords did not match, please try again"); + winston.warn('Passwords did not match, please try again'); return retryPassword(results); } if (results.password.length < meta.config.minimumPasswordLength) { - winston.warn("Password too short, please try again"); + winston.warn('Password too short, please try again'); return retryPassword(results); } diff --git a/src/logger.js b/src/logger.js index f90744afad..186dd62992 100644 --- a/src/logger.js +++ b/src/logger.js @@ -149,8 +149,8 @@ var opts = { try { return 'io: ' + _uid + ' ' + _type + ' ' + util.inspect(Array.prototype.slice.call(_args)) + '\n'; } catch (err) { - winston.info("Logger.prepare_io_string: Failed", err); - return "error"; + winston.info('Logger.prepare_io_string: Failed', err); + return 'error'; } }; diff --git a/src/meta.js b/src/meta.js index 2db2f09ea0..d4aa3cae49 100644 --- a/src/meta.js +++ b/src/meta.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var winston = require('winston'); diff --git a/src/meta/js.js b/src/meta/js.js index ba00c8fc18..2b8d0db5df 100644 --- a/src/meta/js.js +++ b/src/meta/js.js @@ -40,7 +40,7 @@ module.exports = function (Meta) { 'public/src/ajaxify.js', 'public/src/overrides.js', 'public/src/widgets.js', - "./node_modules/promise-polyfill/promise.js", + './node_modules/promise-polyfill/promise.js', ], // files listed below are only available client-side, or are bundled in to reduce # of network requests on cold load @@ -81,11 +81,11 @@ module.exports = function (Meta) { // modules listed below are routed through express (/src/modules) so they can be defined anonymously 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', + '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', }, }, }; diff --git a/src/meta/tags.js b/src/meta/tags.js index 27a4e1e7ec..56269633ae 100644 --- a/src/meta/tags.js +++ b/src/meta/tags.js @@ -53,11 +53,11 @@ module.exports = function (Meta) { }, links: function (next) { var defaultLinks = [{ - rel: "icon", - type: "image/x-icon", + rel: 'icon', + type: 'image/x-icon', href: nconf.get('relative_path') + '/favicon.ico' + (Meta.config['cache-buster'] ? '?' + Meta.config['cache-buster'] : ''), }, { - rel: "manifest", + rel: 'manifest', href: nconf.get('relative_path') + '/manifest.json', }]; diff --git a/src/meta/templates.js b/src/meta/templates.js index 44740fc787..074c02ac26 100644 --- a/src/meta/templates.js +++ b/src/meta/templates.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var mkdirp = require('mkdirp'); var rimraf = require('rimraf'); @@ -121,13 +121,13 @@ function compile(callback) { var regex = /[ \t]*[ \t]*/; while ((matches = file.match(regex)) !== null) { - var partial = "/" + matches[1]; + var partial = '/' + matches[1]; if (paths[partial] && relativePath !== partial) { file = file.replace(regex, fs.readFileSync(paths[partial]).toString()); } else { winston.warn('[meta/templates] Partial not loaded: ' + matches[1]); - file = file.replace(regex, ""); + file = file.replace(regex, ''); } } diff --git a/src/middleware/admin.js b/src/middleware/admin.js index f5439a139b..02c15c099d 100644 --- a/src/middleware/admin.js +++ b/src/middleware/admin.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var winston = require('winston'); diff --git a/src/middleware/headers.js b/src/middleware/headers.js index 899ce03c12..c31a307bf3 100644 --- a/src/middleware/headers.js +++ b/src/middleware/headers.js @@ -24,11 +24,11 @@ module.exports = function (middleware) { middleware.addExpiresHeaders = function (req, res, next) { if (req.app.enabled('cache')) { - res.setHeader("Cache-Control", "public, max-age=5184000"); - res.setHeader("Expires", new Date(Date.now() + 5184000000).toUTCString()); + res.setHeader('Cache-Control', 'public, max-age=5184000'); + res.setHeader('Expires', new Date(Date.now() + 5184000000).toUTCString()); } else { - res.setHeader("Cache-Control", "public, max-age=0"); - res.setHeader("Expires", new Date().toUTCString()); + res.setHeader('Cache-Control', 'public, max-age=0'); + res.setHeader('Expires', new Date().toUTCString()); } next(); diff --git a/src/middleware/index.js b/src/middleware/index.js index 21208cf9a6..e9a172c326 100644 --- a/src/middleware/index.js +++ b/src/middleware/index.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var fs = require('fs'); diff --git a/src/navigation/admin.js b/src/navigation/admin.js index 50214179da..ade6adaea1 100644 --- a/src/navigation/admin.js +++ b/src/navigation/admin.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); diff --git a/src/navigation/index.js b/src/navigation/index.js index 5563c44c4b..ee97c88f0c 100644 --- a/src/navigation/index.js +++ b/src/navigation/index.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var nconf = require('nconf'); var admin = require('./admin'); diff --git a/src/plugins.js b/src/plugins.js index 3ef50f2c57..c0b4ce980a 100644 --- a/src/plugins.js +++ b/src/plugins.js @@ -179,7 +179,7 @@ var middleware; if (pluginTemplates) { pluginTemplates.forEach(function (pluginTemplate) { if (pluginTemplate.endsWith('.tpl')) { - tplName = "/" + pluginTemplate.replace(templatesPath, '').substring(1); + tplName = '/' + pluginTemplate.replace(templatesPath, '').substring(1); if (templates.hasOwnProperty(tplName)) { winston.verbose('[plugins] ' + tplName + ' replaced by ' + plugin.id); diff --git a/src/privileges.js b/src/privileges.js index 8fe7a6c503..cccbd089d6 100644 --- a/src/privileges.js +++ b/src/privileges.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var privileges = module.exports; diff --git a/src/rewards/admin.js b/src/rewards/admin.js index d54c5b9f2e..bd52824f94 100644 --- a/src/rewards/admin.js +++ b/src/rewards/admin.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var plugins = require('../plugins'); diff --git a/src/rewards/index.js b/src/rewards/index.js index ed8f00d54f..c32bc94c0e 100644 --- a/src/rewards/index.js +++ b/src/rewards/index.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var db = require('../database'); diff --git a/src/routes/accounts.js b/src/routes/accounts.js index ae80b8aa4a..a462399b40 100644 --- a/src/routes/accounts.js +++ b/src/routes/accounts.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var helpers = require('./helpers'); var setupPageRoute = helpers.setupPageRoute; diff --git a/src/routes/admin.js b/src/routes/admin.js index 0611eede70..35ad84203d 100644 --- a/src/routes/admin.js +++ b/src/routes/admin.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var express = require('express'); diff --git a/src/routes/api.js b/src/routes/api.js index c8c11c099e..92649d8fad 100644 --- a/src/routes/api.js +++ b/src/routes/api.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var express = require('express'); diff --git a/src/routes/authentication.js b/src/routes/authentication.js index bc8833f034..1f3a401755 100644 --- a/src/routes/authentication.js +++ b/src/routes/authentication.js @@ -1,5 +1,5 @@ (function (Auth) { - "use strict"; + 'use strict'; var passport = require('passport'); var passportLocal = require('passport-local').Strategy; diff --git a/src/routes/debug.js b/src/routes/debug.js index 175f1ce489..59ec743c00 100644 --- a/src/routes/debug.js +++ b/src/routes/debug.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var express = require('express'); var nconf = require('nconf'); diff --git a/src/routes/feeds.js b/src/routes/feeds.js index d75491e573..3ee7593714 100644 --- a/src/routes/feeds.js +++ b/src/routes/feeds.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var rss = require('rss'); diff --git a/src/routes/index.js b/src/routes/index.js index 5e92851ef9..40688539a4 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var nconf = require('nconf'); var winston = require('winston'); diff --git a/src/routes/meta.js b/src/routes/meta.js index cb089f1200..cfeeac5b9b 100644 --- a/src/routes/meta.js +++ b/src/routes/meta.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; module.exports = function (app, middleware, controllers) { app.get('/sitemap.xml', controllers.sitemap.render); diff --git a/src/settings.js b/src/settings.js index f740a6272a..b663721991 100644 --- a/src/settings.js +++ b/src/settings.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var meta = require('./meta'); diff --git a/src/social.js b/src/social.js index 24aa29df2f..665b57866b 100644 --- a/src/social.js +++ b/src/social.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var plugins = require('./plugins'); var db = require('./database'); @@ -15,19 +15,19 @@ social.getPostSharing = function (callback) { var networks = [ { - id: "facebook", - name: "Facebook", - class: "fa-facebook", + id: 'facebook', + name: 'Facebook', + class: 'fa-facebook', }, { - id: "twitter", - name: "Twitter", - class: "fa-twitter", + id: 'twitter', + name: 'Twitter', + class: 'fa-twitter', }, { - id: "google", - name: "Google+", - class: "fa-google-plus", + id: 'google', + name: 'Google+', + class: 'fa-google-plus', }, ]; diff --git a/src/socket.io/admin.js b/src/socket.io/admin.js index f3266f0152..0658d48a34 100644 --- a/src/socket.io/admin.js +++ b/src/socket.io/admin.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var winston = require('winston'); diff --git a/src/socket.io/admin/categories.js b/src/socket.io/admin/categories.js index 43287fc2b8..faf244f6ef 100644 --- a/src/socket.io/admin/categories.js +++ b/src/socket.io/admin/categories.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); diff --git a/src/socket.io/admin/groups.js b/src/socket.io/admin/groups.js index bb4ab39f4a..b193f6e6ea 100644 --- a/src/socket.io/admin/groups.js +++ b/src/socket.io/admin/groups.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var groups = require('../../groups'); diff --git a/src/socket.io/admin/navigation.js b/src/socket.io/admin/navigation.js index 07af8baa04..ae67588377 100644 --- a/src/socket.io/admin/navigation.js +++ b/src/socket.io/admin/navigation.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var navigationAdmin = require('../../navigation/admin'); var SocketNavigation = {}; diff --git a/src/socket.io/admin/rewards.js b/src/socket.io/admin/rewards.js index 3d895a5281..8b845a33c1 100644 --- a/src/socket.io/admin/rewards.js +++ b/src/socket.io/admin/rewards.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var rewardsAdmin = require('../../rewards/admin'); var SocketRewards = module.exports; diff --git a/src/socket.io/admin/social.js b/src/socket.io/admin/social.js index 5cb797edf1..e69bcc4084 100644 --- a/src/socket.io/admin/social.js +++ b/src/socket.io/admin/social.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var social = require('../../social'); var SocketSocial = {}; diff --git a/src/socket.io/admin/tags.js b/src/socket.io/admin/tags.js index 4362159502..8fe50790eb 100644 --- a/src/socket.io/admin/tags.js +++ b/src/socket.io/admin/tags.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var topics = require('../../topics'); diff --git a/src/socket.io/admin/user.js b/src/socket.io/admin/user.js index f2dd3a6483..aca1bff8a8 100644 --- a/src/socket.io/admin/user.js +++ b/src/socket.io/admin/user.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var validator = require('validator'); diff --git a/src/socket.io/groups.js b/src/socket.io/groups.js index 5689b75538..33df72409a 100644 --- a/src/socket.io/groups.js +++ b/src/socket.io/groups.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); diff --git a/src/socket.io/index.js b/src/socket.io/index.js index 80640a4578..fcce4ecc69 100644 --- a/src/socket.io/index.js +++ b/src/socket.io/index.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var nconf = require('nconf'); diff --git a/src/socket.io/modules.js b/src/socket.io/modules.js index d77cec93b9..a3571c5906 100644 --- a/src/socket.io/modules.js +++ b/src/socket.io/modules.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var validator = require('validator'); diff --git a/src/socket.io/notifications.js b/src/socket.io/notifications.js index 9e0c4f4301..6ab97c5dc8 100644 --- a/src/socket.io/notifications.js +++ b/src/socket.io/notifications.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var user = require('../user'); diff --git a/src/socket.io/posts.js b/src/socket.io/posts.js index 933a758fb0..0a31f8427b 100644 --- a/src/socket.io/posts.js +++ b/src/socket.io/posts.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); diff --git a/src/topics.js b/src/topics.js index 8d1184be5f..23f233d0d2 100644 --- a/src/topics.js +++ b/src/topics.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var _ = require('underscore'); diff --git a/src/upgrade.js b/src/upgrade.js index 99ac96842d..1deba41cc7 100644 --- a/src/upgrade.js +++ b/src/upgrade.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var db = require('./database'); diff --git a/src/user/digest.js b/src/user/digest.js index b4de94efb6..76463caab4 100644 --- a/src/user/digest.js +++ b/src/user/digest.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var winston = require('winston'); diff --git a/src/webserver.js b/src/webserver.js index a1f45cec04..dbc65a36ec 100644 --- a/src/webserver.js +++ b/src/webserver.js @@ -220,7 +220,7 @@ function listen(callback) { winston.info('Using ports 80 and 443 is not recommend; use a proxy instead. See README.md'); } - var bind_address = ((nconf.get('bind_address') === "0.0.0.0" || !nconf.get('bind_address')) ? '0.0.0.0' : nconf.get('bind_address')); + var bind_address = ((nconf.get('bind_address') === '0.0.0.0' || !nconf.get('bind_address')) ? '0.0.0.0' : nconf.get('bind_address')); var args = isSocket ? [socketPath] : [port, bind_address]; var oldUmask; diff --git a/src/widgets/admin.js b/src/widgets/admin.js index 88c13332cc..113ff80637 100644 --- a/src/widgets/admin.js +++ b/src/widgets/admin.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var fs = require('fs'); var path = require('path'); diff --git a/src/widgets/index.js b/src/widgets/index.js index 247700ea21..abe63781ef 100644 --- a/src/widgets/index.js +++ b/src/widgets/index.js @@ -1,4 +1,4 @@ -"use strict"; +'use strict'; var async = require('async'); var winston = require('winston'); diff --git a/test/helpers/index.js b/test/helpers/index.js index cfc1f20074..43c7c26211 100644 --- a/test/helpers/index.js +++ b/test/helpers/index.js @@ -148,14 +148,14 @@ helpers.copyFile = function (source, target, callback) { var cbCalled = false; var rd = fs.createReadStream(source); - rd.on("error", function (err) { + rd.on('error', function (err) { done(err); }); var wr = fs.createWriteStream(target); - wr.on("error", function (err) { + wr.on('error', function (err) { done(err); }); - wr.on("close", function () { + wr.on('close', function () { done(); }); rd.pipe(wr); diff --git a/test/mocks/newXhr.js b/test/mocks/newXhr.js index a523d77617..2288b8073c 100644 --- a/test/mocks/newXhr.js +++ b/test/mocks/newXhr.js @@ -35,7 +35,7 @@ var callbacks = {}; var newXhr = function () { stdXhr.apply(this, arguments); for (var method in callbacks) { - if (typeof callbacks[method] == "function") { + if (typeof callbacks[method] == 'function') { callbacks[method].apply(this, arguments); } } diff --git a/test/socket.io.js b/test/socket.io.js index 3fcc7afa2c..0671354bcc 100644 --- a/test/socket.io.js +++ b/test/socket.io.js @@ -3,7 +3,7 @@ // see https://gist.github.com/jfromaniello/4087861#gistcomment-1447029 -process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; +process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; var assert = require('assert'); var async = require('async'); diff --git a/test/translator.js b/test/translator.js index 185f8235f3..196d5ce56f 100644 --- a/test/translator.js +++ b/test/translator.js @@ -119,7 +119,7 @@ describe('new Translator(language)', function () { var translator = Translator.create('en-GB'); var title = 'Test 1\\, 2\\, 3 % salmon'; - var key = "[[topic:composer.replying_to, " + title + "]]"; + var key = '[[topic:composer.replying_to, ' + title + ']]'; return translator.translate(key).then(function (translated) { assert.strictEqual(translated, 'Replying to Test 1, 2, 3 % salmon'); }); From f3a8256f35319665a96dc0fa92376042ebf38110 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 02:23:47 -0700 Subject: [PATCH 21/60] ESlint strict --- .eslintrc | 241 ++++++++++++------------ package.json | 6 +- public/src/modules/helpers.js | 5 +- public/src/modules/settings/array.js | 2 + public/src/modules/settings/checkbox.js | 2 + public/src/modules/settings/key.js | 2 + public/src/modules/settings/number.js | 2 + public/src/modules/settings/object.js | 2 + public/src/modules/settings/select.js | 2 + public/src/modules/settings/textarea.js | 2 + public/src/modules/translator.js | 4 +- public/src/require-config.js | 2 + public/src/utils.js | 4 +- src/posts/cache.js | 2 + src/routes/authentication.js | 4 +- test/mocks/databasemock.js | 5 +- test/mocks/newXhr.js | 2 + 17 files changed, 154 insertions(+), 135 deletions(-) diff --git a/.eslintrc b/.eslintrc index abfaa76baf..62762f2426 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,124 +1,129 @@ { - "extends": "airbnb", + "extends": "airbnb-base", + "parserOptions": { + "sourceType": "script" + }, - "rules": { - // Customized - "handle-callback-err": [ "error","^(e$|(e|(.*(_e|E)))rr)" ], - "comma-dangle": ["error", { - "arrays": "always-multiline", - "objects": "always-multiline", - "imports": "always-multiline", - "exports": "always-multiline", - "functions": "never" - }], - "no-empty": ["error", { "allowEmptyCatch": true }], - "no-underscore-dangle": "off", - "newline-per-chained-call": "off", - "no-console": "off", - "no-mixed-operators": ["error", { "allowSamePrecedence": true }], + "rules": { + // Customized + "handle-callback-err": [ "error","^(e$|(e|(.*(_e|E)))rr)" ], + "comma-dangle": ["error", { + "arrays": "always-multiline", + "objects": "always-multiline", + "imports": "always-multiline", + "exports": "always-multiline", + "functions": "never" + }], + "no-empty": ["error", { "allowEmptyCatch": true }], + "no-underscore-dangle": "off", + "newline-per-chained-call": "off", + "no-console": "off", + "no-mixed-operators": ["error", { "allowSamePrecedence": true }], + "strict": ["error", "global"], - // ES6 - "prefer-rest-params": "off", - "prefer-spread": "off", + // ES6 + "prefer-rest-params": "off", + "prefer-spread": "off", + "prefer-arrow-callback": "off", - // TODO - "import/no-unresolved": "off", - "import/no-extraneous-dependencies": "off", - "import/no-dynamic-require": "off", - "import/newline-after-import": "off", - "no-bitwise": "off", - "global-require": "off", + // TODO + "import/no-unresolved": "off", + "import/no-extraneous-dependencies": "off", + "import/no-dynamic-require": "off", + "import/newline-after-import": "off", + "no-bitwise": "off", + "global-require": "off", - // "linebreak-style": "off", - // "one-var": "off", - // "no-undef": "off", - "max-len": "off", - "no-new": "off", - "max-nested-callbacks": "off", - "no-mixed-requires": "off", - // "brace-style": "off", - "max-statements-per-line": "off", - "no-unused-vars": "off", - "no-mixed-spaces-and-tabs": "off", - "no-useless-concat": "off", - "require-jsdoc": "off", - "eqeqeq": "off", - "camelcase": "off", - "no-negated-condition": "off", - "one-var-declaration-per-line": "off", - "new-cap": "off", - "no-lonely-if": "off", - "radix": "off", - "no-else-return": "off", - "no-useless-escape": "off", - "block-scoped-var": "off", - "operator-assignment": "off", - "default-case": "off", - "yoda": "off", - "no-use-before-define": "off", - "no-loop-func": "off", - "no-void": "off", - "valid-jsdoc": "off", - "o-eq-null": "off", - "no-cond-assign": "off", - "no-eq-null": "off", - "no-redeclare": "off", - "no-unreachable": "off", - "no-nested-ternary": "off", - "operator-linebreak": "off", - "guard-for-in": "off", - "no-unneeded-ternary": "off", - "no-sequences": "off", - "no-extend-native": "off", - "no-shadow-restricted-names": "off", - "no-extra-boolean-cast": "off", - "no-script-url": "off", - "no-path-concat": "off", - "no-unused-expressions": "off", - "no-restricted-module": "off", - "no-return-assign": "off", - "no-restricted-modules": "off", - "no-tabs": "off", - "indent": "off", - "func-names": "off", - "prefer-arrow-callback": "off", - "object-curly-spacing": "off", - "no-var": "off", - "no-shadow": "off", - "prefer-template": "off", - "padded-blocks": "off", - "eol-last": "off", - "lines-around-directive": "off", - "no-restricted-syntax": "off", - "vars-on-top": "off", - "no-prototype-builtins": "off", - "object-shorthand": "off", - "no-param-reassign": "off", - "consistent-return": "off", - "strict": "off", - // "comma-dangle": "off", - // "no-multi-spaces": "off", - // "quotes": "off", - // "keyword-spacing": "off", - // "no-mixed-operators": "off", - // "comma-spacing": "off", - // "no-trailing-spaces": "off", - // "key-spacing": "off", - // "no-multiple-empty-lines": "off", - // "spaced-comment": "off", - // "space-in-parens": "off", - // "block-spacing": "off", - // "quote-props": "off", - // "space-unary-ops": "off", - // "no-plusplus": "off", - // "no-empty": "off", - // "dot-notation": "off", - // "func-call-spacing": "off", - // "array-bracket-spacing": "off", - // "object-property-newline": "off", - // "no-continue": "off", - // "no-extra-semi": "off", - // "no-spaced-func": "off", - // "no-useless-return": "off" - } + // "linebreak-style": "off", + // "one-var": "off", + // "no-undef": "off", + "max-len": "off", + "no-new": "off", + "max-nested-callbacks": "off", + "no-mixed-requires": "off", + // "brace-style": "off", + "max-statements-per-line": "off", + "no-unused-vars": "off", + "no-mixed-spaces-and-tabs": "off", + "no-useless-concat": "off", + "require-jsdoc": "off", + "eqeqeq": "off", + "camelcase": "off", + "no-negated-condition": "off", + "one-var-declaration-per-line": "off", + "new-cap": "off", + "no-lonely-if": "off", + "radix": "off", + "no-else-return": "off", + "no-useless-escape": "off", + "block-scoped-var": "off", + "operator-assignment": "off", + "default-case": "off", + "yoda": "off", + "no-use-before-define": "off", + "no-loop-func": "off", + "no-void": "off", + "valid-jsdoc": "off", + "o-eq-null": "off", + "no-cond-assign": "off", + "no-eq-null": "off", + "no-redeclare": "off", + "no-unreachable": "off", + "no-nested-ternary": "off", + "operator-linebreak": "off", + "guard-for-in": "off", + "no-unneeded-ternary": "off", + "no-sequences": "off", + "no-extend-native": "off", + "no-shadow-restricted-names": "off", + "no-extra-boolean-cast": "off", + "no-script-url": "off", + "no-path-concat": "off", + "no-unused-expressions": "off", + "no-restricted-module": "off", + "no-return-assign": "off", + "no-restricted-modules": "off", + "no-tabs": "off", + "indent": "off", + "func-names": "off", + "object-curly-spacing": "off", + "no-var": "off", + "no-shadow": "off", + "prefer-template": "off", + "padded-blocks": "off", + "eol-last": "off", + "lines-around-directive": "off", + "no-restricted-syntax": "off", + "vars-on-top": "off", + "no-prototype-builtins": "off", + "object-shorthand": "off", + "no-param-reassign": "off", + "consistent-return": "off", + "no-multi-assign": "off", + // "strict": "off", + // "comma-dangle": "off", + // "no-multi-spaces": "off", + // "quotes": "off", + // "keyword-spacing": "off", + // "no-mixed-operators": "off", + // "comma-spacing": "off", + // "no-trailing-spaces": "off", + // "key-spacing": "off", + // "no-multiple-empty-lines": "off", + // "spaced-comment": "off", + // "space-in-parens": "off", + // "block-spacing": "off", + // "quote-props": "off", + // "space-unary-ops": "off", + // "no-plusplus": "off", + // "no-empty": "off", + // "dot-notation": "off", + // "func-call-spacing": "off", + // "array-bracket-spacing": "off", + // "object-property-newline": "off", + // "no-continue": "off", + // "no-extra-semi": "off", + // "no-spaced-func": "off", + // "no-useless-return": "off" + } } diff --git a/package.json b/package.json index e5907c0378..69fb210e96 100644 --- a/package.json +++ b/package.json @@ -99,10 +99,8 @@ "devDependencies": { "coveralls": "^2.11.14", "eslint": "^3.12.0", - "eslint-config-airbnb": "^13.0.0", - "eslint-plugin-import": "^2.0.0", - "eslint-plugin-jsx-a11y": "^2.2.3", - "eslint-plugin-react": "^6.8.0", + "eslint-config-airbnb-base": "^11.1.0", + "eslint-plugin-import": "^2.2.0", "grunt": "~1.0.0", "grunt-contrib-watch": "^1.0.0", "istanbul": "^0.4.2", diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js index a3251706b3..98d8aeae7b 100644 --- a/public/src/modules/helpers.js +++ b/public/src/modules/helpers.js @@ -1,7 +1,6 @@ -(function (exports) { - 'use strict'; - +'use strict'; +(function (exports) { // export the class if we are in a Node-like system. if (typeof module === 'object' && module.exports === exports) { exports = module.exports/* = SemVer*/; diff --git a/public/src/modules/settings/array.js b/public/src/modules/settings/array.js index c0753ad0c0..e2f606d1db 100644 --- a/public/src/modules/settings/array.js +++ b/public/src/modules/settings/array.js @@ -1,3 +1,5 @@ +'use strict'; + define('settings/array', function () { var Settings = null; diff --git a/public/src/modules/settings/checkbox.js b/public/src/modules/settings/checkbox.js index f9f233d7c6..e1fd6fd614 100644 --- a/public/src/modules/settings/checkbox.js +++ b/public/src/modules/settings/checkbox.js @@ -1,3 +1,5 @@ +'use strict'; + define('settings/checkbox', function () { var Settings = null; diff --git a/public/src/modules/settings/key.js b/public/src/modules/settings/key.js index 0e5de046ec..d5cf969693 100644 --- a/public/src/modules/settings/key.js +++ b/public/src/modules/settings/key.js @@ -1,3 +1,5 @@ +'use strict'; + define('settings/key', function () { var Settings = null; diff --git a/public/src/modules/settings/number.js b/public/src/modules/settings/number.js index b31296c6fd..e8703eef28 100644 --- a/public/src/modules/settings/number.js +++ b/public/src/modules/settings/number.js @@ -1,3 +1,5 @@ +'use strict'; + define('settings/number', function () { return { diff --git a/public/src/modules/settings/object.js b/public/src/modules/settings/object.js index 8bf7e8400b..5f4d897700 100644 --- a/public/src/modules/settings/object.js +++ b/public/src/modules/settings/object.js @@ -1,3 +1,5 @@ +'use strict'; + define('settings/object', function () { var Settings = null; diff --git a/public/src/modules/settings/select.js b/public/src/modules/settings/select.js index 78f98b4cea..164d2c2cb7 100644 --- a/public/src/modules/settings/select.js +++ b/public/src/modules/settings/select.js @@ -1,3 +1,5 @@ +'use strict'; + define('settings/select', function () { var Settings = null; diff --git a/public/src/modules/settings/textarea.js b/public/src/modules/settings/textarea.js index 86a96be935..d8e4cb2268 100644 --- a/public/src/modules/settings/textarea.js +++ b/public/src/modules/settings/textarea.js @@ -1,3 +1,5 @@ +'use strict'; + define('settings/textarea', function () { var Settings = null; diff --git a/public/src/modules/translator.js b/public/src/modules/translator.js index 8765540d09..9722e51ec8 100644 --- a/public/src/modules/translator.js +++ b/public/src/modules/translator.js @@ -1,7 +1,6 @@ - +'use strict'; (function (factory) { - 'use strict'; function loadClient(language, namespace) { return Promise.resolve(jQuery.getJSON(config.relative_path + '/assets/language/' + language + '/' + namespace + '.json?' + config['cache-buster'])); } @@ -44,7 +43,6 @@ window.translator = factory(window.string, loadClient, warn); } }(function (string, load, warn) { - 'use strict'; var assign = Object.assign || jQuery.extend; function classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } diff --git a/public/src/require-config.js b/public/src/require-config.js index b102a5abae..a7c70ac70e 100644 --- a/public/src/require-config.js +++ b/public/src/require-config.js @@ -1,3 +1,5 @@ +'use strict'; + require.config({ baseUrl: config.relative_path + '/assets/src/modules', waitSeconds: 7, diff --git a/public/src/utils.js b/public/src/utils.js index 504db54ef6..16cd44d998 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -1,6 +1,6 @@ -(function (module) { - 'use strict'; +'use strict'; +(function (module) { var utils; var fs; var XRegExp; diff --git a/src/posts/cache.js b/src/posts/cache.js index a9050c8a73..c43b3ef430 100644 --- a/src/posts/cache.js +++ b/src/posts/cache.js @@ -1,3 +1,5 @@ +'use strict'; + var LRU = require('lru-cache'); var meta = require('../meta'); diff --git a/src/routes/authentication.js b/src/routes/authentication.js index 1f3a401755..f2735ab8a9 100644 --- a/src/routes/authentication.js +++ b/src/routes/authentication.js @@ -1,6 +1,6 @@ -(function (Auth) { - 'use strict'; +'use strict'; +(function (Auth) { var passport = require('passport'); var passportLocal = require('passport-local').Strategy; var nconf = require('nconf'); diff --git a/test/mocks/databasemock.js b/test/mocks/databasemock.js index dd4424c959..20eee3b5b9 100644 --- a/test/mocks/databasemock.js +++ b/test/mocks/databasemock.js @@ -1,12 +1,11 @@ +'use strict'; + /** * Database Mock - wrapper for database.js, makes system use separate test db, instead of production * ATTENTION: testing db is flushed before every use! */ (function (module) { - 'use strict'; - - var async = require('async'); var winston = require('winston'); var path = require('path'); diff --git a/test/mocks/newXhr.js b/test/mocks/newXhr.js index 2288b8073c..1e223a8f19 100644 --- a/test/mocks/newXhr.js +++ b/test/mocks/newXhr.js @@ -1,3 +1,5 @@ +'use strict'; + // see https://gist.github.com/jfromaniello/4087861#gistcomment-1447029 // XMLHttpRequest to override. From 41896e1fc75ac8e825771937ac075500cec21a9d Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 02:28:54 -0700 Subject: [PATCH 22/60] ESlint lines-around-directive --- .eslintrc | 18 +++++++++--------- public/src/modules/components.js | 1 + src/middleware/ratelimit.js | 3 +-- src/socket.io/modules.js | 1 + 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/.eslintrc b/.eslintrc index 62762f2426..a2008ce6cd 100644 --- a/.eslintrc +++ b/.eslintrc @@ -20,6 +20,7 @@ "no-console": "off", "no-mixed-operators": ["error", { "allowSamePrecedence": true }], "strict": ["error", "global"], + "consistent-return": "off", // ES6 "prefer-rest-params": "off", @@ -33,11 +34,17 @@ "import/newline-after-import": "off", "no-bitwise": "off", "global-require": "off", + "no-multi-assign": "off", + "max-len": "off", + "no-param-reassign": "off", + "object-shorthand": "off", + "no-prototype-builtins": "off", + "vars-on-top": "off", + "no-restricted-syntax": "off", // "linebreak-style": "off", // "one-var": "off", // "no-undef": "off", - "max-len": "off", "no-new": "off", "max-nested-callbacks": "off", "no-mixed-requires": "off", @@ -92,14 +99,7 @@ "prefer-template": "off", "padded-blocks": "off", "eol-last": "off", - "lines-around-directive": "off", - "no-restricted-syntax": "off", - "vars-on-top": "off", - "no-prototype-builtins": "off", - "object-shorthand": "off", - "no-param-reassign": "off", - "consistent-return": "off", - "no-multi-assign": "off", + // "lines-around-directive": "off", // "strict": "off", // "comma-dangle": "off", // "no-multi-spaces": "off", diff --git a/public/src/modules/components.js b/public/src/modules/components.js index 14bf2791b3..9ddec2b7a9 100644 --- a/public/src/modules/components.js +++ b/public/src/modules/components.js @@ -1,4 +1,5 @@ 'use strict'; + define('components', function () { var components = {}; diff --git a/src/middleware/ratelimit.js b/src/middleware/ratelimit.js index 878deb2727..504cb0acd7 100644 --- a/src/middleware/ratelimit.js +++ b/src/middleware/ratelimit.js @@ -1,6 +1,5 @@ - - 'use strict'; + var winston = require('winston'); var ratelimit = module.exports; diff --git a/src/socket.io/modules.js b/src/socket.io/modules.js index a3571c5906..64f8fd0a5a 100644 --- a/src/socket.io/modules.js +++ b/src/socket.io/modules.js @@ -1,4 +1,5 @@ 'use strict'; + var async = require('async'); var validator = require('validator'); From feb8405f95d6e2f465f1267781ef17b4a4522a50 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 02:30:48 -0700 Subject: [PATCH 23/60] ESlint eol-last --- .eslintrc | 2 +- Gruntfile.js | 2 +- bcrypt.js | 2 +- install/databases.js | 2 +- install/web.js | 2 +- minifier.js | 2 +- public/src/admin/admin.js | 2 +- public/src/admin/advanced/errors.js | 2 +- public/src/admin/manage/categories.js | 2 +- public/src/admin/manage/category-analytics.js | 2 +- public/src/admin/manage/category.js | 2 +- public/src/admin/manage/flags.js | 2 +- public/src/admin/manage/ip-blacklist.js | 2 +- public/src/admin/manage/tags.js | 2 +- public/src/admin/modules/search.js | 2 +- public/src/admin/settings/cookies.js | 2 +- public/src/ajaxify.js | 2 +- public/src/client/chats/recent.js | 2 +- public/src/client/groups/memberlist.js | 2 +- public/src/client/infinitescroll.js | 2 +- public/src/installer/install.js | 2 +- public/src/modules/coverPhoto.js | 2 +- public/src/modules/postSelect.js | 2 +- public/src/modules/scrollStop.js | 2 +- public/src/modules/uploader.js | 2 +- public/src/sockets.js | 2 +- src/categories/data.js | 2 +- src/categories/delete.js | 2 +- src/categories/unread.js | 2 +- src/controllers/accounts/chats.js | 2 +- src/controllers/accounts/edit.js | 2 +- src/controllers/accounts/follow.js | 2 +- src/controllers/accounts/groups.js | 2 +- src/controllers/accounts/info.js | 2 +- src/controllers/accounts/posts.js | 2 +- src/controllers/accounts/profile.js | 2 +- src/controllers/accounts/session.js | 2 +- src/controllers/accounts/settings.js | 2 +- src/controllers/admin/cache.js | 2 +- src/controllers/admin/database.js | 2 +- src/controllers/admin/errors.js | 2 +- src/controllers/admin/events.js | 2 +- src/controllers/admin/homepage.js | 2 +- src/controllers/admin/info.js | 2 +- src/controllers/admin/languages.js | 2 +- src/controllers/admin/logger.js | 2 +- src/controllers/admin/logs.js | 2 +- src/controllers/admin/navigation.js | 2 +- src/controllers/admin/plugins.js | 2 +- src/controllers/admin/rewards.js | 2 +- src/controllers/admin/social.js | 2 +- src/controllers/admin/sounds.js | 2 +- src/controllers/admin/themes.js | 2 +- src/controllers/admin/widgets.js | 2 +- src/controllers/popular.js | 2 +- src/controllers/recent.js | 2 +- src/controllers/sitemap.js | 2 +- src/database.js | 2 +- src/database/mongo/hash.js | 2 +- src/database/mongo/helpers.js | 2 +- src/database/mongo/list.js | 2 +- src/database/mongo/main.js | 2 +- src/database/mongo/sets.js | 2 +- src/database/mongo/sorted/add.js | 2 +- src/database/mongo/sorted/intersect.js | 2 +- src/database/mongo/sorted/remove.js | 2 +- src/database/mongo/sorted/union.js | 2 +- src/database/redis/hash.js | 2 +- src/database/redis/helpers.js | 2 +- src/database/redis/list.js | 2 +- src/database/redis/sets.js | 2 +- src/database/redis/sorted/add.js | 2 +- src/database/redis/sorted/intersect.js | 2 +- src/database/redis/sorted/remove.js | 2 +- src/database/redis/sorted/union.js | 2 +- src/emitter.js | 2 +- src/groups/cover.js | 2 +- src/hotswap.js | 2 +- src/messaging/create.js | 2 +- src/messaging/delete.js | 2 +- src/messaging/edit.js | 2 +- src/messaging/notifications.js | 2 +- src/messaging/rooms.js | 2 +- src/messaging/unread.js | 2 +- src/meta/blacklist.js | 2 +- src/meta/build.js | 2 +- src/meta/logs.js | 2 +- src/meta/settings.js | 2 +- src/meta/sounds.js | 2 +- src/meta/templates.js | 2 +- src/meta/themes.js | 2 +- src/middleware/maintenance.js | 2 +- src/navigation/admin.js | 2 +- src/navigation/index.js | 2 +- src/pagination.js | 2 +- src/password.js | 2 +- src/plugins/install.js | 2 +- src/posts/cache.js | 2 +- src/posts/category.js | 2 +- src/posts/topics.js | 2 +- src/posts/user.js | 2 +- src/privileges/categories.js | 2 +- src/privileges/helpers.js | 2 +- src/privileges/posts.js | 2 +- src/privileges/topics.js | 2 +- src/privileges/users.js | 2 +- src/pubsub.js | 2 +- src/reset.js | 2 +- src/routes/helpers.js | 2 +- src/social.js | 2 +- src/socket.io/admin/categories.js | 2 +- src/socket.io/admin/groups.js | 2 +- src/socket.io/admin/navigation.js | 2 +- src/socket.io/admin/rooms.js | 2 +- src/socket.io/admin/social.js | 2 +- src/socket.io/posts/bookmarks.js | 2 +- src/socket.io/posts/edit.js | 2 +- src/socket.io/posts/helpers.js | 2 +- src/socket.io/posts/move.js | 2 +- src/socket.io/posts/votes.js | 2 +- src/socket.io/topics/infinitescroll.js | 2 +- src/socket.io/topics/move.js | 2 +- src/socket.io/topics/tools.js | 2 +- src/socket.io/topics/unread.js | 2 +- src/socket.io/user/picture.js | 2 +- src/socket.io/user/profile.js | 2 +- src/socket.io/user/search.js | 2 +- src/socket.io/user/status.js | 2 +- src/topics/data.js | 2 +- src/topics/suggested.js | 2 +- src/topics/tags.js | 2 +- src/topics/teaser.js | 2 +- src/topics/user.js | 2 +- src/user/auth.js | 2 +- src/user/categories.js | 2 +- src/user/password.js | 2 +- src/user/posts.js | 2 +- src/user/topics.js | 2 +- src/widgets/admin.js | 2 +- test/helpers/index.js | 2 +- test/mocks/newXhr.js | 2 +- test/search-admin.js | 2 +- 142 files changed, 142 insertions(+), 142 deletions(-) diff --git a/.eslintrc b/.eslintrc index a2008ce6cd..de634c9243 100644 --- a/.eslintrc +++ b/.eslintrc @@ -98,7 +98,7 @@ "no-shadow": "off", "prefer-template": "off", "padded-blocks": "off", - "eol-last": "off", + // "eol-last": "off", // "lines-around-directive": "off", // "strict": "off", // "comma-dangle": "off", diff --git a/Gruntfile.js b/Gruntfile.js index 5e498affdb..cbfba0db6b 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -143,4 +143,4 @@ module.exports = function (grunt) { worker = fork('app.js', args, { env: env }); grunt.event.on('watch', update); -}; \ No newline at end of file +}; diff --git a/bcrypt.js b/bcrypt.js index 13b4865bf6..c948b8faa5 100644 --- a/bcrypt.js +++ b/bcrypt.js @@ -31,4 +31,4 @@ function done(err, result) { } process.send({result: result}); process.disconnect(); -} \ No newline at end of file +} diff --git a/install/databases.js b/install/databases.js index 2540884096..6a8d68d633 100644 --- a/install/databases.js +++ b/install/databases.js @@ -79,4 +79,4 @@ function saveDatabaseConfig(config, databaseConfig, callback) { } callback(null, config); -} \ No newline at end of file +} diff --git a/install/web.js b/install/web.js index d1df6faae3..dc9af8cce6 100644 --- a/install/web.js +++ b/install/web.js @@ -157,4 +157,4 @@ function compileJS(callback) { fs.writeFile(path.join(__dirname, '../public/installer.min.js'), result.code, callback); } -module.exports = web; \ No newline at end of file +module.exports = web; diff --git a/minifier.js b/minifier.js index d0e92752ca..b7a605d103 100644 --- a/minifier.js +++ b/minifier.js @@ -78,4 +78,4 @@ function concatenateScripts(scripts, callback) { callback(scripts); }); -} \ No newline at end of file +} diff --git a/public/src/admin/admin.js b/public/src/admin/admin.js index 93b7755ac6..fd0804188f 100644 --- a/public/src/admin/admin.js +++ b/public/src/admin/admin.js @@ -230,4 +230,4 @@ }); }); } -}()); \ No newline at end of file +}()); diff --git a/public/src/admin/advanced/errors.js b/public/src/admin/advanced/errors.js index 9113939b2a..c49cef724e 100644 --- a/public/src/admin/advanced/errors.js +++ b/public/src/admin/advanced/errors.js @@ -110,4 +110,4 @@ define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, transl }; return Errors; -}); \ No newline at end of file +}); diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js index ea3d94d9df..9eb245eb60 100644 --- a/public/src/admin/manage/categories.js +++ b/public/src/admin/manage/categories.js @@ -207,4 +207,4 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri } return Categories; -}); \ No newline at end of file +}); diff --git a/public/src/admin/manage/category-analytics.js b/public/src/admin/manage/category-analytics.js index 2df2683fcd..16500d227c 100644 --- a/public/src/admin/manage/category-analytics.js +++ b/public/src/admin/manage/category-analytics.js @@ -166,4 +166,4 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { }; return CategoryAnalytics; -}); \ No newline at end of file +}); diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js index efd87deae8..41c9eceff0 100644 --- a/public/src/admin/manage/category.js +++ b/public/src/admin/manage/category.js @@ -480,4 +480,4 @@ define('admin/manage/category', [ return Category; -}); \ No newline at end of file +}); diff --git a/public/src/admin/manage/flags.js b/public/src/admin/manage/flags.js index 45bfff7f70..21c9d3d015 100644 --- a/public/src/admin/manage/flags.js +++ b/public/src/admin/manage/flags.js @@ -173,4 +173,4 @@ define('admin/manage/flags', [ } return Flags; -}); \ No newline at end of file +}); diff --git a/public/src/admin/manage/ip-blacklist.js b/public/src/admin/manage/ip-blacklist.js index b77aa7e064..8e2bbeb007 100644 --- a/public/src/admin/manage/ip-blacklist.js +++ b/public/src/admin/manage/ip-blacklist.js @@ -41,4 +41,4 @@ define('admin/manage/ip-blacklist', ['translator'], function (translator) { }; return Blacklist; -}); \ No newline at end of file +}); diff --git a/public/src/admin/manage/tags.js b/public/src/admin/manage/tags.js index 93846da70e..4b73f20609 100644 --- a/public/src/admin/manage/tags.js +++ b/public/src/admin/manage/tags.js @@ -169,4 +169,4 @@ define('admin/manage/tags', [ } return Tags; -}); \ No newline at end of file +}); diff --git a/public/src/admin/modules/search.js b/public/src/admin/modules/search.js index 2449a27b2e..26ecd8eee0 100644 --- a/public/src/admin/modules/search.js +++ b/public/src/admin/modules/search.js @@ -150,4 +150,4 @@ define('admin/modules/search', ['mousetrap'], function (mousetrap) { } return search; -}); \ No newline at end of file +}); diff --git a/public/src/admin/settings/cookies.js b/public/src/admin/settings/cookies.js index f00411082c..0a2e8c7243 100644 --- a/public/src/admin/settings/cookies.js +++ b/public/src/admin/settings/cookies.js @@ -21,4 +21,4 @@ define('admin/settings/cookies', [ }; return Module; -}); \ No newline at end of file +}); diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index bcb6f5fd05..af52223536 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -423,4 +423,4 @@ $(document).ready(function () { $(this).parent().remove(); }); -}); \ No newline at end of file +}); diff --git a/public/src/client/chats/recent.js b/public/src/client/chats/recent.js index e689f0faad..8224cda8c2 100644 --- a/public/src/client/chats/recent.js +++ b/public/src/client/chats/recent.js @@ -54,4 +54,4 @@ define('forum/chats/recent', function () { return recent; -}); \ No newline at end of file +}); diff --git a/public/src/client/groups/memberlist.js b/public/src/client/groups/memberlist.js index e69deb1d82..2b5cbb5648 100644 --- a/public/src/client/groups/memberlist.js +++ b/public/src/client/groups/memberlist.js @@ -94,4 +94,4 @@ define('forum/groups/memberlist', ['components', 'forum/infinitescroll'], functi } return MemberList; -}); \ No newline at end of file +}); diff --git a/public/src/client/infinitescroll.js b/public/src/client/infinitescroll.js index 9387fa44a7..24e7f6fc68 100644 --- a/public/src/client/infinitescroll.js +++ b/public/src/client/infinitescroll.js @@ -88,4 +88,4 @@ define('forum/infinitescroll', function () { }; return scroll; -}); \ No newline at end of file +}); diff --git a/public/src/installer/install.js b/public/src/installer/install.js index e9aaf7629f..463c2f741b 100644 --- a/public/src/installer/install.js +++ b/public/src/installer/install.js @@ -123,4 +123,4 @@ $('document').ready(function () { }, 750); }); } -}); \ No newline at end of file +}); diff --git a/public/src/modules/coverPhoto.js b/public/src/modules/coverPhoto.js index 8620a5df47..a2aee26775 100644 --- a/public/src/modules/coverPhoto.js +++ b/public/src/modules/coverPhoto.js @@ -86,4 +86,4 @@ define('coverPhoto', [ }; return coverPhoto; -}); \ No newline at end of file +}); diff --git a/public/src/modules/postSelect.js b/public/src/modules/postSelect.js index c9c7aba08d..5dae2995ea 100644 --- a/public/src/modules/postSelect.js +++ b/public/src/modules/postSelect.js @@ -54,4 +54,4 @@ define('postSelect', ['components'], function (components) { return PostSelect; -}); \ No newline at end of file +}); diff --git a/public/src/modules/scrollStop.js b/public/src/modules/scrollStop.js index 0fd722ff89..82d2df4de8 100644 --- a/public/src/modules/scrollStop.js +++ b/public/src/modules/scrollStop.js @@ -28,4 +28,4 @@ define('scrollStop', function () { }; return Module; -}); \ No newline at end of file +}); diff --git a/public/src/modules/uploader.js b/public/src/modules/uploader.js index 12d2f4c0fc..22fff0bc19 100644 --- a/public/src/modules/uploader.js +++ b/public/src/modules/uploader.js @@ -127,4 +127,4 @@ define('uploader', ['translator'], function (translator) { } return module; -}); \ No newline at end of file +}); diff --git a/public/src/sockets.js b/public/src/sockets.js index bc33dc9bbf..8105524d22 100644 --- a/public/src/sockets.js +++ b/public/src/sockets.js @@ -125,4 +125,4 @@ app.isConnected = false; window.location.href = config.relative_path + '/'; } -}()); \ No newline at end of file +}()); diff --git a/src/categories/data.js b/src/categories/data.js index 3a66cd29e0..9c15fbb2d4 100644 --- a/src/categories/data.js +++ b/src/categories/data.js @@ -112,4 +112,4 @@ module.exports = function (Categories) { db.incrObjectFieldBy('category:' + cid, field, value, callback); }; -}; \ No newline at end of file +}; diff --git a/src/categories/delete.js b/src/categories/delete.js index b1fd7ba407..20aef52472 100644 --- a/src/categories/delete.js +++ b/src/categories/delete.js @@ -104,4 +104,4 @@ module.exports = function (Categories) { callback(err); }); } -}; \ No newline at end of file +}; diff --git a/src/categories/unread.js b/src/categories/unread.js index 498391693e..bb7c9d6432 100644 --- a/src/categories/unread.js +++ b/src/categories/unread.js @@ -54,4 +54,4 @@ module.exports = function (Categories) { db.isSetMember('cid:' + cid + ':read_by_uid', uid, callback); }; -}; \ No newline at end of file +}; diff --git a/src/controllers/accounts/chats.js b/src/controllers/accounts/chats.js index 069734dbdc..d085ea1d4a 100644 --- a/src/controllers/accounts/chats.js +++ b/src/controllers/accounts/chats.js @@ -114,4 +114,4 @@ chatsController.redirectToChat = function (req, res, next) { }; -module.exports = chatsController; \ No newline at end of file +module.exports = chatsController; diff --git a/src/controllers/accounts/edit.js b/src/controllers/accounts/edit.js index c31d55efa3..3a5fabf5d3 100644 --- a/src/controllers/accounts/edit.js +++ b/src/controllers/accounts/edit.js @@ -158,4 +158,4 @@ editController.uploadCoverPicture = function (req, res, next) { }); }; -module.exports = editController; \ No newline at end of file +module.exports = editController; diff --git a/src/controllers/accounts/follow.js b/src/controllers/accounts/follow.js index 3f4b3a45f1..7cc3e1895b 100644 --- a/src/controllers/accounts/follow.js +++ b/src/controllers/accounts/follow.js @@ -53,4 +53,4 @@ function getFollow(tpl, name, req, res, callback) { }); } -module.exports = followController; \ No newline at end of file +module.exports = followController; diff --git a/src/controllers/accounts/groups.js b/src/controllers/accounts/groups.js index 3fd97965b2..fc81b1173a 100644 --- a/src/controllers/accounts/groups.js +++ b/src/controllers/accounts/groups.js @@ -51,4 +51,4 @@ groupsController.get = function (req, res, callback) { }); }; -module.exports = groupsController; \ No newline at end of file +module.exports = groupsController; diff --git a/src/controllers/accounts/info.js b/src/controllers/accounts/info.js index ca996b6f9e..9df74b1380 100644 --- a/src/controllers/accounts/info.js +++ b/src/controllers/accounts/info.js @@ -42,4 +42,4 @@ infoController.get = function (req, res, callback) { }); }; -module.exports = infoController; \ No newline at end of file +module.exports = infoController; diff --git a/src/controllers/accounts/posts.js b/src/controllers/accounts/posts.js index dbb1f231ac..48d7c23a80 100644 --- a/src/controllers/accounts/posts.js +++ b/src/controllers/accounts/posts.js @@ -149,4 +149,4 @@ function getFromUserSet(template, req, res, callback) { }); } -module.exports = postsController; \ No newline at end of file +module.exports = postsController; diff --git a/src/controllers/accounts/profile.js b/src/controllers/accounts/profile.js index d51a2f56da..c3fa0e9092 100644 --- a/src/controllers/accounts/profile.js +++ b/src/controllers/accounts/profile.js @@ -137,4 +137,4 @@ profileController.get = function (req, res, callback) { }); }; -module.exports = profileController; \ No newline at end of file +module.exports = profileController; diff --git a/src/controllers/accounts/session.js b/src/controllers/accounts/session.js index a971f4ccde..67fae0bef3 100644 --- a/src/controllers/accounts/session.js +++ b/src/controllers/accounts/session.js @@ -52,4 +52,4 @@ sessionController.revoke = function (req, res, next) { }); }; -module.exports = sessionController; \ No newline at end of file +module.exports = sessionController; diff --git a/src/controllers/accounts/settings.js b/src/controllers/accounts/settings.js index 68f53bd070..f18a7b0fad 100644 --- a/src/controllers/accounts/settings.js +++ b/src/controllers/accounts/settings.js @@ -189,4 +189,4 @@ function getHomePageRoutes(callback) { } -module.exports = settingsController; \ No newline at end of file +module.exports = settingsController; diff --git a/src/controllers/admin/cache.js b/src/controllers/admin/cache.js index db82f05532..3dab364893 100644 --- a/src/controllers/admin/cache.js +++ b/src/controllers/admin/cache.js @@ -32,4 +32,4 @@ cacheController.get = function (req, res, next) { }; -module.exports = cacheController; \ No newline at end of file +module.exports = cacheController; diff --git a/src/controllers/admin/database.js b/src/controllers/admin/database.js index f5006af109..9ce8a3c00f 100644 --- a/src/controllers/admin/database.js +++ b/src/controllers/admin/database.js @@ -32,4 +32,4 @@ databaseController.get = function (req, res, next) { }); }; -module.exports = databaseController; \ No newline at end of file +module.exports = databaseController; diff --git a/src/controllers/admin/errors.js b/src/controllers/admin/errors.js index 23ab102a25..5a00e95537 100644 --- a/src/controllers/admin/errors.js +++ b/src/controllers/admin/errors.js @@ -35,4 +35,4 @@ errorsController.export = function (req, res, next) { }; -module.exports = errorsController; \ No newline at end of file +module.exports = errorsController; diff --git a/src/controllers/admin/events.js b/src/controllers/admin/events.js index f3ac6b6925..190b5b612e 100644 --- a/src/controllers/admin/events.js +++ b/src/controllers/admin/events.js @@ -39,4 +39,4 @@ eventsController.get = function (req, res, next) { }; -module.exports = eventsController; \ No newline at end of file +module.exports = eventsController; diff --git a/src/controllers/admin/homepage.js b/src/controllers/admin/homepage.js index 44d8074697..d40a578e66 100644 --- a/src/controllers/admin/homepage.js +++ b/src/controllers/admin/homepage.js @@ -63,4 +63,4 @@ homePageController.get = function (req, res, next) { }); }; -module.exports = homePageController; \ No newline at end of file +module.exports = homePageController; diff --git a/src/controllers/admin/info.js b/src/controllers/admin/info.js index 3517472eba..ac32a2c63a 100644 --- a/src/controllers/admin/info.js +++ b/src/controllers/admin/info.js @@ -97,4 +97,4 @@ function getGitInfo(callback) { }, callback); } -module.exports = infoController; \ No newline at end of file +module.exports = infoController; diff --git a/src/controllers/admin/languages.js b/src/controllers/admin/languages.js index 5dd4b14a00..0ac4e98e99 100644 --- a/src/controllers/admin/languages.js +++ b/src/controllers/admin/languages.js @@ -22,4 +22,4 @@ languagesController.get = function (req, res, next) { }); }; -module.exports = languagesController; \ No newline at end of file +module.exports = languagesController; diff --git a/src/controllers/admin/logger.js b/src/controllers/admin/logger.js index 7ae327a858..0e8006bbeb 100644 --- a/src/controllers/admin/logger.js +++ b/src/controllers/admin/logger.js @@ -6,4 +6,4 @@ loggerController.get = function (req, res) { res.render('admin/development/logger', {}); }; -module.exports = loggerController; \ No newline at end of file +module.exports = loggerController; diff --git a/src/controllers/admin/logs.js b/src/controllers/admin/logs.js index e30793a8e1..c2c5166dd7 100644 --- a/src/controllers/admin/logs.js +++ b/src/controllers/admin/logs.js @@ -19,4 +19,4 @@ logsController.get = function (req, res, next) { }; -module.exports = logsController; \ No newline at end of file +module.exports = logsController; diff --git a/src/controllers/admin/navigation.js b/src/controllers/admin/navigation.js index 423f21721c..9c96444be3 100644 --- a/src/controllers/admin/navigation.js +++ b/src/controllers/admin/navigation.js @@ -20,4 +20,4 @@ navigationController.get = function (req, res, next) { }); }; -module.exports = navigationController; \ No newline at end of file +module.exports = navigationController; diff --git a/src/controllers/admin/plugins.js b/src/controllers/admin/plugins.js index 84d0335059..c55ef4b457 100644 --- a/src/controllers/admin/plugins.js +++ b/src/controllers/admin/plugins.js @@ -53,4 +53,4 @@ pluginsController.get = function (req, res, next) { }); }; -module.exports = pluginsController; \ No newline at end of file +module.exports = pluginsController; diff --git a/src/controllers/admin/rewards.js b/src/controllers/admin/rewards.js index 87f2cc16c7..56c5ed3cd0 100644 --- a/src/controllers/admin/rewards.js +++ b/src/controllers/admin/rewards.js @@ -13,4 +13,4 @@ rewardsController.get = function (req, res, next) { }; -module.exports = rewardsController; \ No newline at end of file +module.exports = rewardsController; diff --git a/src/controllers/admin/social.js b/src/controllers/admin/social.js index 1a287c0272..da12f3341e 100644 --- a/src/controllers/admin/social.js +++ b/src/controllers/admin/social.js @@ -17,4 +17,4 @@ socialController.get = function (req, res, next) { }); }; -module.exports = socialController; \ No newline at end of file +module.exports = socialController; diff --git a/src/controllers/admin/sounds.js b/src/controllers/admin/sounds.js index a097387949..97dac0099a 100644 --- a/src/controllers/admin/sounds.js +++ b/src/controllers/admin/sounds.js @@ -22,4 +22,4 @@ soundsController.get = function (req, res, next) { }); }; -module.exports = soundsController; \ No newline at end of file +module.exports = soundsController; diff --git a/src/controllers/admin/themes.js b/src/controllers/admin/themes.js index 1cf51ae7e6..598cd7cf94 100644 --- a/src/controllers/admin/themes.js +++ b/src/controllers/admin/themes.js @@ -22,4 +22,4 @@ themesController.get = function (req, res, next) { }); }; -module.exports = themesController; \ No newline at end of file +module.exports = themesController; diff --git a/src/controllers/admin/widgets.js b/src/controllers/admin/widgets.js index c2d0d1e667..889fa1dcc6 100644 --- a/src/controllers/admin/widgets.js +++ b/src/controllers/admin/widgets.js @@ -13,4 +13,4 @@ widgetsController.get = function (req, res, next) { }; -module.exports = widgetsController; \ No newline at end of file +module.exports = widgetsController; diff --git a/src/controllers/popular.js b/src/controllers/popular.js index 62e25435bc..daff632f12 100644 --- a/src/controllers/popular.js +++ b/src/controllers/popular.js @@ -71,4 +71,4 @@ popularController.get = function (req, res, next) { }); }; -module.exports = popularController; \ No newline at end of file +module.exports = popularController; diff --git a/src/controllers/recent.js b/src/controllers/recent.js index 94a8c6a9ec..0901ea624d 100644 --- a/src/controllers/recent.js +++ b/src/controllers/recent.js @@ -92,4 +92,4 @@ recentController.get = function (req, res, next) { }); }; -module.exports = recentController; \ No newline at end of file +module.exports = recentController; diff --git a/src/controllers/sitemap.js b/src/controllers/sitemap.js index 42b0ae1076..453aed4f6e 100644 --- a/src/controllers/sitemap.js +++ b/src/controllers/sitemap.js @@ -65,4 +65,4 @@ sitemapController.getTopicPage = function (req, res, next) { }); }; -module.exports = sitemapController; \ No newline at end of file +module.exports = sitemapController; diff --git a/src/database.js b/src/database.js index ef98e09a59..c62255306b 100644 --- a/src/database.js +++ b/src/database.js @@ -11,4 +11,4 @@ if (!databaseName) { var primaryDB = require('./database/' + databaseName); -module.exports = primaryDB; \ No newline at end of file +module.exports = primaryDB; diff --git a/src/database/mongo/hash.js b/src/database/mongo/hash.js index a70578cc9f..cd9af198d2 100644 --- a/src/database/mongo/hash.js +++ b/src/database/mongo/hash.js @@ -244,4 +244,4 @@ module.exports = function (db, module) { callback(err, result && result.value ? result.value[field] : null); }); }; -}; \ No newline at end of file +}; diff --git a/src/database/mongo/helpers.js b/src/database/mongo/helpers.js index c135cf7f12..47f8434c77 100644 --- a/src/database/mongo/helpers.js +++ b/src/database/mongo/helpers.js @@ -34,4 +34,4 @@ helpers.valueToString = function (value) { helpers.noop = function () {}; -module.exports = helpers; \ No newline at end of file +module.exports = helpers; diff --git a/src/database/mongo/list.js b/src/database/mongo/list.js index e96ad236fb..2314c7cbc3 100644 --- a/src/database/mongo/list.js +++ b/src/database/mongo/list.js @@ -100,4 +100,4 @@ module.exports = function (db, module) { callback(null, data.array); }); }; -}; \ No newline at end of file +}; diff --git a/src/database/mongo/main.js b/src/database/mongo/main.js index 5eacf84242..0aa832e02d 100644 --- a/src/database/mongo/main.js +++ b/src/database/mongo/main.js @@ -96,4 +96,4 @@ module.exports = function (db, module) { module.pexpireAt = function (key, timestamp, callback) { module.setObjectField(key, 'expireAt', new Date(timestamp), callback); }; -}; \ No newline at end of file +}; diff --git a/src/database/mongo/sets.js b/src/database/mongo/sets.js index 3580702d7a..c4834e3fd8 100644 --- a/src/database/mongo/sets.js +++ b/src/database/mongo/sets.js @@ -217,4 +217,4 @@ module.exports = function (db, module) { }); }); }; -}; \ No newline at end of file +}; diff --git a/src/database/mongo/sorted/add.js b/src/database/mongo/sorted/add.js index 1342586478..2abae99d49 100644 --- a/src/database/mongo/sorted/add.js +++ b/src/database/mongo/sorted/add.js @@ -62,4 +62,4 @@ module.exports = function (db, module) { }); }; -}; \ No newline at end of file +}; diff --git a/src/database/mongo/sorted/intersect.js b/src/database/mongo/sorted/intersect.js index b5c0dae92f..74b7d1596b 100644 --- a/src/database/mongo/sorted/intersect.js +++ b/src/database/mongo/sorted/intersect.js @@ -104,4 +104,4 @@ module.exports = function (db, module) { }); } -}; \ No newline at end of file +}; diff --git a/src/database/mongo/sorted/remove.js b/src/database/mongo/sorted/remove.js index 71320619c4..e7f547995c 100644 --- a/src/database/mongo/sorted/remove.js +++ b/src/database/mongo/sorted/remove.js @@ -54,4 +54,4 @@ module.exports = function (db, module) { }); }; -}; \ No newline at end of file +}; diff --git a/src/database/mongo/sorted/union.js b/src/database/mongo/sorted/union.js index e150bb6831..36f5c545ad 100644 --- a/src/database/mongo/sorted/union.js +++ b/src/database/mongo/sorted/union.js @@ -82,4 +82,4 @@ module.exports = function (db, module) { }); } -}; \ No newline at end of file +}; diff --git a/src/database/redis/hash.js b/src/database/redis/hash.js index bb3c24df5d..756b82614c 100644 --- a/src/database/redis/hash.js +++ b/src/database/redis/hash.js @@ -119,4 +119,4 @@ module.exports = function (redisClient, module) { module.incrObjectFieldBy = function (key, field, value, callback) { redisClient.hincrby(key, field, value, callback); }; -}; \ No newline at end of file +}; diff --git a/src/database/redis/helpers.js b/src/database/redis/helpers.js index cb2a77d0f9..7100437177 100644 --- a/src/database/redis/helpers.js +++ b/src/database/redis/helpers.js @@ -36,4 +36,4 @@ helpers.resultsToBool = function (results) { return results; }; -module.exports = helpers; \ No newline at end of file +module.exports = helpers; diff --git a/src/database/redis/list.js b/src/database/redis/list.js index 7c6011e3bc..3323937cbf 100644 --- a/src/database/redis/list.js +++ b/src/database/redis/list.js @@ -38,4 +38,4 @@ module.exports = function (redisClient, module) { callback = callback || function () {}; redisClient.lrange(key, start, stop, callback); }; -}; \ No newline at end of file +}; diff --git a/src/database/redis/sets.js b/src/database/redis/sets.js index 72bdceb9fd..951b2648c9 100644 --- a/src/database/redis/sets.js +++ b/src/database/redis/sets.js @@ -77,4 +77,4 @@ module.exports = function (redisClient, module) { }; return module; -}; \ No newline at end of file +}; diff --git a/src/database/redis/sorted/add.js b/src/database/redis/sorted/add.js index fcccffa213..96b99a4376 100644 --- a/src/database/redis/sorted/add.js +++ b/src/database/redis/sorted/add.js @@ -46,4 +46,4 @@ module.exports = function (redisClient, module) { }; -}; \ No newline at end of file +}; diff --git a/src/database/redis/sorted/intersect.js b/src/database/redis/sorted/intersect.js index a42556cd7e..6ba6d45515 100644 --- a/src/database/redis/sorted/intersect.js +++ b/src/database/redis/sorted/intersect.js @@ -76,4 +76,4 @@ module.exports = function (redisClient, module) { callback(null, objects); }); } -}; \ No newline at end of file +}; diff --git a/src/database/redis/sorted/remove.js b/src/database/redis/sorted/remove.js index 8619e0be34..1bf86db414 100644 --- a/src/database/redis/sorted/remove.js +++ b/src/database/redis/sorted/remove.js @@ -35,4 +35,4 @@ module.exports = function (redisClient, module) { callback(err); }); }; -}; \ No newline at end of file +}; diff --git a/src/database/redis/sorted/union.js b/src/database/redis/sorted/union.js index ab8584858c..24c1440249 100644 --- a/src/database/redis/sorted/union.js +++ b/src/database/redis/sorted/union.js @@ -57,4 +57,4 @@ module.exports = function (redisClient, module) { callback(null, objects); }); }; -}; \ No newline at end of file +}; diff --git a/src/emitter.js b/src/emitter.js index 833c091cb6..140c35f639 100644 --- a/src/emitter.js +++ b/src/emitter.js @@ -32,4 +32,4 @@ eventEmitter.any = function (events, callback) { }); }; -module.exports = eventEmitter; \ No newline at end of file +module.exports = eventEmitter; diff --git a/src/groups/cover.js b/src/groups/cover.js index 7356ee2347..c2a351cde7 100644 --- a/src/groups/cover.js +++ b/src/groups/cover.js @@ -119,4 +119,4 @@ module.exports = function (Groups) { db.deleteObjectFields('group:' + data.groupName, ['cover:url', 'cover:thumb:url', 'cover:position'], callback); }; -}; \ No newline at end of file +}; diff --git a/src/hotswap.js b/src/hotswap.js index d46f6fec8e..76cb2f774b 100644 --- a/src/hotswap.js +++ b/src/hotswap.js @@ -31,4 +31,4 @@ HotSwap.replace = function (id, router) { } }; -module.exports = HotSwap; \ No newline at end of file +module.exports = HotSwap; diff --git a/src/messaging/create.js b/src/messaging/create.js index 45876f5502..80eb198444 100644 --- a/src/messaging/create.js +++ b/src/messaging/create.js @@ -117,4 +117,4 @@ module.exports = function (Messaging) { }); db.sortedSetsAdd(keys, timestamp, mid, callback); }; -}; \ No newline at end of file +}; diff --git a/src/messaging/delete.js b/src/messaging/delete.js index 3d019f5bdb..633ac62b22 100644 --- a/src/messaging/delete.js +++ b/src/messaging/delete.js @@ -24,4 +24,4 @@ module.exports = function (Messaging) { }, ], callback); }; -}; \ No newline at end of file +}; diff --git a/src/messaging/edit.js b/src/messaging/edit.js index 5cbc95c513..96b6385681 100644 --- a/src/messaging/edit.js +++ b/src/messaging/edit.js @@ -79,4 +79,4 @@ module.exports = function (Messaging) { ], callback); }; -}; \ No newline at end of file +}; diff --git a/src/messaging/notifications.js b/src/messaging/notifications.js index 920df36aea..72a7392afb 100644 --- a/src/messaging/notifications.js +++ b/src/messaging/notifications.js @@ -121,4 +121,4 @@ module.exports = function (Messaging) { }); }); } -}; \ No newline at end of file +}; diff --git a/src/messaging/rooms.js b/src/messaging/rooms.js index 0410726af6..07df01e79d 100644 --- a/src/messaging/rooms.js +++ b/src/messaging/rooms.js @@ -223,4 +223,4 @@ module.exports = function (Messaging) { ], callback); }; -}; \ No newline at end of file +}; diff --git a/src/messaging/unread.js b/src/messaging/unread.js index 74f4fc99c2..dfcaa2b2f5 100644 --- a/src/messaging/unread.js +++ b/src/messaging/unread.js @@ -52,4 +52,4 @@ module.exports = function (Messaging) { ], callback); }; -}; \ No newline at end of file +}; diff --git a/src/meta/blacklist.js b/src/meta/blacklist.js index 3487d31f41..a7e81c604b 100644 --- a/src/meta/blacklist.js +++ b/src/meta/blacklist.js @@ -123,4 +123,4 @@ Blacklist.validate = function (rules, callback) { }); }; -module.exports = Blacklist; \ No newline at end of file +module.exports = Blacklist; diff --git a/src/meta/build.js b/src/meta/build.js index cf07b15c9d..887d2cb766 100644 --- a/src/meta/build.js +++ b/src/meta/build.js @@ -141,4 +141,4 @@ exports.buildTargets = function (targets, callback) { } }); }); -}; \ No newline at end of file +}; diff --git a/src/meta/logs.js b/src/meta/logs.js index e8be88d48d..c0b3f47137 100644 --- a/src/meta/logs.js +++ b/src/meta/logs.js @@ -26,4 +26,4 @@ module.exports = function (Meta) { fs.truncate(Meta.logs.path, 0, callback); }; -}; \ No newline at end of file +}; diff --git a/src/meta/settings.js b/src/meta/settings.js index 53a00c80f3..d29cdb753a 100644 --- a/src/meta/settings.js +++ b/src/meta/settings.js @@ -62,4 +62,4 @@ module.exports = function (Meta) { }, ], callback); }; -}; \ No newline at end of file +}; diff --git a/src/meta/sounds.js b/src/meta/sounds.js index 895787e81b..6be040e0e3 100644 --- a/src/meta/sounds.js +++ b/src/meta/sounds.js @@ -156,4 +156,4 @@ module.exports = function (Meta) { }, ], callback); } -}; \ No newline at end of file +}; diff --git a/src/meta/templates.js b/src/meta/templates.js index 074c02ac26..4fc3205f63 100644 --- a/src/meta/templates.js +++ b/src/meta/templates.js @@ -146,4 +146,4 @@ function compile(callback) { }); } -module.exports = Templates; \ No newline at end of file +module.exports = Templates; diff --git a/src/meta/themes.js b/src/meta/themes.js index e5359232fb..bd796f0968 100644 --- a/src/meta/themes.js +++ b/src/meta/themes.js @@ -165,4 +165,4 @@ module.exports = function (Meta) { nconf.set('theme_templates_path', themePath); nconf.set('theme_config', path.join(nconf.get('themes_path'), themeObj.id, 'theme.json')); }; -}; \ No newline at end of file +}; diff --git a/src/middleware/maintenance.js b/src/middleware/maintenance.js index 655e92b4cf..c5c232e5e7 100644 --- a/src/middleware/maintenance.js +++ b/src/middleware/maintenance.js @@ -37,4 +37,4 @@ module.exports = function (middleware) { }); }; -}; \ No newline at end of file +}; diff --git a/src/navigation/admin.js b/src/navigation/admin.js index ade6adaea1..b186e332eb 100644 --- a/src/navigation/admin.js +++ b/src/navigation/admin.js @@ -71,4 +71,4 @@ function getAvailable(callback) { plugins.fireHook('filter:navigation.available', core, callback); } -module.exports = admin; \ No newline at end of file +module.exports = admin; diff --git a/src/navigation/index.js b/src/navigation/index.js index ee97c88f0c..2cb24f3a9f 100644 --- a/src/navigation/index.js +++ b/src/navigation/index.js @@ -38,4 +38,4 @@ navigation.get = function (callback) { }; -module.exports = navigation; \ No newline at end of file +module.exports = navigation; diff --git a/src/pagination.js b/src/pagination.js index 7480756d1d..6f61c80def 100644 --- a/src/pagination.js +++ b/src/pagination.js @@ -76,4 +76,4 @@ pagination.create = function (currentPage, pageCount, queryObj) { }; -module.exports = pagination; \ No newline at end of file +module.exports = pagination; diff --git a/src/password.js b/src/password.js index 54547abef3..c98b2f5ba6 100644 --- a/src/password.js +++ b/src/password.js @@ -30,4 +30,4 @@ } return module; -}(exports)); \ No newline at end of file +}(exports)); diff --git a/src/plugins/install.js b/src/plugins/install.js index 9fc771dec2..c6bd030ca2 100644 --- a/src/plugins/install.js +++ b/src/plugins/install.js @@ -145,4 +145,4 @@ module.exports = function (Plugins) { Plugins.getActive = function (callback) { db.getSortedSetRange('plugins:active', 0, -1, callback); }; -}; \ No newline at end of file +}; diff --git a/src/posts/cache.js b/src/posts/cache.js index c43b3ef430..c73e1c8d92 100644 --- a/src/posts/cache.js +++ b/src/posts/cache.js @@ -9,4 +9,4 @@ var cache = LRU({ maxAge: 1000 * 60 * 60, }); -module.exports = cache; \ No newline at end of file +module.exports = cache; diff --git a/src/posts/category.js b/src/posts/category.js index dbbe71dadb..49876874ca 100644 --- a/src/posts/category.js +++ b/src/posts/category.js @@ -82,4 +82,4 @@ module.exports = function (Posts) { }); } }; -}; \ No newline at end of file +}; diff --git a/src/posts/topics.js b/src/posts/topics.js index d0b9318e81..a33fd74bb3 100644 --- a/src/posts/topics.js +++ b/src/posts/topics.js @@ -85,4 +85,4 @@ module.exports = function (Posts) { ], callback); }; -}; \ No newline at end of file +}; diff --git a/src/posts/user.js b/src/posts/user.js index 644ee5fe11..b5687b34fa 100644 --- a/src/posts/user.js +++ b/src/posts/user.js @@ -127,4 +127,4 @@ module.exports = function (Posts) { user.isModerator(uid, cids, callback); }); }; -}; \ No newline at end of file +}; diff --git a/src/privileges/categories.js b/src/privileges/categories.js index ff3e2ed3ec..16e9d60b60 100644 --- a/src/privileges/categories.js +++ b/src/privileges/categories.js @@ -403,4 +403,4 @@ module.exports = function (privileges) { }, callback); }; -}; \ No newline at end of file +}; diff --git a/src/privileges/helpers.js b/src/privileges/helpers.js index bf3f45751e..23f555f89d 100644 --- a/src/privileges/helpers.js +++ b/src/privileges/helpers.js @@ -133,4 +133,4 @@ function isGuestAllowedToPrivileges(privileges, cid, callback) { groups.isMemberOfGroups('guests', groupKeys, callback); } -module.exports = helpers; \ No newline at end of file +module.exports = helpers; diff --git a/src/privileges/posts.js b/src/privileges/posts.js index e53a9d148a..e362e27a27 100644 --- a/src/privileges/posts.js +++ b/src/privileges/posts.js @@ -269,4 +269,4 @@ module.exports = function (privileges) { }, ], callback); } -}; \ No newline at end of file +}; diff --git a/src/privileges/topics.js b/src/privileges/topics.js index 611086f622..abf491bdc2 100644 --- a/src/privileges/topics.js +++ b/src/privileges/topics.js @@ -251,4 +251,4 @@ module.exports = function (privileges) { }, ], callback); }; -}; \ No newline at end of file +}; diff --git a/src/privileges/users.js b/src/privileges/users.js index 5dd26f5189..7c4818b013 100644 --- a/src/privileges/users.js +++ b/src/privileges/users.js @@ -161,4 +161,4 @@ module.exports = function (privileges) { }); }; -}; \ No newline at end of file +}; diff --git a/src/pubsub.js b/src/pubsub.js index 157cb7da98..9f7d3fe0d5 100644 --- a/src/pubsub.js +++ b/src/pubsub.js @@ -45,4 +45,4 @@ PubSub.prototype.publish = function (event, data) { var pubsub = new PubSub(); -module.exports = pubsub; \ No newline at end of file +module.exports = pubsub; diff --git a/src/reset.js b/src/reset.js index 05a337869f..b69f4980dc 100644 --- a/src/reset.js +++ b/src/reset.js @@ -161,4 +161,4 @@ function resetWidgets(callback) { }); } -module.exports = Reset; \ No newline at end of file +module.exports = Reset; diff --git a/src/routes/helpers.js b/src/routes/helpers.js index 2379c7ebf1..8452b7f6d9 100644 --- a/src/routes/helpers.js +++ b/src/routes/helpers.js @@ -9,4 +9,4 @@ helpers.setupPageRoute = function (router, name, middleware, middlewares, contro router.get('/api' + name, middlewares, controller); }; -module.exports = helpers; \ No newline at end of file +module.exports = helpers; diff --git a/src/social.js b/src/social.js index 665b57866b..71780b5b81 100644 --- a/src/social.js +++ b/src/social.js @@ -82,4 +82,4 @@ social.setActivePostSharingNetworks = function (networkIDs, callback) { ], callback); }; -module.exports = social; \ No newline at end of file +module.exports = social; diff --git a/src/socket.io/admin/categories.js b/src/socket.io/admin/categories.js index faf244f6ef..3f81d2a5a7 100644 --- a/src/socket.io/admin/categories.js +++ b/src/socket.io/admin/categories.js @@ -103,4 +103,4 @@ Categories.copyPrivilegesFrom = function (socket, data, callback) { categories.copyPrivilegesFrom(data.fromCid, data.toCid, callback); }; -module.exports = Categories; \ No newline at end of file +module.exports = Categories; diff --git a/src/socket.io/admin/groups.js b/src/socket.io/admin/groups.js index b193f6e6ea..fdb50e0561 100644 --- a/src/socket.io/admin/groups.js +++ b/src/socket.io/admin/groups.js @@ -67,4 +67,4 @@ Groups.update = function (socket, data, callback) { groups.update(data.groupName, data.values, callback); }; -module.exports = Groups; \ No newline at end of file +module.exports = Groups; diff --git a/src/socket.io/admin/navigation.js b/src/socket.io/admin/navigation.js index ae67588377..807b10ae85 100644 --- a/src/socket.io/admin/navigation.js +++ b/src/socket.io/admin/navigation.js @@ -7,4 +7,4 @@ SocketNavigation.save = function (socket, data, callback) { navigationAdmin.save(data, callback); }; -module.exports = SocketNavigation; \ No newline at end of file +module.exports = SocketNavigation; diff --git a/src/socket.io/admin/rooms.js b/src/socket.io/admin/rooms.js index ee26ac1428..96144fbeaf 100644 --- a/src/socket.io/admin/rooms.js +++ b/src/socket.io/admin/rooms.js @@ -183,4 +183,4 @@ SocketRooms.getLocalStats = function (callback) { }; -module.exports = SocketRooms; \ No newline at end of file +module.exports = SocketRooms; diff --git a/src/socket.io/admin/social.js b/src/socket.io/admin/social.js index e69bcc4084..5f422eff6b 100644 --- a/src/socket.io/admin/social.js +++ b/src/socket.io/admin/social.js @@ -7,4 +7,4 @@ SocketSocial.savePostSharingNetworks = function (socket, data, callback) { social.setActivePostSharingNetworks(data, callback); }; -module.exports = SocketSocial; \ No newline at end of file +module.exports = SocketSocial; diff --git a/src/socket.io/posts/bookmarks.js b/src/socket.io/posts/bookmarks.js index d0bb84256c..27d1c9570e 100644 --- a/src/socket.io/posts/bookmarks.js +++ b/src/socket.io/posts/bookmarks.js @@ -13,4 +13,4 @@ module.exports = function (SocketPosts) { helpers.postCommand(socket, 'unbookmark', 'bookmarked', '', data, callback); }; -}; \ No newline at end of file +}; diff --git a/src/socket.io/posts/edit.js b/src/socket.io/posts/edit.js index 93b4b0cdb4..cbb613c16b 100644 --- a/src/socket.io/posts/edit.js +++ b/src/socket.io/posts/edit.js @@ -72,4 +72,4 @@ module.exports = function (SocketPosts) { }, ], callback); }; -}; \ No newline at end of file +}; diff --git a/src/socket.io/posts/helpers.js b/src/socket.io/posts/helpers.js index d1285a6f53..7db1a8b5ae 100644 --- a/src/socket.io/posts/helpers.js +++ b/src/socket.io/posts/helpers.js @@ -73,4 +73,4 @@ function executeCommand(socket, command, eventName, notification, data, callback next(null, result); }, ], callback); -} \ No newline at end of file +} diff --git a/src/socket.io/posts/move.js b/src/socket.io/posts/move.js index c6327dbe69..38a885a39d 100644 --- a/src/socket.io/posts/move.js +++ b/src/socket.io/posts/move.js @@ -34,4 +34,4 @@ module.exports = function (SocketPosts) { ], callback); }; -}; \ No newline at end of file +}; diff --git a/src/socket.io/posts/votes.js b/src/socket.io/posts/votes.js index c131155c87..6e90bb2ac7 100644 --- a/src/socket.io/posts/votes.js +++ b/src/socket.io/posts/votes.js @@ -89,4 +89,4 @@ module.exports = function (SocketPosts) { SocketPosts.unvote = function (socket, data, callback) { helpers.postCommand(socket, 'unvote', 'voted', '', data, callback); }; -}; \ No newline at end of file +}; diff --git a/src/socket.io/topics/infinitescroll.js b/src/socket.io/topics/infinitescroll.js index e3d4239f33..d1a44178a5 100644 --- a/src/socket.io/topics/infinitescroll.js +++ b/src/socket.io/topics/infinitescroll.js @@ -123,4 +123,4 @@ module.exports = function (SocketTopics) { topics.getTopicsFromSet(data.set, socket.uid, start, stop, callback); }; -}; \ No newline at end of file +}; diff --git a/src/socket.io/topics/move.js b/src/socket.io/topics/move.js index 3fcacde2a0..99b15a7461 100644 --- a/src/socket.io/topics/move.js +++ b/src/socket.io/topics/move.js @@ -69,4 +69,4 @@ module.exports = function (SocketTopics) { }, ], callback); }; -}; \ No newline at end of file +}; diff --git a/src/socket.io/topics/tools.js b/src/socket.io/topics/tools.js index d560a296d2..7a283edbd6 100644 --- a/src/socket.io/topics/tools.js +++ b/src/socket.io/topics/tools.js @@ -129,4 +129,4 @@ module.exports = function (SocketTopics) { topics.tools.orderPinnedTopics(socket.uid, data, callback); }; -}; \ No newline at end of file +}; diff --git a/src/socket.io/topics/unread.js b/src/socket.io/topics/unread.js index f331200e79..e4efb2513f 100644 --- a/src/socket.io/topics/unread.js +++ b/src/socket.io/topics/unread.js @@ -120,4 +120,4 @@ module.exports = function (SocketTopics) { }, ], callback); }; -}; \ No newline at end of file +}; diff --git a/src/socket.io/user/picture.js b/src/socket.io/user/picture.js index a47623c24b..4ddcd79f40 100644 --- a/src/socket.io/user/picture.js +++ b/src/socket.io/user/picture.js @@ -130,4 +130,4 @@ module.exports = function (SocketUser) { callback(null, data.list.pictures); }); }; -}; \ No newline at end of file +}; diff --git a/src/socket.io/user/profile.js b/src/socket.io/user/profile.js index ef62090939..14c1593f28 100644 --- a/src/socket.io/user/profile.js +++ b/src/socket.io/user/profile.js @@ -188,4 +188,4 @@ module.exports = function (SocketUser) { }; -}; \ No newline at end of file +}; diff --git a/src/socket.io/user/search.js b/src/socket.io/user/search.js index c4619a28cf..acb857a6d8 100644 --- a/src/socket.io/user/search.js +++ b/src/socket.io/user/search.js @@ -32,4 +32,4 @@ module.exports = function (SocketUser) { }); }; -}; \ No newline at end of file +}; diff --git a/src/socket.io/user/status.js b/src/socket.io/user/status.js index 1c08296725..37e7ac7925 100644 --- a/src/socket.io/user/status.js +++ b/src/socket.io/user/status.js @@ -50,4 +50,4 @@ module.exports = function (SocketUser) { }, ], callback); }; -}; \ No newline at end of file +}; diff --git a/src/topics/data.js b/src/topics/data.js index 199393c714..4758e7a085 100644 --- a/src/topics/data.js +++ b/src/topics/data.js @@ -88,4 +88,4 @@ module.exports = function (Topics) { db.deleteObjectField('topic:' + tid, field, callback); }; -}; \ No newline at end of file +}; diff --git a/src/topics/suggested.js b/src/topics/suggested.js index 08c3c24f15..e0049a15a7 100644 --- a/src/topics/suggested.js +++ b/src/topics/suggested.js @@ -77,4 +77,4 @@ module.exports = function (Topics) { ], callback); } -}; \ No newline at end of file +}; diff --git a/src/topics/tags.js b/src/topics/tags.js index 69d0de3332..f7d1b3034c 100644 --- a/src/topics/tags.js +++ b/src/topics/tags.js @@ -456,4 +456,4 @@ module.exports = function (Topics) { }, ], callback); }; -}; \ No newline at end of file +}; diff --git a/src/topics/teaser.js b/src/topics/teaser.js index c8526a981d..617f9660f1 100644 --- a/src/topics/teaser.js +++ b/src/topics/teaser.js @@ -137,4 +137,4 @@ module.exports = function (Topics) { } }); }; -}; \ No newline at end of file +}; diff --git a/src/topics/user.js b/src/topics/user.js index ab56a5f778..b2916a7464 100644 --- a/src/topics/user.js +++ b/src/topics/user.js @@ -21,4 +21,4 @@ module.exports = function (Topics) { Topics.getUids = function (tid, callback) { db.getSortedSetRevRangeByScore('tid:' + tid + ':posters', 0, -1, '+inf', 1, callback); }; -}; \ No newline at end of file +}; diff --git a/src/user/auth.js b/src/user/auth.js index ddbcc57520..968078e651 100644 --- a/src/user/auth.js +++ b/src/user/auth.js @@ -175,4 +175,4 @@ module.exports = function (User) { ], next); }, {batch: 1000}, callback); }; -}; \ No newline at end of file +}; diff --git a/src/user/categories.js b/src/user/categories.js index 77d8cf4338..4188fecf72 100644 --- a/src/user/categories.js +++ b/src/user/categories.js @@ -72,4 +72,4 @@ module.exports = function (User) { }, ], callback); }; -}; \ No newline at end of file +}; diff --git a/src/user/password.js b/src/user/password.js index 093f11a56f..aaad4c2563 100644 --- a/src/user/password.js +++ b/src/user/password.js @@ -44,4 +44,4 @@ module.exports = function (User) { }); }; -}; \ No newline at end of file +}; diff --git a/src/user/posts.js b/src/user/posts.js index 7b7cc7cfbb..1747c803a0 100644 --- a/src/user/posts.js +++ b/src/user/posts.js @@ -102,4 +102,4 @@ module.exports = function (User) { }); }; -}; \ No newline at end of file +}; diff --git a/src/user/topics.js b/src/user/topics.js index 5dd2ac2c5a..fa3cea209b 100644 --- a/src/user/topics.js +++ b/src/user/topics.js @@ -16,4 +16,4 @@ module.exports = function (User) { ], callback); }; -}; \ No newline at end of file +}; diff --git a/src/widgets/admin.js b/src/widgets/admin.js index 113ff80637..68ccd3d7ec 100644 --- a/src/widgets/admin.js +++ b/src/widgets/admin.js @@ -78,4 +78,4 @@ admin.get = function (callback) { }); }; -module.exports = admin; \ No newline at end of file +module.exports = admin; diff --git a/test/helpers/index.js b/test/helpers/index.js index 43c7c26211..cc4460ffbe 100644 --- a/test/helpers/index.js +++ b/test/helpers/index.js @@ -166,4 +166,4 @@ helpers.copyFile = function (source, target, callback) { cbCalled = true; } } -}; \ No newline at end of file +}; diff --git a/test/mocks/newXhr.js b/test/mocks/newXhr.js index 1e223a8f19..0f7ccee061 100644 --- a/test/mocks/newXhr.js +++ b/test/mocks/newXhr.js @@ -47,4 +47,4 @@ newXhr.XMLHttpRequest = newXhr; cachedXhr.exports = newXhr; module.exports = newXhr; -module.exports.callbacks = callbacks; \ No newline at end of file +module.exports.callbacks = callbacks; diff --git a/test/search-admin.js b/test/search-admin.js index 25fb940adf..97316e6639 100644 --- a/test/search-admin.js +++ b/test/search-admin.js @@ -79,4 +79,4 @@ describe('admin search', function () { done(); }); }); -}); \ No newline at end of file +}); From 3b0dd2d1ef8eb94510132295468718187b12b958 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 02:32:24 -0700 Subject: [PATCH 24/60] ESlint padded-blocks --- .eslintrc | 2 +- loader.js | 1 - minifier.js | 1 - public/src/admin/advanced/events.js | 2 -- public/src/admin/appearance/themes.js | 1 - public/src/admin/extend/widgets.js | 1 - public/src/admin/general/homepage.js | 1 - public/src/admin/manage/flags.js | 1 - public/src/admin/manage/group.js | 3 --- public/src/admin/manage/ip-blacklist.js | 1 - public/src/admin/manage/registration.js | 1 - public/src/admin/manage/users.js | 1 - public/src/ajaxify.js | 3 --- public/src/app.js | 1 - public/src/client/account/edit.js | 2 -- public/src/client/account/profile.js | 1 - public/src/client/category.js | 1 - public/src/client/category/tools.js | 2 -- public/src/client/chats.js | 1 - public/src/client/chats/messages.js | 2 -- public/src/client/chats/recent.js | 1 - public/src/client/chats/search.js | 1 - public/src/client/footer.js | 1 - public/src/client/groups/details.js | 1 - public/src/client/groups/memberlist.js | 1 - public/src/client/infinitescroll.js | 1 - public/src/client/recent.js | 1 - public/src/client/topic.js | 3 --- public/src/client/topic/delete-posts.js | 1 - public/src/client/topic/events.js | 1 - public/src/client/topic/flag.js | 1 - public/src/client/topic/fork.js | 1 - public/src/client/topic/move-post.js | 2 -- public/src/client/topic/move.js | 2 -- public/src/client/topic/postTools.js | 2 -- public/src/client/topic/posts.js | 3 --- public/src/client/topic/replies.js | 1 - public/src/client/topic/threadTools.js | 2 -- public/src/client/topic/votes.js | 2 -- public/src/modules/chat.js | 2 -- public/src/modules/coverPhoto.js | 1 - public/src/modules/helpers.js | 1 - public/src/modules/navigator.js | 1 - public/src/modules/search.js | 1 - public/src/modules/settings.js | 2 -- public/src/modules/settings/array.js | 2 -- public/src/modules/settings/checkbox.js | 2 -- public/src/modules/settings/key.js | 2 -- public/src/modules/settings/number.js | 2 -- public/src/modules/settings/object.js | 2 -- public/src/modules/settings/select.js | 2 -- public/src/modules/settings/textarea.js | 2 -- public/src/modules/share.js | 3 --- public/src/modules/topicSelect.js | 1 - public/src/modules/uploader.js | 1 - public/src/overrides.js | 2 -- public/src/sockets.js | 1 - public/src/utils.js | 2 -- src/categories.js | 3 --- src/categories/activeusers.js | 1 - src/categories/create.js | 2 -- src/categories/data.js | 2 -- src/categories/delete.js | 1 - src/categories/recentreplies.js | 1 - src/categories/topics.js | 2 -- src/categories/unread.js | 2 -- src/categories/update.js | 3 --- src/controllers/admin/events.js | 1 - src/controllers/category.js | 1 - src/controllers/index.js | 3 --- src/controllers/popular.js | 1 - src/controllers/topics.js | 1 - src/controllers/uploads.js | 1 - src/database/mongo.js | 2 -- src/database/mongo/sorted.js | 1 - src/database/mongo/sorted/add.js | 2 -- src/database/mongo/sorted/intersect.js | 2 -- src/database/mongo/sorted/remove.js | 2 -- src/database/mongo/sorted/union.js | 2 -- src/database/redis.js | 1 - src/database/redis/hash.js | 1 - src/database/redis/main.js | 1 - src/database/redis/sorted.js | 1 - src/database/redis/sorted/add.js | 3 --- src/database/redis/sorted/intersect.js | 1 - src/database/redis/sorted/remove.js | 1 - src/database/redis/sorted/union.js | 2 -- src/emailer.js | 1 - src/events.js | 2 -- src/groups.js | 2 -- src/groups/cover.js | 3 --- src/groups/create.js | 2 -- src/groups/delete.js | 1 - src/groups/membership.js | 1 - src/groups/ownership.js | 1 - src/groups/search.js | 3 --- src/groups/update.js | 1 - src/install.js | 2 -- src/logger.js | 4 ---- src/messaging/create.js | 1 - src/messaging/data.js | 3 --- src/messaging/delete.js | 1 - src/messaging/edit.js | 2 -- src/messaging/notifications.js | 1 - src/messaging/rooms.js | 2 -- src/messaging/unread.js | 2 -- src/meta/configs.js | 2 -- src/meta/css.js | 1 - src/meta/errors.js | 1 - src/meta/js.js | 1 - src/meta/logs.js | 1 - src/meta/settings.js | 1 - src/meta/sounds.js | 1 - src/meta/themes.js | 1 - src/middleware/header.js | 2 -- src/middleware/headers.js | 2 -- src/middleware/maintenance.js | 2 -- src/middleware/render.js | 2 -- src/middleware/user.js | 2 -- src/notifications.js | 2 -- src/plugins.js | 1 - src/plugins/hooks.js | 1 - src/plugins/install.js | 1 - src/posts.js | 3 --- src/posts/bookmarks.js | 1 - src/posts/category.js | 1 - src/posts/create.js | 2 -- src/posts/delete.js | 3 --- src/posts/edit.js | 3 --- src/posts/flags.js | 1 - src/posts/parse.js | 1 - src/posts/summary.js | 1 - src/posts/tools.js | 1 - src/posts/topics.js | 2 -- src/posts/user.js | 1 - src/posts/votes.js | 1 - src/privileges/categories.js | 4 ---- src/privileges/posts.js | 3 --- src/privileges/topics.js | 2 -- src/privileges/users.js | 2 -- src/rewards/admin.js | 4 ---- src/routes/api.js | 2 -- src/routes/authentication.js | 1 - src/routes/feeds.js | 1 - src/search.js | 2 -- src/socket.io/groups.js | 1 - src/socket.io/posts/bookmarks.js | 2 -- src/socket.io/posts/edit.js | 1 - src/socket.io/posts/flag.js | 1 - src/socket.io/posts/move.js | 2 -- src/socket.io/posts/tools.js | 3 --- src/socket.io/posts/votes.js | 1 - src/socket.io/topics/infinitescroll.js | 2 -- src/socket.io/topics/move.js | 1 - src/socket.io/topics/tags.js | 1 - src/socket.io/topics/tools.js | 2 -- src/socket.io/topics/unread.js | 1 - src/socket.io/user.js | 1 - src/socket.io/user/ban.js | 1 - src/socket.io/user/picture.js | 1 - src/socket.io/user/profile.js | 3 --- src/socket.io/user/search.js | 2 -- src/socket.io/user/status.js | 1 - src/topics.js | 2 -- src/topics/bookmarks.js | 2 -- src/topics/create.js | 2 -- src/topics/data.js | 2 -- src/topics/delete.js | 1 - src/topics/follow.js | 1 - src/topics/fork.js | 3 --- src/topics/popular.js | 1 - src/topics/posts.js | 2 -- src/topics/suggested.js | 2 -- src/topics/tags.js | 1 - src/topics/teaser.js | 1 - src/topics/thumb.js | 3 --- src/topics/tools.js | 3 --- src/topics/unread.js | 4 ---- src/topics/user.js | 1 - src/user.js | 4 ---- src/user/admin.js | 1 - src/user/approval.js | 3 --- src/user/auth.js | 1 - src/user/categories.js | 1 - src/user/create.js | 2 -- src/user/data.js | 2 -- src/user/delete.js | 1 - src/user/digest.js | 1 - src/user/email.js | 2 -- src/user/follow.js | 2 -- src/user/invite.js | 2 -- src/user/jobs.js | 2 -- src/user/notifications.js | 2 -- src/user/password.js | 2 -- src/user/picture.js | 2 -- src/user/posts.js | 2 -- src/user/profile.js | 1 - src/user/reset.js | 1 - src/user/search.js | 1 - src/user/settings.js | 1 - src/user/topics.js | 2 -- test/authentication.js | 2 -- test/build.js | 1 - test/categories.js | 2 -- test/controllers-admin.js | 1 - test/controllers.js | 2 -- test/database.js | 1 - test/database/keys.js | 1 - test/database/list.js | 1 - test/database/sets.js | 1 - test/database/sorted.js | 2 -- test/groups.js | 2 -- test/helpers/index.js | 1 - test/messaging.js | 1 - test/meta.js | 2 -- test/mocks/databasemock.js | 1 - test/pagination.js | 1 - test/plugins.js | 4 ---- test/posts.js | 1 - test/rewards.js | 1 - test/search.js | 1 - test/socket.io.js | 2 -- test/topics.js | 4 ---- test/uploads.js | 2 -- test/user.js | 5 ----- test/utils.js | 1 - 226 files changed, 1 insertion(+), 375 deletions(-) diff --git a/.eslintrc b/.eslintrc index de634c9243..10219b1d01 100644 --- a/.eslintrc +++ b/.eslintrc @@ -97,7 +97,7 @@ "no-var": "off", "no-shadow": "off", "prefer-template": "off", - "padded-blocks": "off", + // "padded-blocks": "off", // "eol-last": "off", // "lines-around-directive": "off", // "strict": "off", diff --git a/loader.js b/loader.js index 9141ead0f8..5dcc382d47 100644 --- a/loader.js +++ b/loader.js @@ -48,7 +48,6 @@ Loader.displayStartupMessages = function (callback) { }; Loader.addWorkerEvents = function (worker) { - worker.on('exit', function (code, signal) { if (code !== 0) { if (Loader.timesStarted < numProcs * 3) { diff --git a/minifier.js b/minifier.js index b7a605d103..e57c30fb38 100644 --- a/minifier.js +++ b/minifier.js @@ -11,7 +11,6 @@ var Minifier = { /* Javascript */ Minifier.js.minify = function (scripts, minify, callback) { - scripts = scripts.filter(function (file) { return file && file.endsWith('.js'); }); diff --git a/public/src/admin/advanced/events.js b/public/src/admin/advanced/events.js index 92f660f707..2be2c44ee7 100644 --- a/public/src/admin/advanced/events.js +++ b/public/src/admin/advanced/events.js @@ -5,7 +5,6 @@ define('admin/advanced/events', function () { var Events = {}; Events.init = function () { - $('[data-action="clear"]').on('click', function () { socket.emit('admin.deleteAllEvents', function (err) { if (err) { @@ -14,7 +13,6 @@ define('admin/advanced/events', function () { $('.events-list').empty(); }); }); - }; return Events; diff --git a/public/src/admin/appearance/themes.js b/public/src/admin/appearance/themes.js index 95c3f896f0..68165268b2 100644 --- a/public/src/admin/appearance/themes.js +++ b/public/src/admin/appearance/themes.js @@ -72,7 +72,6 @@ define('admin/appearance/themes', ['translator'], function (translator) { if (!themes.length) { instListEl.append($('
  • ').addClass('no-themes').translateHtml('[[admin/appearance/themes:no-themes]]')); - } else { templates.parse('admin/partials/theme_list', { themes: themes, diff --git a/public/src/admin/extend/widgets.js b/public/src/admin/extend/widgets.js index d4356a1cb4..134efe3864 100644 --- a/public/src/admin/extend/widgets.js +++ b/public/src/admin/extend/widgets.js @@ -132,7 +132,6 @@ define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { timeout: 2500, }); } - }); }); } diff --git a/public/src/admin/general/homepage.js b/public/src/admin/general/homepage.js index 3d36460e3c..17e28d8cbb 100644 --- a/public/src/admin/general/homepage.js +++ b/public/src/admin/general/homepage.js @@ -2,7 +2,6 @@ define('admin/general/homepage', ['admin/settings'], function (Settings) { - function toggleCustomRoute() { if ($('[data-field="homePageRoute"]').val()) { $('#homePageCustom').hide(); diff --git a/public/src/admin/manage/flags.js b/public/src/admin/manage/flags.js index 21c9d3d015..af44392a7d 100644 --- a/public/src/admin/manage/flags.js +++ b/public/src/admin/manage/flags.js @@ -7,7 +7,6 @@ define('admin/manage/flags', [ 'components', 'translator', ], function (autocomplete, Chart, components, translator) { - var Flags = {}; Flags.init = function () { diff --git a/public/src/admin/manage/group.js b/public/src/admin/manage/group.js index 19397dc9fd..89985f3ba5 100644 --- a/public/src/admin/manage/group.js +++ b/public/src/admin/manage/group.js @@ -32,7 +32,6 @@ define('admin/manage/group', [ }); groupDetailsSearch.on('keyup', function () { - if (searchDelay) { clearTimeout(searchDelay); } @@ -140,7 +139,6 @@ define('admin/manage/group', [ } userRow.slideUp().remove(); }); - }); break; default: @@ -186,7 +184,6 @@ define('admin/manage/group', [ }); return false; }); - }; return Groups; diff --git a/public/src/admin/manage/ip-blacklist.js b/public/src/admin/manage/ip-blacklist.js index 8e2bbeb007..5dd3e32fb1 100644 --- a/public/src/admin/manage/ip-blacklist.js +++ b/public/src/admin/manage/ip-blacklist.js @@ -2,7 +2,6 @@ define('admin/manage/ip-blacklist', ['translator'], function (translator) { - var Blacklist = {}; Blacklist.init = function () { diff --git a/public/src/admin/manage/registration.js b/public/src/admin/manage/registration.js index 2b4d430325..3107e6c19f 100644 --- a/public/src/admin/manage/registration.js +++ b/public/src/admin/manage/registration.js @@ -5,7 +5,6 @@ define('admin/manage/registration', function () { var Registration = {}; Registration.init = function () { - $('.users-list').on('click', '[data-action]', function (ev) { var parent = $(this).parents('[data-username]'); var action = $(this).attr('data-action'); diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js index d5c0ec7ad9..75f2ce700a 100644 --- a/public/src/admin/manage/users.js +++ b/public/src/admin/manage/users.js @@ -360,7 +360,6 @@ define('admin/manage/users', ['translator'], function (translator) { handleUserCreate(); handleInvite(); - }; function handleInvite() { diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index af52223536..7ab91acdbc 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -81,7 +81,6 @@ $(document).ready(function () { $('#footer, #content').removeClass('hide').addClass('ajaxifying'); ajaxify.loadData(url, function (err, data) { - if (!err || (err && err.data && (parseInt(err.data.status, 10) !== 302 && parseInt(err.data.status, 10) !== 308))) { ajaxify.updateHistory(url, quiet); } @@ -158,7 +157,6 @@ $(document).ready(function () { app.alertError('[[global:please_log_in]]'); app.previousUrl = url; window.location.href = config.relative_path + '/login'; - } else if (status === 302 || status === 308) { if (data.responseJSON && data.responseJSON.external) { window.location.href = data.responseJSON.external; @@ -422,5 +420,4 @@ $(document).ready(function () { templates.cache[$(this).attr('data-template')] = $('
    ').html($(this).html()).text(); $(this).parent().remove(); }); - }); diff --git a/public/src/app.js b/public/src/app.js index 2a95ba29f7..37eb41b564 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -657,6 +657,5 @@ app.cacheBuster = null; }); }); }); - }; }()); diff --git a/public/src/client/account/edit.js b/public/src/client/account/edit.js index b805404cbc..f70e692f45 100644 --- a/public/src/client/account/edit.js +++ b/public/src/client/account/edit.js @@ -5,7 +5,6 @@ define('forum/account/edit', ['forum/account/header', 'translator', 'components' var AccountEdit = {}; AccountEdit.init = function () { - header.init(); $('#submitBtn').on('click', updateProfile); @@ -70,7 +69,6 @@ define('forum/account/edit', ['forum/account/header', 'translator', 'components' } function handleImageChange() { - $('#changePictureBtn').on('click', function () { socket.emit('user.getProfilePictures', {uid: ajaxify.data.uid}, function (err, pictures) { if (err) { diff --git a/public/src/client/account/profile.js b/public/src/client/account/profile.js index e703b23af5..9713b57122 100644 --- a/public/src/client/account/profile.js +++ b/public/src/client/account/profile.js @@ -70,7 +70,6 @@ define('forum/account/profile', [ } app.parseAndTranslate('account/profile', 'posts', {posts: posts}, function (html) { - $('[component="posts"]').append(html); html.find('.timeago').timeago(); diff --git a/public/src/client/category.js b/public/src/client/category.js index e61b0b5e53..af4f6dba8c 100644 --- a/public/src/client/category.js +++ b/public/src/client/category.js @@ -118,7 +118,6 @@ define('forum/category', [ $(window).on('action:ajaxify.contentLoaded', function (ev, data) { if (ajaxify.data.template.category && ajaxify.data.cid) { - var bookmarkIndex = localStorage.getItem('category:' + ajaxify.data.cid + ':bookmark'); var clickedIndex = localStorage.getItem('category:' + ajaxify.data.cid + ':bookmark:clicked'); diff --git a/public/src/client/category/tools.js b/public/src/client/category/tools.js index 36955d25ff..0f8c009e06 100644 --- a/public/src/client/category/tools.js +++ b/public/src/client/category/tools.js @@ -8,7 +8,6 @@ define('forum/category/tools', [ 'components', 'translator', ], function (move, topicSelect, components, translator) { - var CategoryTools = {}; CategoryTools.init = function (cid) { @@ -161,7 +160,6 @@ define('forum/category/tools', [ } function updateDropdownOptions() { - var tids = topicSelect.getSelectedTids(); var isAnyDeleted = isAny(isTopicDeleted, tids); var areAllDeleted = areAll(isTopicDeleted, tids); diff --git a/public/src/client/chats.js b/public/src/client/chats.js index 88fc720080..4879485993 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -60,7 +60,6 @@ define('forum/chats', [ Chats.addSendHandlers(ajaxify.data.roomId, $('.chat-input'), $('.expanded-chat button[data-action="send"]')); $('[data-action="pop-out"]').on('click', function () { - var text = components.get('chat/input').val(); var roomId = ajaxify.data.roomId; diff --git a/public/src/client/chats/messages.js b/public/src/client/chats/messages.js index e448554a8e..4c804643a7 100644 --- a/public/src/client/chats/messages.js +++ b/public/src/client/chats/messages.js @@ -2,7 +2,6 @@ define('forum/chats/messages', ['components', 'sounds', 'translator'], function (components, sounds, translator) { - var messages = {}; messages.sendMessage = function (roomId, inputEl) { @@ -57,7 +56,6 @@ define('forum/chats/messages', ['components', 'sounds', 'translator'], function }; messages.appendChatMessage = function (chatContentEl, data) { - var lastSpeaker = parseInt(chatContentEl.find('.chat-message').last().attr('data-uid'), 10); if (!Array.isArray(data)) { data.newSet = lastSpeaker !== data.fromuid; diff --git a/public/src/client/chats/recent.js b/public/src/client/chats/recent.js index 8224cda8c2..f52f95fbbf 100644 --- a/public/src/client/chats/recent.js +++ b/public/src/client/chats/recent.js @@ -2,7 +2,6 @@ define('forum/chats/recent', function () { - var recent = {}; recent.init = function () { diff --git a/public/src/client/chats/search.js b/public/src/client/chats/search.js index ab8b8d54fd..f9504e78a4 100644 --- a/public/src/client/chats/search.js +++ b/public/src/client/chats/search.js @@ -2,7 +2,6 @@ define('forum/chats/search', ['components'], function (components) { - var search = {}; search.init = function () { diff --git a/public/src/client/footer.js b/public/src/client/footer.js index b6b7d243c9..eb921f36c6 100644 --- a/public/src/client/footer.js +++ b/public/src/client/footer.js @@ -2,7 +2,6 @@ define('forum/footer', ['notifications', 'chat', 'components', 'translator'], function (Notifications, Chat, components, translator) { - Notifications.prepareDOM(); Chat.prepareDOM(); translator.prepareDOM(); diff --git a/public/src/client/groups/details.js b/public/src/client/groups/details.js index 87ef07b573..21549ec2a7 100644 --- a/public/src/client/groups/details.js +++ b/public/src/client/groups/details.js @@ -10,7 +10,6 @@ define('forum/groups/details', [ 'translator', 'vendor/colorpicker/colorpicker', ], function (memberList, iconSelect, components, coverPhoto, pictureCropper, translator) { - var Details = {}; var groupName; diff --git a/public/src/client/groups/memberlist.js b/public/src/client/groups/memberlist.js index 2b5cbb5648..6ab83ccbbc 100644 --- a/public/src/client/groups/memberlist.js +++ b/public/src/client/groups/memberlist.js @@ -2,7 +2,6 @@ define('forum/groups/memberlist', ['components', 'forum/infinitescroll'], function (components, infinitescroll) { - var MemberList = {}; var searchInterval; var groupName; diff --git a/public/src/client/infinitescroll.js b/public/src/client/infinitescroll.js index 24e7f6fc68..208448d8a5 100644 --- a/public/src/client/infinitescroll.js +++ b/public/src/client/infinitescroll.js @@ -2,7 +2,6 @@ define('forum/infinitescroll', function () { - var scroll = {}; var callback; var previousScrollTop = 0; diff --git a/public/src/client/recent.js b/public/src/client/recent.js index 511137adbb..4acb4905ba 100644 --- a/public/src/client/recent.js +++ b/public/src/client/recent.js @@ -146,7 +146,6 @@ define('forum/recent', ['forum/infinitescroll', 'components'], function (infinit }; Recent.onTopicsLoaded = function (templateName, topics, showSelect, callback) { - topics = topics.filter(function (topic) { return !components.get('category/topic', 'tid', topic.tid).length; }); diff --git a/public/src/client/topic.js b/public/src/client/topic.js index 106a8e99f1..9088830554 100644 --- a/public/src/client/topic.js +++ b/public/src/client/topic.js @@ -243,13 +243,11 @@ define('forum/topic', [ var newUrl = 'topic/' + ajaxify.data.slug + (index > 1 ? ('/' + index) : ''); if (newUrl !== currentUrl) { - if (Topic.replaceURLTimeout) { clearTimeout(Topic.replaceURLTimeout); } Topic.replaceURLTimeout = setTimeout(function () { - if (index >= elementCount && app.user.uid) { socket.emit('topics.markAsRead', [ajaxify.data.tid]); } @@ -296,7 +294,6 @@ define('forum/topic', [ if (!currentBookmark || parseInt(index, 10) >= parseInt(currentBookmark, 10)) { app.removeAlert('bookmark'); } - } diff --git a/public/src/client/topic/delete-posts.js b/public/src/client/topic/delete-posts.js index c770bf045a..c2fde4ec25 100644 --- a/public/src/client/topic/delete-posts.js +++ b/public/src/client/topic/delete-posts.js @@ -2,7 +2,6 @@ define('forum/topic/delete-posts', ['components', 'postSelect'], function (components, postSelect) { - var DeletePosts = {}; var modal; var deleteBtn; diff --git a/public/src/client/topic/events.js b/public/src/client/topic/events.js index d88a0dee54..d87aac6f75 100644 --- a/public/src/client/topic/events.js +++ b/public/src/client/topic/events.js @@ -9,7 +9,6 @@ define('forum/topic/events', [ 'components', 'translator', ], function (postTools, threadTools, posts, components, translator) { - var Events = {}; var events = { diff --git a/public/src/client/topic/flag.js b/public/src/client/topic/flag.js index cb46377641..c9904d3011 100644 --- a/public/src/client/topic/flag.js +++ b/public/src/client/topic/flag.js @@ -2,7 +2,6 @@ define('forum/topic/flag', [], function () { - var Flag = {}; var flagModal; var flagCommit; diff --git a/public/src/client/topic/fork.js b/public/src/client/topic/fork.js index 8cc5035e2c..b34d50d55f 100644 --- a/public/src/client/topic/fork.js +++ b/public/src/client/topic/fork.js @@ -2,7 +2,6 @@ define('forum/topic/fork', ['components', 'postSelect'], function (components, postSelect) { - var Fork = {}; var forkModal; var forkCommit; diff --git a/public/src/client/topic/move-post.js b/public/src/client/topic/move-post.js index 45845bbcf7..3c848be9ff 100644 --- a/public/src/client/topic/move-post.js +++ b/public/src/client/topic/move-post.js @@ -2,7 +2,6 @@ define('forum/topic/move-post', [], function () { - var MovePost = {}; @@ -33,7 +32,6 @@ define('forum/topic/move-post', [], function () { topicId.val(''); }); }); - }); }; diff --git a/public/src/client/topic/move.js b/public/src/client/topic/move.js index 85be9013dc..4d038637ca 100644 --- a/public/src/client/topic/move.js +++ b/public/src/client/topic/move.js @@ -2,7 +2,6 @@ define('forum/topic/move', function () { - var Move = {}; var modal; var selectedEl; @@ -22,7 +21,6 @@ define('forum/topic/move', function () { } parseModal(categories, function () { - modal.on('hidden.bs.modal', function () { modal.remove(); }); diff --git a/public/src/client/topic/postTools.js b/public/src/client/topic/postTools.js index 903c90f4df..22d92750eb 100644 --- a/public/src/client/topic/postTools.js +++ b/public/src/client/topic/postTools.js @@ -9,7 +9,6 @@ define('forum/topic/postTools', [ 'forum/topic/votes', 'forum/topic/move-post', ], function (share, navigator, components, translator, votes, movePost) { - var PostTools = {}; var staleReplyAnyway = false; @@ -231,7 +230,6 @@ define('forum/topic/postTools', [ var selectedNode = getSelectedNode(); showStaleWarning(function () { - function quote(text) { $(window).trigger('action:composer.addQuote', { tid: tid, diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js index 9ab48cbeaa..5711c4513f 100644 --- a/public/src/client/topic/posts.js +++ b/public/src/client/topic/posts.js @@ -8,7 +8,6 @@ define('forum/topic/posts', [ 'navigator', 'components', ], function (pagination, infinitescroll, postTools, navigator, components) { - var Posts = { _imageLoaderTimeout: undefined, }; @@ -178,7 +177,6 @@ define('forum/topic/posts', [ $(window).trigger('action:posts.loading', {posts: data.posts, after: after, before: before}); app.parseAndTranslate('topic', 'posts', data, function (html) { - html = html.filter(function () { var pid = $(this).attr('data-pid'); return pid && $('[component="post"][data-pid="' + pid + '"]').length === 0; @@ -396,5 +394,4 @@ define('forum/topic/posts', [ } return Posts; - }); diff --git a/public/src/client/topic/replies.js b/public/src/client/topic/replies.js index be54d7027d..3d2f0f72af 100644 --- a/public/src/client/topic/replies.js +++ b/public/src/client/topic/replies.js @@ -2,7 +2,6 @@ define('forum/topic/replies', ['navigator', 'components', 'forum/topic/posts'], function (navigator, components, posts) { - var Replies = {}; Replies.init = function (tid) { diff --git a/public/src/client/topic/threadTools.js b/public/src/client/topic/threadTools.js index 88eb4940c1..ad5a262222 100644 --- a/public/src/client/topic/threadTools.js +++ b/public/src/client/topic/threadTools.js @@ -8,11 +8,9 @@ define('forum/topic/threadTools', [ 'components', 'translator', ], function (fork, move, deletePosts, components, translator) { - var ThreadTools = {}; ThreadTools.init = function (tid) { - renderMenu(); var topicContainer = $('.topic'); diff --git a/public/src/client/topic/votes.js b/public/src/client/topic/votes.js index ea0ad4291e..824cfeb2a1 100644 --- a/public/src/client/topic/votes.js +++ b/public/src/client/topic/votes.js @@ -2,7 +2,6 @@ define('forum/topic/votes', ['components', 'translator'], function (components, translator) { - var Votes = {}; Votes.addVoteHandler = function () { @@ -105,7 +104,6 @@ define('forum/topic/votes', ['components', 'translator'], function (components, dialog.on('click', function () { dialog.modal('hide'); }); - }); }); }); diff --git a/public/src/modules/chat.js b/public/src/modules/chat.js index ef5f844d64..8b493ff111 100644 --- a/public/src/modules/chat.js +++ b/public/src/modules/chat.js @@ -11,7 +11,6 @@ define('chat', [ 'translator', 'scrollStop', ], function (components, taskbar, S, sounds, Chats, ChatsMessages, translator, scrollStop) { - var module = {}; var newMessage = false; @@ -157,7 +156,6 @@ define('chat', [ module.createModal = function (data, callback) { app.parseAndTranslate('chat', data, function (chatModal) { - var uuid = utils.generateUUID(); var dragged = false; diff --git a/public/src/modules/coverPhoto.js b/public/src/modules/coverPhoto.js index a2aee26775..8cae013101 100644 --- a/public/src/modules/coverPhoto.js +++ b/public/src/modules/coverPhoto.js @@ -4,7 +4,6 @@ define('coverPhoto', [ 'vendor/jquery/draggable-background/backgroundDraggable', ], function () { - var coverPhoto = { coverEl: null, saveFn: null, diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js index 98d8aeae7b..030e6333e0 100644 --- a/public/src/modules/helpers.js +++ b/public/src/modules/helpers.js @@ -280,7 +280,6 @@ if (typeof define === 'function' && define.amd) { define('helpers', exports); } - }( typeof exports === 'object' ? exports : typeof define === 'function' && define.amd ? {} : diff --git a/public/src/modules/navigator.js b/public/src/modules/navigator.js index 62d5bbb788..96ed332e98 100644 --- a/public/src/modules/navigator.js +++ b/public/src/modules/navigator.js @@ -3,7 +3,6 @@ define('navigator', ['forum/pagination', 'components'], function (pagination, components) { - var navigator = {}; var index = 1; var count = 0; diff --git a/public/src/modules/search.js b/public/src/modules/search.js index b4ceec533c..65f68af699 100644 --- a/public/src/modules/search.js +++ b/public/src/modules/search.js @@ -2,7 +2,6 @@ define('search', ['navigator', 'translator'], function (nav, translator) { - var Search = { current: {}, }; diff --git a/public/src/modules/settings.js b/public/src/modules/settings.js index 04d88e40cd..11e317e067 100644 --- a/public/src/modules/settings.js +++ b/public/src/modules/settings.js @@ -2,7 +2,6 @@ define('settings', function () { - var DEFAULT_PLUGINS = [ 'settings/checkbox', 'settings/number', @@ -541,5 +540,4 @@ define('settings', function () { }); return Settings; - }); diff --git a/public/src/modules/settings/array.js b/public/src/modules/settings/array.js index e2f606d1db..3a0bdea922 100644 --- a/public/src/modules/settings/array.js +++ b/public/src/modules/settings/array.js @@ -1,7 +1,6 @@ 'use strict'; define('settings/array', function () { - var Settings = null; var SettingsArray; var helper = null; @@ -145,5 +144,4 @@ define('settings/array', function () { }; return SettingsArray; - }); diff --git a/public/src/modules/settings/checkbox.js b/public/src/modules/settings/checkbox.js index e1fd6fd614..6d36849b6a 100644 --- a/public/src/modules/settings/checkbox.js +++ b/public/src/modules/settings/checkbox.js @@ -1,7 +1,6 @@ 'use strict'; define('settings/checkbox', function () { - var Settings = null; var SettingsCheckbox; @@ -35,5 +34,4 @@ define('settings/checkbox', function () { }; return SettingsCheckbox; - }); diff --git a/public/src/modules/settings/key.js b/public/src/modules/settings/key.js index d5cf969693..d6eb183c77 100644 --- a/public/src/modules/settings/key.js +++ b/public/src/modules/settings/key.js @@ -1,7 +1,6 @@ 'use strict'; define('settings/key', function () { - var Settings = null; var SettingsKey; var helper = null; @@ -219,5 +218,4 @@ define('settings/key', function () { }; return SettingsKey; - }); diff --git a/public/src/modules/settings/number.js b/public/src/modules/settings/number.js index e8703eef28..52dd38fe44 100644 --- a/public/src/modules/settings/number.js +++ b/public/src/modules/settings/number.js @@ -1,7 +1,6 @@ 'use strict'; define('settings/number', function () { - return { types: ['number'], get: function (element, trim, empty) { @@ -12,5 +11,4 @@ define('settings/number', function () { return value ? +value : 0; }, }; - }); diff --git a/public/src/modules/settings/object.js b/public/src/modules/settings/object.js index 5f4d897700..d100261691 100644 --- a/public/src/modules/settings/object.js +++ b/public/src/modules/settings/object.js @@ -1,7 +1,6 @@ 'use strict'; define('settings/object', function () { - var Settings = null; var SettingsObject; var helper = null; @@ -117,5 +116,4 @@ define('settings/object', function () { }; return SettingsObject; - }); diff --git a/public/src/modules/settings/select.js b/public/src/modules/settings/select.js index 164d2c2cb7..d90c03c4fd 100644 --- a/public/src/modules/settings/select.js +++ b/public/src/modules/settings/select.js @@ -1,7 +1,6 @@ 'use strict'; define('settings/select', function () { - var Settings = null; var SettingsSelect; @@ -47,5 +46,4 @@ define('settings/select', function () { }; return SettingsSelect; - }); diff --git a/public/src/modules/settings/textarea.js b/public/src/modules/settings/textarea.js index d8e4cb2268..0397e5bea5 100644 --- a/public/src/modules/settings/textarea.js +++ b/public/src/modules/settings/textarea.js @@ -1,7 +1,6 @@ 'use strict'; define('settings/textarea', function () { - var Settings = null; var SettingsArea; @@ -33,5 +32,4 @@ define('settings/textarea', function () { }; return SettingsArea; - }); diff --git a/public/src/modules/share.js b/public/src/modules/share.js index cdfd755bb0..f9d81a9690 100644 --- a/public/src/modules/share.js +++ b/public/src/modules/share.js @@ -2,11 +2,9 @@ define('share', function () { - var module = {}; module.addShareHandlers = function (name) { - var baseUrl = window.location.protocol + '//' + window.location.host; function openShare(url, urlToPost, width, height) { @@ -15,7 +13,6 @@ define('share', function () { } $('#content').off('shown.bs.dropdown', '.share-dropdown').on('shown.bs.dropdown', '.share-dropdown', function () { - var postLink = $(this).find('.post-link'); postLink.val(baseUrl + getPostUrl($(this))); diff --git a/public/src/modules/topicSelect.js b/public/src/modules/topicSelect.js index 46d3a9ffe7..185e5e36a0 100644 --- a/public/src/modules/topicSelect.js +++ b/public/src/modules/topicSelect.js @@ -51,7 +51,6 @@ define('topicSelect', ['components'], function (components) { }; function selectRange(clickedTid) { - if (!lastSelected) { lastSelected = $('[component="category/topic"]').first().find('[component="topic/select"]'); } diff --git a/public/src/modules/uploader.js b/public/src/modules/uploader.js index 22fff0bc19..e986065ed5 100644 --- a/public/src/modules/uploader.js +++ b/public/src/modules/uploader.js @@ -2,7 +2,6 @@ define('uploader', ['translator'], function (translator) { - var module = {}; module.open = function (route, params, fileSize, callback) { diff --git a/public/src/overrides.js b/public/src/overrides.js index c3c2d64040..27ba05c74b 100644 --- a/public/src/overrides.js +++ b/public/src/overrides.js @@ -4,7 +4,6 @@ var overrides = overrides || {}; if ('undefined' !== typeof window) { - (function ($, undefined) { require(['translator'], function (translator) { $.fn.getCursorPosition = function () { @@ -135,5 +134,4 @@ if ('undefined' !== typeof window) { timeagoFn.apply(this, arguments); }; }; - } diff --git a/public/src/sockets.js b/public/src/sockets.js index 8105524d22..50a3c5504f 100644 --- a/public/src/sockets.js +++ b/public/src/sockets.js @@ -124,5 +124,4 @@ app.isConnected = false; function onEventBanned() { window.location.href = config.relative_path + '/'; } - }()); diff --git a/public/src/utils.js b/public/src/utils.js index 16cd44d998..2c2f4ac4dd 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -17,7 +17,6 @@ var diff = process.hrtime(start); return (diff[0] * 1e3) + (diff[1] / 1e6); }; - } else { XRegExp = window.XRegExp; } @@ -479,7 +478,6 @@ if ('undefined' !== typeof window) { window.utils = module.exports; } - }('undefined' === typeof module ? { module: { exports: {}, diff --git a/src/categories.js b/src/categories.js index ea795320bb..1297c0fc65 100644 --- a/src/categories.js +++ b/src/categories.js @@ -10,7 +10,6 @@ var plugins = require('./plugins'); var privileges = require('./privileges'); (function (Categories) { - require('./categories/data')(Categories); require('./categories/create')(Categories); require('./categories/delete')(Categories); @@ -363,6 +362,4 @@ var privileges = require('./privileges'); }, ], callback); }; - - }(exports)); diff --git a/src/categories/activeusers.js b/src/categories/activeusers.js index 148db6aceb..5ce28c4b11 100644 --- a/src/categories/activeusers.js +++ b/src/categories/activeusers.js @@ -5,7 +5,6 @@ var posts = require('../posts'); var db = require('../database'); module.exports = function (Categories) { - Categories.getActiveUsers = function (cid, callback) { async.waterfall([ function (next) { diff --git a/src/categories/create.js b/src/categories/create.js index 0673e7929c..5be36db37b 100644 --- a/src/categories/create.js +++ b/src/categories/create.js @@ -9,7 +9,6 @@ var privileges = require('../privileges'); var utils = require('../../public/src/utils'); module.exports = function (Categories) { - Categories.create = function (data, callback) { var category; var parentCid = data.parentCid ? data.parentCid : 0; @@ -168,5 +167,4 @@ module.exports = function (Categories) { }, ], callback); } - }; diff --git a/src/categories/data.js b/src/categories/data.js index 9c15fbb2d4..06bd3acfe9 100644 --- a/src/categories/data.js +++ b/src/categories/data.js @@ -7,7 +7,6 @@ var winston = require('winston'); var db = require('../database'); module.exports = function (Categories) { - Categories.getCategoryData = function (cid, callback) { db.getObject('category:' + cid, function (err, category) { if (err) { @@ -111,5 +110,4 @@ module.exports = function (Categories) { Categories.incrementCategoryFieldBy = function (cid, field, value, callback) { db.incrObjectFieldBy('category:' + cid, field, value, callback); }; - }; diff --git a/src/categories/delete.js b/src/categories/delete.js index 20aef52472..58dcbcee41 100644 --- a/src/categories/delete.js +++ b/src/categories/delete.js @@ -9,7 +9,6 @@ var groups = require('../groups'); var privileges = require('../privileges'); module.exports = function (Categories) { - Categories.purge = function (cid, uid, callback) { async.waterfall([ function (next) { diff --git a/src/categories/recentreplies.js b/src/categories/recentreplies.js index 33572aabbc..4570a177fe 100644 --- a/src/categories/recentreplies.js +++ b/src/categories/recentreplies.js @@ -14,7 +14,6 @@ var batch = require('../batch'); module.exports = function (Categories) { - Categories.getRecentReplies = function (cid, uid, count, callback) { if (!parseInt(count, 10)) { return callback(null, []); diff --git a/src/categories/topics.js b/src/categories/topics.js index f487846f1b..4be2298b08 100644 --- a/src/categories/topics.js +++ b/src/categories/topics.js @@ -7,7 +7,6 @@ var topics = require('../topics'); var plugins = require('../plugins'); module.exports = function (Categories) { - Categories.getCategoryTopics = function (data, callback) { async.waterfall([ function (next) { @@ -142,5 +141,4 @@ module.exports = function (Categories) { }, ], callback); }; - }; diff --git a/src/categories/unread.js b/src/categories/unread.js index bb7c9d6432..68cb957fe8 100644 --- a/src/categories/unread.js +++ b/src/categories/unread.js @@ -5,7 +5,6 @@ var async = require('async'); var db = require('../database'); module.exports = function (Categories) { - Categories.markAsRead = function (cids, uid, callback) { callback = callback || function () {}; if (!Array.isArray(cids) || !cids.length) { @@ -53,5 +52,4 @@ module.exports = function (Categories) { Categories.hasReadCategory = function (cid, uid, callback) { db.isSetMember('cid:' + cid + ':read_by_uid', uid, callback); }; - }; diff --git a/src/categories/update.js b/src/categories/update.js index b8f15ac1f5..1dc588405b 100644 --- a/src/categories/update.js +++ b/src/categories/update.js @@ -10,9 +10,7 @@ var translator = require('../../public/src/modules/translator'); var plugins = require('../plugins'); module.exports = function (Categories) { - Categories.update = function (modified, callback) { - var cids = Object.keys(modified); async.each(cids, function (cid, next) { @@ -166,5 +164,4 @@ module.exports = function (Categories) { }, ], callback); }; - }; diff --git a/src/controllers/admin/events.js b/src/controllers/admin/events.js index 190b5b612e..97838d2266 100644 --- a/src/controllers/admin/events.js +++ b/src/controllers/admin/events.js @@ -10,7 +10,6 @@ var eventsController = {}; eventsController.get = function (req, res, next) { - var page = parseInt(req.query.page, 10) || 1; var itemsPerPage = 20; var start = (page - 1) * itemsPerPage; diff --git a/src/controllers/category.js b/src/controllers/category.js index 0e68d5a5ce..ce5f7b5e07 100644 --- a/src/controllers/category.js +++ b/src/controllers/category.js @@ -124,7 +124,6 @@ categoryController.get = function (req, res, callback) { ], next); }, function (categoryData, next) { - categories.modifyTopicsByPrivilege(categoryData.topics, userPrivileges); if (categoryData.link) { diff --git a/src/controllers/index.js b/src/controllers/index.js index 0f16a19f27..1a54a5e8f0 100644 --- a/src/controllers/index.js +++ b/src/controllers/index.js @@ -147,7 +147,6 @@ Controllers.login = function (req, res, next) { } else { res.render('login', data); } - }; Controllers.register = function (req, res, next) { @@ -413,8 +412,6 @@ Controllers.handleURIErrors = function (err, req, res, next) { }); } } - - } else { next(err); } diff --git a/src/controllers/popular.js b/src/controllers/popular.js index daff632f12..1daf7f5ed5 100644 --- a/src/controllers/popular.js +++ b/src/controllers/popular.js @@ -18,7 +18,6 @@ var terms = { }; popularController.get = function (req, res, next) { - var term = terms[req.params.term]; if (!term && req.params.term) { diff --git a/src/controllers/topics.js b/src/controllers/topics.js index d74152a37a..4d6f87b68f 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -128,7 +128,6 @@ topicsController.get = function (req, res, callback) { plugins.fireHook('filter:controllers.topic.get', {topicData: topicData, uid: req.uid}, next); }, function (data, next) { - var breadcrumbs = [ { text: data.topicData.category.name, diff --git a/src/controllers/uploads.js b/src/controllers/uploads.js index a82ff32818..0a556f722a 100644 --- a/src/controllers/uploads.js +++ b/src/controllers/uploads.js @@ -115,7 +115,6 @@ function resizeImage(fileObj, callback) { }, next); }, function (next) { - // Return the resized version to the composer/postData var dirname = path.dirname(fileObj.url); var extname = path.extname(fileObj.url); diff --git a/src/database/mongo.js b/src/database/mongo.js index d82d1527c3..9bc321703b 100644 --- a/src/database/mongo.js +++ b/src/database/mongo.js @@ -2,7 +2,6 @@ 'use strict'; (function (module) { - var winston = require('winston'); var async = require('async'); var nconf = require('nconf'); @@ -246,5 +245,4 @@ module.close = function () { db.close(); }; - }(exports)); diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index cf9dfecc99..1d93bbcaab 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -503,5 +503,4 @@ module.exports = function (db, module) { callback ); }; - }; diff --git a/src/database/mongo/sorted/add.js b/src/database/mongo/sorted/add.js index 2abae99d49..acbb279985 100644 --- a/src/database/mongo/sorted/add.js +++ b/src/database/mongo/sorted/add.js @@ -1,7 +1,6 @@ 'use strict'; module.exports = function (db, module) { - var helpers = module.helpers.mongo; module.sortedSetAdd = function (key, score, value, callback) { @@ -61,5 +60,4 @@ module.exports = function (db, module) { callback(err); }); }; - }; diff --git a/src/database/mongo/sorted/intersect.js b/src/database/mongo/sorted/intersect.js index 74b7d1596b..dc1d4ef54c 100644 --- a/src/database/mongo/sorted/intersect.js +++ b/src/database/mongo/sorted/intersect.js @@ -1,7 +1,6 @@ 'use strict'; module.exports = function (db, module) { - module.sortedSetIntersectCard = function (keys, callback) { if (!Array.isArray(keys) || !keys.length) { return callback(null, 0); @@ -103,5 +102,4 @@ module.exports = function (db, module) { callback(null, data); }); } - }; diff --git a/src/database/mongo/sorted/remove.js b/src/database/mongo/sorted/remove.js index e7f547995c..cceb4e0c6a 100644 --- a/src/database/mongo/sorted/remove.js +++ b/src/database/mongo/sorted/remove.js @@ -1,7 +1,6 @@ 'use strict'; module.exports = function (db, module) { - var helpers = module.helpers.mongo; module.sortedSetRemove = function (key, value, callback) { @@ -53,5 +52,4 @@ module.exports = function (db, module) { callback(err); }); }; - }; diff --git a/src/database/mongo/sorted/union.js b/src/database/mongo/sorted/union.js index 36f5c545ad..ee8ae3e261 100644 --- a/src/database/mongo/sorted/union.js +++ b/src/database/mongo/sorted/union.js @@ -1,7 +1,6 @@ 'use strict'; module.exports = function (db, module) { - module.sortedSetUnionCard = function (keys, callback) { if (!Array.isArray(keys) || !keys.length) { return callback(null, 0); @@ -81,5 +80,4 @@ module.exports = function (db, module) { callback(null, data); }); } - }; diff --git a/src/database/redis.js b/src/database/redis.js index 41dc300d54..d076476f20 100644 --- a/src/database/redis.js +++ b/src/database/redis.js @@ -1,7 +1,6 @@ 'use strict'; (function (module) { - var winston = require('winston'); var nconf = require('nconf'); var semver = require('semver'); diff --git a/src/database/redis/hash.js b/src/database/redis/hash.js index 756b82614c..2a83630f4b 100644 --- a/src/database/redis/hash.js +++ b/src/database/redis/hash.js @@ -1,7 +1,6 @@ 'use strict'; module.exports = function (redisClient, module) { - var helpers = module.helpers.redis; module.setObject = function (key, data, callback) { diff --git a/src/database/redis/main.js b/src/database/redis/main.js index 1ddef46355..1ab8a7ff13 100644 --- a/src/database/redis/main.js +++ b/src/database/redis/main.js @@ -1,7 +1,6 @@ 'use strict'; module.exports = function (redisClient, module) { - module.flushdb = function (callback) { redisClient.send_command('flushdb', [], function (err) { if (typeof callback === 'function') { diff --git a/src/database/redis/sorted.js b/src/database/redis/sorted.js index 9fa7e07694..feb8a4cc27 100644 --- a/src/database/redis/sorted.js +++ b/src/database/redis/sorted.js @@ -1,7 +1,6 @@ 'use strict'; module.exports = function (redisClient, module) { - var utils = require('../../../public/src/utils'); var helpers = module.helpers.redis; diff --git a/src/database/redis/sorted/add.js b/src/database/redis/sorted/add.js index 96b99a4376..e60d079eac 100644 --- a/src/database/redis/sorted/add.js +++ b/src/database/redis/sorted/add.js @@ -1,7 +1,6 @@ 'use strict'; module.exports = function (redisClient, module) { - module.sortedSetAdd = function (key, score, value, callback) { callback = callback || function () {}; if (Array.isArray(score) && Array.isArray(value)) { @@ -44,6 +43,4 @@ module.exports = function (redisClient, module) { callback(err); }); }; - - }; diff --git a/src/database/redis/sorted/intersect.js b/src/database/redis/sorted/intersect.js index 6ba6d45515..aeb68d02ef 100644 --- a/src/database/redis/sorted/intersect.js +++ b/src/database/redis/sorted/intersect.js @@ -2,7 +2,6 @@ 'use strict'; module.exports = function (redisClient, module) { - module.sortedSetIntersectCard = function (keys, callback) { if (!Array.isArray(keys) || !keys.length) { return callback(null, 0); diff --git a/src/database/redis/sorted/remove.js b/src/database/redis/sorted/remove.js index 1bf86db414..eacb6ca861 100644 --- a/src/database/redis/sorted/remove.js +++ b/src/database/redis/sorted/remove.js @@ -2,7 +2,6 @@ 'use strict'; module.exports = function (redisClient, module) { - var helpers = module.helpers.redis; module.sortedSetRemove = function (key, value, callback) { diff --git a/src/database/redis/sorted/union.js b/src/database/redis/sorted/union.js index 24c1440249..88bdd3e7bf 100644 --- a/src/database/redis/sorted/union.js +++ b/src/database/redis/sorted/union.js @@ -2,7 +2,6 @@ 'use strict'; module.exports = function (redisClient, module) { - module.sortedSetUnionCard = function (keys, callback) { var tempSetName = 'temp_' + Date.now(); @@ -30,7 +29,6 @@ module.exports = function (redisClient, module) { }; module.sortedSetUnion = function (params, callback) { - var tempSetName = 'temp_' + Date.now(); var rangeParams = [tempSetName, params.start, params.stop]; diff --git a/src/emailer.js b/src/emailer.js index 2a1298ac8c..09b58a20c3 100644 --- a/src/emailer.js +++ b/src/emailer.js @@ -163,6 +163,5 @@ var fallbackTransport; return parsed.hostname; } - }(module.exports)); diff --git a/src/events.js b/src/events.js index 79ee5a0b8d..9665ec265f 100644 --- a/src/events.js +++ b/src/events.js @@ -132,6 +132,4 @@ var utils = require('../public/src/utils'); events.deleteEvents(eids, next); }, {alwaysStartAt: 0}, callback); }; - - }(module.exports)); diff --git a/src/groups.js b/src/groups.js index 651e2adde7..07d8a2347b 100644 --- a/src/groups.js +++ b/src/groups.js @@ -11,7 +11,6 @@ var privileges = require('./privileges'); var utils = require('../public/src/utils'); (function (Groups) { - require('./groups/create')(Groups); require('./groups/delete')(Groups); require('./groups/update')(Groups); @@ -454,5 +453,4 @@ var utils = require('../public/src/utils'); }, ], callback); }; - }(module.exports)); diff --git a/src/groups/cover.js b/src/groups/cover.js index c2a351cde7..0f56621212 100644 --- a/src/groups/cover.js +++ b/src/groups/cover.js @@ -13,7 +13,6 @@ var db = require('../database'); var uploadsController = require('../controllers/uploads'); module.exports = function (Groups) { - Groups.updateCoverPosition = function (groupName, position, callback) { if (!groupName) { return callback(new Error('[[error:invalid-data]]')); @@ -22,7 +21,6 @@ module.exports = function (Groups) { }; Groups.updateCover = function (uid, data, callback) { - // Position only? That's fine if (!data.imageData && !data.file && data.position) { return Groups.updateCoverPosition(data.groupName, data.position, callback); @@ -118,5 +116,4 @@ module.exports = function (Groups) { Groups.removeCover = function (data, callback) { db.deleteObjectFields('group:' + data.groupName, ['cover:url', 'cover:thumb:url', 'cover:position'], callback); }; - }; diff --git a/src/groups/create.js b/src/groups/create.js index 3fba2851a4..eef4eda5f0 100644 --- a/src/groups/create.js +++ b/src/groups/create.js @@ -7,7 +7,6 @@ var utils = require('../../public/src/utils'); var db = require('../database'); module.exports = function (Groups) { - Groups.create = function (data, callback) { var system = isSystemGroup(data); var groupData; @@ -74,7 +73,6 @@ module.exports = function (Groups) { next(null, groupData); }, ], callback); - }; function isSystemGroup(data) { diff --git a/src/groups/delete.js b/src/groups/delete.js index 431dd510c2..6aed7173a2 100644 --- a/src/groups/delete.js +++ b/src/groups/delete.js @@ -6,7 +6,6 @@ var utils = require('../../public/src/utils'); var db = require('./../database'); module.exports = function (Groups) { - Groups.destroy = function (groupName, callback) { Groups.getGroupsData([groupName], function (err, groupsData) { if (err) { diff --git a/src/groups/membership.js b/src/groups/membership.js index d3908b135e..268edc6eca 100644 --- a/src/groups/membership.js +++ b/src/groups/membership.js @@ -19,7 +19,6 @@ var cache = LRU({ }); module.exports = function (Groups) { - Groups.cache = cache; Groups.join = function (groupName, uid, callback) { diff --git a/src/groups/ownership.js b/src/groups/ownership.js index 9bb007a7da..779644d2a9 100644 --- a/src/groups/ownership.js +++ b/src/groups/ownership.js @@ -5,7 +5,6 @@ var db = require('../database'); var plugins = require('../plugins'); module.exports = function (Groups) { - Groups.ownership = {}; Groups.ownership.isOwner = function (uid, groupName, callback) { diff --git a/src/groups/search.js b/src/groups/search.js index 865d0619ca..00bcee3967 100644 --- a/src/groups/search.js +++ b/src/groups/search.js @@ -7,7 +7,6 @@ var db = require('./../database'); module.exports = function (Groups) { - Groups.search = function (query, options, callback) { if (!query) { return callback(null, []); @@ -64,7 +63,6 @@ module.exports = function (Groups) { }; Groups.searchMembers = function (data, callback) { - function findUids(query, searchBy, callback) { query = query.toLowerCase(); @@ -112,7 +110,6 @@ module.exports = function (Groups) { Groups.ownership.isOwners(uids, data.groupName, next); }, function (isOwners, next) { - results.users.forEach(function (user, index) { if (user) { user.isOwner = isOwners[index]; diff --git a/src/groups/update.js b/src/groups/update.js index c5fe6f5749..99e8dcc65a 100644 --- a/src/groups/update.js +++ b/src/groups/update.js @@ -9,7 +9,6 @@ var db = require('../database'); module.exports = function (Groups) { - Groups.update = function (groupName, values, callback) { callback = callback || function () {}; diff --git a/src/install.js b/src/install.js index cb44f75589..126c96ae79 100644 --- a/src/install.js +++ b/src/install.js @@ -430,7 +430,6 @@ function createWelcomePost(next) { } function enableDefaultPlugins(next) { - process.stdout.write('Enabling default plugins\n'); var defaultEnabled = [ @@ -493,7 +492,6 @@ function setCopyrightWidget(next) { } install.setup = function (callback) { - async.series([ checkSetupFlag, checkCIFlag, diff --git a/src/logger.js b/src/logger.js index 186dd62992..3e0c1996d2 100644 --- a/src/logger.js +++ b/src/logger.js @@ -31,8 +31,6 @@ var opts = { /* -- Logger -- */ (function (Logger) { - - Logger.init = function (app) { opts.express.app = app; /* Open log file stream & initialize express logging if meta.config.logger* variables are set */ @@ -86,7 +84,6 @@ var opts = { } } else { stream = fs.createWriteStream(value, {flags: 'a'}); - } if (stream) { @@ -222,5 +219,4 @@ var opts = { socket.$emit = override($emit, 'on', 'Logger.io_one: $emit.apply: Failed'); } }; - }(exports)); diff --git a/src/messaging/create.js b/src/messaging/create.js index 80eb198444..2c6ac84ffb 100644 --- a/src/messaging/create.js +++ b/src/messaging/create.js @@ -8,7 +8,6 @@ var db = require('../database'); module.exports = function (Messaging) { - Messaging.sendMessage = function (uid, roomId, content, timestamp, callback) { async.waterfall([ function (next) { diff --git a/src/messaging/data.js b/src/messaging/data.js index ce7b0a7e38..e3cb67fbd8 100644 --- a/src/messaging/data.js +++ b/src/messaging/data.js @@ -8,7 +8,6 @@ var user = require('../user'); var utils = require('../../public/src/utils'); module.exports = function (Messaging) { - Messaging.getMessageField = function (mid, field, callback) { Messaging.getMessageFields(mid, [field], function (err, fields) { callback(err, fields ? fields[field] : null); @@ -28,7 +27,6 @@ module.exports = function (Messaging) { }; Messaging.getMessagesData = function (mids, uid, roomId, isNew, callback) { - var messages; async.waterfall([ @@ -132,5 +130,4 @@ module.exports = function (Messaging) { }, ], callback); }; - }; diff --git a/src/messaging/delete.js b/src/messaging/delete.js index 633ac62b22..6fdf5177ef 100644 --- a/src/messaging/delete.js +++ b/src/messaging/delete.js @@ -4,7 +4,6 @@ var async = require('async'); var db = require('../database'); module.exports = function (Messaging) { - Messaging.deleteMessage = function (mid, roomId, callback) { async.waterfall([ function (next) { diff --git a/src/messaging/edit.js b/src/messaging/edit.js index 96b6385681..f9c664d67f 100644 --- a/src/messaging/edit.js +++ b/src/messaging/edit.js @@ -9,7 +9,6 @@ var sockets = require('../socket.io'); module.exports = function (Messaging) { - Messaging.editMessage = function (uid, mid, roomId, content, callback) { var uids; async.waterfall([ @@ -78,5 +77,4 @@ module.exports = function (Messaging) { }, ], callback); }; - }; diff --git a/src/messaging/notifications.js b/src/messaging/notifications.js index 72a7392afb..8578eb6425 100644 --- a/src/messaging/notifications.js +++ b/src/messaging/notifications.js @@ -11,7 +11,6 @@ var meta = require('../meta'); var sockets = require('../socket.io'); module.exports = function (Messaging) { - Messaging.notifyQueue = {}; // Only used to notify a user of a new chat message, see Messaging.notifyUser Messaging.notifyUsersInRoom = function (fromUid, roomId, messageObj) { diff --git a/src/messaging/rooms.js b/src/messaging/rooms.js index 07df01e79d..0356daec64 100644 --- a/src/messaging/rooms.js +++ b/src/messaging/rooms.js @@ -8,7 +8,6 @@ var user = require('../user'); var plugins = require('../plugins'); module.exports = function (Messaging) { - Messaging.getRoomData = function (roomId, callback) { db.getObject('chat:room:' + roomId, function (err, data) { if (err || !data) { @@ -222,5 +221,4 @@ module.exports = function (Messaging) { }, ], callback); }; - }; diff --git a/src/messaging/unread.js b/src/messaging/unread.js index dfcaa2b2f5..660eece5ce 100644 --- a/src/messaging/unread.js +++ b/src/messaging/unread.js @@ -6,7 +6,6 @@ var db = require('../database'); var sockets = require('../socket.io'); module.exports = function (Messaging) { - Messaging.getUnreadCount = function (uid, callback) { if (!parseInt(uid, 10)) { return callback(null, 0); @@ -51,5 +50,4 @@ module.exports = function (Messaging) { }, ], callback); }; - }; diff --git a/src/meta/configs.js b/src/meta/configs.js index 084a4d1463..82d8640e4c 100644 --- a/src/meta/configs.js +++ b/src/meta/configs.js @@ -9,7 +9,6 @@ var pubsub = require('../pubsub'); var cacheBuster = require('./cacheBuster'); module.exports = function (Meta) { - Meta.config = {}; Meta.configs = {}; @@ -140,5 +139,4 @@ module.exports = function (Meta) { Meta.configs.remove = function (field, callback) { db.deleteObjectField('config', field, callback); }; - }; diff --git a/src/meta/css.js b/src/meta/css.js index b3f75ae368..5454f29e46 100644 --- a/src/meta/css.js +++ b/src/meta/css.js @@ -16,7 +16,6 @@ var file = require('../file'); var utils = require('../../public/src/utils'); module.exports = function (Meta) { - Meta.css = {}; var buildImports = { diff --git a/src/meta/errors.js b/src/meta/errors.js index 58e381e270..085cb84fea 100644 --- a/src/meta/errors.js +++ b/src/meta/errors.js @@ -6,7 +6,6 @@ var db = require('../database'); var analytics = require('../analytics'); module.exports = function (Meta) { - Meta.errors = {}; Meta.errors.log404 = function (route, callback) { diff --git a/src/meta/js.js b/src/meta/js.js index 2b8d0db5df..189c0757de 100644 --- a/src/meta/js.js +++ b/src/meta/js.js @@ -13,7 +13,6 @@ var plugins = require('../plugins'); var utils = require('../../public/src/utils'); module.exports = function (Meta) { - Meta.js = { target: {}, scripts: { diff --git a/src/meta/logs.js b/src/meta/logs.js index c0b3f47137..e85c0a5e11 100644 --- a/src/meta/logs.js +++ b/src/meta/logs.js @@ -25,5 +25,4 @@ module.exports = function (Meta) { Meta.logs.clear = function (callback) { fs.truncate(Meta.logs.path, 0, callback); }; - }; diff --git a/src/meta/settings.js b/src/meta/settings.js index d29cdb753a..a1d13b248d 100644 --- a/src/meta/settings.js +++ b/src/meta/settings.js @@ -6,7 +6,6 @@ var db = require('../database'); var plugins = require('../plugins'); module.exports = function (Meta) { - Meta.settings = {}; Meta.settings.get = function (hash, callback) { diff --git a/src/meta/sounds.js b/src/meta/sounds.js index 6be040e0e3..249d49d49b 100644 --- a/src/meta/sounds.js +++ b/src/meta/sounds.js @@ -13,7 +13,6 @@ var plugins = require('../plugins'); var db = require('../database'); module.exports = function (Meta) { - Meta.sounds = {}; Meta.sounds.init = function (callback) { diff --git a/src/meta/themes.js b/src/meta/themes.js index bd796f0968..da1f5aa16f 100644 --- a/src/meta/themes.js +++ b/src/meta/themes.js @@ -56,7 +56,6 @@ module.exports = function (Meta) { next(null, null); } }); - }, function (err, themes) { if (err) { return callback(err); diff --git a/src/middleware/header.js b/src/middleware/header.js index 0706374c1a..670bf83303 100644 --- a/src/middleware/header.js +++ b/src/middleware/header.js @@ -15,7 +15,6 @@ var controllers = { }; module.exports = function (middleware) { - middleware.buildHeader = function (req, res, next) { res.locals.renderHeader = true; res.locals.isAPI = false; @@ -184,6 +183,5 @@ module.exports = function (middleware) { return title; } - }; diff --git a/src/middleware/headers.js b/src/middleware/headers.js index c31a307bf3..ae63b19124 100644 --- a/src/middleware/headers.js +++ b/src/middleware/headers.js @@ -3,7 +3,6 @@ var meta = require('../meta'); module.exports = function (middleware) { - middleware.addHeaders = function (req, res, next) { var headers = { 'X-Powered-By': encodeURI(meta.config['powered-by'] || 'NodeBB'), @@ -33,6 +32,5 @@ module.exports = function (middleware) { next(); }; - }; diff --git a/src/middleware/maintenance.js b/src/middleware/maintenance.js index c5c232e5e7..4f4cb03982 100644 --- a/src/middleware/maintenance.js +++ b/src/middleware/maintenance.js @@ -5,7 +5,6 @@ var meta = require('../meta'); var user = require('../user'); module.exports = function (middleware) { - middleware.maintenanceMode = function (req, res, next) { if (parseInt(meta.config.maintenanceMode, 10) !== 1) { return next(); @@ -36,5 +35,4 @@ module.exports = function (middleware) { }); }); }; - }; diff --git a/src/middleware/render.js b/src/middleware/render.js index 3f565353a1..0716869649 100644 --- a/src/middleware/render.js +++ b/src/middleware/render.js @@ -9,7 +9,6 @@ var plugins = require('../plugins'); var translator = require('../../public/src/modules/translator'); module.exports = function (middleware) { - middleware.processRender = function (req, res, next) { // res.render post-processing, modified from here: https://gist.github.com/mrlannigan/5051687 var render = res.render; @@ -129,5 +128,4 @@ module.exports = function (middleware) { }); return parts.join(' '); } - }; diff --git a/src/middleware/user.js b/src/middleware/user.js index 4c02702802..881820da0c 100644 --- a/src/middleware/user.js +++ b/src/middleware/user.js @@ -12,7 +12,6 @@ var controllers = { }; module.exports = function (middleware) { - middleware.checkGlobalPrivacySettings = function (req, res, next) { if (!req.user && !!parseInt(meta.config.privateUserInfo, 10)) { return middleware.authenticate(req, res, next); @@ -157,5 +156,4 @@ module.exports = function (middleware) { } } }; - }; diff --git a/src/notifications.js b/src/notifications.js index 6f20999229..06ebd64b61 100644 --- a/src/notifications.js +++ b/src/notifications.js @@ -16,7 +16,6 @@ var plugins = require('./plugins'); var utils = require('../public/src/utils'); (function (Notifications) { - Notifications.init = function () { winston.verbose('[notifications.init] Registering jobs.'); new cron('*/30 * * * *', Notifications.prune, null, true); @@ -510,6 +509,5 @@ var utils = require('../public/src/utils'); callback(err, data.notifications); }); }; - }(exports)); diff --git a/src/plugins.js b/src/plugins.js index c0b4ce980a..75b3c49b23 100644 --- a/src/plugins.js +++ b/src/plugins.js @@ -387,5 +387,4 @@ var middleware; }, ], callback); }; - }(exports)); diff --git a/src/plugins/hooks.js b/src/plugins/hooks.js index dc2093bf95..2441b24228 100644 --- a/src/plugins/hooks.js +++ b/src/plugins/hooks.js @@ -126,7 +126,6 @@ module.exports = function (Plugins) { return callback(); } async.each(hookList, function (hookObj, next) { - if (typeof hookObj.method !== 'function') { if (global.env === 'development') { winston.warn('[plugins] Expected method for hook \'' + hook + '\' in plugin \'' + hookObj.id + '\' not found, skipping.'); diff --git a/src/plugins/install.js b/src/plugins/install.js index c6bd030ca2..d3d70d9034 100644 --- a/src/plugins/install.js +++ b/src/plugins/install.js @@ -13,7 +13,6 @@ var pubsub = require('../pubsub'); module.exports = function (Plugins) { - if (nconf.get('isPrimary') === 'true') { pubsub.on('plugins:toggleInstall', function (data) { if (data.hostname !== os.hostname()) { diff --git a/src/posts.js b/src/posts.js index fe0ac57719..28126c7e0e 100644 --- a/src/posts.js +++ b/src/posts.js @@ -11,7 +11,6 @@ var privileges = require('./privileges'); var plugins = require('./plugins'); (function (Posts) { - require('./posts/create')(Posts); require('./posts/delete')(Posts); require('./posts/edit')(Posts); @@ -266,6 +265,4 @@ var plugins = require('./plugins'); } } }; - - }(exports)); diff --git a/src/posts/bookmarks.js b/src/posts/bookmarks.js index 27ead2ddb3..6038a50b54 100644 --- a/src/posts/bookmarks.js +++ b/src/posts/bookmarks.js @@ -6,7 +6,6 @@ var db = require('../database'); var plugins = require('../plugins'); module.exports = function (Posts) { - Posts.bookmark = function (pid, uid, callback) { toggleBookmark('bookmark', pid, uid, callback); }; diff --git a/src/posts/category.js b/src/posts/category.js index 49876874ca..cb9a2566c4 100644 --- a/src/posts/category.js +++ b/src/posts/category.js @@ -8,7 +8,6 @@ var db = require('../database'); var topics = require('../topics'); module.exports = function (Posts) { - Posts.getCidByPid = function (pid, callback) { async.waterfall([ function (next) { diff --git a/src/posts/create.js b/src/posts/create.js index 6e21494137..43cd0817a3 100644 --- a/src/posts/create.js +++ b/src/posts/create.js @@ -12,7 +12,6 @@ var categories = require('../categories'); var utils = require('../../public/src/utils'); module.exports = function (Posts) { - Posts.create = function (data, callback) { // This is an internal method, consider using Topics.reply instead var uid = data.uid; @@ -36,7 +35,6 @@ module.exports = function (Posts) { db.incrObjectField('global', 'nextPid', next); }, function (pid, next) { - postData = { pid: pid, uid: uid, diff --git a/src/posts/delete.js b/src/posts/delete.js index b4dd13cc99..8076beb06b 100644 --- a/src/posts/delete.js +++ b/src/posts/delete.js @@ -10,7 +10,6 @@ var notifications = require('../notifications'); var plugins = require('../plugins'); module.exports = function (Posts) { - Posts.delete = function (pid, uid, callback) { var postData; async.waterfall([ @@ -294,6 +293,4 @@ module.exports = function (Posts) { ], callback); }); } - - }; diff --git a/src/posts/edit.js b/src/posts/edit.js index 2e0ba7a4a3..6d133f1395 100644 --- a/src/posts/edit.js +++ b/src/posts/edit.js @@ -14,7 +14,6 @@ var pubsub = require('../pubsub'); var utils = require('../../public/src/utils'); module.exports = function (Posts) { - pubsub.on('post:edit', function (pid) { cache.del(pid); }); @@ -153,6 +152,4 @@ module.exports = function (Posts) { ], callback); }); } - - }; diff --git a/src/posts/flags.js b/src/posts/flags.js index 744f64227f..f03cb9de59 100644 --- a/src/posts/flags.js +++ b/src/posts/flags.js @@ -9,7 +9,6 @@ var user = require('../user'); var analytics = require('../analytics'); module.exports = function (Posts) { - Posts.flag = function (post, uid, reason, callback) { if (!parseInt(uid, 10) || !reason) { return callback(); diff --git a/src/posts/parse.js b/src/posts/parse.js index f78a5debf1..02cd9fa307 100644 --- a/src/posts/parse.js +++ b/src/posts/parse.js @@ -13,7 +13,6 @@ var translator = require('../../public/src/modules/translator'); var urlRegex = /href="([^"]+)"/g; module.exports = function (Posts) { - Posts.parsePost = function (postData, callback) { postData.content = postData.content || ''; diff --git a/src/posts/summary.js b/src/posts/summary.js index 79d091012e..9e88303c1d 100644 --- a/src/posts/summary.js +++ b/src/posts/summary.js @@ -13,7 +13,6 @@ var utils = require('../../public/src/utils'); module.exports = function (Posts) { - Posts.getPostSummaryByPids = function (pids, uid, options, callback) { if (!Array.isArray(pids) || !pids.length) { return callback(null, []); diff --git a/src/posts/tools.js b/src/posts/tools.js index a93a19ef3c..c395eae457 100644 --- a/src/posts/tools.js +++ b/src/posts/tools.js @@ -70,6 +70,5 @@ module.exports = function (Posts) { }, ], callback); }; - }; diff --git a/src/posts/topics.js b/src/posts/topics.js index a33fd74bb3..eca6da493a 100644 --- a/src/posts/topics.js +++ b/src/posts/topics.js @@ -7,7 +7,6 @@ var topics = require('../topics'); var utils = require('../../public/src/utils'); module.exports = function (Posts) { - Posts.getPostsFromSet = function (set, start, stop, uid, reverse, callback) { async.waterfall([ function (next) { @@ -84,5 +83,4 @@ module.exports = function (Posts) { }, ], callback); }; - }; diff --git a/src/posts/user.js b/src/posts/user.js index b5687b34fa..74bc16b562 100644 --- a/src/posts/user.js +++ b/src/posts/user.js @@ -9,7 +9,6 @@ var meta = require('../meta'); var plugins = require('../plugins'); module.exports = function (Posts) { - Posts.getUserInfoForPosts = function (uids, uid, callback) { var groupsMap = {}; var userData; diff --git a/src/posts/votes.js b/src/posts/votes.js index d069f0f57a..449e929fd7 100644 --- a/src/posts/votes.js +++ b/src/posts/votes.js @@ -8,7 +8,6 @@ var user = require('../user'); var plugins = require('../plugins'); module.exports = function (Posts) { - var votesInProgress = {}; Posts.upvote = function (pid, uid, callback) { diff --git a/src/privileges/categories.js b/src/privileges/categories.js index 16e9d60b60..5e16fd1b17 100644 --- a/src/privileges/categories.js +++ b/src/privileges/categories.js @@ -11,7 +11,6 @@ var helpers = require('./helpers'); var plugins = require('../plugins'); module.exports = function (privileges) { - privileges.categories = {}; privileges.categories.list = function (cid, callback) { @@ -50,7 +49,6 @@ module.exports = function (privileges) { }), next); }, function (memberSets, next) { - memberSets = memberSets.map(function (set) { return set.map(function (uid) { return parseInt(uid, 10); @@ -87,7 +85,6 @@ module.exports = function (privileges) { }), next); }, function (memberSets, next) { - var uniqueGroups = _.unique(_.flatten(memberSets)); groups.getGroups('groups:createtime', 0, -1, function (err, groupNames) { @@ -402,5 +399,4 @@ module.exports = function (privileges) { }, }, callback); }; - }; diff --git a/src/privileges/posts.js b/src/privileges/posts.js index e362e27a27..a27dd51a93 100644 --- a/src/privileges/posts.js +++ b/src/privileges/posts.js @@ -11,7 +11,6 @@ var helpers = require('./helpers'); var plugins = require('../plugins'); module.exports = function (privileges) { - privileges.posts = {}; privileges.posts.get = function (pids, uid, callback) { @@ -91,7 +90,6 @@ module.exports = function (privileges) { topics.getTopicsFields(tids, ['deleted', 'cid'], next); }, function (topicData, next) { - topicData.forEach(function (topic, index) { if (topic) { tidToTopic[tids[index]] = topic; @@ -111,7 +109,6 @@ module.exports = function (privileges) { privileges.categories.getBase(privilege, cids, uid, next); }, function (results, next) { - var isModOf = {}; cids = cids.filter(function (cid, index) { isModOf[cid] = results.isModerators[index]; diff --git a/src/privileges/topics.js b/src/privileges/topics.js index abf491bdc2..16c652ceb3 100644 --- a/src/privileges/topics.js +++ b/src/privileges/topics.js @@ -12,7 +12,6 @@ var categories = require('../categories'); var plugins = require('../plugins'); module.exports = function (privileges) { - privileges.topics = {}; privileges.topics.get = function (tid, uid, callback) { @@ -93,7 +92,6 @@ module.exports = function (privileges) { privileges.categories.getBase(privilege, cids, uid, next); }, function (results, next) { - var isModOf = {}; cids = cids.filter(function (cid, index) { isModOf[cid] = results.isModerators[index]; diff --git a/src/privileges/users.js b/src/privileges/users.js index 7c4818b013..9d8d55b6f5 100644 --- a/src/privileges/users.js +++ b/src/privileges/users.js @@ -7,7 +7,6 @@ var groups = require('../groups'); var plugins = require('../plugins'); module.exports = function (privileges) { - privileges.users = {}; privileges.users.isAdministrator = function (uid, callback) { @@ -160,5 +159,4 @@ module.exports = function (privileges) { callback(null, canEdit); }); }; - }; diff --git a/src/rewards/admin.js b/src/rewards/admin.js index bd52824f94..60f335ef86 100644 --- a/src/rewards/admin.js +++ b/src/rewards/admin.js @@ -7,9 +7,7 @@ var db = require('../database'); var rewards = module.exports; rewards.save = function (data, callback) { - async.each(data, function save(data, next) { - if (!Object.keys(data.rewards).length) { return next(); } @@ -26,7 +24,6 @@ rewards.save = function (data, callback) { } }, function (rid, next) { - data.id = rid; async.series([ @@ -45,7 +42,6 @@ rewards.save = function (data, callback) { ], next); }, ], next); - }, function (err) { if (err) { return callback(err); diff --git a/src/routes/api.js b/src/routes/api.js index 92649d8fad..16ead5c588 100644 --- a/src/routes/api.js +++ b/src/routes/api.js @@ -5,7 +5,6 @@ var express = require('express'); var uploadsController = require('../controllers/uploads'); module.exports = function (app, middleware, controllers) { - var router = express.Router(); app.use('/api', router); @@ -36,6 +35,5 @@ module.exports = function (app, middleware, controllers) { router.post('/user/:userslug/uploadcover', middlewares.concat([middleware.authenticate, middleware.checkGlobalPrivacySettings, middleware.checkAccountPermissions]), controllers.accounts.edit.uploadCoverPicture); router.post('/groups/uploadpicture', middlewares.concat([middleware.authenticate]), controllers.groups.uploadCover); - }; diff --git a/src/routes/authentication.js b/src/routes/authentication.js index f2735ab8a9..6a3e5ef197 100644 --- a/src/routes/authentication.js +++ b/src/routes/authentication.js @@ -85,5 +85,4 @@ uid: uid, }); }); - }(exports)); diff --git a/src/routes/feeds.js b/src/routes/feeds.js index 3ee7593714..357c7dcc7d 100644 --- a/src/routes/feeds.js +++ b/src/routes/feeds.js @@ -242,7 +242,6 @@ function generateForTopics(options, set, req, res, next) { } function generateTopicsFeed(feedOptions, feedTopics, callback) { - feedOptions.ttl = 60; feedOptions.feed_url = nconf.get('url') + feedOptions.feed_url; feedOptions.site_url = nconf.get('url') + feedOptions.site_url; diff --git a/src/search.js b/src/search.js index 551685818c..82886a1d18 100644 --- a/src/search.js +++ b/src/search.js @@ -17,7 +17,6 @@ var search = {}; module.exports = search; search.search = function (data, callback) { - var start = process.hrtime(); var searchIn = data.searchIn || 'titlesposts'; @@ -253,7 +252,6 @@ function getMatchedPosts(pids, data, callback) { }, next); }, function (results, next) { - posts.forEach(function (post, index) { if (results.topics && results.topics[index]) { post.topic = results.topics[index]; diff --git a/src/socket.io/groups.js b/src/socket.io/groups.js index 33df72409a..3b27b7fdc2 100644 --- a/src/socket.io/groups.js +++ b/src/socket.io/groups.js @@ -187,7 +187,6 @@ SocketGroups.kick = isOwner(function (socket, data, callback) { } groups.kick(data.uid, data.groupName, isOwner, callback); }); - }); SocketGroups.create = function (socket, data, callback) { diff --git a/src/socket.io/posts/bookmarks.js b/src/socket.io/posts/bookmarks.js index 27d1c9570e..b77ce526a1 100644 --- a/src/socket.io/posts/bookmarks.js +++ b/src/socket.io/posts/bookmarks.js @@ -4,7 +4,6 @@ var helpers = require('./helpers'); module.exports = function (SocketPosts) { - SocketPosts.bookmark = function (socket, data, callback) { helpers.postCommand(socket, 'bookmark', 'bookmarked', '', data, callback); }; @@ -12,5 +11,4 @@ module.exports = function (SocketPosts) { SocketPosts.unbookmark = function (socket, data, callback) { helpers.postCommand(socket, 'unbookmark', 'bookmarked', '', data, callback); }; - }; diff --git a/src/socket.io/posts/edit.js b/src/socket.io/posts/edit.js index cbb613c16b..c7ca9dc1e8 100644 --- a/src/socket.io/posts/edit.js +++ b/src/socket.io/posts/edit.js @@ -11,7 +11,6 @@ var meta = require('../../meta'); var websockets = require('../index'); module.exports = function (SocketPosts) { - SocketPosts.edit = function (socket, data, callback) { if (!socket.uid) { return callback(new Error('[[error:not-logged-in]]')); diff --git a/src/socket.io/posts/flag.js b/src/socket.io/posts/flag.js index cf2e8c9fce..e5a89e778f 100644 --- a/src/socket.io/posts/flag.js +++ b/src/socket.io/posts/flag.js @@ -14,7 +14,6 @@ var meta = require('../../meta'); var utils = require('../../../public/src/utils'); module.exports = function (SocketPosts) { - SocketPosts.flag = function (socket, data, callback) { if (!socket.uid) { return callback(new Error('[[error:not-logged-in]]')); diff --git a/src/socket.io/posts/move.js b/src/socket.io/posts/move.js index 38a885a39d..6ef596c1c2 100644 --- a/src/socket.io/posts/move.js +++ b/src/socket.io/posts/move.js @@ -6,7 +6,6 @@ var topics = require('../../topics'); var socketHelpers = require('../helpers'); module.exports = function (SocketPosts) { - SocketPosts.movePost = function (socket, data, callback) { if (!socket.uid) { return callback(new Error('[[error:not-logged-in]]')); @@ -33,5 +32,4 @@ module.exports = function (SocketPosts) { }, ], callback); }; - }; diff --git a/src/socket.io/posts/tools.js b/src/socket.io/posts/tools.js index 3ef8e01020..d759a5c249 100644 --- a/src/socket.io/posts/tools.js +++ b/src/socket.io/posts/tools.js @@ -13,7 +13,6 @@ var plugins = require('../../plugins'); var social = require('../../social'); module.exports = function (SocketPosts) { - SocketPosts.loadPostTools = function (socket, data, callback) { if (!data || !data.pid || !data.cid) { return callback(new Error('[[error:invalid-data]]')); @@ -103,7 +102,6 @@ module.exports = function (SocketPosts) { posts.tools.restore(socket.uid, data.pid, next); }, function (postData, next) { - websockets.in('topic_' + data.tid).emit('event:post_restored', postData); events.log({ @@ -200,5 +198,4 @@ module.exports = function (SocketPosts) { }, }, callback); } - }; diff --git a/src/socket.io/posts/votes.js b/src/socket.io/posts/votes.js index 6e90bb2ac7..0c12fe262d 100644 --- a/src/socket.io/posts/votes.js +++ b/src/socket.io/posts/votes.js @@ -9,7 +9,6 @@ var privileges = require('../../privileges'); var helpers = require('./helpers'); module.exports = function (SocketPosts) { - SocketPosts.getVoters = function (socket, data, callback) { if (!data || !data.pid || !data.cid) { return callback(new Error('[[error:invalid-data]]')); diff --git a/src/socket.io/topics/infinitescroll.js b/src/socket.io/topics/infinitescroll.js index d1a44178a5..275fa18895 100644 --- a/src/socket.io/topics/infinitescroll.js +++ b/src/socket.io/topics/infinitescroll.js @@ -9,7 +9,6 @@ var utils = require('../../../public/src/utils'); var social = require('../../social'); module.exports = function (SocketTopics) { - SocketTopics.loadMore = function (socket, data, callback) { if (!data || !data.tid || !utils.isNumber(data.after) || parseInt(data.after, 10) < 0) { return callback(new Error('[[error:invalid-data]]')); @@ -122,5 +121,4 @@ module.exports = function (SocketTopics) { topics.getTopicsFromSet(data.set, socket.uid, start, stop, callback); }; - }; diff --git a/src/socket.io/topics/move.js b/src/socket.io/topics/move.js index 99b15a7461..9faffa910b 100644 --- a/src/socket.io/topics/move.js +++ b/src/socket.io/topics/move.js @@ -7,7 +7,6 @@ var privileges = require('../../privileges'); var socketHelpers = require('../helpers'); module.exports = function (SocketTopics) { - SocketTopics.move = function (socket, data, callback) { if (!data || !Array.isArray(data.tids) || !data.cid) { return callback(new Error('[[error:invalid-data]]')); diff --git a/src/socket.io/topics/tags.js b/src/socket.io/topics/tags.js index 0efb40b4ec..4ef579babb 100644 --- a/src/socket.io/topics/tags.js +++ b/src/socket.io/topics/tags.js @@ -6,7 +6,6 @@ var topics = require('../../topics'); var utils = require('../../../public/src/utils'); module.exports = function (SocketTopics) { - SocketTopics.isTagAllowed = function (socket, data, callback) { if (!data || !data.cid || !data.tag) { return callback(new Error('[[error:invalid-data]]')); diff --git a/src/socket.io/topics/tools.js b/src/socket.io/topics/tools.js index 7a283edbd6..8df029c926 100644 --- a/src/socket.io/topics/tools.js +++ b/src/socket.io/topics/tools.js @@ -10,7 +10,6 @@ var plugins = require('../../plugins'); var socketHelpers = require('../helpers'); module.exports = function (SocketTopics) { - SocketTopics.loadTopicTools = function (socket, data, callback) { if (!socket.uid) { return callback(new Error('[[error:no-privileges]]')); @@ -128,5 +127,4 @@ module.exports = function (SocketTopics) { topics.tools.orderPinnedTopics(socket.uid, data, callback); }; - }; diff --git a/src/socket.io/topics/unread.js b/src/socket.io/topics/unread.js index e4efb2513f..8fa5651e32 100644 --- a/src/socket.io/topics/unread.js +++ b/src/socket.io/topics/unread.js @@ -6,7 +6,6 @@ var user = require('../../user'); var topics = require('../../topics'); module.exports = function (SocketTopics) { - SocketTopics.markAsRead = function (socket, tids, callback) { if (!Array.isArray(tids) || !socket.uid) { return callback(new Error('[[error:invalid-data]]')); diff --git a/src/socket.io/user.js b/src/socket.io/user.js index 30130a5ba1..533d6e64fd 100644 --- a/src/socket.io/user.js +++ b/src/socket.io/user.js @@ -300,7 +300,6 @@ SocketUser.invite = function (socket, email, callback) { user.sendInvitationEmail(socket.uid, email, callback); } }); - }; SocketUser.getUserByUID = function (socket, uid, callback) { diff --git a/src/socket.io/user/ban.js b/src/socket.io/user/ban.js index cf869cc5de..54ce94fd24 100644 --- a/src/socket.io/user/ban.js +++ b/src/socket.io/user/ban.js @@ -8,7 +8,6 @@ var events = require('../../events'); var plugins = require('../../plugins'); module.exports = function (SocketUser) { - SocketUser.banUsers = function (socket, data, callback) { if (!data || !Array.isArray(data.uids)) { return callback(new Error('[[error:invalid-data]]')); diff --git a/src/socket.io/user/picture.js b/src/socket.io/user/picture.js index 4ddcd79f40..b0ddd8cdcd 100644 --- a/src/socket.io/user/picture.js +++ b/src/socket.io/user/picture.js @@ -9,7 +9,6 @@ var user = require('../../user'); var plugins = require('../../plugins'); module.exports = function (SocketUser) { - SocketUser.changePicture = function (socket, data, callback) { if (!socket.uid) { return callback(new Error('[[error:invalid-uid]]')); diff --git a/src/socket.io/user/profile.js b/src/socket.io/user/profile.js index 14c1593f28..e2d4de9ce1 100644 --- a/src/socket.io/user/profile.js +++ b/src/socket.io/user/profile.js @@ -8,7 +8,6 @@ var events = require('../../events'); var privileges = require('../../privileges'); module.exports = function (SocketUser) { - SocketUser.changeUsernameEmail = function (socket, data, callback) { if (!data || !data.uid || !socket.uid) { return callback(new Error('[[error:invalid-data]]')); @@ -186,6 +185,4 @@ module.exports = function (SocketUser) { }, ], callback); }; - - }; diff --git a/src/socket.io/user/search.js b/src/socket.io/user/search.js index acb857a6d8..7d51ead4cf 100644 --- a/src/socket.io/user/search.js +++ b/src/socket.io/user/search.js @@ -5,7 +5,6 @@ var meta = require('../../meta'); var pagination = require('../../pagination'); module.exports = function (SocketUser) { - SocketUser.search = function (socket, data, callback) { if (!data) { return callback(new Error('[[error:invalid-data]]')); @@ -31,5 +30,4 @@ module.exports = function (SocketUser) { callback(null, result); }); }; - }; diff --git a/src/socket.io/user/status.js b/src/socket.io/user/status.js index 37e7ac7925..562a57d82c 100644 --- a/src/socket.io/user/status.js +++ b/src/socket.io/user/status.js @@ -6,7 +6,6 @@ var user = require('../../user'); var websockets = require('../index'); module.exports = function (SocketUser) { - SocketUser.checkStatus = function (socket, uid, callback) { if (!socket.uid) { return callback(new Error('[[error:invalid-uid]]')); diff --git a/src/topics.js b/src/topics.js index 23f233d0d2..0972988bfa 100644 --- a/src/topics.js +++ b/src/topics.js @@ -13,7 +13,6 @@ var privileges = require('./privileges'); var social = require('./social'); (function (Topics) { - require('./topics/data')(Topics); require('./topics/create')(Topics); require('./topics/delete')(Topics); @@ -321,5 +320,4 @@ var social = require('./social'); callback(new Error('no-plugins-available'), []); } }; - }(exports)); diff --git a/src/topics/bookmarks.js b/src/topics/bookmarks.js index f1ed4c3ae8..487d3fd29e 100644 --- a/src/topics/bookmarks.js +++ b/src/topics/bookmarks.js @@ -7,7 +7,6 @@ var db = require('../database'); var posts = require('../posts'); module.exports = function (Topics) { - Topics.getUserBookmark = function (tid, uid, callback) { db.sortedSetScore('tid:' + tid + ':bookmarks', uid, callback); }; @@ -79,5 +78,4 @@ module.exports = function (Topics) { callback(err); }); }; - }; diff --git a/src/topics/create.js b/src/topics/create.js index 8419f56c91..2b4f022f57 100644 --- a/src/topics/create.js +++ b/src/topics/create.js @@ -15,7 +15,6 @@ var privileges = require('../privileges'); var categories = require('../categories'); module.exports = function (Topics) { - Topics.create = function (data, callback) { // This is an internal method, consider using Topics.post instead var timestamp = data.timestamp || Date.now(); @@ -356,5 +355,4 @@ module.exports = function (Topics) { } callback(); } - }; diff --git a/src/topics/data.js b/src/topics/data.js index 4758e7a085..cf1df2787c 100644 --- a/src/topics/data.js +++ b/src/topics/data.js @@ -7,7 +7,6 @@ var categories = require('../categories'); var utils = require('../../public/src/utils'); module.exports = function (Topics) { - Topics.getTopicField = function (tid, field, callback) { db.getObjectField('topic:' + tid, field, callback); }; @@ -87,5 +86,4 @@ module.exports = function (Topics) { Topics.deleteTopicField = function (tid, field, callback) { db.deleteObjectField('topic:' + tid, field, callback); }; - }; diff --git a/src/topics/delete.js b/src/topics/delete.js index 4dc1e866d2..dbf8474ecb 100644 --- a/src/topics/delete.js +++ b/src/topics/delete.js @@ -10,7 +10,6 @@ var batch = require('../batch'); module.exports = function (Topics) { - Topics.delete = function (tid, uid, callback) { Topics.getTopicFields(tid, ['cid'], function (err, topicData) { if (err) { diff --git a/src/topics/follow.js b/src/topics/follow.js index 78ef0e87cc..48742797b8 100644 --- a/src/topics/follow.js +++ b/src/topics/follow.js @@ -16,7 +16,6 @@ var emailer = require('../emailer'); var plugins = require('../plugins'); module.exports = function (Topics) { - Topics.toggleFollow = function (tid, uid, callback) { callback = callback || function () {}; var isFollowing; diff --git a/src/topics/fork.js b/src/topics/fork.js index ef62d65b1d..6a9965b51c 100644 --- a/src/topics/fork.js +++ b/src/topics/fork.js @@ -12,7 +12,6 @@ var meta = require('../meta'); module.exports = function (Topics) { - Topics.createTopicFromPosts = function (uid, title, pids, fromTid, callback) { if (title) { title = title.trim(); @@ -174,6 +173,4 @@ module.exports = function (Topics) { }, ], callback); } - - }; diff --git a/src/topics/popular.js b/src/topics/popular.js index cca04e40ba..e6d78ad4b4 100644 --- a/src/topics/popular.js +++ b/src/topics/popular.js @@ -5,7 +5,6 @@ var async = require('async'); var privileges = require('../privileges'); module.exports = function (Topics) { - Topics.getPopular = function (term, uid, count, callback) { count = parseInt(count, 10) || 20; diff --git a/src/topics/posts.js b/src/topics/posts.js index 5bcebf38ca..e013eaf7b0 100644 --- a/src/topics/posts.js +++ b/src/topics/posts.js @@ -12,7 +12,6 @@ var meta = require('../meta'); var plugins = require('../plugins'); module.exports = function (Topics) { - Topics.onNewPostMade = function (postData, callback) { async.series([ function (next) { @@ -383,5 +382,4 @@ module.exports = function (Topics) { Topics.getPostCount = function (tid, callback) { db.getObjectField('topic:' + tid, 'postcount', callback); }; - }; diff --git a/src/topics/suggested.js b/src/topics/suggested.js index e0049a15a7..d69471744f 100644 --- a/src/topics/suggested.js +++ b/src/topics/suggested.js @@ -8,7 +8,6 @@ var categories = require('../categories'); var search = require('../search'); module.exports = function (Topics) { - Topics.getSuggestedTopics = function (tid, uid, start, stop, callback) { async.parallel({ tagTids: function (next) { @@ -76,5 +75,4 @@ module.exports = function (Topics) { }, ], callback); } - }; diff --git a/src/topics/tags.js b/src/topics/tags.js index f7d1b3034c..a82a7e4890 100644 --- a/src/topics/tags.js +++ b/src/topics/tags.js @@ -11,7 +11,6 @@ var utils = require('../../public/src/utils'); module.exports = function (Topics) { - Topics.createTags = function (tags, tid, timestamp, callback) { callback = callback || function () {}; diff --git a/src/topics/teaser.js b/src/topics/teaser.js index 617f9660f1..c18b97c554 100644 --- a/src/topics/teaser.js +++ b/src/topics/teaser.js @@ -12,7 +12,6 @@ var plugins = require('../plugins'); var utils = require('../../public/src/utils'); module.exports = function (Topics) { - Topics.getTeasers = function (topics, callback) { if (!Array.isArray(topics) || !topics.length) { return callback(null, []); diff --git a/src/topics/thumb.js b/src/topics/thumb.js index 171dabb11b..8735dcc7c4 100644 --- a/src/topics/thumb.js +++ b/src/topics/thumb.js @@ -16,7 +16,6 @@ var file = require('../file'); var plugins = require('../plugins'); module.exports = function (Topics) { - Topics.resizeAndUploadThumb = function (data, callback) { if (!data.thumb || !validator.isURL(data.thumb)) { return callback(); @@ -30,7 +29,6 @@ module.exports = function (Topics) { request.head(data.thumb, next); }, function (res, body, next) { - var type = res.headers['content-type']; if (!type.match(/image./)) { return next(new Error('[[error:invalid-file]]')); @@ -87,5 +85,4 @@ module.exports = function (Topics) { }); } } - }; diff --git a/src/topics/tools.js b/src/topics/tools.js index aa877e7de7..396c4b9b3e 100644 --- a/src/topics/tools.js +++ b/src/topics/tools.js @@ -10,7 +10,6 @@ var privileges = require('../privileges'); module.exports = function (Topics) { - var topicTools = {}; Topics.tools = topicTools; @@ -324,6 +323,4 @@ module.exports = function (Topics) { }); }); }; - - }; diff --git a/src/topics/unread.js b/src/topics/unread.js index 17c5b701e0..80dfb0efeb 100644 --- a/src/topics/unread.js +++ b/src/topics/unread.js @@ -12,7 +12,6 @@ var meta = require('../meta'); var utils = require('../../public/src/utils'); module.exports = function (Topics) { - Topics.getTotalUnread = function (uid, filter, callback) { if (!callback) { callback = filter; @@ -25,7 +24,6 @@ module.exports = function (Topics) { Topics.getUnreadTopics = function (cid, uid, start, stop, filter, callback) { - var unreadTopics = { showSelect: true, nextStart: 0, @@ -141,7 +139,6 @@ module.exports = function (Topics) { } }, function (tids, next) { - tids = tids.slice(0, 200); filterTopics(uid, tids, cid, ignoredCids, filter, next); @@ -375,5 +372,4 @@ module.exports = function (Topics) { callback(null, tids); }); }; - }; diff --git a/src/topics/user.js b/src/topics/user.js index b2916a7464..2ecefb5c53 100644 --- a/src/topics/user.js +++ b/src/topics/user.js @@ -7,7 +7,6 @@ var db = require('../database'); var posts = require('../posts'); module.exports = function (Topics) { - Topics.isOwner = function (tid, uid, callback) { uid = parseInt(uid, 10); if (!uid) { diff --git a/src/user.js b/src/user.js index 13dd352b1a..17d0a59585 100644 --- a/src/user.js +++ b/src/user.js @@ -11,7 +11,6 @@ var privileges = require('./privileges'); var meta = require('./meta'); (function (User) { - User.email = require('./user/email'); User.notifications = require('./user/notifications'); User.reset = require('./user/reset'); @@ -162,7 +161,6 @@ var meta = require('./meta'); callback(null, isOnline); }); } - }; User.exists = function (uid, callback) { @@ -382,6 +380,4 @@ var meta = require('./meta'); callback(); }; - - }(exports)); diff --git a/src/user/admin.js b/src/user/admin.js index 591e1f6d2e..39a12a9c0a 100644 --- a/src/user/admin.js +++ b/src/user/admin.js @@ -8,7 +8,6 @@ var plugins = require('../plugins'); var winston = require('winston'); module.exports = function (User) { - User.logIP = function (uid, ip) { var now = Date.now(); db.sortedSetAdd('uid:' + uid + ':ip', now, ip || 'Unknown'); diff --git a/src/user/approval.js b/src/user/approval.js index 5194c26dd1..33a3d0ab8a 100644 --- a/src/user/approval.js +++ b/src/user/approval.js @@ -14,7 +14,6 @@ var utils = require('../../public/src/utils'); var plugins = require('../plugins'); module.exports = function (User) { - User.addToApprovalQueue = function (userData, callback) { userData.userslug = utils.slugify(userData.username); async.waterfall([ @@ -219,6 +218,4 @@ module.exports = function (User) { }, ], callback); }; - - }; diff --git a/src/user/auth.js b/src/user/auth.js index 968078e651..a59e68b43f 100644 --- a/src/user/auth.js +++ b/src/user/auth.js @@ -147,7 +147,6 @@ module.exports = function (User) { User.auth.deleteAllSessions = function (callback) { var _ = require('underscore'); batch.processSortedSet('users:joindate', function (uids, next) { - var sessionKeys = uids.map(function (uid) { return 'uid:' + uid + ':sessions'; }); diff --git a/src/user/categories.js b/src/user/categories.js index 4188fecf72..8a4b26199f 100644 --- a/src/user/categories.js +++ b/src/user/categories.js @@ -6,7 +6,6 @@ var db = require('../database'); var categories = require('../categories'); module.exports = function (User) { - User.getIgnoredCategories = function (uid, callback) { db.getSortedSetRange('uid:' + uid + ':ignored:cids', 0, -1, callback); }; diff --git a/src/user/create.js b/src/user/create.js index 4bd6ddcaa4..20af1dd20a 100644 --- a/src/user/create.js +++ b/src/user/create.js @@ -9,7 +9,6 @@ var groups = require('../groups'); var meta = require('../meta'); module.exports = function (User) { - User.create = function (data, callback) { data.username = data.username.trim(); data.userslug = utils.slugify(data.username); @@ -225,5 +224,4 @@ module.exports = function (User) { }); }); } - }; diff --git a/src/user/data.js b/src/user/data.js index a303080e9c..5812180df5 100644 --- a/src/user/data.js +++ b/src/user/data.js @@ -9,7 +9,6 @@ var plugins = require('../plugins'); var utils = require('../../public/src/utils'); module.exports = function (User) { - var iconBackgrounds = ['#f44336', '#e91e63', '#9c27b0', '#673ab7', '#3f51b5', '#2196f3', '#009688', '#1b5e20', '#33691e', '#827717', '#e65100', '#ff5722', '#795548', '#607d8b']; @@ -199,5 +198,4 @@ module.exports = function (User) { callback(null, value); }); }; - }; diff --git a/src/user/delete.js b/src/user/delete.js index ba3b56695d..28b8a4989e 100644 --- a/src/user/delete.js +++ b/src/user/delete.js @@ -10,7 +10,6 @@ var plugins = require('../plugins'); var batch = require('../batch'); module.exports = function (User) { - User.delete = function (callerUid, uid, callback) { if (!parseInt(uid, 10)) { return callback(new Error('[[error:invalid-uid]]')); diff --git a/src/user/digest.js b/src/user/digest.js index 76463caab4..73cd773713 100644 --- a/src/user/digest.js +++ b/src/user/digest.js @@ -129,5 +129,4 @@ var utils = require('../../public/src/utils'); callback(err); }); }; - }(module.exports)); diff --git a/src/user/email.js b/src/user/email.js index 2e51da951a..5e124551bd 100644 --- a/src/user/email.js +++ b/src/user/email.js @@ -13,7 +13,6 @@ var meta = require('../meta'); var emailer = require('../emailer'); (function (UserEmail) { - UserEmail.exists = function (email, callback) { user.getUidByEmail(email.toLowerCase(), function (err, exists) { callback(err, !!exists); @@ -112,5 +111,4 @@ var emailer = require('../emailer'); } }); }; - }(exports)); diff --git a/src/user/follow.js b/src/user/follow.js index fb8033ec80..fe3dc0931d 100644 --- a/src/user/follow.js +++ b/src/user/follow.js @@ -6,7 +6,6 @@ var plugins = require('../plugins'); var db = require('../database'); module.exports = function (User) { - User.follow = function (uid, followuid, callback) { toggleFollow('follow', uid, followuid, callback); }; @@ -97,5 +96,4 @@ module.exports = function (User) { } db.isSortedSetMember('following:' + uid, theirid, callback); }; - }; diff --git a/src/user/invite.js b/src/user/invite.js index 30c3091ade..25cadc41bf 100644 --- a/src/user/invite.js +++ b/src/user/invite.js @@ -12,7 +12,6 @@ var utils = require('../../public/src/utils'); module.exports = function (User) { - User.getInvites = function (uid, callback) { db.getSetMembers('invitation:uid:' + uid, callback); }; @@ -148,5 +147,4 @@ module.exports = function (User) { callback = callback || function () {}; db.delete('invitation:email:' + email, callback); }; - }; diff --git a/src/user/jobs.js b/src/user/jobs.js index 591dba16fd..1eeeb5650e 100644 --- a/src/user/jobs.js +++ b/src/user/jobs.js @@ -62,8 +62,6 @@ module.exports = function (User) { if (typeof callback === 'function') { callback(); } - - }; }; diff --git a/src/user/notifications.js b/src/user/notifications.js index cc8d8b6ec1..93f9d2e124 100644 --- a/src/user/notifications.js +++ b/src/user/notifications.js @@ -11,7 +11,6 @@ var notifications = require('../notifications'); var privileges = require('../privileges'); (function (UserNotifications) { - UserNotifications.get = function (uid, callback) { if (!parseInt(uid, 10)) { return callback(null, {read: [], unread: []}); @@ -287,5 +286,4 @@ var privileges = require('../privileges'); websockets.in('uid_' + uid).emit('event:notifications.updateCount', count); }); }; - }(exports)); diff --git a/src/user/password.js b/src/user/password.js index aaad4c2563..6cf5d8e5d5 100644 --- a/src/user/password.js +++ b/src/user/password.js @@ -7,7 +7,6 @@ var db = require('../database'); var Password = require('../password'); module.exports = function (User) { - User.hashPassword = function (password, callback) { if (!password) { return callback(null, password); @@ -43,5 +42,4 @@ module.exports = function (User) { callback(err, !!hashedPassword); }); }; - }; diff --git a/src/user/picture.js b/src/user/picture.js index acea101294..08b548e444 100644 --- a/src/user/picture.js +++ b/src/user/picture.js @@ -17,9 +17,7 @@ var meta = require('../meta'); var db = require('../database'); module.exports = function (User) { - User.uploadPicture = function (uid, picture, callback) { - var uploadSize = parseInt(meta.config.maximumProfileImageSize, 10) || 256; var extension = path.extname(picture.name); var updateUid = uid; diff --git a/src/user/posts.js b/src/user/posts.js index 1747c803a0..3f2d608ee1 100644 --- a/src/user/posts.js +++ b/src/user/posts.js @@ -6,7 +6,6 @@ var meta = require('../meta'); var privileges = require('../privileges'); module.exports = function (User) { - User.isReadyToPost = function (uid, cid, callback) { if (parseInt(uid, 10) === 0) { return callback(); @@ -101,5 +100,4 @@ module.exports = function (User) { callback(err, Array.isArray(pids) ? pids : []); }); }; - }; diff --git a/src/user/profile.js b/src/user/profile.js index 1987bf1ae4..ea813db035 100644 --- a/src/user/profile.js +++ b/src/user/profile.js @@ -11,7 +11,6 @@ var groups = require('../groups'); var plugins = require('../plugins'); module.exports = function (User) { - User.updateProfile = function (uid, data, callback) { var fields = ['username', 'email', 'fullname', 'website', 'location', 'groupTitle', 'birthday', 'signature', 'aboutme']; diff --git a/src/user/reset.js b/src/user/reset.js index 90aa9f072e..ba0e18b513 100644 --- a/src/user/reset.js +++ b/src/user/reset.js @@ -165,5 +165,4 @@ var emailer = require('../emailer'); }, ], callback); }; - }(exports)); diff --git a/src/user/search.js b/src/user/search.js index a567b73ed6..751bb04cf2 100644 --- a/src/user/search.js +++ b/src/user/search.js @@ -7,7 +7,6 @@ var plugins = require('../plugins'); var db = require('../database'); module.exports = function (User) { - User.search = function (data, callback) { var query = data.query || ''; var searchBy = data.searchBy || 'username'; diff --git a/src/user/settings.js b/src/user/settings.js index 5868e1f45c..46eb7ada3f 100644 --- a/src/user/settings.js +++ b/src/user/settings.js @@ -7,7 +7,6 @@ var db = require('../database'); var plugins = require('../plugins'); module.exports = function (User) { - User.getSettings = function (uid, callback) { if (!parseInt(uid, 10)) { return onSettingsLoaded(0, {}, callback); diff --git a/src/user/topics.js b/src/user/topics.js index fa3cea209b..bd69e66e6f 100644 --- a/src/user/topics.js +++ b/src/user/topics.js @@ -4,7 +4,6 @@ var async = require('async'); var db = require('../database'); module.exports = function (User) { - User.getIgnoredTids = function (uid, start, stop, callback) { db.getSortedSetRevRange('uid:' + uid + ':ignored_tids', start, stop, callback); }; @@ -15,5 +14,4 @@ module.exports = function (User) { async.apply(User.incrementUserFieldBy, uid, 'topiccount', 1), ], callback); }; - }; diff --git a/test/authentication.js b/test/authentication.js index e475f1c395..3c7f58f7ac 100644 --- a/test/authentication.js +++ b/test/authentication.js @@ -145,13 +145,11 @@ describe('authentication', function () { }); }); }); - }); after(function (done) { db.emptydb(done); }); - }); diff --git a/test/build.js b/test/build.js index 404176d3df..8422887762 100644 --- a/test/build.js +++ b/test/build.js @@ -5,7 +5,6 @@ var assert = require('assert'); var db = require('./mocks/databasemock'); describe('Build', function () { - it('should build all assets', function (done) { var build = require('../src/meta/build'); build.buildAll(function (err) { diff --git a/test/categories.js b/test/categories.js index a2b699f7c1..b183a3accd 100644 --- a/test/categories.js +++ b/test/categories.js @@ -37,7 +37,6 @@ describe('Categories', function () { it('should create a new category', function (done) { - Categories.create({ name: 'Test Category', description: 'Test category created by testing script', @@ -385,7 +384,6 @@ describe('Categories', function () { done(); }); }); - }); }); diff --git a/test/controllers-admin.js b/test/controllers-admin.js index 4102446f96..e6edb82a18 100644 --- a/test/controllers-admin.js +++ b/test/controllers-admin.js @@ -13,7 +13,6 @@ var groups = require('../src/groups'); var helpers = require('./helpers'); describe('Admin Controllers', function () { - var tid; var cid; var pid; diff --git a/test/controllers.js b/test/controllers.js index 057e20b2a0..73c8a2723b 100644 --- a/test/controllers.js +++ b/test/controllers.js @@ -13,7 +13,6 @@ var meta = require('../src/meta'); describe('Controllers', function () { - var tid; var cid; var pid; @@ -674,7 +673,6 @@ describe('Controllers', function () { describe('maintenance mode', function () { - before(function (done) { meta.config.maintenanceMode = 1; done(); diff --git a/test/database.js b/test/database.js index d2f51c907e..f55bf78edb 100644 --- a/test/database.js +++ b/test/database.js @@ -25,5 +25,4 @@ describe('Test database', function () { require('./database/sets'); require('./database/hash'); require('./database/sorted'); - }); diff --git a/test/database/keys.js b/test/database/keys.js index f4b577f038..157cc2ca97 100644 --- a/test/database/keys.js +++ b/test/database/keys.js @@ -6,7 +6,6 @@ var assert = require('assert'); var db = require('../mocks/databasemock'); describe('Key methods', function () { - beforeEach(function (done) { db.set('testKey', 'testValue', done); }); diff --git a/test/database/list.js b/test/database/list.js index d328191e7a..8475ad2f52 100644 --- a/test/database/list.js +++ b/test/database/list.js @@ -6,7 +6,6 @@ var assert = require('assert'); var db = require('../mocks/databasemock'); describe('List methods', function () { - describe('listAppend()', function () { it('should append to a list', function (done) { db.listAppend('testList1', 5, function (err) { diff --git a/test/database/sets.js b/test/database/sets.js index 594af8d061..a3e79df81c 100644 --- a/test/database/sets.js +++ b/test/database/sets.js @@ -6,7 +6,6 @@ var assert = require('assert'); var db = require('../mocks/databasemock'); describe('Set methods', function () { - describe('setAdd()', function () { it('should add to a set', function (done) { db.setAdd('testSet1', 5, function (err) { diff --git a/test/database/sorted.js b/test/database/sorted.js index 25830671d6..0bd0ab31dc 100644 --- a/test/database/sorted.js +++ b/test/database/sorted.js @@ -6,7 +6,6 @@ var assert = require('assert'); var db = require('../mocks/databasemock'); describe('Sorted Set methods', function () { - before(function (done) { async.parallel([ function (next) { @@ -659,7 +658,6 @@ describe('Sorted Set methods', function () { done(); }); }); - }); describe('sortedSetIntersectCard', function () { diff --git a/test/groups.js b/test/groups.js index 1428c4e6ef..426b5c42ca 100644 --- a/test/groups.js +++ b/test/groups.js @@ -157,7 +157,6 @@ describe('Groups', function () { done(); }); }); - }); describe('.isMember()', function () { @@ -579,7 +578,6 @@ describe('Groups', function () { }); }); }); - }); describe('admin socket methods', function () { diff --git a/test/helpers/index.js b/test/helpers/index.js index cc4460ffbe..0edb10a4a0 100644 --- a/test/helpers/index.js +++ b/test/helpers/index.js @@ -144,7 +144,6 @@ helpers.registerUser = function (data, callback) { // http://stackoverflow.com/a/14387791/583363 helpers.copyFile = function (source, target, callback) { - var cbCalled = false; var rd = fs.createReadStream(source); diff --git a/test/messaging.js b/test/messaging.js index a31c89b624..76c05b3a1f 100644 --- a/test/messaging.js +++ b/test/messaging.js @@ -227,7 +227,6 @@ describe('Messaging Library', function () { done(); }); }); - }); describe('logged in chat controller', function () { diff --git a/test/meta.js b/test/meta.js index 1854cf3b53..5d9284030c 100644 --- a/test/meta.js +++ b/test/meta.js @@ -91,7 +91,6 @@ describe('meta', function () { }); }); }); - }); @@ -179,7 +178,6 @@ describe('meta', function () { }); }); }); - }); diff --git a/test/mocks/databasemock.js b/test/mocks/databasemock.js index 20eee3b5b9..4c75cb59ff 100644 --- a/test/mocks/databasemock.js +++ b/test/mocks/databasemock.js @@ -175,5 +175,4 @@ } module.exports = db; - }(module)); diff --git a/test/pagination.js b/test/pagination.js index df362d9df4..8ca2cdf586 100644 --- a/test/pagination.js +++ b/test/pagination.js @@ -5,7 +5,6 @@ var assert = require('assert'); var pagination = require('../src/pagination'); describe('Pagination', function () { - it('should create empty pagination for 1 page', function (done) { var data = pagination.create(1, 1); assert.equal(data.pages.length, 0); diff --git a/test/plugins.js b/test/plugins.js index 1df1c49f09..a9936ba819 100644 --- a/test/plugins.js +++ b/test/plugins.js @@ -10,7 +10,6 @@ var db = require('./mocks/databasemock'); var plugins = require('../src/plugins'); describe('Plugins', function () { - it('should load plugin data', function (done) { var pluginId = 'nodebb-plugin-markdown'; plugins.loadPlugin(path.join(nconf.get('base_dir'), 'node_modules/' + pluginId), function (err) { @@ -46,7 +45,6 @@ describe('Plugins', function () { assert.equal(data.foo, 7); done(); }); - }); it('should register and fire an action hook', function (done) { @@ -179,7 +177,5 @@ describe('Plugins', function () { }); }); }); - - }); diff --git a/test/posts.js b/test/posts.js index 5b0687ca5e..646182fdeb 100644 --- a/test/posts.js +++ b/test/posts.js @@ -278,7 +278,6 @@ describe('Post\'s', function () { }); it('should purge posts and delete topic', function (done) { - createTopicWithReply(function (topicPostData, replyData) { socketPosts.purgePosts({uid: voterUid}, {pids: [replyData.pid, topicPostData.postData.pid], tid: topicPostData.topicData.tid}, function (err) { assert.ifError(err); diff --git a/test/rewards.js b/test/rewards.js index 7d61398d29..8eabf6d4e2 100644 --- a/test/rewards.js +++ b/test/rewards.js @@ -72,7 +72,6 @@ describe('rewards', function () { done(); }); }); - }); diff --git a/test/search.js b/test/search.js index 12287c93e4..e6b5c6d9cb 100644 --- a/test/search.js +++ b/test/search.js @@ -95,7 +95,6 @@ describe('Search', function () { }); it('should search term in titles and posts', function (done) { - var meta = require('../src/meta'); meta.config.allowGuestSearching = 1; var qs = '/api/search?term=cucumber&in=titlesposts&categories[]=' + cid1 + '&by=phoebe&replies=1&repliesFilter=atleast&sortBy=timestamp&sortDirection=desc&showAs=posts'; diff --git a/test/socket.io.js b/test/socket.io.js index 0671354bcc..f5de533401 100644 --- a/test/socket.io.js +++ b/test/socket.io.js @@ -19,7 +19,6 @@ var categories = require('../src/categories'); describe('socket.io', function () { - var io; var cid; var tid; @@ -435,6 +434,5 @@ describe('socket.io', function () { after(function (done) { db.emptydb(done); }); - }); diff --git a/test/topics.js b/test/topics.js index 91577cfa3d..ad48e4cc7f 100644 --- a/test/topics.js +++ b/test/topics.js @@ -48,7 +48,6 @@ describe('Topic\'s', function () { }); describe('.post', function () { - it('should create a new topic with proper parameters', function (done) { topics.post({uid: topic.userId, title: topic.title, content: topic.content, cid: topic.categoryId}, function (err, result) { assert.equal(err, null, 'was created with error'); @@ -205,7 +204,6 @@ describe('Topic\'s', function () { }); describe('Title escaping', function () { - it('should properly escape topic title', function (done) { var title = '" new topic test'; var titleEscaped = validator.escape(title); @@ -448,7 +446,6 @@ describe('Topic\'s', function () { }); }); }); - }); @@ -749,7 +746,6 @@ describe('Topic\'s', function () { done(); }); }); - }); describe('suggested topics', function () { diff --git a/test/uploads.js b/test/uploads.js index 066a20434f..328e29ae94 100644 --- a/test/uploads.js +++ b/test/uploads.js @@ -16,7 +16,6 @@ var helpers = require('./helpers'); describe('Upload Controllers', function () { - var tid; var cid; var pid; @@ -100,7 +99,6 @@ describe('Upload Controllers', function () { done(); }); }); - }); diff --git a/test/user.js b/test/user.js index 9db04d8a74..5573cbe400 100644 --- a/test/user.js +++ b/test/user.js @@ -22,7 +22,6 @@ describe('User', function () { var testCid; before(function (done) { - groups.resetCache(); Categories.create({ @@ -292,7 +291,6 @@ describe('User', function () { }); describe('hash methods', function () { - it('should return uid from email', function (done) { User.getUidByEmail('john@example.com', function (err, uid) { assert.ifError(err); @@ -686,7 +684,6 @@ describe('User', function () { }); }); }); - }); }); @@ -903,7 +900,6 @@ describe('User', function () { }); }); }); - }); }); @@ -978,7 +974,6 @@ describe('User', function () { }); }); }); - }); diff --git a/test/utils.js b/test/utils.js index 96ccdce201..547a673aee 100644 --- a/test/utils.js +++ b/test/utils.js @@ -171,5 +171,4 @@ describe('Utility Methods', function () { } done(); }); - }); From 1493afee2a5d658611ae0694bb0da13cf5119c69 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 02:38:03 -0700 Subject: [PATCH 25/60] ESlint indent --- .eslintrc | 11 +- loader.js | 12 +- minifier.js | 6 +- public/src/admin/advanced/logs.js | 36 +++--- public/src/admin/extend/plugins.js | 2 +- public/src/admin/extend/rewards.js | 30 ++--- public/src/admin/general/dashboard.js | 8 +- public/src/admin/manage/category-analytics.js | 8 +- public/src/admin/manage/group.js | 48 ++++---- public/src/app.js | 42 +++---- public/src/client/account/settings.js | 14 +-- public/src/client/groups/details.js | 108 +++++++++--------- public/src/client/topic/postTools.js | 42 +++---- public/src/client/topic/posts.js | 8 +- public/src/installer/install.js | 20 ++-- public/src/modules/helpers.js | 80 ++++++------- public/src/modules/iconSelect.js | 64 +++++------ public/src/modules/pictureCropper.js | 2 +- public/src/modules/translator.js | 40 +++---- public/src/sockets.js | 32 +++--- src/controllers/admin/plugins.js | 4 +- src/controllers/admin/settings.js | 10 +- src/controllers/api.js | 10 +- src/controllers/index.js | 10 +- src/database/mongo/sorted.js | 2 +- src/groups.js | 4 +- src/groups/search.js | 34 +++--- src/messaging.js | 2 +- src/meta/blacklist.js | 4 +- src/meta/build.js | 62 +++++----- src/meta/themes.js | 4 +- src/notifications.js | 50 ++++---- src/plugins/hooks.js | 24 ++-- src/posts/flags.js | 54 ++++----- src/sitemap.js | 38 +++--- src/socket.io/user/picture.js | 36 +++--- src/start.js | 34 +++--- src/topics/teaser.js | 24 ++-- src/topics/unread.js | 8 +- src/user/info.js | 6 +- test/search-admin.js | 96 ++++++++-------- test/topics.js | 10 +- test/user.js | 2 +- 43 files changed, 571 insertions(+), 570 deletions(-) diff --git a/.eslintrc b/.eslintrc index 10219b1d01..cef86e196d 100644 --- a/.eslintrc +++ b/.eslintrc @@ -21,11 +21,16 @@ "no-mixed-operators": ["error", { "allowSamePrecedence": true }], "strict": ["error", "global"], "consistent-return": "off", + "func-names": "off", + "no-tabs": "off", + "indent": ["error", "tab"], // ES6 "prefer-rest-params": "off", "prefer-spread": "off", "prefer-arrow-callback": "off", + "prefer-template": "off", + "no-var": "off", // TODO "import/no-unresolved": "off", @@ -90,13 +95,9 @@ "no-restricted-module": "off", "no-return-assign": "off", "no-restricted-modules": "off", - "no-tabs": "off", - "indent": "off", - "func-names": "off", "object-curly-spacing": "off", - "no-var": "off", "no-shadow": "off", - "prefer-template": "off", + // "indent": "off", // "padded-blocks": "off", // "eol-last": "off", // "lines-around-directive": "off", diff --git a/loader.js b/loader.js index 5dcc382d47..0eaf9a12df 100644 --- a/loader.js +++ b/loader.js @@ -75,13 +75,13 @@ Loader.addWorkerEvents = function (worker) { worker.on('message', function (message) { if (message && typeof message === 'object' && message.action) { switch (message.action) { - case 'restart': - console.log('[cluster] Restarting...'); - Loader.restart(); + case 'restart': + console.log('[cluster] Restarting...'); + Loader.restart(); break; - case 'reload': - console.log('[cluster] Reloading...'); - Loader.reload(); + case 'reload': + console.log('[cluster] Reloading...'); + Loader.reload(); break; } } diff --git a/minifier.js b/minifier.js index e57c30fb38..a68aca8fde 100644 --- a/minifier.js +++ b/minifier.js @@ -50,9 +50,9 @@ function minifyScripts(scripts, callback) { // Follow along here: https://github.com/mishoo/UglifyJS2/issues/700 try { var minified = uglifyjs.minify(scripts, { - // outSourceMap: "nodebb.min.js.map", - compress: false, - }); + // outSourceMap: "nodebb.min.js.map", + compress: false, + }); callback(minified.code/* , minified.map*/); } catch (err) { diff --git a/public/src/admin/advanced/logs.js b/public/src/admin/advanced/logs.js index c0e9fee0f0..5d13543a40 100644 --- a/public/src/admin/advanced/logs.js +++ b/public/src/admin/advanced/logs.js @@ -15,25 +15,25 @@ define('admin/advanced/logs', function () { var action = btnEl.attr('data-action'); switch (action) { - case 'reload': - socket.emit('admin.logs.get', function (err, logs) { - if (!err) { - logsEl.text(logs); - logsEl.scrollTop(logsEl.prop('scrollHeight')); - } else { - app.alertError(err.message); - } - }); - break; + case 'reload': + socket.emit('admin.logs.get', function (err, logs) { + if (!err) { + logsEl.text(logs); + logsEl.scrollTop(logsEl.prop('scrollHeight')); + } else { + app.alertError(err.message); + } + }); + break; - case 'clear': - socket.emit('admin.logs.clear', function (err) { - if (!err) { - app.alertSuccess('[[admin/advanced/logs:clear-success]]'); - btnEl.prev().click(); - } - }); - break; + case 'clear': + socket.emit('admin.logs.clear', function (err) { + if (!err) { + app.alertSuccess('[[admin/advanced/logs:clear-success]]'); + btnEl.prev().click(); + } + }); + break; } }); }; diff --git a/public/src/admin/extend/plugins.js b/public/src/admin/extend/plugins.js index 6d0a1b7de9..135a9f05e0 100644 --- a/public/src/admin/extend/plugins.js +++ b/public/src/admin/extend/plugins.js @@ -162,7 +162,7 @@ define('admin/extend/plugins', ['jqueryui', 'translator'], function (jqueryui, t function confirmInstall(pluginID, callback) { bootbox.confirm(translator.compile('admin/extend/plugins:alert.possibly-incompatible', pluginID), function (confirm) { - callback(confirm); + callback(confirm); }); } diff --git a/public/src/admin/extend/rewards.js b/public/src/admin/extend/rewards.js index a605b87186..7a40a7ef59 100644 --- a/public/src/admin/extend/rewards.js +++ b/public/src/admin/extend/rewards.js @@ -57,18 +57,18 @@ define('admin/extend/rewards', ['translator'], function (translator) { function select(el) { el.val(el.attr('data-selected')); switch (el.attr('name')) { - case 'rid': - selectReward(el); - break; + case 'rid': + selectReward(el); + break; } } function update(el) { el.attr('data-selected', el.val()); switch (el.attr('name')) { - case 'rid': - selectReward(el); - break; + case 'rid': + selectReward(el); + break; } } @@ -95,15 +95,15 @@ define('admin/extend/rewards', ['translator'], function (translator) { inputs.forEach(function (input) { html += '
    '; }); diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index a6600ce93a..cdd12aa5c6 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -292,10 +292,10 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s $('[data-action="updateGraph"]').on('click', function () { var until; switch ($(this).attr('data-until')) { - case 'last-month': - var lastMonth = new Date(); - lastMonth.setDate(lastMonth.getDate() - 30); - until = lastMonth.getTime(); + case 'last-month': + var lastMonth = new Date(); + lastMonth.setDate(lastMonth.getDate() - 30); + until = lastMonth.getTime(); } updateTrafficGraph($(this).attr('data-units'), until); }); diff --git a/public/src/admin/manage/category-analytics.js b/public/src/admin/manage/category-analytics.js index 16500d227c..c9d4d55c2e 100644 --- a/public/src/admin/manage/category-analytics.js +++ b/public/src/admin/manage/category-analytics.js @@ -10,11 +10,11 @@ define('admin/manage/category-analytics', ['Chart'], function (Chart) { var topicsCanvas = document.getElementById('topics:daily'); var postsCanvas = document.getElementById('posts:daily'); var hourlyLabels = utils.getHoursArray().map(function (text, idx) { - return idx % 3 ? '' : text; - }); + return idx % 3 ? '' : text; + }); var dailyLabels = utils.getDaysArray().map(function (text, idx) { - return idx % 3 ? '' : text; - }); + return idx % 3 ? '' : text; + }); if (utils.isMobile()) { Chart.defaults.global.tooltips.enabled = false; diff --git a/public/src/admin/manage/group.js b/public/src/admin/manage/group.js index 89985f3ba5..0a7b6e0247 100644 --- a/public/src/admin/manage/group.js +++ b/public/src/admin/manage/group.js @@ -113,36 +113,36 @@ define('admin/manage/group', [ var action = btnEl.attr('data-action'); switch (action) { - case 'toggleOwnership': - socket.emit('groups.' + (isOwner ? 'rescind' : 'grant'), { - toUid: uid, + case 'toggleOwnership': + socket.emit('groups.' + (isOwner ? 'rescind' : 'grant'), { + toUid: uid, + groupName: groupName, + }, function (err) { + if (err) { + return app.alertError(err.message); + } + ownerFlagEl.toggleClass('invisible'); + }); + break; + + case 'kick': + bootbox.confirm('[[admin/manage/groups:edit.confirm-remove-user]]', function (confirm) { + if (!confirm) { + return; + } + socket.emit('admin.groups.leave', { + uid: uid, groupName: groupName, }, function (err) { if (err) { return app.alertError(err.message); } - ownerFlagEl.toggleClass('invisible'); + userRow.slideUp().remove(); }); - break; - - case 'kick': - bootbox.confirm('[[admin/manage/groups:edit.confirm-remove-user]]', function (confirm) { - if (!confirm) { - return; - } - socket.emit('admin.groups.leave', { - uid: uid, - groupName: groupName, - }, function (err) { - if (err) { - return app.alertError(err.message); - } - userRow.slideUp().remove(); - }); - }); - break; - default: - break; + }); + break; + default: + break; } }); diff --git a/public/src/app.js b/public/src/app.js index 37eb41b564..48f65ac752 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -274,25 +274,25 @@ app.cacheBuster = null; function showAlert(type) { switch (messages[type].format) { - case 'alert': - app.alert({ - type: 'success', - title: messages[type].title, - message: messages[type].message, - timeout: 5000, - }); - break; - - case 'modal': - require(['translator'], function (translator) { - translator.translate(messages[type].message, function (translated) { - bootbox.alert({ - title: messages[type].title, - message: translated, - }); + case 'alert': + app.alert({ + type: 'success', + title: messages[type].title, + message: messages[type].message, + timeout: 5000, + }); + break; + + case 'modal': + require(['translator'], function (translator) { + translator.translate(messages[type].message, function (translated) { + bootbox.alert({ + title: messages[type].title, + message: translated, }); }); - break; + }); + break; } } @@ -366,10 +366,10 @@ app.cacheBuster = null; }; var titleObj = { - active: false, - interval: undefined, - titles: [], - }; + active: false, + interval: undefined, + titles: [], + }; app.alternatingTitle = function (title) { if (typeof title !== 'string') { diff --git a/public/src/client/account/settings.js b/public/src/client/account/settings.js index 8159f50458..fe3808ccd8 100644 --- a/public/src/client/account/settings.js +++ b/public/src/client/account/settings.js @@ -56,13 +56,13 @@ define('forum/account/settings', ['forum/account/header', 'components', 'sounds' } switch (input.attr('type')) { - case 'text': - case 'textarea': - settings[setting] = input.val(); - break; - case 'checkbox': - settings[setting] = input.is(':checked') ? 1 : 0; - break; + case 'text': + case 'textarea': + settings[setting] = input.val(); + break; + case 'checkbox': + settings[setting] = input.is(':checked') ? 1 : 0; + break; } }); diff --git a/public/src/client/groups/details.js b/public/src/client/groups/details.js index 21549ec2a7..e4443ab7ff 100644 --- a/public/src/client/groups/details.js +++ b/public/src/client/groups/details.js @@ -59,61 +59,61 @@ define('forum/groups/details', [ var action = btnEl.attr('data-action'); switch (action) { - case 'toggleOwnership': - socket.emit('groups.' + (isOwner ? 'rescind' : 'grant'), { - toUid: uid, - groupName: groupName, - }, function (err) { - if (!err) { - ownerFlagEl.toggleClass('invisible'); - } else { - app.alertError(err.message); - } - }); - break; + case 'toggleOwnership': + socket.emit('groups.' + (isOwner ? 'rescind' : 'grant'), { + toUid: uid, + groupName: groupName, + }, function (err) { + if (!err) { + ownerFlagEl.toggleClass('invisible'); + } else { + app.alertError(err.message); + } + }); + break; - case 'kick': - socket.emit('groups.kick', { - uid: uid, - groupName: groupName, - }, function (err) { - if (!err) { - userRow.slideUp().remove(); - } else { - app.alertError(err.message); - } - }); - break; - - case 'update': - Details.update(); - break; - - case 'delete': - Details.deleteGroup(); - break; - - case 'join': // intentional fall-throughs! - case 'leave': - case 'accept': - case 'reject': - case 'issueInvite': - case 'rescindInvite': - case 'acceptInvite': - case 'rejectInvite': - case 'acceptAll': - case 'rejectAll': - socket.emit('groups.' + action, { - toUid: uid, - groupName: groupName, - }, function (err) { - if (!err) { - ajaxify.refresh(); - } else { - app.alertError(err.message); - } - }); - break; + case 'kick': + socket.emit('groups.kick', { + uid: uid, + groupName: groupName, + }, function (err) { + if (!err) { + userRow.slideUp().remove(); + } else { + app.alertError(err.message); + } + }); + break; + + case 'update': + Details.update(); + break; + + case 'delete': + Details.deleteGroup(); + break; + + case 'join': // intentional fall-throughs! + case 'leave': + case 'accept': + case 'reject': + case 'issueInvite': + case 'rescindInvite': + case 'acceptInvite': + case 'rejectInvite': + case 'acceptAll': + case 'rejectAll': + socket.emit('groups.' + action, { + toUid: uid, + groupName: groupName, + }, function (err) { + if (!err) { + ajaxify.refresh(); + } else { + app.alertError(err.message); + } + }); + break; } }); }; diff --git a/public/src/client/topic/postTools.js b/public/src/client/topic/postTools.js index 22d92750eb..206ebe0e6a 100644 --- a/public/src/client/topic/postTools.js +++ b/public/src/client/topic/postTools.js @@ -372,31 +372,31 @@ define('forum/topic/postTools', [ translator.translate('[[topic:stale.warning]]', function (translated) { var warning = bootbox.dialog({ - title: '[[topic:stale.title]]', - message: translated, - buttons: { - reply: { - label: '[[topic:stale.reply_anyway]]', - className: 'btn-link', - callback: function () { - staleReplyAnyway = true; - callback(); - }, + title: '[[topic:stale.title]]', + message: translated, + buttons: { + reply: { + label: '[[topic:stale.reply_anyway]]', + className: 'btn-link', + callback: function () { + staleReplyAnyway = true; + callback(); }, - create: { - label: '[[topic:stale.create]]', - className: 'btn-primary', - callback: function () { - translator.translate('[[topic:link_back, ' + ajaxify.data.title + ', ' + config.relative_path + '/topic/' + ajaxify.data.slug + ']]', function (body) { - $(window).trigger('action:composer.topic.new', { - cid: ajaxify.data.cid, - body: body, - }); + }, + create: { + label: '[[topic:stale.create]]', + className: 'btn-primary', + callback: function () { + translator.translate('[[topic:link_back, ' + ajaxify.data.title + ', ' + config.relative_path + '/topic/' + ajaxify.data.slug + ']]', function (body) { + $(window).trigger('action:composer.topic.new', { + cid: ajaxify.data.cid, + body: body, }); - }, + }); }, }, - }); + }, + }); warning.modal(); }); diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js index 5711c4513f..88fe8af9b9 100644 --- a/public/src/client/topic/posts.js +++ b/public/src/client/topic/posts.js @@ -290,11 +290,11 @@ define('forum/topic/posts', [ var images = components.get('post/content').find('img[data-state="unloaded"]'); var visible = images.filter(function () { - return utils.isElementInViewport(this); - }); + return utils.isElementInViewport(this); + }); var posts = $.unique(visible.map(function () { - return $(this).parents('[component="post"]').get(0); - })); + return $(this).parents('[component="post"]').get(0); + })); var scrollTop = $(window).scrollTop(); var adjusting = false; var adjustQueue = []; diff --git a/public/src/installer/install.js b/public/src/installer/install.js index 463c2f741b..55661cd1b6 100644 --- a/public/src/installer/install.js +++ b/public/src/installer/install.js @@ -99,16 +99,16 @@ $('document').ready(function () { } switch (type) { - case 'admin:username': - return validateUsername(field); - case 'admin:password': - return validatePassword(field); - case 'admin:passwordConfirm': - return validateConfirmPassword(field); - case 'admin:email': - return validateEmail(field); - case 'database': - return switchDatabase(field); + case 'admin:username': + return validateUsername(field); + case 'admin:password': + return validatePassword(field); + case 'admin:passwordConfirm': + return validateConfirmPassword(field); + case 'admin:email': + return validateEmail(field); + case 'database': + return switchDatabase(field); } } diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js index 030e6333e0..729c6e42d4 100644 --- a/public/src/modules/helpers.js +++ b/public/src/modules/helpers.js @@ -214,49 +214,49 @@ var icons = ''; switch (data.platform) { - case 'Linux': - icons += ''; - break; - case 'Microsoft Windows': - icons += ''; - break; - case 'Apple Mac': - icons += ''; - break; - case 'Android': - icons += ''; - break; - case 'iPad': - icons += ''; - break; - case 'iPod': // intentional fall-through - case 'iPhone': - icons += ''; - break; - default: - icons += ''; - break; + case 'Linux': + icons += ''; + break; + case 'Microsoft Windows': + icons += ''; + break; + case 'Apple Mac': + icons += ''; + break; + case 'Android': + icons += ''; + break; + case 'iPad': + icons += ''; + break; + case 'iPod': // intentional fall-through + case 'iPhone': + icons += ''; + break; + default: + icons += ''; + break; } switch (data.browser) { - case 'Chrome': - icons += ''; - break; - case 'Firefox': - icons += ''; - break; - case 'Safari': - icons += ''; - break; - case 'IE': - icons += ''; - break; - case 'Edge': - icons += ''; - break; - default: - icons += ''; - break; + case 'Chrome': + icons += ''; + break; + case 'Firefox': + icons += ''; + break; + case 'Safari': + icons += ''; + break; + case 'IE': + icons += ''; + break; + case 'Edge': + icons += ''; + break; + default: + icons += ''; + break; } return icons; diff --git a/public/src/modules/iconSelect.js b/public/src/modules/iconSelect.js index 3c72303b73..76d457088f 100644 --- a/public/src/modules/iconSelect.js +++ b/public/src/modules/iconSelect.js @@ -24,41 +24,41 @@ define('iconSelect', function () { html.find('.fa-icons').prepend($('')); var picker = bootbox.dialog({ - onEscape: true, - backdrop: true, - show: false, - message: html, - title: 'Select an Icon', - buttons: { - noIcon: { - label: 'No Icon', - className: 'btn-default', - callback: function () { - el.attr('class', 'fa ' + (doubleSize ? 'fa-2x ' : '')); - el.val(''); - el.attr('value', ''); - - onModified(el); - }, + onEscape: true, + backdrop: true, + show: false, + message: html, + title: 'Select an Icon', + buttons: { + noIcon: { + label: 'No Icon', + className: 'btn-default', + callback: function () { + el.attr('class', 'fa ' + (doubleSize ? 'fa-2x ' : '')); + el.val(''); + el.attr('value', ''); + + onModified(el); }, - success: { - label: 'Select', - className: 'btn-primary', - callback: function (confirm) { - var iconClass = $('.bootbox .selected').attr('class'); - var categoryIconClass = $('
    ').addClass(iconClass).removeClass('fa').removeClass('selected').attr('class'); - - if (categoryIconClass) { - el.attr('class', 'fa ' + (doubleSize ? 'fa-2x ' : '') + categoryIconClass); - el.val(categoryIconClass); - el.attr('value', categoryIconClass); - } - - onModified(el); - }, + }, + success: { + label: 'Select', + className: 'btn-primary', + callback: function (confirm) { + var iconClass = $('.bootbox .selected').attr('class'); + var categoryIconClass = $('
    ').addClass(iconClass).removeClass('fa').removeClass('selected').attr('class'); + + if (categoryIconClass) { + el.attr('class', 'fa ' + (doubleSize ? 'fa-2x ' : '') + categoryIconClass); + el.val(categoryIconClass); + el.attr('value', categoryIconClass); + } + + onModified(el); }, }, - }); + }, + }); picker.on('show.bs.modal', function () { var modalEl = $(this); diff --git a/public/src/modules/pictureCropper.js b/public/src/modules/pictureCropper.js index 670f9bf91b..c5b8e155df 100644 --- a/public/src/modules/pictureCropper.js +++ b/public/src/modules/pictureCropper.js @@ -30,7 +30,7 @@ define('pictureCropper', ['translator', 'cropper'], function (translator, croppe }); }; - module.handleImageCrop = function (data, callback) { + module.handleImageCrop = function (data, callback) { $('#crop-picture-modal').remove(); templates.parse('modals/crop_picture', {url: data.url}, function (cropperHtml) { translator.translate(cropperHtml, function (translated) { diff --git a/public/src/modules/translator.js b/public/src/modules/translator.js index 9722e51ec8..023225c978 100644 --- a/public/src/modules/translator.js +++ b/public/src/modules/translator.js @@ -491,26 +491,26 @@ // and correct NodeBB language codes to timeago codes, if necessary var languageCode = void 0; switch (config.userLang) { - case 'en-GB': - case 'en-US': - languageCode = 'en'; - break; - - case 'fa-IR': - languageCode = 'fa'; - break; - - case 'pt-BR': - languageCode = 'pt-br'; - break; - - case 'nb': - languageCode = 'no'; - break; - - default: - languageCode = config.userLang; - break; + case 'en-GB': + case 'en-US': + languageCode = 'en'; + break; + + case 'fa-IR': + languageCode = 'fa'; + break; + + case 'pt-BR': + languageCode = 'pt-br'; + break; + + case 'nb': + languageCode = 'no'; + break; + + default: + languageCode = config.userLang; + break; } jQuery.getScript(config.relative_path + '/assets/vendor/jquery/timeago/locales/jquery.timeago.' + languageCode + '.js').done(function () { diff --git a/public/src/sockets.js b/public/src/sockets.js index 50a3c5504f..248ce498aa 100644 --- a/public/src/sockets.js +++ b/public/src/sockets.js @@ -72,29 +72,29 @@ app.isConnected = false; var room; switch (url_parts[0]) { - case 'user': - room = 'user/' + (ajaxify.data ? ajaxify.data.theirid : 0); + case 'user': + room = 'user/' + (ajaxify.data ? ajaxify.data.theirid : 0); break; - case 'topic': - room = 'topic_' + url_parts[1]; + case 'topic': + room = 'topic_' + url_parts[1]; break; - case 'category': - room = 'category_' + url_parts[1]; + case 'category': + room = 'category_' + url_parts[1]; break; - case 'recent': - room = 'recent_topics'; + case 'recent': + room = 'recent_topics'; break; - case 'unread': - room = 'unread_topics'; + case 'unread': + room = 'unread_topics'; break; - case 'popular': - room = 'popular_topics'; + case 'popular': + room = 'popular_topics'; break; - case 'admin': - room = 'admin'; + case 'admin': + room = 'admin'; break; - case 'categories': - room = 'categories'; + case 'categories': + room = 'categories'; break; } app.currentRoom = ''; diff --git a/src/controllers/admin/plugins.js b/src/controllers/admin/plugins.js index c55ef4b457..4e8e1a415e 100644 --- a/src/controllers/admin/plugins.js +++ b/src/controllers/admin/plugins.js @@ -30,8 +30,8 @@ pluginsController.get = function (req, res, next) { return next(err); } var compatiblePkgNames = payload.compatible.map(function (pkgData) { - return pkgData.name; - }); + return pkgData.name; + }); res.render('admin/extend/plugins', { installed: payload.compatible.filter(function (plugin) { diff --git a/src/controllers/admin/settings.js b/src/controllers/admin/settings.js index ba8fb4318f..55e5a1dfbf 100644 --- a/src/controllers/admin/settings.js +++ b/src/controllers/admin/settings.js @@ -11,12 +11,12 @@ settingsController.get = function (req, res, next) { var term = req.params.term ? req.params.term : 'general'; switch (req.params.term) { - case 'email': - renderEmail(req, res, next); - break; + case 'email': + renderEmail(req, res, next); + break; - default: - res.render('admin/settings/' + term); + default: + res.render('admin/settings/' + term); } }; diff --git a/src/controllers/api.js b/src/controllers/api.js index 544beed40a..858db57d66 100644 --- a/src/controllers/api.js +++ b/src/controllers/api.js @@ -124,11 +124,11 @@ apiController.renderWidgets = function (req, res, next) { req, res, function (err, widgets) { - if (err) { - return next(err); - } - res.status(200).json(widgets); - }); + if (err) { + return next(err); + } + res.status(200).json(widgets); + }); }; apiController.getPostData = function (pid, uid, callback) { diff --git a/src/controllers/index.js b/src/controllers/index.js index 1a54a5e8f0..3124355a98 100644 --- a/src/controllers/index.js +++ b/src/controllers/index.js @@ -419,11 +419,11 @@ Controllers.handleURIErrors = function (err, req, res, next) { Controllers.handleErrors = function (err, req, res, next) { switch (err.code) { - case 'EBADCSRFTOKEN': - winston.error(req.path + '\n', err.message); - return res.sendStatus(403); - case 'blacklisted-ip': - return res.status(403).type('text/plain').send(err.message); + case 'EBADCSRFTOKEN': + winston.error(req.path + '\n', err.message); + return res.sendStatus(403); + case 'blacklisted-ip': + return res.status(403).type('text/plain').send(err.message); } if (parseInt(err.status, 10) === 302 && err.path) { diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index 1d93bbcaab..f20e3330a5 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -431,7 +431,7 @@ module.exports = function (db, module) { return item && item.value; }); callback(err, data); - }); + }); } module.sortedSetRemoveRangeByLex = function (key, min, max, callback) { diff --git a/src/groups.js b/src/groups.js index 07d8a2347b..0d2a22c131 100644 --- a/src/groups.js +++ b/src/groups.js @@ -302,8 +302,8 @@ var utils = require('../public/src/utils'); Groups.exists = function (name, callback) { if (Array.isArray(name)) { var slugs = name.map(function (groupName) { - return utils.slugify(groupName); - }); + return utils.slugify(groupName); + }); async.parallel([ function (next) { next(null, slugs.map(function (slug) { diff --git a/src/groups/search.js b/src/groups/search.js index 00bcee3967..680dff11e8 100644 --- a/src/groups/search.js +++ b/src/groups/search.js @@ -38,25 +38,25 @@ module.exports = function (Groups) { Groups.sort = function (strategy, groups, next) { switch (strategy) { - case 'count': - groups = groups.sort(function (a, b) { - return a.slug > b.slug; - }).sort(function (a, b) { - return b.memberCount - a.memberCount; - }); - break; + case 'count': + groups = groups.sort(function (a, b) { + return a.slug > b.slug; + }).sort(function (a, b) { + return b.memberCount - a.memberCount; + }); + break; - case 'date': - groups = groups.sort(function (a, b) { - return b.createtime - a.createtime; - }); - break; + case 'date': + groups = groups.sort(function (a, b) { + return b.createtime - a.createtime; + }); + break; - case 'alpha': // intentional fall-through - default: - groups = groups.sort(function (a, b) { - return a.slug > b.slug ? 1 : -1; - }); + case 'alpha': // intentional fall-through + default: + groups = groups.sort(function (a, b) { + return a.slug > b.slug ? 1 : -1; + }); } next(null, groups); diff --git a/src/messaging.js b/src/messaging.js index 7e74f0bb3b..aa24944c96 100644 --- a/src/messaging.js +++ b/src/messaging.js @@ -256,7 +256,7 @@ Messaging.canMessageUser = function (uid, toUid, callback) { return next(); } - next(new Error('[[error:chat-restricted]]')); + next(new Error('[[error:chat-restricted]]')); }, ], callback); }; diff --git a/src/meta/blacklist.js b/src/meta/blacklist.js index a7e81c604b..49213ac92c 100644 --- a/src/meta/blacklist.js +++ b/src/meta/blacklist.js @@ -6,8 +6,8 @@ var async = require('async'); var db = require('../database'); var Blacklist = { - _rules: [], - }; + _rules: [], +}; Blacklist.load = function (callback) { async.waterfall([ diff --git a/src/meta/build.js b/src/meta/build.js index 887d2cb766..cdebd8572e 100644 --- a/src/meta/build.js +++ b/src/meta/build.js @@ -84,37 +84,37 @@ exports.buildTargets = function (targets, callback) { async.eachSeries(targets, function (target, next) { var startTime; switch (target) { - case 'js': - setImmediate(next); - break; - case 'clientCSS': - winston.info('[build] Building client-side CSS'); - startTime = Date.now(); - meta.css.minify('client', step.bind(this, startTime, target, next)); - break; - - case 'acpCSS': - winston.info('[build] Building admin control panel CSS'); - startTime = Date.now(); - meta.css.minify('admin', step.bind(this, startTime, target, next)); - break; - - case 'tpl': - winston.info('[build] Building templates'); - startTime = Date.now(); - meta.templates.compile(step.bind(this, startTime, target, next)); - break; - - case 'lang': - winston.info('[build] Building language files'); - startTime = Date.now(); - meta.languages.build(step.bind(this, startTime, target, next)); - break; - - default: - winston.warn('[build] Unknown build target: \'' + target + '\''); - setImmediate(next); - break; + case 'js': + setImmediate(next); + break; + case 'clientCSS': + winston.info('[build] Building client-side CSS'); + startTime = Date.now(); + meta.css.minify('client', step.bind(this, startTime, target, next)); + break; + + case 'acpCSS': + winston.info('[build] Building admin control panel CSS'); + startTime = Date.now(); + meta.css.minify('admin', step.bind(this, startTime, target, next)); + break; + + case 'tpl': + winston.info('[build] Building templates'); + startTime = Date.now(); + meta.templates.compile(step.bind(this, startTime, target, next)); + break; + + case 'lang': + winston.info('[build] Building language files'); + startTime = Date.now(); + meta.languages.build(step.bind(this, startTime, target, next)); + break; + + default: + winston.warn('[build] Unknown build target: \'' + target + '\''); + setImmediate(next); + break; } }, next); }, diff --git a/src/meta/themes.js b/src/meta/themes.js index da1f5aa16f..e950847421 100644 --- a/src/meta/themes.js +++ b/src/meta/themes.js @@ -134,8 +134,8 @@ module.exports = function (Meta) { var themeId = data.currentThemeId || 'nodebb-theme-persona'; var themeObj = data.themesData.filter(function (themeObj) { - return themeObj.id === themeId; - })[0]; + return themeObj.id === themeId; + })[0]; if (process.env.NODE_ENV === 'development') { winston.info('[themes] Using theme ' + themeId); diff --git a/src/notifications.js b/src/notifications.js index 06ebd64b61..0fad742e1a 100644 --- a/src/notifications.js +++ b/src/notifications.js @@ -461,33 +461,33 @@ var utils = require('../public/src/utils'); switch (mergeId) { // intentional fall-through - case 'notifications:upvoted_your_post_in': - case 'notifications:user_started_following_you': - case 'notifications:user_posted_to': - case 'notifications:user_flagged_post_in': - var usernames = set.map(function (notifObj) { - return notifObj && notifObj.user && notifObj.user.username; - }).filter(function (username, idx, array) { - return array.indexOf(username) === idx; - }); - var numUsers = usernames.length; - - var title = S(notifications[modifyIndex].topicTitle || '').decodeHTMLEntities().s; - var titleEscaped = title.replace(/%/g, '%').replace(/,/g, ','); - titleEscaped = titleEscaped ? (', ' + titleEscaped) : ''; - - if (numUsers === 2) { - notifications[modifyIndex].bodyShort = '[[' + mergeId + '_dual, ' + usernames.join(', ') + titleEscaped + ']]'; - } else if (numUsers > 2) { - notifications[modifyIndex].bodyShort = '[[' + mergeId + '_multiple, ' + usernames[0] + ', ' + (numUsers - 1) + titleEscaped + ']]'; - } + case 'notifications:upvoted_your_post_in': + case 'notifications:user_started_following_you': + case 'notifications:user_posted_to': + case 'notifications:user_flagged_post_in': + var usernames = set.map(function (notifObj) { + return notifObj && notifObj.user && notifObj.user.username; + }).filter(function (username, idx, array) { + return array.indexOf(username) === idx; + }); + var numUsers = usernames.length; + + var title = S(notifications[modifyIndex].topicTitle || '').decodeHTMLEntities().s; + var titleEscaped = title.replace(/%/g, '%').replace(/,/g, ','); + titleEscaped = titleEscaped ? (', ' + titleEscaped) : ''; + + if (numUsers === 2) { + notifications[modifyIndex].bodyShort = '[[' + mergeId + '_dual, ' + usernames.join(', ') + titleEscaped + ']]'; + } else if (numUsers > 2) { + notifications[modifyIndex].bodyShort = '[[' + mergeId + '_multiple, ' + usernames[0] + ', ' + (numUsers - 1) + titleEscaped + ']]'; + } - notifications[modifyIndex].path = set[set.length - 1].path; - break; + notifications[modifyIndex].path = set[set.length - 1].path; + break; - case 'new_register': - notifications[modifyIndex].bodyShort = '[[notifications:' + mergeId + '_multiple, ' + set.length + ']]'; - break; + case 'new_register': + notifications[modifyIndex].bodyShort = '[[notifications:' + mergeId + '_multiple, ' + set.length + ']]'; + break; } // Filter out duplicates diff --git a/src/plugins/hooks.js b/src/plugins/hooks.js index 2441b24228..ef82046bbf 100644 --- a/src/plugins/hooks.js +++ b/src/plugins/hooks.js @@ -83,18 +83,18 @@ module.exports = function (Plugins) { var hookType = hook.split(':')[0]; switch (hookType) { - case 'filter': - fireFilterHook(hook, hookList, params, callback); - break; - case 'action': - fireActionHook(hook, hookList, params, callback); - break; - case 'static': - fireStaticHook(hook, hookList, params, callback); - break; - default: - winston.warn('[plugins] Unknown hookType: ' + hookType + ', hook : ' + hook); - break; + case 'filter': + fireFilterHook(hook, hookList, params, callback); + break; + case 'action': + fireActionHook(hook, hookList, params, callback); + break; + case 'static': + fireStaticHook(hook, hookList, params, callback); + break; + default: + winston.warn('[plugins] Unknown hookType: ' + hookType + ', hook : ' + hook); + break; } }; diff --git a/src/posts/flags.js b/src/posts/flags.js index f03cb9de59..a1ee62ecd4 100644 --- a/src/posts/flags.js +++ b/src/posts/flags.js @@ -247,18 +247,18 @@ module.exports = function (Posts) { if (prop === 'flag:state') { switch (postObj[prop]) { - case 'open': - postObj.flagData.labelClass = 'info'; - break; - case 'wip': - postObj.flagData.labelClass = 'warning'; - break; - case 'resolved': - postObj.flagData.labelClass = 'success'; - break; - case 'rejected': - postObj.flagData.labelClass = 'danger'; - break; + case 'open': + postObj.flagData.labelClass = 'info'; + break; + case 'wip': + postObj.flagData.labelClass = 'warning'; + break; + case 'resolved': + postObj.flagData.labelClass = 'success'; + break; + case 'rejected': + postObj.flagData.labelClass = 'danger'; + break; } } @@ -324,22 +324,22 @@ module.exports = function (Posts) { changes.forEach(function (property) { switch (property) { - case 'assignee': // intentional fall-through - case 'state': - history.unshift({ - uid: uid, - type: property, - value: flagObj[property], - timestamp: Date.now(), - }); - break; + case 'assignee': // intentional fall-through + case 'state': + history.unshift({ + uid: uid, + type: property, + value: flagObj[property], + timestamp: Date.now(), + }); + break; - case 'notes': - history.unshift({ - uid: uid, - type: property, - timestamp: Date.now(), - }); + case 'notes': + history.unshift({ + uid: uid, + type: property, + timestamp: Date.now(), + }); } }); diff --git a/src/sitemap.js b/src/sitemap.js index 4663c2df9f..dbd881a067 100644 --- a/src/sitemap.js +++ b/src/sitemap.js @@ -21,9 +21,9 @@ var sitemap = { sitemap.render = function (callback) { var numTopics = parseInt(meta.config.sitemapTopics, 10) || 500; var returnData = { - url: nconf.get('url'), - topics: [], - }; + url: nconf.get('url'), + topics: [], + }; var numPages; async.waterfall([ @@ -55,22 +55,22 @@ sitemap.getPages = function (callback) { } var urls = [{ - url: '', - changefreq: 'weekly', - priority: 0.6, - }, { - url: '/recent', - changefreq: 'daily', - priority: 0.4, - }, { - url: '/users', - changefreq: 'daily', - priority: 0.4, - }, { - url: '/groups', - changefreq: 'daily', - priority: 0.4, - }]; + url: '', + changefreq: 'weekly', + priority: 0.6, + }, { + url: '/recent', + changefreq: 'daily', + priority: 0.4, + }, { + url: '/users', + changefreq: 'daily', + priority: 0.4, + }, { + url: '/groups', + changefreq: 'daily', + priority: 0.4, + }]; plugins.fireHook('filter:sitemap.getPages', {urls: urls}, function (err, data) { if (err) { diff --git a/src/socket.io/user/picture.js b/src/socket.io/user/picture.js index b0ddd8cdcd..109b2635e1 100644 --- a/src/socket.io/user/picture.js +++ b/src/socket.io/user/picture.js @@ -26,25 +26,25 @@ module.exports = function (SocketUser) { }, function (next) { switch (type) { - case 'default': - next(null, ''); - break; - case 'uploaded': - user.getUserField(data.uid, 'uploadedpicture', next); - break; - default: - plugins.fireHook('filter:user.getPicture', { - uid: socket.uid, - type: type, - picture: undefined, - }, function (err, returnData) { - if (err) { - return next(err); - } + case 'default': + next(null, ''); + break; + case 'uploaded': + user.getUserField(data.uid, 'uploadedpicture', next); + break; + default: + plugins.fireHook('filter:user.getPicture', { + uid: socket.uid, + type: type, + picture: undefined, + }, function (err, returnData) { + if (err) { + return next(err); + } - next(null, returnData.picture || ''); - }); - break; + next(null, returnData.picture || ''); + }); + break; } }, function (picture, next) { diff --git a/src/start.js b/src/start.js index 489f114f53..652da31128 100644 --- a/src/start.js +++ b/src/start.js @@ -57,21 +57,21 @@ start.start = function () { ], function (err) { if (err) { switch (err.message) { - case 'schema-out-of-date': - winston.warn('Your NodeBB schema is out-of-date. Please run the following command to bring your dataset up to spec:'); - winston.warn(' ./nodebb upgrade'); - break; - case 'dependencies-out-of-date': - winston.warn('One or more of NodeBB\'s dependent packages are out-of-date. Please run the following command to update them:'); - winston.warn(' ./nodebb upgrade'); - break; - case 'dependencies-missing': - winston.warn('One or more of NodeBB\'s dependent packages are missing. Please run the following command to update them:'); - winston.warn(' ./nodebb upgrade'); - break; - default: - winston.error(err); - break; + case 'schema-out-of-date': + winston.warn('Your NodeBB schema is out-of-date. Please run the following command to bring your dataset up to spec:'); + winston.warn(' ./nodebb upgrade'); + break; + case 'dependencies-out-of-date': + winston.warn('One or more of NodeBB\'s dependent packages are out-of-date. Please run the following command to update them:'); + winston.warn(' ./nodebb upgrade'); + break; + case 'dependencies-missing': + winston.warn('One or more of NodeBB\'s dependent packages are missing. Please run the following command to update them:'); + winston.warn(' ./nodebb upgrade'); + break; + default: + winston.error(err); + break; } // Either way, bad stuff happened. Abort start. @@ -125,8 +125,8 @@ function addProcessHandlers() { var meta = require('./meta'); switch (message.action) { - case 'reload': - meta.reload(); + case 'reload': + meta.reload(); break; } }); diff --git a/src/topics/teaser.js b/src/topics/teaser.js index c18b97c554..9264b4b254 100644 --- a/src/topics/teaser.js +++ b/src/topics/teaser.js @@ -30,18 +30,18 @@ module.exports = function (Topics) { } switch (meta.config.teaserPost) { - case 'first': - teaserPids.push(topic.mainPid); - break; - - case 'last-post': - teaserPids.push(topic.teaserPid || topic.mainPid); - break; - - case 'last-reply': // intentional fall-through - default: - teaserPids.push(topic.teaserPid); - break; + case 'first': + teaserPids.push(topic.mainPid); + break; + + case 'last-post': + teaserPids.push(topic.teaserPid || topic.mainPid); + break; + + case 'last-reply': // intentional fall-through + default: + teaserPids.push(topic.teaserPid); + break; } } }); diff --git a/src/topics/unread.js b/src/topics/unread.js index 80dfb0efeb..cc3101ee05 100644 --- a/src/topics/unread.js +++ b/src/topics/unread.js @@ -121,10 +121,10 @@ module.exports = function (Topics) { return false; } switch (filter) { - case 'new': - return !userRead[recentTopic.value]; - default: - return !userRead[recentTopic.value] || recentTopic.score > userRead[recentTopic.value]; + case 'new': + return !userRead[recentTopic.value]; + default: + return !userRead[recentTopic.value] || recentTopic.score > userRead[recentTopic.value]; } }).map(function (topic) { return topic.value; diff --git a/src/user/info.js b/src/user/info.js index 6df33f4757..4af1b77f35 100644 --- a/src/user/info.js +++ b/src/user/info.js @@ -119,9 +119,9 @@ module.exports = function (User) { function formatBanData(data) { var reasons = data.reasons.reduce(function (memo, cur) { - memo[cur.score] = cur.value; - return memo; - }, {}); + memo[cur.score] = cur.value; + return memo; + }, {}); data.bans = data.bans.map(function (banObj) { banObj.until = parseInt(banObj.value, 10); diff --git a/test/search-admin.js b/test/search-admin.js index 97316e6639..0d52c8db75 100644 --- a/test/search-admin.js +++ b/test/search-admin.js @@ -5,59 +5,59 @@ var assert = require('assert'); var search = require('../src/admin/search'); describe('admin search', function () { - describe('filterDirectories', function () { - it('should resolve all paths to relative paths', function (done) { - assert.deepEqual(search.filterDirectories([ - 'hfjksfd/fdsgagag/admin/gdhgfsdg/sggag.tpl', - ]), [ - 'admin/gdhgfsdg/sggag', - ]); - done(); - }); - it('should exclude partials', function (done) { - assert.deepEqual(search.filterDirectories([ - 'hfjksfd/fdsgagag/admin/gdhgfsdg/sggag.tpl', - 'dfahdfsgf/admin/partials/hgkfds/fdhsdfh.tpl', - ]), [ - 'admin/gdhgfsdg/sggag', - ]); - done(); - }); - it('should exclude files in the admin directory', function (done) { - assert.deepEqual(search.filterDirectories([ - 'hfjksfd/fdsgagag/admin/gdhgfsdg/sggag.tpl', - 'dfdasg/admin/hjkdfsk.tpl', - ]), [ - 'admin/gdhgfsdg/sggag', - ]); - done(); - }); - }); + describe('filterDirectories', function () { + it('should resolve all paths to relative paths', function (done) { + assert.deepEqual(search.filterDirectories([ + 'hfjksfd/fdsgagag/admin/gdhgfsdg/sggag.tpl', + ]), [ + 'admin/gdhgfsdg/sggag', + ]); + done(); + }); + it('should exclude partials', function (done) { + assert.deepEqual(search.filterDirectories([ + 'hfjksfd/fdsgagag/admin/gdhgfsdg/sggag.tpl', + 'dfahdfsgf/admin/partials/hgkfds/fdhsdfh.tpl', + ]), [ + 'admin/gdhgfsdg/sggag', + ]); + done(); + }); + it('should exclude files in the admin directory', function (done) { + assert.deepEqual(search.filterDirectories([ + 'hfjksfd/fdsgagag/admin/gdhgfsdg/sggag.tpl', + 'dfdasg/admin/hjkdfsk.tpl', + ]), [ + 'admin/gdhgfsdg/sggag', + ]); + done(); + }); + }); - describe('sanitize', function () { - it('should strip out scripts', function (done) { - assert.equal( + describe('sanitize', function () { + it('should strip out scripts', function (done) { + assert.equal( search.sanitize('Pellentesque tristique senectus' + ' habitant morbi'), 'Pellentesque tristique senectus' + ' habitant morbi' ); - done(); - }); - it('should remove all tags', function (done) { - assert.equal( + done(); + }); + it('should remove all tags', function (done) { + assert.equal( search.sanitize('

    Pellentesque habitant morbi tristique senectus' + 'Aenean vitae est.Mauris eleifend leo.

    '), 'Pellentesque habitant morbi tristique senectus' + 'Aenean vitae est.Mauris eleifend leo.' ); - done(); - }); - }); + done(); + }); + }); - describe('simplify', function () { - it('should remove all mustaches', function (done) { - assert.equal( + describe('simplify', function () { + it('should remove all mustaches', function (done) { + assert.equal( search.simplify( 'Pellentesque tristique {{senectus}}habitant morbi' + 'liquam tincidunt {mauris.eu}risus' @@ -65,10 +65,10 @@ describe('admin search', function () { 'Pellentesque tristique habitant morbi' + 'liquam tincidunt risus' ); - done(); - }); - it('should collapse all whitespace', function (done) { - assert.equal( + done(); + }); + it('should collapse all whitespace', function (done) { + assert.equal( search.simplify( 'Pellentesque tristique habitant morbi' + ' \n\n liquam tincidunt mauris eu risus.' @@ -76,7 +76,7 @@ describe('admin search', function () { 'Pellentesque tristique habitant morbi' + '\nliquam tincidunt mauris eu risus.' ); - done(); - }); - }); + done(); + }); + }); }); diff --git a/test/topics.js b/test/topics.js index ad48e4cc7f..e5190f6d00 100644 --- a/test/topics.js +++ b/test/topics.js @@ -562,11 +562,11 @@ describe('Topic\'s', function () { var originalBookmark = 5; function postReply(next) { topics.reply({uid: topic.userId, content: 'test post ' + replies.length, tid: newTopic.tid}, function (err, result) { - assert.equal(err, null, 'was created with error'); - assert.ok(result); - replies.push(result); - next(); - } + assert.equal(err, null, 'was created with error'); + assert.ok(result); + replies.push(result); + next(); + } ); } diff --git a/test/user.js b/test/user.js index 5573cbe400..672079a322 100644 --- a/test/user.js +++ b/test/user.js @@ -728,7 +728,7 @@ describe('User', function () { it('should send digests', function (done) { User.updateDigestSetting(uid, 'day', function (err) { assert.ifError(err); - User.digest.execute('day', function (err) { + User.digest.execute('day', function (err) { assert.ifError(err); done(); }); From 896c8c734321c606c8548e9b11ecba58ce1ccd28 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 12:30:49 -0700 Subject: [PATCH 26/60] ESlint object-curly-spacing --- .eslintrc | 4 +- bcrypt.js | 4 +- loader.js | 2 +- public/src/admin/extend/plugins.js | 2 +- public/src/admin/extend/rewards.js | 4 +- public/src/admin/general/dashboard.js | 4 +- public/src/admin/general/navigation.js | 6 +- public/src/admin/manage/category.js | 6 +- public/src/admin/manage/flags.js | 2 +- public/src/admin/manage/group.js | 6 +- public/src/admin/manage/registration.js | 4 +- public/src/admin/manage/tags.js | 6 +- public/src/admin/manage/users.js | 2 +- public/src/admin/settings/email.js | 2 +- public/src/ajaxify.js | 12 +- public/src/app.js | 4 +- public/src/client/account/edit.js | 4 +- public/src/client/account/info.js | 2 +- public/src/client/account/posts.js | 2 +- public/src/client/account/profile.js | 2 +- public/src/client/account/settings.js | 2 +- public/src/client/account/topics.js | 4 +- public/src/client/categories.js | 4 +- public/src/client/category.js | 10 +- public/src/client/category/tools.js | 12 +- public/src/client/chats.js | 10 +- public/src/client/groups/memberlist.js | 2 +- public/src/client/infinitescroll.js | 2 +- public/src/client/notifications.js | 2 +- public/src/client/recent.js | 6 +- public/src/client/tags.js | 4 +- public/src/client/topic/events.js | 4 +- public/src/client/topic/flag.js | 2 +- public/src/client/topic/move-post.js | 2 +- public/src/client/topic/move.js | 2 +- public/src/client/topic/postTools.js | 4 +- public/src/client/topic/posts.js | 8 +- public/src/client/topic/replies.js | 4 +- public/src/client/topic/threadTools.js | 16 +- public/src/client/topic/votes.js | 2 +- public/src/client/unread.js | 2 +- public/src/client/users.js | 2 +- public/src/installer/install.js | 2 +- public/src/modules/autocomplete.js | 2 +- public/src/modules/chat.js | 4 +- public/src/modules/notifications.js | 2 +- public/src/modules/pictureCropper.js | 2 +- public/src/modules/share.js | 2 +- public/src/modules/uploader.js | 2 +- public/src/overrides.js | 2 +- src/analytics.js | 2 +- src/categories.js | 4 +- src/categories/create.js | 2 +- src/categories/delete.js | 2 +- src/categories/recentreplies.js | 2 +- src/categories/topics.js | 8 +- src/categories/update.js | 4 +- src/controllers/accounts/chats.js | 8 +- src/controllers/accounts/edit.js | 10 +- src/controllers/accounts/follow.js | 2 +- src/controllers/accounts/groups.js | 2 +- src/controllers/accounts/helpers.js | 4 +- src/controllers/accounts/info.js | 2 +- src/controllers/accounts/notifications.js | 2 +- src/controllers/accounts/posts.js | 2 +- src/controllers/accounts/profile.js | 4 +- src/controllers/accounts/settings.js | 18 +- src/controllers/admin/groups.js | 6 +- src/controllers/admin/homepage.js | 4 +- src/controllers/admin/info.js | 4 +- src/controllers/admin/tags.js | 2 +- src/controllers/admin/uploads.js | 10 +- src/controllers/admin/users.js | 2 +- src/controllers/api.js | 2 +- src/controllers/authentication.js | 10 +- src/controllers/categories.js | 2 +- src/controllers/groups.js | 12 +- src/controllers/helpers.js | 2 +- src/controllers/index.js | 22 +-- src/controllers/popular.js | 4 +- src/controllers/recent.js | 4 +- src/controllers/search.js | 6 +- src/controllers/tags.js | 4 +- src/controllers/topics.js | 4 +- src/controllers/unread.js | 4 +- src/controllers/uploads.js | 10 +- src/controllers/users.js | 18 +- src/database/mongo/hash.js | 20 +-- src/database/mongo/list.js | 12 +- src/database/mongo/main.js | 12 +- src/database/mongo/sets.js | 24 +-- src/database/mongo/sorted.js | 64 +++---- src/database/mongo/sorted/add.js | 6 +- src/database/mongo/sorted/intersect.js | 16 +- src/database/mongo/sorted/remove.js | 10 +- src/database/mongo/sorted/union.js | 10 +- src/database/redis/sorted.js | 6 +- src/database/redis/sorted/intersect.js | 2 +- src/database/redis/sorted/union.js | 2 +- src/events.js | 2 +- src/groups.js | 8 +- src/groups/cover.js | 2 +- src/groups/create.js | 2 +- src/groups/membership.js | 2 +- src/groups/ownership.js | 4 +- src/groups/search.js | 2 +- src/install.js | 2 +- src/logger.js | 8 +- src/messaging.js | 2 +- src/messaging/rooms.js | 4 +- src/meta.js | 2 +- src/meta/js.js | 2 +- src/middleware/admin.js | 4 +- src/middleware/header.js | 10 +- src/middleware/index.js | 2 +- src/middleware/render.js | 6 +- src/middleware/user.js | 2 +- src/notifications.js | 6 +- src/pagination.js | 16 +- src/password.js | 6 +- src/plugins.js | 2 +- src/plugins/install.js | 6 +- src/posts.js | 12 +- src/posts/create.js | 2 +- src/posts/delete.js | 10 +- src/posts/edit.js | 4 +- src/posts/flags.js | 8 +- src/posts/parse.js | 4 +- src/posts/recent.js | 2 +- src/posts/summary.js | 4 +- src/posts/user.js | 2 +- src/posts/votes.js | 6 +- src/privileges/categories.js | 24 +-- src/privileges/posts.js | 18 +- src/privileges/users.js | 2 +- src/pubsub.js | 2 +- src/rewards/index.js | 4 +- src/routes/authentication.js | 2 +- src/search.js | 4 +- src/sitemap.js | 2 +- src/socket.io/admin.js | 2 +- src/socket.io/admin/categories.js | 2 +- src/socket.io/admin/rooms.js | 8 +- src/socket.io/admin/user.js | 2 +- src/socket.io/groups.js | 2 +- src/socket.io/helpers.js | 2 +- src/socket.io/index.js | 6 +- src/socket.io/modules.js | 4 +- src/socket.io/notifications.js | 2 +- src/socket.io/posts/flag.js | 2 +- src/socket.io/posts/helpers.js | 2 +- src/socket.io/posts/tools.js | 10 +- src/socket.io/topics.js | 4 +- src/socket.io/topics/tags.js | 2 +- src/socket.io/topics/tools.js | 2 +- src/socket.io/user.js | 2 +- src/socket.io/user/profile.js | 4 +- src/socket.io/user/status.js | 2 +- src/topics.js | 8 +- src/topics/bookmarks.js | 2 +- src/topics/create.js | 2 +- src/topics/delete.js | 2 +- src/topics/follow.js | 2 +- src/topics/fork.js | 4 +- src/topics/posts.js | 2 +- src/topics/recent.js | 4 +- src/topics/tags.js | 16 +- src/topics/teaser.js | 2 +- src/topics/thumb.js | 2 +- src/topics/tools.js | 2 +- src/user.js | 6 +- src/user/admin.js | 2 +- src/user/approval.js | 4 +- src/user/auth.js | 2 +- src/user/bans.js | 4 +- src/user/create.js | 2 +- src/user/data.js | 8 +- src/user/delete.js | 6 +- src/user/email.js | 4 +- src/user/notifications.js | 2 +- src/user/picture.js | 22 +-- src/user/profile.js | 4 +- src/user/search.js | 4 +- src/user/settings.js | 4 +- src/widgets/admin.js | 4 +- src/widgets/index.js | 8 +- test/authentication.js | 4 +- test/categories.js | 82 ++++----- test/controllers-admin.js | 96 +++++------ test/controllers.js | 46 ++--- test/database/hash.js | 18 +- test/database/sorted.js | 20 +-- test/groups.js | 96 +++++------ test/helpers/index.js | 4 +- test/messaging.js | 36 ++-- test/meta.js | 20 +-- test/notifications.js | 28 ++-- test/pagination.js | 2 +- test/plugins.js | 14 +- test/posts.js | 86 +++++----- test/rewards.js | 2 +- test/search.js | 4 +- test/socket.io.js | 66 ++++---- test/topics.js | 194 +++++++++++----------- test/uploads.js | 12 +- test/user.js | 102 ++++++------ test/utils.js | 4 +- 207 files changed, 971 insertions(+), 971 deletions(-) diff --git a/.eslintrc b/.eslintrc index cef86e196d..0b1eb32844 100644 --- a/.eslintrc +++ b/.eslintrc @@ -46,6 +46,7 @@ "no-prototype-builtins": "off", "vars-on-top": "off", "no-restricted-syntax": "off", + "no-shadow": "off", // "linebreak-style": "off", // "one-var": "off", @@ -95,8 +96,7 @@ "no-restricted-module": "off", "no-return-assign": "off", "no-restricted-modules": "off", - "object-curly-spacing": "off", - "no-shadow": "off", + // "object-curly-spacing": "off", // "indent": "off", // "padded-blocks": "off", // "eol-last": "off", diff --git a/bcrypt.js b/bcrypt.js index c948b8faa5..40a493e75d 100644 --- a/bcrypt.js +++ b/bcrypt.js @@ -26,9 +26,9 @@ function hashPassword(password, rounds) { function done(err, result) { if (err) { - process.send({err: err.message}); + process.send({ err: err.message }); return process.disconnect(); } - process.send({result: result}); + process.send({ result: result }); process.disconnect(); } diff --git a/loader.js b/loader.js index 0eaf9a12df..7cfefbf259 100644 --- a/loader.js +++ b/loader.js @@ -153,7 +153,7 @@ Loader.restart = function () { nconf.remove('file'); nconf.use('file', { file: pathToConfig }); - fs.readFile(pathToConfig, {encoding: 'utf-8'}, function (err, configFile) { + fs.readFile(pathToConfig, { encoding: 'utf-8' }, function (err, configFile) { if (err) { console.log('Error reading config : ' + err.message); process.exit(); diff --git a/public/src/admin/extend/plugins.js b/public/src/admin/extend/plugins.js index 135a9f05e0..1419a76555 100644 --- a/public/src/admin/extend/plugins.js +++ b/public/src/admin/extend/plugins.js @@ -145,7 +145,7 @@ define('admin/extend/plugins', ['jqueryui', 'translator'], function (jqueryui, t var plugins = $('#order-active-plugins-modal .plugin-list').children(); var data = []; plugins.each(function (index, el) { - data.push({name: $(el).text(), order: index}); + data.push({ name: $(el).text(), order: index }); }); socket.emit('admin.plugins.orderActivePlugins', data, function (err) { diff --git a/public/src/admin/extend/rewards.js b/public/src/admin/extend/rewards.js index 7a40a7ef59..e2858af2e8 100644 --- a/public/src/admin/extend/rewards.js +++ b/public/src/admin/extend/rewards.js @@ -28,7 +28,7 @@ define('admin/extend/rewards', ['translator'], function (translator) { var parent = $(this).parents('[data-id]'); var id = parent.attr('data-id'); - socket.emit('admin.rewards.delete', {id: id}, function (err) { + socket.emit('admin.rewards.delete', { id: id }, function (err) { if (err) { app.alertError(err.message); } else { @@ -153,7 +153,7 @@ define('admin/extend/rewards', ['translator'], function (translator) { var activeRewards = []; $('#active li').each(function () { - var data = {rewards: {}}; + var data = { rewards: {} }; var main = $(this).find('form.main').serializeArray(); var rewards = $(this).find('form.rewards').serializeArray(); diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index cdd12aa5c6..d332b35a0f 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -374,10 +374,10 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s function updateTopicsGraph(topics) { if (!Object.keys(topics).length) { - topics = {0: { + topics = { 0: { title: 'No users browsing', value: 1, - }}; + } }; } var tids = Object.keys(topics); diff --git a/public/src/admin/general/navigation.js b/public/src/admin/general/navigation.js index ad9f5bc676..50da0f952b 100644 --- a/public/src/admin/general/navigation.js +++ b/public/src/admin/general/navigation.js @@ -63,12 +63,12 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun function drop(ev, ui) { var id = ui.helper.attr('data-id'); var el = $('#active-navigation [data-id="' + id + '"]'); - var data = id === 'custom' ? {iconClass: 'fa-navicon'} : available[id]; + var data = id === 'custom' ? { iconClass: 'fa-navicon' } : available[id]; data.enabled = false; data.index = (parseInt($('#enabled').children().last().attr('data-index'), 10) || 0) + 1; - templates.parse('admin/general/navigation', 'navigation', {navigation: [data]}, function (li) { + templates.parse('admin/general/navigation', 'navigation', { navigation: [data] }, function (li) { translator.translate(li, function (li) { li = $(translator.unescape(li)); el.after(li); @@ -76,7 +76,7 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun }); }); - templates.parse('admin/general/navigation', 'enabled', {enabled: [data]}, function (li) { + templates.parse('admin/general/navigation', 'enabled', { enabled: [data] }, function (li) { translator.translate(li, function (li) { li = $(translator.unescape(li)); $('#enabled').append(li); diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js index 41c9eceff0..e70b858afa 100644 --- a/public/src/admin/manage/category.js +++ b/public/src/admin/manage/category.js @@ -134,7 +134,7 @@ define('admin/manage/category', [ $('.copy-settings').on('click', function () { selectCategoryModal(function (cid) { - socket.emit('admin.categories.copySettingsFrom', {fromCid: cid, toCid: ajaxify.data.category.cid}, function (err) { + socket.emit('admin.categories.copySettingsFrom', { fromCid: cid, toCid: ajaxify.data.category.cid }, function (err) { if (err) { return app.alertError(err.message); } @@ -152,7 +152,7 @@ define('admin/manage/category', [ uploader.show({ title: '[[admin/manage/categories:alert.upload-image]]', route: config.relative_path + '/api/admin/category/uploadpicture', - params: {cid: cid}, + params: { cid: cid }, }, function (imageUrlOnServer) { $('#category-image').val(imageUrlOnServer); var previewBox = inputEl.parent().parent().siblings('.category-preview'); @@ -434,7 +434,7 @@ define('admin/manage/category', [ Category.copyPrivilegesFromCategory = function () { selectCategoryModal(function (cid) { - socket.emit('admin.categories.copyPrivilegesFrom', {toCid: ajaxify.data.category.cid, fromCid: cid}, function (err) { + socket.emit('admin.categories.copyPrivilegesFrom', { toCid: ajaxify.data.category.cid, fromCid: cid }, function (err) { if (err) { return app.alertError(err.message); } diff --git a/public/src/admin/manage/flags.js b/public/src/admin/manage/flags.js index af44392a7d..a420540f99 100644 --- a/public/src/admin/manage/flags.js +++ b/public/src/admin/manage/flags.js @@ -62,7 +62,7 @@ define('admin/manage/flags', [ } var pid = btn.parents('[data-pid]').attr('data-pid'); var tid = btn.parents('[data-pid]').attr('data-tid'); - socket.emit('posts.delete', {pid: pid, tid: tid}, function (err) { + socket.emit('posts.delete', { pid: pid, tid: tid }, function (err) { done(err, btn); }); }); diff --git a/public/src/admin/manage/group.js b/public/src/admin/manage/group.js index 0a7b6e0247..f2e5c8c92e 100644 --- a/public/src/admin/manage/group.js +++ b/public/src/admin/manage/group.js @@ -40,7 +40,7 @@ define('admin/manage/group', [ var searchText = groupDetailsSearch.val(); var foundUser; - socket.emit('admin.user.search', {query: searchText}, function (err, results) { + socket.emit('admin.user.search', { query: searchText }, function (err, results) { if (!err && results && results.users.length > 0) { var numResults = results.users.length; var x; @@ -53,7 +53,7 @@ define('admin/manage/group', [ for (x = 0; x < numResults; x += 1) { foundUser = $('
  • '); foundUser - .attr({title: results.users[x].username, + .attr({ title: results.users[x].username, 'data-uid': results.users[x].uid, 'data-username': results.users[x].username, 'data-userslug': results.users[x].userslug, @@ -96,7 +96,7 @@ define('admin/manage/group', [ 'icon:text': userLabel.attr('data-usericon-text'), }; - templates.parse('partials/groups/memberlist', 'members', {group: {isOwner: ajaxify.data.group.isOwner, members: [member]}}, function (html) { + templates.parse('partials/groups/memberlist', 'members', { group: { isOwner: ajaxify.data.group.isOwner, members: [member] } }, function (html) { translator.translate(html, function (html) { $('[component="groups/members"] tbody').prepend(html); }); diff --git a/public/src/admin/manage/registration.js b/public/src/admin/manage/registration.js index 3107e6c19f..2db0e5c6bf 100644 --- a/public/src/admin/manage/registration.js +++ b/public/src/admin/manage/registration.js @@ -11,7 +11,7 @@ define('admin/manage/registration', function () { var username = parent.attr('data-username'); var method = action === 'accept' ? 'admin.user.acceptRegistration' : 'admin.user.rejectRegistration'; - socket.emit(method, {username: username}, function (err) { + socket.emit(method, { username: username }, function (err) { if (err) { return app.alertError(err.message); } @@ -39,7 +39,7 @@ define('admin/manage/registration', function () { if (action === 'delete') { bootbox.confirm('[[admin/manage/registration:invitations.confirm-delete]]', function (confirm) { if (confirm) { - socket.emit(method, {email: email, invitedBy: invitedBy}, function (err) { + socket.emit(method, { email: email, invitedBy: invitedBy }, function (err) { if (err) { return app.alertError(err.message); } diff --git a/public/src/admin/manage/tags.js b/public/src/admin/manage/tags.js index 4b73f20609..e20bd72276 100644 --- a/public/src/admin/manage/tags.js +++ b/public/src/admin/manage/tags.js @@ -61,12 +61,12 @@ define('admin/manage/tags', [ } timeoutId = setTimeout(function () { - socket.emit('topics.searchAndLoadTags', {query: $('#tag-search').val()}, function (err, result) { + socket.emit('topics.searchAndLoadTags', { query: $('#tag-search').val() }, function (err, result) { if (err) { return app.alertError(err.message); } - app.parseAndTranslate('admin/manage/tags', 'tags', {tags: result.tags}, function (html) { + app.parseAndTranslate('admin/manage/tags', 'tags', { tags: result.tags }, function (html) { $('.tag-list').html(html); utils.makeNumbersHumanReadable(html.find('.human-readable-number')); timeoutId = 0; @@ -133,7 +133,7 @@ define('admin/manage/tags', [ tagsToDelete.each(function (index, el) { tags.push($(el).attr('data-tag')); }); - socket.emit('admin.tags.deleteTags', {tags: tags}, function (err) { + socket.emit('admin.tags.deleteTags', { tags: tags }, function (err) { if (err) { return app.alertError(err.message); } diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js index 75f2ce700a..604af20bbc 100644 --- a/public/src/admin/manage/users.js +++ b/public/src/admin/manage/users.js @@ -327,7 +327,7 @@ define('admin/manage/users', ['translator'], function (translator) { timeoutId = setTimeout(function () { $('.fa-spinner').removeClass('hidden'); - socket.emit('admin.user.search', {searchBy: type, query: $this.val()}, function (err, data) { + socket.emit('admin.user.search', { searchBy: type, query: $this.val() }, function (err, data) { if (err) { return app.alertError(err.message); } diff --git a/public/src/admin/settings/email.js b/public/src/admin/settings/email.js index ab989903d0..4e75c10fb7 100644 --- a/public/src/admin/settings/email.js +++ b/public/src/admin/settings/email.js @@ -17,7 +17,7 @@ define('admin/settings/email', ['admin/settings'], function (settings) { function configureEmailTester() { $('button[data-action="email.test"]').off('click').on('click', function () { - socket.emit('admin.email.test', {template: $('#test-email').val()}, function (err) { + socket.emit('admin.email.test', { template: $('#test-email').val() }, function (err) { if (err) { return app.alertError(err.message); } diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index 7ab91acdbc..3125373d02 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -29,7 +29,7 @@ $(document).ready(function () { }, ev.state.returnPath, config.relative_path + '/' + ev.state.returnPath); } else if (ev.state.url !== undefined) { ajaxify.go(ev.state.url, function () { - $(window).trigger('action:popstate', {url: ev.state.url}); + $(window).trigger('action:popstate', { url: ev.state.url }); }, true); } } @@ -73,7 +73,7 @@ $(document).ready(function () { // If any listeners alter url and set it to an empty string, abort the ajaxification if (url === null) { - $(window).trigger('action:ajaxify.end', {url: url, tpl_url: ajaxify.data.template.name, title: ajaxify.data.title}); + $(window).trigger('action:ajaxify.end', { url: url, tpl_url: ajaxify.data.template.name, title: ajaxify.data.title }); return false; } @@ -196,7 +196,7 @@ $(document).ready(function () { function done() { count -= 1; if (count === 0) { - $(window).trigger('action:ajaxify.end', {url: url, tpl_url: tpl_url, title: ajaxify.data.title}); + $(window).trigger('action:ajaxify.end', { url: url, tpl_url: tpl_url, title: ajaxify.data.title }); } } var count = 2; @@ -205,7 +205,7 @@ $(document).ready(function () { ajaxify.widgets.render(tpl_url, url, done); - $(window).trigger('action:ajaxify.contentLoaded', {url: url, tpl: tpl_url}); + $(window).trigger('action:ajaxify.contentLoaded', { url: url, tpl: tpl_url }); app.processPage(); @@ -284,7 +284,7 @@ $(document).ready(function () { ajaxify.loadData = function (url, callback) { url = ajaxify.removeRelativePath(url); - $(window).trigger('action:ajaxify.loadingData', {url: url}); + $(window).trigger('action:ajaxify.loadingData', { url: url }); apiXHR = $.ajax({ url: RELATIVE_PATH + '/api/' + url, @@ -300,7 +300,7 @@ $(document).ready(function () { ajaxify.data = data; data.config = config; - $(window).trigger('action:ajaxify.dataLoaded', {url: url, data: data}); + $(window).trigger('action:ajaxify.dataLoaded', { url: url, data: data }); callback(null, data); }, diff --git a/public/src/app.js b/public/src/app.js index 48f65ac752..4da97aee00 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -326,7 +326,7 @@ app.cacheBuster = null; if (chat.modalExists(roomId)) { loadAndCenter(chat.getModal(roomId)); } else { - socket.emit('modules.chats.loadRoom', {roomId: roomId, uid: uid || app.user.uid}, function (err, roomData) { + socket.emit('modules.chats.loadRoom', { roomId: roomId, uid: uid || app.user.uid }, function (err, roomData) { if (err) { return app.alertError(err.message); } @@ -350,7 +350,7 @@ app.cacheBuster = null; return app.alertError('[[error:cant-chat-with-yourself]]'); } - socket.emit('modules.chats.newRoom', {touid: touid}, function (err, roomId) { + socket.emit('modules.chats.newRoom', { touid: touid }, function (err, roomId) { if (err) { return app.alertError(err.message); } diff --git a/public/src/client/account/edit.js b/public/src/client/account/edit.js index f70e692f45..ddee32f3f4 100644 --- a/public/src/client/account/edit.js +++ b/public/src/client/account/edit.js @@ -70,7 +70,7 @@ define('forum/account/edit', ['forum/account/header', 'translator', 'components' function handleImageChange() { $('#changePictureBtn').on('click', function () { - socket.emit('user.getProfilePictures', {uid: ajaxify.data.uid}, function (err, pictures) { + socket.emit('user.getProfilePictures', { uid: ajaxify.data.uid }, function (err, pictures) { if (err) { return app.alertError(err.message); } @@ -259,7 +259,7 @@ define('forum/account/edit', ['forum/account/header', 'translator', 'components' }); modal.find('[data-action="remove-uploaded"]').on('click', function () { - socket.emit('user.removeUploadedPicture', {uid: ajaxify.data.theirid}, function (err) { + socket.emit('user.removeUploadedPicture', { uid: ajaxify.data.theirid }, function (err) { modal.modal('hide'); if (err) { return app.alertError(err.message); diff --git a/public/src/client/account/info.js b/public/src/client/account/info.js index 38f3111b83..f366c0a3e7 100644 --- a/public/src/client/account/info.js +++ b/public/src/client/account/info.js @@ -13,7 +13,7 @@ define('forum/account/info', ['forum/account/header', 'components'], function (h function handleModerationNote() { $('[component="account/save-moderation-note"]').on('click', function () { var note = $('[component="account/moderation-note"]').val(); - socket.emit('user.setModerationNote', {uid: ajaxify.data.uid, note: note}, function (err) { + socket.emit('user.setModerationNote', { uid: ajaxify.data.uid, note: note }, function (err) { if (err) { return app.alertError(err.message); } diff --git a/public/src/client/account/posts.js b/public/src/client/account/posts.js index 3430fa3c98..e247905852 100644 --- a/public/src/client/account/posts.js +++ b/public/src/client/account/posts.js @@ -41,7 +41,7 @@ define('forum/account/posts', ['forum/account/header', 'forum/infinitescroll'], } function onPostsLoaded(posts, callback) { - app.parseAndTranslate(template, 'posts', {posts: posts}, function (html) { + app.parseAndTranslate(template, 'posts', { posts: posts }, function (html) { $('[component="posts"]').append(html); html.find('img:not(.not-responsive)').addClass('img-responsive'); html.find('.timeago').timeago(); diff --git a/public/src/client/account/profile.js b/public/src/client/account/profile.js index 9713b57122..9f57454e00 100644 --- a/public/src/client/account/profile.js +++ b/public/src/client/account/profile.js @@ -69,7 +69,7 @@ define('forum/account/profile', [ return callback(); } - app.parseAndTranslate('account/profile', 'posts', {posts: posts}, function (html) { + app.parseAndTranslate('account/profile', 'posts', { posts: posts }, function (html) { $('[component="posts"]').append(html); html.find('.timeago').timeago(); diff --git a/public/src/client/account/settings.js b/public/src/client/account/settings.js index fe3808ccd8..5a853e0da0 100644 --- a/public/src/client/account/settings.js +++ b/public/src/client/account/settings.js @@ -70,7 +70,7 @@ define('forum/account/settings', ['forum/account/header', 'components', 'sounds' } function saveSettings(settings) { - socket.emit('user.saveSettings', {uid: ajaxify.data.theirid, settings: settings}, function (err, newSettings) { + socket.emit('user.saveSettings', { uid: ajaxify.data.theirid, settings: settings }, function (err, newSettings) { if (err) { return app.alertError(err.message); } diff --git a/public/src/client/account/topics.js b/public/src/client/account/topics.js index 83bd4ef557..bdd7626902 100644 --- a/public/src/client/account/topics.js +++ b/public/src/client/account/topics.js @@ -41,12 +41,12 @@ define('forum/account/topics', ['forum/account/header', 'forum/infinitescroll'], } function onTopicsLoaded(topics, callback) { - app.parseAndTranslate('account/topics', 'topics', {topics: topics}, function (html) { + app.parseAndTranslate('account/topics', 'topics', { topics: topics }, function (html) { $('[component="category"]').append(html); html.find('.timeago').timeago(); app.createUserTooltips(); utils.makeNumbersHumanReadable(html.find('.human-readable-number')); - $(window).trigger('action:topics.loaded', {topics: topics}); + $(window).trigger('action:topics.loaded', { topics: topics }); callback(); }); } diff --git a/public/src/client/categories.js b/public/src/client/categories.js index 40f93b0dc6..30b22d5260 100644 --- a/public/src/client/categories.js +++ b/public/src/client/categories.js @@ -54,12 +54,12 @@ define('forum/categories', ['components', 'translator'], function (components, t recentPosts.last().remove(); } - $(window).trigger('action:posts.loaded', {posts: [post]}); + $(window).trigger('action:posts.loaded', { posts: [post] }); }); } function parseAndTranslate(posts, callback) { - templates.parse('categories', '(categories.)?posts', {categories: {posts: posts}}, function (html) { + templates.parse('categories', '(categories.)?posts', { categories: { posts: posts } }, function (html) { translator.translate(html, function (translatedHTML) { translatedHTML = $(translatedHTML); translatedHTML.find('.post-content img:not(.not-responsive)').addClass('img-responsive'); diff --git a/public/src/client/category.js b/public/src/client/category.js index af4f6dba8c..5b51c2249a 100644 --- a/public/src/client/category.js +++ b/public/src/client/category.js @@ -62,8 +62,8 @@ define('forum/category', [ handleIgnoreWatch(cid); - $(window).trigger('action:topics.loaded', {topics: ajaxify.data.topics}); - $(window).trigger('action:category.loaded', {cid: ajaxify.data.cid}); + $(window).trigger('action:topics.loaded', { topics: ajaxify.data.topics }); + $(window).trigger('action:category.loaded', { cid: ajaxify.data.cid }); }; function handleScrollToTopicIndex() { @@ -204,10 +204,10 @@ define('forum/category', [ var editable = !!$('.thread-tools').length; templates.parse('category', 'topics', { - privileges: {editable: editable}, + privileges: { editable: editable }, showSelect: editable, topics: [topic], - template: {category: true}, + template: { category: true }, }, function (html) { translator.translate(html, function (translatedHTML) { var topic = $(translatedHTML); @@ -354,7 +354,7 @@ define('forum/category', [ app.createUserTooltips(); utils.makeNumbersHumanReadable(html.find('.human-readable-number')); - $(window).trigger('action:topics.loaded', {topics: data.topics}); + $(window).trigger('action:topics.loaded', { topics: data.topics }); callback(); }); diff --git a/public/src/client/category/tools.js b/public/src/client/category/tools.js index 0f8c009e06..0f0dc7b77d 100644 --- a/public/src/client/category/tools.js +++ b/public/src/client/category/tools.js @@ -35,7 +35,7 @@ define('forum/category/tools', [ components.get('topic/lock').on('click', function () { var tids = topicSelect.getSelectedTids(); if (tids.length) { - socket.emit('topics.lock', {tids: tids, cid: CategoryTools.cid}, onCommandComplete); + socket.emit('topics.lock', { tids: tids, cid: CategoryTools.cid }, onCommandComplete); } return false; }); @@ -43,7 +43,7 @@ define('forum/category/tools', [ components.get('topic/unlock').on('click', function () { var tids = topicSelect.getSelectedTids(); if (tids.length) { - socket.emit('topics.unlock', {tids: tids, cid: CategoryTools.cid}, onCommandComplete); + socket.emit('topics.unlock', { tids: tids, cid: CategoryTools.cid }, onCommandComplete); } return false; }); @@ -51,7 +51,7 @@ define('forum/category/tools', [ components.get('topic/pin').on('click', function () { var tids = topicSelect.getSelectedTids(); if (tids.length) { - socket.emit('topics.pin', {tids: tids, cid: CategoryTools.cid}, onCommandComplete); + socket.emit('topics.pin', { tids: tids, cid: CategoryTools.cid }, onCommandComplete); } return false; }); @@ -59,7 +59,7 @@ define('forum/category/tools', [ components.get('topic/unpin').on('click', function () { var tids = topicSelect.getSelectedTids(); if (tids.length) { - socket.emit('topics.unpin', {tids: tids, cid: CategoryTools.cid}, onCommandComplete); + socket.emit('topics.unpin', { tids: tids, cid: CategoryTools.cid }, onCommandComplete); } return false; }); @@ -123,7 +123,7 @@ define('forum/category/tools', [ return; } - socket.emit('topics.' + command, {tids: tids, cid: CategoryTools.cid}, onDeletePurgeComplete); + socket.emit('topics.' + command, { tids: tids, cid: CategoryTools.cid }, onDeletePurgeComplete); }); }); } @@ -250,7 +250,7 @@ define('forum/category/tools', [ var pinnedTopics = $('[component="category/topic"].pinned'); pinnedTopics.each(function (index, element) { - data.push({tid: $(element).attr('data-tid'), order: pinnedTopics.length - index - 1}); + data.push({ tid: $(element).attr('data-tid'), order: pinnedTopics.length - index - 1 }); }); socket.emit('topics.orderPinnedTopics', data, function (err) { diff --git a/public/src/client/chats.js b/public/src/client/chats.js index 4879485993..4f212b3f77 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -98,7 +98,7 @@ define('forum/chats', [ } loading = true; var start = parseInt($('.chat-content').children('[data-index]').first().attr('data-index'), 10) + 1; - socket.emit('modules.chats.getMessages', {roomId: roomId, uid: uid, start: start}, function (err, data) { + socket.emit('modules.chats.getMessages', { roomId: roomId, uid: uid, start: start }, function (err, data) { if (err) { return app.alertError(err.message); } @@ -170,7 +170,7 @@ define('forum/chats', [ if (oldName === newName) { return; } - socket.emit('modules.chats.renameRoom', {roomId: roomId, newName: newName}, function (err) { + socket.emit('modules.chats.renameRoom', { roomId: roomId, newName: newName }, function (err) { if (err) { return app.alertError(err.message); } @@ -235,10 +235,10 @@ define('forum/chats', [ if (event.item === app.user.username) { return; } - socket.emit('modules.chats.addUserToRoom', {roomId: data.roomId, username: event.item}, function (err) { + socket.emit('modules.chats.addUserToRoom', { roomId: data.roomId, username: event.item }, function (err) { if (err) { app.alertError(err.message); - tagEl.tagsinput('remove', event.item, {nouser: true}); + tagEl.tagsinput('remove', event.item, { nouser: true }); } }); }); @@ -262,7 +262,7 @@ define('forum/chats', [ if (event.options && event.options.nouser) { return; } - socket.emit('modules.chats.removeUserFromRoom', {roomId: data.roomId, username: event.item}, function (err) { + socket.emit('modules.chats.removeUserFromRoom', { roomId: data.roomId, username: event.item }, function (err) { if (err) { return app.alertError(err.message); } diff --git a/public/src/client/groups/memberlist.js b/public/src/client/groups/memberlist.js index 6ab83ccbbc..a5231817b3 100644 --- a/public/src/client/groups/memberlist.js +++ b/public/src/client/groups/memberlist.js @@ -22,7 +22,7 @@ define('forum/groups/memberlist', ['components', 'forum/infinitescroll'], functi } searchInterval = setTimeout(function () { - socket.emit('groups.searchMembers', {groupName: groupName, query: query}, function (err, results) { + socket.emit('groups.searchMembers', { groupName: groupName, query: query }, function (err, results) { if (err) { return app.alertError(err.message); } diff --git a/public/src/client/infinitescroll.js b/public/src/client/infinitescroll.js index 208448d8a5..e2b52548aa 100644 --- a/public/src/client/infinitescroll.js +++ b/public/src/client/infinitescroll.js @@ -54,7 +54,7 @@ define('forum/infinitescroll', function () { } loadingMore = true; - var hookData = {method: method, data: data}; + var hookData = { method: method, data: data }; $(window).trigger('action:infinitescroll.loadmore', hookData); socket.emit(hookData.method, hookData.data, function (err, data) { diff --git a/public/src/client/notifications.js b/public/src/client/notifications.js index 97760b0e0f..fb61a53063 100644 --- a/public/src/client/notifications.js +++ b/public/src/client/notifications.js @@ -54,7 +54,7 @@ define('forum/notifications', ['components', 'notifications', 'forum/infinitescr if (!data.notifications || !data.notifications.length) { return done(); } - app.parseAndTranslate('notifications', 'notifications', {notifications: data.notifications}, function (html) { + app.parseAndTranslate('notifications', 'notifications', { notifications: data.notifications }, function (html) { notifList.append(html); html.find('.timeago').timeago(); done(); diff --git a/public/src/client/recent.js b/public/src/client/recent.js index 4acb4905ba..981baabd12 100644 --- a/public/src/client/recent.js +++ b/public/src/client/recent.js @@ -26,7 +26,7 @@ define('forum/recent', ['forum/infinitescroll', 'components'], function (infinit infinitescroll.init(Recent.loadMoreTopics); } - $(window).trigger('action:topics.loaded', {topics: ajaxify.data.topics}); + $(window).trigger('action:topics.loaded', { topics: ajaxify.data.topics }); }; Recent.watchForNewPosts = function () { @@ -154,14 +154,14 @@ define('forum/recent', ['forum/infinitescroll', 'components'], function (infinit return callback(); } - app.parseAndTranslate(templateName, 'topics', {topics: topics, showSelect: showSelect}, function (html) { + app.parseAndTranslate(templateName, 'topics', { topics: topics, showSelect: showSelect }, function (html) { $('#category-no-topics').remove(); $('[component="category"]').append(html); html.find('.timeago').timeago(); app.createUserTooltips(); utils.makeNumbersHumanReadable(html.find('.human-readable-number')); - $(window).trigger('action:topics.loaded', {topics: topics}); + $(window).trigger('action:topics.loaded', { topics: topics }); callback(); }); }; diff --git a/public/src/client/tags.js b/public/src/client/tags.js index fb57d4d553..9e1fec98b2 100644 --- a/public/src/client/tags.js +++ b/public/src/client/tags.js @@ -19,7 +19,7 @@ define('forum/tags', ['forum/infinitescroll'], function (infinitescroll) { } timeoutId = setTimeout(function () { - socket.emit('topics.searchAndLoadTags', {query: $('#tag-search').val()}, function (err, results) { + socket.emit('topics.searchAndLoadTags', { query: $('#tag-search').val() }, function (err, results) { if (err) { return app.alertError(err.message); } @@ -63,7 +63,7 @@ define('forum/tags', ['forum/infinitescroll'], function (infinitescroll) { function onTagsLoaded(tags, replace, callback) { callback = callback || function () {}; - app.parseAndTranslate('tags', 'tags', {tags: tags}, function (html) { + app.parseAndTranslate('tags', 'tags', { tags: tags }, function (html) { $('.tag-list')[replace ? 'html' : 'append'](html); utils.makeNumbersHumanReadable(html.find('.human-readable-number')); callback(); diff --git a/public/src/client/topic/events.js b/public/src/client/topic/events.js index d87aac6f75..f3e2d925c6 100644 --- a/public/src/client/topic/events.js +++ b/public/src/client/topic/events.js @@ -111,7 +111,7 @@ define('forum/topic/events', [ if (topicTitle.length && data.topic.title && topicTitle.html() !== data.topic.title) { ajaxify.data.title = data.topic.title; var newUrl = 'topic/' + data.topic.slug + (window.location.search ? window.location.search : ''); - history.replaceState({url: newUrl}, null, window.location.protocol + '//' + window.location.host + config.relative_path + '/' + newUrl); + history.replaceState({ url: newUrl }, null, window.location.protocol + '//' + window.location.host + config.relative_path + '/' + newUrl); topicTitle.fadeOut(250, function () { topicTitle.html(data.topic.title).fadeIn(250); @@ -149,7 +149,7 @@ define('forum/topic/events', [ }); if (data.topic.tags && tagsUpdated(data.topic.tags)) { - templates.parse('partials/post_bar', 'tags', {tags: data.topic.tags}, function (html) { + templates.parse('partials/post_bar', 'tags', { tags: data.topic.tags }, function (html) { var tags = $('.tags'); tags.fadeOut(250, function () { diff --git a/public/src/client/topic/flag.js b/public/src/client/topic/flag.js index c9904d3011..1d1c68a8c3 100644 --- a/public/src/client/topic/flag.js +++ b/public/src/client/topic/flag.js @@ -46,7 +46,7 @@ define('forum/topic/flag', [], function () { if (!pid || !reason) { return; } - socket.emit('posts.flag', {pid: pid, reason: reason}, function (err) { + socket.emit('posts.flag', { pid: pid, reason: reason }, function (err) { if (err) { return app.alertError(err.message); } diff --git a/public/src/client/topic/move-post.js b/public/src/client/topic/move-post.js index 3c848be9ff..bd9d542ead 100644 --- a/public/src/client/topic/move-post.js +++ b/public/src/client/topic/move-post.js @@ -44,7 +44,7 @@ define('forum/topic/move-post', [], function () { } function movePost(post, pid, tid, callback) { - socket.emit('posts.movePost', {pid: pid, tid: tid}, function (err) { + socket.emit('posts.movePost', { pid: pid, tid: tid }, function (err) { if (err) { app.alertError(err.message); return callback(); diff --git a/public/src/client/topic/move.js b/public/src/client/topic/move.js index 4d038637ca..1b5b3b6c8a 100644 --- a/public/src/client/topic/move.js +++ b/public/src/client/topic/move.js @@ -42,7 +42,7 @@ define('forum/topic/move', function () { } function parseModal(categories, callback) { - templates.parse('partials/move_thread_modal', {categories: []}, function (html) { + templates.parse('partials/move_thread_modal', { categories: [] }, function (html) { require(['translator'], function (translator) { translator.translate(html, function (html) { modal = $(html); diff --git a/public/src/client/topic/postTools.js b/public/src/client/topic/postTools.js index 206ebe0e6a..5753380171 100644 --- a/public/src/client/topic/postTools.js +++ b/public/src/client/topic/postTools.js @@ -38,7 +38,7 @@ define('forum/topic/postTools', [ var pid = postEl.attr('data-pid'); var index = parseInt(postEl.attr('data-index'), 10); - socket.emit('posts.loadPostTools', {pid: pid, cid: ajaxify.data.cid}, function (err, data) { + socket.emit('posts.loadPostTools', { pid: pid, cid: ajaxify.data.cid }, function (err, data) { if (err) { return app.alertError(err.message); } @@ -286,7 +286,7 @@ define('forum/topic/postTools', [ username = getUserName($(content)); range.detach(); } - return {text: selectedText, pid: selectedPid, username: username}; + return { text: selectedText, pid: selectedPid, username: username }; } function bookmarkPost(button, pid) { diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js index 88fe8af9b9..eaaf4894ce 100644 --- a/public/src/client/topic/posts.js +++ b/public/src/client/topic/posts.js @@ -87,8 +87,8 @@ define('forum/topic/posts', [ } function updatePagination() { - $.get(config.relative_path + '/api/topic/pagination/' + ajaxify.data.tid, {page: ajaxify.data.pagination.currentPage}, function (paginationData) { - app.parseAndTranslate('partials/paginator', {pagination: paginationData}, function (html) { + $.get(config.relative_path + '/api/topic/pagination/' + ajaxify.data.tid, { page: ajaxify.data.pagination.currentPage }, function (paginationData) { + app.parseAndTranslate('partials/paginator', { pagination: paginationData }, function (html) { $('[component="pagination"]').after(html).remove(); }); }); @@ -174,7 +174,7 @@ define('forum/topic/posts', [ data.slug = ajaxify.data.slug; - $(window).trigger('action:posts.loading', {posts: data.posts, after: after, before: before}); + $(window).trigger('action:posts.loading', { posts: data.posts, after: after, before: before }); app.parseAndTranslate('topic', 'posts', data, function (html) { html = html.filter(function () { @@ -199,7 +199,7 @@ define('forum/topic/posts', [ infinitescroll.removeExtra($('[component="post"]'), direction, 40); - $(window).trigger('action:posts.loaded', {posts: data.posts}); + $(window).trigger('action:posts.loaded', { posts: data.posts }); Posts.processPage(html); diff --git a/public/src/client/topic/replies.js b/public/src/client/topic/replies.js index 3d2f0f72af..3156d44b63 100644 --- a/public/src/client/topic/replies.js +++ b/public/src/client/topic/replies.js @@ -46,9 +46,9 @@ define('forum/topic/replies', ['navigator', 'components', 'forum/topic/posts'], hideReplies: true, }; app.parseAndTranslate('topic', 'posts', tplData, function (html) { - $('
    ', {component: 'post/replies'}).html(html).hide().insertAfter(button).slideDown('fast'); + $('
    ', { component: 'post/replies' }).html(html).hide().insertAfter(button).slideDown('fast'); posts.processPage(html); - $(window).trigger('action:posts.loaded', {posts: data}); + $(window).trigger('action:posts.loaded', { posts: data }); }); }); } else if (close.is(':not(.hidden)')) { diff --git a/public/src/client/topic/threadTools.js b/public/src/client/topic/threadTools.js index ad5a262222..70065678f0 100644 --- a/public/src/client/topic/threadTools.js +++ b/public/src/client/topic/threadTools.js @@ -31,22 +31,22 @@ define('forum/topic/threadTools', [ }); topicContainer.on('click', '[component="topic/lock"]', function () { - socket.emit('topics.lock', {tids: [tid], cid: ajaxify.data.cid}); + socket.emit('topics.lock', { tids: [tid], cid: ajaxify.data.cid }); return false; }); topicContainer.on('click', '[component="topic/unlock"]', function () { - socket.emit('topics.unlock', {tids: [tid], cid: ajaxify.data.cid}); + socket.emit('topics.unlock', { tids: [tid], cid: ajaxify.data.cid }); return false; }); topicContainer.on('click', '[component="topic/pin"]', function () { - socket.emit('topics.pin', {tids: [tid], cid: ajaxify.data.cid}); + socket.emit('topics.pin', { tids: [tid], cid: ajaxify.data.cid }); return false; }); topicContainer.on('click', '[component="topic/unpin"]', function () { - socket.emit('topics.unpin', {tids: [tid], cid: ajaxify.data.cid}); + socket.emit('topics.unpin', { tids: [tid], cid: ajaxify.data.cid }); return false; }); @@ -91,7 +91,7 @@ define('forum/topic/threadTools', [ }); function changeWatching(type) { - socket.emit('topics.changeWatching', {tid: tid, type: type}, function (err) { + socket.emit('topics.changeWatching', { tid: tid, type: type }, function (err) { if (err) { return app.alert({ type: 'danger', @@ -118,7 +118,7 @@ define('forum/topic/threadTools', [ timeout: 5000, }); - $(window).trigger('action:topics.changeWatching', {tid: tid, type: type}); + $(window).trigger('action:topics.changeWatching', { tid: tid, type: type }); }); return false; @@ -133,7 +133,7 @@ define('forum/topic/threadTools', [ return; } - socket.emit('topics.loadTopicTools', {tid: ajaxify.data.tid, cid: ajaxify.data.cid}, function (err, data) { + socket.emit('topics.loadTopicTools', { tid: ajaxify.data.tid, cid: ajaxify.data.cid }, function (err, data) { if (err) { return app.alertError(err); } @@ -155,7 +155,7 @@ define('forum/topic/threadTools', [ return; } - socket.emit('topics.' + command, {tids: [tid], cid: ajaxify.data.cid}, function (err) { + socket.emit('topics.' + command, { tids: [tid], cid: ajaxify.data.cid }, function (err) { if (err) { app.alertError(err.message); } diff --git a/public/src/client/topic/votes.js b/public/src/client/topic/votes.js index 824cfeb2a1..d152d9f4a0 100644 --- a/public/src/client/topic/votes.js +++ b/public/src/client/topic/votes.js @@ -82,7 +82,7 @@ define('forum/topic/votes', ['components', 'translator'], function (components, }; Votes.showVotes = function (pid) { - socket.emit('posts.getVoters', {pid: pid, cid: ajaxify.data.cid}, function (err, data) { + socket.emit('posts.getVoters', { pid: pid, cid: ajaxify.data.cid }, function (err, data) { if (err) { if (err.message === '[[error:no-privileges]]') { return; diff --git a/public/src/client/unread.js b/public/src/client/unread.js index 4c1c65b7f1..f5b1dd73ed 100644 --- a/public/src/client/unread.js +++ b/public/src/client/unread.js @@ -19,7 +19,7 @@ define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', ' recent.watchForNewPosts(); - $(window).trigger('action:topics.loaded', {topics: ajaxify.data.topics}); + $(window).trigger('action:topics.loaded', { topics: ajaxify.data.topics }); $('#markSelectedRead').on('click', function () { var tids = topicSelect.getSelectedTids(); diff --git a/public/src/client/users.js b/public/src/client/users.js index 0074af2e8f..ab9ed7f5c5 100644 --- a/public/src/client/users.js +++ b/public/src/client/users.js @@ -98,7 +98,7 @@ define('forum/users', ['translator'], function (translator) { } function renderSearchResults(data) { - templates.parse('partials/paginator', {pagination: data.pagination}, function (html) { + templates.parse('partials/paginator', { pagination: data.pagination }, function (html) { $('.pagination-container').replaceWith(html); }); diff --git a/public/src/installer/install.js b/public/src/installer/install.js index 55661cd1b6..4dddbf9360 100644 --- a/public/src/installer/install.js +++ b/public/src/installer/install.js @@ -42,7 +42,7 @@ $('document').ready(function () { if ($('form .admin .error').length) { ev.preventDefault(); - $('html, body').animate({scrollTop: '0px'}, 400); + $('html, body').animate({ scrollTop: '0px' }, 400); return false; } else { diff --git a/public/src/modules/autocomplete.js b/public/src/modules/autocomplete.js index 3635932630..68cabdb45b 100644 --- a/public/src/modules/autocomplete.js +++ b/public/src/modules/autocomplete.js @@ -14,7 +14,7 @@ define('autocomplete', function () { }, select: onselect, source: function (request, response) { - socket.emit('user.search', {query: request.term}, function (err, result) { + socket.emit('user.search', { query: request.term }, function (err, result) { if (err) { return app.alertError(err.message); } diff --git a/public/src/modules/chat.js b/public/src/modules/chat.js index 8b493ff111..38591ac996 100644 --- a/public/src/modules/chat.js +++ b/public/src/modules/chat.js @@ -75,7 +75,7 @@ define('chat', [ }); } } else { - socket.emit('modules.chats.loadRoom', {roomId: data.roomId}, function (err, roomData) { + socket.emit('modules.chats.loadRoom', { roomId: data.roomId }, function (err, roomData) { if (err) { return app.alertError(err.message); } @@ -108,7 +108,7 @@ define('chat', [ }; module.loadChatsDropdown = function (chatsListEl) { - socket.emit('modules.chats.getRecentChats', {uid: app.user.uid, after: 0}, function (err, data) { + socket.emit('modules.chats.getRecentChats', { uid: app.user.uid, after: 0 }, function (err, data) { if (err) { return app.alertError(err.message); } diff --git a/public/src/modules/notifications.js b/public/src/modules/notifications.js index 4bd786bb19..22198c0db7 100644 --- a/public/src/modules/notifications.js +++ b/public/src/modules/notifications.js @@ -130,7 +130,7 @@ define('notifications', ['sounds', 'translator', 'components'], function (sound, } translator.toggleTimeagoShorthand(); - templates.parse('partials/notifications_list', {notifications: notifs}, function (html) { + templates.parse('partials/notifications_list', { notifications: notifs }, function (html) { notifList.translateHtml(html); }); }); diff --git a/public/src/modules/pictureCropper.js b/public/src/modules/pictureCropper.js index c5b8e155df..6f23edbef1 100644 --- a/public/src/modules/pictureCropper.js +++ b/public/src/modules/pictureCropper.js @@ -32,7 +32,7 @@ define('pictureCropper', ['translator', 'cropper'], function (translator, croppe module.handleImageCrop = function (data, callback) { $('#crop-picture-modal').remove(); - templates.parse('modals/crop_picture', {url: data.url}, function (cropperHtml) { + templates.parse('modals/crop_picture', { url: data.url }, function (cropperHtml) { translator.translate(cropperHtml, function (translated) { var cropperModal = $(translated); cropperModal.modal('show'); diff --git a/public/src/modules/share.js b/public/src/modules/share.js index f9d81a9690..fe45f26d0f 100644 --- a/public/src/modules/share.js +++ b/public/src/modules/share.js @@ -39,7 +39,7 @@ define('share', function () { return openShare('https://plus.google.com/share?url=', getPostUrl($(this)), 500, 570); }); - $(window).trigger('action:share.addHandlers', {openShare: openShare}); + $(window).trigger('action:share.addHandlers', { openShare: openShare }); }; function addHandler(selector, callback) { diff --git a/public/src/modules/uploader.js b/public/src/modules/uploader.js index e986065ed5..1b56dbb4b8 100644 --- a/public/src/modules/uploader.js +++ b/public/src/modules/uploader.js @@ -112,7 +112,7 @@ define('uploader', ['translator'], function (translator) { try { return $.parseJSON(response); } catch (e) { - return {error: '[[error:parse-error]]'}; + return { error: '[[error:parse-error]]' }; } } return response; diff --git a/public/src/overrides.js b/public/src/overrides.js index 27ba05c74b..262b6bcb02 100644 --- a/public/src/overrides.js +++ b/public/src/overrides.js @@ -84,7 +84,7 @@ if ('undefined' !== typeof window) { }); } }); - }(jQuery || {fn: {}})); + }(jQuery || { fn: {} })); (function () { // FIX FOR #1245 - https://github.com/NodeBB/NodeBB/issues/1245 diff --git a/src/analytics.js b/src/analytics.js index d0c4dd5b25..6a733b1a5f 100644 --- a/src/analytics.js +++ b/src/analytics.js @@ -178,7 +178,7 @@ Analytics.getMonthlyPageViews = function (callback) { if (err) { return callback(err); } - callback(null, {thisMonth: scores[0] || 0, lastMonth: scores[1] || 0}); + callback(null, { thisMonth: scores[0] || 0, lastMonth: scores[1] || 0 }); }); }; diff --git a/src/categories.js b/src/categories.js index 1297c0fc65..815049ad4c 100644 --- a/src/categories.js +++ b/src/categories.js @@ -57,7 +57,7 @@ var privileges = require('./privileges'); category.isIgnored = results.isIgnored[0]; category.topic_count = results.topicCount; - plugins.fireHook('filter:category.get', {category: category, uid: data.uid}, next); + plugins.fireHook('filter:category.get', { category: category, uid: data.uid }, next); }, function (data, next) { next(null, data.category); @@ -229,7 +229,7 @@ var privileges = require('./privileges'); Categories.getChildren = function (cids, uid, callback) { var categories = cids.map(function (cid) { - return {cid: cid}; + return { cid: cid }; }); async.each(categories, function (category, next) { diff --git a/src/categories/create.js b/src/categories/create.js index 5be36db37b..7be163bd5b 100644 --- a/src/categories/create.js +++ b/src/categories/create.js @@ -43,7 +43,7 @@ module.exports = function (Categories) { imageClass: 'cover', }; - plugins.fireHook('filter:category.create', {category: category, data: data}, next); + plugins.fireHook('filter:category.create', { category: category, data: data }, next); }, function (data, next) { category = data.category; diff --git a/src/categories/delete.js b/src/categories/delete.js index 58dcbcee41..4aad25846f 100644 --- a/src/categories/delete.js +++ b/src/categories/delete.js @@ -16,7 +16,7 @@ module.exports = function (Categories) { async.eachLimit(tids, 10, function (tid, next) { topics.purgePostsAndTopic(tid, uid, next); }, next); - }, {alwaysStartAt: 0}, next); + }, { alwaysStartAt: 0 }, next); }, function (next) { Categories.getPinnedTids('cid:' + cid + ':tids:pinned', 0, -1, next); diff --git a/src/categories/recentreplies.js b/src/categories/recentreplies.js index 4570a177fe..fa5a6cab7f 100644 --- a/src/categories/recentreplies.js +++ b/src/categories/recentreplies.js @@ -27,7 +27,7 @@ module.exports = function (Categories) { privileges.posts.filter('read', pids, uid, next); }, function (pids, next) { - posts.getPostSummaryByPids(pids, uid, {stripTags: true}, next); + posts.getPostSummaryByPids(pids, uid, { stripTags: true }, next); }, ], callback); }; diff --git a/src/categories/topics.js b/src/categories/topics.js index 4be2298b08..ea719651fb 100644 --- a/src/categories/topics.js +++ b/src/categories/topics.js @@ -20,17 +20,17 @@ module.exports = function (Categories) { }, function (topics, next) { if (!Array.isArray(topics) || !topics.length) { - return next(null, {topics: [], uid: data.uid}); + return next(null, { topics: [], uid: data.uid }); } for (var i = 0; i < topics.length; i += 1) { topics[i].index = data.start + i; } - plugins.fireHook('filter:category.topics.get', {cid: data.cid, topics: topics, uid: data.uid}, next); + plugins.fireHook('filter:category.topics.get', { cid: data.cid, topics: topics, uid: data.uid }, next); }, function (results, next) { - next(null, {topics: results.topics, nextStart: data.stop + 1}); + next(null, { topics: results.topics, nextStart: data.stop + 1 }); }, ], callback); }; @@ -64,7 +64,7 @@ module.exports = function (Categories) { stop = stop === -1 ? stop : start + normalTidsToGet - 1; if (Array.isArray(set)) { - db[reverse ? 'getSortedSetRevIntersect' : 'getSortedSetIntersect']({sets: set, start: start, stop: stop}, next); + db[reverse ? 'getSortedSetRevIntersect' : 'getSortedSetIntersect']({ sets: set, start: start, stop: stop }, next); } else { db[reverse ? 'getSortedSetRevRange' : 'getSortedSetRange'](set, start, stop, next); } diff --git a/src/categories/update.js b/src/categories/update.js index 1dc588405b..04bf0e2235 100644 --- a/src/categories/update.js +++ b/src/categories/update.js @@ -41,7 +41,7 @@ module.exports = function (Categories) { } }, function (next) { - plugins.fireHook('filter:category.update', {category: modifiedFields}, next); + plugins.fireHook('filter:category.update', { category: modifiedFields }, next); }, function (categoryData, next) { category = categoryData.category; @@ -57,7 +57,7 @@ module.exports = function (Categories) { }, next); }, function (next) { - plugins.fireHook('action:category.update', {cid: cid, modified: category}); + plugins.fireHook('action:category.update', { cid: cid, modified: category }); next(); }, ], callback); diff --git a/src/controllers/accounts/chats.js b/src/controllers/accounts/chats.js index d085ea1d4a..8ffac0a4dc 100644 --- a/src/controllers/accounts/chats.js +++ b/src/controllers/accounts/chats.js @@ -45,7 +45,7 @@ chatsController.get = function (req, res, callback) { nextStart: recentChats.nextStart, allowed: true, title: '[[pages:chats]]', - breadcrumbs: helpers.buildBreadcrumbs([{text: username, url: '/user/' + req.params.userslug}, {text: '[[pages:chats]]'}]), + breadcrumbs: helpers.buildBreadcrumbs([{ text: username, url: '/user/' + req.params.userslug }, { text: '[[pages:chats]]' }]), }); } messaging.isUserInRoom(req.uid, req.params.roomid, next); @@ -87,9 +87,9 @@ chatsController.get = function (req, res, callback) { room.usernames = messaging.generateUsernames(room.users, req.uid); room.title = room.roomName || room.usernames || '[[pages:chats]]'; room.breadcrumbs = helpers.buildBreadcrumbs([ - {text: username, url: '/user/' + req.params.userslug}, - {text: '[[pages:chats]]', url: '/user/' + req.params.userslug + '/chats'}, - {text: room.roomName || room.usernames || '[[pages:chats]]'}, + { text: username, url: '/user/' + req.params.userslug }, + { text: '[[pages:chats]]', url: '/user/' + req.params.userslug + '/chats' }, + { text: room.roomName || room.usernames || '[[pages:chats]]' }, ]); room.maximumUsersInChatRoom = parseInt(meta.config.maximumUsersInChatRoom, 10) || 0; room.maximumChatMessageLength = parseInt(meta.config.maximumChatMessageLength, 10) || 1000; diff --git a/src/controllers/accounts/edit.js b/src/controllers/accounts/edit.js index 3a5fabf5d3..740980ae8e 100644 --- a/src/controllers/accounts/edit.js +++ b/src/controllers/accounts/edit.js @@ -36,7 +36,7 @@ editController.get = function (req, res, callback) { }); userData.title = '[[pages:account/edit, ' + userData.username + ']]'; - userData.breadcrumbs = helpers.buildBreadcrumbs([{text: userData.username, url: '/user/' + userData.userslug}, {text: '[[user:edit]]'}]); + userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username, url: '/user/' + userData.userslug }, { text: '[[user:edit]]' }]); userData.editButtons = []; plugins.fireHook('filter:user.account.edit', userData, function (err, userData) { @@ -76,9 +76,9 @@ function renderRoute(name, req, res, next) { userData.title = '[[pages:account/edit/' + name + ', ' + userData.username + ']]'; userData.breadcrumbs = helpers.buildBreadcrumbs([ - {text: userData.username, url: '/user/' + userData.userslug}, - {text: '[[user:edit]]', url: '/user/' + userData.userslug + '/edit'}, - {text: '[[user:' + name + ']]'}, + { text: userData.username, url: '/user/' + userData.userslug }, + { text: '[[user:edit]]', url: '/user/' + userData.userslug + '/edit' }, + { text: '[[user:' + name + ']]' }, ]); res.render('account/edit/' + name, userData); @@ -139,7 +139,7 @@ editController.uploadPicture = function (req, res, next) { return next(err); } - res.json([{name: userPhoto.name, url: image.url.startsWith('http') ? image.url : nconf.get('relative_path') + image.url}]); + res.json([{ name: userPhoto.name, url: image.url.startsWith('http') ? image.url : nconf.get('relative_path') + image.url }]); }); }; diff --git a/src/controllers/accounts/follow.js b/src/controllers/accounts/follow.js index 7cc3e1895b..eac274136d 100644 --- a/src/controllers/accounts/follow.js +++ b/src/controllers/accounts/follow.js @@ -47,7 +47,7 @@ function getFollow(tpl, name, req, res, callback) { var count = name === 'following' ? userData.followingCount : userData.followerCount; var pageCount = Math.ceil(count / resultsPerPage); userData.pagination = pagination.create(page, pageCount); - userData.breadcrumbs = helpers.buildBreadcrumbs([{text: userData.username, url: '/user/' + userData.userslug}, {text: '[[user:' + name + ']]'}]); + userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username, url: '/user/' + userData.userslug }, { text: '[[user:' + name + ']]' }]); res.render(tpl, userData); }); diff --git a/src/controllers/accounts/groups.js b/src/controllers/accounts/groups.js index fc81b1173a..650c510fc9 100644 --- a/src/controllers/accounts/groups.js +++ b/src/controllers/accounts/groups.js @@ -46,7 +46,7 @@ groupsController.get = function (req, res, callback) { userData.groups = groupsData; userData.title = '[[pages:account/groups, ' + userData.username + ']]'; - userData.breadcrumbs = helpers.buildBreadcrumbs([{text: userData.username, url: '/user/' + userData.userslug}, {text: '[[global:header.groups]]'}]); + userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username, url: '/user/' + userData.userslug }, { text: '[[global:header.groups]]' }]); res.render('account/groups', userData); }); }; diff --git a/src/controllers/accounts/helpers.js b/src/controllers/accounts/helpers.js index b4a2af17af..1ee9a08678 100644 --- a/src/controllers/accounts/helpers.js +++ b/src/controllers/accounts/helpers.js @@ -52,13 +52,13 @@ helpers.getUserDataByUserSlug = function (userslug, callerUID, callback) { plugins.fireHook('filter:user.profileLinks', [], next); }, profile_menu: function (next) { - plugins.fireHook('filter:user.profileMenu', {uid: uid, callerUID: callerUID, links: []}, next); + plugins.fireHook('filter:user.profileMenu', { uid: uid, callerUID: callerUID, links: [] }, next); }, groups: function (next) { groups.getUserGroups([uid], next); }, sso: function (next) { - plugins.fireHook('filter:auth.list', {uid: uid, associations: []}, next); + plugins.fireHook('filter:auth.list', { uid: uid, associations: [] }, next); }, }, next); }, diff --git a/src/controllers/accounts/info.js b/src/controllers/accounts/info.js index 9df74b1380..e852ebc3df 100644 --- a/src/controllers/accounts/info.js +++ b/src/controllers/accounts/info.js @@ -36,7 +36,7 @@ infoController.get = function (req, res, callback) { userData.usernames = data.usernames; userData.emails = data.emails; userData.title = '[[pages:account/info]]'; - userData.breadcrumbs = helpers.buildBreadcrumbs([{text: userData.username, url: '/user/' + userData.userslug}, {text: '[[user:account_info]]'}]); + userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username, url: '/user/' + userData.userslug }, { text: '[[user:account_info]]' }]); res.render('account/info', userData); }); diff --git a/src/controllers/accounts/notifications.js b/src/controllers/accounts/notifications.js index 8b2479052c..6184ec056d 100644 --- a/src/controllers/accounts/notifications.js +++ b/src/controllers/accounts/notifications.js @@ -14,7 +14,7 @@ notificationsController.get = function (req, res, next) { notifications: notifications, nextStart: 40, title: '[[pages:notifications]]', - breadcrumbs: helpers.buildBreadcrumbs([{text: '[[pages:notifications]]'}]), + breadcrumbs: helpers.buildBreadcrumbs([{ text: '[[pages:notifications]]' }]), }); }); }; diff --git a/src/controllers/accounts/posts.js b/src/controllers/accounts/posts.js index 48d7c23a80..2f603b8015 100644 --- a/src/controllers/accounts/posts.js +++ b/src/controllers/accounts/posts.js @@ -143,7 +143,7 @@ function getFromUserSet(template, req, res, callback) { userData.noItemsFoundKey = data.noItemsFoundKey; userData.title = '[[pages:' + data.template + ', ' + userData.username + ']]'; - userData.breadcrumbs = helpers.buildBreadcrumbs([{text: userData.username, url: '/user/' + userData.userslug}, {text: data.crumb}]); + userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username, url: '/user/' + userData.userslug }, { text: data.crumb }]); res.render(data.template, userData); }); diff --git a/src/controllers/accounts/profile.js b/src/controllers/accounts/profile.js index c3fa0e9092..1fc092a5f4 100644 --- a/src/controllers/accounts/profile.js +++ b/src/controllers/accounts/profile.js @@ -76,7 +76,7 @@ profileController.get = function (req, res, callback) { userData.hasPrivateChat = results.hasPrivateChat; userData.aboutme = results.aboutme; userData.nextStart = results.posts.nextStart; - userData.breadcrumbs = helpers.buildBreadcrumbs([{text: userData.username}]); + userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username }]); userData.title = userData.username; var pageCount = Math.ceil(userData.postcount / itemsPerPage); userData.pagination = pagination.create(page, pageCount, req.query); @@ -127,7 +127,7 @@ profileController.get = function (req, res, callback) { return group && group.name === userData.groupTitle; }); - plugins.fireHook('filter:user.account', {userData: userData, uid: req.uid}, next); + plugins.fireHook('filter:user.account', { userData: userData, uid: req.uid }, next); }, ], function (err, results) { if (err) { diff --git a/src/controllers/accounts/settings.js b/src/controllers/accounts/settings.js index f18a7b0fad..c35658b08f 100644 --- a/src/controllers/accounts/settings.js +++ b/src/controllers/accounts/settings.js @@ -58,11 +58,11 @@ settingsController.get = function (req, res, callback) { Object.keys(soundSettings).forEach(function (setting) { userData[setting] = Object.keys(results.sounds).map(function (name) { - return {name: name, selected: name === results.soundsMapping[soundSettings[setting]]}; + return { name: name, selected: name === results.soundsMapping[soundSettings[setting]] }; }); }); - plugins.fireHook('filter:user.customSettings', {settings: results.settings, customSettings: [], uid: req.uid}, next); + plugins.fireHook('filter:user.customSettings', { settings: results.settings, customSettings: [], uid: req.uid }, next); }, function (data, next) { userData.customSettings = data.customSettings; @@ -75,10 +75,10 @@ settingsController.get = function (req, res, callback) { } userData.dailyDigestFreqOptions = [ - {value: 'off', name: '[[user:digest_off]]', selected: 'off' === userData.settings.dailyDigestFreq}, - {value: 'day', name: '[[user:digest_daily]]', selected: 'day' === userData.settings.dailyDigestFreq}, - {value: 'week', name: '[[user:digest_weekly]]', selected: 'week' === userData.settings.dailyDigestFreq}, - {value: 'month', name: '[[user:digest_monthly]]', selected: 'month' === userData.settings.dailyDigestFreq}, + { value: 'off', name: '[[user:digest_off]]', selected: 'off' === userData.settings.dailyDigestFreq }, + { value: 'day', name: '[[user:digest_daily]]', selected: 'day' === userData.settings.dailyDigestFreq }, + { value: 'week', name: '[[user:digest_weekly]]', selected: 'week' === userData.settings.dailyDigestFreq }, + { value: 'month', name: '[[user:digest_monthly]]', selected: 'month' === userData.settings.dailyDigestFreq }, ]; @@ -135,7 +135,7 @@ settingsController.get = function (req, res, callback) { userData.inTopicSearchAvailable = plugins.hasListeners('filter:topic.search'); userData.title = '[[pages:account/settings]]'; - userData.breadcrumbs = helpers.buildBreadcrumbs([{text: userData.username, url: '/user/' + userData.userslug}, {text: '[[user:settings]]'}]); + userData.breadcrumbs = helpers.buildBreadcrumbs([{ text: userData.username, url: '/user/' + userData.userslug }, { text: '[[user:settings]]' }]); res.render('account/settings', userData); }); @@ -163,7 +163,7 @@ function getHomePageRoutes(callback) { categoryData = categoryData || []; - plugins.fireHook('filter:homepage.get', {routes: [ + plugins.fireHook('filter:homepage.get', { routes: [ { route: 'categories', name: 'Categories', @@ -180,7 +180,7 @@ function getHomePageRoutes(callback) { route: 'popular', name: 'Popular', }, - ].concat(categoryData)}, next); + ].concat(categoryData) }, next); }, function (data, next) { next(null, data.routes); diff --git a/src/controllers/admin/groups.js b/src/controllers/admin/groups.js index 2f4fa31664..4e4aa64531 100644 --- a/src/controllers/admin/groups.js +++ b/src/controllers/admin/groups.js @@ -34,7 +34,7 @@ groupsController.list = function (req, res, next) { groups.getGroupsData(groupNames, next); }, function (groupData, next) { - next(null, {groups: groupData, pagination: pagination.create(page, pageCount)}); + next(null, { groups: groupData, pagination: pagination.create(page, pageCount) }); }, ], function (err, data) { if (err) { @@ -59,14 +59,14 @@ groupsController.get = function (req, res, callback) { if (!exists) { return callback(); } - groups.get(groupName, {uid: req.uid, truncateUserList: true, userListCount: 20}, next); + groups.get(groupName, { uid: req.uid, truncateUserList: true, userListCount: 20 }, next); }, ], function (err, group) { if (err) { return callback(err); } group.isOwner = true; - res.render('admin/manage/group', {group: group, allowPrivateGroups: parseInt(meta.config.allowPrivateGroups, 10) === 1}); + res.render('admin/manage/group', { group: group, allowPrivateGroups: parseInt(meta.config.allowPrivateGroups, 10) === 1 }); }); }; diff --git a/src/controllers/admin/homepage.js b/src/controllers/admin/homepage.js index d40a578e66..1450283847 100644 --- a/src/controllers/admin/homepage.js +++ b/src/controllers/admin/homepage.js @@ -35,7 +35,7 @@ homePageController.get = function (req, res, next) { categoryData = []; } - plugins.fireHook('filter:homepage.get', {routes: [ + plugins.fireHook('filter:homepage.get', { routes: [ { route: 'categories', name: 'Categories', @@ -48,7 +48,7 @@ homePageController.get = function (req, res, next) { route: 'popular', name: 'Popular', }, - ].concat(categoryData)}, function (err, data) { + ].concat(categoryData) }, function (err, data) { if (err) { return next(err); } diff --git a/src/controllers/admin/info.js b/src/controllers/admin/info.js index ac32a2c63a..96783a9c87 100644 --- a/src/controllers/admin/info.js +++ b/src/controllers/admin/info.js @@ -24,7 +24,7 @@ infoController.get = function (req, res, next) { data.sort(function (a, b) { return (a.os.hostname < b.os.hostname) ? -1 : (a.os.hostname > b.os.hostname) ? 1 : 0; }); - res.render('admin/development/info', {info: data, infoJSON: JSON.stringify(data, null, 4), host: os.hostname(), port: nconf.get('port')}); + res.render('admin/development/info', { info: data, infoJSON: JSON.stringify(data, null, 4), host: os.hostname(), port: nconf.get('port') }); }, 500); }; @@ -33,7 +33,7 @@ pubsub.on('sync:node:info:start', function () { if (err) { return winston.error(err); } - pubsub.publish('sync:node:info:end', {data: data, id: os.hostname() + ':' + nconf.get('port')}); + pubsub.publish('sync:node:info:end', { data: data, id: os.hostname() + ':' + nconf.get('port') }); }); }); diff --git a/src/controllers/admin/tags.js b/src/controllers/admin/tags.js index 5e6c0d71a4..f586e5f70c 100644 --- a/src/controllers/admin/tags.js +++ b/src/controllers/admin/tags.js @@ -10,7 +10,7 @@ tagsController.get = function (req, res, next) { return next(err); } - res.render('admin/manage/tags', {tags: tags}); + res.render('admin/manage/tags', { tags: tags }); }); }; diff --git a/src/controllers/admin/uploads.js b/src/controllers/admin/uploads.js index c939da345f..0f53dcb8f3 100644 --- a/src/controllers/admin/uploads.js +++ b/src/controllers/admin/uploads.js @@ -49,7 +49,7 @@ uploadsController.uploadFavicon = function (req, res, next) { return next(err); } - res.json([{name: uploadedFile.name, url: image.url}]); + res.json([{ name: uploadedFile.name, url: image.url }]); }); } }; @@ -87,7 +87,7 @@ uploadsController.uploadTouchIcon = function (req, res, next) { return next(err); } - res.json([{name: uploadedFile.name, url: imageObj.url}]); + res.json([{ name: uploadedFile.name, url: imageObj.url }]); }); }); } @@ -145,7 +145,7 @@ function validateUpload(req, res, next, uploadedFile, allowedTypes) { } }); - res.json({error: '[[error:invalid-image-type, ' + allowedTypes.join(', ') + ']]'}); + res.json({ error: '[[error:invalid-image-type, ' + allowedTypes.join(', ') + ']]' }); return false; } @@ -163,11 +163,11 @@ function uploadImage(filename, folder, uploadedFile, req, res, next) { return next(err); } - res.json([{name: uploadedFile.name, url: image.url.startsWith('http') ? image.url : nconf.get('relative_path') + image.url}]); + res.json([{ name: uploadedFile.name, url: image.url.startsWith('http') ? image.url : nconf.get('relative_path') + image.url }]); } if (plugins.hasListeners('filter:uploadImage')) { - plugins.fireHook('filter:uploadImage', {image: uploadedFile, uid: req.user.uid}, done); + plugins.fireHook('filter:uploadImage', { image: uploadedFile, uid: req.user.uid }, done); } else { file.saveFileToLocal(filename, folder, uploadedFile.path, done); } diff --git a/src/controllers/admin/users.js b/src/controllers/admin/users.js index cb84792b85..ad10b7365e 100644 --- a/src/controllers/admin/users.js +++ b/src/controllers/admin/users.js @@ -71,7 +71,7 @@ usersController.registrationQueue = function (req, res, next) { user.getRegistrationQueue(start, stop, next); }, customHeaders: function (next) { - plugins.fireHook('filter:admin.registrationQueue.customHeaders', {headers: []}, next); + plugins.fireHook('filter:admin.registrationQueue.customHeaders', { headers: [] }, next); }, invites: function (next) { async.waterfall([ diff --git a/src/controllers/api.js b/src/controllers/api.js index 858db57d66..66392e6160 100644 --- a/src/controllers/api.js +++ b/src/controllers/api.js @@ -311,7 +311,7 @@ apiController.getModerators = function (req, res, next) { if (err) { return next(err); } - res.json({moderators: moderators}); + res.json({ moderators: moderators }); }); }; diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index ffbe36dfc9..47a15c1161 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -74,7 +74,7 @@ authenticationController.register = function (req, res, next) { }, function (queue, next) { res.locals.processLogin = true; // set it to false in plugin if you wish to just register only - plugins.fireHook('filter:register.check', {req: req, res: res, userData: userData, queue: queue}, next); + plugins.fireHook('filter:register.check', { req: req, res: res, userData: userData, queue: queue }, next); }, function (data, next) { if (data.queue) { @@ -133,7 +133,7 @@ function registerAndLoginUser(req, res, userData, callback) { }, function (next) { user.deleteInvitationKey(userData.email); - plugins.fireHook('filter:register.complete', {uid: uid, referrer: req.body.referrer || nconf.get('relative_path') + '/'}, next); + plugins.fireHook('filter:register.complete', { uid: uid, referrer: req.body.referrer || nconf.get('relative_path') + '/' }, next); }, ], callback); } @@ -145,7 +145,7 @@ function addToApprovalQueue(req, userData, callback) { user.addToApprovalQueue(userData, next); }, function (next) { - next(null, {message: '[[register:registration-added-to-queue]]'}); + next(null, { message: '[[register:registration-added-to-queue]]' }); }, ], callback); } @@ -284,7 +284,7 @@ authenticationController.doLogin = function (req, uid, callback) { return callback(); } - req.login({uid: uid}, function (err) { + req.login({ uid: uid }, function (err) { if (err) { return callback(err); } @@ -427,7 +427,7 @@ authenticationController.logout = function (req, res, next) { user.setUserField(uid, 'lastonline', Date.now() - 300000); - plugins.fireHook('static:user.loggedOut', {req: req, res: res, uid: uid}, function () { + plugins.fireHook('static:user.loggedOut', { req: req, res: res, uid: uid }, function () { res.status(200).send(''); // Force session check for all connected socket.io clients with the same session id diff --git a/src/controllers/categories.js b/src/controllers/categories.js index 5133444f7a..8112dead67 100644 --- a/src/controllers/categories.js +++ b/src/controllers/categories.js @@ -60,7 +60,7 @@ categoriesController.list = function (req, res, next) { }; if (req.path.startsWith('/api/categories') || req.path.startsWith('/categories')) { - data.breadcrumbs = helpers.buildBreadcrumbs([{text: data.title}]); + data.breadcrumbs = helpers.buildBreadcrumbs([{ text: data.title }]); } data.categories.forEach(function (category) { diff --git a/src/controllers/groups.js b/src/controllers/groups.js index 75df1112eb..5fdc140826 100644 --- a/src/controllers/groups.js +++ b/src/controllers/groups.js @@ -19,7 +19,7 @@ groupsController.list = function (req, res, next) { return next(err); } data.title = '[[pages:groups]]'; - data.breadcrumbs = helpers.buildBreadcrumbs([{text: '[[pages:groups]]'}]); + data.breadcrumbs = helpers.buildBreadcrumbs([{ text: '[[pages:groups]]' }]); res.render('groups/list', data); }); }; @@ -108,7 +108,7 @@ groupsController.details = function (req, res, callback) { } results.group.isOwner = results.group.isOwner || results.isAdmin || (results.isGlobalMod && !results.group.system); results.title = '[[pages:group, ' + results.group.displayName + ']]'; - results.breadcrumbs = helpers.buildBreadcrumbs([{text: '[[pages:groups]]', url: '/groups' }, {text: results.group.displayName}]); + results.breadcrumbs = helpers.buildBreadcrumbs([{ text: '[[pages:groups]]', url: '/groups' }, { text: results.group.displayName }]); results.allowPrivateGroups = parseInt(meta.config.allowPrivateGroups, 10) === 1; res.render('groups/details', results); @@ -145,9 +145,9 @@ groupsController.members = function (req, res, callback) { } var breadcrumbs = helpers.buildBreadcrumbs([ - {text: '[[pages:groups]]', url: '/groups' }, - {text: validator.escape(String(groupName)), url: '/groups/' + req.params.slug}, - {text: '[[groups:details.members]]'}, + { text: '[[pages:groups]]', url: '/groups' }, + { text: validator.escape(String(groupName)), url: '/groups/' + req.params.slug }, + { text: '[[groups:details.members]]' }, ]); res.render('groups/members', { @@ -180,7 +180,7 @@ groupsController.uploadCover = function (req, res, next) { if (err) { return next(err); } - res.json([{url: image.url.startsWith('http') ? image.url : nconf.get('relative_path') + image.url}]); + res.json([{ url: image.url.startsWith('http') ? image.url : nconf.get('relative_path') + image.url }]); }); }; diff --git a/src/controllers/helpers.js b/src/controllers/helpers.js index 3500ac9158..0942cc7b82 100644 --- a/src/controllers/helpers.js +++ b/src/controllers/helpers.js @@ -164,7 +164,7 @@ helpers.getWatchedCategories = function (uid, selectedCid, callback) { recursive(category, categoriesData, ''); }); - next(null, {categories: categoriesData, selectedCategory: selectedCategory}); + next(null, { categories: categoriesData, selectedCategory: selectedCategory }); }, ], callback); }; diff --git a/src/controllers/index.js b/src/controllers/index.js index 3124355a98..14600263de 100644 --- a/src/controllers/index.js +++ b/src/controllers/index.js @@ -46,7 +46,7 @@ Controllers.home = function (req, res, next) { var hook = 'action:homepage.get:' + route; if (plugins.hasListeners(hook)) { - return plugins.fireHook(hook, {req: req, res: res, next: next}); + return plugins.fireHook(hook, { req: req, res: res, next: next }); } if (route === 'categories' || route === '/') { @@ -83,7 +83,7 @@ Controllers.reset = function (req, res, next) { displayExpiryNotice: req.session.passwordExpired, code: req.params.code, minimumPasswordLength: parseInt(meta.config.minimumPasswordLength, 10), - breadcrumbs: helpers.buildBreadcrumbs([{text: '[[reset_password:reset_password]]', url: '/reset'}, {text: '[[reset_password:update_password]]'}]), + breadcrumbs: helpers.buildBreadcrumbs([{ text: '[[reset_password:reset_password]]', url: '/reset' }, { text: '[[reset_password:update_password]]' }]), title: '[[pages:reset]]', }); @@ -92,7 +92,7 @@ Controllers.reset = function (req, res, next) { } else { res.render('reset', { code: null, - breadcrumbs: helpers.buildBreadcrumbs([{text: '[[reset_password:reset_password]]'}]), + breadcrumbs: helpers.buildBreadcrumbs([{ text: '[[reset_password:reset_password]]' }]), title: '[[pages:reset]]', }); } @@ -122,7 +122,7 @@ Controllers.login = function (req, res, next) { data.allowLocalLogin = parseInt(meta.config.allowLocalLogin, 10) === 1 || parseInt(req.query.local, 10) === 1; data.allowRegistration = registrationType === 'normal' || registrationType === 'admin-approval' || registrationType === 'admin-approval-ip'; data.allowLoginWith = '[[login:' + allowLoginWith + ']]'; - data.breadcrumbs = helpers.buildBreadcrumbs([{text: '[[global:login]]'}]); + data.breadcrumbs = helpers.buildBreadcrumbs([{ text: '[[global:login]]' }]); data.error = req.flash('error')[0] || errorText; data.title = '[[pages:login]]'; @@ -170,7 +170,7 @@ Controllers.register = function (req, res, next) { } }, function (next) { - plugins.fireHook('filter:parse.post', {postData: {content: meta.config.termsOfUse || ''}}, next); + plugins.fireHook('filter:parse.post', { postData: { content: meta.config.termsOfUse || '' } }, next); }, ], function (err, termsOfUse) { if (err) { @@ -188,7 +188,7 @@ Controllers.register = function (req, res, next) { data.maximumUsernameLength = parseInt(meta.config.maximumUsernameLength, 10); data.minimumPasswordLength = parseInt(meta.config.minimumPasswordLength, 10); data.termsOfUse = termsOfUse.postData.content; - data.breadcrumbs = helpers.buildBreadcrumbs([{text: '[[register:register]]'}]); + data.breadcrumbs = helpers.buildBreadcrumbs([{ text: '[[register:register]]' }]); data.regFormEntry = []; data.error = req.flash('error')[0] || errorText; data.title = '[[pages:register]]'; @@ -329,7 +329,7 @@ Controllers.outgoing = function (req, res) { var data = { outgoing: validator.escape(String(url)), title: meta.config.title, - breadcrumbs: helpers.buildBreadcrumbs([{text: '[[notifications:outgoing_link]]'}]), + breadcrumbs: helpers.buildBreadcrumbs([{ text: '[[notifications:outgoing_link]]' }]), }; if (url) { @@ -343,7 +343,7 @@ Controllers.termsOfUse = function (req, res, next) { if (!meta.config.termsOfUse) { return next(); } - res.render('tos', {termsOfUse: meta.config.termsOfUse}); + res.render('tos', { termsOfUse: meta.config.termsOfUse }); }; Controllers.ping = function (req, res) { @@ -378,11 +378,11 @@ Controllers.handle404 = function (req, res) { var path = String(req.path || ''); if (res.locals.isAPI) { - return res.json({path: validator.escape(path.replace(/^\/api/, '')), title: '[[global:404.title]]'}); + return res.json({ path: validator.escape(path.replace(/^\/api/, '')), title: '[[global:404.title]]' }); } var middleware = require('../middleware'); middleware.buildHeader(req, res, function () { - res.render('404', {path: validator.escape(path), title: '[[global:404.title]]'}); + res.render('404', { path: validator.escape(path), title: '[[global:404.title]]' }); }); } else { res.status(404).type('txt').send('Not found'); @@ -436,7 +436,7 @@ Controllers.handleErrors = function (err, req, res, next) { var path = String(req.path || ''); if (res.locals.isAPI) { - res.json({path: validator.escape(path), error: err.message}); + res.json({ path: validator.escape(path), error: err.message }); } else { var middleware = require('../middleware'); middleware.buildHeader(req, res, function () { diff --git a/src/controllers/popular.js b/src/controllers/popular.js index 1daf7f5ed5..21c07224c1 100644 --- a/src/controllers/popular.js +++ b/src/controllers/popular.js @@ -52,10 +52,10 @@ popularController.get = function (req, res, next) { }; if (req.path.startsWith('/api/popular') || req.path.startsWith('/popular')) { - var breadcrumbs = [{text: termToBreadcrumb[term]}]; + var breadcrumbs = [{ text: termToBreadcrumb[term] }]; if (req.params.term) { - breadcrumbs.unshift({text: '[[global:header.popular]]', url: '/popular'}); + breadcrumbs.unshift({ text: '[[global:header.popular]]', url: '/popular' }); } data.breadcrumbs = helpers.buildBreadcrumbs(breadcrumbs); diff --git a/src/controllers/recent.js b/src/controllers/recent.js index 0901ea624d..c5d1d2128a 100644 --- a/src/controllers/recent.js +++ b/src/controllers/recent.js @@ -13,7 +13,7 @@ var pagination = require('../pagination'); var recentController = {}; -var validFilter = {'': true, new: true, watched: true}; +var validFilter = { '': true, new: true, watched: true }; recentController.get = function (req, res, next) { var page = parseInt(req.query.page, 10) || 1; @@ -84,7 +84,7 @@ recentController.get = function (req, res, next) { data.pagination = pagination.create(page, pageCount, req.query); if (req.path.startsWith('/api/recent') || req.path.startsWith('/recent')) { - data.breadcrumbs = helpers.buildBreadcrumbs([{text: '[[recent:title]]'}]); + data.breadcrumbs = helpers.buildBreadcrumbs([{ text: '[[recent:title]]' }]); } data.querystring = cid ? ('?cid=' + validator.escape(String(cid))) : ''; diff --git a/src/controllers/search.js b/src/controllers/search.js index f91577190b..29a883489f 100644 --- a/src/controllers/search.js +++ b/src/controllers/search.js @@ -54,8 +54,8 @@ searchController.search = function (req, res, next) { } var categoriesData = [ - {value: 'all', text: '[[unread:all_categories]]'}, - {value: 'watched', text: '[[category:watched-categories]]'}, + { value: 'all', text: '[[unread:all_categories]]' }, + { value: 'watched', text: '[[category:watched-categories]]' }, ].concat(results.categories); var searchData = results.search; @@ -65,7 +65,7 @@ searchController.search = function (req, res, next) { searchData.showAsPosts = !req.query.showAs || req.query.showAs === 'posts'; searchData.showAsTopics = req.query.showAs === 'topics'; searchData.title = '[[global:header.search]]'; - searchData.breadcrumbs = helpers.buildBreadcrumbs([{text: '[[global:search]]'}]); + searchData.breadcrumbs = helpers.buildBreadcrumbs([{ text: '[[global:search]]' }]); searchData.expandSearch = !req.query.term; res.render('search', searchData); diff --git a/src/controllers/tags.js b/src/controllers/tags.js index 36d1969a1d..cffff0e44c 100644 --- a/src/controllers/tags.js +++ b/src/controllers/tags.js @@ -19,7 +19,7 @@ tagsController.getTag = function (req, res, next) { var templateData = { topics: [], tag: tag, - breadcrumbs: helpers.buildBreadcrumbs([{text: '[[tags:tags]]', url: '/tags'}, {text: tag}]), + breadcrumbs: helpers.buildBreadcrumbs([{ text: '[[tags:tags]]', url: '/tags' }, { text: tag }]), title: '[[pages:tag, ' + tag + ']]', }; var settings; @@ -86,7 +86,7 @@ tagsController.getTags = function (req, res, next) { var data = { tags: tags, nextStart: 100, - breadcrumbs: helpers.buildBreadcrumbs([{text: '[[tags:tags]]'}]), + breadcrumbs: helpers.buildBreadcrumbs([{ text: '[[tags:tags]]' }]), title: '[[pages:tags]]', }; res.render('tags', data); diff --git a/src/controllers/topics.js b/src/controllers/topics.js index 4d6f87b68f..2d8d9bff1e 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -125,7 +125,7 @@ topicsController.get = function (req, res, callback) { topics.modifyPostsByPrivilege(topicData, userPrivileges); - plugins.fireHook('filter:controllers.topic.get', {topicData: topicData, uid: req.uid}, next); + plugins.fireHook('filter:controllers.topic.get', { topicData: topicData, uid: req.uid }, next); }, function (data, next) { var breadcrumbs = [ @@ -315,7 +315,7 @@ topicsController.teaser = function (req, res, next) { if (!pid) { return res.status(404).json('not-found'); } - posts.getPostSummaryByPids([pid], req.uid, {stripTags: false}, next); + posts.getPostSummaryByPids([pid], req.uid, { stripTags: false }, next); }, ], function (err, posts) { if (err) { diff --git a/src/controllers/unread.js b/src/controllers/unread.js index a0da19c6c4..c5d0d4d950 100644 --- a/src/controllers/unread.js +++ b/src/controllers/unread.js @@ -12,7 +12,7 @@ var helpers = require('./helpers'); var unreadController = {}; -var validFilter = {'': true, new: true, watched: true}; +var validFilter = { '': true, new: true, watched: true }; unreadController.get = function (req, res, next) { var page = parseInt(req.query.page, 10) || 1; @@ -59,7 +59,7 @@ unreadController.get = function (req, res, next) { data.selectedCategory = results.watchedCategories.selectedCategory; if (req.path.startsWith('/api/unread') || req.path.startsWith('/unread')) { - data.breadcrumbs = helpers.buildBreadcrumbs([{text: '[[unread:title]]'}]); + data.breadcrumbs = helpers.buildBreadcrumbs([{ text: '[[unread:title]]' }]); } data.title = '[[pages:unread]]'; diff --git a/src/controllers/uploads.js b/src/controllers/uploads.js index 0a556f722a..ca57f8f18e 100644 --- a/src/controllers/uploads.js +++ b/src/controllers/uploads.js @@ -59,7 +59,7 @@ function uploadAsImage(req, uploadedFile, callback) { return next(new Error('[[error:no-privileges]]')); } if (plugins.hasListeners('filter:uploadImage')) { - return plugins.fireHook('filter:uploadImage', {image: uploadedFile, uid: req.uid}, callback); + return plugins.fireHook('filter:uploadImage', { image: uploadedFile, uid: req.uid }, callback); } file.isFileTypeAllowed(uploadedFile.path, next); }, @@ -155,7 +155,7 @@ uploadsController.uploadThumb = function (req, res, next) { } if (plugins.hasListeners('filter:uploadImage')) { - return plugins.fireHook('filter:uploadImage', {image: uploadedFile, uid: req.uid}, next); + return plugins.fireHook('filter:uploadImage', { image: uploadedFile, uid: req.uid }, next); } uploadFile(req.uid, uploadedFile, next); @@ -166,11 +166,11 @@ uploadsController.uploadThumb = function (req, res, next) { uploadsController.uploadGroupCover = function (uid, uploadedFile, callback) { if (plugins.hasListeners('filter:uploadImage')) { - return plugins.fireHook('filter:uploadImage', {image: uploadedFile, uid: uid}, callback); + return plugins.fireHook('filter:uploadImage', { image: uploadedFile, uid: uid }, callback); } if (plugins.hasListeners('filter:uploadFile')) { - return plugins.fireHook('filter:uploadFile', {file: uploadedFile, uid: uid}, callback); + return plugins.fireHook('filter:uploadFile', { file: uploadedFile, uid: uid }, callback); } file.isFileTypeAllowed(uploadedFile.path, function (err) { @@ -183,7 +183,7 @@ uploadsController.uploadGroupCover = function (uid, uploadedFile, callback) { function uploadFile(uid, uploadedFile, callback) { if (plugins.hasListeners('filter:uploadFile')) { - return plugins.fireHook('filter:uploadFile', {file: uploadedFile, uid: uid}, callback); + return plugins.fireHook('filter:uploadFile', { file: uploadedFile, uid: uid }, callback); } if (!uploadedFile) { diff --git a/src/controllers/users.js b/src/controllers/users.js index fdf6fa36cc..ae3643bb8d 100644 --- a/src/controllers/users.js +++ b/src/controllers/users.js @@ -146,22 +146,22 @@ usersController.renderUsersPage = function (set, req, res, next) { usersController.getUsers = function (set, uid, query, callback) { var setToData = { - 'users:postcount': {title: '[[pages:users/sort-posts]]', crumb: '[[users:top_posters]]'}, - 'users:reputation': {title: '[[pages:users/sort-reputation]]', crumb: '[[users:most_reputation]]'}, - 'users:joindate': {title: '[[pages:users/latest]]', crumb: '[[global:users]]'}, - 'users:online': {title: '[[pages:users/online]]', crumb: '[[global:online]]'}, - 'users:banned': {title: '[[pages:users/banned]]', crumb: '[[user:banned]]'}, - 'users:flags': {title: '[[pages:users/most-flags]]', crumb: '[[users:most_flags]]'}, + 'users:postcount': { title: '[[pages:users/sort-posts]]', crumb: '[[users:top_posters]]' }, + 'users:reputation': { title: '[[pages:users/sort-reputation]]', crumb: '[[users:most_reputation]]' }, + 'users:joindate': { title: '[[pages:users/latest]]', crumb: '[[global:users]]' }, + 'users:online': { title: '[[pages:users/online]]', crumb: '[[global:online]]' }, + 'users:banned': { title: '[[pages:users/banned]]', crumb: '[[user:banned]]' }, + 'users:flags': { title: '[[pages:users/most-flags]]', crumb: '[[users:most_flags]]' }, }; if (!setToData[set]) { - setToData[set] = {title: '', crumb: ''}; + setToData[set] = { title: '', crumb: '' }; } - var breadcrumbs = [{text: setToData[set].crumb}]; + var breadcrumbs = [{ text: setToData[set].crumb }]; if (set !== 'users:joindate') { - breadcrumbs.unshift({text: '[[global:users]]', url: '/users'}); + breadcrumbs.unshift({ text: '[[global:users]]', url: '/users' }); } var page = parseInt(query.page, 10) || 1; diff --git a/src/database/mongo/hash.js b/src/database/mongo/hash.js index cd9af198d2..e253135c47 100644 --- a/src/database/mongo/hash.js +++ b/src/database/mongo/hash.js @@ -9,7 +9,7 @@ module.exports = function (db, module) { return callback(); } - db.collection('objects').update({_key: key}, {$set: data}, {upsert: true, w: 1}, function (err) { + db.collection('objects').update({ _key: key }, { $set: data }, { upsert: true, w: 1 }, function (err) { callback(err); }); }; @@ -29,14 +29,14 @@ module.exports = function (db, module) { if (!key) { return callback(); } - db.collection('objects').findOne({_key: key}, {_id: 0, _key: 0}, callback); + db.collection('objects').findOne({ _key: key }, { _id: 0, _key: 0 }, callback); }; module.getObjects = function (keys, callback) { if (!Array.isArray(keys) || !keys.length) { return callback(null, []); } - db.collection('objects').find({_key: {$in: keys}}, {_id: 0}).toArray(function (err, data) { + db.collection('objects').find({ _key: { $in: keys } }, { _id: 0 }).toArray(function (err, data) { if (err) { return callback(err); } @@ -61,7 +61,7 @@ module.exports = function (db, module) { _id: 0, }; _fields[field] = 1; - db.collection('objects').findOne({_key: key}, {fields: _fields}, function (err, item) { + db.collection('objects').findOne({ _key: key }, { fields: _fields }, function (err, item) { if (err || !item) { return callback(err, null); } @@ -82,7 +82,7 @@ module.exports = function (db, module) { fields[i] = helpers.fieldToString(fields[i]); _fields[fields[i]] = 1; } - db.collection('objects').findOne({_key: key}, {fields: _fields}, function (err, item) { + db.collection('objects').findOne({ _key: key }, { fields: _fields }, function (err, item) { if (err) { return callback(err); } @@ -109,7 +109,7 @@ module.exports = function (db, module) { _fields[fields[i]] = 1; } - db.collection('objects').find({_key: {$in: keys}}, {fields: _fields}).toArray(function (err, items) { + db.collection('objects').find({ _key: { $in: keys } }, { fields: _fields }).toArray(function (err, items) { if (err) { return callback(err); } @@ -166,7 +166,7 @@ module.exports = function (db, module) { var data = {}; field = helpers.fieldToString(field); data[field] = ''; - db.collection('objects').findOne({_key: key}, {fields: data}, function (err, item) { + db.collection('objects').findOne({ _key: key }, { fields: data }, function (err, item) { callback(err, !!item && item[field] !== undefined && item[field] !== null); }); }; @@ -182,7 +182,7 @@ module.exports = function (db, module) { data[field] = ''; }); - db.collection('objects').findOne({_key: key}, {fields: data}, function (err, item) { + db.collection('objects').findOne({ _key: key }, { fields: data }, function (err, item) { if (err) { return callback(err); } @@ -216,7 +216,7 @@ module.exports = function (db, module) { data[field] = ''; }); - db.collection('objects').update({_key: key}, {$unset: data}, function (err) { + db.collection('objects').update({ _key: key }, { $unset: data }, function (err) { callback(err); }); }; @@ -240,7 +240,7 @@ module.exports = function (db, module) { field = helpers.fieldToString(field); data[field] = value; - db.collection('objects').findAndModify({_key: key}, {}, {$inc: data}, {new: true, upsert: true}, function (err, result) { + db.collection('objects').findAndModify({ _key: key }, {}, { $inc: data }, { new: true, upsert: true }, function (err, result) { callback(err, result && result.value ? result.value[field] : null); }); }; diff --git a/src/database/mongo/list.js b/src/database/mongo/list.js index 2314c7cbc3..a639ec0d73 100644 --- a/src/database/mongo/list.js +++ b/src/database/mongo/list.js @@ -18,7 +18,7 @@ module.exports = function (db, module) { } if (exists) { - db.collection('objects').update({_key: key}, {$push: {array: {$each: [value], $position: 0}}}, {upsert: true, w: 1 }, function (err, res) { + db.collection('objects').update({ _key: key }, { $push: { array: { $each: [value], $position: 0 } } }, { upsert: true, w: 1 }, function (err, res) { callback(err); }); } else { @@ -33,7 +33,7 @@ module.exports = function (db, module) { return callback(); } value = helpers.valueToString(value); - db.collection('objects').update({ _key: key }, { $push: { array: value } }, {upsert: true, w: 1}, function (err, res) { + db.collection('objects').update({ _key: key }, { $push: { array: value } }, { upsert: true, w: 1 }, function (err, res) { callback(err); }); }; @@ -48,7 +48,7 @@ module.exports = function (db, module) { return callback(err); } - db.collection('objects').update({_key: key }, { $pop: { array: 1 } }, function (err, result) { + db.collection('objects').update({ _key: key }, { $pop: { array: 1 } }, function (err, result) { callback(err, (value && value.length) ? value[0] : null); }); }); @@ -61,7 +61,7 @@ module.exports = function (db, module) { } value = helpers.valueToString(value); - db.collection('objects').update({_key: key }, { $pull: { array: value } }, function (err, res) { + db.collection('objects').update({ _key: key }, { $pull: { array: value } }, function (err, res) { callback(err); }); }; @@ -76,7 +76,7 @@ module.exports = function (db, module) { return callback(err); } - db.collection('objects').update({_key: key}, {$set: {array: value}}, function (err, res) { + db.collection('objects').update({ _key: key }, { $set: { array: value } }, function (err, res) { callback(err); }); }); @@ -87,7 +87,7 @@ module.exports = function (db, module) { return callback(); } - db.collection('objects').findOne({_key: key}, { array: 1}, function (err, data) { + db.collection('objects').findOne({ _key: key }, { array: 1 }, function (err, data) { if (err || !(data && data.array)) { return callback(err, []); } diff --git a/src/database/mongo/main.js b/src/database/mongo/main.js index 0aa832e02d..c4cd9fe752 100644 --- a/src/database/mongo/main.js +++ b/src/database/mongo/main.js @@ -23,7 +23,7 @@ module.exports = function (db, module) { if (!key) { return callback(); } - db.collection('objects').findOne({_key: key}, function (err, item) { + db.collection('objects').findOne({ _key: key }, function (err, item) { callback(err, item !== undefined && item !== null); }); }; @@ -33,7 +33,7 @@ module.exports = function (db, module) { if (!key) { return callback(); } - db.collection('objects').remove({_key: key}, function (err, res) { + db.collection('objects').remove({ _key: key }, function (err, res) { callback(err); }); }; @@ -43,7 +43,7 @@ module.exports = function (db, module) { if (!Array.isArray(keys) || !keys.length) { return callback(); } - db.collection('objects').remove({_key: {$in: keys}}, function (err, res) { + db.collection('objects').remove({ _key: { $in: keys } }, function (err, res) { callback(err); }); }; @@ -60,7 +60,7 @@ module.exports = function (db, module) { if (!key) { return callback(); } - var data = {value: value}; + var data = { value: value }; module.setObject(key, data, callback); }; @@ -69,14 +69,14 @@ module.exports = function (db, module) { if (!key) { return callback(); } - db.collection('objects').findAndModify({_key: key}, {}, {$inc: {value: 1}}, {new: true, upsert: true}, function (err, result) { + db.collection('objects').findAndModify({ _key: key }, {}, { $inc: { value: 1 } }, { new: true, upsert: true }, function (err, result) { callback(err, result && result.value ? result.value.value : null); }); }; module.rename = function (oldKey, newKey, callback) { callback = callback || helpers.noop; - db.collection('objects').update({_key: oldKey}, {$set: {_key: newKey}}, {multi: true}, function (err, res) { + db.collection('objects').update({ _key: oldKey }, { $set: { _key: newKey } }, { multi: true }, function (err, res) { callback(err); }); }; diff --git a/src/database/mongo/sets.js b/src/database/mongo/sets.js index c4834e3fd8..54f6458249 100644 --- a/src/database/mongo/sets.js +++ b/src/database/mongo/sets.js @@ -47,11 +47,11 @@ module.exports = function (db, module) { var bulk = db.collection('objects').initializeUnorderedBulkOp(); for (var i = 0; i < keys.length; i += 1) { - bulk.find({_key: keys[i]}).upsert().updateOne({ $addToSet: { + bulk.find({ _key: keys[i] }).upsert().updateOne({ $addToSet: { members: { $each: value, }, - }}); + } }); } bulk.execute(function (err, res) { @@ -69,7 +69,7 @@ module.exports = function (db, module) { array[index] = helpers.valueToString(element); }); - db.collection('objects').update({_key: key}, {$pullAll: {members: value}}, function (err, res) { + db.collection('objects').update({ _key: key }, { $pullAll: { members: value } }, function (err, res) { callback(err); }); }; @@ -84,9 +84,9 @@ module.exports = function (db, module) { var bulk = db.collection('objects').initializeUnorderedBulkOp(); for (var i = 0; i < keys.length; i += 1) { - bulk.find({_key: keys[i]}).updateOne({$pull: { + bulk.find({ _key: keys[i] }).updateOne({ $pull: { members: value, - }}); + } }); } bulk.execute(function (err, res) { @@ -100,7 +100,7 @@ module.exports = function (db, module) { } value = helpers.valueToString(value); - db.collection('objects').findOne({_key: key, members: value}, {_id: 0, members: 0}, function (err, item) { + db.collection('objects').findOne({ _key: key, members: value }, { _id: 0, members: 0 }, function (err, item) { callback(err, item !== null && item !== undefined); }); }; @@ -114,7 +114,7 @@ module.exports = function (db, module) { values[i] = helpers.valueToString(values[i]); } - db.collection('objects').findOne({_key: key}, {_id: 0, _key: 0}, function (err, items) { + db.collection('objects').findOne({ _key: key }, { _id: 0, _key: 0 }, function (err, items) { if (err) { return callback(err); } @@ -133,7 +133,7 @@ module.exports = function (db, module) { } value = helpers.valueToString(value); - db.collection('objects').find({_key: {$in: sets}, members: value}, {_id: 0, members: 0}).toArray(function (err, result) { + db.collection('objects').find({ _key: { $in: sets }, members: value }, { _id: 0, members: 0 }).toArray(function (err, result) { if (err) { return callback(err); } @@ -154,7 +154,7 @@ module.exports = function (db, module) { if (!key) { return callback(null, []); } - db.collection('objects').findOne({_key: key}, {members: 1}, {_id: 0, _key: 0}, function (err, data) { + db.collection('objects').findOne({ _key: key }, { members: 1 }, { _id: 0, _key: 0 }, function (err, data) { callback(err, data ? data.members : []); }); }; @@ -163,7 +163,7 @@ module.exports = function (db, module) { if (!Array.isArray(keys) || !keys.length) { return callback(null, []); } - db.collection('objects').find({_key: {$in: keys}}, {_id: 0, _key: 1, members: 1}).toArray(function (err, data) { + db.collection('objects').find({ _key: { $in: keys } }, { _id: 0, _key: 1, members: 1 }).toArray(function (err, data) { if (err) { return callback(err); } @@ -185,7 +185,7 @@ module.exports = function (db, module) { if (!key) { return callback(null, 0); } - db.collection('objects').findOne({_key: key}, {_id: 0}, function (err, data) { + db.collection('objects').findOne({ _key: key }, { _id: 0 }, function (err, data) { callback(err, data ? data.members.length : 0); }); }; @@ -205,7 +205,7 @@ module.exports = function (db, module) { module.setRemoveRandom = function (key, callback) { callback = callback || function () {}; - db.collection('objects').findOne({_key: key}, function (err, data) { + db.collection('objects').findOne({ _key: key }, function (err, data) { if (err || !data) { return callback(err); } diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index f20e3330a5..d274146f67 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -32,13 +32,13 @@ module.exports = function (db, module) { return callback(); } - var fields = {_id: 0, value: 1}; + var fields = { _id: 0, value: 1 }; if (withScores) { fields.score = 1; } if (Array.isArray(key)) { - key = {$in: key}; + key = { $in: key }; } var limit = stop - start + 1; @@ -46,10 +46,10 @@ module.exports = function (db, module) { limit = 0; } - db.collection('objects').find({_key: key}, {fields: fields}) + db.collection('objects').find({ _key: key }, { fields: fields }) .limit(limit) .skip(start) - .sort({score: sort}) + .sort({ score: sort }) .toArray(function (err, data) { if (err || !data) { return callback(err); @@ -89,25 +89,25 @@ module.exports = function (db, module) { count = 0; } - var query = {_key: key}; + var query = { _key: key }; if (min !== '-inf') { - query.score = {$gte: min}; + query.score = { $gte: min }; } if (max !== '+inf') { query.score = query.score || {}; query.score.$lte = max; } - var fields = {_id: 0, value: 1}; + var fields = { _id: 0, value: 1 }; if (withScores) { fields.score = 1; } - db.collection('objects').find(query, {fields: fields}) + db.collection('objects').find(query, { fields: fields }) .limit(count) .skip(start) - .sort({score: sort}) + .sort({ score: sort }) .toArray(function (err, data) { if (err) { return callback(err); @@ -128,9 +128,9 @@ module.exports = function (db, module) { return callback(); } - var query = {_key: key}; + var query = { _key: key }; if (min !== '-inf') { - query.score = {$gte: min}; + query.score = { $gte: min }; } if (max !== '+inf') { query.score = query.score || {}; @@ -146,7 +146,7 @@ module.exports = function (db, module) { if (!key) { return callback(null, 0); } - db.collection('objects').count({_key: key}, function (err, count) { + db.collection('objects').count({ _key: key }, function (err, count) { count = parseInt(count, 10); callback(err, count ? count : 0); }); @@ -158,7 +158,7 @@ module.exports = function (db, module) { } var pipeline = [ { $match: { _key: { $in: keys } } }, - { $group: { _id: {_key: '$_key'}, count: { $sum: 1 } } }, + { $group: { _id: { _key: '$_key' }, count: { $sum: 1 } } }, { $project: { _id: 1, count: '$count' } }, ]; db.collection('objects').aggregate(pipeline, function (err, results) { @@ -213,7 +213,7 @@ module.exports = function (db, module) { } var data = new Array(values.length); for (var i = 0; i < values.length; i += 1) { - data[i] = {key: keys[i], value: values[i]}; + data[i] = { key: keys[i], value: values[i] }; } async.map(data, function (item, next) { @@ -244,7 +244,7 @@ module.exports = function (db, module) { return callback(); } value = helpers.valueToString(value); - db.collection('objects').findOne({_key: key, value: value}, {fields: {_id: 0, score: 1}}, function (err, result) { + db.collection('objects').findOne({ _key: key, value: value }, { fields: { _id: 0, score: 1 } }, function (err, result) { callback(err, result ? result.score : null); }); }; @@ -254,7 +254,7 @@ module.exports = function (db, module) { return callback(); } value = helpers.valueToString(value); - db.collection('objects').find({_key: {$in: keys}, value: value}, {_id: 0, _key: 1, score: 1}).toArray(function (err, result) { + db.collection('objects').find({ _key: { $in: keys }, value: value }, { _id: 0, _key: 1, score: 1 }).toArray(function (err, result) { if (err) { return callback(err); } @@ -277,7 +277,7 @@ module.exports = function (db, module) { return callback(); } values = values.map(helpers.valueToString); - db.collection('objects').find({_key: key, value: {$in: values}}, {_id: 0, value: 1, score: 1}).toArray(function (err, result) { + db.collection('objects').find({ _key: key, value: { $in: values } }, { _id: 0, value: 1, score: 1 }).toArray(function (err, result) { if (err) { return callback(err); } @@ -304,7 +304,7 @@ module.exports = function (db, module) { return callback(); } value = helpers.valueToString(value); - db.collection('objects').findOne({_key: key, value: value}, {_id: 0, value: 1}, function (err, result) { + db.collection('objects').findOne({ _key: key, value: value }, { _id: 0, value: 1 }, function (err, result) { callback(err, !!result); }); }; @@ -314,7 +314,7 @@ module.exports = function (db, module) { return callback(); } values = values.map(helpers.valueToString); - db.collection('objects').find({_key: key, value: {$in: values}}, {fields: {_id: 0, value: 1}}).toArray(function (err, results) { + db.collection('objects').find({ _key: key, value: { $in: values } }, { fields: { _id: 0, value: 1 } }).toArray(function (err, results) { if (err) { return callback(err); } @@ -335,7 +335,7 @@ module.exports = function (db, module) { return callback(); } value = helpers.valueToString(value); - db.collection('objects').find({_key: {$in: keys}, value: value}, {fields: {_id: 0, _key: 1, value: 1}}).toArray(function (err, results) { + db.collection('objects').find({ _key: { $in: keys }, value: value }, { fields: { _id: 0, _key: 1, value: 1 } }).toArray(function (err, results) { if (err) { return callback(err); } @@ -355,7 +355,7 @@ module.exports = function (db, module) { if (!Array.isArray(keys) || !keys.length) { return callback(null, []); } - db.collection('objects').find({_key: {$in: keys}}, {_id: 0, _key: 1, value: 1}).toArray(function (err, data) { + db.collection('objects').find({ _key: { $in: keys } }, { _id: 0, _key: 1, value: 1 }).toArray(function (err, data) { if (err) { return callback(err); } @@ -383,7 +383,7 @@ module.exports = function (db, module) { value = helpers.valueToString(value); data.score = parseFloat(increment); - db.collection('objects').findAndModify({_key: key, value: value}, {}, {$inc: data}, {new: true, upsert: true}, function (err, result) { + db.collection('objects').findAndModify({ _key: key, value: value }, {}, { $inc: data }, { new: true, upsert: true }, function (err, result) { // if there is duplicate key error retry the upsert // https://github.com/NodeBB/NodeBB/issues/4467 // https://jira.mongodb.org/browse/SERVER-14322 @@ -416,11 +416,11 @@ module.exports = function (db, module) { count = 0; } - var query = {_key: key}; + var query = { _key: key }; buildLexQuery(query, min, max); - db.collection('objects').find(query, {_id: 0, value: 1}) - .sort({value: sort}) + db.collection('objects').find(query, { _id: 0, value: 1 }) + .sort({ value: sort }) .skip(start) .limit(count === -1 ? 0 : count) .toArray(function (err, data) { @@ -437,7 +437,7 @@ module.exports = function (db, module) { module.sortedSetRemoveRangeByLex = function (key, min, max, callback) { callback = callback || helpers.noop; - var query = {_key: key}; + var query = { _key: key }; buildLexQuery(query, min, max); db.collection('objects').remove(query, function (err) { @@ -448,11 +448,11 @@ module.exports = function (db, module) { function buildLexQuery(query, min, max) { if (min !== '-') { if (min.match(/^\(/)) { - query.value = {$gt: min.slice(1)}; + query.value = { $gt: min.slice(1) }; } else if (min.match(/^\[/)) { - query.value = {$gte: min.slice(1)}; + query.value = { $gte: min.slice(1) }; } else { - query.value = {$gte: min}; + query.value = { $gte: min }; } } if (max !== '+') { @@ -470,9 +470,9 @@ module.exports = function (db, module) { module.processSortedSet = function (setKey, process, batch, callback) { var done = false; var ids = []; - var cursor = db.collection('objects').find({_key: setKey}) - .sort({score: 1}) - .project({_id: 0, value: 1}) + var cursor = db.collection('objects').find({ _key: setKey }) + .sort({ score: 1 }) + .project({ _id: 0, value: 1 }) .batchSize(batch); async.whilst( diff --git a/src/database/mongo/sorted/add.js b/src/database/mongo/sorted/add.js index acbb279985..b90501feee 100644 --- a/src/database/mongo/sorted/add.js +++ b/src/database/mongo/sorted/add.js @@ -14,7 +14,7 @@ module.exports = function (db, module) { value = helpers.valueToString(value); - db.collection('objects').update({_key: key, value: value}, {$set: {score: parseFloat(score)}}, {upsert: true, w: 1}, function (err) { + db.collection('objects').update({ _key: key, value: value }, { $set: { score: parseFloat(score) } }, { upsert: true, w: 1 }, function (err) { if (err && err.message.startsWith('E11000 duplicate key error')) { return process.nextTick(module.sortedSetAdd, key, score, value, callback); } @@ -35,7 +35,7 @@ module.exports = function (db, module) { var bulk = db.collection('objects').initializeUnorderedBulkOp(); for (var i = 0; i < scores.length; i += 1) { - bulk.find({_key: key, value: values[i]}).upsert().updateOne({$set: {score: parseFloat(scores[i])}}); + bulk.find({ _key: key, value: values[i] }).upsert().updateOne({ $set: { score: parseFloat(scores[i]) } }); } bulk.execute(function (err) { @@ -53,7 +53,7 @@ module.exports = function (db, module) { var bulk = db.collection('objects').initializeUnorderedBulkOp(); for (var i = 0; i < keys.length; i += 1) { - bulk.find({_key: keys[i], value: value}).upsert().updateOne({$set: {score: parseFloat(score)}}); + bulk.find({ _key: keys[i], value: value }).upsert().updateOne({ $set: { score: parseFloat(score) } }); } bulk.execute(function (err) { diff --git a/src/database/mongo/sorted/intersect.js b/src/database/mongo/sorted/intersect.js index dc1d4ef54c..82f24214ea 100644 --- a/src/database/mongo/sorted/intersect.js +++ b/src/database/mongo/sorted/intersect.js @@ -7,9 +7,9 @@ module.exports = function (db, module) { } var pipeline = [ - { $match: { _key: {$in: keys}} }, - { $group: { _id: {value: '$value'}, count: {$sum: 1}} }, - { $match: { count: keys.length} }, + { $match: { _key: { $in: keys } } }, + { $group: { _id: { value: '$value' }, count: { $sum: 1 } } }, + { $match: { count: keys.length } }, { $group: { _id: null, count: { $sum: 1 } } }, ]; @@ -47,7 +47,7 @@ module.exports = function (db, module) { limit = 0; } - var pipeline = [{ $match: { _key: {$in: sets}} }]; + var pipeline = [{ $match: { _key: { $in: sets } } }]; weights.forEach(function (weight, index) { if (weight !== 1) { @@ -70,9 +70,9 @@ module.exports = function (db, module) { } }); - pipeline.push({ $group: { _id: {value: '$value'}, totalScore: aggregate, count: {$sum: 1}} }); - pipeline.push({ $match: { count: sets.length} }); - pipeline.push({ $sort: { totalScore: params.sort} }); + pipeline.push({ $group: { _id: { value: '$value' }, totalScore: aggregate, count: { $sum: 1 } } }); + pipeline.push({ $match: { count: sets.length } }); + pipeline.push({ $sort: { totalScore: params.sort } }); if (start) { pipeline.push({ $skip: start }); @@ -82,7 +82,7 @@ module.exports = function (db, module) { pipeline.push({ $limit: limit }); } - var project = { _id: 0, value: '$_id.value'}; + var project = { _id: 0, value: '$_id.value' }; if (params.withScores) { project.score = '$totalScore'; } diff --git a/src/database/mongo/sorted/remove.js b/src/database/mongo/sorted/remove.js index cceb4e0c6a..e8dea857eb 100644 --- a/src/database/mongo/sorted/remove.js +++ b/src/database/mongo/sorted/remove.js @@ -14,10 +14,10 @@ module.exports = function (db, module) { if (Array.isArray(value)) { value = value.map(helpers.valueToString); - db.collection('objects').remove({_key: key, value: {$in: value}}, done); + db.collection('objects').remove({ _key: key, value: { $in: value } }, done); } else { value = helpers.valueToString(value); - db.collection('objects').remove({_key: key, value: value}, done); + db.collection('objects').remove({ _key: key, value: value }, done); } }; @@ -28,7 +28,7 @@ module.exports = function (db, module) { } value = helpers.valueToString(value); - db.collection('objects').remove({_key: {$in: keys}, value: value}, function (err) { + db.collection('objects').remove({ _key: { $in: keys }, value: value }, function (err) { callback(err); }); }; @@ -38,10 +38,10 @@ module.exports = function (db, module) { if (!Array.isArray(keys) || !keys.length) { return callback(); } - var query = {_key: {$in: keys}}; + var query = { _key: { $in: keys } }; if (min !== '-inf') { - query.score = {$gte: min}; + query.score = { $gte: min }; } if (max !== '+inf') { query.score = query.score || {}; diff --git a/src/database/mongo/sorted/union.js b/src/database/mongo/sorted/union.js index ee8ae3e261..a06df788aa 100644 --- a/src/database/mongo/sorted/union.js +++ b/src/database/mongo/sorted/union.js @@ -7,8 +7,8 @@ module.exports = function (db, module) { } var pipeline = [ - { $match: { _key: {$in: keys} } }, - { $group: { _id: {value: '$value' } } }, + { $match: { _key: { $in: keys } } }, + { $group: { _id: { value: '$value' } } }, { $group: { _id: null, count: { $sum: 1 } } }, ]; @@ -47,9 +47,9 @@ module.exports = function (db, module) { } var pipeline = [ - { $match: { _key: {$in: params.sets}} }, - { $group: { _id: {value: '$value'}, totalScore: aggregate} }, - { $sort: { totalScore: params.sort} }, + { $match: { _key: { $in: params.sets } } }, + { $group: { _id: { value: '$value' }, totalScore: aggregate } }, + { $sort: { totalScore: params.sort } }, ]; if (params.start) { diff --git a/src/database/redis/sorted.js b/src/database/redis/sorted.js index feb8a4cc27..2fd3220eaa 100644 --- a/src/database/redis/sorted.js +++ b/src/database/redis/sorted.js @@ -28,7 +28,7 @@ module.exports = function (redisClient, module) { function sortedSetRange(method, key, start, stop, withScores, callback) { if (Array.isArray(key)) { - return module.sortedSetUnion({method: method, sets: key, start: start, stop: stop, withScores: withScores}, callback); + return module.sortedSetUnion({ method: method, sets: key, start: start, stop: stop, withScores: withScores }, callback); } var params = [key, start, stop]; @@ -45,7 +45,7 @@ module.exports = function (redisClient, module) { } var objects = []; for (var i = 0; i < data.length; i += 2) { - objects.push({value: data[i], score: parseFloat(data[i + 1])}); + objects.push({ value: data[i], score: parseFloat(data[i + 1]) }); } callback(null, objects); }); @@ -74,7 +74,7 @@ module.exports = function (redisClient, module) { } var objects = []; for (var i = 0; i < data.length; i += 2) { - objects.push({value: data[i], score: parseFloat(data[i + 1])}); + objects.push({ value: data[i], score: parseFloat(data[i + 1]) }); } callback(null, objects); }); diff --git a/src/database/redis/sorted/intersect.js b/src/database/redis/sorted/intersect.js index aeb68d02ef..86240a7a34 100644 --- a/src/database/redis/sorted/intersect.js +++ b/src/database/redis/sorted/intersect.js @@ -70,7 +70,7 @@ module.exports = function (redisClient, module) { results = results[1] || []; var objects = []; for (var i = 0; i < results.length; i += 2) { - objects.push({value: results[i], score: parseFloat(results[i + 1])}); + objects.push({ value: results[i], score: parseFloat(results[i + 1]) }); } callback(null, objects); }); diff --git a/src/database/redis/sorted/union.js b/src/database/redis/sorted/union.js index 88bdd3e7bf..ea17ee2d4e 100644 --- a/src/database/redis/sorted/union.js +++ b/src/database/redis/sorted/union.js @@ -50,7 +50,7 @@ module.exports = function (redisClient, module) { results = results[1] || []; var objects = []; for (var i = 0; i < results.length; i += 2) { - objects.push({value: results[i], score: parseFloat(results[i + 1])}); + objects.push({ value: results[i], score: parseFloat(results[i + 1]) }); } callback(null, objects); }); diff --git a/src/events.js b/src/events.js index 9665ec265f..a484aa1fef 100644 --- a/src/events.js +++ b/src/events.js @@ -130,6 +130,6 @@ var utils = require('../public/src/utils'); batch.processSortedSet('events:time', function (eids, next) { events.deleteEvents(eids, next); - }, {alwaysStartAt: 0}, callback); + }, { alwaysStartAt: 0 }, callback); }; }(module.exports)); diff --git a/src/groups.js b/src/groups.js index 0d2a22c131..775d19b378 100644 --- a/src/groups.js +++ b/src/groups.js @@ -184,7 +184,7 @@ var utils = require('../public/src/utils'); results.base.isInvited = results.isInvited; results.base.isOwner = results.isOwner; - plugins.fireHook('filter:group.get', {group: results.base}, function (err, data) { + plugins.fireHook('filter:group.get', { group: results.base }, function (err, data) { callback(err, data ? data.group : null); }); }); @@ -274,7 +274,7 @@ var utils = require('../public/src/utils'); if (err) { return callback(err); } - plugins.fireHook('action:group.set', {field: field, value: value, type: 'set'}); + plugins.fireHook('action:group.set', { field: field, value: value, type: 'set' }); callback(); }); }; @@ -358,7 +358,7 @@ var utils = require('../public/src/utils'); privileges.posts.filter('read', pids, uid, next); }, function (pids, next) { - posts.getPostSummaryByPids(pids, uid, {stripTags: false}, next); + posts.getPostSummaryByPids(pids, uid, { stripTags: false }, next); }, ], callback); }; @@ -414,7 +414,7 @@ var utils = require('../public/src/utils'); } }); - plugins.fireHook('filter:groups.get', {groups: groupData}, function (err, data) { + plugins.fireHook('filter:groups.get', { groups: groupData }, function (err, data) { callback(err, data ? data.groups : null); }); }); diff --git a/src/groups/cover.js b/src/groups/cover.js index 0f56621212..d7dd9a8b79 100644 --- a/src/groups/cover.js +++ b/src/groups/cover.js @@ -74,7 +74,7 @@ module.exports = function (Groups) { if (unlinkErr) { winston.error(unlinkErr); } - callback(err, {url: url}); + callback(err, { url: url }); }); }); }; diff --git a/src/groups/create.js b/src/groups/create.js index eef4eda5f0..4b680b8992 100644 --- a/src/groups/create.js +++ b/src/groups/create.js @@ -43,7 +43,7 @@ module.exports = function (Groups) { private: isPrivate, disableJoinRequests: disableJoinRequests, }; - plugins.fireHook('filter:group.create', {group: groupData, data: data}, next); + plugins.fireHook('filter:group.create', { group: groupData, data: data }, next); }, function (results, next) { var tasks = [ diff --git a/src/groups/membership.js b/src/groups/membership.js index 268edc6eca..b0afbbd9c8 100644 --- a/src/groups/membership.js +++ b/src/groups/membership.js @@ -317,7 +317,7 @@ module.exports = function (Groups) { }); function clearCache(uid, groupName) { - pubsub.publish('group:cache:del', {uid: uid, groupName: groupName}); + pubsub.publish('group:cache:del', { uid: uid, groupName: groupName }); cache.del(uid + ':' + groupName); } diff --git a/src/groups/ownership.js b/src/groups/ownership.js index 779644d2a9..0b386bbe35 100644 --- a/src/groups/ownership.js +++ b/src/groups/ownership.js @@ -29,7 +29,7 @@ module.exports = function (Groups) { db.setAdd('group:' + groupName + ':owners', toUid, next); }, function (next) { - plugins.fireHook('action:group.grantOwnership', {uid: toUid, groupName: groupName}); + plugins.fireHook('action:group.grantOwnership', { uid: toUid, groupName: groupName }); next(); }, ], callback); @@ -50,7 +50,7 @@ module.exports = function (Groups) { db.setRemove('group:' + groupName + ':owners', toUid, next); }, function (next) { - plugins.fireHook('action:group.rescindOwnership', {uid: toUid, groupName: groupName}); + plugins.fireHook('action:group.rescindOwnership', { uid: toUid, groupName: groupName }); next(); }, ], callback); diff --git a/src/groups/search.js b/src/groups/search.js index 680dff11e8..44bc835d5c 100644 --- a/src/groups/search.js +++ b/src/groups/search.js @@ -91,7 +91,7 @@ module.exports = function (Groups) { if (err) { return callback(err); } - callback(null, {users: users}); + callback(null, { users: users }); }); return; } diff --git a/src/install.js b/src/install.js index 126c96ae79..a06a138f26 100644 --- a/src/install.js +++ b/src/install.js @@ -272,7 +272,7 @@ function createAdmin(callback) { var adminUid; async.waterfall([ function (next) { - User.create({username: results.username, password: results.password, email: results.email}, next); + User.create({ username: results.username, password: results.password, email: results.email }, next); }, function (uid, next) { adminUid = uid; diff --git a/src/logger.js b/src/logger.js index 3e0c1996d2..c40ae49ae1 100644 --- a/src/logger.js +++ b/src/logger.js @@ -77,13 +77,13 @@ var opts = { var stats = fs.statSync(value); if (stats) { if (stats.isDirectory()) { - stream = fs.createWriteStream(path.join(value, 'nodebb.log'), {flags: 'a'}); + stream = fs.createWriteStream(path.join(value, 'nodebb.log'), { flags: 'a' }); } else { - stream = fs.createWriteStream(value, {flags: 'a'}); + stream = fs.createWriteStream(value, { flags: 'a' }); } } } else { - stream = fs.createWriteStream(value, {flags: 'a'}); + stream = fs.createWriteStream(value, { flags: 'a' }); } if (stream) { @@ -121,7 +121,7 @@ var opts = { /* * Always initialize "ofn" (original function) with the original logger function */ - opts.express.ofn = morgan('combined', {stream: opts.streams.log.f}); + opts.express.ofn = morgan('combined', { stream: opts.streams.log.f }); }; Logger.expressLogger = function (req, res, next) { diff --git a/src/messaging.js b/src/messaging.js index aa24944c96..9f939564dd 100644 --- a/src/messaging.js +++ b/src/messaging.js @@ -170,7 +170,7 @@ Messaging.getRecentChats = function (callerUid, uid, start, stop, callback) { room.usernames = Messaging.generateUsernames(room.users, uid); }); - next(null, {rooms: results.roomData, nextStart: stop + 1}); + next(null, { rooms: results.roomData, nextStart: stop + 1 }); }, ], callback); }; diff --git a/src/messaging/rooms.js b/src/messaging/rooms.js index 0356daec64..ead62fee4d 100644 --- a/src/messaging/rooms.js +++ b/src/messaging/rooms.js @@ -79,7 +79,7 @@ module.exports = function (Messaging) { db.isSortedSetMember('chat:room:' + roomId + ':uids', uid, next); }, function (inRoom, next) { - plugins.fireHook('filter:messaging.isUserInRoom', {uid: uid, roomId: roomId, inRoom: inRoom}, next); + plugins.fireHook('filter:messaging.isUserInRoom', { uid: uid, roomId: roomId, inRoom: inRoom }, next); }, function (data, next) { next(null, data.inRoom); @@ -214,7 +214,7 @@ module.exports = function (Messaging) { db.isSortedSetMember('chat:room:' + roomId + ':uids', uid, next); }, function (inRoom, next) { - plugins.fireHook('filter:messaging.canReply', {uid: uid, roomId: roomId, inRoom: inRoom, canReply: inRoom}, next); + plugins.fireHook('filter:messaging.canReply', { uid: uid, roomId: roomId, inRoom: inRoom, canReply: inRoom }, next); }, function (data, next) { next(null, data.canReply); diff --git a/src/meta.js b/src/meta.js index d4aa3cae49..6cbccd70a1 100644 --- a/src/meta.js +++ b/src/meta.js @@ -47,7 +47,7 @@ var utils = require('../public/src/utils'); }; Meta.restart = function () { - pubsub.publish('meta:restart', {hostname: os.hostname()}); + pubsub.publish('meta:restart', { hostname: os.hostname() }); restart(); }; diff --git a/src/meta/js.js b/src/meta/js.js index 189c0757de..f028717ba7 100644 --- a/src/meta/js.js +++ b/src/meta/js.js @@ -235,7 +235,7 @@ module.exports = function (Meta) { /** * otherwise, just clean up --debug/--debug-brk options which are set up by default from the parent one */ - forkProcessParams = {execArgv: []}; + forkProcessParams = { execArgv: [] }; } return forkProcessParams; diff --git a/src/middleware/admin.js b/src/middleware/admin.js index 02c15c099d..fb950b7480 100644 --- a/src/middleware/admin.js +++ b/src/middleware/admin.js @@ -64,7 +64,7 @@ module.exports = function (middleware) { } var arr = []; scripts.forEach(function (script) { - arr.push({src: script}); + arr.push({ src: script }); }); next(null, arr); @@ -107,7 +107,7 @@ module.exports = function (middleware) { bodyClass: data.bodyClass, }; - templateValues.template = {name: res.locals.template}; + templateValues.template = { name: res.locals.template }; templateValues.template[res.locals.template] = true; req.app.render('admin/header', templateValues, next); diff --git a/src/middleware/header.js b/src/middleware/header.js index 670bf83303..1928169ae6 100644 --- a/src/middleware/header.js +++ b/src/middleware/header.js @@ -28,7 +28,7 @@ module.exports = function (middleware) { controllers.api.getConfig(req, res, next); }, plugins: function (next) { - plugins.fireHook('filter:middleware.buildHeader', {req: req, locals: res.locals}, next); + plugins.fireHook('filter:middleware.buildHeader', { req: req, locals: res.locals }, next); }, }, next); }, @@ -139,18 +139,18 @@ module.exports = function (middleware) { templateValues.privateUserInfo = parseInt(meta.config.privateUserInfo, 10) === 1; templateValues.privateTagListing = parseInt(meta.config.privateTagListing, 10) === 1; - templateValues.template = {name: res.locals.template}; + templateValues.template = { name: res.locals.template }; templateValues.template[res.locals.template] = true; templateValues.scripts = results.scripts.map(function (script) { - return {src: script}; + return { src: script }; }); if (req.route && req.route.path === '/') { modifyTitle(templateValues); } - plugins.fireHook('filter:middleware.renderHeader', {templateValues: templateValues, req: req, res: res}, function (err, data) { + plugins.fireHook('filter:middleware.renderHeader', { templateValues: templateValues, req: req, res: res }, function (err, data) { if (err) { return callback(err); } @@ -161,7 +161,7 @@ module.exports = function (middleware) { }; middleware.renderFooter = function (req, res, data, callback) { - plugins.fireHook('filter:middleware.renderFooter', {templateValues: data, req: req, res: res}, function (err, data) { + plugins.fireHook('filter:middleware.renderFooter', { templateValues: data, req: req, res: res }, function (err, data) { if (err) { return callback(err); } diff --git a/src/middleware/index.js b/src/middleware/index.js index e9a172c326..798067429a 100644 --- a/src/middleware/index.js +++ b/src/middleware/index.js @@ -80,7 +80,7 @@ middleware.pageView = function (req, res, next) { uid: req.uid, }); - plugins.fireHook('action:middleware.pageView', {req: req}); + plugins.fireHook('action:middleware.pageView', { req: req }); if (req.user) { user.updateLastOnlineTime(req.user.uid); diff --git a/src/middleware/render.js b/src/middleware/render.js index 0716869649..9109e8daaf 100644 --- a/src/middleware/render.js +++ b/src/middleware/render.js @@ -36,15 +36,15 @@ module.exports = function (middleware) { function (next) { options.loggedIn = !!req.uid; options.relative_path = nconf.get('relative_path'); - options.template = {name: template}; + options.template = { name: template }; options.template[template] = true; options.url = (req.baseUrl + req.path).replace(/^\/api/, ''); options.bodyClass = buildBodyClass(req); - plugins.fireHook('filter:' + template + '.build', {req: req, res: res, templateData: options}, next); + plugins.fireHook('filter:' + template + '.build', { req: req, res: res, templateData: options }, next); }, function (data, next) { - plugins.fireHook('filter:middleware.render', {req: res, res: res, templateData: data.templateData}, next); + plugins.fireHook('filter:middleware.render', { req: res, res: res, templateData: data.templateData }, next); }, function (data, next) { options = data.templateData; diff --git a/src/middleware/user.js b/src/middleware/user.js index 881820da0c..ed56ad6d9e 100644 --- a/src/middleware/user.js +++ b/src/middleware/user.js @@ -141,7 +141,7 @@ module.exports = function (middleware) { return next(); } - res.status(403).render('403', {title: '[[global:403.title]]'}); + res.status(403).render('403', { title: '[[global:403.title]]' }); }; middleware.registrationComplete = function (req, res, next) { diff --git a/src/notifications.js b/src/notifications.js index 0fad742e1a..c2c8f01874 100644 --- a/src/notifications.js +++ b/src/notifications.js @@ -171,7 +171,7 @@ var utils = require('../public/src/utils'); setTimeout(function () { batch.processArray(uids, function (uids, next) { pushToUids(uids, notification, next); - }, {interval: 1000}, function (err) { + }, { interval: 1000 }, function (err) { if (err) { winston.error(err.stack); } @@ -188,7 +188,7 @@ var utils = require('../public/src/utils'); async.waterfall([ function (next) { - plugins.fireHook('filter:notification.push', {notification: notification, uids: uids}, next); + plugins.fireHook('filter:notification.push', { notification: notification, uids: uids }, next); }, function (data, next) { uids = data.uids; @@ -218,7 +218,7 @@ var utils = require('../public/src/utils'); }); } - plugins.fireHook('action:notification.pushed', {notification: notification, uids: uids}); + plugins.fireHook('action:notification.pushed', { notification: notification, uids: uids }); next(); }, ], callback); diff --git a/src/pagination.js b/src/pagination.js index 6f61c80def..c0332ebd14 100644 --- a/src/pagination.js +++ b/src/pagination.js @@ -7,8 +7,8 @@ var pagination = {}; pagination.create = function (currentPage, pageCount, queryObj) { if (pageCount <= 1) { return { - prev: {page: 1, active: currentPage > 1}, - next: {page: 1, active: currentPage < pageCount}, + prev: { page: 1, active: currentPage > 1 }, + next: { page: 1, active: currentPage < pageCount }, rel: [], pages: [], currentPage: 1, @@ -42,22 +42,22 @@ pagination.create = function (currentPage, pageCount, queryObj) { var pages = pagesToShow.map(function (page) { queryObj.page = page; - return {page: page, active: page === currentPage, qs: qs.stringify(queryObj)}; + return { page: page, active: page === currentPage, qs: qs.stringify(queryObj) }; }); for (i = pages.length - 1; i > 0; i -= 1) { if (pages[i].page - 2 === pages[i - 1].page) { - pages.splice(i, 0, {page: pages[i].page - 1, active: false, qs: qs.stringify(queryObj)}); + pages.splice(i, 0, { page: pages[i].page - 1, active: false, qs: qs.stringify(queryObj) }); } else if (pages[i].page - 1 !== pages[i - 1].page) { - pages.splice(i, 0, {separator: true}); + pages.splice(i, 0, { separator: true }); } } - var data = {rel: [], pages: pages, currentPage: currentPage, pageCount: pageCount}; + var data = { rel: [], pages: pages, currentPage: currentPage, pageCount: pageCount }; queryObj.page = previous; - data.prev = {page: previous, active: currentPage > 1, qs: qs.stringify(queryObj)}; + data.prev = { page: previous, active: currentPage > 1, qs: qs.stringify(queryObj) }; queryObj.page = next; - data.next = {page: next, active: currentPage < pageCount, qs: qs.stringify(queryObj)}; + data.next = { page: next, active: currentPage < pageCount, qs: qs.stringify(queryObj) }; if (currentPage < pageCount) { data.rel.push({ diff --git a/src/password.js b/src/password.js index c98b2f5ba6..d4fd1b0f8d 100644 --- a/src/password.js +++ b/src/password.js @@ -4,17 +4,17 @@ var fork = require('child_process').fork; module.hash = function (rounds, password, callback) { - forkChild({type: 'hash', rounds: rounds, password: password}, callback); + forkChild({ type: 'hash', rounds: rounds, password: password }, callback); }; module.compare = function (password, hash, callback) { - forkChild({type: 'compare', password: password, hash: hash}, callback); + forkChild({ type: 'compare', password: password, hash: hash }, callback); }; function forkChild(message, callback) { var forkProcessParams = {}; if (global.v8debug || parseInt(process.execArgv.indexOf('--debug'), 10) !== -1) { - forkProcessParams = {execArgv: ['--debug=' + (5859), '--nolazy']}; + forkProcessParams = { execArgv: ['--debug=' + (5859), '--nolazy'] }; } var child = fork('./bcrypt', [], forkProcessParams); diff --git a/src/plugins.js b/src/plugins.js index 75b3c49b23..dd2423f70f 100644 --- a/src/plugins.js +++ b/src/plugins.js @@ -135,7 +135,7 @@ var middleware; }; var controllers = require('./controllers'); - Plugins.fireHook('static:app.load', {app: app, router: router, middleware: middleware, controllers: controllers}, function (err) { + Plugins.fireHook('static:app.load', { app: app, router: router, middleware: middleware, controllers: controllers }, function (err) { if (err) { return winston.error('[plugins] Encountered error while executing post-router plugins hooks: ' + err.message); } diff --git a/src/plugins/install.js b/src/plugins/install.js index d3d70d9034..be97ad4a68 100644 --- a/src/plugins/install.js +++ b/src/plugins/install.js @@ -57,12 +57,12 @@ module.exports = function (Plugins) { winston.warn('[plugins] Could not toggle active state on plugin \'' + id + '\''); return callback(err); } - callback(null, {id: id, active: !isActive}); + callback(null, { id: id, active: !isActive }); }); }; Plugins.toggleInstall = function (id, version, callback) { - pubsub.publish('plugins:toggleInstall', {hostname: os.hostname(), id: id, version: version}); + pubsub.publish('plugins:toggleInstall', { hostname: os.hostname(), id: id, version: version }); toggleInstall(id, version, callback); }; @@ -112,7 +112,7 @@ module.exports = function (Plugins) { } Plugins.upgrade = function (id, version, callback) { - pubsub.publish('plugins:upgrade', {hostname: os.hostname(), id: id, version: version}); + pubsub.publish('plugins:upgrade', { hostname: os.hostname(), id: id, version: version }); upgrade(id, version, callback); }; diff --git a/src/posts.js b/src/posts.js index 28126c7e0e..c7e7ec3e0a 100644 --- a/src/posts.js +++ b/src/posts.js @@ -65,7 +65,7 @@ var plugins = require('./plugins'); }, next); }, function (posts, next) { - plugins.fireHook('filter:post.getPosts', {posts: posts, uid: uid}, next); + plugins.fireHook('filter:post.getPosts', { posts: posts, uid: uid }, next); }, function (data, next) { if (!data || !Array.isArray(data.posts)) { @@ -86,10 +86,10 @@ var plugins = require('./plugins'); privileges.posts.filter('read', pids, uid, next); }, function (pids, next) { - Posts.getPostSummaryByPids(pids, uid, {stripTags: false}, next); + Posts.getPostSummaryByPids(pids, uid, { stripTags: false }, next); }, function (posts, next) { - next(null, {posts: posts, nextStart: stop + 1}); + next(null, { posts: posts, nextStart: stop + 1 }); }, ], callback); }; @@ -122,7 +122,7 @@ var plugins = require('./plugins'); data.pid = pid; - plugins.fireHook('filter:post.getFields', {posts: [data], fields: fields}, function (err, data) { + plugins.fireHook('filter:post.getFields', { posts: [data], fields: fields }, function (err, data) { callback(err, (data && Array.isArray(data.posts) && data.posts.length) ? data.posts[0] : null); }); }); @@ -141,7 +141,7 @@ var plugins = require('./plugins'); if (err) { return callback(err); } - plugins.fireHook('filter:post.getFields', {posts: posts, fields: fields}, function (err, data) { + plugins.fireHook('filter:post.getFields', { posts: posts, fields: fields }, function (err, data) { callback(err, (data && Array.isArray(data.posts)) ? data.posts : null); }); }); @@ -250,7 +250,7 @@ var plugins = require('./plugins'); ], next); }, function (next) { - Posts.setPostFields(postData.pid, {upvotes: postData.upvotes, downvotes: postData.downvotes}, next); + Posts.setPostFields(postData.pid, { upvotes: postData.upvotes, downvotes: postData.downvotes }, next); }, ], function (err) { callback(err); diff --git a/src/posts/create.js b/src/posts/create.js index 43cd0817a3..e8e24a5585 100644 --- a/src/posts/create.js +++ b/src/posts/create.js @@ -59,7 +59,7 @@ module.exports = function (Posts) { plugins.fireHook('filter:post.save', postData, next); }, function (postData, next) { - plugins.fireHook('filter:post.create', {post: postData, data: data}, next); + plugins.fireHook('filter:post.create', { post: postData, data: data }, next); }, function (data, next) { postData = data.post; diff --git a/src/posts/delete.js b/src/posts/delete.js index 8076beb06b..63f511481b 100644 --- a/src/posts/delete.js +++ b/src/posts/delete.js @@ -14,10 +14,10 @@ module.exports = function (Posts) { var postData; async.waterfall([ function (next) { - plugins.fireHook('filter:post.delete', {pid: pid, uid: uid}, next); + plugins.fireHook('filter:post.delete', { pid: pid, uid: uid }, next); }, function (data, next) { - Posts.setPostFields(pid, {deleted: 1, deleterUid: uid}, next); + Posts.setPostFields(pid, { deleted: 1, deleterUid: uid }, next); }, function (next) { Posts.getPostFields(pid, ['pid', 'tid', 'uid', 'timestamp'], next); @@ -50,10 +50,10 @@ module.exports = function (Posts) { var postData; async.waterfall([ function (next) { - plugins.fireHook('filter:post.restore', {pid: pid, uid: uid}, next); + plugins.fireHook('filter:post.restore', { pid: pid, uid: uid }, next); }, function (data, next) { - Posts.setPostFields(pid, {deleted: 0, deleterUid: 0}, next); + Posts.setPostFields(pid, { deleted: 0, deleterUid: 0 }, next); }, function (next) { Posts.getPostFields(pid, ['pid', 'tid', 'uid', 'content', 'timestamp'], next); @@ -121,7 +121,7 @@ module.exports = function (Posts) { if (!exists) { return callback(); } - plugins.fireHook('filter:post.purge', {pid: pid, uid: uid}, next); + plugins.fireHook('filter:post.purge', { pid: pid, uid: uid }, next); }, function (data, next) { async.parallel([ diff --git a/src/posts/edit.js b/src/posts/edit.js index 6d133f1395..863888a6ce 100644 --- a/src/posts/edit.js +++ b/src/posts/edit.js @@ -44,7 +44,7 @@ module.exports = function (Posts) { if (data.handle) { postData.handle = data.handle; } - plugins.fireHook('filter:post.edit', {req: data.req, post: postData, data: data, uid: data.uid}, next); + plugins.fireHook('filter:post.edit', { req: data.req, post: postData, data: data, uid: data.uid }, next); }, function (result, next) { postData = result.post; @@ -122,7 +122,7 @@ module.exports = function (Posts) { async.waterfall([ function (next) { - plugins.fireHook('filter:topic.edit', {req: data.req, topic: topicData, data: data}, next); + plugins.fireHook('filter:topic.edit', { req: data.req, topic: topicData, data: data }, next); }, function (results, next) { db.setObject('topic:' + tid, results.topic, next); diff --git a/src/posts/flags.js b/src/posts/flags.js index a1ee62ecd4..4bab4cc771 100644 --- a/src/posts/flags.js +++ b/src/posts/flags.js @@ -175,7 +175,7 @@ module.exports = function (Posts) { async.waterfall([ function (next) { if (Array.isArray(set)) { - db.getSortedSetRevIntersect({sets: set, start: start, stop: -1, aggregate: 'MAX'}, next); + db.getSortedSetRevIntersect({ sets: set, start: start, stop: -1, aggregate: 'MAX' }, next); } else { db.getSortedSetRevRange(set, start, -1, next); } @@ -193,7 +193,7 @@ module.exports = function (Posts) { function (posts, next) { var count = posts.length; var end = stop - start + 1; - next(null, {posts: posts.slice(0, stop === -1 ? undefined : end), count: count}); + next(null, { posts: posts.slice(0, stop === -1 ? undefined : end), count: count }); }, ], callback); }; @@ -208,7 +208,7 @@ module.exports = function (Posts) { }, next); }, posts: function (next) { - Posts.getPostSummaryByPids(pids, uid, {stripTags: false, extraFields: ['flags', 'flag:assignee', 'flag:state', 'flag:notes', 'flag:history']}, next); + Posts.getPostSummaryByPids(pids, uid, { stripTags: false, extraFields: ['flags', 'flag:assignee', 'flag:state', 'flag:notes', 'flag:history'] }, next); }, }, next); }, @@ -218,7 +218,7 @@ module.exports = function (Posts) { var uid = uidReason.split(':')[0]; var reason = uidReason.substr(uidReason.indexOf(':') + 1); user.getUserFields(uid, ['username', 'userslug', 'picture'], function (err, userData) { - next(err, {user: userData, reason: reason}); + next(err, { user: userData, reason: reason }); }); }, next); }, function (err, reasons) { diff --git a/src/posts/parse.js b/src/posts/parse.js index 02cd9fa307..ff8eb29ce7 100644 --- a/src/posts/parse.js +++ b/src/posts/parse.js @@ -26,7 +26,7 @@ module.exports = function (Posts) { postData.content = postData.content.toString(); } - plugins.fireHook('filter:parse.post', {postData: postData}, function (err, data) { + plugins.fireHook('filter:parse.post', { postData: postData }, function (err, data) { if (err) { return callback(err); } @@ -43,7 +43,7 @@ module.exports = function (Posts) { Posts.parseSignature = function (userData, uid, callback) { userData.signature = sanitizeSignature(userData.signature || ''); - plugins.fireHook('filter:parse.signature', {userData: userData, uid: uid}, callback); + plugins.fireHook('filter:parse.signature', { userData: userData, uid: uid }, callback); }; Posts.relativeToAbsolute = function (content) { diff --git a/src/posts/recent.js b/src/posts/recent.js index 1c4cfd6b15..8936ee3633 100644 --- a/src/posts/recent.js +++ b/src/posts/recent.js @@ -28,7 +28,7 @@ module.exports = function (Posts) { privileges.posts.filter('read', pids, uid, next); }, function (pids, next) { - Posts.getPostSummaryByPids(pids, uid, {stripTags: true}, next); + Posts.getPostSummaryByPids(pids, uid, { stripTags: true }, next); }, ], callback); }; diff --git a/src/posts/summary.js b/src/posts/summary.js index 9e88303c1d..93e322229d 100644 --- a/src/posts/summary.js +++ b/src/posts/summary.js @@ -80,7 +80,7 @@ module.exports = function (Posts) { parsePosts(posts, options, next); }, function (posts, next) { - plugins.fireHook('filter:post.getPostSummaryByPids', {posts: posts, uid: uid}, next); + plugins.fireHook('filter:post.getPostSummaryByPids', { posts: posts, uid: uid }, next); }, function (data, next) { next(null, data.posts); @@ -128,7 +128,7 @@ module.exports = function (Posts) { }); categories.getCategoriesFields(cids, ['cid', 'name', 'icon', 'slug', 'parentCid', 'bgColor', 'color'], function (err, categories) { - callback(err, {topics: topics, categories: categories}); + callback(err, { topics: topics, categories: categories }); }); }); } diff --git a/src/posts/user.js b/src/posts/user.js index 74bc16b562..59906bf2ca 100644 --- a/src/posts/user.js +++ b/src/posts/user.js @@ -71,7 +71,7 @@ module.exports = function (Posts) { Posts.parseSignature(userData, uid, next); }, customProfileInfo: function (next) { - plugins.fireHook('filter:posts.custom_profile_info', {profile: [], uid: userData.uid}, next); + plugins.fireHook('filter:posts.custom_profile_info', { profile: [], uid: userData.uid }, next); }, }, function (err, results) { if (err) { diff --git a/src/posts/votes.js b/src/posts/votes.js index 449e929fd7..97f88b3820 100644 --- a/src/posts/votes.js +++ b/src/posts/votes.js @@ -63,7 +63,7 @@ module.exports = function (Posts) { Posts.hasVoted = function (pid, uid, callback) { if (!parseInt(uid, 10)) { - return callback(null, {upvoted: false, downvoted: false}); + return callback(null, { upvoted: false, downvoted: false }); } db.isMemberOfSets(['pid:' + pid + ':upvote', 'pid:' + pid + ':downvote'], uid, function (err, hasVoted) { @@ -71,14 +71,14 @@ module.exports = function (Posts) { return callback(err); } - callback(null, {upvoted: hasVoted[0], downvoted: hasVoted[1]}); + callback(null, { upvoted: hasVoted[0], downvoted: hasVoted[1] }); }); }; Posts.getVoteStatusByPostIDs = function (pids, uid, callback) { if (!parseInt(uid, 10)) { var data = pids.map(function () { return false; }); - return callback(null, {upvotes: data, downvotes: data}); + return callback(null, { upvotes: data, downvotes: data }); } var upvoteSets = []; var downvoteSets = []; diff --git a/src/privileges/categories.js b/src/privileges/categories.js index 5e16fd1b17..ff3d16148f 100644 --- a/src/privileges/categories.js +++ b/src/privileges/categories.js @@ -17,18 +17,18 @@ module.exports = function (privileges) { // Method used in admin/category controller to show all users/groups with privs in that given cid var privilegeLabels = [ - {name: 'Find Category'}, - {name: 'Access Category'}, - {name: 'Access Topics'}, - {name: 'Create Topics'}, - {name: 'Reply to Topics'}, - {name: 'Edit Posts'}, - {name: 'Delete Posts'}, - {name: 'Delete Topics'}, - {name: 'Upload Images'}, - {name: 'Upload Files'}, - {name: 'Purge'}, - {name: 'Moderate'}, + { name: 'Find Category' }, + { name: 'Access Category' }, + { name: 'Access Topics' }, + { name: 'Create Topics' }, + { name: 'Reply to Topics' }, + { name: 'Edit Posts' }, + { name: 'Delete Posts' }, + { name: 'Delete Topics' }, + { name: 'Upload Images' }, + { name: 'Upload Files' }, + { name: 'Purge' }, + { name: 'Moderate' }, ]; async.parallel({ diff --git a/src/privileges/posts.js b/src/privileges/posts.js index a27dd51a93..08703ed3f9 100644 --- a/src/privileges/posts.js +++ b/src/privileges/posts.js @@ -144,7 +144,7 @@ module.exports = function (privileges) { return callback(err); } if (results.isAdminOrMod) { - return callback(null, {flag: true}); + return callback(null, { flag: true }); } callback(null, results.isEditable); @@ -172,24 +172,24 @@ module.exports = function (privileges) { } if (results.isAdminOrMod) { - return callback(null, {flag: true}); + return callback(null, { flag: true }); } if (results.isLocked) { - return callback(null, {flag: false, message: '[[error:topic-locked]]'}); + return callback(null, { flag: false, message: '[[error:topic-locked]]' }); } if (!results['posts:delete']) { - return callback(null, {flag: false, message: '[[error:no-privileges]]'}); + return callback(null, { flag: false, message: '[[error:no-privileges]]' }); } var postDeleteDuration = parseInt(meta.config.postDeleteDuration, 10); if (postDeleteDuration && (Date.now() - parseInt(postData.timestamp, 10) > postDeleteDuration * 1000)) { - return callback(null, {flag: false, message: '[[error:post-delete-duration-expired, ' + meta.config.postDeleteDuration + ']]'}); + return callback(null, { flag: false, message: '[[error:post-delete-duration-expired, ' + meta.config.postDeleteDuration + ']]' }); } var deleterUid = parseInt(postData.deleterUid, 10) || 0; var flag = results.isOwner && (deleterUid === 0 || deleterUid === parseInt(postData.uid, 10)); - callback(null, {flag: flag, message: '[[error:no-privileges]]'}); + callback(null, { flag: flag, message: '[[error:no-privileges]]' }); }); }; @@ -230,13 +230,13 @@ module.exports = function (privileges) { tid = postData.tid; var postEditDuration = parseInt(meta.config.postEditDuration, 10); if (postEditDuration && Date.now() - parseInt(postData.timestamp, 10) > postEditDuration * 1000) { - return callback(null, {flag: false, message: '[[error:post-edit-duration-expired, ' + meta.config.postEditDuration + ']]'}); + return callback(null, { flag: false, message: '[[error:post-edit-duration-expired, ' + meta.config.postEditDuration + ']]' }); } topics.isLocked(postData.tid, next); }, function (isLocked, next) { if (isLocked) { - return callback(null, {flag: false, message: '[[error:topic-locked]]'}); + return callback(null, { flag: false, message: '[[error:topic-locked]]' }); } async.parallel({ @@ -245,7 +245,7 @@ module.exports = function (privileges) { }, next); }, function (result, next) { - next(null, {flag: result.owner && result.edit, message: '[[error:no-privileges]]'}); + next(null, { flag: result.owner && result.edit, message: '[[error:no-privileges]]' }); }, ], callback); } diff --git a/src/privileges/users.js b/src/privileges/users.js index 9d8d55b6f5..a73437db75 100644 --- a/src/privileges/users.js +++ b/src/privileges/users.js @@ -123,7 +123,7 @@ module.exports = function (privileges) { } function filterIsModerator(cid, uid, isModerator, callback) { - plugins.fireHook('filter:user.isModerator', {uid: uid, cid: cid, isModerator: isModerator}, function (err, data) { + plugins.fireHook('filter:user.isModerator', { uid: uid, cid: cid, isModerator: isModerator }, function (err, data) { if (err) { return callback(err); } diff --git a/src/pubsub.js b/src/pubsub.js index 9f7d3fe0d5..b33a03b6bf 100644 --- a/src/pubsub.js +++ b/src/pubsub.js @@ -37,7 +37,7 @@ util.inherits(PubSub, EventEmitter); PubSub.prototype.publish = function (event, data) { if (this.pubClient) { - this.pubClient.publish(channelName, JSON.stringify({event: event, data: data})); + this.pubClient.publish(channelName, JSON.stringify({ event: event, data: data })); } else { this.emit(event, data); } diff --git a/src/rewards/index.js b/src/rewards/index.js index c32bc94c0e..38105dd5ff 100644 --- a/src/rewards/index.js +++ b/src/rewards/index.js @@ -100,7 +100,7 @@ function checkCondition(reward, method, callback) { return callback(err); } - plugins.fireHook('filter:rewards.checkConditional:' + reward.conditional, {left: value, right: reward.value}, function (err, bool) { + plugins.fireHook('filter:rewards.checkConditional:' + reward.conditional, { left: value, right: reward.value }, function (err, bool) { callback(err || bool); }); }); @@ -113,7 +113,7 @@ function giveRewards(uid, rewards, callback) { } async.each(rewards, function (reward, next) { - plugins.fireHook('action:rewards.award:' + reward.rid, {uid: uid, reward: rewardData[rewards.indexOf(reward)]}); + plugins.fireHook('action:rewards.award:' + reward.rid, { uid: uid, reward: rewardData[rewards.indexOf(reward)] }); db.sortedSetIncrBy('uid:' + uid + ':rewards', 1, reward.id, next); }, callback); }); diff --git a/src/routes/authentication.js b/src/routes/authentication.js index 6a3e5ef197..0e1d2aa6e2 100644 --- a/src/routes/authentication.js +++ b/src/routes/authentication.js @@ -40,7 +40,7 @@ winston.warn('[authentication] Login override detected, skipping local login strategy.'); plugins.fireHook('action:auth.overrideLogin'); } else { - passport.use(new passportLocal({passReqToCallback: true}, controllers.authentication.localLogin)); + passport.use(new passportLocal({ passReqToCallback: true }, controllers.authentication.localLogin)); } plugins.fireHook('filter:auth.init', loginStrategies, function (err) { diff --git a/src/search.js b/src/search.js index 82886a1d18..15ebb88184 100644 --- a/src/search.js +++ b/src/search.js @@ -76,7 +76,7 @@ function searchInContent(data, callback) { var matchCount = 0; if (!results || (!results.pids.length && !results.tids.length)) { - return callback(null, {posts: [], matchCount: matchCount, pageCount: 1}); + return callback(null, { posts: [], matchCount: matchCount, pageCount: 1 }); } async.waterfall([ @@ -105,7 +105,7 @@ function searchInContent(data, callback) { posts.getPostSummaryByPids(pids, data.uid, {}, next); }, function (posts, next) { - next(null, {posts: posts, matchCount: matchCount, pageCount: Math.max(1, Math.ceil(parseInt(matchCount, 10) / 10))}); + next(null, { posts: posts, matchCount: matchCount, pageCount: Math.max(1, Math.ceil(parseInt(matchCount, 10) / 10)) }); }, ], callback); }); diff --git a/src/sitemap.js b/src/sitemap.js index dbd881a067..d6f6fa39fe 100644 --- a/src/sitemap.js +++ b/src/sitemap.js @@ -72,7 +72,7 @@ sitemap.getPages = function (callback) { priority: 0.4, }]; - plugins.fireHook('filter:sitemap.getPages', {urls: urls}, function (err, data) { + plugins.fireHook('filter:sitemap.getPages', { urls: urls }, function (err, data) { if (err) { return callback(err); } diff --git a/src/socket.io/admin.js b/src/socket.io/admin.js index 0658d48a34..0e7c277dfd 100644 --- a/src/socket.io/admin.js +++ b/src/socket.io/admin.js @@ -169,7 +169,7 @@ SocketAdmin.config.setMultiple = function (socket, data, callback) { value: data[field], }; plugins.fireHook('action:config.set', setting); - logger.monitorConfig({io: index.server}, setting); + logger.monitorConfig({ io: index.server }, setting); } } setImmediate(next); diff --git a/src/socket.io/admin/categories.js b/src/socket.io/admin/categories.js index 3f81d2a5a7..50c2061038 100644 --- a/src/socket.io/admin/categories.js +++ b/src/socket.io/admin/categories.js @@ -23,7 +23,7 @@ Categories.getAll = function (socket, data, callback) { async.apply(categories.getCategoriesData), function (categories, next) { // Hook changes, there is no req, and res - plugins.fireHook('filter:admin.categories.get', {categories: categories}, next); + plugins.fireHook('filter:admin.categories.get', { categories: categories }, next); }, function (result, next) { next(null, categories.getTree(result.categories, 0)); diff --git a/src/socket.io/admin/rooms.js b/src/socket.io/admin/rooms.js index 96144fbeaf..544bdc04da 100644 --- a/src/socket.io/admin/rooms.js +++ b/src/socket.io/admin/rooms.js @@ -22,7 +22,7 @@ pubsub.on('sync:stats:start', function () { if (err) { return winston.error(err); } - pubsub.publish('sync:stats:end', {stats: stats, id: os.hostname() + ':' + nconf.get('port')}); + pubsub.publish('sync:stats:end', { stats: stats, id: os.hostname() + ':' + nconf.get('port') }); }); }); @@ -81,7 +81,7 @@ SocketRooms.getAll = function (socket, data, callback) { totals.users.category += stats[instance].users.category; stats[instance].topics.forEach(function (topic) { - totals.topics[topic.tid] = totals.topics[topic.tid] || {count: 0, tid: topic.tid}; + totals.topics[topic.tid] = totals.topics[topic.tid] || { count: 0, tid: topic.tid }; totals.topics[topic.tid].count += topic.count; }); } @@ -89,7 +89,7 @@ SocketRooms.getAll = function (socket, data, callback) { var topTenTopics = []; Object.keys(totals.topics).forEach(function (tid) { - topTenTopics.push({tid: tid, count: totals.topics[tid].count}); + topTenTopics.push({ tid: tid, count: totals.topics[tid].count }); }); topTenTopics = topTenTopics.sort(function (a, b) { @@ -165,7 +165,7 @@ SocketRooms.getLocalStats = function (callback) { tid = room.match(/^topic_(\d+)/); if (tid) { socketData.users.topics += roomClients[room].length; - topTenTopics.push({tid: tid[1], count: roomClients[room].length}); + topTenTopics.push({ tid: tid[1], count: roomClients[room].length }); } else if (room.match(/^category/)) { socketData.users.category += roomClients[room].length; } diff --git a/src/socket.io/admin/user.js b/src/socket.io/admin/user.js index aca1bff8a8..8770381aae 100644 --- a/src/socket.io/admin/user.js +++ b/src/socket.io/admin/user.js @@ -196,7 +196,7 @@ User.search = function (socket, data, callback) { var searchData; async.waterfall([ function (next) { - user.search({query: data.query, searchBy: data.searchBy, uid: socket.uid}, next); + user.search({ query: data.query, searchBy: data.searchBy, uid: socket.uid }, next); }, function (_searchData, next) { searchData = _searchData; diff --git a/src/socket.io/groups.js b/src/socket.io/groups.js index 3b27b7fdc2..16240a506b 100644 --- a/src/socket.io/groups.js +++ b/src/socket.io/groups.js @@ -265,7 +265,7 @@ SocketGroups.loadMoreMembers = function (socket, data, callback) { return callback(err); } - callback(null, {users: users, nextStart: data.after + 10}); + callback(null, { users: users, nextStart: data.after + 10 }); }); }; diff --git a/src/socket.io/helpers.js b/src/socket.io/helpers.js index 27aeef6392..ce2ee7b30c 100644 --- a/src/socket.io/helpers.js +++ b/src/socket.io/helpers.js @@ -32,7 +32,7 @@ SocketHelpers.notifyNew = function (uid, type, result) { filterTidCidIgnorers(uids, result.posts[0].topic.tid, result.posts[0].topic.cid, next); }, function (uids, next) { - plugins.fireHook('filter:sockets.sendNewPostToUids', {uidsTo: uids, uidFrom: uid, type: type}, next); + plugins.fireHook('filter:sockets.sendNewPostToUids', { uidsTo: uids, uidFrom: uid, type: type }, next); }, ], function (err, data) { if (err) { diff --git a/src/socket.io/index.js b/src/socket.io/index.js index fcce4ecc69..21edc91453 100644 --- a/src/socket.io/index.js +++ b/src/socket.io/index.js @@ -92,7 +92,7 @@ function onMessage(socket, payload) { if (process.env.NODE_ENV === 'development') { winston.warn('[socket.io] Unrecognized message: ' + eventName); } - return callback({message: '[[error:invalid-event]]'}); + return callback({ message: '[[error:invalid-event]]' }); } socket.previousEvents = socket.previousEvents || []; @@ -124,7 +124,7 @@ function onMessage(socket, payload) { methodToCall(socket, params, next); }, ], function (err, result) { - callback(err ? {message: err.message} : null, result); + callback(err ? { message: err.message } : null, result); }); } @@ -198,7 +198,7 @@ function addRedisAdapter(io) { var redis = require('../database/redis'); var pub = redis.connect(); var sub = redis.connect(); - io.adapter(redisAdapter({pubClient: pub, subClient: sub})); + io.adapter(redisAdapter({ pubClient: pub, subClient: sub })); } else if (nconf.get('isCluster') === 'true') { winston.warn('[socket.io] Clustering detected, you are advised to configure Redis as a websocket store.'); } diff --git a/src/socket.io/modules.js b/src/socket.io/modules.js index 64f8fd0a5a..bd4c7febc2 100644 --- a/src/socket.io/modules.js +++ b/src/socket.io/modules.js @@ -254,7 +254,7 @@ SocketModules.chats.markRead = function (socket, roomId, callback) { } Messaging.pushUnreadCount(socket.uid); - server.in('uid_' + socket.uid).emit('event:chats.markedAsRead', {roomId: roomId}); + server.in('uid_' + socket.uid).emit('event:chats.markedAsRead', { roomId: roomId }); if (results.uidsInRoom.indexOf(socket.uid.toString()) === -1) { return callback(); @@ -300,7 +300,7 @@ SocketModules.chats.renameRoom = function (socket, data, callback) { Messaging.getUidsInRoom(data.roomId, 0, -1, next); }, function (uids, next) { - var eventData = {roomId: data.roomId, newName: validator.escape(String(data.newName))}; + var eventData = { roomId: data.roomId, newName: validator.escape(String(data.newName)) }; uids.forEach(function (uid) { server.in('uid_' + uid).emit('event:chats.roomRename', eventData); }); diff --git a/src/socket.io/notifications.js b/src/socket.io/notifications.js index 6ab97c5dc8..66e5135ed6 100644 --- a/src/socket.io/notifications.js +++ b/src/socket.io/notifications.js @@ -29,7 +29,7 @@ SocketNotifs.loadMore = function (socket, data, callback) { user.notifications.getAll(socket.uid, start, stop, next); }, function (notifications, next) { - next(null, {notifications: notifications, nextStart: stop}); + next(null, { notifications: notifications, nextStart: stop }); }, ], callback); }; diff --git a/src/socket.io/posts/flag.js b/src/socket.io/posts/flag.js index e5a89e778f..dccf302c43 100644 --- a/src/socket.io/posts/flag.js +++ b/src/socket.io/posts/flag.js @@ -99,7 +99,7 @@ module.exports = function (SocketPosts) { return next(err); } - plugins.fireHook('action:post.flag', {post: post, reason: data.reason, flaggingUser: flaggingUser}); + plugins.fireHook('action:post.flag', { post: post, reason: data.reason, flaggingUser: flaggingUser }); notifications.push(notification, results.admins.concat(results.moderators).concat(results.globalMods), next); }); }, diff --git a/src/socket.io/posts/helpers.js b/src/socket.io/posts/helpers.js index 7db1a8b5ae..c7b92488d5 100644 --- a/src/socket.io/posts/helpers.js +++ b/src/socket.io/posts/helpers.js @@ -46,7 +46,7 @@ helpers.postCommand = function (socket, command, eventName, notification, data, filter:post.bookmark filter:post.unbookmark */ - plugins.fireHook('filter:post.' + command, {data: data, uid: socket.uid}, next); + plugins.fireHook('filter:post.' + command, { data: data, uid: socket.uid }, next); }, function (filteredData, next) { executeCommand(socket, command, eventName, notification, filteredData.data, next); diff --git a/src/socket.io/posts/tools.js b/src/socket.io/posts/tools.js index d759a5c249..ee393a42b9 100644 --- a/src/socket.io/posts/tools.js +++ b/src/socket.io/posts/tools.js @@ -36,7 +36,7 @@ module.exports = function (SocketPosts) { posts.hasBookmarked(data.pid, socket.uid, next); }, tools: function (next) { - plugins.fireHook('filter:post.tools', {pid: data.pid, uid: socket.uid, tools: []}, next); + plugins.fireHook('filter:post.tools', { pid: data.pid, uid: socket.uid, tools: [] }, next); }, postSharing: function (next) { social.getActivePostSharing(next); @@ -121,7 +121,7 @@ module.exports = function (SocketPosts) { return callback(new Error('[[error:invalid-data]]')); } async.eachSeries(data.pids, function (pid, next) { - SocketPosts.delete(socket, {pid: pid, tid: data.tid}, next); + SocketPosts.delete(socket, { pid: pid, tid: data.tid }, next); }, callback); }; @@ -130,7 +130,7 @@ module.exports = function (SocketPosts) { return callback(new Error('[[error:invalid-data]]')); } async.eachSeries(data.pids, function (pid, next) { - SocketPosts.purge(socket, {pid: pid, tid: data.tid}, next); + SocketPosts.purge(socket, { pid: pid, tid: data.tid }, next); }, callback); }; @@ -156,7 +156,7 @@ module.exports = function (SocketPosts) { posts.getPostField(data.pid, 'toPid', next); }, function (toPid, next) { - postData = {pid: data.pid, toPid: toPid}; + postData = { pid: data.pid, toPid: toPid }; posts.tools.purge(socket.uid, data.pid, next); }, function (next) { @@ -181,7 +181,7 @@ module.exports = function (SocketPosts) { posts.getTopicFields(pid, ['tid', 'cid'], next); }, function (topic, next) { - socketTopics.doTopicAction('delete', 'event:topic_deleted', socket, {tids: [topic.tid], cid: topic.cid}, next); + socketTopics.doTopicAction('delete', 'event:topic_deleted', socket, { tids: [topic.tid], cid: topic.cid }, next); }, ], callback); } diff --git a/src/socket.io/topics.js b/src/socket.io/topics.js index 2fdecf550f..358ff4223f 100644 --- a/src/socket.io/topics.js +++ b/src/socket.io/topics.js @@ -33,10 +33,10 @@ SocketTopics.post = function (socket, data, callback) { callback(null, result.topicData); - socket.emit('event:new_post', {posts: [result.postData]}); + socket.emit('event:new_post', { posts: [result.postData] }); socket.emit('event:new_topic', result.topicData); - socketHelpers.notifyNew(socket.uid, 'newTopic', {posts: [result.postData], topic: result.topicData}); + socketHelpers.notifyNew(socket.uid, 'newTopic', { posts: [result.postData], topic: result.topicData }); }); }; diff --git a/src/socket.io/topics/tags.js b/src/socket.io/topics/tags.js index 4ef579babb..0b7076fa20 100644 --- a/src/socket.io/topics/tags.js +++ b/src/socket.io/topics/tags.js @@ -48,7 +48,7 @@ module.exports = function (SocketTopics) { }, function (tags, next) { tags = tags.filter(Boolean); - next(null, {tags: tags, nextStart: stop + 1}); + next(null, { tags: tags, nextStart: stop + 1 }); }, ], callback); }; diff --git a/src/socket.io/topics/tools.js b/src/socket.io/topics/tools.js index 8df029c926..74cdb68e7e 100644 --- a/src/socket.io/topics/tools.js +++ b/src/socket.io/topics/tools.js @@ -32,7 +32,7 @@ module.exports = function (SocketTopics) { function (results, next) { topic = results.topic; topic.privileges = results.privileges; - plugins.fireHook('filter:topic.thread_tools', {topic: results.topic, uid: socket.uid, tools: []}, next); + plugins.fireHook('filter:topic.thread_tools', { topic: results.topic, uid: socket.uid, tools: [] }, next); }, function (data, next) { topic.deleted = parseInt(topic.deleted, 10) === 1; diff --git a/src/socket.io/user.js b/src/socket.io/user.js index 533d6e64fd..bef5eb9d77 100644 --- a/src/socket.io/user.js +++ b/src/socket.io/user.js @@ -46,7 +46,7 @@ SocketUser.deleteAccount = function (socket, data, callback) { user.deleteAccount(socket.uid, next); }, function (next) { - require('./index').server.sockets.emit('event:user_status_change', {uid: socket.uid, status: 'offline'}); + require('./index').server.sockets.emit('event:user_status_change', { uid: socket.uid, status: 'offline' }); events.log({ type: 'user-delete', diff --git a/src/socket.io/user/profile.js b/src/socket.io/user/profile.js index e2d4de9ce1..8e88edb1e5 100644 --- a/src/socket.io/user/profile.js +++ b/src/socket.io/user/profile.js @@ -174,11 +174,11 @@ module.exports = function (SocketUser) { } if (userData.email !== oldUserData.email) { - log('email-change', {oldEmail: oldUserData.email, newEmail: userData.email}); + log('email-change', { oldEmail: oldUserData.email, newEmail: userData.email }); } if (userData.username !== oldUserData.username) { - log('username-change', {oldUsername: oldUserData.username, newUsername: userData.username}); + log('username-change', { oldUsername: oldUserData.username, newUsername: userData.username }); } next(null, userData); diff --git a/src/socket.io/user/status.js b/src/socket.io/user/status.js index 562a57d82c..8849f0210e 100644 --- a/src/socket.io/user/status.js +++ b/src/socket.io/user/status.js @@ -30,7 +30,7 @@ module.exports = function (SocketUser) { return callback(new Error('[[error:invalid-user-status]]')); } - var data = {status: status}; + var data = { status: status }; if (status !== 'offline') { data.lastonline = Date.now(); } diff --git a/src/topics.js b/src/topics.js index 0972988bfa..0eba6545fd 100644 --- a/src/topics.js +++ b/src/topics.js @@ -67,7 +67,7 @@ var social = require('./social'); Topics.getTopics(tids, uid, next); }, function (topics, next) { - next(null, {topics: topics, nextStart: stop + 1}); + next(null, { topics: topics, nextStart: stop + 1 }); }, ], callback); }; @@ -161,7 +161,7 @@ var social = require('./social'); return topic && topic.category && !topic.category.disabled; }); - plugins.fireHook('filter:topics.get', {topics: topics, uid: uid}, next); + plugins.fireHook('filter:topics.get', { topics: topics, uid: uid }, next); }, function (data, next) { next(null, data.topics); @@ -175,7 +175,7 @@ var social = require('./social'); async.parallel({ posts: async.apply(getMainPostAndReplies, topicData, set, uid, start, stop, reverse), category: async.apply(Topics.getCategoryData, topicData.tid), - threadTools: async.apply(plugins.fireHook, 'filter:topic.thread_tools', {topic: topicData, uid: uid, tools: []}), + threadTools: async.apply(plugins.fireHook, 'filter:topic.thread_tools', { topic: topicData, uid: uid, tools: [] }), isFollowing: async.apply(Topics.isFollowing, [topicData.tid], uid), isIgnoring: async.apply(Topics.isIgnoring, [topicData.tid], uid), bookmark: async.apply(Topics.getUserBookmark, topicData.tid, uid), @@ -211,7 +211,7 @@ var social = require('./social'); topicData.icons = []; - plugins.fireHook('filter:topic.get', {topic: topicData, uid: uid}, next); + plugins.fireHook('filter:topic.get', { topic: topicData, uid: uid }, next); }, function (data, next) { next(null, data.topic); diff --git a/src/topics/bookmarks.js b/src/topics/bookmarks.js index 487d3fd29e..b47d5f2278 100644 --- a/src/topics/bookmarks.js +++ b/src/topics/bookmarks.js @@ -43,7 +43,7 @@ module.exports = function (Topics) { }, function (bookmarks, next) { var forkedPosts = pids.map(function (pid) { - return {pid: pid, tid: tid}; + return { pid: pid, tid: tid }; }); var uidData = bookmarks.map(function (bookmark) { diff --git a/src/topics/create.js b/src/topics/create.js index 2b4f022f57..815d703d01 100644 --- a/src/topics/create.js +++ b/src/topics/create.js @@ -48,7 +48,7 @@ module.exports = function (Topics) { topicData.thumb = data.thumb; } - plugins.fireHook('filter:topic.create', {topic: topicData, data: data}, next); + plugins.fireHook('filter:topic.create', { topic: topicData, data: data }, next); }, function (data, next) { topicData = data.topic; diff --git a/src/topics/delete.js b/src/topics/delete.js index dbf8474ecb..7fdd0bc1a7 100644 --- a/src/topics/delete.js +++ b/src/topics/delete.js @@ -97,7 +97,7 @@ module.exports = function (Topics) { async.eachLimit(pids, 10, function (pid, next) { posts.purge(pid, uid, next); }, next); - }, {alwaysStartAt: 0}, next); + }, { alwaysStartAt: 0 }, next); }, function (next) { posts.purge(mainPid, uid, next); diff --git a/src/topics/follow.js b/src/topics/follow.js index 48742797b8..a3b1041b13 100644 --- a/src/topics/follow.js +++ b/src/topics/follow.js @@ -74,7 +74,7 @@ module.exports = function (Topics) { method2(tid, uid, next); }, function (next) { - plugins.fireHook(hook, {uid: uid, tid: tid}); + plugins.fireHook(hook, { uid: uid, tid: tid }); next(); }, ], callback); diff --git a/src/topics/fork.js b/src/topics/fork.js index 6a9965b51c..4765727d6f 100644 --- a/src/topics/fork.js +++ b/src/topics/fork.js @@ -52,7 +52,7 @@ module.exports = function (Topics) { if (!results.isAdminOrMod) { return next(new Error('[[error:no-privileges]]')); } - Topics.create({uid: results.postData.uid, title: title, cid: cid}, next); + Topics.create({ uid: results.postData.uid, title: title, cid: cid }, next); }, function (results, next) { Topics.updateTopicBookmarks(fromTid, pids, function () { next(null, results); }); @@ -134,7 +134,7 @@ module.exports = function (Topics) { if (err) { return callback(err); } - plugins.fireHook('action:post.move', {post: postData, tid: tid}); + plugins.fireHook('action:post.move', { post: postData, tid: tid }); callback(); }); }; diff --git a/src/topics/posts.js b/src/topics/posts.js index e013eaf7b0..65c180d784 100644 --- a/src/topics/posts.js +++ b/src/topics/posts.js @@ -185,7 +185,7 @@ module.exports = function (Topics) { }); var parents = {}; parentPosts.forEach(function (post, i) { - parents[parentPids[i]] = {username: usersMap[post.uid]}; + parents[parentPids[i]] = { username: usersMap[post.uid] }; }); postData.forEach(function (post) { diff --git a/src/topics/recent.js b/src/topics/recent.js index 3d4f298369..eb2aebec66 100644 --- a/src/topics/recent.js +++ b/src/topics/recent.js @@ -100,7 +100,7 @@ module.exports = function (Topics) { Topics.getTopics(tids, uid, next); }, function (topics, next) { - next(null, {topics: topics, nextStart: stop + 1}); + next(null, { topics: topics, nextStart: stop + 1 }); }, ], callback); }; @@ -142,7 +142,7 @@ module.exports = function (Topics) { Topics.updateRecent = function (tid, timestamp, callback) { callback = callback || function () {}; if (plugins.hasListeners('filter:topics.updateRecent')) { - plugins.fireHook('filter:topics.updateRecent', {tid: tid, timestamp: timestamp}, function (err, data) { + plugins.fireHook('filter:topics.updateRecent', { tid: tid, timestamp: timestamp }, function (err, data) { if (err) { return callback(err); } diff --git a/src/topics/tags.js b/src/topics/tags.js index a82a7e4890..d10c127ac0 100644 --- a/src/topics/tags.js +++ b/src/topics/tags.js @@ -20,7 +20,7 @@ module.exports = function (Topics) { async.waterfall([ function (next) { - plugins.fireHook('filter:tags.filter', {tags: tags, tid: tid}, next); + plugins.fireHook('filter:tags.filter', { tags: tags, tid: tid }, next); }, function (data, next) { tags = data.tags.slice(0, meta.config.maximumTagsPerTopic || 5); @@ -230,7 +230,7 @@ module.exports = function (Topics) { uniqueTopicTags = _.uniq(_.flatten(topicTags)); var tags = uniqueTopicTags.map(function (tag) { - return {value: tag}; + return { value: tag }; }); async.parallel({ @@ -312,13 +312,13 @@ module.exports = function (Topics) { async.waterfall([ function (next) { if (plugins.hasListeners('filter:topics.searchTags')) { - plugins.fireHook('filter:topics.searchTags', {data: data}, next); + plugins.fireHook('filter:topics.searchTags', { data: data }, next); } else { findMatches(data.query, 0, next); } }, function (result, next) { - plugins.fireHook('filter:tags.search', {data: data, matches: result.matches}, next); + plugins.fireHook('filter:tags.search', { data: data, matches: result.matches }, next); }, function (result, next) { next(null, result.matches); @@ -334,7 +334,7 @@ module.exports = function (Topics) { async.waterfall([ function (next) { if (plugins.hasListeners('filter:topics.autocompleteTags')) { - plugins.fireHook('filter:topics.autocompleteTags', {data: data}, next); + plugins.fireHook('filter:topics.autocompleteTags', { data: data }, next); } else { findMatches(data.query, data.cid, next); } @@ -377,7 +377,7 @@ module.exports = function (Topics) { matches = matches.sort(function (a, b) { return a > b; }); - next(null, {matches: matches}); + next(null, { matches: matches }); }, ], callback); } @@ -403,7 +403,7 @@ module.exports = function (Topics) { }, tagData: function (next) { tags = tags.map(function (tag) { - return {value: tag}; + return { value: tag }; }); Topics.getTagData(tags, next); @@ -427,7 +427,7 @@ module.exports = function (Topics) { Topics.getRelatedTopics = function (topicData, uid, callback) { if (plugins.hasListeners('filter:topic.getRelatedTopics')) { - return plugins.fireHook('filter:topic.getRelatedTopics', {topic: topicData, uid: uid}, callback); + return plugins.fireHook('filter:topic.getRelatedTopics', { topic: topicData, uid: uid }, callback); } var maximumTopics = parseInt(meta.config.maximumRelatedTopics, 10) || 0; diff --git a/src/topics/teaser.js b/src/topics/teaser.js index 9264b4b254..aa64d7780f 100644 --- a/src/topics/teaser.js +++ b/src/topics/teaser.js @@ -94,7 +94,7 @@ module.exports = function (Topics) { return tidToPost[topic.tid]; }); - plugins.fireHook('filter:teasers.get', {teasers: teasers}, next); + plugins.fireHook('filter:teasers.get', { teasers: teasers }, next); }, function (data, next) { next(null, data.teasers); diff --git a/src/topics/thumb.js b/src/topics/thumb.js index 8735dcc7c4..574ca302ad 100644 --- a/src/topics/thumb.js +++ b/src/topics/thumb.js @@ -61,7 +61,7 @@ module.exports = function (Topics) { return callback(); } - plugins.fireHook('filter:uploadImage', {image: {path: pathToUpload, name: ''}, uid: data.uid}, next); + plugins.fireHook('filter:uploadImage', { image: { path: pathToUpload, name: '' }, uid: data.uid }, next); }, function (uploadedFile, next) { deleteFile(pathToUpload); diff --git a/src/topics/tools.js b/src/topics/tools.js index 396c4b9b3e..f83a5f91f0 100644 --- a/src/topics/tools.js +++ b/src/topics/tools.js @@ -97,7 +97,7 @@ module.exports = function (Topics) { Topics.purgePostsAndTopic(tid, uid, next); }, function (next) { - next(null, {tid: tid, cid: cid, uid: uid}); + next(null, { tid: tid, cid: cid, uid: uid }); }, ], callback); }; diff --git a/src/user.js b/src/user.js index 17d0a59585..968417f816 100644 --- a/src/user.js +++ b/src/user.js @@ -63,7 +63,7 @@ var meta = require('./meta'); }, function (next) { topics.pushUnreadCount(uid); - plugins.fireHook('action:user.online', {uid: uid, timestamp: now}); + plugins.fireHook('action:user.online', { uid: uid, timestamp: now }); next(); }, ], callback); @@ -93,7 +93,7 @@ var meta = require('./meta'); User.getUsersWithFields = function (uids, fields, uid, callback) { async.waterfall([ function (next) { - plugins.fireHook('filter:users.addFields', {fields: fields}, next); + plugins.fireHook('filter:users.addFields', { fields: fields }, next); }, function (data, next) { data.fields = data.fields.filter(function (field, index, array) { @@ -120,7 +120,7 @@ var meta = require('./meta'); user['email:confirmed'] = parseInt(user['email:confirmed'], 10) === 1; } }); - plugins.fireHook('filter:userlist.get', {users: results.userData, uid: uid}, next); + plugins.fireHook('filter:userlist.get', { users: results.userData, uid: uid }, next); }, function (data, next) { next(null, data.users); diff --git a/src/user/admin.js b/src/user/admin.js index 39a12a9c0a..7ef6c0dda7 100644 --- a/src/user/admin.js +++ b/src/user/admin.js @@ -38,7 +38,7 @@ module.exports = function (User) { uids = users.map(function (user) { return user.score; }); - plugins.fireHook('filter:user.csvFields', {fields: ['uid', 'email', 'username']}, next); + plugins.fireHook('filter:user.csvFields', { fields: ['uid', 'email', 'username'] }, next); }, function (data, next) { User.getUsersFields(uids, data.fields, next); diff --git a/src/user/approval.js b/src/user/approval.js index 33a3d0ab8a..cbb1ba08b4 100644 --- a/src/user/approval.js +++ b/src/user/approval.js @@ -30,7 +30,7 @@ module.exports = function (User) { ip: userData.ip, hashedPassword: hashedPassword, }; - plugins.fireHook('filter:user.addToApprovalQueue', {data: data, userData: userData}, next); + plugins.fireHook('filter:user.addToApprovalQueue', { data: data, userData: userData }, next); }, function (results, next) { db.setObject('registration:queue:name:' + userData.username, results.data, next); @@ -211,7 +211,7 @@ module.exports = function (User) { }, next); }, function (users, next) { - plugins.fireHook('filter:user.getRegistrationQueue', {users: users}, next); + plugins.fireHook('filter:user.getRegistrationQueue', { users: users }, next); }, function (results, next) { next(null, results.users); diff --git a/src/user/auth.js b/src/user/auth.js index a59e68b43f..29a79f39c4 100644 --- a/src/user/auth.js +++ b/src/user/auth.js @@ -172,6 +172,6 @@ module.exports = function (User) { ], next); }, ], next); - }, {batch: 1000}, callback); + }, { batch: 1000 }, callback); }; }; diff --git a/src/user/bans.js b/src/user/bans.js index 964a70669d..e98380a573 100644 --- a/src/user/bans.js +++ b/src/user/bans.js @@ -49,7 +49,7 @@ module.exports = function (User) { User.unban = function (uid, callback) { async.waterfall([ function (next) { - User.setUserFields(uid, {banned: 0, 'banned:expire': 0}, next); + User.setUserFields(uid, { banned: 0, 'banned:expire': 0 }, next); }, function (next) { db.sortedSetsRemove(['users:banned', 'users:banned:expire'], uid, next); @@ -75,7 +75,7 @@ module.exports = function (User) { async.parallel([ async.apply(db.sortedSetRemove.bind(db), 'users:banned:expire', uid), async.apply(db.sortedSetRemove.bind(db), 'users:banned', uid), - async.apply(User.setUserFields, uid, {banned: 0, 'banned:expire': 0}), + async.apply(User.setUserFields, uid, { banned: 0, 'banned:expire': 0 }), ], function (err) { next(err, false); }); diff --git a/src/user/create.js b/src/user/create.js index 20af1dd20a..2620cb67d3 100644 --- a/src/user/create.js +++ b/src/user/create.js @@ -49,7 +49,7 @@ module.exports = function (User) { renameUsername(userData, next); }, userData: function (next) { - plugins.fireHook('filter:user.create', {user: userData, data: data}, next); + plugins.fireHook('filter:user.create', { user: userData, data: data }, next); }, }, function (err, results) { if (err) { diff --git a/src/user/data.js b/src/user/data.js index 5812180df5..3a7ee731aa 100644 --- a/src/user/data.js +++ b/src/user/data.js @@ -155,7 +155,7 @@ module.exports = function (User) { if (err) { return callback(err); } - plugins.fireHook('action:user.set', {uid: uid, field: field, value: value, type: 'set'}); + plugins.fireHook('action:user.set', { uid: uid, field: field, value: value, type: 'set' }); callback(); }); }; @@ -168,7 +168,7 @@ module.exports = function (User) { } for (var field in data) { if (data.hasOwnProperty(field)) { - plugins.fireHook('action:user.set', {uid: uid, field: field, value: data[field], type: 'set'}); + plugins.fireHook('action:user.set', { uid: uid, field: field, value: data[field], type: 'set' }); } } callback(); @@ -181,7 +181,7 @@ module.exports = function (User) { if (err) { return callback(err); } - plugins.fireHook('action:user.set', {uid: uid, field: field, value: value, type: 'increment'}); + plugins.fireHook('action:user.set', { uid: uid, field: field, value: value, type: 'increment' }); callback(null, value); }); @@ -193,7 +193,7 @@ module.exports = function (User) { if (err) { return callback(err); } - plugins.fireHook('action:user.set', {uid: uid, field: field, value: value, type: 'decrement'}); + plugins.fireHook('action:user.set', { uid: uid, field: field, value: value, type: 'decrement' }); callback(null, value); }); diff --git a/src/user/delete.js b/src/user/delete.js index 28b8a4989e..7392192c8b 100644 --- a/src/user/delete.js +++ b/src/user/delete.js @@ -33,7 +33,7 @@ module.exports = function (User) { async.eachSeries(ids, function (pid, next) { posts.purge(pid, callerUid, next); }, next); - }, {alwaysStartAt: 0}, callback); + }, { alwaysStartAt: 0 }, callback); } function deleteTopics(callerUid, uid, callback) { @@ -41,7 +41,7 @@ module.exports = function (User) { async.eachSeries(ids, function (tid, next) { topics.purge(tid, callerUid, next); }, next); - }, {alwaysStartAt: 0}, callback); + }, { alwaysStartAt: 0 }, callback); } User.deleteAccount = function (uid, callback) { @@ -58,7 +58,7 @@ module.exports = function (User) { }, function (_userData, next) { userData = _userData; - plugins.fireHook('static:user.delete', {uid: uid}, next); + plugins.fireHook('static:user.delete', { uid: uid }, next); }, function (next) { deleteVotes(uid, next); diff --git a/src/user/email.js b/src/user/email.js index 5e124551bd..f75ff9cf9b 100644 --- a/src/user/email.js +++ b/src/user/email.js @@ -76,7 +76,7 @@ var emailer = require('../emailer'); }; if (plugins.hasListeners('action:user.verify')) { - plugins.fireHook('action:user.verify', {uid: uid, data: data}); + plugins.fireHook('action:user.verify', { uid: uid, data: data }); next(); } else { emailer.send('welcome', uid, data, next); @@ -101,7 +101,7 @@ var emailer = require('../emailer'); db.sortedSetRemove('users:notvalidated', confirmObj.uid, next); }, function (next) { - plugins.fireHook('action:user.email.confirmed', {uid: confirmObj.uid, email: confirmObj.email}, next); + plugins.fireHook('action:user.email.confirmed', { uid: confirmObj.uid, email: confirmObj.email }, next); }, ], function (err) { callback(err ? new Error('[[error:email-confirm-failed]]') : null); diff --git a/src/user/notifications.js b/src/user/notifications.js index 93f9d2e124..f830092b07 100644 --- a/src/user/notifications.js +++ b/src/user/notifications.js @@ -13,7 +13,7 @@ var privileges = require('../privileges'); (function (UserNotifications) { UserNotifications.get = function (uid, callback) { if (!parseInt(uid, 10)) { - return callback(null, {read: [], unread: []}); + return callback(null, { read: [], unread: [] }); } getNotifications(uid, 0, 9, function (err, notifications) { if (err) { diff --git a/src/user/picture.js b/src/user/picture.js index 08b548e444..32d91d6877 100644 --- a/src/user/picture.js +++ b/src/user/picture.js @@ -41,7 +41,7 @@ module.exports = function (User) { async.waterfall([ function (next) { if (plugins.hasListeners('filter:uploadImage')) { - return plugins.fireHook('filter:uploadImage', {image: picture, uid: updateUid}, next); + return plugins.fireHook('filter:uploadImage', { image: picture, uid: updateUid }, next); } var filename = updateUid + '-profileimg' + (keepAllVersions ? '-' + Date.now() : '') + (convertToPNG ? '.png' : extension); @@ -77,7 +77,7 @@ module.exports = function (User) { }, function (_image, next) { uploadedImage = _image; - User.setUserFields(updateUid, {uploadedpicture: uploadedImage.url, picture: uploadedImage.url}, next); + User.setUserFields(updateUid, { uploadedpicture: uploadedImage.url, picture: uploadedImage.url }, next); }, function (next) { next(null, uploadedImage); @@ -107,12 +107,12 @@ module.exports = function (User) { return callback(new Error('[[error:file-too-big, ' + uploadSize + ']]')); } - var picture = {url: url, name: ''}; - plugins.fireHook('filter:uploadImage', {image: picture, uid: uid}, function (err, image) { + var picture = { url: url, name: '' }; + plugins.fireHook('filter:uploadImage', { image: picture, uid: uid }, function (err, image) { if (err) { return callback(err); } - User.setUserFields(uid, {uploadedpicture: image.url, picture: image.url}); + User.setUserFields(uid, { uploadedpicture: image.url, picture: image.url }); callback(null, image); }); }); @@ -169,7 +169,7 @@ module.exports = function (User) { }; if (plugins.hasListeners('filter:uploadImage')) { - return plugins.fireHook('filter:uploadImage', {image: image, uid: data.uid}, next); + return plugins.fireHook('filter:uploadImage', { image: image, uid: data.uid }, next); } var filename = data.uid + '-profilecover' + (keepAllVersions ? '-' + Date.now() : ''); @@ -213,10 +213,10 @@ module.exports = function (User) { if (data.position) { User.updateCoverPosition(data.uid, data.position, function (err) { - callback(err, {url: url}); + callback(err, { url: url }); }); } else { - callback(err, {url: url}); + callback(err, { url: url }); } }); }; @@ -260,7 +260,7 @@ module.exports = function (User) { }; if (plugins.hasListeners('filter:uploadImage')) { - return plugins.fireHook('filter:uploadImage', {image: image, uid: data.uid}, next); + return plugins.fireHook('filter:uploadImage', { image: image, uid: data.uid }, next); } var filename = data.uid + '-profileavatar' + (keepAllVersions ? '-' + Date.now() : ''); @@ -281,7 +281,7 @@ module.exports = function (User) { }, function (uploadData, next) { url = uploadData.url; - User.setUserFields(data.uid, {uploadedpicture: url, picture: url}, next); + User.setUserFields(data.uid, { uploadedpicture: url, picture: url }, next); }, function (next) { fs.unlink(data.file.path, function (err) { @@ -296,7 +296,7 @@ module.exports = function (User) { callback(err); // send back the original error } - callback(err, {url: url}); + callback(err, { url: url }); }); }; diff --git a/src/user/profile.js b/src/user/profile.js index ea813db035..b0d40cf02d 100644 --- a/src/user/profile.js +++ b/src/user/profile.js @@ -17,7 +17,7 @@ module.exports = function (User) { async.waterfall([ function (next) { - plugins.fireHook('filter:user.updateProfile', {uid: uid, data: data, fields: fields}, next); + plugins.fireHook('filter:user.updateProfile', { uid: uid, data: data, fields: fields }, next); }, function (data, next) { fields = data.fields; @@ -55,7 +55,7 @@ module.exports = function (User) { }, next); }, function (next) { - plugins.fireHook('action:user.updateProfile', {data: data, uid: uid}); + plugins.fireHook('action:user.updateProfile', { data: data, uid: uid }); User.getUserFields(uid, ['email', 'username', 'userslug', 'picture', 'icon:text', 'icon:bgColor'], next); }, ], callback); diff --git a/src/user/search.js b/src/user/search.js index 751bb04cf2..4583e0e28f 100644 --- a/src/user/search.js +++ b/src/user/search.js @@ -33,7 +33,7 @@ module.exports = function (User) { filterAndSortUids(uids, data, next); }, function (uids, next) { - plugins.fireHook('filter:users.search', {uids: uids, uid: uid}, next); + plugins.fireHook('filter:users.search', { uids: uids, uid: uid }, next); }, function (data, next) { var uids = data.uids; @@ -156,7 +156,7 @@ module.exports = function (User) { function (users, next) { var diff = process.hrtime(start); var timing = ((diff[0] * 1e3) + (diff[1] / 1e6)).toFixed(1); - next(null, {timing: timing, users: users}); + next(null, { timing: timing, users: users }); }, ], callback); } diff --git a/src/user/settings.js b/src/user/settings.js index 46eb7ada3f..115d0d92ad 100644 --- a/src/user/settings.js +++ b/src/user/settings.js @@ -47,7 +47,7 @@ module.exports = function (User) { }; function onSettingsLoaded(uid, settings, callback) { - plugins.fireHook('filter:user.getSettings', {uid: uid, settings: settings}, function (err, data) { + plugins.fireHook('filter:user.getSettings', { uid: uid, settings: settings }, function (err, data) { if (err) { return callback(err); } @@ -101,7 +101,7 @@ module.exports = function (User) { data.userLang = data.userLang || meta.config.defaultLang; - plugins.fireHook('action:user.saveSettings', {uid: uid, settings: data}); + plugins.fireHook('action:user.saveSettings', { uid: uid, settings: data }); var settings = { showemail: data.showemail, diff --git a/src/widgets/admin.js b/src/widgets/admin.js index 68ccd3d7ec..dde3aca43d 100644 --- a/src/widgets/admin.js +++ b/src/widgets/admin.js @@ -16,8 +16,8 @@ admin.get = function (callback) { { name: 'Global Header', template: 'global', location: 'header' }, { name: 'Global Footer', template: 'global', location: 'footer' }, - { name: 'Group Page (Left)', template: 'groups/details.tpl', location: 'left'}, - { name: 'Group Page (Right)', template: 'groups/details.tpl', location: 'right'}, + { name: 'Group Page (Left)', template: 'groups/details.tpl', location: 'left' }, + { name: 'Group Page (Right)', template: 'groups/details.tpl', location: 'right' }, ]; plugins.fireHook('filter:widgets.getAreas', defaultAreas, next); diff --git a/src/widgets/index.js b/src/widgets/index.js index abe63781ef..7ea6727a1e 100644 --- a/src/widgets/index.js +++ b/src/widgets/index.js @@ -26,7 +26,7 @@ widgets.render = function (uid, area, req, res, callback) { widgetsByLocation[location] = data.global[location].concat(data[area.template][location]); if (!widgetsByLocation[location].length) { - return done(null, {location: location, widgets: []}); + return done(null, { location: location, widgets: [] }); } async.map(widgetsByLocation[location], function (widget, next) { @@ -59,14 +59,14 @@ widgets.render = function (uid, area, req, res, callback) { body: html, }); - next(null, {html: html}); + next(null, { html: html }); }); } else { - next(null, {html: html}); + next(null, { html: html }); } }); }, function (err, result) { - done(err, {location: location, widgets: result.filter(Boolean)}); + done(err, { location: location, widgets: result.filter(Boolean) }); }); }, callback); }); diff --git a/test/authentication.js b/test/authentication.js index 3c7f58f7ac..7b49f69efa 100644 --- a/test/authentication.js +++ b/test/authentication.js @@ -12,7 +12,7 @@ describe('authentication', function () { var jar = request.jar(); var regularUid; before(function (done) { - user.create({username: 'regular', password: 'regularpwd', email: 'regular@nodebb.org' }, function (err, uid) { + user.create({ username: 'regular', password: 'regularpwd', email: 'regular@nodebb.org' }, function (err, uid) { assert.ifError(err); regularUid = uid; done(); @@ -136,7 +136,7 @@ describe('authentication', function () { db.sortedSetCard('uid:' + regularUid + ':sessions', function (err, count) { assert.ifError(err); assert(count); - socketAdmin.deleteAllSessions({uid: 1}, {}, function (err) { + socketAdmin.deleteAllSessions({ uid: 1 }, {}, function (err) { assert.ifError(err); db.sortedSetCard('uid:' + regularUid + ':sessions', function (err, count) { assert.ifError(err); diff --git a/test/categories.js b/test/categories.js index b183a3accd..bdd91602de 100644 --- a/test/categories.js +++ b/test/categories.js @@ -22,10 +22,10 @@ describe('Categories', function () { groups.resetCache(); async.parallel({ posterUid: function (next) { - User.create({username: 'poster'}, next); + User.create({ username: 'poster' }, next); }, adminUid: function (next) { - User.create({username: 'admin'}, next); + User.create({ username: 'admin' }, next); }, }, function (err, results) { assert.ifError(err); @@ -166,7 +166,7 @@ describe('Categories', function () { } moveCid = results.category.cid; moveTid = results.topic.topicData.tid; - Topics.reply({uid: posterUid, content: 'test post', tid: moveTid}, function (err) { + Topics.reply({ uid: posterUid, content: 'test post', tid: moveTid }, function (err) { done(err); }); }); @@ -202,7 +202,7 @@ describe('Categories', function () { }); it('should get recent replies in category', function (done) { - socketCategories.getRecentReplies({uid: posterUid}, categoryObj.cid, function (err, data) { + socketCategories.getRecentReplies({ uid: posterUid }, categoryObj.cid, function (err, data) { assert.ifError(err); assert(Array.isArray(data)); done(); @@ -210,7 +210,7 @@ describe('Categories', function () { }); it('should get categories', function (done) { - socketCategories.get({uid: posterUid}, {}, function (err, data) { + socketCategories.get({ uid: posterUid }, {}, function (err, data) { assert.ifError(err); assert(Array.isArray(data)); done(); @@ -218,7 +218,7 @@ describe('Categories', function () { }); it('should get watched categories', function (done) { - socketCategories.getWatchedCategories({uid: posterUid}, {}, function (err, data) { + socketCategories.getWatchedCategories({ uid: posterUid }, {}, function (err, data) { assert.ifError(err); assert(Array.isArray(data)); done(); @@ -226,7 +226,7 @@ describe('Categories', function () { }); it('should load more topics', function (done) { - socketCategories.loadMore({uid: posterUid}, {cid: categoryObj.cid, after: 0, author: 'poster', tag: 'nodebb'}, function (err, data) { + socketCategories.loadMore({ uid: posterUid }, { cid: categoryObj.cid, after: 0, author: 'poster', tag: 'nodebb' }, function (err, data) { assert.ifError(err); assert(Array.isArray(data.topics)); assert.equal(data.topics[0].user.username, 'poster'); @@ -237,7 +237,7 @@ describe('Categories', function () { }); it('should load page count', function (done) { - socketCategories.getPageCount({uid: posterUid}, categoryObj.cid, function (err, pageCount) { + socketCategories.getPageCount({ uid: posterUid }, categoryObj.cid, function (err, pageCount) { assert.ifError(err); assert.equal(pageCount, 1); done(); @@ -245,7 +245,7 @@ describe('Categories', function () { }); it('should load page count', function (done) { - socketCategories.getTopicCount({uid: posterUid}, categoryObj.cid, function (err, topicCount) { + socketCategories.getTopicCount({ uid: posterUid }, categoryObj.cid, function (err, topicCount) { assert.ifError(err); assert.equal(topicCount, 2); done(); @@ -253,7 +253,7 @@ describe('Categories', function () { }); it('should load category by privilege', function (done) { - socketCategories.getCategoriesByPrivilege({uid: posterUid}, 'find', function (err, data) { + socketCategories.getCategoriesByPrivilege({ uid: posterUid }, 'find', function (err, data) { assert.ifError(err); assert(Array.isArray(data)); done(); @@ -261,7 +261,7 @@ describe('Categories', function () { }); it('should get move categories', function (done) { - socketCategories.getMoveCategories({uid: posterUid}, {}, function (err, data) { + socketCategories.getMoveCategories({ uid: posterUid }, {}, function (err, data) { assert.ifError(err); assert(Array.isArray(data)); done(); @@ -269,7 +269,7 @@ describe('Categories', function () { }); it('should ignore category', function (done) { - socketCategories.ignore({uid: posterUid}, categoryObj.cid, function (err) { + socketCategories.ignore({ uid: posterUid }, categoryObj.cid, function (err) { assert.ifError(err); Categories.isIgnored([categoryObj.cid], posterUid, function (err, isIgnored) { assert.ifError(err); @@ -280,7 +280,7 @@ describe('Categories', function () { }); it('should watch category', function (done) { - socketCategories.watch({uid: posterUid}, categoryObj.cid, function (err) { + socketCategories.watch({ uid: posterUid }, categoryObj.cid, function (err) { assert.ifError(err); Categories.isIgnored([categoryObj.cid], posterUid, function (err, isIgnored) { assert.ifError(err); @@ -291,7 +291,7 @@ describe('Categories', function () { }); it('should check if user is moderator', function (done) { - socketCategories.isModerator({uid: posterUid}, {}, function (err, isModerator) { + socketCategories.isModerator({ uid: posterUid }, {}, function (err, isModerator) { assert.ifError(err); assert(!isModerator); done(); @@ -299,7 +299,7 @@ describe('Categories', function () { }); it('should get category data', function (done) { - socketCategories.getCategory({uid: posterUid}, categoryObj.cid, function (err, data) { + socketCategories.getCategory({ uid: posterUid }, categoryObj.cid, function (err, data) { assert.ifError(err); assert.equal(categoryObj.cid, data.cid); done(); @@ -311,7 +311,7 @@ describe('Categories', function () { var socketCategories = require('../src/socket.io/admin/categories'); var cid; before(function (done) { - socketCategories.create({uid: adminUid}, { + socketCategories.create({ uid: adminUid }, { name: 'update name', description: 'update description', parentCid: categoryObj.cid, @@ -326,7 +326,7 @@ describe('Categories', function () { }); it('should return error with invalid data', function (done) { - socketCategories.update({uid: adminUid}, null, function (err) { + socketCategories.update({ uid: adminUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); @@ -337,7 +337,7 @@ describe('Categories', function () { updateData[cid] = { parentCid: cid, }; - socketCategories.update({uid: adminUid}, updateData, function (err) { + socketCategories.update({ uid: adminUid }, updateData, function (err) { assert.equal(err.message, '[[error:cant-set-self-as-parent]]'); done(); }); @@ -352,7 +352,7 @@ describe('Categories', function () { order: 3, icon: 'fa-hammer', }; - socketCategories.update({uid: adminUid}, updateData, function (err) { + socketCategories.update({ uid: adminUid }, updateData, function (err) { assert.ifError(err); Categories.getCategoryData(cid, function (err, data) { assert.ifError(err); @@ -379,7 +379,7 @@ describe('Categories', function () { content: 'The content of test topic', }, function (err) { assert.ifError(err); - socketCategories.purge({uid: adminUid}, category.cid, function (err) { + socketCategories.purge({ uid: adminUid }, category.cid, function (err) { assert.ifError(err); done(); }); @@ -388,14 +388,14 @@ describe('Categories', function () { }); it('should get all categories', function (done) { - socketCategories.getAll({uid: adminUid}, {}, function (err, data) { + socketCategories.getAll({ uid: adminUid }, {}, function (err, data) { assert.ifError(err); done(); }); }); it('should get all category names', function (done) { - socketCategories.getNames({uid: adminUid}, {}, function (err, data) { + socketCategories.getNames({ uid: adminUid }, {}, function (err, data) { assert.ifError(err); assert(Array.isArray(data)); done(); @@ -403,7 +403,7 @@ describe('Categories', function () { }); it('should give privilege', function (done) { - socketCategories.setPrivilege({uid: adminUid}, {cid: categoryObj.cid, privilege: ['groups:topics:delete'], set: true, member: 'registered-users'}, function (err) { + socketCategories.setPrivilege({ uid: adminUid }, { cid: categoryObj.cid, privilege: ['groups:topics:delete'], set: true, member: 'registered-users' }, function (err) { assert.ifError(err); privileges.categories.can('topics:delete', categoryObj.cid, posterUid, function (err, canDeleteTopcis) { assert.ifError(err); @@ -414,7 +414,7 @@ describe('Categories', function () { }); it('should remove privilege', function (done) { - socketCategories.setPrivilege({uid: adminUid}, {cid: categoryObj.cid, privilege: 'groups:topics:delete', set: false, member: 'registered-users'}, function (err) { + socketCategories.setPrivilege({ uid: adminUid }, { cid: categoryObj.cid, privilege: 'groups:topics:delete', set: false, member: 'registered-users' }, function (err) { assert.ifError(err); privileges.categories.can('topics:delete', categoryObj.cid, posterUid, function (err, canDeleteTopcis) { assert.ifError(err); @@ -425,7 +425,7 @@ describe('Categories', function () { }); it('should get privilege settings', function (done) { - socketCategories.getPrivilegeSettings({uid: adminUid}, categoryObj.cid, function (err, data) { + socketCategories.getPrivilegeSettings({ uid: adminUid }, categoryObj.cid, function (err, data) { assert.ifError(err); assert(data); done(); @@ -438,22 +438,22 @@ describe('Categories', function () { var child2Cid; async.waterfall([ function (next) { - Categories.create({name: 'parent'}, next); + Categories.create({ name: 'parent' }, next); }, function (category, next) { parentCid = category.cid; - Categories.create({name: 'child1', parentCid: parentCid}, next); + Categories.create({ name: 'child1', parentCid: parentCid }, next); }, function (category, next) { child1Cid = category.cid; - Categories.create({name: 'child2', parentCid: child1Cid}, next); + Categories.create({ name: 'child2', parentCid: child1Cid }, next); }, function (category, next) { child2Cid = category.cid; - socketCategories.setPrivilege({uid: adminUid}, {cid: parentCid, privilege: 'groups:topics:delete', set: true, member: 'registered-users'}, next); + socketCategories.setPrivilege({ uid: adminUid }, { cid: parentCid, privilege: 'groups:topics:delete', set: true, member: 'registered-users' }, next); }, function (next) { - socketCategories.copyPrivilegesToChildren({uid: adminUid}, parentCid, next); + socketCategories.copyPrivilegesToChildren({ uid: adminUid }, parentCid, next); }, function (next) { privileges.categories.can('topics:delete', child2Cid, posterUid, next); @@ -470,15 +470,15 @@ describe('Categories', function () { var parentCid; async.waterfall([ function (next) { - Categories.create({name: 'parent', description: 'copy me'}, next); + Categories.create({ name: 'parent', description: 'copy me' }, next); }, function (category, next) { parentCid = category.cid; - Categories.create({name: 'child1'}, next); + Categories.create({ name: 'child1' }, next); }, function (category, next) { child1Cid = category.cid; - socketCategories.copySettingsFrom({uid: adminUid}, {fromCid: parentCid, toCid: child1Cid}, next); + socketCategories.copySettingsFrom({ uid: adminUid }, { fromCid: parentCid, toCid: child1Cid }, next); }, function (canDelete, next) { Categories.getCategoryField(child1Cid, 'description', next); @@ -495,18 +495,18 @@ describe('Categories', function () { var parentCid; async.waterfall([ function (next) { - Categories.create({name: 'parent', description: 'copy me'}, next); + Categories.create({ name: 'parent', description: 'copy me' }, next); }, function (category, next) { parentCid = category.cid; - Categories.create({name: 'child1'}, next); + Categories.create({ name: 'child1' }, next); }, function (category, next) { child1Cid = category.cid; - socketCategories.setPrivilege({uid: adminUid}, {cid: parentCid, privilege: 'groups:topics:delete', set: true, member: 'registered-users'}, next); + socketCategories.setPrivilege({ uid: adminUid }, { cid: parentCid, privilege: 'groups:topics:delete', set: true, member: 'registered-users' }, next); }, function (next) { - socketCategories.copyPrivilegesFrom({uid: adminUid}, {fromCid: parentCid, toCid: child1Cid}, next); + socketCategories.copyPrivilegesFrom({ uid: adminUid }, { fromCid: parentCid, toCid: child1Cid }, next); }, function (next) { privileges.categories.can('topics:delete', child1Cid, posterUid, next); @@ -554,14 +554,14 @@ describe('Categories', function () { }); it('should error if data is invalid', function (done) { - socketTopics.isTagAllowed({uid: posterUid}, null, function (err) { + socketTopics.isTagAllowed({ uid: posterUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should return true if category whitelist is empty', function (done) { - socketTopics.isTagAllowed({uid: posterUid}, {tag: 'notallowed', cid: cid}, function (err, allowed) { + socketTopics.isTagAllowed({ uid: posterUid }, { tag: 'notallowed', cid: cid }, function (err, allowed) { assert.ifError(err); assert(allowed); done(); @@ -584,7 +584,7 @@ describe('Categories', function () { }); it('should return false if category whitelist does not have tag', function (done) { - socketTopics.isTagAllowed({uid: posterUid}, {tag: 'notallowed', cid: cid}, function (err, allowed) { + socketTopics.isTagAllowed({ uid: posterUid }, { tag: 'notallowed', cid: cid }, function (err, allowed) { assert.ifError(err); assert(!allowed); done(); @@ -592,7 +592,7 @@ describe('Categories', function () { }); it('should return true if category whitelist has tag', function (done) { - socketTopics.isTagAllowed({uid: posterUid}, {tag: 'nodebb', cid: cid}, function (err, allowed) { + socketTopics.isTagAllowed({ uid: posterUid }, { tag: 'nodebb', cid: cid }, function (err, allowed) { assert.ifError(err); assert(allowed); done(); diff --git a/test/controllers-admin.js b/test/controllers-admin.js index e6edb82a18..ad59b4705d 100644 --- a/test/controllers-admin.js +++ b/test/controllers-admin.js @@ -29,10 +29,10 @@ describe('Admin Controllers', function () { }, next); }, adminUid: function (next) { - user.create({username: 'admin', password: 'barbar'}, next); + user.create({ username: 'admin', password: 'barbar' }, next); }, regularUid: function (next) { - user.create({username: 'regular'}, next); + user.create({ username: 'regular' }, next); }, }, function (err, results) { if (err) { @@ -42,7 +42,7 @@ describe('Admin Controllers', function () { regularUid = results.regularUid; cid = results.category.cid; - topics.post({uid: adminUid, title: 'test topic title', content: 'test topic content', cid: results.category.cid}, function (err, result) { + topics.post({ uid: adminUid, title: 'test topic title', content: 'test topic content', cid: results.category.cid }, function (err, result) { tid = result.topicData.tid; pid = result.postData.pid; done(err); @@ -54,7 +54,7 @@ describe('Admin Controllers', function () { helpers.loginUser('admin', 'barbar', function (err, _jar) { assert.ifError(err); jar = _jar; - request(nconf.get('url') + '/admin', {jar: jar}, function (err, res, body) { + request(nconf.get('url') + '/admin', { jar: jar }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 403); assert(body); @@ -66,7 +66,7 @@ describe('Admin Controllers', function () { it('should load admin dashboard', function (done) { groups.join('administrators', adminUid, function (err) { assert.ifError(err); - request(nconf.get('url') + '/admin', {jar: jar}, function (err, res, body) { + request(nconf.get('url') + '/admin', { jar: jar }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -76,7 +76,7 @@ describe('Admin Controllers', function () { }); it('should load groups page', function (done) { - request(nconf.get('url') + '/admin/manage/groups', {jar: jar}, function (err, res, body) { + request(nconf.get('url') + '/admin/manage/groups', { jar: jar }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -85,7 +85,7 @@ describe('Admin Controllers', function () { }); it('should load groups detail page', function (done) { - request(nconf.get('url') + '/admin/manage/groups/administrators', {jar: jar}, function (err, res, body) { + request(nconf.get('url') + '/admin/manage/groups/administrators', { jar: jar }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -95,7 +95,7 @@ describe('Admin Controllers', function () { it('should load general settings page', function (done) { - request(nconf.get('url') + '/admin/settings', {jar: jar}, function (err, res, body) { + request(nconf.get('url') + '/admin/settings', { jar: jar }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -104,7 +104,7 @@ describe('Admin Controllers', function () { }); it('should load email settings page', function (done) { - request(nconf.get('url') + '/admin/settings/email', {jar: jar}, function (err, res, body) { + request(nconf.get('url') + '/admin/settings/email', { jar: jar }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -113,7 +113,7 @@ describe('Admin Controllers', function () { }); it('should load info page for a user', function (done) { - request(nconf.get('url') + '/api/user/regular/info', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/user/regular/info', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body.history); @@ -126,7 +126,7 @@ describe('Admin Controllers', function () { }); it('should 404 for edit/email page if user does not exist', function (done) { - request(nconf.get('url') + '/api/user/doesnotexist/edit/email', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/user/doesnotexist/edit/email', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 404); done(); @@ -134,7 +134,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/general/homepage', function (done) { - request(nconf.get('url') + '/api/admin/general/homepage', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/general/homepage', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body.routes); @@ -143,7 +143,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/advanced/database', function (done) { - request(nconf.get('url') + '/api/admin/advanced/database', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/advanced/database', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); @@ -157,7 +157,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/extend/plugins', function (done) { - request(nconf.get('url') + '/api/admin/extend/plugins', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/extend/plugins', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body.hasOwnProperty('installed')); assert(body.hasOwnProperty('upgradeCount')); @@ -168,7 +168,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/manage/users', function (done) { - request(nconf.get('url') + '/api/admin/manage/users', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/manage/users', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -176,7 +176,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/manage/users/search', function (done) { - request(nconf.get('url') + '/api/admin/manage/users/search', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/manage/users/search', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body.users); done(); @@ -184,7 +184,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/manage/users/not-validated', function (done) { - request(nconf.get('url') + '/api/admin/manage/users/not-validated', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/manage/users/not-validated', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -192,7 +192,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/manage/users/no-posts', function (done) { - request(nconf.get('url') + '/api/admin/manage/users/no-posts', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/manage/users/no-posts', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -200,7 +200,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/manage/users/top-posters', function (done) { - request(nconf.get('url') + '/api/admin/manage/users/top-posters', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/manage/users/top-posters', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -208,7 +208,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/manage/users/most-reputation', function (done) { - request(nconf.get('url') + '/api/admin/manage/users/most-reputation', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/manage/users/most-reputation', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -216,7 +216,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/manage/users/inactive', function (done) { - request(nconf.get('url') + '/api/admin/manage/users/inactive', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/manage/users/inactive', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -224,7 +224,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/manage/users/flagged', function (done) { - request(nconf.get('url') + '/api/admin/manage/users/flagged', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/manage/users/flagged', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -232,7 +232,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/manage/users/banned', function (done) { - request(nconf.get('url') + '/api/admin/manage/users/banned', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/manage/users/banned', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -240,7 +240,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/manage/registration', function (done) { - request(nconf.get('url') + '/api/admin/manage/registration', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/manage/registration', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -248,7 +248,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/users/csv', function (done) { - request(nconf.get('url') + '/api/admin/users/csv', {jar: jar}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/users/csv', { jar: jar }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -256,7 +256,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/manage/flags', function (done) { - request(nconf.get('url') + '/api/admin/manage/flags', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/manage/flags', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -264,7 +264,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/advanced/cache', function (done) { - request(nconf.get('url') + '/api/admin/advanced/cache', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/advanced/cache', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -272,7 +272,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/advanced/errors', function (done) { - request(nconf.get('url') + '/api/admin/advanced/errors', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/advanced/errors', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -280,7 +280,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/advanced/errors/export', function (done) { - request(nconf.get('url') + '/api/admin/advanced/errors/export', {jar: jar}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/advanced/errors/export', { jar: jar }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -288,7 +288,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/advanced/logs', function (done) { - request(nconf.get('url') + '/api/admin/advanced/logs', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/advanced/logs', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -296,7 +296,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/general/navigation', function (done) { - request(nconf.get('url') + '/api/admin/general/navigation', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/general/navigation', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -304,7 +304,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/development/info', function (done) { - request(nconf.get('url') + '/api/admin/development/info', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/development/info', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -312,7 +312,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/development/logger', function (done) { - request(nconf.get('url') + '/api/admin/development/logger', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/development/logger', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -320,7 +320,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/advanced/events', function (done) { - request(nconf.get('url') + '/api/admin/advanced/events', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/advanced/events', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -328,7 +328,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/general/sounds', function (done) { - request(nconf.get('url') + '/api/admin/general/sounds', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/general/sounds', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -336,7 +336,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/manage/categories', function (done) { - request(nconf.get('url') + '/api/admin/manage/categories', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/manage/categories', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -344,7 +344,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/manage/categories/1', function (done) { - request(nconf.get('url') + '/api/admin/manage/categories/1', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/manage/categories/1', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -352,7 +352,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/manage/categories/1/analytics', function (done) { - request(nconf.get('url') + '/api/admin/manage/categories/1/analytics', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/manage/categories/1/analytics', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -360,7 +360,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/extend/rewards', function (done) { - request(nconf.get('url') + '/api/admin/extend/rewards', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/extend/rewards', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -368,7 +368,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/extend/widgets', function (done) { - request(nconf.get('url') + '/api/admin/extend/widgets', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/extend/widgets', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -376,7 +376,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/general/languages', function (done) { - request(nconf.get('url') + '/api/admin/general/languages', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/general/languages', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -384,7 +384,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/general/social', function (done) { - request(nconf.get('url') + '/api/admin/general/social', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/general/social', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -392,7 +392,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/manage/tags', function (done) { - request(nconf.get('url') + '/api/admin/manage/tags', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/manage/tags', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -400,7 +400,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/manage/ip-blacklist', function (done) { - request(nconf.get('url') + '/api/admin/manage/ip-blacklist', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/manage/ip-blacklist', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -408,7 +408,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/appearance/themes', function (done) { - request(nconf.get('url') + '/api/admin/appearance/themes', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/appearance/themes', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -416,7 +416,7 @@ describe('Admin Controllers', function () { }); it('should load /admin/appearance/customise', function (done) { - request(nconf.get('url') + '/api/admin/appearance/customise', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/appearance/customise', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); @@ -426,7 +426,7 @@ describe('Admin Controllers', function () { it('should load /recent in maintenance mode', function (done) { var meta = require('../src/meta'); meta.config.maintenanceMode = 1; - request(nconf.get('url') + '/api/recent', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/recent', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -437,7 +437,7 @@ describe('Admin Controllers', function () { it('should load /posts/flags', function (done) { - request(nconf.get('url') + '/api/posts/flags', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/posts/flags', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert(body); done(); diff --git a/test/controllers.js b/test/controllers.js index 73c8a2723b..6c10e24b26 100644 --- a/test/controllers.js +++ b/test/controllers.js @@ -27,7 +27,7 @@ describe('Controllers', function () { }, next); }, user: function (next) { - user.create({username: 'foo', password: 'barbar'}, next); + user.create({ username: 'foo', password: 'barbar' }, next); }, }, function (err, results) { if (err) { @@ -36,7 +36,7 @@ describe('Controllers', function () { cid = results.category.cid; fooUid = results.user; - topics.post({uid: results.user, title: 'test topic title', content: 'test topic content', cid: results.category.cid}, function (err, result) { + topics.post({ uid: results.user, title: 'test topic title', content: 'test topic content', cid: results.category.cid }, function (err, result) { tid = result.topicData.tid; pid = result.postData.pid; done(err); @@ -507,7 +507,7 @@ describe('Controllers', function () { var csrf_token; var helpers = require('./helpers'); before(function (done) { - user.create({username: 'revokeme', password: 'barbar'}, function (err, _uid) { + user.create({ username: 'revokeme', password: 'barbar' }, function (err, _uid) { assert.ifError(err); uid = _uid; helpers.loginUser('revokeme', 'barbar', function (err, _jar, io, _csrf_token) { @@ -602,7 +602,7 @@ describe('Controllers', function () { }); it('should return {} if there is no template or locations', function (done) { - request(nconf.get('url') + '/api/widgets/render', {json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/widgets/render', { json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -613,7 +613,7 @@ describe('Controllers', function () { it('should render templates', function (done) { var url = nconf.get('url') + '/api/widgets/render?template=categories.tpl&url=&isMobile=false&locations%5B%5D=sidebar&locations%5B%5D=footer&locations%5B%5D=header'; - request(url, {json: true}, function (err, res, body) { + request(url, { json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -639,7 +639,7 @@ describe('Controllers', function () { }); it('should render tags page', function (done) { - request(nconf.get('url') + '/api/tags', {json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/tags', { json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -649,7 +649,7 @@ describe('Controllers', function () { }); it('should render tag page with no topics', function (done) { - request(nconf.get('url') + '/api/tags/notag', {json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/tags/notag', { json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -660,7 +660,7 @@ describe('Controllers', function () { }); it('should render tag page with 1 topic', function (done) { - request(nconf.get('url') + '/api/tags/nodebb', {json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/tags/nodebb', { json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -683,7 +683,7 @@ describe('Controllers', function () { }); it('should return 503 in maintenance mode', function (done) { - request(nconf.get('url') + '/recent', {json: true}, function (err, res, body) { + request(nconf.get('url') + '/recent', { json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 503); done(); @@ -691,7 +691,7 @@ describe('Controllers', function () { }); it('should return 503 in maintenance mode', function (done) { - request(nconf.get('url') + '/api/recent', {json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/recent', { json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 503); assert(body); @@ -700,7 +700,7 @@ describe('Controllers', function () { }); it('should return 200 in maintenance mode', function (done) { - request(nconf.get('url') + '/api/login', {json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/login', { json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -739,7 +739,7 @@ describe('Controllers', function () { }); it('should load /user/foo/bookmarks', function (done) { - request(nconf.get('url') + '/api/user/foo/bookmarks', {jar: jar}, function (err, res, body) { + request(nconf.get('url') + '/api/user/foo/bookmarks', { jar: jar }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -748,7 +748,7 @@ describe('Controllers', function () { }); it('should load /user/foo/upvoted', function (done) { - request(nconf.get('url') + '/api/user/foo/upvoted', {jar: jar}, function (err, res, body) { + request(nconf.get('url') + '/api/user/foo/upvoted', { jar: jar }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -757,7 +757,7 @@ describe('Controllers', function () { }); it('should load /user/foo/downvoted', function (done) { - request(nconf.get('url') + '/api/user/foo/downvoted', {jar: jar}, function (err, res, body) { + request(nconf.get('url') + '/api/user/foo/downvoted', { jar: jar }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -775,7 +775,7 @@ describe('Controllers', function () { }); it('should load /user/foo/watched', function (done) { - request(nconf.get('url') + '/api/user/foo/watched', {jar: jar}, function (err, res, body) { + request(nconf.get('url') + '/api/user/foo/watched', { jar: jar }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -816,7 +816,7 @@ describe('Controllers', function () { setTimeout(next, 2500); }, function (next) { - request(nconf.get('url') + '/api/notifications', {jar: jar, json: true}, next); + request(nconf.get('url') + '/api/notifications', { jar: jar, json: true }, next); }, function (res, body, next) { assert.equal(res.statusCode, 200); @@ -837,12 +837,12 @@ describe('Controllers', function () { var socketUser = require('../src/socket.io/user'); var uid; before(function (done) { - user.create({username: 'follower'}, function (err, _uid) { + user.create({ username: 'follower' }, function (err, _uid) { assert.ifError(err); uid = _uid; - socketUser.follow({uid: uid}, {uid: fooUid}, function (err) { + socketUser.follow({ uid: uid }, { uid: fooUid }, function (err) { assert.ifError(err); - socketUser.isFollowing({uid: uid}, {uid: fooUid}, function (err, isFollowing) { + socketUser.isFollowing({ uid: uid }, { uid: fooUid }, function (err, isFollowing) { assert.ifError(err); assert(isFollowing); done(); @@ -852,7 +852,7 @@ describe('Controllers', function () { }); it('should get followers page', function (done) { - request(nconf.get('url') + '/api/user/foo/followers', {json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/user/foo/followers', { json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert.equal(body.users[0].username, 'follower'); @@ -861,7 +861,7 @@ describe('Controllers', function () { }); it('should get following page', function (done) { - request(nconf.get('url') + '/api/user/follower/following', {json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/user/follower/following', { json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert.equal(body.users[0].username, 'foo'); @@ -870,9 +870,9 @@ describe('Controllers', function () { }); it('should return empty after unfollow', function (done) { - socketUser.unfollow({uid: uid}, {uid: fooUid}, function (err) { + socketUser.unfollow({ uid: uid }, { uid: fooUid }, function (err) { assert.ifError(err); - request(nconf.get('url') + '/api/user/foo/followers', {json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/user/foo/followers', { json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert.equal(body.users.length, 0); diff --git a/test/database/hash.js b/test/database/hash.js index 41428818f0..4da340b960 100644 --- a/test/database/hash.js +++ b/test/database/hash.js @@ -18,7 +18,7 @@ describe('Hash methods', function () { describe('setObject()', function () { it('should create a object', function (done) { - db.setObject('testObject1', {foo: 'baris', bar: 99}, function (err) { + db.setObject('testObject1', { foo: 'baris', bar: 99 }, function (err) { assert.equal(err, null); assert.equal(arguments.length, 1); done(); @@ -26,7 +26,7 @@ describe('Hash methods', function () { }); it('should do nothing if key is falsy', function (done) { - db.setObject('', {foo: 1, derp: 2}, function (err) { + db.setObject('', { foo: 1, derp: 2 }, function (err) { assert.ifError(err); done(); }); @@ -86,7 +86,7 @@ describe('Hash methods', function () { describe('getObjects()', function () { before(function (done) { async.parallel([ - async.apply(db.setObject, 'testObject4', {name: 'baris'}), + async.apply(db.setObject, 'testObject4', { name: 'baris' }), async.apply(db.setObjectField, 'testObject5', 'name', 'ginger'), ], done); }); @@ -161,8 +161,8 @@ describe('Hash methods', function () { describe('getObjectsFields()', function () { before(function (done) { async.parallel([ - async.apply(db.setObject, 'testObject8', {name: 'baris', age: 99}), - async.apply(db.setObject, 'testObject9', {name: 'ginger', age: 3}), + async.apply(db.setObject, 'testObject8', { name: 'baris', age: 99 }), + async.apply(db.setObject, 'testObject9', { name: 'ginger', age: 3 }), ], done); }); @@ -278,7 +278,7 @@ describe('Hash methods', function () { describe('deleteObjectField()', function () { before(function (done) { - db.setObject('testObject10', {foo: 'bar', delete: 'this', delete1: 'this', delete2: 'this'}, done); + db.setObject('testObject10', { foo: 'bar', delete: 'this', delete1: 'this', delete2: 'this' }, done); }); it('should delete an objects field', function (done) { @@ -312,7 +312,7 @@ describe('Hash methods', function () { describe('incrObjectField()', function () { before(function (done) { - db.setObject('testObject11', {age: 99}, done); + db.setObject('testObject11', { age: 99 }, done); }); it('should set an objects field to 1 if object does not exist', function (done) { @@ -336,7 +336,7 @@ describe('Hash methods', function () { describe('decrObjectField()', function () { before(function (done) { - db.setObject('testObject13', {age: 99}, done); + db.setObject('testObject13', { age: 99 }, done); }); it('should set an objects field to -1 if object does not exist', function (done) { @@ -360,7 +360,7 @@ describe('Hash methods', function () { describe('incrObjectFieldBy()', function () { before(function (done) { - db.setObject('testObject15', {age: 100}, done); + db.setObject('testObject15', { age: 100 }, done); }); it('should set an objects field to 5 if object does not exist', function (done) { diff --git a/test/database/sorted.js b/test/database/sorted.js index 0bd0ab31dc..939f4b259e 100644 --- a/test/database/sorted.js +++ b/test/database/sorted.js @@ -96,7 +96,7 @@ describe('Sorted Set methods', function () { db.getSortedSetRangeWithScores('sortedSetTest1', 0, -1, function (err, values) { assert.equal(err, null); assert.equal(arguments.length, 2); - assert.deepEqual(values, [{value: 'value1', score: 1.1}, {value: 'value2', score: 1.2}, {value: 'value3', score: 1.3}]); + assert.deepEqual(values, [{ value: 'value1', score: 1.1 }, { value: 'value2', score: 1.2 }, { value: 'value3', score: 1.3 }]); done(); }); }); @@ -107,7 +107,7 @@ describe('Sorted Set methods', function () { db.getSortedSetRevRangeWithScores('sortedSetTest1', 0, -1, function (err, values) { assert.equal(err, null); assert.equal(arguments.length, 2); - assert.deepEqual(values, [{value: 'value3', score: 1.3}, {value: 'value2', score: 1.2}, {value: 'value1', score: 1.1}]); + assert.deepEqual(values, [{ value: 'value3', score: 1.3 }, { value: 'value2', score: 1.2 }, { value: 'value1', score: 1.1 }]); done(); }); }); @@ -140,7 +140,7 @@ describe('Sorted Set methods', function () { db.getSortedSetRangeByScoreWithScores('sortedSetTest1', 0, -1, '-inf', 1.2, function (err, values) { assert.equal(err, null); assert.equal(arguments.length, 2); - assert.deepEqual(values, [{value: 'value1', score: 1.1}, {value: 'value2', score: 1.2}]); + assert.deepEqual(values, [{ value: 'value1', score: 1.1 }, { value: 'value2', score: 1.2 }]); done(); }); }); @@ -151,7 +151,7 @@ describe('Sorted Set methods', function () { db.getSortedSetRevRangeByScoreWithScores('sortedSetTest1', 0, -1, '+inf', 1.2, function (err, values) { assert.equal(err, null); assert.equal(arguments.length, 2); - assert.deepEqual(values, [{value: 'value3', score: 1.3}, {value: 'value2', score: 1.2}]); + assert.deepEqual(values, [{ value: 'value3', score: 1.3 }, { value: 'value2', score: 1.2 }]); done(); }); }); @@ -450,7 +450,7 @@ describe('Sorted Set methods', function () { describe('getSortedSetUnion()', function () { it('should return an array of values from both sorted sets sorted by scores lowest to highest', function (done) { - db.getSortedSetUnion({sets: ['sortedSetTest2', 'sortedSetTest3'], start: 0, stop: -1}, function (err, values) { + db.getSortedSetUnion({ sets: ['sortedSetTest2', 'sortedSetTest3'], start: 0, stop: -1 }, function (err, values) { assert.equal(err, null); assert.equal(arguments.length, 2); assert.deepEqual(values, ['value1', 'value2', 'value4']); @@ -461,7 +461,7 @@ describe('Sorted Set methods', function () { describe('getSortedSetRevUnion()', function () { it('should return an array of values from both sorted sets sorted by scores highest to lowest', function (done) { - db.getSortedSetRevUnion({sets: ['sortedSetTest2', 'sortedSetTest3'], start: 0, stop: -1}, function (err, values) { + db.getSortedSetRevUnion({ sets: ['sortedSetTest2', 'sortedSetTest3'], start: 0, stop: -1 }, function (err, values) { assert.equal(err, null); assert.equal(arguments.length, 2); assert.deepEqual(values, ['value4', 'value2', 'value1']); @@ -588,7 +588,7 @@ describe('Sorted Set methods', function () { withScores: true, }, function (err, data) { assert.ifError(err); - assert.deepEqual([{value: 'value2', score: 6}, {value: 'value3', score: 8}], data); + assert.deepEqual([{ value: 'value2', score: 6 }, { value: 'value3', score: 8 }], data); done(); }); }); @@ -602,7 +602,7 @@ describe('Sorted Set methods', function () { aggregate: 'MIN', }, function (err, data) { assert.ifError(err); - assert.deepEqual([{value: 'value2', score: 2}, {value: 'value3', score: 3}], data); + assert.deepEqual([{ value: 'value2', score: 2 }, { value: 'value3', score: 3 }], data); done(); }); }); @@ -616,7 +616,7 @@ describe('Sorted Set methods', function () { aggregate: 'MAX', }, function (err, data) { assert.ifError(err); - assert.deepEqual([{value: 'value2', score: 4}, {value: 'value3', score: 5}], data); + assert.deepEqual([{ value: 'value2', score: 4 }, { value: 'value3', score: 5 }], data); done(); }); }); @@ -630,7 +630,7 @@ describe('Sorted Set methods', function () { weights: [1, 0.5], }, function (err, data) { assert.ifError(err); - assert.deepEqual([{value: 'value2', score: 4}, {value: 'value3', score: 5.5}], data); + assert.deepEqual([{ value: 'value2', score: 4 }, { value: 'value3', score: 5.5 }], data); done(); }); }); diff --git a/test/groups.js b/test/groups.js index 426b5c42ca..8e70341e00 100644 --- a/test/groups.js +++ b/test/groups.js @@ -99,7 +99,7 @@ describe('Groups', function () { var socketGroups = require('../src/socket.io/groups'); it('should return the groups when search query is empty', function (done) { - socketGroups.search({uid: adminUid}, {query: ''}, function (err, groups) { + socketGroups.search({ uid: adminUid }, { query: '' }, function (err, groups) { assert.ifError(err); assert.equal(3, groups.length); done(); @@ -107,7 +107,7 @@ describe('Groups', function () { }); it('should return the "Test" group when searched for', function (done) { - socketGroups.search({uid: adminUid}, {query: 'test'}, function (err, groups) { + socketGroups.search({ uid: adminUid }, { query: 'test' }, function (err, groups) { assert.ifError(err); assert.equal(1, groups.length); assert.strictEqual('Test', groups[0].name); @@ -116,7 +116,7 @@ describe('Groups', function () { }); it('should return the "Test" group when searched for and sort by member count', function (done) { - Groups.search('test', {filterHidden: true, sort: 'count'}, function (err, groups) { + Groups.search('test', { filterHidden: true, sort: 'count' }, function (err, groups) { assert.ifError(err); assert.equal(1, groups.length); assert.strictEqual('Test', groups[0].name); @@ -125,7 +125,7 @@ describe('Groups', function () { }); it('should return the "Test" group when searched for and sort by creation time', function (done) { - Groups.search('test', {filterHidden: true, sort: 'date'}, function (err, groups) { + Groups.search('test', { filterHidden: true, sort: 'date' }, function (err, groups) { assert.ifError(err); assert.equal(1, groups.length); assert.strictEqual('Test', groups[0].name); @@ -141,7 +141,7 @@ describe('Groups', function () { assert.ifError(err); Groups.join('Test', uid, function (err) { assert.ifError(err); - socketGroups.searchMembers({uid: adminUid}, {groupName: 'Test', query: ''}, function (err, data) { + socketGroups.searchMembers({ uid: adminUid }, { groupName: 'Test', query: '' }, function (err, data) { assert.ifError(err); assert.equal(data.users.length, 2); done(); @@ -151,7 +151,7 @@ describe('Groups', function () { }); it('should search group members', function (done) { - socketGroups.searchMembers({uid: adminUid}, {groupName: 'Test', query: 'test'}, function (err, data) { + socketGroups.searchMembers({ uid: adminUid }, { groupName: 'Test', query: 'test' }, function (err, data) { assert.ifError(err); assert.strictEqual('testuser', data.users[0].username); done(); @@ -234,7 +234,7 @@ describe('Groups', function () { }); it('should fail to create group with duplicate group name', function (done) { - Groups.create({name: 'foo'}, function (err) { + Groups.create({ name: 'foo' }, function (err) { assert(err); assert.equal(err.message, '[[error:group-already-exists]]'); done(); @@ -242,21 +242,21 @@ describe('Groups', function () { }); it('should fail to create group if slug is empty', function (done) { - Groups.create({name: '>>>>'}, function (err) { + Groups.create({ name: '>>>>' }, function (err) { assert.equal(err.message, '[[error:invalid-group-name]]'); done(); }); }); it('should fail if group name is invalid', function (done) { - Groups.create({name: 'not/valid'}, function (err) { + Groups.create({ name: 'not/valid' }, function (err) { assert.equal(err.message, '[[error:invalid-group-name]]'); done(); }); }); it('should fail if group name is invalid', function (done) { - Groups.create({name: 'not:valid'}, function (err) { + Groups.create({ name: 'not:valid' }, function (err) { assert.equal(err.message, '[[error:invalid-group-name]]'); done(); }); @@ -434,35 +434,35 @@ describe('Groups', function () { it('should error if data is null', function (done) { - socketGroups.before({uid: 0}, 'groups.join', null, function (err) { + socketGroups.before({ uid: 0 }, 'groups.join', null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should not error if data is valid', function (done) { - socketGroups.before({uid: 0}, 'groups.join', {}, function (err) { + socketGroups.before({ uid: 0 }, 'groups.join', {}, function (err) { assert.ifError(err); done(); }); }); it('should return error if not logged in', function (done) { - socketGroups.join({uid: 0}, {}, function (err) { + socketGroups.join({ uid: 0 }, {}, function (err) { assert.equal(err.message, '[[error:invalid-uid]]'); done(); }); }); it('should return error if group name is special', function (done) { - socketGroups.join({uid: adminUid}, {groupName: 'administrators'}, function (err) { + socketGroups.join({ uid: adminUid }, { groupName: 'administrators' }, function (err) { assert.equal(err.message, '[[error:not-allowed]]'); done(); }); }); it('should error if group does not exist', function (done) { - socketGroups.join({uid: adminUid}, {groupName: 'doesnotexist'}, function (err) { + socketGroups.join({ uid: adminUid }, { groupName: 'doesnotexist' }, function (err) { assert.equal(err.message, '[[error:no-group]]'); done(); }); @@ -470,7 +470,7 @@ describe('Groups', function () { it('should join test group', function (done) { meta.config.allowPrivateGroups = 0; - socketGroups.join({uid: adminUid}, {groupName: 'Test'}, function (err) { + socketGroups.join({ uid: adminUid }, { groupName: 'Test' }, function (err) { assert.ifError(err); Groups.isMember(adminUid, 'Test', function (err, isMember) { assert.ifError(err); @@ -481,21 +481,21 @@ describe('Groups', function () { }); it('should error if not logged in', function (done) { - socketGroups.leave({uid: 0}, {}, function (err) { + socketGroups.leave({ uid: 0 }, {}, function (err) { assert.equal(err.message, '[[error:invalid-uid]]'); done(); }); }); it('should return error if group name is special', function (done) { - socketGroups.leave({uid: adminUid}, {groupName: 'administrators'}, function (err) { + socketGroups.leave({ uid: adminUid }, { groupName: 'administrators' }, function (err) { assert.equal(err.message, '[[error:cant-remove-self-as-admin]]'); done(); }); }); it('should leave test group', function (done) { - socketGroups.leave({uid: adminUid}, {groupName: 'Test'}, function (err) { + socketGroups.leave({ uid: adminUid }, { groupName: 'Test' }, function (err) { assert.ifError(err); Groups.isMember('Test', adminUid, function (err, isMember) { assert.ifError(err); @@ -507,14 +507,14 @@ describe('Groups', function () { it('should fail to join if group is private and join requests are disabled', function (done) { meta.config.allowPrivateGroups = 1; - socketGroups.join({uid: testUid}, {groupName: 'PrivateNoJoin'}, function (err) { + socketGroups.join({ uid: testUid }, { groupName: 'PrivateNoJoin' }, function (err) { assert.equal(err.message, '[[error:join-requests-disabled]]'); done(); }); }); it('should join if user is admin', function (done) { - socketGroups.join({uid: adminUid}, {groupName: 'PrivateCanJoin'}, function (err) { + socketGroups.join({ uid: adminUid }, { groupName: 'PrivateCanJoin' }, function (err) { assert.ifError(err); Groups.isMember(adminUid, 'PrivateCanJoin', function (err, isMember) { assert.ifError(err); @@ -525,7 +525,7 @@ describe('Groups', function () { }); it('should request membership for regular user', function (done) { - socketGroups.join({uid: testUid}, {groupName: 'PrivateCanJoin'}, function (err) { + socketGroups.join({ uid: testUid }, { groupName: 'PrivateCanJoin' }, function (err) { assert.ifError(err); Groups.isPending(testUid, 'PrivateCanJoin', function (err, isPending) { assert.ifError(err); @@ -536,7 +536,7 @@ describe('Groups', function () { }); it('should accept membership of user', function (done) { - socketGroups.accept({uid: adminUid}, {groupName: 'PrivateCanJoin', toUid: testUid}, function (err) { + socketGroups.accept({ uid: adminUid }, { groupName: 'PrivateCanJoin', toUid: testUid }, function (err) { assert.ifError(err); Groups.isMember(testUid, 'PrivateCanJoin', function (err, isMember) { assert.ifError(err); @@ -547,7 +547,7 @@ describe('Groups', function () { }); it('should grant ownership to user', function (done) { - socketGroups.grant({uid: adminUid}, {groupName: 'PrivateCanJoin', toUid: testUid}, function (err) { + socketGroups.grant({ uid: adminUid }, { groupName: 'PrivateCanJoin', toUid: testUid }, function (err) { assert.ifError(err); Groups.ownership.isOwner(testUid, 'PrivateCanJoin', function (err, isOwner) { assert.ifError(err); @@ -558,7 +558,7 @@ describe('Groups', function () { }); it('should rescind ownership from user', function (done) { - socketGroups.rescind({uid: adminUid}, {groupName: 'PrivateCanJoin', toUid: testUid}, function (err) { + socketGroups.rescind({ uid: adminUid }, { groupName: 'PrivateCanJoin', toUid: testUid }, function (err) { assert.ifError(err); Groups.ownership.isOwner(testUid, 'PrivateCanJoin', function (err, isOwner) { assert.ifError(err); @@ -569,7 +569,7 @@ describe('Groups', function () { }); it('should kick user from group', function (done) { - socketGroups.kick({uid: adminUid}, {groupName: 'PrivateCanJoin', uid: testUid}, function (err) { + socketGroups.kick({ uid: adminUid }, { groupName: 'PrivateCanJoin', uid: testUid }, function (err) { assert.ifError(err); Groups.isMember(testUid, 'PrivateCanJoin', function (err, isMember) { assert.ifError(err); @@ -584,21 +584,21 @@ describe('Groups', function () { var socketGroups = require('../src/socket.io/admin/groups'); it('should fail to create group with invalid data', function (done) { - socketGroups.create({uid: adminUid}, null, function (err) { + socketGroups.create({ uid: adminUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should fail to create group if group name is privilege group', function (done) { - socketGroups.create({uid: adminUid}, {name: 'cid:1:privileges:read'}, function (err) { + socketGroups.create({ uid: adminUid }, { name: 'cid:1:privileges:read' }, function (err) { assert.equal(err.message, '[[error:invalid-group-name]]'); done(); }); }); it('should create a group', function (done) { - socketGroups.create({uid: adminUid}, {name: 'newgroup', description: 'group created by admin'}, function (err, groupData) { + socketGroups.create({ uid: adminUid }, { name: 'newgroup', description: 'group created by admin' }, function (err, groupData) { assert.ifError(err); assert.equal(groupData.name, 'newgroup'); assert.equal(groupData.description, 'group created by admin'); @@ -610,14 +610,14 @@ describe('Groups', function () { }); it('should fail to join with invalid data', function (done) { - socketGroups.join({uid: adminUid}, null, function (err) { + socketGroups.join({ uid: adminUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should add user to group', function (done) { - socketGroups.join({uid: adminUid}, {uid: testUid, groupName: 'newgroup'}, function (err) { + socketGroups.join({ uid: adminUid }, { uid: testUid, groupName: 'newgroup' }, function (err) { assert.ifError(err); Groups.isMember(testUid, 'newgroup', function (err, isMember) { assert.ifError(err); @@ -628,35 +628,35 @@ describe('Groups', function () { }); it('should fail to if user is already member', function (done) { - socketGroups.join({uid: adminUid}, {uid: testUid, groupName: 'newgroup'}, function (err) { + socketGroups.join({ uid: adminUid }, { uid: testUid, groupName: 'newgroup' }, function (err) { assert.equal(err.message, '[[error:group-already-member]]'); done(); }); }); it('it should fail with invalid data', function (done) { - socketGroups.leave({uid: adminUid}, null, function (err) { + socketGroups.leave({ uid: adminUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('it should fail if admin tries to remove self', function (done) { - socketGroups.leave({uid: adminUid}, {uid: adminUid, groupName: 'administrators'}, function (err) { + socketGroups.leave({ uid: adminUid }, { uid: adminUid, groupName: 'administrators' }, function (err) { assert.equal(err.message, '[[error:cant-remove-self-as-admin]]'); done(); }); }); it('should fail if user is not member', function (done) { - socketGroups.leave({uid: adminUid}, {uid: 3, groupName: 'newgroup'}, function (err) { + socketGroups.leave({ uid: adminUid }, { uid: 3, groupName: 'newgroup' }, function (err) { assert.equal(err.message, '[[error:group-not-member]]'); done(); }); }); it('should remove user from group', function (done) { - socketGroups.leave({uid: adminUid}, {uid: testUid, groupName: 'newgroup'}, function (err) { + socketGroups.leave({ uid: adminUid }, { uid: testUid, groupName: 'newgroup' }, function (err) { assert.ifError(err); Groups.isMember(testUid, 'newgroup', function (err, isMember) { assert.ifError(err); @@ -667,7 +667,7 @@ describe('Groups', function () { }); it('should fail with invalid data', function (done) { - socketGroups.update({uid: adminUid}, null, function (err) { + socketGroups.update({ uid: adminUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); @@ -686,7 +686,7 @@ describe('Groups', function () { private: 0, }, }; - socketGroups.update({uid: adminUid}, data, function (err) { + socketGroups.update({ uid: adminUid }, data, function (err) { assert.ifError(err); Groups.get('renamedgroup', {}, function (err, groupData) { assert.ifError(err); @@ -708,7 +708,7 @@ describe('Groups', function () { var logoPath = path.join(__dirname, '../public/logo.png'); var imagePath = path.join(__dirname, '../public/groupcover.png'); before(function (done) { - User.create({username: 'regularuser', password: '123456'}, function (err, uid) { + User.create({ username: 'regularuser', password: '123456' }, function (err, uid) { assert.ifError(err); regularUid = uid; async.series([ @@ -726,9 +726,9 @@ describe('Groups', function () { }); it('should fail if user is not logged in or not owner', function (done) { - socketGroups.cover.update({uid: 0}, {}, function (err) { + socketGroups.cover.update({ uid: 0 }, {}, function (err) { assert.equal(err.message, '[[error:no-privileges]]'); - socketGroups.cover.update({uid: regularUid}, {}, function (err) { + socketGroups.cover.update({ uid: regularUid }, {}, function (err) { assert.equal(err.message, '[[error:no-privileges]]'); done(); }); @@ -740,7 +740,7 @@ describe('Groups', function () { groupName: 'Test', file: imagePath, }; - socketGroups.cover.update({uid: adminUid}, data, function (err, data) { + socketGroups.cover.update({ uid: adminUid }, data, function (err, data) { assert.ifError(err); Groups.getGroupFields('Test', ['cover:url'], function (err, groupData) { assert.ifError(err); @@ -756,7 +756,7 @@ describe('Groups', function () { groupName: 'Test', imageData: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAgCAYAAAABtRhCAAAACXBIWXMAAC4jAAAuIwF4pT92AAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAACcJJREFUeNqMl9tvnNV6xn/f+s5z8DCeg88Zj+NYdhJH4KShFoJAIkzVphLVJnsDaiV6gUKaC2qQUFVATbnoValAakuQYKMqBKUUJCgI9XBBSmOROMqGoCStHbA9sWM7nrFn/I3n9B17kcwoabfarj9gvet53+d9nmdJAwMDAAgh8DyPtbU1XNfFMAwkScK2bTzPw/M8dF1/SAhxKAiCxxVF2aeqqqTr+q+Af+7o6Ch0d3f/69TU1KwkSRiGwbFjx3jmmWd47rnn+OGHH1BVFYX/5QRBkPQ87xeSJP22YRi/oapqStM0PM/D931kWSYIgnHf98cXFxepVqtomjZt2/Zf2bb990EQ4Pv+PXfeU1CSpGYhfN9/TgjxQTQaJQgCwuEwQRBQKpUwDAPTNPF9n0ajAYDv+8zPzzM+Pr6/Wq2eqdVqfxOJRA6Zpnn57hrivyEC0IQQZ4Mg+MAwDCKRCJIkUa/XEUIQi8XQNI1QKIQkSQghUBQFIQSmaTI7OwtAuVxOTE9Pfzc9Pf27lUqlBUgulUoUi0VKpRKqqg4EQfAfiqLsDIfDAC0E4XCYaDSKEALXdalUKvfM1/d9hBBYlkUul2N4eJi3335bcl33mW+++aaUz+cvSJKE8uKLL6JpGo7j8Omnn/7d+vp6sr+/HyEEjuMgyzKu6yJJEsViEVVV8TyPjY2NVisV5fZkTNMkkUhw8+ZN6vU6Kysr7Nmzh9OnT7/12GOPDS8sLByT7rQR4A9XV1d/+cILLzA9PU0kEmF4eBhFUTh//jyWZaHrOkII0uk0jUaDWq1GJpOhWCyysrLC1tYWnuehqir79+9H13W6urp48803+f7773n++ef/4G7S/H4ikUCSJNbX11trcuvWLcrlMrIs4zgODzzwABMTE/i+T7lcpq2tjUqlwubmJrZts7y8jBCCkZERGo0G2WyWkydPkkql6Onp+eMmwihwc3JyMvrWW2+RTCYBcF0XWZbRdZ3l5WX27NnD008/TSwWQ1VVyuVy63GhUIhEIkEqlcJxHCzLIhaLMTQ0xJkzZ7Btm3379lmS53kIIczZ2dnFsbGxRK1Wo729HQDP8zAMg5WVFXp7e5mcnKSzs5N8Po/rutTrdVzXbQmHrutEo1FM00RVVXp7e0kkEgRBwMWLF9F1vaxUq1UikUjtlVdeuV6pVBJ9fX3Ytn2bwrLMysoKXV1dTE5OkslksCwLTdMwDANVVdnY2CAIApLJJJFIBMdxiMfj7Nq1C1VViUajLQCvvvrqkhKJRJiZmfmdb7/99jeTySSyLLfWodFoEAqFOH78OLt37yaXy2GaJoqisLy8zNTUFFevXiUIAtrb29m5cyePPPJIa+cymQz1eh2A0dFRCoXCsgIwNTW1J5/P093dTbFYRJZlJEmiWq1y4MABxsbGqNVqhEIh6vU6QRBQLpcxDIPh4WE8z2NxcZFTp05x7tw5Xn755ZY6dXZ2tliZzWa/EwD1ev3RsbExxsfHSafTVCoVGo0Gqqqya9cuIpEIQgh832dtbY3FxUUA+vr62LZtG2NjYxw5coTDhw+ztLTEyZMnuXr1KoVC4R4d3bt375R84sQJEY/H/2Jubq7N9326urqwbZt6vY5pmhw5coS+vr4W9YvFIrdu3WJqagohBFeuXOHcuXOtue7evRtN01rtfO+991haWmJkZGQrkUi8JIC9iqL0BkFAIpFACMETTzxBV1cXiUSC7u5uHMfB8zyCIMA0TeLxONlsFlmW8X2fwcFBHMdhfn6eer1Oe3s7Dz30EBMTE1y6dImjR49y6tSppR07dqwrjuM8+OWXXzI0NMTly5e5du0aQ0NDTExMkMvlCIKAIAhaIh2LxQiHw0QiEfL5POl0mlqtRq1Wo6OjA8uykGWZdDrN0tISvb29vPPOOzz++OPk83lELpf7rXfffRfDMOjo6MBxHEqlEocOHWLHjh00Gg0kSULTNIS4bS6qqhKPxxkaGmJ4eJjR0VH279/PwMAA27dvJ5vN4vs+X331FR9//DGzs7OEQiE++eQTlPb29keuX7/OtWvXOH78ONVqlZs3b9LW1kYmk8F13dZeCiGQJAnXdRFCYBgGsiwjhMC2bQqFAkEQoOs6P/74Iw8++CCDg4Pous6xY8f47LPPkIIguDo2Nrbzxo0bfPjhh9i2zczMTHNvcF2XpsZalkWj0cB1Xe4o1O3YoCisra3x008/EY/H6erqAuDAgQNEIhGCIODQoUP/ubCwMCKAjx599FHW19f56KOP6OjooFgsks/niUajKIqCbds4joMQAiFESxxs226xd2Zmhng8Tl9fH67r0mg0sG2bbDZLpVIhl8vd5gHwtysrKy8Dcdd1mZubo6enh1gsRrVabZlrk6VND/R9n3q9TqVSQdd1QqEQi4uLnD9/nlKpxODgIHv37gXAcRyCICiFQiHEzp07i1988cUfKYpCIpHANE22b9/eUhNFUVotDIKghc7zPCzLolKpsLW1RVtbG0EQ4DgOmqbR09NDM1qUSiWAPwdQ7ujjmf7+/kQymfxrSZJQVZWtra2WG+i63iKH53m4rku1WqVcLmNZFu3t7S2x7+/vJ51O89prr7VYfenSpcPAP1UqFeSHH36YeDxOKpW6eP/9988Bv9d09nw+T7VapVKptJjZnE2tVmNtbY1cLke5XGZra4vNzU16enp49tlnGRgYaD7iTxqNxgexWIzDhw+jNEPQHV87NT8/f+PChQtnR0ZGqFarrUVuOsDds2u2b2FhgVQqRSQSYWFhgStXrtDf308ymcwBf3nw4EEOHjx4O5c2lURVVRzHYXp6+t8uX7785IULFz7LZDLous59991HOBy+h31N9xgdHSWTyVCtVhkaGmLfvn1MT08zPz/PzMzM6c8//9xr+uE9QViWZer1OhsbGxiG8fns7OzPc7ncx729vXR3d1OpVNi2bRuhUAhZljEMA9/3sW0bVVVZWlri4sWLjI+P8/rrr/P111/z5JNPXrIs69cn76ZeGoaBpmm0tbX9Q6FQeHhubu7fC4UCkUiE1dVVstks8Xgc0zSRZZlGo9ESAdM02djYoNFo8MYbb2BZ1mYoFOKuZPjr/xZBEHCHred83x/b3Nz8l/X19aRlWWxsbNDZ2cnw8DDhcBjf96lWq/T09HD06FGeeuopXnrpJc6ePUs6nb4hhPi/C959ZFn+TtO0lG3bJ0ql0p85jsPW1haFQoG2tjYkSWpF/Uwmw9raGu+//z7A977vX2+GrP93wSZiTdNOGIbxy3K5/DPHcfYXCoVe27Yzpmm2m6bppVKp/Orqqnv69OmoZVn/mEwm/9TzvP9x138NAMpJ4VFTBr6SAAAAAElFTkSuQmCC', }; - socketGroups.cover.update({uid: adminUid}, data, function (err, data) { + socketGroups.cover.update({ uid: adminUid }, data, function (err, data) { assert.ifError(err); Groups.getGroupFields('Test', ['cover:url'], function (err, groupData) { assert.ifError(err); @@ -771,7 +771,7 @@ describe('Groups', function () { groupName: 'Test', position: '50% 50%', }; - socketGroups.cover.update({uid: adminUid}, data, function (err) { + socketGroups.cover.update({ uid: adminUid }, data, function (err) { assert.ifError(err); Groups.getGroupFields('Test', ['cover:position'], function (err, groupData) { assert.ifError(err); @@ -791,7 +791,7 @@ describe('Groups', function () { it('should error if user is not owner of group', function (done) { helpers.loginUser('regularuser', '123456', function (err, jar, io, csrf_token) { assert.ifError(err); - helpers.uploadFile(nconf.get('url') + '/api/groups/uploadpicture', logoPath, {params: JSON.stringify({groupName: 'Test'})}, jar, csrf_token, function (err, res, body) { + helpers.uploadFile(nconf.get('url') + '/api/groups/uploadpicture', logoPath, { params: JSON.stringify({ groupName: 'Test' }) }, jar, csrf_token, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 500); assert.equal(body.error, '[[error:no-privileges]]'); @@ -803,7 +803,7 @@ describe('Groups', function () { it('should upload group cover with api route', function (done) { helpers.loginUser('admin', '123456', function (err, jar, io, csrf_token) { assert.ifError(err); - helpers.uploadFile(nconf.get('url') + '/api/groups/uploadpicture', logoPath, {params: JSON.stringify({groupName: 'Test'})}, jar, csrf_token, function (err, res, body) { + helpers.uploadFile(nconf.get('url') + '/api/groups/uploadpicture', logoPath, { params: JSON.stringify({ groupName: 'Test' }) }, jar, csrf_token, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); Groups.getGroupFields('Test', ['cover:url'], function (err, groupData) { @@ -816,14 +816,14 @@ describe('Groups', function () { }); it('should fail to remove cover if not owner', function (done) { - socketGroups.cover.remove({uid: regularUid}, {groupName: 'Test'}, function (err) { + socketGroups.cover.remove({ uid: regularUid }, { groupName: 'Test' }, function (err) { assert.equal(err.message, '[[error:no-privileges]]'); done(); }); }); it('should remove cover', function (done) { - socketGroups.cover.remove({uid: adminUid}, {groupName: 'Test'}, function (err) { + socketGroups.cover.remove({ uid: adminUid }, { groupName: 'Test' }, function (err) { assert.ifError(err); Groups.getGroupFields('Test', ['cover:url'], function (err, groupData) { assert.ifError(err); diff --git a/test/helpers/index.js b/test/helpers/index.js index 0edb10a4a0..1cf5aca5bd 100644 --- a/test/helpers/index.js +++ b/test/helpers/index.js @@ -45,7 +45,7 @@ helpers.loginUser = function (username, password, callback) { var socketClient = require('socket.io-client'); - var io = socketClient.connect(nconf.get('url'), {forceNew: true, multiplex: false}); + var io = socketClient.connect(nconf.get('url'), { forceNew: true, multiplex: false }); io.on('connect', function () { callback(null, jar, io, body.csrf_token); }); @@ -77,7 +77,7 @@ helpers.initSocketIO = function (callback) { }; }; - var io = require('socket.io-client')(nconf.get('url'), {forceNew: true}); + var io = require('socket.io-client')(nconf.get('url'), { forceNew: true }); io.on('connect', function () { callback(null, jar, io); diff --git a/test/messaging.js b/test/messaging.js index 76c05b3a1f..879bdda209 100644 --- a/test/messaging.js +++ b/test/messaging.js @@ -80,7 +80,7 @@ describe('Messaging Library', function () { describe('rooms', function () { var socketModules = require('../src/socket.io/modules'); it('should create a new chat room', function (done) { - socketModules.chats.newRoom({uid: fooUid}, {touid: bazUid}, function (err, _roomId) { + socketModules.chats.newRoom({ uid: fooUid }, { touid: bazUid }, function (err, _roomId) { roomId = _roomId; assert.ifError(err); assert(roomId); @@ -89,14 +89,14 @@ describe('Messaging Library', function () { }); it('should add a user to room', function (done) { - socketModules.chats.addUserToRoom({uid: fooUid}, {roomId: roomId, username: 'herp'}, function (err) { + socketModules.chats.addUserToRoom({ uid: fooUid }, { roomId: roomId, username: 'herp' }, function (err) { assert.ifError(err); done(); }); }); it('should leave the chat room', function (done) { - socketModules.chats.leave({uid: bazUid}, roomId, function (err) { + socketModules.chats.leave({ uid: bazUid }, roomId, function (err) { assert.ifError(err); Messaging.isUserInRoom(bazUid, roomId, function (err, isUserInRoom) { assert.ifError(err); @@ -107,13 +107,13 @@ describe('Messaging Library', function () { }); it('should send a message to a room', function (done) { - socketModules.chats.send({uid: fooUid}, {roomId: roomId, message: 'first chat message'}, function (err, messageData) { + socketModules.chats.send({ uid: fooUid }, { roomId: roomId, message: 'first chat message' }, function (err, messageData) { assert.ifError(err); assert(messageData); assert.equal(messageData.content, 'first chat message'); assert(messageData.fromUser); assert(messageData.roomId, roomId); - socketModules.chats.getRaw({uid: fooUid}, {roomId: roomId, mid: messageData.mid}, function (err, raw) { + socketModules.chats.getRaw({ uid: fooUid }, { roomId: roomId, mid: messageData.mid }, function (err, raw) { assert.ifError(err); assert.equal(raw, 'first chat message'); done(); @@ -122,7 +122,7 @@ describe('Messaging Library', function () { }); it('should get messages from room', function (done) { - socketModules.chats.getMessages({uid: fooUid}, { + socketModules.chats.getMessages({ uid: fooUid }, { uid: fooUid, roomId: roomId, start: 0, @@ -136,21 +136,21 @@ describe('Messaging Library', function () { }); it('should mark room read', function (done) { - socketModules.chats.markRead({uid: fooUid}, roomId, function (err) { + socketModules.chats.markRead({ uid: fooUid }, roomId, function (err) { assert.ifError(err); done(); }); }); it('should mark all rooms read', function (done) { - socketModules.chats.markAllRead({uid: fooUid}, {}, function (err) { + socketModules.chats.markAllRead({ uid: fooUid }, {}, function (err) { assert.ifError(err); done(); }); }); it('should rename room', function (done) { - socketModules.chats.renameRoom({uid: fooUid}, {roomId: roomId, newName: 'new room name'}, function (err) { + socketModules.chats.renameRoom({ uid: fooUid }, { roomId: roomId, newName: 'new room name' }, function (err) { assert.ifError(err); done(); @@ -158,7 +158,7 @@ describe('Messaging Library', function () { }); it('should load chat room', function (done) { - socketModules.chats.loadRoom({uid: fooUid}, {roomId: roomId}, function (err, data) { + socketModules.chats.loadRoom({ uid: fooUid }, { roomId: roomId }, function (err, data) { assert.ifError(err); assert(data); assert.equal(data.roomName, 'new room name'); @@ -171,7 +171,7 @@ describe('Messaging Library', function () { var socketModules = require('../src/socket.io/modules'); var mid; before(function (done) { - socketModules.chats.send({uid: fooUid}, {roomId: roomId, message: 'first chat message'}, function (err, messageData) { + socketModules.chats.send({ uid: fooUid }, { roomId: roomId, message: 'first chat message' }, function (err, messageData) { assert.ifError(err); mid = messageData.mid; done(); @@ -179,9 +179,9 @@ describe('Messaging Library', function () { }); it('should edit message', function (done) { - socketModules.chats.edit({uid: fooUid}, {mid: mid, roomId: roomId, message: 'message edited'}, function (err) { + socketModules.chats.edit({ uid: fooUid }, { mid: mid, roomId: roomId, message: 'message edited' }, function (err) { assert.ifError(err); - socketModules.chats.getRaw({uid: fooUid}, {roomId: roomId, mid: mid}, function (err, raw) { + socketModules.chats.getRaw({ uid: fooUid }, { roomId: roomId, mid: mid }, function (err, raw) { assert.ifError(err); assert.equal(raw, 'message edited'); done(); @@ -190,7 +190,7 @@ describe('Messaging Library', function () { }); it('should delete message', function (done) { - socketModules.chats.delete({uid: fooUid}, {messageId: mid, roomId: roomId}, function (err) { + socketModules.chats.delete({ uid: fooUid }, { messageId: mid, roomId: roomId }, function (err) { assert.ifError(err); db.exists('message:' + mid, function (err, exists) { assert.ifError(err); @@ -240,7 +240,7 @@ describe('Messaging Library', function () { }); it('should return chats page data', function (done) { - request(nconf.get('url') + '/api/user/herp/chats', {json: true, jar: jar}, function (err, response, body) { + request(nconf.get('url') + '/api/user/herp/chats', { json: true, jar: jar }, function (err, response, body) { assert.ifError(err); assert.equal(response.statusCode, 200); assert(Array.isArray(body.rooms)); @@ -251,7 +251,7 @@ describe('Messaging Library', function () { }); it('should return room data', function (done) { - request(nconf.get('url') + '/api/user/herp/chats/' + roomId, {json: true, jar: jar}, function (err, response, body) { + request(nconf.get('url') + '/api/user/herp/chats/' + roomId, { json: true, jar: jar }, function (err, response, body) { assert.ifError(err); assert.equal(response.statusCode, 200); assert.equal(body.roomId, roomId); @@ -261,7 +261,7 @@ describe('Messaging Library', function () { }); it('should redirect to chats page', function (done) { - request(nconf.get('url') + '/api/chats', {jar: jar}, function (err, response, body) { + request(nconf.get('url') + '/api/chats', { jar: jar }, function (err, response, body) { assert.ifError(err); assert.equal(body, '"/user/herp/chats"'); assert.equal(response.statusCode, 308); @@ -272,7 +272,7 @@ describe('Messaging Library', function () { it('should return 404 if user is not in room', function (done) { helpers.loginUser('baz', 'quuxquux', function (err, jar) { assert.ifError(err); - request(nconf.get('url') + '/api/user/baz/chats/' + roomId, {json: true, jar: jar}, function (err, response, body) { + request(nconf.get('url') + '/api/user/baz/chats/' + roomId, { json: true, jar: jar }, function (err, response, body) { assert.ifError(err); assert.equal(response.statusCode, 404); done(); diff --git a/test/meta.js b/test/meta.js index 5d9284030c..9d1a69b00c 100644 --- a/test/meta.js +++ b/test/meta.js @@ -36,7 +36,7 @@ describe('meta', function () { describe('settings', function () { var socketAdmin = require('../src/socket.io/admin'); it('it should set setting', function (done) { - socketAdmin.settings.set({uid: fooUid}, {hash: 'some:hash', values: {foo: '1', derp: 'value'}}, function (err) { + socketAdmin.settings.set({ uid: fooUid }, { hash: 'some:hash', values: { foo: '1', derp: 'value' } }, function (err) { assert.ifError(err); db.getObject('settings:some:hash', function (err, data) { assert.ifError(err); @@ -48,7 +48,7 @@ describe('meta', function () { }); it('it should get setting', function (done) { - socketAdmin.settings.get({uid: fooUid}, {hash: 'some:hash'}, function (err, data) { + socketAdmin.settings.get({ uid: fooUid }, { hash: 'some:hash' }, function (err, data) { assert.ifError(err); assert.equal(data.foo, '1'); assert.equal(data.derp, 'value'); @@ -57,7 +57,7 @@ describe('meta', function () { }); it('should not set setting if not empty', function (done) { - meta.settings.setOnEmpty('some:hash', {foo: 2}, function (err) { + meta.settings.setOnEmpty('some:hash', { foo: 2 }, function (err) { assert.ifError(err); db.getObject('settings:some:hash', function (err, data) { assert.ifError(err); @@ -69,7 +69,7 @@ describe('meta', function () { }); it('should set setting if empty', function (done) { - meta.settings.setOnEmpty('some:hash', {empty: '2'}, function (err) { + meta.settings.setOnEmpty('some:hash', { empty: '2' }, function (err) { assert.ifError(err); db.getObject('settings:some:hash', function (err, data) { assert.ifError(err); @@ -97,7 +97,7 @@ describe('meta', function () { describe('config', function () { var socketAdmin = require('../src/socket.io/admin'); before(function (done) { - db.setObject('config', {minimumTagLength: 3, maximumTagLength: 15}, done); + db.setObject('config', { minimumTagLength: 3, maximumTagLength: 15 }, done); }); it('should get config fields', function (done) { @@ -117,7 +117,7 @@ describe('meta', function () { }); it('should fail if data is invalid', function (done) { - socketAdmin.config.set({uid: fooUid}, null, function (err) { + socketAdmin.config.set({ uid: fooUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); @@ -135,14 +135,14 @@ describe('meta', function () { }); it('should fail if data is invalid', function (done) { - socketAdmin.config.setMultiple({uid: fooUid}, null, function (err) { + socketAdmin.config.setMultiple({ uid: fooUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should set multiple values', function (done) { - socketAdmin.config.setMultiple({uid: fooUid}, { + socketAdmin.config.setMultiple({ uid: fooUid }, { someField1: 'someValue1', someField2: 'someValue2', customCSS: '.derp{color:#00ff00;}', @@ -158,7 +158,7 @@ describe('meta', function () { }); it('should not set config if not empty', function (done) { - meta.configs.setOnEmpty({someField1: 'foo'}, function (err) { + meta.configs.setOnEmpty({ someField1: 'foo' }, function (err) { assert.ifError(err); db.getObjectField('config', 'someField1', function (err, value) { assert.ifError(err); @@ -169,7 +169,7 @@ describe('meta', function () { }); it('should remove config field', function (done) { - socketAdmin.config.remove({uid: fooUid}, 'someField1', function (err) { + socketAdmin.config.remove({ uid: fooUid }, 'someField1', function (err) { assert.ifError(err); db.isObjectField('config', 'someField1', function (err, isObjectField) { assert.ifError(err); diff --git a/test/notifications.js b/test/notifications.js index e0a856b961..f21d46cf32 100644 --- a/test/notifications.js +++ b/test/notifications.js @@ -14,7 +14,7 @@ describe('Notifications', function () { var notification; before(function (done) { - user.create({username: 'poster'}, function (err, _uid) { + user.create({ username: 'poster' }, function (err, _uid) { if (err) { return done(err); } @@ -95,7 +95,7 @@ describe('Notifications', function () { }); it('should mark a notification read', function (done) { - socketNotifications.markRead({uid: uid}, notification.nid, function (err) { + socketNotifications.markRead({ uid: uid }, notification.nid, function (err) { assert.ifError(err); db.isSortedSetMember('uid:' + uid + ':notifications:unread', notification.nid, function (err, isMember) { assert.ifError(err); @@ -110,7 +110,7 @@ describe('Notifications', function () { }); it('should mark a notification unread', function (done) { - socketNotifications.markUnread({uid: uid}, notification.nid, function (err) { + socketNotifications.markUnread({ uid: uid }, notification.nid, function (err) { assert.ifError(err); db.isSortedSetMember('uid:' + uid + ':notifications:unread', notification.nid, function (err, isMember) { assert.ifError(err); @@ -118,7 +118,7 @@ describe('Notifications', function () { db.isSortedSetMember('uid:' + uid + ':notifications:read', notification.nid, function (err, isMember) { assert.ifError(err); assert.equal(isMember, false); - socketNotifications.getCount({uid: uid}, null, function (err, count) { + socketNotifications.getCount({ uid: uid }, null, function (err, count) { assert.ifError(err); assert.equal(count, 1); done(); @@ -129,7 +129,7 @@ describe('Notifications', function () { }); it('should mark all notifications read', function (done) { - socketNotifications.markAllRead({uid: uid}, null, function (err) { + socketNotifications.markAllRead({ uid: uid }, null, function (err) { assert.ifError(err); db.isSortedSetMember('uid:' + uid + ':notifications:unread', notification.nid, function (err, isMember) { assert.ifError(err); @@ -154,7 +154,7 @@ describe('Notifications', function () { async.waterfall([ function (next) { - user.create({username: 'watcher'}, next); + user.create({ username: 'watcher' }, next); }, function (_watcherUid, next) { watcherUid = _watcherUid; @@ -214,7 +214,7 @@ describe('Notifications', function () { }); it('should get notification by nid', function (done) { - socketNotifications.get({uid: uid}, {nids: [notification.nid]}, function (err, data) { + socketNotifications.get({ uid: uid }, { nids: [notification.nid] }, function (err, data) { assert.ifError(err); assert.equal(data[0].bodyShort, 'bodyShort'); assert.equal(data[0].nid, 'notification_id'); @@ -224,7 +224,7 @@ describe('Notifications', function () { }); it('should get user\'s notifications', function (done) { - socketNotifications.get({uid: uid}, {}, function (err, data) { + socketNotifications.get({ uid: uid }, {}, function (err, data) { assert.ifError(err); assert.equal(data.unread.length, 0); assert.equal(data.read[0].nid, 'notification_id'); @@ -233,21 +233,21 @@ describe('Notifications', function () { }); it('should error with invalid data', function (done) { - socketNotifications.loadMore({uid: uid}, {after: 'test'}, function (err) { + socketNotifications.loadMore({ uid: uid }, { after: 'test' }, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should error if not logged in', function (done) { - socketNotifications.loadMore({uid: 0}, {after: 10}, function (err) { + socketNotifications.loadMore({ uid: 0 }, { after: 10 }, function (err) { assert.equal(err.message, '[[error:no-privileges]]'); done(); }); }); it('should load more notifications', function (done) { - socketNotifications.loadMore({uid: uid}, {after: 0}, function (err, data) { + socketNotifications.loadMore({ uid: uid }, { after: 0 }, function (err, data) { assert.ifError(err); assert.equal(data.notifications[0].bodyShort, 'bodyShort'); assert.equal(data.notifications[0].nid, 'notification_id'); @@ -258,16 +258,16 @@ describe('Notifications', function () { it('should error if not logged in', function (done) { - socketNotifications.deleteAll({uid: 0}, null, function (err) { + socketNotifications.deleteAll({ uid: 0 }, null, function (err) { assert.equal(err.message, '[[error:no-privileges]]'); done(); }); }); it('should delete all user notifications', function (done) { - socketNotifications.deleteAll({uid: uid}, null, function (err) { + socketNotifications.deleteAll({ uid: uid }, null, function (err) { assert.ifError(err); - socketNotifications.get({uid: uid}, {}, function (err, data) { + socketNotifications.get({ uid: uid }, {}, function (err, data) { assert.ifError(err); assert.equal(data.unread.length, 0); assert.equal(data.read.length, 0); diff --git a/test/pagination.js b/test/pagination.js index 8ca2cdf586..30f79a718e 100644 --- a/test/pagination.js +++ b/test/pagination.js @@ -27,7 +27,7 @@ describe('Pagination', function () { }); it('should create pagination for 3 pages with query params', function (done) { - var data = pagination.create(1, 3, {key: 'value'}); + var data = pagination.create(1, 3, { key: 'value' }); assert.equal(data.pages.length, 3); assert.equal(data.rel.length, 1); assert.equal(data.pageCount, 3); diff --git a/test/plugins.js b/test/plugins.js index a9936ba819..97a9c1908b 100644 --- a/test/plugins.js +++ b/test/plugins.js @@ -37,10 +37,10 @@ describe('Plugins', function () { callback(null, data); } - plugins.registerHook('test-plugin', {hook: 'filter:test.hook', method: filterMethod1}); - plugins.registerHook('test-plugin', {hook: 'filter:test.hook', method: filterMethod2}); + plugins.registerHook('test-plugin', { hook: 'filter:test.hook', method: filterMethod1 }); + plugins.registerHook('test-plugin', { hook: 'filter:test.hook', method: filterMethod2 }); - plugins.fireHook('filter:test.hook', {foo: 1}, function (err, data) { + plugins.fireHook('filter:test.hook', { foo: 1 }, function (err, data) { assert.ifError(err); assert.equal(data.foo, 7); done(); @@ -53,8 +53,8 @@ describe('Plugins', function () { done(); } - plugins.registerHook('test-plugin', {hook: 'action:test.hook', method: actionMethod}); - plugins.fireHook('action:test.hook', {bar: 'test'}); + plugins.registerHook('test-plugin', { hook: 'action:test.hook', method: actionMethod }); + plugins.fireHook('action:test.hook', { bar: 'test' }); }); it('should register and fire a static hook', function (done) { @@ -63,8 +63,8 @@ describe('Plugins', function () { callback(); } - plugins.registerHook('test-plugin', {hook: 'static:test.hook', method: actionMethod}); - plugins.fireHook('static:test.hook', {bar: 'test'}, function (err) { + plugins.registerHook('test-plugin', { hook: 'static:test.hook', method: actionMethod }); + plugins.fireHook('static:test.hook', { bar: 'test' }, function (err) { assert.ifError(err); done(); }); diff --git a/test/posts.js b/test/posts.js index 646182fdeb..2c21178801 100644 --- a/test/posts.js +++ b/test/posts.js @@ -24,13 +24,13 @@ describe('Post\'s', function () { groups.resetCache(); async.series({ voterUid: function (next) { - user.create({username: 'upvoter'}, next); + user.create({ username: 'upvoter' }, next); }, voteeUid: function (next) { - user.create({username: 'upvotee'}, next); + user.create({ username: 'upvotee' }, next); }, globalModUid: function (next) { - user.create({username: 'globalmod'}, next); + user.create({ username: 'globalmod' }, next); }, category: function (next) { categories.create({ @@ -68,7 +68,7 @@ describe('Post\'s', function () { describe('voting', function () { var socketPosts = require('../src/socket.io/posts'); it('should upvote a post', function (done) { - socketPosts.upvote({uid: voterUid}, {pid: postData.pid, room_id: 'topic_1'}, function (err, result) { + socketPosts.upvote({ uid: voterUid }, { pid: postData.pid, room_id: 'topic_1' }, function (err, result) { assert.ifError(err); assert.equal(result.post.upvotes, 1); assert.equal(result.post.downvotes, 0); @@ -84,7 +84,7 @@ describe('Post\'s', function () { }); it('should get voters', function (done) { - socketPosts.getVoters({uid: globalModUid}, {pid: postData.pid, cid: cid}, function (err, data) { + socketPosts.getVoters({ uid: globalModUid }, { pid: postData.pid, cid: cid }, function (err, data) { assert.ifError(err); assert.equal(data.upvoteCount, 1); assert.equal(data.downvoteCount, 0); @@ -95,7 +95,7 @@ describe('Post\'s', function () { }); it('should get upvoters', function (done) { - socketPosts.getUpvoters({uid: globalModUid}, [postData.pid], function (err, data) { + socketPosts.getUpvoters({ uid: globalModUid }, [postData.pid], function (err, data) { assert.ifError(err); assert.equal(data[0].otherCount, 0); assert.equal(data[0].usernames, 'upvoter'); @@ -104,7 +104,7 @@ describe('Post\'s', function () { }); it('should unvote a post', function (done) { - socketPosts.unvote({uid: voterUid}, {pid: postData.pid, room_id: 'topic_1'}, function (err, result) { + socketPosts.unvote({ uid: voterUid }, { pid: postData.pid, room_id: 'topic_1' }, function (err, result) { assert.ifError(err); assert.equal(result.post.upvotes, 0); assert.equal(result.post.downvotes, 0); @@ -120,7 +120,7 @@ describe('Post\'s', function () { }); it('should downvote a post', function (done) { - socketPosts.downvote({uid: voterUid}, {pid: postData.pid, room_id: 'topic_1'}, function (err, result) { + socketPosts.downvote({ uid: voterUid }, { pid: postData.pid, room_id: 'topic_1' }, function (err, result) { assert.ifError(err); assert.equal(result.post.upvotes, 0); assert.equal(result.post.downvotes, 1); @@ -166,14 +166,14 @@ describe('Post\'s', function () { var socketPosts = require('../src/socket.io/posts'); it('should error if data is invalid', function (done) { - socketPosts.loadPostTools({uid: globalModUid}, null, function (err) { + socketPosts.loadPostTools({ uid: globalModUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should load post tools', function (done) { - socketPosts.loadPostTools({uid: globalModUid}, {pid: postData.pid, cid: cid}, function (err, data) { + socketPosts.loadPostTools({ uid: globalModUid }, { pid: postData.pid, cid: cid }, function (err, data) { assert.ifError(err); assert(data.posts.display_edit_tools); assert(data.posts.display_delete_tools); @@ -220,14 +220,14 @@ describe('Post\'s', function () { }); it('should error with invalid data', function (done) { - socketPosts.delete({uid: voterUid}, null, function (err) { + socketPosts.delete({ uid: voterUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should delete a post', function (done) { - socketPosts.delete({uid: voterUid}, {pid: replyPid, tid: tid}, function (err) { + socketPosts.delete({ uid: voterUid }, { pid: replyPid, tid: tid }, function (err) { assert.ifError(err); posts.getPostField(replyPid, 'deleted', function (err, isDeleted) { assert.ifError(err); @@ -238,7 +238,7 @@ describe('Post\'s', function () { }); it('should restore a post', function (done) { - socketPosts.restore({uid: voterUid}, {pid: replyPid, tid: tid}, function (err) { + socketPosts.restore({ uid: voterUid }, { pid: replyPid, tid: tid }, function (err) { assert.ifError(err); posts.getPostField(replyPid, 'deleted', function (err, isDeleted) { assert.ifError(err); @@ -249,7 +249,7 @@ describe('Post\'s', function () { }); it('should delete posts', function (done) { - socketPosts.deletePosts({uid: globalModUid}, {pids: [replyPid, mainPid], tid: tid}, function (err) { + socketPosts.deletePosts({ uid: globalModUid }, { pids: [replyPid, mainPid], tid: tid }, function (err) { assert.ifError(err); posts.getPostField(replyPid, 'deleted', function (err, deleted) { assert.ifError(err); @@ -264,9 +264,9 @@ describe('Post\'s', function () { }); it('should delete topic if last main post is deleted', function (done) { - topics.post({uid: voterUid, cid: cid, title: 'test topic', content: 'test topic'}, function (err, data) { + topics.post({ uid: voterUid, cid: cid, title: 'test topic', content: 'test topic' }, function (err, data) { assert.ifError(err); - socketPosts.deletePosts({uid: globalModUid}, {pids: [data.postData.pid], tid: data.topicData.tid}, function (err) { + socketPosts.deletePosts({ uid: globalModUid }, { pids: [data.postData.pid], tid: data.topicData.tid }, function (err) { assert.ifError(err); topics.getTopicField(data.topicData.tid, 'deleted', function (err, deleted) { assert.ifError(err); @@ -279,7 +279,7 @@ describe('Post\'s', function () { it('should purge posts and delete topic', function (done) { createTopicWithReply(function (topicPostData, replyData) { - socketPosts.purgePosts({uid: voterUid}, {pids: [replyData.pid, topicPostData.postData.pid], tid: topicPostData.topicData.tid}, function (err) { + socketPosts.purgePosts({ uid: voterUid }, { pids: [replyData.pid, topicPostData.postData.pid], tid: topicPostData.topicData.tid }, function (err) { assert.ifError(err); posts.exists('post:' + replyData.pid, function (err, exists) { assert.ifError(err); @@ -325,21 +325,21 @@ describe('Post\'s', function () { }); it('should error if user is not logged in', function (done) { - socketPosts.edit({uid: 0}, {}, function (err) { + socketPosts.edit({ uid: 0 }, {}, function (err) { assert.equal(err.message, '[[error:not-logged-in]]'); done(); }); }); it('should error if data is invalid or missing', function (done) { - socketPosts.edit({uid: voterUid}, {}, function (err) { + socketPosts.edit({ uid: voterUid }, {}, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should error if title is too short', function (done) { - socketPosts.edit({uid: voterUid}, {pid: pid, content: 'edited post content', title: 'a'}, function (err) { + socketPosts.edit({ uid: voterUid }, { pid: pid, content: 'edited post content', title: 'a' }, function (err) { assert.equal(err.message, '[[error:title-too-short, ' + meta.config.minimumTitleLength + ']]'); done(); }); @@ -347,7 +347,7 @@ describe('Post\'s', function () { it('should error if title is too long', function (done) { var longTitle = new Array(parseInt(meta.config.maximumTitleLength, 10) + 2).join('a'); - socketPosts.edit({uid: voterUid}, {pid: pid, content: 'edited post content', title: longTitle}, function (err) { + socketPosts.edit({ uid: voterUid }, { pid: pid, content: 'edited post content', title: longTitle }, function (err) { assert.equal(err.message, '[[error:title-too-long, ' + meta.config.maximumTitleLength + ']]'); done(); }); @@ -356,7 +356,7 @@ describe('Post\'s', function () { it('should error with too few tags', function (done) { var oldValue = meta.config.minimumTagsPerTopic; meta.config.minimumTagsPerTopic = 1; - socketPosts.edit({uid: voterUid}, {pid: pid, content: 'edited post content', tags: []}, function (err) { + socketPosts.edit({ uid: voterUid }, { pid: pid, content: 'edited post content', tags: [] }, function (err) { assert.equal(err.message, '[[error:not-enough-tags, ' + meta.config.minimumTagsPerTopic + ']]'); meta.config.minimumTagsPerTopic = oldValue; done(); @@ -368,14 +368,14 @@ describe('Post\'s', function () { for (var i = 0; i < meta.config.maximumTagsPerTopic + 1; i += 1) { tags.push('tag' + i); } - socketPosts.edit({uid: voterUid}, {pid: pid, content: 'edited post content', tags: tags}, function (err) { + socketPosts.edit({ uid: voterUid }, { pid: pid, content: 'edited post content', tags: tags }, function (err) { assert.equal(err.message, '[[error:too-many-tags, ' + meta.config.maximumTagsPerTopic + ']]'); done(); }); }); it('should error if content is too short', function (done) { - socketPosts.edit({uid: voterUid}, {pid: pid, content: 'e'}, function (err) { + socketPosts.edit({ uid: voterUid }, { pid: pid, content: 'e' }, function (err) { assert.equal(err.message, '[[error:content-too-short, ' + meta.config.minimumPostLength + ']]'); done(); }); @@ -383,14 +383,14 @@ describe('Post\'s', function () { it('should error if content is too long', function (done) { var longContent = new Array(parseInt(meta.config.maximumPostLength, 10) + 2).join('a'); - socketPosts.edit({uid: voterUid}, {pid: pid, content: longContent}, function (err) { + socketPosts.edit({ uid: voterUid }, { pid: pid, content: longContent }, function (err) { assert.equal(err.message, '[[error:content-too-long, ' + meta.config.maximumPostLength + ']]'); done(); }); }); it('should edit post', function (done) { - socketPosts.edit({uid: voterUid}, {pid: pid, content: 'edited post content', title: 'edited title', tags: ['edited']}, function (err, data) { + socketPosts.edit({ uid: voterUid }, { pid: pid, content: 'edited post content', title: 'edited title', tags: ['edited'] }, function (err, data) { assert.ifError(err); assert.equal(data.content, 'edited post content'); assert.equal(data.editor, voterUid); @@ -401,9 +401,9 @@ describe('Post\'s', function () { }); it('should edit a deleted post', function (done) { - socketPosts.delete({uid: voterUid}, {pid: pid, tid: tid}, function (err) { + socketPosts.delete({ uid: voterUid }, { pid: pid, tid: tid }, function (err) { assert.ifError(err); - socketPosts.edit({uid: voterUid}, {pid: pid, content: 'edited deleted content', title: 'edited deleted title', tags: ['deleted']}, function (err, data) { + socketPosts.edit({ uid: voterUid }, { pid: pid, content: 'edited deleted content', title: 'edited deleted title', tags: ['deleted'] }, function (err, data) { assert.ifError(err); assert.equal(data.content, 'edited deleted content'); assert.equal(data.editor, voterUid); @@ -415,7 +415,7 @@ describe('Post\'s', function () { }); it('should edit a reply post', function (done) { - socketPosts.edit({uid: voterUid}, {pid: replyPid, content: 'edited reply'}, function (err, data) { + socketPosts.edit({ uid: voterUid }, { pid: replyPid, content: 'edited reply' }, function (err, data) { assert.ifError(err); assert.equal(data.content, 'edited reply'); assert.equal(data.editor, voterUid); @@ -468,21 +468,21 @@ describe('Post\'s', function () { }); it('should error if uid is not logged in', function (done) { - socketPosts.movePost({uid: 0}, {}, function (err) { + socketPosts.movePost({ uid: 0 }, {}, function (err) { assert.equal(err.message, '[[error:not-logged-in]]'); done(); }); }); it('should error if data is invalid', function (done) { - socketPosts.movePost({uid: globalModUid}, {}, function (err) { + socketPosts.movePost({ uid: globalModUid }, {}, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should error if user does not have move privilege', function (done) { - socketPosts.movePost({uid: voterUid}, {pid: replyPid, tid: moveTid}, function (err) { + socketPosts.movePost({ uid: voterUid }, { pid: replyPid, tid: moveTid }, function (err) { assert.equal(err.message, '[[error:no-privileges]]'); done(); }); @@ -490,7 +490,7 @@ describe('Post\'s', function () { it('should move a post', function (done) { - socketPosts.movePost({uid: globalModUid}, {pid: replyPid, tid: moveTid}, function (err) { + socketPosts.movePost({ uid: globalModUid }, { pid: replyPid, tid: moveTid }, function (err) { assert.ifError(err); posts.getPostField(replyPid, 'tid', function (err, tid) { assert.ifError(err); @@ -521,9 +521,9 @@ describe('Post\'s', function () { }); it('should return nothing without a uid or a reason', function (done) { - socketPosts.flag({uid: 0}, {pid: postData.pid, reason: 'reason'}, function (err) { + socketPosts.flag({ uid: 0 }, { pid: postData.pid, reason: 'reason' }, function (err) { assert.equal(err.message, '[[error:not-logged-in]]'); - socketPosts.flag({uid: voteeUid}, {}, function (err) { + socketPosts.flag({ uid: voteeUid }, {}, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); @@ -531,14 +531,14 @@ describe('Post\'s', function () { }); it('should return an error without an existing post', function (done) { - socketPosts.flag({uid: voteeUid}, {pid: 12312312, reason: 'reason'}, function (err) { + socketPosts.flag({ uid: voteeUid }, { pid: 12312312, reason: 'reason' }, function (err) { assert.equal(err.message, '[[error:no-post]]'); done(); }); }); it('should return an error if the flag already exists', function (done) { - socketPosts.flag({uid: voteeUid}, {pid: postData.pid, reason: 'reason'}, function (err) { + socketPosts.flag({ uid: voteeUid }, { pid: postData.pid, reason: 'reason' }, function (err) { assert.equal(err.message, '[[error:already-flagged]]'); done(); }); @@ -547,7 +547,7 @@ describe('Post\'s', function () { function flagPost(next) { var socketPosts = require('../src/socket.io/posts'); - socketPosts.flag({uid: voteeUid}, {pid: postData.pid, reason: 'reason'}, next); + socketPosts.flag({ uid: voteeUid }, { pid: postData.pid, reason: 'reason' }, next); } describe('get flag data', function () { @@ -582,11 +582,11 @@ describe('Post\'s', function () { it('should update a flag', function (done) { async.waterfall([ function (next) { - socketPosts.updateFlag({uid: globalModUid}, { + socketPosts.updateFlag({ uid: globalModUid }, { pid: postData.pid, data: [ - {name: 'assignee', value: `${globalModUid}`}, - {name: 'notes', value: 'notes'}, + { name: 'assignee', value: `${globalModUid}` }, + { name: 'notes', value: 'notes' }, ], }, function (err) { assert.ifError(err); @@ -674,7 +674,7 @@ describe('Post\'s', function () { var socketPosts = require('../src/socket.io/posts'); it('should dismiss a flag', function (done) { - socketPosts.dismissFlag({uid: globalModUid}, postData.pid, function (err) { + socketPosts.dismissFlag({ uid: globalModUid }, postData.pid, function (err) { assert.ifError(err); posts.isFlaggedByUser(postData.pid, voteeUid, function (err, hasFlagged) { assert.ifError(err); @@ -702,7 +702,7 @@ describe('Post\'s', function () { }); it('should dismiss all flags', function (done) { - socketPosts.dismissAllFlags({uid: globalModUid}, {}, function (err) { + socketPosts.dismissAllFlags({ uid: globalModUid }, {}, function (err) { assert.ifError(err); posts.isFlaggedByUser(postData.pid, voteeUid, function (err, hasFlagged) { assert.ifError(err); diff --git a/test/rewards.js b/test/rewards.js index 8eabf6d4e2..67a00fe911 100644 --- a/test/rewards.js +++ b/test/rewards.js @@ -57,7 +57,7 @@ describe('rewards', function () { }, ]; - socketAdmin.rewards.save({uid: adminUid}, data, function (err) { + socketAdmin.rewards.save({ uid: adminUid }, data, function (err) { assert.ifError(err); done(); }); diff --git a/test/search.js b/test/search.js index e6b5c6d9cb..a18f6b3b41 100644 --- a/test/search.js +++ b/test/search.js @@ -29,10 +29,10 @@ describe('Search', function () { function (next) { async.series({ phoebe: function (next) { - user.create({username: 'phoebe'}, next); + user.create({ username: 'phoebe' }, next); }, ginger: function (next) { - user.create({username: 'ginger'}, next); + user.create({ username: 'ginger' }, next); }, category1: function (next) { categories.create({ diff --git a/test/socket.io.js b/test/socket.io.js index f5de533401..7cfbbdcb9d 100644 --- a/test/socket.io.js +++ b/test/socket.io.js @@ -28,7 +28,7 @@ describe('socket.io', function () { before(function (done) { async.series([ async.apply(user.create, { username: 'admin', password: 'adminpwd' }), - async.apply(user.create, { username: 'regular', password: 'regularpwd', email: 'regular@test.com'}), + async.apply(user.create, { username: 'regular', password: 'regularpwd', email: 'regular@test.com' }), async.apply(categories.create, { name: 'Test Category', description: 'Test category created by testing script', @@ -76,7 +76,7 @@ describe('socket.io', function () { }; }; - io = require('socket.io-client')(nconf.get('url'), {forceNew: true}); + io = require('socket.io-client')(nconf.get('url'), { forceNew: true }); io.on('connect', function () { done(); @@ -113,7 +113,7 @@ describe('socket.io', function () { }); it('should post a topic', function (done) { - io.emit('topics.post', {title: 'test topic title', content: 'test topic main post content', uid: adminUid, cid: cid}, function (err, result) { + io.emit('topics.post', { title: 'test topic title', content: 'test topic main post content', uid: adminUid, cid: cid }, function (err, result) { assert.ifError(err); assert.equal(result.user.username, 'admin'); assert.equal(result.category.cid, cid); @@ -124,7 +124,7 @@ describe('socket.io', function () { }); it('should reply to topic', function (done) { - io.emit('posts.reply', {tid: tid, uid: adminUid, content: 'test post content'}, function (err, result) { + io.emit('posts.reply', { tid: tid, uid: adminUid, content: 'test post content' }, function (err, result) { assert.ifError(err); assert.equal(result.uid, adminUid); assert.equal(result.user.username, 'admin'); @@ -135,7 +135,7 @@ describe('socket.io', function () { it('should ban a user', function (done) { var socketUser = require('../src/socket.io/user'); - socketUser.banUsers({uid: adminUid}, {uids: [regularUid], reason: 'spammer'}, function (err) { + socketUser.banUsers({ uid: adminUid }, { uids: [regularUid], reason: 'spammer' }, function (err) { assert.ifError(err); user.getLatestBanInfo(regularUid, function (err, data) { assert.ifError(err); @@ -159,7 +159,7 @@ describe('socket.io', function () { it('should unban a user', function (done) { var socketUser = require('../src/socket.io/user'); - socketUser.unbanUsers({uid: adminUid}, [regularUid], function (err) { + socketUser.unbanUsers({ uid: adminUid }, [regularUid], function (err) { assert.ifError(err); user.isBanned(regularUid, function (err, isBanned) { assert.ifError(err); @@ -171,7 +171,7 @@ describe('socket.io', function () { it('should make user admin', function (done) { var socketAdmin = require('../src/socket.io/admin'); - socketAdmin.user.makeAdmins({uid: adminUid}, [regularUid], function (err) { + socketAdmin.user.makeAdmins({ uid: adminUid }, [regularUid], function (err) { assert.ifError(err); groups.isMember(regularUid, 'administrators', function (err, isMember) { assert.ifError(err); @@ -183,7 +183,7 @@ describe('socket.io', function () { it('should make user non-admin', function (done) { var socketAdmin = require('../src/socket.io/admin'); - socketAdmin.user.removeAdmins({uid: adminUid}, [regularUid], function (err) { + socketAdmin.user.removeAdmins({ uid: adminUid }, [regularUid], function (err) { assert.ifError(err); groups.isMember(regularUid, 'administrators', function (err, isMember) { assert.ifError(err); @@ -197,7 +197,7 @@ describe('socket.io', function () { var socketAdmin = require('../src/socket.io/admin'); var uid; it('should create a user', function (done) { - socketAdmin.user.createUser({uid: adminUid}, {username: 'foo1'}, function (err, _uid) { + socketAdmin.user.createUser({ uid: adminUid }, { username: 'foo1' }, function (err, _uid) { assert.ifError(err); uid = _uid; groups.isMember(uid, 'registered-users', function (err, isMember) { @@ -209,7 +209,7 @@ describe('socket.io', function () { }); it('should delete users', function (done) { - socketAdmin.user.deleteUsers({uid: adminUid}, [uid], function (err) { + socketAdmin.user.deleteUsers({ uid: adminUid }, [uid], function (err) { assert.ifError(err); groups.isMember(uid, 'registered-users', function (err, isMember) { assert.ifError(err); @@ -220,7 +220,7 @@ describe('socket.io', function () { }); it('should delete users and their content', function (done) { - socketAdmin.user.deleteUsersAndContent({uid: adminUid}, [uid], function (err) { + socketAdmin.user.deleteUsersAndContent({ uid: adminUid }, [uid], function (err) { assert.ifError(err); done(); }); @@ -229,7 +229,7 @@ describe('socket.io', function () { it('should error with invalid data', function (done) { var socketAdmin = require('../src/socket.io/admin'); - socketAdmin.user.createUser({uid: adminUid}, null, function (err) { + socketAdmin.user.createUser({ uid: adminUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); @@ -237,7 +237,7 @@ describe('socket.io', function () { it('should reset lockouts', function (done) { var socketAdmin = require('../src/socket.io/admin'); - socketAdmin.user.resetLockouts({uid: adminUid}, [regularUid], function (err) { + socketAdmin.user.resetLockouts({ uid: adminUid }, [regularUid], function (err) { assert.ifError(err); done(); }); @@ -245,7 +245,7 @@ describe('socket.io', function () { it('should reset flags', function (done) { var socketAdmin = require('../src/socket.io/admin'); - socketAdmin.user.resetFlags({uid: adminUid}, [regularUid], function (err) { + socketAdmin.user.resetFlags({ uid: adminUid }, [regularUid], function (err) { assert.ifError(err); done(); }); @@ -257,7 +257,7 @@ describe('socket.io', function () { var meta = require('../src/meta'); it('should validate emails', function (done) { - socketAdmin.user.validateEmail({uid: adminUid}, [regularUid], function (err) { + socketAdmin.user.validateEmail({ uid: adminUid }, [regularUid], function (err) { assert.ifError(err); user.getUserField(regularUid, 'email:confirmed', function (err, emailConfirmed) { assert.ifError(err); @@ -269,7 +269,7 @@ describe('socket.io', function () { it('should error with invalid uids', function (done) { var socketAdmin = require('../src/socket.io/admin'); - socketAdmin.user.sendValidationEmail({uid: adminUid}, null, function (err) { + socketAdmin.user.sendValidationEmail({ uid: adminUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); @@ -277,7 +277,7 @@ describe('socket.io', function () { it('should error if email validation is not required', function (done) { var socketAdmin = require('../src/socket.io/admin'); - socketAdmin.user.sendValidationEmail({uid: adminUid}, [regularUid], function (err) { + socketAdmin.user.sendValidationEmail({ uid: adminUid }, [regularUid], function (err) { assert.equal(err.message, '[[error:email-confirmations-are-disabled]]'); done(); }); @@ -286,7 +286,7 @@ describe('socket.io', function () { it('should send validation email', function (done) { var socketAdmin = require('../src/socket.io/admin'); meta.config.requireEmailConfirmation = 1; - socketAdmin.user.sendValidationEmail({uid: adminUid}, [regularUid], function (err) { + socketAdmin.user.sendValidationEmail({ uid: adminUid }, [regularUid], function (err) { assert.ifError(err); meta.config.requireEmailConfirmation = 0; done(); @@ -296,7 +296,7 @@ describe('socket.io', function () { it('should search users', function (done) { var socketAdmin = require('../src/socket.io/admin'); - socketAdmin.user.search({uid: adminUid}, {query: 'reg', searchBy: 'username'}, function (err, data) { + socketAdmin.user.search({ uid: adminUid }, { query: 'reg', searchBy: 'username' }, function (err, data) { assert.ifError(err); assert.equal(data.matchCount, 1); assert.equal(data.users[0].username, 'regular'); @@ -306,7 +306,7 @@ describe('socket.io', function () { it('should push unread notifications on reconnect', function (done) { var socketMeta = require('../src/socket.io/meta'); - socketMeta.reconnected({uid: 1}, {}, function (err) { + socketMeta.reconnected({ uid: 1 }, {}, function (err) { assert.ifError(err); done(); }); @@ -322,14 +322,14 @@ describe('socket.io', function () { it('should return if uid is 0', function (done) { var socketMeta = require('../src/socket.io/meta'); - socketMeta.rooms.enter({uid: 0}, null, function (err) { + socketMeta.rooms.enter({ uid: 0 }, null, function (err) { assert.ifError(err); done(); }); }); it('should join a room', function (done) { - io.emit('meta.rooms.enter', {enter: 'recent_topics'}, function (err) { + io.emit('meta.rooms.enter', { enter: 'recent_topics' }, function (err) { assert.ifError(err); done(); }); @@ -344,7 +344,7 @@ describe('socket.io', function () { it('should get server time', function (done) { var socketMeta = require('../src/socket.io/meta'); - socketMeta.getServerTime({uid: 1}, null, function (err, time) { + socketMeta.getServerTime({ uid: 1 }, null, function (err, time) { assert.ifError(err); assert(time); done(); @@ -352,7 +352,7 @@ describe('socket.io', function () { }); it('should get daily analytics', function (done) { - io.emit('admin.analytics.get', {graph: 'traffic', units: 'days'}, function (err, data) { + io.emit('admin.analytics.get', { graph: 'traffic', units: 'days' }, function (err, data) { assert.ifError(err); assert(data); assert(data.monthlyPageViews); @@ -361,7 +361,7 @@ describe('socket.io', function () { }); it('should get hourly analytics', function (done) { - io.emit('admin.analytics.get', {graph: 'traffic', units: 'hours'}, function (err, data) { + io.emit('admin.analytics.get', { graph: 'traffic', units: 'hours' }, function (err, data) { assert.ifError(err); assert(data); assert(data.monthlyPageViews); @@ -371,7 +371,7 @@ describe('socket.io', function () { it('should return error', function (done) { var socketAdmin = require('../src/socket.io/admin'); - socketAdmin.before({uid: 10}, 'someMethod', {}, function (err) { + socketAdmin.before({ uid: 10 }, 'someMethod', {}, function (err) { assert.equal(err.message, '[[error:no-privileges]]'); done(); }); @@ -380,12 +380,12 @@ describe('socket.io', function () { it('should get room stats', function (done) { var socketAdmin = require('../src/socket.io/admin'); - io.emit('meta.rooms.enter', {enter: 'topic_1'}, function (err) { + io.emit('meta.rooms.enter', { enter: 'topic_1' }, function (err) { assert.ifError(err); - socketAdmin.rooms.getAll({uid: 10}, {}, function (err) { + socketAdmin.rooms.getAll({ uid: 10 }, {}, function (err) { assert.ifError(err); setTimeout(function () { - socketAdmin.rooms.getAll({uid: 10}, {}, function (err, data) { + socketAdmin.rooms.getAll({ uid: 10 }, {}, function (err, data) { assert.ifError(err); assert(data.hasOwnProperty('onlineGuestCount')); assert(data.hasOwnProperty('onlineRegisteredCount')); @@ -403,12 +403,12 @@ describe('socket.io', function () { it('should get room stats', function (done) { var socketAdmin = require('../src/socket.io/admin'); - io.emit('meta.rooms.enter', {enter: 'category_1'}, function (err) { + io.emit('meta.rooms.enter', { enter: 'category_1' }, function (err) { assert.ifError(err); - socketAdmin.rooms.getAll({uid: 10}, {}, function (err) { + socketAdmin.rooms.getAll({ uid: 10 }, {}, function (err) { assert.ifError(err); setTimeout(function () { - socketAdmin.rooms.getAll({uid: 10}, {}, function (err, data) { + socketAdmin.rooms.getAll({ uid: 10 }, {}, function (err, data) { assert.ifError(err); assert.equal(data.users.category, 1); done(); @@ -420,7 +420,7 @@ describe('socket.io', function () { it('should get admin search dictionary', function (done) { var socketAdmin = require('../src/socket.io/admin'); - socketAdmin.getSearchDict({uid: adminUid}, {}, function (err, data) { + socketAdmin.getSearchDict({ uid: adminUid }, {}, function (err, data) { assert.ifError(err); assert(Array.isArray(data)); assert(data[0].namespace); diff --git a/test/topics.js b/test/topics.js index e5190f6d00..40a6a8bed4 100644 --- a/test/topics.js +++ b/test/topics.js @@ -19,7 +19,7 @@ describe('Topic\'s', function () { before(function (done) { groups.resetCache(); - User.create({username: 'admin'}, function (err, uid) { + User.create({ username: 'admin' }, function (err, uid) { if (err) { return done(err); } @@ -49,7 +49,7 @@ describe('Topic\'s', function () { describe('.post', function () { it('should create a new topic with proper parameters', function (done) { - topics.post({uid: topic.userId, title: topic.title, content: topic.content, cid: topic.categoryId}, function (err, result) { + topics.post({ uid: topic.userId, title: topic.title, content: topic.content, cid: topic.categoryId }, function (err, result) { assert.equal(err, null, 'was created with error'); assert.ok(result); @@ -58,28 +58,28 @@ describe('Topic\'s', function () { }); it('should fail to create new topic with invalid user id', function (done) { - topics.post({uid: null, title: topic.title, content: topic.content, cid: topic.categoryId}, function (err) { + topics.post({ uid: null, title: topic.title, content: topic.content, cid: topic.categoryId }, function (err) { assert.equal(err.message, '[[error:no-privileges]]'); done(); }); }); it('should fail to create new topic with empty title', function (done) { - topics.post({uid: topic.userId, title: '', content: topic.content, cid: topic.categoryId}, function (err) { + topics.post({ uid: topic.userId, title: '', content: topic.content, cid: topic.categoryId }, function (err) { assert.ok(err); done(); }); }); it('should fail to create new topic with empty content', function (done) { - topics.post({uid: topic.userId, title: topic.title, content: '', cid: topic.categoryId}, function (err) { + topics.post({ uid: topic.userId, title: topic.title, content: '', cid: topic.categoryId }, function (err) { assert.ok(err); done(); }); }); it('should fail to create new topic with non-existant category id', function (done) { - topics.post({uid: topic.userId, title: topic.title, content: topic.content, cid: 99}, function (err) { + topics.post({ uid: topic.userId, title: topic.title, content: topic.content, cid: 99 }, function (err) { assert.equal(err.message, '[[error:no-category]]', 'received no error'); done(); }); @@ -91,7 +91,7 @@ describe('Topic\'s', function () { var newPost; before(function (done) { - topics.post({uid: topic.userId, title: topic.title, content: topic.content, cid: topic.categoryId}, function (err, result) { + topics.post({ uid: topic.userId, title: topic.title, content: topic.content, cid: topic.categoryId }, function (err, result) { if (err) { return done(err); } @@ -103,7 +103,7 @@ describe('Topic\'s', function () { }); it('should create a new reply with proper parameters', function (done) { - topics.reply({uid: topic.userId, content: 'test post', tid: newTopic.tid}, function (err, result) { + topics.reply({ uid: topic.userId, content: 'test post', tid: newTopic.tid }, function (err, result) { assert.equal(err, null, 'was created with error'); assert.ok(result); @@ -112,11 +112,11 @@ describe('Topic\'s', function () { }); it('should handle direct replies', function (done) { - topics.reply({uid: topic.userId, content: 'test reply', tid: newTopic.tid, toPid: newPost.pid}, function (err, result) { + topics.reply({ uid: topic.userId, content: 'test reply', tid: newTopic.tid, toPid: newPost.pid }, function (err, result) { assert.equal(err, null, 'was created with error'); assert.ok(result); - socketPosts.getReplies({uid: 0}, newPost.pid, function (err, postData) { + socketPosts.getReplies({ uid: 0 }, newPost.pid, function (err, postData) { assert.equal(err, null, 'posts.getReplies returned error'); assert.ok(postData); @@ -130,28 +130,28 @@ describe('Topic\'s', function () { }); it('should fail to create new reply with invalid user id', function (done) { - topics.reply({uid: null, content: 'test post', tid: newTopic.tid}, function (err) { + topics.reply({ uid: null, content: 'test post', tid: newTopic.tid }, function (err) { assert.equal(err.message, '[[error:no-privileges]]'); done(); }); }); it('should fail to create new reply with empty content', function (done) { - topics.reply({uid: topic.userId, content: '', tid: newTopic.tid}, function (err) { + topics.reply({ uid: topic.userId, content: '', tid: newTopic.tid }, function (err) { assert.ok(err); done(); }); }); it('should fail to create new reply with invalid topic id', function (done) { - topics.reply({uid: null, content: 'test post', tid: 99}, function (err) { + topics.reply({ uid: null, content: 'test post', tid: 99 }, function (err) { assert.equal(err.message, '[[error:no-topic]]'); done(); }); }); it('should fail to create new reply with invalid toPid', function (done) { - topics.reply({uid: topic.userId, content: 'test post', tid: newTopic.tid, toPid: '"onmouseover=alert(1);//'}, function (err) { + topics.reply({ uid: topic.userId, content: 'test post', tid: newTopic.tid, toPid: '"onmouseover=alert(1);//' }, function (err) { assert.equal(err.message, '[[error:invalid-pid]]'); done(); }); @@ -163,7 +163,7 @@ describe('Topic\'s', function () { var newPost; before(function (done) { - topics.post({uid: topic.userId, title: topic.title, content: topic.content, cid: topic.categoryId}, function (err, result) { + topics.post({ uid: topic.userId, title: topic.title, content: topic.content, cid: topic.categoryId }, function (err, result) { if (err) { return done(err); } @@ -207,7 +207,7 @@ describe('Topic\'s', function () { it('should properly escape topic title', function (done) { var title = '" new topic test'; var titleEscaped = validator.escape(title); - topics.post({uid: topic.userId, title: title, content: topic.content, cid: topic.categoryId}, function (err, result) { + topics.post({ uid: topic.userId, title: title, content: topic.content, cid: topic.categoryId }, function (err, result) { assert.ifError(err); topics.getTopicData(result.topicData.tid, function (err, topicData) { assert.ifError(err); @@ -230,14 +230,14 @@ describe('Topic\'s', function () { groups.join('administrators', adminUid, next); }, function (next) { - topics.post({uid: topic.userId, title: topic.title, content: topic.content, cid: topic.categoryId}, function (err, result) { + topics.post({ uid: topic.userId, title: topic.title, content: topic.content, cid: topic.categoryId }, function (err, result) { assert.ifError(err); newTopic = result.topicData; next(); }); }, function (next) { - User.create({username: 'topicFollower', password: '123456'}, next); + User.create({ username: 'topicFollower', password: '123456' }, next); }, function (_uid, next) { followerUid = _uid; @@ -259,7 +259,7 @@ describe('Topic\'s', function () { }); it('should load topic tools', function (done) { - socketTopics.loadTopicTools({uid: 1}, {tid: newTopic.tid}, function (err, data) { + socketTopics.loadTopicTools({ uid: 1 }, { tid: newTopic.tid }, function (err, data) { assert.ifError(err); assert(data); done(); @@ -267,21 +267,21 @@ describe('Topic\'s', function () { }); it('should delete the topic', function (done) { - socketTopics.delete({uid: 1}, {tids: [newTopic.tid], cid: categoryObj.cid}, function (err) { + socketTopics.delete({ uid: 1 }, { tids: [newTopic.tid], cid: categoryObj.cid }, function (err) { assert.ifError(err); done(); }); }); it('should restore the topic', function (done) { - socketTopics.restore({uid: 1}, {tids: [newTopic.tid], cid: categoryObj.cid}, function (err) { + socketTopics.restore({ uid: 1 }, { tids: [newTopic.tid], cid: categoryObj.cid }, function (err) { assert.ifError(err); done(); }); }); it('should lock topic', function (done) { - socketTopics.lock({uid: 1}, {tids: [newTopic.tid], cid: categoryObj.cid}, function (err) { + socketTopics.lock({ uid: 1 }, { tids: [newTopic.tid], cid: categoryObj.cid }, function (err) { assert.ifError(err); topics.isLocked(newTopic.tid, function (err, isLocked) { assert.ifError(err); @@ -292,7 +292,7 @@ describe('Topic\'s', function () { }); it('should unlock topic', function (done) { - socketTopics.unlock({uid: 1}, {tids: [newTopic.tid], cid: categoryObj.cid}, function (err) { + socketTopics.unlock({ uid: 1 }, { tids: [newTopic.tid], cid: categoryObj.cid }, function (err) { assert.ifError(err); topics.isLocked(newTopic.tid, function (err, isLocked) { assert.ifError(err); @@ -303,7 +303,7 @@ describe('Topic\'s', function () { }); it('should pin topic', function (done) { - socketTopics.pin({uid: 1}, {tids: [newTopic.tid], cid: categoryObj.cid}, function (err) { + socketTopics.pin({ uid: 1 }, { tids: [newTopic.tid], cid: categoryObj.cid }, function (err) { assert.ifError(err); db.getObjectField('topic:' + newTopic.tid, 'pinned', function (err, pinned) { assert.ifError(err); @@ -314,7 +314,7 @@ describe('Topic\'s', function () { }); it('should unpin topic', function (done) { - socketTopics.unpin({uid: 1}, {tids: [newTopic.tid], cid: categoryObj.cid}, function (err) { + socketTopics.unpin({ uid: 1 }, { tids: [newTopic.tid], cid: categoryObj.cid }, function (err) { assert.ifError(err); db.getObjectField('topic:' + newTopic.tid, 'pinned', function (err, pinned) { assert.ifError(err); @@ -325,7 +325,7 @@ describe('Topic\'s', function () { }); it('should move all topics', function (done) { - socketTopics.moveAll({uid: 1}, {cid: moveCid, currentCid: categoryObj.cid}, function (err) { + socketTopics.moveAll({ uid: 1 }, { cid: moveCid, currentCid: categoryObj.cid }, function (err) { assert.ifError(err); topics.getTopicField(newTopic.tid, 'cid', function (err, cid) { assert.ifError(err); @@ -336,7 +336,7 @@ describe('Topic\'s', function () { }); it('should move a topic', function (done) { - socketTopics.move({uid: 1}, {cid: categoryObj.cid, tids: [newTopic.tid]}, function (err) { + socketTopics.move({ uid: 1 }, { cid: categoryObj.cid, tids: [newTopic.tid] }, function (err) { assert.ifError(err); topics.getTopicField(newTopic.tid, 'cid', function (err, cid) { assert.ifError(err); @@ -347,7 +347,7 @@ describe('Topic\'s', function () { }); it('should purge the topic', function (done) { - socketTopics.purge({uid: 1}, {tids: [newTopic.tid], cid: categoryObj.cid}, function (err) { + socketTopics.purge({ uid: 1 }, { tids: [newTopic.tid], cid: categoryObj.cid }, function (err) { assert.ifError(err); db.isSortedSetMember('uid:' + followerUid + ':followed_tids', newTopic.tid, function (err, isMember) { assert.ifError(err); @@ -399,28 +399,28 @@ describe('Topic\'s', function () { var socketTopics = require('../src/socket.io/topics'); it('should error with invalid data', function (done) { - socketTopics.orderPinnedTopics({uid: adminUid}, null, function (err) { + socketTopics.orderPinnedTopics({ uid: adminUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should error with invalid data', function (done) { - socketTopics.orderPinnedTopics({uid: adminUid}, [null, null], function (err) { + socketTopics.orderPinnedTopics({ uid: adminUid }, [null, null], function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should error with unprivileged user', function (done) { - socketTopics.orderPinnedTopics({uid: 0}, [{tid: tid1}, {tid: tid2}], function (err) { + socketTopics.orderPinnedTopics({ uid: 0 }, [{ tid: tid1 }, { tid: tid2 }], function (err) { assert.equal(err.message, '[[error:no-privileges]]'); done(); }); }); it('should not do anything if topics are not pinned', function (done) { - socketTopics.orderPinnedTopics({uid: adminUid}, [{tid: tid3}], function (err) { + socketTopics.orderPinnedTopics({ uid: adminUid }, [{ tid: tid3 }], function (err) { assert.ifError(err); db.isSortedSetMember('cid:' + topic.categoryId + ':tids:pinned', tid3, function (err, isMember) { assert.ifError(err); @@ -435,7 +435,7 @@ describe('Topic\'s', function () { assert.ifError(err); assert.equal(pinnedTids[0], tid2); assert.equal(pinnedTids[1], tid1); - socketTopics.orderPinnedTopics({uid: adminUid}, [{tid: tid1, order: 1}, {tid: tid2, order: 0}], function (err) { + socketTopics.orderPinnedTopics({ uid: adminUid }, [{ tid: tid1, order: 1 }, { tid: tid2, order: 0 }], function (err) { assert.ifError(err); db.getSortedSetRevRange('cid:' + topic.categoryId + ':tids:pinned', 0, -1, function (err, pinnedTids) { assert.ifError(err); @@ -457,7 +457,7 @@ describe('Topic\'s', function () { uid = topic.userId; async.waterfall([ function (done) { - topics.post({uid: topic.userId, title: 'Topic to be ignored', content: 'Just ignore me, please!', cid: topic.categoryId}, function (err, result) { + topics.post({ uid: topic.userId, title: 'Topic to be ignored', content: 'Just ignore me, please!', cid: topic.categoryId }, function (err, result) { if (err) { return done(err); } @@ -561,7 +561,7 @@ describe('Topic\'s', function () { var topicPids; var originalBookmark = 5; function postReply(next) { - topics.reply({uid: topic.userId, content: 'test post ' + replies.length, tid: newTopic.tid}, function (err, result) { + topics.reply({ uid: topic.userId, content: 'test post ' + replies.length, tid: newTopic.tid }, function (err, result) { assert.equal(err, null, 'was created with error'); assert.ok(result); replies.push(result); @@ -576,7 +576,7 @@ describe('Topic\'s', function () { groups.join('administrators', topic.userId, next); }, function (next) { - topics.post({uid: topic.userId, title: topic.title, content: topic.content, cid: topic.categoryId}, function (err, result) { + topics.post({ uid: topic.userId, title: topic.title, content: topic.content, cid: topic.categoryId }, function (err, result) { assert.ifError(err); newTopic = result.topicData; next(); @@ -671,7 +671,7 @@ describe('Topic\'s', function () { var socketTopics = require('../src/socket.io/topics'); var tid; before(function (done) { - topics.post({uid: topic.userId, title: topic.title, content: topic.content, cid: topic.categoryId}, function (err, result) { + topics.post({ uid: topic.userId, title: topic.title, content: topic.content, cid: topic.categoryId }, function (err, result) { assert.ifError(err); tid = result.topicData.tid; done(); @@ -679,14 +679,14 @@ describe('Topic\'s', function () { }); it('should error with invalid data', function (done) { - socketTopics.loadMore({uid: adminUid}, {}, function (err) { + socketTopics.loadMore({ uid: adminUid }, {}, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should infinite load topic posts', function (done) { - socketTopics.loadMore({uid: adminUid}, {tid: tid, after: 0}, function (err, data) { + socketTopics.loadMore({ uid: adminUid }, { tid: tid, after: 0 }, function (err, data) { assert.ifError(err); assert(data.mainPost); assert(data.posts); @@ -696,16 +696,16 @@ describe('Topic\'s', function () { }); it('should error with invalid data', function (done) { - socketTopics.loadMoreUnreadTopics({uid: adminUid}, {after: 'invalid'}, function (err) { + socketTopics.loadMoreUnreadTopics({ uid: adminUid }, { after: 'invalid' }, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should load more unread topics', function (done) { - socketTopics.markUnread({uid: adminUid}, tid, function (err) { + socketTopics.markUnread({ uid: adminUid }, tid, function (err) { assert.ifError(err); - socketTopics.loadMoreUnreadTopics({uid: adminUid}, {cid: topic.categoryId, after: 0}, function (err, data) { + socketTopics.loadMoreUnreadTopics({ uid: adminUid }, { cid: topic.categoryId, after: 0 }, function (err, data) { assert.ifError(err); assert(data); assert(Array.isArray(data.topics)); @@ -715,7 +715,7 @@ describe('Topic\'s', function () { }); it('should error with invalid data', function (done) { - socketTopics.loadMoreRecentTopics({uid: adminUid}, {after: 'invalid'}, function (err) { + socketTopics.loadMoreRecentTopics({ uid: adminUid }, { after: 'invalid' }, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); @@ -723,7 +723,7 @@ describe('Topic\'s', function () { it('should load more recent topics', function (done) { - socketTopics.loadMoreRecentTopics({uid: adminUid}, {cid: topic.categoryId, after: 0}, function (err, data) { + socketTopics.loadMoreRecentTopics({ uid: adminUid }, { cid: topic.categoryId, after: 0 }, function (err, data) { assert.ifError(err); assert(data); assert(Array.isArray(data.topics)); @@ -732,14 +732,14 @@ describe('Topic\'s', function () { }); it('should error with invalid data', function (done) { - socketTopics.loadMoreFromSet({uid: adminUid}, {after: 'invalid'}, function (err) { + socketTopics.loadMoreFromSet({ uid: adminUid }, { after: 'invalid' }, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should load more from custom set', function (done) { - socketTopics.loadMoreFromSet({uid: adminUid}, {set: 'uid:' + adminUid + ':topics', after: 0}, function (err, data) { + socketTopics.loadMoreFromSet({ uid: adminUid }, { set: 'uid:' + adminUid + ':topics', after: 0 }, function (err, data) { assert.ifError(err); assert(data); assert(Array.isArray(data.topics)); @@ -754,10 +754,10 @@ describe('Topic\'s', function () { before(function (done) { async.parallel({ topic1: function (next) { - topics.post({uid: adminUid, tags: ['nodebb'], title: 'topic title 1', content: 'topic 1 content', cid: topic.categoryId}, next); + topics.post({ uid: adminUid, tags: ['nodebb'], title: 'topic title 1', content: 'topic 1 content', cid: topic.categoryId }, next); }, topic2: function (next) { - topics.post({uid: adminUid, tags: ['nodebb'], title: 'topic title 2', content: 'topic 2 content', cid: topic.categoryId}, next); + topics.post({ uid: adminUid, tags: ['nodebb'], title: 'topic title 2', content: 'topic 2 content', cid: topic.categoryId }, next); }, }, function (err, results) { assert.ifError(err); @@ -784,10 +784,10 @@ describe('Topic\'s', function () { before(function (done) { async.parallel({ topic: function (next) { - topics.post({uid: topic.userId, title: 'unread topic', content: 'unread topic content', cid: topic.categoryId}, next); + topics.post({ uid: topic.userId, title: 'unread topic', content: 'unread topic content', cid: topic.categoryId }, next); }, user: function (next) { - User.create({username: 'regularJoe'}, next); + User.create({ username: 'regularJoe' }, next); }, }, function (err, results) { assert.ifError(err); @@ -799,21 +799,21 @@ describe('Topic\'s', function () { }); it('should fail with invalid data', function (done) { - socketTopics.markUnread({uid: adminUid}, null, function (err) { + socketTopics.markUnread({ uid: adminUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should fail if topic does not exist', function (done) { - socketTopics.markUnread({uid: adminUid}, 1231082, function (err) { + socketTopics.markUnread({ uid: adminUid }, 1231082, function (err) { assert.equal(err.message, '[[error:no-topic]]'); done(); }); }); it('should mark topic unread', function (done) { - socketTopics.markUnread({uid: adminUid}, tid, function (err) { + socketTopics.markUnread({ uid: adminUid }, tid, function (err) { assert.ifError(err); topics.hasReadTopic(tid, adminUid, function (err, hasRead) { assert.ifError(err); @@ -825,7 +825,7 @@ describe('Topic\'s', function () { it('should fail with invalid data', function (done) { - socketTopics.markAsRead({uid: 0}, null, function (err) { + socketTopics.markAsRead({ uid: 0 }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); @@ -833,7 +833,7 @@ describe('Topic\'s', function () { it('should mark topic read', function (done) { - socketTopics.markAsRead({uid: adminUid}, [tid], function (err) { + socketTopics.markAsRead({ uid: adminUid }, [tid], function (err) { assert.ifError(err); topics.hasReadTopic(tid, adminUid, function (err, hasRead) { assert.ifError(err); @@ -844,7 +844,7 @@ describe('Topic\'s', function () { }); it('should fail with invalid data', function (done) { - socketTopics.markTopicNotificationsRead({uid: 0}, null, function (err) { + socketTopics.markTopicNotificationsRead({ uid: 0 }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); @@ -855,10 +855,10 @@ describe('Topic\'s', function () { async.waterfall([ function (next) { - socketTopics.follow({uid: adminUid}, tid, next); + socketTopics.follow({ uid: adminUid }, tid, next); }, function (next) { - socketPosts.reply({uid: uid}, {content: 'some content', tid: tid}, next); + socketPosts.reply({ uid: uid }, { content: 'some content', tid: tid }, next); }, function (data, next) { setTimeout(next, 2500); @@ -868,7 +868,7 @@ describe('Topic\'s', function () { }, function (count, next) { assert.equal(count, 1); - socketTopics.markTopicNotificationsRead({uid: adminUid}, [tid], next); + socketTopics.markTopicNotificationsRead({ uid: adminUid }, [tid], next); }, function (next) { User.notifications.getUnreadCount(adminUid, next); @@ -884,16 +884,16 @@ describe('Topic\'s', function () { }); it('should fail with invalid data', function (done) { - socketTopics.markAllRead({uid: 0}, null, function (err) { + socketTopics.markAllRead({ uid: 0 }, null, function (err) { assert.equal(err.message, '[[error:invalid-uid]]'); done(); }); }); it('should mark all read', function (done) { - socketTopics.markUnread({uid: adminUid}, tid, function (err) { + socketTopics.markUnread({ uid: adminUid }, tid, function (err) { assert.ifError(err); - socketTopics.markAllRead({uid: adminUid}, {}, function (err) { + socketTopics.markAllRead({ uid: adminUid }, {}, function (err) { assert.ifError(err); topics.hasReadTopic(tid, adminUid, function (err, hasRead) { assert.ifError(err); @@ -905,9 +905,9 @@ describe('Topic\'s', function () { }); it('should mark all read', function (done) { - socketTopics.markUnread({uid: adminUid}, tid, function (err) { + socketTopics.markUnread({ uid: adminUid }, tid, function (err) { assert.ifError(err); - socketTopics.markCategoryTopicsRead({uid: adminUid}, topic.categoryId, function (err) { + socketTopics.markCategoryTopicsRead({ uid: adminUid }, topic.categoryId, function (err) { assert.ifError(err); topics.hasReadTopic(tid, adminUid, function (err, hasRead) { assert.ifError(err); @@ -920,35 +920,35 @@ describe('Topic\'s', function () { it('should fail with invalid data', function (done) { - socketTopics.markAsUnreadForAll({uid: adminUid}, null, function (err) { + socketTopics.markAsUnreadForAll({ uid: adminUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-tid]]'); done(); }); }); it('should fail with invalid data', function (done) { - socketTopics.markAsUnreadForAll({uid: 0}, [tid], function (err) { + socketTopics.markAsUnreadForAll({ uid: 0 }, [tid], function (err) { assert.equal(err.message, '[[error:no-privileges]]'); done(); }); }); it('should fail if user is not admin', function (done) { - socketTopics.markAsUnreadForAll({uid: uid}, [tid], function (err) { + socketTopics.markAsUnreadForAll({ uid: uid }, [tid], function (err) { assert.equal(err.message, '[[error:no-privileges]]'); done(); }); }); it('should fail if topic does not exist', function (done) { - socketTopics.markAsUnreadForAll({uid: uid}, [12312313], function (err) { + socketTopics.markAsUnreadForAll({ uid: uid }, [12312313], function (err) { assert.equal(err.message, '[[error:no-topic]]'); done(); }); }); it('should mark topic unread for everyone', function (done) { - socketTopics.markAsUnreadForAll({uid: adminUid}, [tid], function (err) { + socketTopics.markAsUnreadForAll({ uid: adminUid }, [tid], function (err) { assert.ifError(err); async.parallel({ adminRead: function (next) { @@ -974,10 +974,10 @@ describe('Topic\'s', function () { before(function (done) { async.parallel({ topic1: function (next) { - topics.post({uid: adminUid, tags: ['php', 'nosql', 'psql', 'nodebb'], title: 'topic title 1', content: 'topic 1 content', cid: topic.categoryId}, next); + topics.post({ uid: adminUid, tags: ['php', 'nosql', 'psql', 'nodebb'], title: 'topic title 1', content: 'topic 1 content', cid: topic.categoryId }, next); }, topic2: function (next) { - topics.post({uid: adminUid, tags: ['javascript', 'mysql', 'python', 'nodejs'], title: 'topic title 2', content: 'topic 2 content', cid: topic.categoryId}, next); + topics.post({ uid: adminUid, tags: ['javascript', 'mysql', 'python', 'nodejs'], title: 'topic title 2', content: 'topic 2 content', cid: topic.categoryId }, next); }, }, function (err) { assert.ifError(err); @@ -986,7 +986,7 @@ describe('Topic\'s', function () { }); it('should return empty array if query is falsy', function (done) { - socketTopics.autocompleteTags({uid: adminUid}, {query: ''}, function (err, data) { + socketTopics.autocompleteTags({ uid: adminUid }, { query: '' }, function (err, data) { assert.ifError(err); assert.deepEqual([], data); done(); @@ -994,7 +994,7 @@ describe('Topic\'s', function () { }); it('should autocomplete tags', function (done) { - socketTopics.autocompleteTags({uid: adminUid}, {query: 'p'}, function (err, data) { + socketTopics.autocompleteTags({ uid: adminUid }, { query: 'p' }, function (err, data) { assert.ifError(err); ['php', 'psql', 'python'].forEach(function (tag) { assert.notEqual(data.indexOf(tag), -1); @@ -1004,7 +1004,7 @@ describe('Topic\'s', function () { }); it('should return empty array if query is falsy', function (done) { - socketTopics.searchTags({uid: adminUid}, {query: ''}, function (err, data) { + socketTopics.searchTags({ uid: adminUid }, { query: '' }, function (err, data) { assert.ifError(err); assert.deepEqual([], data); done(); @@ -1012,7 +1012,7 @@ describe('Topic\'s', function () { }); it('should search tags', function (done) { - socketTopics.searchTags({uid: adminUid}, {query: 'no'}, function (err, data) { + socketTopics.searchTags({ uid: adminUid }, { query: 'no' }, function (err, data) { assert.ifError(err); ['nodebb', 'nodejs', 'nosql'].forEach(function (tag) { assert.notEqual(data.indexOf(tag), -1); @@ -1022,7 +1022,7 @@ describe('Topic\'s', function () { }); it('should return empty array if query is falsy', function (done) { - socketTopics.searchAndLoadTags({uid: adminUid}, {query: ''}, function (err, data) { + socketTopics.searchAndLoadTags({ uid: adminUid }, { query: '' }, function (err, data) { assert.ifError(err); assert.equal(data.matchCount, 0); assert.equal(data.pageCount, 1); @@ -1032,7 +1032,7 @@ describe('Topic\'s', function () { }); it('should search and load tags', function (done) { - socketTopics.searchAndLoadTags({uid: adminUid}, {query: 'no'}, function (err, data) { + socketTopics.searchAndLoadTags({ uid: adminUid }, { query: 'no' }, function (err, data) { assert.ifError(err); assert.equal(data.matchCount, 3); assert.equal(data.pageCount, 1); @@ -1048,14 +1048,14 @@ describe('Topic\'s', function () { }); it('should return error if data is invalid', function (done) { - socketTopics.loadMoreTags({uid: adminUid}, {after: 'asd'}, function (err) { + socketTopics.loadMoreTags({ uid: adminUid }, { after: 'asd' }, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should load more tags', function (done) { - socketTopics.loadMoreTags({uid: adminUid}, {after: 0}, function (err, data) { + socketTopics.loadMoreTags({ uid: adminUid }, { after: 0 }, function (err, data) { assert.ifError(err); assert(Array.isArray(data.tags)); assert.equal(data.nextStart, 100); @@ -1064,28 +1064,28 @@ describe('Topic\'s', function () { }); it('should error if data is invalid', function (done) { - socketAdmin.tags.create({uid: adminUid}, null, function (err) { + socketAdmin.tags.create({ uid: adminUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should error if tag is invalid', function (done) { - socketAdmin.tags.create({uid: adminUid}, {tag: ''}, function (err) { + socketAdmin.tags.create({ uid: adminUid }, { tag: '' }, function (err) { assert.equal(err.message, '[[error:invalid-tag]]'); done(); }); }); it('should error if tag is too short', function (done) { - socketAdmin.tags.create({uid: adminUid}, {tag: 'as'}, function (err) { + socketAdmin.tags.create({ uid: adminUid }, { tag: 'as' }, function (err) { assert.equal(err.message, '[[error:tag-too-short]]'); done(); }); }); it('should create empty tag', function (done) { - socketAdmin.tags.create({uid: adminUid}, {tag: 'emptytag'}, function (err) { + socketAdmin.tags.create({ uid: adminUid }, { tag: 'emptytag' }, function (err) { assert.ifError(err); db.sortedSetScore('tags:topic:count', 'emptytag', function (err, score) { assert.ifError(err); @@ -1096,7 +1096,7 @@ describe('Topic\'s', function () { }); it('should do nothing if tag exists', function (done) { - socketAdmin.tags.create({uid: adminUid}, {tag: 'emptytag'}, function (err) { + socketAdmin.tags.create({ uid: adminUid }, { tag: 'emptytag' }, function (err) { assert.ifError(err); db.sortedSetScore('tags:topic:count', 'emptytag', function (err, score) { assert.ifError(err); @@ -1107,14 +1107,14 @@ describe('Topic\'s', function () { }); it('should error if data is invalid', function (done) { - socketAdmin.tags.update({uid: adminUid}, null, function (err) { + socketAdmin.tags.update({ uid: adminUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should error if data.tag is invalid', function (done) { - socketAdmin.tags.update({uid: adminUid}, { + socketAdmin.tags.update({ uid: adminUid }, { bgColor: '#ff0000', color: '#00ff00', }, function (err) { @@ -1124,7 +1124,7 @@ describe('Topic\'s', function () { }); it('should update tag', function (done) { - socketAdmin.tags.update({uid: adminUid}, { + socketAdmin.tags.update({ uid: adminUid }, { tag: 'emptytag', bgColor: '#ff0000', color: '#00ff00', @@ -1143,7 +1143,7 @@ describe('Topic\'s', function () { var meta = require('../src/meta'); meta.config.maximumRelatedTopics = 2; var topicData = { - tags: [{value: 'javascript'}], + tags: [{ value: 'javascript' }], }; topics.getRelatedTopics(topicData, 0, function (err, data) { assert.ifError(err); @@ -1155,23 +1155,23 @@ describe('Topic\'s', function () { }); it('should return error with invalid data', function (done) { - socketAdmin.tags.deleteTags({uid: adminUid}, null, function (err) { + socketAdmin.tags.deleteTags({ uid: adminUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should do nothing if arrays is empty', function (done) { - socketAdmin.tags.deleteTags({uid: adminUid}, {tags: []}, function (err) { + socketAdmin.tags.deleteTags({ uid: adminUid }, { tags: [] }, function (err) { assert.ifError(err); done(); }); }); it('should delete tags', function (done) { - socketAdmin.tags.create({uid: adminUid}, {tag: 'emptytag2'}, function (err) { + socketAdmin.tags.create({ uid: adminUid }, { tag: 'emptytag2' }, function (err) { assert.ifError(err); - socketAdmin.tags.deleteTags({uid: adminUid}, {tags: ['emptytag', 'emptytag2', 'nodebb', 'nodejs']}, function (err) { + socketAdmin.tags.deleteTags({ uid: adminUid }, { tags: ['emptytag', 'emptytag2', 'nodebb', 'nodejs'] }, function (err) { assert.ifError(err); db.getObjects(['tag:emptytag', 'tag:emptytag2'], function (err, data) { assert.ifError(err); @@ -1200,12 +1200,12 @@ describe('Topic\'s', function () { var tid; var followerUid; before(function (done) { - User.create({username: 'follower'}, function (err, uid) { + User.create({ username: 'follower' }, function (err, uid) { if (err) { return done(err); } followerUid = uid; - topics.post({uid: adminUid, title: 'topic title', content: 'some content', cid: topic.categoryId}, function (err, result) { + topics.post({ uid: adminUid, title: 'topic title', content: 'some content', cid: topic.categoryId }, function (err, result) { if (err) { return done(err); } @@ -1216,7 +1216,7 @@ describe('Topic\'s', function () { }); it('should filter ignoring uids', function (done) { - socketTopics.changeWatching({uid: followerUid}, {tid: tid, type: 'ignore'}, function (err) { + socketTopics.changeWatching({ uid: followerUid }, { tid: tid, type: 'ignore' }, function (err) { assert.ifError(err); topics.filterIgnoringUids(tid, [adminUid, followerUid], function (err, uids) { assert.ifError(err); @@ -1228,14 +1228,14 @@ describe('Topic\'s', function () { }); it('should error with invalid data', function (done) { - socketTopics.changeWatching({uid: followerUid}, {}, function (err) { + socketTopics.changeWatching({ uid: followerUid }, {}, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should error with invalid type', function (done) { - socketTopics.changeWatching({uid: followerUid}, {tid: tid, type: 'derp'}, function (err) { + socketTopics.changeWatching({ uid: followerUid }, { tid: tid, type: 'derp' }, function (err) { assert.equal(err.message, '[[error:invalid-command]]'); done(); }); diff --git a/test/uploads.js b/test/uploads.js index 328e29ae94..17408a4170 100644 --- a/test/uploads.js +++ b/test/uploads.js @@ -31,10 +31,10 @@ describe('Upload Controllers', function () { }, next); }, adminUid: function (next) { - user.create({username: 'admin', password: 'barbar'}, next); + user.create({ username: 'admin', password: 'barbar' }, next); }, regularUid: function (next) { - user.create({username: 'regular', password: 'zugzug'}, next); + user.create({ username: 'regular', password: 'zugzug' }, next); }, }, function (err, results) { if (err) { @@ -44,7 +44,7 @@ describe('Upload Controllers', function () { regularUid = results.regularUid; cid = results.category.cid; - topics.post({uid: adminUid, title: 'test topic title', content: 'test topic content', cid: results.category.cid}, function (err, result) { + topics.post({ uid: adminUid, title: 'test topic title', content: 'test topic content', cid: results.category.cid }, function (err, result) { tid = result.topicData.tid; pid = result.postData.pid; done(err); @@ -77,7 +77,7 @@ describe('Upload Controllers', function () { }); it('should upload an image to a post', function (done) { - helpers.uploadFile(nconf.get('url') + '/api/post/upload', path.join(__dirname, '../public/logo.png'), {cid: cid}, jar, csrf_token, function (err, res, body) { + helpers.uploadFile(nconf.get('url') + '/api/post/upload', path.join(__dirname, '../public/logo.png'), { cid: cid }, jar, csrf_token, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(Array.isArray(body)); @@ -90,7 +90,7 @@ describe('Upload Controllers', function () { it('should upload a file to a post', function (done) { meta.config.allowFileUploads = 1; - helpers.uploadFile(nconf.get('url') + '/api/post/upload', path.join(__dirname, '../public/503.html'), {cid: cid}, jar, csrf_token, function (err, res, body) { + helpers.uploadFile(nconf.get('url') + '/api/post/upload', path.join(__dirname, '../public/503.html'), { cid: cid }, jar, csrf_token, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(Array.isArray(body)); @@ -126,7 +126,7 @@ describe('Upload Controllers', function () { }); it('should upload category image', function (done) { - helpers.uploadFile(nconf.get('url') + '/api/admin/category/uploadpicture', path.join(__dirname, '../public/logo.png'), {params: JSON.stringify({cid: cid})}, jar, csrf_token, function (err, res, body) { + helpers.uploadFile(nconf.get('url') + '/api/admin/category/uploadpicture', path.join(__dirname, '../public/logo.png'), { params: JSON.stringify({ cid: cid }) }, jar, csrf_token, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(Array.isArray(body)); diff --git a/test/user.js b/test/user.js index 672079a322..8eed9d67c7 100644 --- a/test/user.js +++ b/test/user.js @@ -51,7 +51,7 @@ describe('User', function () { describe('.create(), when created', function () { it('should be created properly', function (done) { - User.create({username: userData.username, password: userData.password, email: userData.email}, function (error, userId) { + User.create({ username: userData.username, password: userData.password, email: userData.email }, function (error, userId) { assert.equal(error, null, 'was created with error'); assert.ok(userId); @@ -61,7 +61,7 @@ describe('User', function () { }); it('should have a valid email, if using an email', function (done) { - User.create({username: userData.username, password: userData.password, email: 'fakeMail'}, function (err) { + User.create({ username: userData.username, password: userData.password, email: 'fakeMail' }, function (err) { assert(err); assert.equal(err.message, '[[error:invalid-email]]'); done(); @@ -173,7 +173,7 @@ describe('User', function () { describe('.search()', function () { var socketUser = require('../src/socket.io/user'); it('should return an object containing an array of matching users', function (done) { - User.search({query: 'john'}, function (err, searchData) { + User.search({ query: 'john' }, function (err, searchData) { assert.ifError(err); assert.equal(Array.isArray(searchData.users) && searchData.users.length > 0, true); assert.equal(searchData.users[0].username, 'John Smith'); @@ -182,7 +182,7 @@ describe('User', function () { }); it('should search user', function (done) { - socketUser.search({uid: testUid}, {query: 'john'}, function (err, searchData) { + socketUser.search({ uid: testUid }, { query: 'john' }, function (err, searchData) { assert.ifError(err); assert.equal(searchData.users[0].username, 'John Smith'); done(); @@ -191,7 +191,7 @@ describe('User', function () { it('should error for guest', function (done) { Meta.config.allowGuestUserSearching = 0; - socketUser.search({uid: 0}, {query: 'john'}, function (err) { + socketUser.search({ uid: 0 }, { query: 'john' }, function (err) { assert.equal(err.message, '[[error:not-logged-in]]'); Meta.config.allowGuestUserSearching = 1; done(); @@ -199,7 +199,7 @@ describe('User', function () { }); it('should error with invalid data', function (done) { - socketUser.search({uid: testUid}, null, function (err) { + socketUser.search({ uid: testUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); @@ -209,7 +209,7 @@ describe('User', function () { describe('.delete()', function () { var uid; before(function (done) { - User.create({username: 'usertodelete', password: '123456', email: 'delete@me.com'}, function (err, newUid) { + User.create({ username: 'usertodelete', password: '123456', email: 'delete@me.com' }, function (err, newUid) { assert.ifError(err); uid = newUid; done(); @@ -232,7 +232,7 @@ describe('User', function () { var uid; var code; before(function (done) { - User.create({username: 'resetuser', password: '123456', email: 'reset@me.com'}, function (err, newUid) { + User.create({ username: 'resetuser', password: '123456', email: 'reset@me.com' }, function (err, newUid) { assert.ifError(err); uid = newUid; done(); @@ -342,7 +342,7 @@ describe('User', function () { var io; before(function (done) { - User.create({username: 'updateprofile', email: 'update@me.com', password: '123456'}, function (err, newUid) { + User.create({ username: 'updateprofile', email: 'update@me.com', password: '123456' }, function (err, newUid) { assert.ifError(err); uid = newUid; helpers.loginUser('updateprofile', '123456', function (err, _jar, _io) { @@ -362,7 +362,7 @@ describe('User', function () { }); it('should return error if data is missing uid', function (done) { - io.emit('user.updateProfile', {username: 'bip', email: 'bop'}, function (err) { + io.emit('user.updateProfile', { username: 'bip', email: 'bop' }, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); @@ -399,7 +399,7 @@ describe('User', function () { it('should change a user\'s password', function (done) { this.timeout(20000); - io.emit('user.changePassword', {uid: uid, newPassword: '654321', currentPassword: '123456'}, function (err) { + io.emit('user.changePassword', { uid: uid, newPassword: '654321', currentPassword: '123456' }, function (err) { assert.ifError(err); User.isPasswordCorrect(uid, '654321', function (err, correct) { assert.ifError(err); @@ -410,7 +410,7 @@ describe('User', function () { }); it('should change username', function (done) { - io.emit('user.changeUsernameEmail', {uid: uid, username: 'updatedAgain', password: '654321'}, function (err) { + io.emit('user.changeUsernameEmail', { uid: uid, username: 'updatedAgain', password: '654321' }, function (err) { assert.ifError(err); db.getObjectField('user:' + uid, 'username', function (err, username) { assert.ifError(err); @@ -421,7 +421,7 @@ describe('User', function () { }); it('should change email', function (done) { - io.emit('user.changeUsernameEmail', {uid: uid, email: 'updatedAgain@me.com', password: '654321'}, function (err) { + io.emit('user.changeUsernameEmail', { uid: uid, email: 'updatedAgain@me.com', password: '654321' }, function (err) { assert.ifError(err); db.getObjectField('user:' + uid, 'email', function (err, email) { assert.ifError(err); @@ -434,7 +434,7 @@ describe('User', function () { it('should update cover image', function (done) { var imageData = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAgCAYAAAABtRhCAAAACXBIWXMAAC4jAAAuIwF4pT92AAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAACcJJREFUeNqMl9tvnNV6xn/f+s5z8DCeg88Zj+NYdhJH4KShFoJAIkzVphLVJnsDaiV6gUKaC2qQUFVATbnoValAakuQYKMqBKUUJCgI9XBBSmOROMqGoCStHbA9sWM7nrFn/I3n9B17kcwoabfarj9gvet53+d9nmdJAwMDAAgh8DyPtbU1XNfFMAwkScK2bTzPw/M8dF1/SAhxKAiCxxVF2aeqqqTr+q+Af+7o6Ch0d3f/69TU1KwkSRiGwbFjx3jmmWd47rnn+OGHH1BVFYX/5QRBkPQ87xeSJP22YRi/oapqStM0PM/D931kWSYIgnHf98cXFxepVqtomjZt2/Zf2bb990EQ4Pv+PXfeU1CSpGYhfN9/TgjxQTQaJQgCwuEwQRBQKpUwDAPTNPF9n0ajAYDv+8zPzzM+Pr6/Wq2eqdVqfxOJRA6Zpnn57hrivyEC0IQQZ4Mg+MAwDCKRCJIkUa/XEUIQi8XQNI1QKIQkSQghUBQFIQSmaTI7OwtAuVxOTE9Pfzc9Pf27lUqlBUgulUoUi0VKpRKqqg4EQfAfiqLsDIfDAC0E4XCYaDSKEALXdalUKvfM1/d9hBBYlkUul2N4eJi3335bcl33mW+++aaUz+cvSJKE8uKLL6JpGo7j8Omnn/7d+vp6sr+/HyEEjuMgyzKu6yJJEsViEVVV8TyPjY2NVisV5fZkTNMkkUhw8+ZN6vU6Kysr7Nmzh9OnT7/12GOPDS8sLByT7rQR4A9XV1d/+cILLzA9PU0kEmF4eBhFUTh//jyWZaHrOkII0uk0jUaDWq1GJpOhWCyysrLC1tYWnuehqir79+9H13W6urp48803+f7773n++ef/4G7S/H4ikUCSJNbX11trcuvWLcrlMrIs4zgODzzwABMTE/i+T7lcpq2tjUqlwubmJrZts7y8jBCCkZERGo0G2WyWkydPkkql6Onp+eMmwihwc3JyMvrWW2+RTCYBcF0XWZbRdZ3l5WX27NnD008/TSwWQ1VVyuVy63GhUIhEIkEqlcJxHCzLIhaLMTQ0xJkzZ7Btm3379lmS53kIIczZ2dnFsbGxRK1Wo729HQDP8zAMg5WVFXp7e5mcnKSzs5N8Po/rutTrdVzXbQmHrutEo1FM00RVVXp7e0kkEgRBwMWLF9F1vaxUq1UikUjtlVdeuV6pVBJ9fX3Ytn2bwrLMysoKXV1dTE5OkslksCwLTdMwDANVVdnY2CAIApLJJJFIBMdxiMfj7Nq1C1VViUajLQCvvvrqkhKJRJiZmfmdb7/99jeTySSyLLfWodFoEAqFOH78OLt37yaXy2GaJoqisLy8zNTUFFevXiUIAtrb29m5cyePPPJIa+cymQz1eh2A0dFRCoXCsgIwNTW1J5/P093dTbFYRJZlJEmiWq1y4MABxsbGqNVqhEIh6vU6QRBQLpcxDIPh4WE8z2NxcZFTp05x7tw5Xn755ZY6dXZ2tliZzWa/EwD1ev3RsbExxsfHSafTVCoVGo0Gqqqya9cuIpEIQgh832dtbY3FxUUA+vr62LZtG2NjYxw5coTDhw+ztLTEyZMnuXr1KoVC4R4d3bt375R84sQJEY/H/2Jubq7N9326urqwbZt6vY5pmhw5coS+vr4W9YvFIrdu3WJqagohBFeuXOHcuXOtue7evRtN01rtfO+991haWmJkZGQrkUi8JIC9iqL0BkFAIpFACMETTzxBV1cXiUSC7u5uHMfB8zyCIMA0TeLxONlsFlmW8X2fwcFBHMdhfn6eer1Oe3s7Dz30EBMTE1y6dImjR49y6tSppR07dqwrjuM8+OWXXzI0NMTly5e5du0aQ0NDTExMkMvlCIKAIAhaIh2LxQiHw0QiEfL5POl0mlqtRq1Wo6OjA8uykGWZdDrN0tISvb29vPPOOzz++OPk83lELpf7rXfffRfDMOjo6MBxHEqlEocOHWLHjh00Gg0kSULTNIS4bS6qqhKPxxkaGmJ4eJjR0VH279/PwMAA27dvJ5vN4vs+X331FR9//DGzs7OEQiE++eQTlPb29keuX7/OtWvXOH78ONVqlZs3b9LW1kYmk8F13dZeCiGQJAnXdRFCYBgGsiwjhMC2bQqFAkEQoOs6P/74Iw8++CCDg4Pous6xY8f47LPPkIIguDo2Nrbzxo0bfPjhh9i2zczMTHNvcF2XpsZalkWj0cB1Xe4o1O3YoCisra3x008/EY/H6erqAuDAgQNEIhGCIODQoUP/ubCwMCKAjx599FHW19f56KOP6OjooFgsks/niUajKIqCbds4joMQAiFESxxs226xd2Zmhng8Tl9fH67r0mg0sG2bbDZLpVIhl8vd5gHwtysrKy8Dcdd1mZubo6enh1gsRrVabZlrk6VND/R9n3q9TqVSQdd1QqEQi4uLnD9/nlKpxODgIHv37gXAcRyCICiFQiHEzp07i1988cUfKYpCIpHANE22b9/eUhNFUVotDIKghc7zPCzLolKpsLW1RVtbG0EQ4DgOmqbR09NDM1qUSiWAPwdQ7ujjmf7+/kQymfxrSZJQVZWtra2WG+i63iKH53m4rku1WqVcLmNZFu3t7S2x7+/vJ51O89prr7VYfenSpcPAP1UqFeSHH36YeDxOKpW6eP/9988Bv9d09nw+T7VapVKptJjZnE2tVmNtbY1cLke5XGZra4vNzU16enp49tlnGRgYaD7iTxqNxgexWIzDhw+jNEPQHV87NT8/f+PChQtnR0ZGqFarrUVuOsDds2u2b2FhgVQqRSQSYWFhgStXrtDf308ymcwBf3nw4EEOHjx4O5c2lURVVRzHYXp6+t8uX7785IULFz7LZDLous59991HOBy+h31N9xgdHSWTyVCtVhkaGmLfvn1MT08zPz/PzMzM6c8//9xr+uE9QViWZer1OhsbGxiG8fns7OzPc7ncx729vXR3d1OpVNi2bRuhUAhZljEMA9/3sW0bVVVZWlri4sWLjI+P8/rrr/P111/z5JNPXrIs69cn76ZeGoaBpmm0tbX9Q6FQeHhubu7fC4UCkUiE1dVVstks8Xgc0zSRZZlGo9ESAdM02djYoNFo8MYbb2BZ1mYoFOKuZPjr/xZBEHCHred83x/b3Nz8l/X19aRlWWxsbNDZ2cnw8DDhcBjf96lWq/T09HD06FGeeuopXnrpJc6ePUs6nb4hhPi/C959ZFn+TtO0lG3bJ0ql0p85jsPW1haFQoG2tjYkSWpF/Uwmw9raGu+//z7A977vX2+GrP93wSZiTdNOGIbxy3K5/DPHcfYXCoVe27Yzpmm2m6bppVKp/Orqqnv69OmoZVn/mEwm/9TzvP9x138NAMpJ4VFTBr6SAAAAAElFTkSuQmCC'; var position = '50.0301% 19.2464%'; - io.emit('user.updateCover', {uid: uid, imageData: imageData, position: position}, function (err, result) { + io.emit('user.updateCover', { uid: uid, imageData: imageData, position: position }, function (err, result) { assert.ifError(err); assert(result.url); db.getObjectFields('user:' + uid, ['cover:url', 'cover:position'], function (err, data) { @@ -447,7 +447,7 @@ describe('User', function () { }); it('should remove cover image', function (done) { - io.emit('user.removeCover', {uid: uid}, function (err) { + io.emit('user.removeCover', { uid: uid }, function (err) { assert.ifError(err); db.getObjectField('user:' + uid, 'cover:url', function (err, url) { assert.ifError(err); @@ -482,7 +482,7 @@ describe('User', function () { }); it('should change user picture', function (done) { - io.emit('user.changePicture', {type: 'default', uid: uid}, function (err) { + io.emit('user.changePicture', { type: 'default', uid: uid }, function (err) { assert.ifError(err); User.getUserField(uid, 'picture', function (err, picture) { assert.ifError(err); @@ -564,7 +564,7 @@ describe('User', function () { callback(null, data); } - plugins.registerHook('test-plugin', {hook: 'filter:uploadImage', method: filterMethod}); + plugins.registerHook('test-plugin', { hook: 'filter:uploadImage', method: filterMethod }); User.uploadFromUrl(uid, url, function (err, uploadedPicture) { assert.equal(err.message, '[[error:invalid-image-extension]]'); @@ -581,7 +581,7 @@ describe('User', function () { callback(null, data); } - plugins.registerHook('test-plugin', {hook: 'filter:uploadImage', method: filterMethod}); + plugins.registerHook('test-plugin', { hook: 'filter:uploadImage', method: filterMethod }); User.uploadFromUrl(uid, url, function (err, uploadedPicture) { assert.equal(err.message, '[[error:file-too-big, ' + meta.config.maximumProfileImageSize + ']]'); @@ -595,10 +595,10 @@ describe('User', function () { function filterMethod(data, callback) { data.foo += 5; - callback(null, {url: url}); + callback(null, { url: url }); } - plugins.registerHook('test-plugin', {hook: 'filter:uploadImage', method: filterMethod}); + plugins.registerHook('test-plugin', { hook: 'filter:uploadImage', method: filterMethod }); User.uploadFromUrl(uid, url, function (err, uploadedPicture) { assert.ifError(err); @@ -608,7 +608,7 @@ describe('User', function () { }); it('should get profile pictures', function (done) { - io.emit('user.getProfilePictures', {uid: uid}, function (err, data) { + io.emit('user.getProfilePictures', { uid: uid }, function (err, data) { assert.ifError(err); assert(data); assert(Array.isArray(data)); @@ -619,7 +619,7 @@ describe('User', function () { }); it('should remove uploaded picture', function (done) { - io.emit('user.removeUploadedPicture', {uid: uid}, function (err) { + io.emit('user.removeUploadedPicture', { uid: uid }, function (err) { assert.ifError(err); User.getUserField(uid, 'uploadedpicture', function (err, uploadedpicture) { assert.ifError(err); @@ -630,7 +630,7 @@ describe('User', function () { }); it('should load profile page', function (done) { - request(nconf.get('url') + '/api/user/updatedagain', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/user/updatedagain', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -639,7 +639,7 @@ describe('User', function () { }); it('should load settings page', function (done) { - request(nconf.get('url') + '/api/user/updatedagain/settings', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/user/updatedagain/settings', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body.settings); @@ -650,7 +650,7 @@ describe('User', function () { }); it('should load edit page', function (done) { - request(nconf.get('url') + '/api/user/updatedagain/edit', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/user/updatedagain/edit', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -659,7 +659,7 @@ describe('User', function () { }); it('should load edit/email page', function (done) { - request(nconf.get('url') + '/api/user/updatedagain/edit/email', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/user/updatedagain/edit/email', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(body); @@ -675,7 +675,7 @@ describe('User', function () { assert.ifError(err); groups.join('Test', uid, function (err) { assert.ifError(err); - request(nconf.get('url') + '/api/user/updatedagain/groups', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/user/updatedagain/groups', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 200); assert(Array.isArray(body.groups)); @@ -718,7 +718,7 @@ describe('User', function () { describe('digests', function () { var uid; before(function (done) { - User.create({username: 'digestuser', email: 'test@example.com'}, function (err, _uid) { + User.create({ username: 'digestuser', email: 'test@example.com' }, function (err, _uid) { assert.ifError(err); uid = _uid; done(); @@ -740,14 +740,14 @@ describe('User', function () { var socketUser = require('../src/socket.io/user'); it('should fail with invalid data', function (done) { - socketUser.exists({uid: testUid}, null, function (err) { + socketUser.exists({ uid: testUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should return true if user/group exists', function (done) { - socketUser.exists({uid: testUid}, {username: 'registered-users'}, function (err, exists) { + socketUser.exists({ uid: testUid }, { username: 'registered-users' }, function (err, exists) { assert.ifError(err); assert(exists); done(); @@ -755,7 +755,7 @@ describe('User', function () { }); it('should return true if user/group exists', function (done) { - socketUser.exists({uid: testUid}, {username: 'John Smith'}, function (err, exists) { + socketUser.exists({ uid: testUid }, { username: 'John Smith' }, function (err, exists) { assert.ifError(err); assert(exists); done(); @@ -763,7 +763,7 @@ describe('User', function () { }); it('should return false if user/group does not exists', function (done) { - socketUser.exists({uid: testUid}, {username: 'doesnot exist'}, function (err, exists) { + socketUser.exists({ uid: testUid }, { username: 'doesnot exist' }, function (err, exists) { assert.ifError(err); assert(!exists); done(); @@ -771,11 +771,11 @@ describe('User', function () { }); it('should delete user', function (done) { - User.create({username: 'tobedeleted'}, function (err, _uid) { + User.create({ username: 'tobedeleted' }, function (err, _uid) { assert.ifError(err); - socketUser.deleteAccount({uid: _uid}, {}, function (err) { + socketUser.deleteAccount({ uid: _uid }, {}, function (err) { assert.ifError(err); - socketUser.exists({uid: testUid}, {username: 'doesnot exist'}, function (err, exists) { + socketUser.exists({ uid: testUid }, { username: 'doesnot exist' }, function (err, exists) { assert.ifError(err); assert(!exists); done(); @@ -785,14 +785,14 @@ describe('User', function () { }); it('should fail if data is invalid', function (done) { - socketUser.emailExists({uid: testUid}, null, function (err) { + socketUser.emailExists({ uid: testUid }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should return true if email exists', function (done) { - socketUser.emailExists({uid: testUid}, {email: 'john@example.com'}, function (err, exists) { + socketUser.emailExists({ uid: testUid }, { email: 'john@example.com' }, function (err, exists) { assert.ifError(err); assert(exists); done(); @@ -800,7 +800,7 @@ describe('User', function () { }); it('should return false if email does not exist', function (done) { - socketUser.emailExists({uid: testUid}, {email: 'does@not.exist'}, function (err, exists) { + socketUser.emailExists({ uid: testUid }, { email: 'does@not.exist' }, function (err, exists) { assert.ifError(err); assert(!exists); done(); @@ -808,7 +808,7 @@ describe('User', function () { }); it('should error if requireEmailConfirmation is disabled', function (done) { - socketUser.emailConfirm({uid: testUid}, {}, function (err) { + socketUser.emailConfirm({ uid: testUid }, {}, function (err) { assert.equal(err.message, '[[error:email-confirmations-are-disabled]]'); done(); }); @@ -816,7 +816,7 @@ describe('User', function () { it('should send email confirm', function (done) { Meta.config.requireEmailConfirmation = 1; - socketUser.emailConfirm({uid: testUid}, {}, function (err) { + socketUser.emailConfirm({ uid: testUid }, {}, function (err) { assert.ifError(err); Meta.config.requireEmailConfirmation = 0; done(); @@ -824,21 +824,21 @@ describe('User', function () { }); it('should send reset email', function (done) { - socketUser.reset.send({uid: 0}, 'john@example.com', function (err) { + socketUser.reset.send({ uid: 0 }, 'john@example.com', function (err) { assert.ifError(err); done(); }); }); it('should return invalid-data error', function (done) { - socketUser.reset.send({uid: 0}, null, function (err) { + socketUser.reset.send({ uid: 0 }, null, function (err) { assert.equal(err.message, '[[error:invalid-data]]'); done(); }); }); it('should not error', function (done) { - socketUser.reset.send({uid: 0}, 'doestnot@exist.com', function (err) { + socketUser.reset.send({ uid: 0 }, 'doestnot@exist.com', function (err) { assert.ifError(err); done(); }); @@ -848,7 +848,7 @@ describe('User', function () { db.getObject('reset:uid', function (err, data) { assert.ifError(err); var code = Object.keys(data)[0]; - socketUser.reset.commit({uid: 0}, {code: code, password: 'swordfish'}, function (err) { + socketUser.reset.commit({ uid: 0 }, { code: code, password: 'swordfish' }, function (err) { assert.ifError(err); done(); }); @@ -879,18 +879,18 @@ describe('User', function () { outgoingChatSound: '', }, }; - socketUser.saveSettings({uid: testUid}, data, function (err) { + socketUser.saveSettings({ uid: testUid }, data, function (err) { assert.ifError(err); done(); }); }); it('should set moderation note', function (done) { - User.create({username: 'noteadmin'}, function (err, adminUid) { + User.create({ username: 'noteadmin' }, function (err, adminUid) { assert.ifError(err); groups.join('administrators', adminUid, function (err) { assert.ifError(err); - socketUser.setModerationNote({uid: adminUid}, {uid: testUid, note: 'this is a test user'}, function (err) { + socketUser.setModerationNote({ uid: adminUid }, { uid: testUid, note: 'this is a test user' }, function (err) { assert.ifError(err); User.getUserField(testUid, 'moderationNote', function (err, note) { assert.ifError(err); @@ -911,7 +911,7 @@ describe('User', function () { before(function (done) { oldRegistrationType = Meta.config.registrationType; Meta.config.registrationType = 'admin-approval'; - User.create({username: 'admin', password: '123456'}, function (err, uid) { + User.create({ username: 'admin', password: '123456' }, function (err, uid) { assert.ifError(err); adminUid = uid; groups.join('administrators', uid, done); @@ -932,7 +932,7 @@ describe('User', function () { assert.ifError(err); helpers.loginUser('admin', '123456', function (err, jar) { assert.ifError(err); - request(nconf.get('url') + '/api/admin/manage/registration', {jar: jar, json: true}, function (err, res, body) { + request(nconf.get('url') + '/api/admin/manage/registration', { jar: jar, json: true }, function (err, res, body) { assert.ifError(err); assert.equal(body.users[0].username, 'rejectme'); assert.equal(body.users[0].email, 'reject@me.com'); @@ -943,7 +943,7 @@ describe('User', function () { }); it('should reject user registration', function (done) { - socketAdmin.user.rejectRegistration({uid: adminUid}, {username: 'rejectme'}, function (err) { + socketAdmin.user.rejectRegistration({ uid: adminUid }, { username: 'rejectme' }, function (err) { assert.ifError(err); User.getRegistrationQueue(0, -1, function (err, users) { assert.ifError(err); @@ -960,7 +960,7 @@ describe('User', function () { email: 'accept@me.com', }, function (err) { assert.ifError(err); - socketAdmin.user.acceptRegistration({uid: adminUid}, {username: 'acceptme'}, function (err, uid) { + socketAdmin.user.acceptRegistration({ uid: adminUid }, { username: 'acceptme' }, function (err, uid) { assert.ifError(err); User.exists(uid, function (err, exists) { assert.ifError(err); diff --git a/test/utils.js b/test/utils.js index 547a673aee..e5d0666931 100644 --- a/test/utils.js +++ b/test/utils.js @@ -70,8 +70,8 @@ describe('Utility Methods', function () { }); it('should shallow merge two objects', function (done) { - var a = {foo: 1, cat1: 'ginger'}; - var b = {baz: 2, cat2: 'phoebe'}; + var a = { foo: 1, cat1: 'ginger' }; + var b = { baz: 2, cat2: 'phoebe' }; var obj = utils.merge(a, b); assert.strictEqual(obj.foo, 1); assert.strictEqual(obj.baz, 2); From ac2f69f7afb00ef417087ab116305fa44b6a6d7b Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 12:35:49 -0700 Subject: [PATCH 27/60] ESlint no-return-assign and no-restricted-modules --- .eslintrc | 5 ++--- public/src/modules/settings.js | 3 ++- public/src/modules/settings/key.js | 3 ++- public/src/modules/settings/object.js | 3 ++- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.eslintrc b/.eslintrc index 0b1eb32844..51fd82fb85 100644 --- a/.eslintrc +++ b/.eslintrc @@ -93,9 +93,8 @@ "no-script-url": "off", "no-path-concat": "off", "no-unused-expressions": "off", - "no-restricted-module": "off", - "no-return-assign": "off", - "no-restricted-modules": "off", + // "no-return-assign": "off", + // "no-restricted-modules": "off", // "object-curly-spacing": "off", // "indent": "off", // "padded-blocks": "off", diff --git a/public/src/modules/settings.js b/public/src/modules/settings.js index 11e317e067..c11abb2f7b 100644 --- a/public/src/modules/settings.js +++ b/public/src/modules/settings.js @@ -239,7 +239,8 @@ define('settings', function () { @param amount The amount of jobs to register. */ registerReadyJobs: function (amount) { - return waitingJobs += amount; + waitingJobs += amount; + return waitingJobs; }, /** Decreases the amount of jobs before settings are ready by given amount or 1. diff --git a/public/src/modules/settings/key.js b/public/src/modules/settings/key.js index d6eb183c77..c387b89430 100644 --- a/public/src/modules/settings/key.js +++ b/public/src/modules/settings/key.js @@ -61,7 +61,8 @@ define('settings/key', function () { key.code = event.which; key.char = convertKeyCodeToChar(key.code); } - return oldKey = key; + oldKey = key; + return key; } /** diff --git a/public/src/modules/settings/object.js b/public/src/modules/settings/object.js index d100261691..c1dbce7dc4 100644 --- a/public/src/modules/settings/object.js +++ b/public/src/modules/settings/object.js @@ -104,7 +104,8 @@ define('settings/object', function () { var prop = property.data('prop'); var empty = helper.isTrue(property.data('empty')); if (empty || (val !== void 0 && (val == null || val.length !== 0))) { - return value[prop] = val; + value[prop] = val; + return val; } }); if (empty || Object.keys(value).length) { From daa169c0944df674f7e3d8cf41ca1a389f97618c Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 12:40:57 -0700 Subject: [PATCH 28/60] ESlint no-unused-expressions --- .eslintrc | 2 +- public/src/modules/pictureCropper.js | 6 +++++- public/src/modules/settings/object.js | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.eslintrc b/.eslintrc index 51fd82fb85..5adcaa5543 100644 --- a/.eslintrc +++ b/.eslintrc @@ -92,7 +92,7 @@ "no-extra-boolean-cast": "off", "no-script-url": "off", "no-path-concat": "off", - "no-unused-expressions": "off", + // "no-unused-expressions": "off", // "no-return-assign": "off", // "no-restricted-modules": "off", // "object-curly-spacing": "off", diff --git a/public/src/modules/pictureCropper.js b/public/src/modules/pictureCropper.js index 6f23edbef1..119565cbe7 100644 --- a/public/src/modules/pictureCropper.js +++ b/public/src/modules/pictureCropper.js @@ -50,7 +50,11 @@ define('pictureCropper', ['translator', 'cropper'], function (translator, croppe cropperModal.find('.flip').on('click', function () { var option = this.getAttribute('data-option'); var method = this.getAttribute('data-method'); - method === 'scaleX' ? cropperTool.scaleX(option) : cropperTool.scaleY(option); + if (method === 'scaleX') { + cropperTool.scaleX(option); + } else { + cropperTool.scaleY(option); + } this.setAttribute('data-option', option * -1); }); diff --git a/public/src/modules/settings/object.js b/public/src/modules/settings/object.js index c1dbce7dc4..d7f7bbda23 100644 --- a/public/src/modules/settings/object.js +++ b/public/src/modules/settings/object.js @@ -23,7 +23,7 @@ define('settings/object', function () { delete attributes['data-prepend']; delete attributes['data-append']; attributes = helper.deepClone(attributes); - type = attributes['data-type'] || attributes.type || 'text', + type = attributes['data-type'] || attributes.type || 'text'; element = $(helper.createElementOfType(type, attributes.tagName, attributes)); element.attr('data-parent', '_' + key); element.attr('data-prop', prop); From 239d7f84dda0063a7e69c6a4ae7ef1b43408aa76 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 12:47:58 -0700 Subject: [PATCH 29/60] ESlint no-path-concat --- .eslintrc | 4 ++-- loader.js | 13 +++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.eslintrc b/.eslintrc index 5adcaa5543..4d7e913688 100644 --- a/.eslintrc +++ b/.eslintrc @@ -47,6 +47,7 @@ "vars-on-top": "off", "no-restricted-syntax": "off", "no-shadow": "off", + // "no-script-url": "off", // "linebreak-style": "off", // "one-var": "off", @@ -90,8 +91,7 @@ "no-extend-native": "off", "no-shadow-restricted-names": "off", "no-extra-boolean-cast": "off", - "no-script-url": "off", - "no-path-concat": "off", + // "no-path-concat": "off", // "no-unused-expressions": "off", // "no-return-assign": "off", // "no-restricted-modules": "off", diff --git a/loader.js b/loader.js index 7cfefbf259..66c2de862a 100644 --- a/loader.js +++ b/loader.js @@ -11,11 +11,12 @@ var file = require('./src/file'); var pkg = require('./package.json'); nconf.argv().env().file({ - file: path.join(__dirname, '/config.json'), + file: path.join(__dirname, 'config.json'), }); -var pidFilePath = __dirname + '/pidfile'; -var output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true }); +var pidFilePath = path.join(__dirname, 'pidfile'); +var outputLogFilePath = path.join(__dirname, 'logs/output.log'); +var output = logrotate({ file: outputLogFilePath, size: '1m', keep: 3, compress: true }); var silent = nconf.get('silent') === 'false' ? false : nconf.get('silent') !== false; var numProcs; var workers = []; @@ -126,7 +127,7 @@ function forkWorker(index, isPrimary) { Loader.addWorkerEvents(worker); if (silent) { - var output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true }); + var output = logrotate({ file: outputLogFilePath, size: '1m', keep: 3, compress: true }); worker.stdout.pipe(output); worker.stderr.pipe(output); } @@ -181,7 +182,7 @@ Loader.stop = function () { killWorkers(); // Clean up the pidfile - fs.unlinkSync(__dirname + '/pidfile'); + fs.unlinkSync(pidFilePath); }; function killWorkers() { @@ -222,7 +223,7 @@ fs.open(path.join(__dirname, 'config.json'), 'r', function (err) { stderr: process.stderr, }); - fs.writeFile(__dirname + '/pidfile', process.pid); + fs.writeFile(pidFilePath, process.pid); } async.series([ From 64a632200251e98f0a57a8d6f51dc0544da1b4b7 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 12:51:13 -0700 Subject: [PATCH 30/60] ESlint no-extra-boolean-cast and no-shadow-restricted-names --- .eslintrc | 6 +++--- app.js | 2 +- public/src/app.js | 2 +- public/src/overrides.js | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.eslintrc b/.eslintrc index 4d7e913688..3ba166a274 100644 --- a/.eslintrc +++ b/.eslintrc @@ -47,7 +47,7 @@ "vars-on-top": "off", "no-restricted-syntax": "off", "no-shadow": "off", - // "no-script-url": "off", + "no-script-url": "off", // "linebreak-style": "off", // "one-var": "off", @@ -89,8 +89,8 @@ "no-unneeded-ternary": "off", "no-sequences": "off", "no-extend-native": "off", - "no-shadow-restricted-names": "off", - "no-extra-boolean-cast": "off", + // "no-shadow-restricted-names": "off", + // "no-extra-boolean-cast": "off", // "no-path-concat": "off", // "no-unused-expressions": "off", // "no-return-assign": "off", diff --git a/app.js b/app.js index 31ae60bccf..de9d417045 100644 --- a/app.js +++ b/app.js @@ -36,7 +36,7 @@ winston.add(winston.transports.Console, { colorize: true, timestamp: function () { var date = new Date(); - return (!!nconf.get('json-logging')) ? date.toJSON() : date.getDate() + '/' + (date.getMonth() + 1) + ' ' + date.toTimeString().substr(0, 8) + ' [' + global.process.pid + ']'; + return nconf.get('json-logging') ? date.toJSON() : date.getDate() + '/' + (date.getMonth() + 1) + ' ' + date.toTimeString().substr(0, 8) + ' [' + global.process.pid + ']'; }, level: nconf.get('log-level') || (global.env === 'production' ? 'info' : 'verbose'), json: (!!nconf.get('json-logging')), diff --git a/public/src/app.js b/public/src/app.js index 4da97aee00..e38f49178e 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -425,7 +425,7 @@ app.cacheBuster = null; app.toggleNavbar = function (state) { var navbarEl = $('.navbar'); if (navbarEl) { - navbarEl.toggleClass('hidden', !!!state); + navbarEl.toggleClass('hidden', !state); } }; diff --git a/public/src/overrides.js b/public/src/overrides.js index 262b6bcb02..e1e192274a 100644 --- a/public/src/overrides.js +++ b/public/src/overrides.js @@ -4,7 +4,7 @@ var overrides = overrides || {}; if ('undefined' !== typeof window) { - (function ($, undefined) { + (function ($) { require(['translator'], function (translator) { $.fn.getCursorPosition = function () { var el = $(this).get(0); From c4bdb729413ed210a203fccfd8d140532bda6789 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 12:59:46 -0700 Subject: [PATCH 31/60] ESlint no-unneeded-ternary and no-extend-native, no-sequences --- .eslintrc | 6 +++--- install/web.js | 4 ++-- loader.js | 2 +- public/src/admin/manage/group.js | 2 +- public/src/admin/modules/search.js | 2 +- public/src/app.js | 4 ++-- public/src/client/groups/details.js | 2 +- public/src/client/topic/move.js | 2 +- public/src/client/topic/posts.js | 2 +- public/src/utils.js | 9 +++++---- src/controllers/authentication.js | 2 +- src/database/mongo/sorted.js | 4 ++-- src/groups.js | 2 +- src/middleware/admin.js | 2 +- src/user/settings.js | 2 +- 15 files changed, 24 insertions(+), 23 deletions(-) diff --git a/.eslintrc b/.eslintrc index 3ba166a274..d09a88ac00 100644 --- a/.eslintrc +++ b/.eslintrc @@ -86,9 +86,9 @@ "no-nested-ternary": "off", "operator-linebreak": "off", "guard-for-in": "off", - "no-unneeded-ternary": "off", - "no-sequences": "off", - "no-extend-native": "off", + // "no-unneeded-ternary": "off", + // "no-sequences": "off", + // "no-extend-native": "off", // "no-shadow-restricted-names": "off", // "no-extra-boolean-cast": "off", // "no-path-concat": "off", diff --git a/install/web.js b/install/web.js index dc9af8cce6..88b2495614 100644 --- a/install/web.js +++ b/install/web.js @@ -75,8 +75,8 @@ function welcome(req, res) { res.render('install/index', { databases: databases, skipDatabaseSetup: !!nconf.get('database'), - error: res.locals.error ? true : false, - success: res.locals.success ? true : false, + error: !!res.locals.error, + success: !!res.locals.success, values: req.body, minimumPasswordLength: defaults.minimumPasswordLength, }); diff --git a/loader.js b/loader.js index 66c2de862a..ead0e36125 100644 --- a/loader.js +++ b/loader.js @@ -111,7 +111,7 @@ function forkWorker(index, isPrimary) { } process.env.isPrimary = isPrimary; - process.env.isCluster = ports.length > 1 ? true : false; + process.env.isCluster = ports.length > 1; process.env.port = ports[index]; var worker = fork('app.js', args, { diff --git a/public/src/admin/manage/group.js b/public/src/admin/manage/group.js index f2e5c8c92e..8b77b2bf52 100644 --- a/public/src/admin/manage/group.js +++ b/public/src/admin/manage/group.js @@ -108,7 +108,7 @@ define('admin/manage/group', [ var btnEl = $(this); var userRow = btnEl.parents('[data-uid]'); var ownerFlagEl = userRow.find('.member-name i'); - var isOwner = !ownerFlagEl.hasClass('invisible') ? true : false; + var isOwner = !ownerFlagEl.hasClass('invisible'); var uid = userRow.attr('data-uid'); var action = btnEl.attr('data-action'); diff --git a/public/src/admin/modules/search.js b/public/src/admin/modules/search.js index 26ecd8eee0..e950ea76c5 100644 --- a/public/src/admin/modules/search.js +++ b/public/src/admin/modules/search.js @@ -73,7 +73,7 @@ define('admin/modules/search', ['mousetrap'], function (mousetrap) { if (!selected.length) { selected = menu.find('li.result > a').first().attr('href'); } - var href = selected ? selected : config.relative_path + '/search/' + input.val(); + var href = selected || config.relative_path + '/search/' + input.val(); ajaxify.go(href.replace(/^\//, '')); diff --git a/public/src/app.js b/public/src/app.js index e38f49178e..9983aef36f 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -129,7 +129,7 @@ app.cacheBuster = null; title: '[[global:alert.success]]', message: message, type: 'success', - timeout: timeout ? timeout : 5000, + timeout: timeout || 5000, }); }; @@ -144,7 +144,7 @@ app.cacheBuster = null; title: '[[global:alert.error]]', message: message, type: 'danger', - timeout: timeout ? timeout : 10000, + timeout: timeout || 10000, }); }; diff --git a/public/src/client/groups/details.js b/public/src/client/groups/details.js index e4443ab7ff..e334f70ec5 100644 --- a/public/src/client/groups/details.js +++ b/public/src/client/groups/details.js @@ -54,7 +54,7 @@ define('forum/groups/details', [ var btnEl = $(this); var userRow = btnEl.parents('[data-uid]'); var ownerFlagEl = userRow.find('.member-name > i'); - var isOwner = !ownerFlagEl.hasClass('invisible') ? true : false; + var isOwner = !ownerFlagEl.hasClass('invisible'); var uid = userRow.attr('data-uid'); var action = btnEl.attr('data-action'); diff --git a/public/src/client/topic/move.js b/public/src/client/topic/move.js index 1b5b3b6c8a..5ff9a02c49 100644 --- a/public/src/client/topic/move.js +++ b/public/src/client/topic/move.js @@ -10,7 +10,7 @@ define('forum/topic/move', function () { Move.tids = tids; Move.currentCid = currentCid; Move.onComplete = onComplete; - Move.moveAll = tids ? false : true; + Move.moveAll = !tids; socket.emit('categories.getMoveCategories', onCategoriesLoaded); }; diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js index eaaf4894ce..5023eb54e6 100644 --- a/public/src/client/topic/posts.js +++ b/public/src/client/topic/posts.js @@ -21,7 +21,7 @@ define('forum/topic/posts', [ return; } - data.loggedIn = app.user.uid ? true : false; + data.loggedIn = !!app.user.uid; data.privileges = ajaxify.data.privileges; Posts.modifyPostsByPrivileges(data.posts); diff --git a/public/src/utils.js b/public/src/utils.js index 2c2f4ac4dd..9d4692668d 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -448,6 +448,11 @@ }, }; + if ('undefined' !== typeof window) { + window.utils = module.exports; + } + + /* eslint "no-extend-native": "off" */ if (typeof String.prototype.startsWith !== 'function') { String.prototype.startsWith = function (prefix) { if (this.length < prefix.length) { @@ -474,10 +479,6 @@ return this.replace(/\s+$/g, ''); }; } - - if ('undefined' !== typeof window) { - window.utils = module.exports; - } }('undefined' === typeof module ? { module: { exports: {}, diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index 47a15c1161..3a44f7b134 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -214,7 +214,7 @@ authenticationController.login = function (req, res, next) { if (err) { return next(err); } - req.body.username = username ? username : req.body.username; + req.body.username = username || req.body.username; continueLogin(req, res, next); }); } else if (loginWith.indexOf('username') !== -1 && !validator.isEmail(req.body.username)) { diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index d274146f67..c52d616624 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -138,7 +138,7 @@ module.exports = function (db, module) { } db.collection('objects').count(query, function (err, count) { - callback(err, count ? count : 0); + callback(err, count || 0); }); }; @@ -148,7 +148,7 @@ module.exports = function (db, module) { } db.collection('objects').count({ _key: key }, function (err, count) { count = parseInt(count, 10); - callback(err, count ? count : 0); + callback(err, count || 0); }); }; diff --git a/src/groups.js b/src/groups.js index 775d19b378..5ac3116db7 100644 --- a/src/groups.js +++ b/src/groups.js @@ -285,7 +285,7 @@ var utils = require('../public/src/utils'); return callback(err); } - callback(null, (parseInt(isPrivate, 10) === 0) ? false : true); + callback(null, parseInt(isPrivate, 10) !== 0); }); }; diff --git a/src/middleware/admin.js b/src/middleware/admin.js index fb950b7480..3e36b74db9 100644 --- a/src/middleware/admin.js +++ b/src/middleware/admin.js @@ -102,7 +102,7 @@ module.exports = function (middleware) { authentication: results.custom_header.authentication, scripts: results.scripts, 'cache-buster': meta.config['cache-buster'] || '', - env: process.env.NODE_ENV ? true : false, + env: !!process.env.NODE_ENV, title: (acpPath || 'Dashboard') + ' | NodeBB Admin Control Panel', bodyClass: data.bodyClass, }; diff --git a/src/user/settings.js b/src/user/settings.js index 115d0d92ad..870dd2e59c 100644 --- a/src/user/settings.js +++ b/src/user/settings.js @@ -17,7 +17,7 @@ module.exports = function (User) { return callback(err); } - onSettingsLoaded(uid, settings ? settings : {}, callback); + onSettingsLoaded(uid, settings || {}, callback); }); }; From 32dc7c23ea9f4be53e3185a372b4005d5783738d Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 13:28:03 -0700 Subject: [PATCH 32/60] ESlint guard-for-in, no-nested-ternary and operator-linebreak --- .eslintrc | 6 ++-- public/src/modules/helpers.js | 20 +++++------- public/src/modules/settings.js | 6 +++- public/src/modules/settings/array.js | 16 +++++----- public/src/modules/settings/key.js | 10 +++++- public/src/modules/settings/object.js | 38 ++++++++++++----------- src/controllers/admin/info.js | 8 ++++- src/plugins.js | 2 +- src/posts/flags.js | 44 ++++++++++++++------------- 9 files changed, 86 insertions(+), 64 deletions(-) diff --git a/.eslintrc b/.eslintrc index d09a88ac00..65071de80a 100644 --- a/.eslintrc +++ b/.eslintrc @@ -83,9 +83,9 @@ "no-eq-null": "off", "no-redeclare": "off", "no-unreachable": "off", - "no-nested-ternary": "off", - "operator-linebreak": "off", - "guard-for-in": "off", + // "no-nested-ternary": "off", + // "operator-linebreak": "off", + // "guard-for-in": "off", // "no-unneeded-ternary": "off", // "no-sequences": "off", // "no-extend-native": "off", diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js index 729c6e42d4..40fed9da2b 100644 --- a/public/src/modules/helpers.js +++ b/public/src/modules/helpers.js @@ -1,11 +1,6 @@ 'use strict'; (function (exports) { - // export the class if we are in a Node-like system. - if (typeof module === 'object' && module.exports === exports) { - exports = module.exports/* = SemVer*/; - } - var helpers = {}; helpers.displayMenuItem = function (data, index) { @@ -276,12 +271,13 @@ }); }; - // Use the define() function if we're in AMD land - if (typeof define === 'function' && define.amd) { + // export the class if we are in a Node-like system. + if (typeof module === 'object' && module.exports === exports) { + exports = module.exports/* = SemVer*/; + } else if (typeof define === 'function' && define.amd) { + // Use the define() function if we're in AMD land define('helpers', exports); + } else if (typeof window === 'object') { + window.helpers = exports; } -}( - typeof exports === 'object' ? exports : - typeof define === 'function' && define.amd ? {} : - window.helpers = {} -)); +}(typeof exports === 'object' ? exports : {})); diff --git a/public/src/modules/settings.js b/public/src/modules/settings.js index c11abb2f7b..67dbb8896b 100644 --- a/public/src/modules/settings.js +++ b/public/src/modules/settings.js @@ -131,7 +131,11 @@ define('settings', function () { for (var i = 0; i < array.length; i += 1) { var value = array[i]; if (trim) { - value = value === true ? 1 : value === false ? 0 : typeof value.trim === 'function' ? value.trim() : value; + if (value === !!value) { + value = +value; + } else if (value && typeof value.trim === 'function') { + value = value.trim(); + } } if (empty || (value != null ? value.length : void 0)) { cleaned.push(value); diff --git a/public/src/modules/settings/array.js b/public/src/modules/settings/array.js index 3a0bdea922..2c96d734be 100644 --- a/public/src/modules/settings/array.js +++ b/public/src/modules/settings/array.js @@ -48,13 +48,15 @@ define('settings/array', function () { delete attributes['data-type']; delete attributes.tagName; for (var name in attributes) { - var val = attributes[name]; - if (name.search('data-') === 0) { - element.data(name.substring(5), val); - } else if (name.search('prop-') === 0) { - element.prop(name.substring(5), val); - } else { - element.attr(name, val); + if (attributes.hasOwnProperty(name)) { + var val = attributes[name]; + if (name.search('data-') === 0) { + element.data(name.substring(5), val); + } else if (name.search('prop-') === 0) { + element.prop(name.substring(5), val); + } else { + element.attr(name, val); + } } } helper.fillField(element, value); diff --git a/public/src/modules/settings/key.js b/public/src/modules/settings/key.js index c387b89430..73839a087b 100644 --- a/public/src/modules/settings/key.js +++ b/public/src/modules/settings/key.js @@ -118,7 +118,15 @@ define('settings/key', function () { if (key.m) { str += (short ? 'M' : 'Meta') + separator; } - return str + (human ? key.char : key.code ? '#' + key.code : ''); + + var out; + if (human) { + out = key.char; + } else if (key.code) { + out = '#' + key.code || ''; + } + + return str + out; } /** diff --git a/public/src/modules/settings/object.js b/public/src/modules/settings/object.js index d7f7bbda23..ed94a8401a 100644 --- a/public/src/modules/settings/object.js +++ b/public/src/modules/settings/object.js @@ -30,13 +30,15 @@ define('settings/object', function () { delete attributes['data-type']; delete attributes.tagName; for (var name in attributes) { - var val = attributes[name]; - if (name.search('data-') === 0) { - element.data(name.substring(5), val); - } else if (name.search('prop-') === 0) { - element.prop(name.substring(5), val); - } else { - element.attr(name, val); + if (attributes.hasOwnProperty(name)) { + var val = attributes[name]; + if (name.search('data-') === 0) { + element.data(name.substring(5), val); + } else if (name.search('prop-') === 0) { + element.prop(name.substring(5), val); + } else { + element.attr(name, val); + } } } helper.fillField(element, value); @@ -80,17 +82,19 @@ define('settings/object', function () { } if (Array.isArray(properties)) { for (propertyIndex in properties) { - attributes = properties[propertyIndex]; - if (typeof attributes !== 'object') { - attributes = {}; - } - propertyName = attributes['data-prop'] || attributes['data-property'] || propertyIndex; - if (value[propertyName] === void 0 && attributes['data-new'] !== void 0) { - value[propertyName] = attributes['data-new']; + if (properties.hasOwnProperty(propertyIndex)) { + attributes = properties[propertyIndex]; + if (typeof attributes !== 'object') { + attributes = {}; + } + propertyName = attributes['data-prop'] || attributes['data-property'] || propertyIndex; + if (value[propertyName] === void 0 && attributes['data-new'] !== void 0) { + value[propertyName] = attributes['data-new']; + } + addObjectPropertyElement(element, key, attributes, propertyName, value[propertyName], separator.clone(), function (el) { + element.append(el); + }); } - addObjectPropertyElement(element, key, attributes, propertyName, value[propertyName], separator.clone(), function (el) { - element.append(el); - }); } } }, diff --git a/src/controllers/admin/info.js b/src/controllers/admin/info.js index 96783a9c87..572dcd93c2 100644 --- a/src/controllers/admin/info.js +++ b/src/controllers/admin/info.js @@ -22,7 +22,13 @@ infoController.get = function (req, res, next) { data.push(info[key]); }); data.sort(function (a, b) { - return (a.os.hostname < b.os.hostname) ? -1 : (a.os.hostname > b.os.hostname) ? 1 : 0; + if (a.os.hostname < b.os.hostname) { + return -1; + } + if (a.os.hostname > b.os.hostname) { + return 1; + } + return 0; }); res.render('admin/development/info', { info: data, infoJSON: JSON.stringify(data, null, 4), host: os.hostname(), port: nconf.get('port') }); }, 500); diff --git a/src/plugins.js b/src/plugins.js index dd2423f70f..915f9fdca6 100644 --- a/src/plugins.js +++ b/src/plugins.js @@ -256,7 +256,7 @@ var middleware; apiReturn[i].id = apiReturn[i].name; apiReturn[i].installed = false; apiReturn[i].active = false; - apiReturn[i].url = apiReturn[i].url ? apiReturn[i].url : apiReturn[i].repository ? apiReturn[i].repository.url : ''; + apiReturn[i].url = apiReturn[i].url || (apiReturn[i].repository ? apiReturn[i].repository.url : ''); pluginMap[apiReturn[i].name] = apiReturn[i]; } diff --git a/src/posts/flags.js b/src/posts/flags.js index 4bab4cc771..214a155278 100644 --- a/src/posts/flags.js +++ b/src/posts/flags.js @@ -240,29 +240,31 @@ module.exports = function (Posts) { // Parse out flag data into its own object inside each post hash async.map(posts, function (postObj, next) { for (var prop in postObj) { - postObj.flagData = postObj.flagData || {}; - - if (postObj.hasOwnProperty(prop) && prop.startsWith('flag:')) { - postObj.flagData[prop.slice(5)] = postObj[prop]; - - if (prop === 'flag:state') { - switch (postObj[prop]) { - case 'open': - postObj.flagData.labelClass = 'info'; - break; - case 'wip': - postObj.flagData.labelClass = 'warning'; - break; - case 'resolved': - postObj.flagData.labelClass = 'success'; - break; - case 'rejected': - postObj.flagData.labelClass = 'danger'; - break; + if (postObj.hasOwnProperty(prop)) { + postObj.flagData = postObj.flagData || {}; + + if (prop.startsWith('flag:')) { + postObj.flagData[prop.slice(5)] = postObj[prop]; + + if (prop === 'flag:state') { + switch (postObj[prop]) { + case 'open': + postObj.flagData.labelClass = 'info'; + break; + case 'wip': + postObj.flagData.labelClass = 'warning'; + break; + case 'resolved': + postObj.flagData.labelClass = 'success'; + break; + case 'rejected': + postObj.flagData.labelClass = 'danger'; + break; + } } - } - delete postObj[prop]; + delete postObj[prop]; + } } } From 5a45087fc8a9d501d20de9fab4adc293e48f9967 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 13:31:19 -0700 Subject: [PATCH 33/60] ESlint no-unreachable, no-redeclare --- .eslintrc | 4 ++-- src/meta/blacklist.js | 12 ++++++------ src/routes/index.js | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.eslintrc b/.eslintrc index 65071de80a..9f457493c4 100644 --- a/.eslintrc +++ b/.eslintrc @@ -81,8 +81,8 @@ "o-eq-null": "off", "no-cond-assign": "off", "no-eq-null": "off", - "no-redeclare": "off", - "no-unreachable": "off", + // "no-redeclare": "off", + // "no-unreachable": "off", // "no-nested-ternary": "off", // "operator-linebreak": "off", // "guard-for-in": "off", diff --git a/src/meta/blacklist.js b/src/meta/blacklist.js index 49213ac92c..2c17c488b1 100644 --- a/src/meta/blacklist.js +++ b/src/meta/blacklist.js @@ -99,18 +99,18 @@ Blacklist.validate = function (rules, callback) { if (ip.isV4Format(rule)) { ipv4.push(rule); return true; - } else if (ip.isV6Format(rule)) { + } + if (ip.isV6Format(rule)) { ipv6.push(rule); return true; - } else if (isCidrSubnet.test(rule)) { + } + if (isCidrSubnet.test(rule)) { cidr.push(rule); return true; - } else { - invalid.push(rule); - return false; } - return true; + invalid.push(rule); + return false; }); callback(null, { diff --git a/src/routes/index.js b/src/routes/index.js index 40688539a4..1091a50fe9 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -132,7 +132,7 @@ module.exports = function (app, middleware, hotswapIds) { userRoutes(router, middleware, controllers); groupRoutes(router, middleware, controllers); - for (var x = 0; x < routers.length; x += 1) { + for (x = 0; x < routers.length; x += 1) { app.use(relativePath, routers[x]); } From 04bb6513b0690449c2f4abc53bf2dad368193770 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 13:51:26 -0700 Subject: [PATCH 34/60] ESlint no-cond-assign, no-void, valid-jsdoc --- .eslintrc | 9 ++++----- public/src/modules/settings.js | 14 ++++++-------- public/src/modules/settings/array.js | 4 +--- public/src/modules/settings/checkbox.js | 7 +++++-- public/src/modules/settings/key.js | 4 ---- public/src/modules/settings/number.js | 5 ++++- public/src/modules/settings/object.js | 6 ++---- public/src/modules/settings/select.js | 2 -- public/src/modules/settings/textarea.js | 8 +++++--- public/src/modules/translator.js | 2 +- src/meta/templates.js | 5 +++-- src/posts/parse.js | 5 +++-- src/settings.js | 7 ++++--- 13 files changed, 38 insertions(+), 40 deletions(-) diff --git a/.eslintrc b/.eslintrc index 9f457493c4..1def8e8e04 100644 --- a/.eslintrc +++ b/.eslintrc @@ -24,6 +24,7 @@ "func-names": "off", "no-tabs": "off", "indent": ["error", "tab"], + "no-eq-null": "off", // ES6 "prefer-rest-params": "off", @@ -76,11 +77,9 @@ "yoda": "off", "no-use-before-define": "off", "no-loop-func": "off", - "no-void": "off", - "valid-jsdoc": "off", - "o-eq-null": "off", - "no-cond-assign": "off", - "no-eq-null": "off", + // "no-void": "off", + // "valid-jsdoc": "off", + // "no-cond-assign": "off", // "no-redeclare": "off", // "no-unreachable": "off", // "no-nested-ternary": "off", diff --git a/public/src/modules/settings.js b/public/src/modules/settings.js index 67dbb8896b..b8883f2958 100644 --- a/public/src/modules/settings.js +++ b/public/src/modules/settings.js @@ -31,7 +31,7 @@ define('settings', function () { } plugin = Settings.plugins[type.toLowerCase()]; if (plugin == null) { - return void 0; + return; } hook = plugin[name]; if (typeof hook === 'function') { @@ -137,7 +137,7 @@ define('settings', function () { value = value.trim(); } } - if (empty || (value != null ? value.length : void 0)) { + if (empty || (value != null && value.length)) { cleaned.push(value); } } @@ -167,17 +167,15 @@ define('settings', function () { if (split != null) { empty = helper.isTrue(element.data('empty')); // default empty-value is false for arrays value = element.val(); - var array = (value != null ? value.split(split || ',') : void 0) || []; + var array = (value != null && value.split(split || ',')) || []; return helper.cleanArray(array, trim, empty); } else { value = element.val(); if (trim && value != null && typeof value.trim === 'function') { value = value.trim(); } - if (empty || (value !== void 0 && (value == null || value.length !== 0))) { + if (empty || (value !== undefined && (value == null || value.length !== 0))) { return value; - } else { - return void 0; } } }, @@ -212,7 +210,7 @@ define('settings', function () { } else { value = ''; } - if (value !== void 0) { + if (value !== undefined) { element.val(value); } }, @@ -337,7 +335,7 @@ define('settings', function () { @returns Object The settings. */ get: function () { - if (Settings.cfg != null && Settings.cfg._ !== void 0) { + if (Settings.cfg != null && Settings.cfg._ !== undefined) { return Settings.cfg._; } return Settings.cfg; diff --git a/public/src/modules/settings/array.js b/public/src/modules/settings/array.js index 2c96d734be..6268c8d6c9 100644 --- a/public/src/modules/settings/array.js +++ b/public/src/modules/settings/array.js @@ -133,14 +133,12 @@ define('settings/array', function () { child = $(child); var val = helper.readValue(child); var empty = helper.isTrue(child.data('empty')); - if (empty || (val !== void 0 && (val == null || val.length !== 0))) { + if (empty || (val !== undefined && (val == null || val.length !== 0))) { return values.push(val); } }); if (empty || values.length) { return values; - } else { - return void 0; } }, }; diff --git a/public/src/modules/settings/checkbox.js b/public/src/modules/settings/checkbox.js index 6d36849b6a..d64212d4e0 100644 --- a/public/src/modules/settings/checkbox.js +++ b/public/src/modules/settings/checkbox.js @@ -21,10 +21,13 @@ define('settings/checkbox', function () { get: function (element, trim, empty) { var value = element.prop('checked'); if (value == null) { - return void 0; + return; } if (!empty) { - return value || void 0; + if (value) { + return value; + } + return; } if (trim) { return value ? 1 : 0; diff --git a/public/src/modules/settings/key.js b/public/src/modules/settings/key.js index 73839a087b..52b116b2e3 100644 --- a/public/src/modules/settings/key.js +++ b/public/src/modules/settings/key.js @@ -215,13 +215,9 @@ define('settings/key', function () { if (trim) { if (empty || (key != null && key.char)) { return getKeyString(key, false, short, separator); - } else { - return void 0; } } else if (empty || (key != null && key.code)) { return key; - } else { - return void 0; } }, }; diff --git a/public/src/modules/settings/number.js b/public/src/modules/settings/number.js index 52dd38fe44..12ff231076 100644 --- a/public/src/modules/settings/number.js +++ b/public/src/modules/settings/number.js @@ -6,7 +6,10 @@ define('settings/number', function () { get: function (element, trim, empty) { var value = element.val(); if (!empty) { - return value ? +value : void 0; + if (value) { + return +value; + } + return; } return value ? +value : 0; }, diff --git a/public/src/modules/settings/object.js b/public/src/modules/settings/object.js index ed94a8401a..e7c88ec585 100644 --- a/public/src/modules/settings/object.js +++ b/public/src/modules/settings/object.js @@ -88,7 +88,7 @@ define('settings/object', function () { attributes = {}; } propertyName = attributes['data-prop'] || attributes['data-property'] || propertyIndex; - if (value[propertyName] === void 0 && attributes['data-new'] !== void 0) { + if (value[propertyName] === undefined && attributes['data-new'] !== undefined) { value[propertyName] = attributes['data-new']; } addObjectPropertyElement(element, key, attributes, propertyName, value[propertyName], separator.clone(), function (el) { @@ -107,15 +107,13 @@ define('settings/object', function () { var val = helper.readValue(property); var prop = property.data('prop'); var empty = helper.isTrue(property.data('empty')); - if (empty || (val !== void 0 && (val == null || val.length !== 0))) { + if (empty || (val !== undefined && (val == null || val.length !== 0))) { value[prop] = val; return val; } }); if (empty || Object.keys(value).length) { return value; - } else { - return void 0; } }, }; diff --git a/public/src/modules/settings/select.js b/public/src/modules/settings/select.js index d90c03c4fd..1b28774871 100644 --- a/public/src/modules/settings/select.js +++ b/public/src/modules/settings/select.js @@ -39,8 +39,6 @@ define('settings/select', function () { var value = element.val(); if (empty || value) { return value; - } else { - return void 0; } }, }; diff --git a/public/src/modules/settings/textarea.js b/public/src/modules/settings/textarea.js index 0397e5bea5..cc36e90762 100644 --- a/public/src/modules/settings/textarea.js +++ b/public/src/modules/settings/textarea.js @@ -21,12 +21,14 @@ define('settings/textarea', function () { get: function (element, trim, empty) { var value = element.val(); if (trim) { - value = value == null ? void 0 : value.trim(); + if (value == null) { + value = undefined; + } else { + value = value.trim(); + } } if (empty || value) { return value; - } else { - return void 0; } }, }; diff --git a/public/src/modules/translator.js b/public/src/modules/translator.js index 023225c978..4291c82957 100644 --- a/public/src/modules/translator.js +++ b/public/src/modules/translator.js @@ -489,7 +489,7 @@ prepareDOM: function prepareDOM() { // Load the appropriate timeago locale file, // and correct NodeBB language codes to timeago codes, if necessary - var languageCode = void 0; + var languageCode; switch (config.userLang) { case 'en-GB': case 'en-US': diff --git a/src/meta/templates.js b/src/meta/templates.js index 4fc3205f63..4c2a8b1fb9 100644 --- a/src/meta/templates.js +++ b/src/meta/templates.js @@ -117,10 +117,10 @@ function compile(callback) { async.each(Object.keys(paths), function (relativePath, next) { var file = fs.readFileSync(paths[relativePath]).toString(); - var matches = null; var regex = /[ \t]*[ \t]*/; + var matches = file.match(regex); - while ((matches = file.match(regex)) !== null) { + while (matches !== null) { var partial = '/' + matches[1]; if (paths[partial] && relativePath !== partial) { @@ -129,6 +129,7 @@ function compile(callback) { winston.warn('[meta/templates] Partial not loaded: ' + matches[1]); file = file.replace(regex, ''); } + matches = file.match(regex); } mkdirp.sync(path.join(viewsPath, relativePath.split('/').slice(0, -1).join('/'))); diff --git a/src/posts/parse.js b/src/posts/parse.js index ff8eb29ce7..946c589056 100644 --- a/src/posts/parse.js +++ b/src/posts/parse.js @@ -49,10 +49,10 @@ module.exports = function (Posts) { Posts.relativeToAbsolute = function (content) { // Turns relative links in post body to absolute urls var parsed; - var current; + var current = urlRegex.exec(content); var absolute; - while ((current = urlRegex.exec(content)) !== null) { + while (current !== null) { if (current[1]) { try { parsed = url.parse(current[1]); @@ -71,6 +71,7 @@ module.exports = function (Posts) { winston.verbose(err.messsage); } } + current = urlRegex.exec(content); } return content; diff --git a/src/settings.js b/src/settings.js index b663721991..b9642c0dce 100644 --- a/src/settings.js +++ b/src/settings.js @@ -140,8 +140,8 @@ Settings.prototype.get = function (key, def) { obj = obj[part]; } } - if (obj === void 0) { - if (def === void 0) { + if (obj === undefined) { + if (def === undefined) { def = this.defCfg; for (var j = 0; j < parts.length; j += 1) { part = parts[j]; @@ -198,7 +198,8 @@ Settings.prototype.set = function (key, val) { obj = this.cfg._; parts = key.split('.'); for (var i = 0, _len = parts.length - 1; i < _len; i += 1) { - if (part = parts[i]) { + part = parts[i]; + if (part) { if (!obj.hasOwnProperty(part)) { obj[part] = {}; } From a0a50677da13e303d800c75fb20ccd5c9f7e7b62 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 14:00:29 -0700 Subject: [PATCH 35/60] ESlint n-loop-func, yoda --- .eslintrc | 6 +++--- public/src/overrides.js | 2 +- public/src/utils.js | 6 +++--- src/controllers/accounts/settings.js | 8 ++++---- src/middleware/render.js | 4 ++-- src/socket.io/categories.js | 17 ++++++++--------- 6 files changed, 21 insertions(+), 22 deletions(-) diff --git a/.eslintrc b/.eslintrc index 1def8e8e04..1bd5d05c88 100644 --- a/.eslintrc +++ b/.eslintrc @@ -49,6 +49,7 @@ "no-restricted-syntax": "off", "no-shadow": "off", "no-script-url": "off", + "no-use-before-define": "off", // "linebreak-style": "off", // "one-var": "off", @@ -74,9 +75,8 @@ "block-scoped-var": "off", "operator-assignment": "off", "default-case": "off", - "yoda": "off", - "no-use-before-define": "off", - "no-loop-func": "off", + // "yoda": "off", + // "no-loop-func": "off", // "no-void": "off", // "valid-jsdoc": "off", // "no-cond-assign": "off", diff --git a/public/src/overrides.js b/public/src/overrides.js index e1e192274a..144fb63ef3 100644 --- a/public/src/overrides.js +++ b/public/src/overrides.js @@ -3,7 +3,7 @@ var overrides = overrides || {}; -if ('undefined' !== typeof window) { +if (typeof window !== 'undefined') { (function ($) { require(['translator'], function (translator) { $.fn.getCursorPosition = function () { diff --git a/public/src/utils.js b/public/src/utils.js index 9d4692668d..292ba3694a 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -5,7 +5,7 @@ var fs; var XRegExp; - if ('undefined' === typeof window) { + if (typeof window === 'undefined') { fs = require('fs'); XRegExp = require('xregexp'); @@ -448,7 +448,7 @@ }, }; - if ('undefined' !== typeof window) { + if (typeof window !== 'undefined') { window.utils = module.exports; } @@ -479,7 +479,7 @@ return this.replace(/\s+$/g, ''); }; } -}('undefined' === typeof module ? { +}(typeof module === 'undefined' ? { module: { exports: {}, }, diff --git a/src/controllers/accounts/settings.js b/src/controllers/accounts/settings.js index c35658b08f..974e20c0dc 100644 --- a/src/controllers/accounts/settings.js +++ b/src/controllers/accounts/settings.js @@ -75,10 +75,10 @@ settingsController.get = function (req, res, callback) { } userData.dailyDigestFreqOptions = [ - { value: 'off', name: '[[user:digest_off]]', selected: 'off' === userData.settings.dailyDigestFreq }, - { value: 'day', name: '[[user:digest_daily]]', selected: 'day' === userData.settings.dailyDigestFreq }, - { value: 'week', name: '[[user:digest_weekly]]', selected: 'week' === userData.settings.dailyDigestFreq }, - { value: 'month', name: '[[user:digest_monthly]]', selected: 'month' === userData.settings.dailyDigestFreq }, + { value: 'off', name: '[[user:digest_off]]', selected: userData.settings.dailyDigestFreq === 'off' }, + { value: 'day', name: '[[user:digest_daily]]', selected: userData.settings.dailyDigestFreq === 'day' }, + { value: 'week', name: '[[user:digest_weekly]]', selected: userData.settings.dailyDigestFreq === 'week' }, + { value: 'month', name: '[[user:digest_monthly]]', selected: userData.settings.dailyDigestFreq === 'month' }, ]; diff --git a/src/middleware/render.js b/src/middleware/render.js index 9109e8daaf..48d4a0b526 100644 --- a/src/middleware/render.js +++ b/src/middleware/render.js @@ -23,11 +23,11 @@ module.exports = function (middleware) { }; options = options || {}; - if ('function' === typeof options) { + if (typeof options === 'function') { fn = options; options = {}; } - if ('function' !== typeof fn) { + if (typeof fn !== 'function') { fn = defaultFn; } diff --git a/src/socket.io/categories.js b/src/socket.io/categories.js index 2c0ef102b4..b1c95af7e9 100644 --- a/src/socket.io/categories.js +++ b/src/socket.io/categories.js @@ -204,16 +204,15 @@ function ignoreOrWatch(fn, socket, cid, callback) { // filter to subcategories of cid - var any = true; - while (any) { - any = false; - categoryData.forEach(function (c) { - if (cids.indexOf(c.cid) === -1 && cids.indexOf(c.parentCid) !== -1) { - cids.push(c.cid); - any = true; - } + var cat; + do { + cat = categoryData.find(function (c) { + return cids.indexOf(c.cid) === -1 && cids.indexOf(c.parentCid) !== -1; }); - } + if (cat) { + cids.push(cat.cid); + } + } while (cat); async.each(cids, function (cid, next) { fn(socket.uid, cid, next); From 11cb3a955481b3e5f18d974d310f4985ecb60515 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 14:20:58 -0700 Subject: [PATCH 36/60] ESlint operator-assignment, block-scoped-var --- .eslintrc | 6 +++--- public/src/client/topic/posts.js | 2 +- public/src/modules/helpers.js | 4 ++-- src/batch.js | 2 +- src/coverPhoto.js | 2 +- src/database/mongo/hash.js | 3 ++- src/pagination.js | 3 ++- src/routes/index.js | 5 ++++- src/socket.io/categories.js | 2 +- 9 files changed, 17 insertions(+), 12 deletions(-) diff --git a/.eslintrc b/.eslintrc index 1bd5d05c88..95b90ba253 100644 --- a/.eslintrc +++ b/.eslintrc @@ -50,6 +50,7 @@ "no-shadow": "off", "no-script-url": "off", "no-use-before-define": "off", + "default-case": "off", // "linebreak-style": "off", // "one-var": "off", @@ -72,9 +73,8 @@ "radix": "off", "no-else-return": "off", "no-useless-escape": "off", - "block-scoped-var": "off", - "operator-assignment": "off", - "default-case": "off", + // "block-scoped-var": "off", + // "operator-assignment": "off", // "yoda": "off", // "no-loop-func": "off", // "no-void": "off", diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js index 5023eb54e6..689d443ad3 100644 --- a/public/src/client/topic/posts.js +++ b/public/src/client/topic/posts.js @@ -311,7 +311,7 @@ define('forum/topic/posts', [ var imageRect = this.getBoundingClientRect(); if (imageRect.top < threshold) { - scrollTop = scrollTop + (newHeight - oldHeight); + scrollTop += newHeight - oldHeight; $(window).scrollTop(scrollTop); } diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js index 40fed9da2b..2796b8d94e 100644 --- a/public/src/modules/helpers.js +++ b/public/src/modules/helpers.js @@ -62,8 +62,8 @@ }; helpers.stripTags = function (str) { - if (typeof S !== 'undefined') { - return S(String(str)).stripTags().s; + if (typeof window !== 'undefined' && window.S) { + return window.S(String(str)).stripTags().s; } else { var S = require('string'); return S(String(str)).stripTags().s; diff --git a/src/batch.js b/src/batch.js index 19595df07e..cb3fd298a1 100644 --- a/src/batch.js +++ b/src/batch.js @@ -95,7 +95,7 @@ exports.processArray = function (array, process, options, callback) { if (err) { return next(err); } - start = start + batch; + start += batch; if (options.interval) { setTimeout(next, options.interval); } else { diff --git a/src/coverPhoto.js b/src/coverPhoto.js index b86d032a24..024ae48f20 100644 --- a/src/coverPhoto.js +++ b/src/coverPhoto.js @@ -20,7 +20,7 @@ function getCover(type, id) { if (typeof id === 'string') { id = (id.charCodeAt(0) + id.charCodeAt(1)) % covers.length; } else { - id = id % covers.length; + id %= covers.length; } return covers[id]; diff --git a/src/database/mongo/hash.js b/src/database/mongo/hash.js index e253135c47..57c72cdc91 100644 --- a/src/database/mongo/hash.js +++ b/src/database/mongo/hash.js @@ -77,8 +77,9 @@ module.exports = function (db, module) { var _fields = { _id: 0, }; + var i; - for (var i = 0; i < fields.length; i += 1) { + for (i = 0; i < fields.length; i += 1) { fields[i] = helpers.fieldToString(fields[i]); _fields[fields[i]] = 1; } diff --git a/src/pagination.js b/src/pagination.js index c0332ebd14..3e57c5b201 100644 --- a/src/pagination.js +++ b/src/pagination.js @@ -26,7 +26,8 @@ pagination.create = function (currentPage, pageCount, queryObj) { if (startPage > pageCount - 5) { startPage -= 2 - (pageCount - currentPage); } - for (var i = 0; i < 5; i += 1) { + var i; + for (i = 0; i < 5; i += 1) { pagesToShow.push(startPage + i); } diff --git a/src/routes/index.js b/src/routes/index.js index 1091a50fe9..86c7960f6a 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -97,8 +97,11 @@ module.exports = function (app, middleware, hotswapIds) { var relativePath = nconf.get('relative_path'); var ensureLoggedIn = require('connect-ensure-login'); + var idx; + var x; + if (Array.isArray(hotswapIds) && hotswapIds.length) { - for (var idx, x = 0; x < hotswapIds.length; x += 1) { + for (x = 0; x < hotswapIds.length; x += 1) { idx = routers.push(express.Router()) - 1; routers[idx].hotswapId = hotswapIds[x]; } diff --git a/src/socket.io/categories.js b/src/socket.io/categories.js index b1c95af7e9..1678b553bf 100644 --- a/src/socket.io/categories.js +++ b/src/socket.io/categories.js @@ -94,7 +94,7 @@ SocketCategories.loadMore = function (socket, data, callback) { var start = Math.max(0, parseInt(data.after, 10)); if (data.direction === -1) { - start = start - (reverse ? infScrollTopicsPerPage : -infScrollTopicsPerPage); + start -= reverse ? infScrollTopicsPerPage : -infScrollTopicsPerPage; } var stop = start + infScrollTopicsPerPage - 1; From 09e868ce5fe27bdb02802711677de9b4a38b6e60 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 14:27:26 -0700 Subject: [PATCH 37/60] ESlint no-useless-escape, no-else-return --- .eslintrc | 4 ++-- public/src/admin/manage/flags.js | 3 +-- public/src/ajaxify.js | 3 +-- public/src/client/account/edit.js | 15 ++++++------ public/src/installer/install.js | 3 +-- public/src/modules/components.js | 6 ++--- public/src/modules/helpers.js | 27 ++++++++------------- public/src/modules/settings.js | 21 +++++++--------- public/src/modules/settings/key.js | 6 ++--- public/src/utils.js | 37 ++++++++++++++--------------- src/admin/search.js | 4 ++-- src/controllers/accounts/session.js | 3 +-- src/controllers/authentication.js | 7 +++--- src/controllers/index.js | 3 +-- src/database/redis/sorted.js | 4 ++-- src/groups/search.js | 3 +-- src/logger.js | 3 +-- src/meta/languages.js | 2 +- src/middleware/index.js | 10 ++++---- src/middleware/user.js | 9 ++++--- src/plugins.js | 3 +-- src/plugins/hooks.js | 5 ++-- src/plugins/load.js | 9 ++++--- src/socket.io/index.js | 3 +-- src/socket.io/modules.js | 4 ++-- src/topics/recent.js | 3 +-- test/utils.js | 2 +- 27 files changed, 85 insertions(+), 117 deletions(-) diff --git a/.eslintrc b/.eslintrc index 95b90ba253..a6229e5bda 100644 --- a/.eslintrc +++ b/.eslintrc @@ -71,8 +71,8 @@ "new-cap": "off", "no-lonely-if": "off", "radix": "off", - "no-else-return": "off", - "no-useless-escape": "off", + // "no-else-return": "off", + // "no-useless-escape": "off", // "block-scoped-var": "off", // "operator-assignment": "off", // "yoda": "off", diff --git a/public/src/admin/manage/flags.js b/public/src/admin/manage/flags.js index a420540f99..2e4dca281d 100644 --- a/public/src/admin/manage/flags.js +++ b/public/src/admin/manage/flags.js @@ -165,9 +165,8 @@ define('admin/manage/flags', [ }, function (err) { if (err) { return app.alertError(err.message); - } else { - app.alertSuccess('[[topic:flag_manage_saved]]'); } + app.alertSuccess('[[topic:flag_manage_saved]]'); }); } diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index 3125373d02..9cc3711701 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -377,9 +377,8 @@ $(document).ready(function () { if ($(this).attr('data-ajaxify') === 'false') { if (!internalLink) { return; - } else { - return e.preventDefault(); } + return e.preventDefault(); } // Default behaviour for rss feeds diff --git a/public/src/client/account/edit.js b/public/src/client/account/edit.js index ddee32f3f4..4de3d61be3 100644 --- a/public/src/client/account/edit.js +++ b/public/src/client/account/edit.js @@ -166,15 +166,14 @@ define('forum/account/edit', ['forum/account/header', 'translator', 'components' if ($('#confirm-username').val() !== app.user.username) { app.alertError('[[error:invalid-username]]'); return false; - } else { - socket.emit('user.deleteAccount', {}, function (err) { - if (err) { - return app.alertError(err.message); - } - - window.location.href = config.relative_path + '/'; - }); } + socket.emit('user.deleteAccount', {}, function (err) { + if (err) { + return app.alertError(err.message); + } + + window.location.href = config.relative_path + '/'; + }); }); modal.on('shown.bs.modal', function () { diff --git a/public/src/installer/install.js b/public/src/installer/install.js index 4dddbf9360..fffc3e62a5 100644 --- a/public/src/installer/install.js +++ b/public/src/installer/install.js @@ -45,9 +45,8 @@ $('document').ready(function () { $('html, body').animate({ scrollTop: '0px' }, 400); return false; - } else { - $('#submit .fa-spin').removeClass('hide'); } + $('#submit .fa-spin').removeClass('hide'); } function activate(type, el) { diff --git a/public/src/modules/components.js b/public/src/modules/components.js index 9ddec2b7a9..29d9e883a1 100644 --- a/public/src/modules/components.js +++ b/public/src/modules/components.js @@ -7,9 +7,8 @@ define('components', function () { 'topic/teaser': function (tid) { if (tid) { return $('[component="category/topic"][data-tid="' + tid + '"] [component="topic/teaser"]'); - } else { - return $('[component="topic/teaser"]'); } + return $('[component="topic/teaser"]'); }, topic: function (name, value) { return $('[component="topic"][data-' + name + '="' + value + '"]'); @@ -61,9 +60,8 @@ define('components', function () { if (components.core[arguments[0]] && args.length) { return components.core[arguments[0]].apply(this, args); - } else { - return $('[component="' + arguments[0] + '"]'); } + return $('[component="' + arguments[0] + '"]'); }; return components; diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js index 2796b8d94e..3e06438fd0 100644 --- a/public/src/modules/helpers.js +++ b/public/src/modules/helpers.js @@ -56,18 +56,16 @@ helpers.escape = function (str) { if (typeof utils !== 'undefined') { return utils.escapeHTML(str); - } else { - return require('../utils').escapeHTML(str); } + return require('../utils').escapeHTML(str); }; helpers.stripTags = function (str) { if (typeof window !== 'undefined' && window.S) { return window.S(String(str)).stripTags().s; - } else { - var S = require('string'); - return S(String(str)).stripTags().s; } + var S = require('string'); + return S(String(str)).stripTags().s; }; helpers.generateCategoryBackground = function (category) { @@ -157,9 +155,8 @@ return ''; } else if (!groupObj.disableJoinRequests && groupObj.name !== 'administrators') { return ''; - } else { - return ''; } + return ''; }; helpers.spawnPrivilegeStates = function (member, privileges) { @@ -184,25 +181,21 @@ helpers.renderTopicImage = function (topicObj) { if (topicObj.thumb) { return ''; - } else { - return ''; } + return ''; }; helpers.renderDigestAvatar = function (block) { if (block.teaser) { if (block.teaser.user.picture) { return ''; - } else { - return '
    ' + block.teaser.user['icon:text'] + '
    '; - } - } else { - if (block.user.picture) { - return ''; - } else { - return '
    ' + block.user['icon:text'] + '
    '; } + return '
    ' + block.teaser.user['icon:text'] + '
    '; + } + if (block.user.picture) { + return ''; } + return '
    ' + block.user['icon:text'] + '
    '; }; helpers.userAgentIcons = function (data) { diff --git a/public/src/modules/settings.js b/public/src/modules/settings.js index b8883f2958..35ae29eb9b 100644 --- a/public/src/modules/settings.js +++ b/public/src/modules/settings.js @@ -36,9 +36,8 @@ define('settings', function () { hook = plugin[name]; if (typeof hook === 'function') { return hook; - } else { - return null; } + return null; } helper = { @@ -48,9 +47,8 @@ define('settings', function () { deepClone: function (obj) { if (typeof obj === 'object') { return JSON.parse(JSON.stringify(obj)); - } else { - return obj; } + return obj; }, /** Creates a new Element with given data. @@ -169,14 +167,13 @@ define('settings', function () { value = element.val(); var array = (value != null && value.split(split || ',')) || []; return helper.cleanArray(array, trim, empty); - } else { - value = element.val(); - if (trim && value != null && typeof value.trim === 'function') { - value = value.trim(); - } - if (empty || (value !== undefined && (value == null || value.length !== 0))) { - return value; - } + } + value = element.val(); + if (trim && value != null && typeof value.trim === 'function') { + value = value.trim(); + } + if (empty || (value !== undefined && (value == null || value.length !== 0))) { + return value; } }, /** diff --git a/public/src/modules/settings/key.js b/public/src/modules/settings/key.js index 52b116b2e3..eac0f9e3c0 100644 --- a/public/src/modules/settings/key.js +++ b/public/src/modules/settings/key.js @@ -78,9 +78,8 @@ define('settings/key', function () { return String.fromCharCode(code).toUpperCase(); } else if (code >= 112 && code <= 123) { return 'F' + (code - 111); - } else { - return keyMap[code] || ('#' + code); } + return keyMap[code] || ('#' + code); } /** @@ -99,9 +98,8 @@ define('settings/key', function () { if (!key.char) { if (human) { return 'Enter a key'; - } else { - return ''; } + return ''; } if (!separator || /CtrlAShifMea#/.test(separator)) { separator = human ? ' + ' : '+'; diff --git a/public/src/utils.js b/public/src/utils.js index 292ba3694a..de5c3dc59d 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -111,7 +111,7 @@ tag = tag.trim().toLowerCase(); // see https://github.com/NodeBB/NodeBB/issues/4378 tag = tag.replace(/\u202E/gi, ''); - tag = tag.replace(/[,\/#!$%\^\*;:{}=_`<>'"~()?\|]/g, ''); + tag = tag.replace(/[,/#!$%^*;:{}=_`<>'"~()?|]/g, ''); tag = tag.substr(0, maxLength || 15).trim(); var matches = tag.match(/^[.-]*(.+?)[.-]*$/); if (matches && matches.length > 1) { @@ -121,7 +121,7 @@ }, removePunctuation: function (str) { - return str.replace(/[\.,-\/#!$%\^&\*;:{}=\-_`<>'"~()?]/g, ''); + return str.replace(/[.,-/#!$%^&*;:{}=\-_`<>'"~()?]/g, ''); }, isEmailValid: function (email) { @@ -129,7 +129,7 @@ }, isUserNameValid: function (name) { - return (name && name !== '' && (/^['"\s\-\+.*0-9\u00BF-\u1FFF\u2C00-\uD7FF\w]+$/.test(name))); + return (name && name !== '' && (/^['"\s\-+.*0-9\u00BF-\u1FFF\u2C00-\uD7FF\w]+$/.test(name))); }, isPasswordValid: function (password) { @@ -390,24 +390,23 @@ var type = typeof str; if (type !== 'string') { return str; - } else { - var nb = parseFloat(str); - if (!isNaN(nb) && isFinite(str)) { - return nb; - } - if (str === 'false') { - return false; - } - if (str === 'true') { - return true; - } + } + var nb = parseFloat(str); + if (!isNaN(nb) && isFinite(str)) { + return nb; + } + if (str === 'false') { + return false; + } + if (str === 'true') { + return true; + } - try { - str = JSON.parse(str); - } catch (e) {} + try { + str = JSON.parse(str); + } catch (e) {} - return str; - } + return str; }, // Safely get/set chained properties on an object diff --git a/src/admin/search.js b/src/admin/search.js index 44f9a53a9f..3a6f52cfd0 100644 --- a/src/admin/search.js +++ b/src/admin/search.js @@ -19,7 +19,7 @@ function filterDirectories(directories) { // exclude category.tpl, group.tpl, category-analytics.tpl return !dir.includes('/partials/') && /\/.*\//.test(dir) && - !/manage\/(category|group|category\-analytics)$/.test(dir); + !/manage\/(category|group|category-analytics)$/.test(dir); }); } @@ -45,7 +45,7 @@ function sanitize(html) { function simplify(translations) { return translations // remove all mustaches - .replace(/(?:\{{1,2}[^\}]*?\}{1,2})/g, '') + .replace(/(?:\{{1,2}[^}]*?\}{1,2})/g, '') // collapse whitespace .replace(/(?:[ \t]*[\n\r]+[ \t]*)+/g, '\n') .replace(/[\t ]+/g, ' '); diff --git a/src/controllers/accounts/session.js b/src/controllers/accounts/session.js index 67fae0bef3..809cdb6dad 100644 --- a/src/controllers/accounts/session.js +++ b/src/controllers/accounts/session.js @@ -46,9 +46,8 @@ sessionController.revoke = function (req, res, next) { ], function (err) { if (err) { return res.status(500).send(err.message); - } else { - return res.sendStatus(200); } + return res.sendStatus(200); }); }; diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index 3a44f7b134..e83cb56a33 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -113,11 +113,10 @@ function registerAndLoginUser(req, res, userData, callback) { if (!deferRegistration) { return next(); - } else { - userData.register = true; - req.session.registration = userData; - return res.json({ referrer: nconf.get('relative_path') + '/register/complete' }); } + userData.register = true; + req.session.registration = userData; + return res.json({ referrer: nconf.get('relative_path') + '/register/complete' }); }); }, function (next) { diff --git a/src/controllers/index.js b/src/controllers/index.js index 14600263de..57e23e069f 100644 --- a/src/controllers/index.js +++ b/src/controllers/index.js @@ -131,9 +131,8 @@ Controllers.login = function (req, res, next) { return helpers.redirect(res, { external: data.authentication[0].url, }); - } else { - return res.redirect(nconf.get('relative_path') + data.authentication[0].url); } + return res.redirect(nconf.get('relative_path') + data.authentication[0].url); } if (req.uid) { user.getUserFields(req.uid, ['username', 'email'], function (err, user) { diff --git a/src/database/redis/sorted.js b/src/database/redis/sorted.js index 2fd3220eaa..a2c18296db 100644 --- a/src/database/redis/sorted.js +++ b/src/database/redis/sorted.js @@ -207,10 +207,10 @@ module.exports = function (redisClient, module) { maxmax = '+'; } - if (min !== minmin && !min.match(/^[\[\(]/)) { + if (min !== minmin && !min.match(/^[[(]/)) { min = '[' + min; } - if (max !== maxmax && !max.match(/^[\[\(]/)) { + if (max !== maxmax && !max.match(/^[[(]/)) { max = '[' + max; } diff --git a/src/groups/search.js b/src/groups/search.js index 44bc835d5c..3c580b5e8d 100644 --- a/src/groups/search.js +++ b/src/groups/search.js @@ -121,9 +121,8 @@ module.exports = function (Groups) { return -1; } else if (!a.isOwner && b.isOwner) { return 1; - } else { - return 0; } + return 0; }); next(null, results); }, diff --git a/src/logger.js b/src/logger.js index c40ae49ae1..73180d7add 100644 --- a/src/logger.js +++ b/src/logger.js @@ -132,9 +132,8 @@ var opts = { */ if (meta.config.loggerStatus > 0) { return opts.express.ofn(req, res, next); - } else { - return next(); } + return next(); }; Logger.prepare_io_string = function (_type, _uid, _args) { diff --git a/src/meta/languages.js b/src/meta/languages.js index 381c22c34f..30d8d599e9 100644 --- a/src/meta/languages.js +++ b/src/meta/languages.js @@ -44,7 +44,7 @@ function getTranslationTree(callback) { // pull languages and namespaces from paths function extrude(languageDir, paths) { paths.forEach(function (p) { - var rel = p.split(languageDir)[1].split(/[\/\\]/).slice(1); + var rel = p.split(languageDir)[1].split(/[/\\]/).slice(1); var language = rel.shift().replace('_', '-').replace('@', '-x-'); var namespace = rel.join('/').replace(/\.json$/, ''); diff --git a/src/middleware/index.js b/src/middleware/index.js index 798067429a..df11d8a830 100644 --- a/src/middleware/index.js +++ b/src/middleware/index.js @@ -64,9 +64,8 @@ middleware.ensureSelfOrGlobalPrivilege = function (req, res, next) { return next(err); } else if (ok) { return next(); - } else { - controllers.helpers.notAllowed(req, res); } + controllers.helpers.notAllowed(req, res); }); } else { controllers.helpers.notAllowed(req, res); @@ -121,11 +120,10 @@ middleware.prepareAPI = function (req, res, next) { middleware.routeTouchIcon = function (req, res) { if (meta.config['brand:touchIcon'] && validator.isURL(meta.config['brand:touchIcon'])) { return res.redirect(meta.config['brand:touchIcon']); - } else { - return res.sendFile(path.join(__dirname, '../../public', meta.config['brand:touchIcon'] || '/logo.png'), { - maxAge: req.app.enabled('cache') ? 5184000000 : 0, - }); } + return res.sendFile(path.join(__dirname, '../../public', meta.config['brand:touchIcon'] || '/logo.png'), { + maxAge: req.app.enabled('cache') ? 5184000000 : 0, + }); }; middleware.privateTagListing = function (req, res, next) { diff --git a/src/middleware/user.js b/src/middleware/user.js index ed56ad6d9e..85b5d6e808 100644 --- a/src/middleware/user.js +++ b/src/middleware/user.js @@ -148,12 +148,11 @@ module.exports = function (middleware) { // If the user's session contains registration data, redirect the user to complete registration if (!req.session.hasOwnProperty('registration')) { return next(); + } + if (!req.path.endsWith('/register/complete')) { + controllers.helpers.redirect(res, '/register/complete'); } else { - if (!req.path.endsWith('/register/complete')) { - controllers.helpers.redirect(res, '/register/complete'); - } else { - return next(); - } + return next(); } }; }; diff --git a/src/plugins.js b/src/plugins.js index 915f9fdca6..99656312e9 100644 --- a/src/plugins.js +++ b/src/plugins.js @@ -316,9 +316,8 @@ var middleware; return 1; } else if (a.name < b.name) { return -1; - } else { - return 0; } + return 0; }); callback(null, pluginArray); diff --git a/src/plugins/hooks.js b/src/plugins/hooks.js index ef82046bbf..4db26fb560 100644 --- a/src/plugins/hooks.js +++ b/src/plugins/hooks.js @@ -57,10 +57,9 @@ module.exports = function (Plugins) { method = data.method.split('.').reduce(function (memo, prop) { if (memo && memo[prop]) { return memo[prop]; - } else { - // Couldn't find method by path, aborting - return null; } + // Couldn't find method by path, aborting + return null; }, Plugins.libraries[data.id]); // Write the actual method reference to the hookObj diff --git a/src/plugins/load.js b/src/plugins/load.js index 56f3ff563f..33659e714f 100644 --- a/src/plugins/load.js +++ b/src/plugins/load.js @@ -225,7 +225,7 @@ module.exports = function (Plugins) { pluginData.modules.forEach(function (file) { if (strip) { - modules[file.replace(new RegExp('\.?(\/[^\/]+){' + strip + '}\/'), '')] = path.join('./node_modules/', pluginData.id, file); + modules[file.replace(new RegExp('.?(/[^/]+){' + strip + '}/'), '')] = path.join('./node_modules/', pluginData.id, file); } else { modules[path.basename(file)] = path.join('./node_modules/', pluginData.id, file); } @@ -268,11 +268,10 @@ module.exports = function (Plugins) { if (!atRootLevel && relPath) { winston.verbose('[plugins/load] File not found: ' + fullPath + ' (Ascending)'); return resolveModulePath(path.join(__dirname, '../..', relPath)); - } else { - // Already at root level, file was simply not found - winston.warn('[plugins/load] File not found: ' + fullPath + ' (Ignoring)'); - return null; } + // Already at root level, file was simply not found + winston.warn('[plugins/load] File not found: ' + fullPath + ' (Ignoring)'); + return null; } } diff --git a/src/socket.io/index.js b/src/socket.io/index.js index 21edc91453..d6907538fd 100644 --- a/src/socket.io/index.js +++ b/src/socket.io/index.js @@ -83,9 +83,8 @@ function onMessage(socket, payload) { var methodToCall = parts.reduce(function (prev, cur) { if (prev !== null && prev[cur]) { return prev[cur]; - } else { - return null; } + return null; }, Namespaces); if (!methodToCall) { diff --git a/src/socket.io/modules.js b/src/socket.io/modules.js index bd4c7febc2..cdcc01f08b 100644 --- a/src/socket.io/modules.js +++ b/src/socket.io/modules.js @@ -93,9 +93,9 @@ function rateLimitExceeded(socket) { var delay = meta.config.hasOwnProperty('chatMessageDelay') ? parseInt(meta.config.chatMessageDelay, 10) : 200; if (now - socket.lastChatMessageTime < delay) { return true; - } else { - socket.lastChatMessageTime = now; } + socket.lastChatMessageTime = now; + return false; } diff --git a/src/topics/recent.js b/src/topics/recent.js index eb2aebec66..dbecd035b4 100644 --- a/src/topics/recent.js +++ b/src/topics/recent.js @@ -79,9 +79,8 @@ module.exports = function (Topics) { tids = results.topicData.filter(function (topic) { if (topic) { return results.ignoredCids.indexOf(topic.cid.toString()) === -1; - } else { - return false; } + return false; }).map(function (topic) { return topic.tid; }); diff --git a/test/utils.js b/test/utils.js index e5d0666931..2beedcf3eb 100644 --- a/test/utils.js +++ b/test/utils.js @@ -38,7 +38,7 @@ describe('Utility Methods', function () { describe('cleanUpTag', function () { it('should cleanUp a tag', function (done) { - var cleanedTag = utils.cleanUpTag(',\/#!$%\^\*;TaG1:{}=_`<>\'"~()?\|'); + var cleanedTag = utils.cleanUpTag(',/#!$%^*;TaG1:{}=_`<>\'"~()?|'); assert.equal(cleanedTag, 'tag1'); done(); }); From 57f89663aacda80525c9bb6f3105f9e7fedd565a Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 14:29:52 -0700 Subject: [PATCH 38/60] ESlint radix --- .eslintrc | 2 +- public/src/client/chats/messages.js | 2 +- src/categories/recentreplies.js | 2 +- src/controllers/accounts/edit.js | 2 +- src/groups.js | 2 +- src/messaging.js | 4 ++-- src/messaging/notifications.js | 2 +- src/posts/votes.js | 2 +- src/search.js | 2 +- src/socket.io/posts/edit.js | 2 +- src/user/picture.js | 2 +- 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.eslintrc b/.eslintrc index a6229e5bda..e04ea21d3b 100644 --- a/.eslintrc +++ b/.eslintrc @@ -70,7 +70,7 @@ "one-var-declaration-per-line": "off", "new-cap": "off", "no-lonely-if": "off", - "radix": "off", + // "radix": "off", // "no-else-return": "off", // "no-useless-escape": "off", // "block-scoped-var": "off", diff --git a/public/src/client/chats/messages.js b/public/src/client/chats/messages.js index 4c804643a7..ee68e8c88e 100644 --- a/public/src/client/chats/messages.js +++ b/public/src/client/chats/messages.js @@ -111,7 +111,7 @@ define('forum/chats/messages', ['components', 'sounds', 'translator'], function messages.onChatMessageEdit = function () { socket.on('event:chats.edit', function (data) { data.messages.forEach(function (message) { - var self = parseInt(message.fromuid, 10) === parseInt(app.user.uid); + var self = parseInt(message.fromuid, 10) === parseInt(app.user.uid, 10); message.self = self ? 1 : 0; messages.parseMessage(message, function (html) { var body = components.get('chat/message', message.messageId); diff --git a/src/categories/recentreplies.js b/src/categories/recentreplies.js index fa5a6cab7f..d516f4f035 100644 --- a/src/categories/recentreplies.js +++ b/src/categories/recentreplies.js @@ -130,7 +130,7 @@ module.exports = function (Categories) { results.teasers.forEach(function (teaser, index) { if (teaser) { teaser.cid = topicData[index].cid; - teaser.parentCid = parseInt(parentCids[teaser.cid]) || 0; + teaser.parentCid = parseInt(parentCids[teaser.cid], 10) || 0; teaser.tid = teaser.uid = teaser.user.uid = undefined; teaser.topic = { slug: topicData[index].slug, diff --git a/src/controllers/accounts/edit.js b/src/controllers/accounts/edit.js index 740980ae8e..7006672853 100644 --- a/src/controllers/accounts/edit.js +++ b/src/controllers/accounts/edit.js @@ -25,7 +25,7 @@ editController.get = function (req, res, callback) { userData.maximumSignatureLength = parseInt(meta.config.maximumSignatureLength, 10) || 255; userData.maximumAboutMeLength = parseInt(meta.config.maximumAboutMeLength, 10) || 1000; userData.maximumProfileImageSize = parseInt(meta.config.maximumProfileImageSize, 10); - userData.allowProfileImageUploads = parseInt(meta.config.allowProfileImageUploads) === 1; + userData.allowProfileImageUploads = parseInt(meta.config.allowProfileImageUploads, 10) === 1; userData.allowAccountDelete = parseInt(meta.config.allowAccountDelete, 10) === 1; userData.groups = userData.groups.filter(function (group) { diff --git a/src/groups.js b/src/groups.js index 5ac3116db7..863a61016c 100644 --- a/src/groups.js +++ b/src/groups.js @@ -406,7 +406,7 @@ var utils = require('../public/src/utils'); group.hidden = parseInt(group.hidden, 10) === 1; group.system = parseInt(group.system, 10) === 1; group.private = (group.private === null || group.private === undefined) ? true : !!parseInt(group.private, 10); - group.disableJoinRequests = parseInt(group.disableJoinRequests) === 1; + group.disableJoinRequests = parseInt(group.disableJoinRequests, 10) === 1; group['cover:url'] = group['cover:url'] || require('./coverPhoto').getDefaultGroupCover(group.name); group['cover:thumb:url'] = group['cover:thumb:url'] || group['cover:url']; diff --git a/src/messaging.js b/src/messaging.js index 9f939564dd..e141adff4f 100644 --- a/src/messaging.js +++ b/src/messaging.js @@ -218,7 +218,7 @@ Messaging.getTeaser = function (uid, roomId, callback) { }; Messaging.canMessageUser = function (uid, toUid, callback) { - if (parseInt(meta.config.disableChat) === 1 || !uid || uid === toUid) { + if (parseInt(meta.config.disableChat, 10) === 1 || !uid || uid === toUid) { return callback(new Error('[[error:chat-disabled]]')); } @@ -262,7 +262,7 @@ Messaging.canMessageUser = function (uid, toUid, callback) { }; Messaging.canMessageRoom = function (uid, roomId, callback) { - if (parseInt(meta.config.disableChat) === 1 || !uid) { + if (parseInt(meta.config.disableChat, 10) === 1 || !uid) { return callback(new Error('[[error:chat-disabled]]')); } diff --git a/src/messaging/notifications.js b/src/messaging/notifications.js index 8578eb6425..3a333b2ffd 100644 --- a/src/messaging/notifications.js +++ b/src/messaging/notifications.js @@ -25,7 +25,7 @@ module.exports = function (Messaging) { message: messageObj, }; uids.forEach(function (uid) { - data.self = parseInt(uid, 10) === parseInt(fromUid) ? 1 : 0; + data.self = parseInt(uid, 10) === parseInt(fromUid, 10) ? 1 : 0; Messaging.pushUnreadCount(uid); sockets.in('uid_' + uid).emit('event:chats.receive', data); }); diff --git a/src/posts/votes.js b/src/posts/votes.js index 97f88b3820..ddc860f5b6 100644 --- a/src/posts/votes.js +++ b/src/posts/votes.js @@ -153,7 +153,7 @@ module.exports = function (Posts) { return callback(new Error('self-vote')); } - if (command === 'downvote' && parseInt(results.reputation) < parseInt(meta.config['privileges:downvote'], 10)) { + if (command === 'downvote' && parseInt(results.reputation, 10) < parseInt(meta.config['privileges:downvote'], 10)) { return callback(new Error('[[error:not-enough-reputation-to-downvote]]')); } diff --git a/src/search.js b/src/search.js index 15ebb88184..8cf54c86be 100644 --- a/src/search.js +++ b/src/search.js @@ -294,7 +294,7 @@ function filterByPostcount(posts, postCount, repliesFilter) { } function filterByTimerange(posts, timeRange, timeFilter) { - timeRange = parseInt(timeRange) * 1000; + timeRange = parseInt(timeRange, 10) * 1000; if (timeRange) { var time = Date.now() - timeRange; if (timeFilter === 'newer') { diff --git a/src/socket.io/posts/edit.js b/src/socket.io/posts/edit.js index c7ca9dc1e8..4d5602effe 100644 --- a/src/socket.io/posts/edit.js +++ b/src/socket.io/posts/edit.js @@ -50,7 +50,7 @@ module.exports = function (SocketPosts) { }); } - if (parseInt(result.post.deleted) !== 1) { + if (parseInt(result.post.deleted, 10) !== 1) { websockets.in('topic_' + result.topic.tid).emit('event:post_edited', result); return callback(null, result.post); } diff --git a/src/user/picture.js b/src/user/picture.js index 32d91d6877..4467fcd7e0 100644 --- a/src/user/picture.js +++ b/src/user/picture.js @@ -26,7 +26,7 @@ module.exports = function (User) { var keepAllVersions = parseInt(meta.config['profile:keepAllUserImages'], 10) === 1; var uploadedImage; - if (parseInt(meta.config.allowProfileImageUploads) !== 1) { + if (parseInt(meta.config.allowProfileImageUploads, 10) !== 1) { return callback(new Error('[[error:profile-image-uploads-disabled]]')); } From 144fa8698c4d8f228250bf3194ca7f22cd4a3278 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 14:32:35 -0700 Subject: [PATCH 39/60] Eslint no-lonely-if --- .eslintrc | 6 +++--- public/src/ajaxify.js | 6 ++---- public/src/client/chats.js | 26 ++++++++++++-------------- public/src/modules/settings.js | 24 +++++++++++------------- src/controllers/helpers.js | 12 +++++------- src/groups/membership.js | 8 +++----- src/meta/sounds.js | 6 ++---- src/plugins.js | 8 +++----- src/privileges/users.js | 8 +++----- src/reset.js | 12 +++++------- src/socket.io/topics/infinitescroll.js | 8 +++----- 11 files changed, 52 insertions(+), 72 deletions(-) diff --git a/.eslintrc b/.eslintrc index e04ea21d3b..e9fc782420 100644 --- a/.eslintrc +++ b/.eslintrc @@ -51,6 +51,7 @@ "no-script-url": "off", "no-use-before-define": "off", "default-case": "off", + "new-cap": "off", // "linebreak-style": "off", // "one-var": "off", @@ -67,9 +68,8 @@ "eqeqeq": "off", "camelcase": "off", "no-negated-condition": "off", - "one-var-declaration-per-line": "off", - "new-cap": "off", - "no-lonely-if": "off", + // "one-var-declaration-per-line": "off", + // "no-lonely-if": "off", // "radix": "off", // "no-else-return": "off", // "no-useless-escape": "off", diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index 9cc3711701..322a13bd20 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -351,10 +351,8 @@ $(document).ready(function () { // Special handling for urls with hashes if (window.location.pathname === this.pathname && this.hash.length) { window.location.hash = this.hash; - } else { - if (ajaxify.go(pathname)) { - e.preventDefault(); - } + } else if (ajaxify.go(pathname)) { + e.preventDefault(); } } else if (window.location.pathname !== '/outgoing') { if (config.openOutgoingLinksInNewTab && $.contains(contentEl, this)) { diff --git a/public/src/client/chats.js b/public/src/client/chats.js index 4f212b3f77..262f58bbe4 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -311,22 +311,20 @@ define('forum/chats', [ data.message.self = data.self; messages.appendChatMessage($('.expanded-chat .chat-content'), data.message); - } else { - if (ajaxify.currentPage.startsWith('chats')) { - var roomEl = $('[data-roomid=' + data.roomId + ']'); - - if (roomEl.length > 0) { - roomEl.addClass('unread'); - } else { - var recentEl = components.get('chat/recent'); - templates.parse('partials/chats/recent_room', { - rooms: { roomId: data.roomId, lastUser: data.message.fromUser, usernames: data.message.fromUser.username, unread: true }, - }, function (html) { - translator.translate(html, function (translated) { + } else if (ajaxify.currentPage.startsWith('chats')) { + var roomEl = $('[data-roomid=' + data.roomId + ']'); + + if (roomEl.length > 0) { + roomEl.addClass('unread'); + } else { + var recentEl = components.get('chat/recent'); + templates.parse('partials/chats/recent_room', { + rooms: { roomId: data.roomId, lastUser: data.message.fromUser, usernames: data.message.fromUser.username, unread: true }, + }, function (html) { + translator.translate(html, function (translated) { recentEl.prepend(translated); - }); }); - } + }); } } }); diff --git a/public/src/modules/settings.js b/public/src/modules/settings.js index 35ae29eb9b..ecd99a9521 100644 --- a/public/src/modules/settings.js +++ b/public/src/modules/settings.js @@ -510,20 +510,18 @@ define('settings', function () { if (typeof callback === 'function') { callback(err); + } else if (err) { + app.alert({ + title: 'Error while saving settings', + type: 'error', + timeout: 2500, + }); } else { - if (err) { - app.alert({ - title: 'Error while saving settings', - type: 'error', - timeout: 2500, - }); - } else { - app.alert({ - title: 'Settings Saved', - type: 'success', - timeout: 2500, - }); - } + app.alert({ + title: 'Settings Saved', + type: 'success', + timeout: 2500, + }); } }); } diff --git a/src/controllers/helpers.js b/src/controllers/helpers.js index 0942cc7b82..773b0e6463 100644 --- a/src/controllers/helpers.js +++ b/src/controllers/helpers.js @@ -38,14 +38,12 @@ helpers.notAllowed = function (req, res, error) { title: '[[global:403.title]]', }); } + } else if (res.locals.isAPI) { + req.session.returnTo = nconf.get('relative_path') + req.url.replace(/^\/api/, ''); + res.status(401).json('not-authorized'); } else { - if (res.locals.isAPI) { - req.session.returnTo = nconf.get('relative_path') + req.url.replace(/^\/api/, ''); - res.status(401).json('not-authorized'); - } else { - req.session.returnTo = nconf.get('relative_path') + req.url; - res.redirect(nconf.get('relative_path') + '/login'); - } + req.session.returnTo = nconf.get('relative_path') + req.url; + res.redirect(nconf.get('relative_path') + '/login'); } }); }; diff --git a/src/groups/membership.js b/src/groups/membership.js index b0afbbd9c8..567c5b7dcc 100644 --- a/src/groups/membership.js +++ b/src/groups/membership.js @@ -241,12 +241,10 @@ module.exports = function (Groups) { } if (Groups.isPrivilegeGroup(groupName) && parseInt(groupData.memberCount, 10) === 0) { Groups.destroy(groupName, next); + } else if (parseInt(groupData.hidden, 10) !== 1) { + db.sortedSetAdd('groups:visible:memberCount', groupData.memberCount, groupName, next); } else { - if (parseInt(groupData.hidden, 10) !== 1) { - db.sortedSetAdd('groups:visible:memberCount', groupData.memberCount, groupName, next); - } else { - next(); - } + next(); } }, function (next) { diff --git a/src/meta/sounds.js b/src/meta/sounds.js index 249d49d49b..0205e56396 100644 --- a/src/meta/sounds.js +++ b/src/meta/sounds.js @@ -18,10 +18,8 @@ module.exports = function (Meta) { Meta.sounds.init = function (callback) { if (nconf.get('isPrimary') === 'true') { setupSounds(callback); - } else { - if (typeof callback === 'function') { - callback(); - } + } else if (typeof callback === 'function') { + callback(); } }; diff --git a/src/plugins.js b/src/plugins.js index 99656312e9..84673f635f 100644 --- a/src/plugins.js +++ b/src/plugins.js @@ -190,12 +190,10 @@ var middleware; winston.warn('[plugins] Skipping ' + pluginTemplate + ' by plugin ' + plugin.id); } }); + } else if (err) { + winston.error(err); } else { - if (err) { - winston.error(err); - } else { - winston.warn('[plugins/' + plugin.id + '] A templates directory was defined for this plugin, but was not found.'); - } + winston.warn('[plugins/' + plugin.id + '] A templates directory was defined for this plugin, but was not found.'); } next(false); diff --git a/src/privileges/users.js b/src/privileges/users.js index a73437db75..ed72efb147 100644 --- a/src/privileges/users.js +++ b/src/privileges/users.js @@ -28,12 +28,10 @@ module.exports = function (privileges) { privileges.users.isModerator = function (uid, cid, callback) { if (Array.isArray(cid)) { isModeratorOfCategories(cid, uid, callback); + } else if (Array.isArray(uid)) { + isModeratorsOfCategory(cid, uid, callback); } else { - if (Array.isArray(uid)) { - isModeratorsOfCategory(cid, uid, callback); - } else { - isModeratorOfCategory(cid, uid, callback); - } + isModeratorOfCategory(cid, uid, callback); } }; diff --git a/src/reset.js b/src/reset.js index b69f4980dc..a6ed18b32a 100644 --- a/src/reset.js +++ b/src/reset.js @@ -133,14 +133,12 @@ function resetPlugin(pluginId, callback) { ], function (err) { if (err) { winston.error('[reset] Could not disable plugin: %s encountered error %s', pluginId, err.message); + } else if (active) { + winston.info('[reset] Plugin `%s` disabled', pluginId); } else { - if (active) { - winston.info('[reset] Plugin `%s` disabled', pluginId); - } else { - winston.warn('[reset] Plugin `%s` was not active on this forum', pluginId); - winston.info('[reset] No action taken.'); - err = new Error('plugin-not-active'); - } + winston.warn('[reset] Plugin `%s` was not active on this forum', pluginId); + winston.info('[reset] No action taken.'); + err = new Error('plugin-not-active'); } callback(err); diff --git a/src/socket.io/topics/infinitescroll.js b/src/socket.io/topics/infinitescroll.js index 275fa18895..b0d7407a0a 100644 --- a/src/socket.io/topics/infinitescroll.js +++ b/src/socket.io/topics/infinitescroll.js @@ -46,12 +46,10 @@ module.exports = function (SocketTopics) { if (reverse) { start = results.topic.postcount - start; } + } else if (reverse) { + start = results.topic.postcount - start - infScrollPostsPerPage - 1; } else { - if (reverse) { - start = results.topic.postcount - start - infScrollPostsPerPage - 1; - } else { - start = start - infScrollPostsPerPage - 1; - } + start = start - infScrollPostsPerPage - 1; } var stop = start + (infScrollPostsPerPage - 1); From fdf4f873bf8689ca8659bbf42461218423cca3b1 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 14:36:16 -0700 Subject: [PATCH 40/60] ESlint eqeqeq and require-jsdoc, no-negated-condition --- .eslintrc | 8 ++++---- public/src/admin/general/dashboard.js | 2 +- public/src/admin/manage/categories.js | 4 ++-- public/src/utils.js | 2 +- test/mocks/newXhr.js | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.eslintrc b/.eslintrc index e9fc782420..7a8490fa3b 100644 --- a/.eslintrc +++ b/.eslintrc @@ -25,6 +25,7 @@ "no-tabs": "off", "indent": ["error", "tab"], "no-eq-null": "off", + "camelcase": "off", // ES6 "prefer-rest-params": "off", @@ -64,10 +65,9 @@ "no-unused-vars": "off", "no-mixed-spaces-and-tabs": "off", "no-useless-concat": "off", - "require-jsdoc": "off", - "eqeqeq": "off", - "camelcase": "off", - "no-negated-condition": "off", + // "require-jsdoc": "off", + // "eqeqeq": "off", + // "no-negated-condition": "off", // "one-var-declaration-per-line": "off", // "no-lonely-if": "off", // "radix": "off", diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index d332b35a0f..ed46203970 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -133,7 +133,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s function lighten(col, amt) { var usePound = false; - if (col[0] == '#') { + if (col[0] === '#') { col = col.slice(1); usePound = true; } diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js index 9eb245eb60..772af419fe 100644 --- a/public/src/admin/manage/categories.js +++ b/public/src/admin/manage/categories.js @@ -125,10 +125,10 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri } function itemDragDidEnd(e) { - var isCategoryUpdate = (newCategoryId != -1); + var isCategoryUpdate = (newCategoryId !== -1); // Update needed? - if ((e.newIndex != undefined && e.oldIndex != e.newIndex) || isCategoryUpdate) { + if ((e.newIndex != null && e.oldIndex !== e.newIndex) || isCategoryUpdate) { var parentCategory = isCategoryUpdate ? sortables[newCategoryId] : sortables[e.from.dataset.cid]; var modified = {}; var i = 0; diff --git a/public/src/utils.js b/public/src/utils.js index de5c3dc59d..1506f296e2 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -422,7 +422,7 @@ return undefined; } var i = props.indexOf('.'); - if (i == -1) { + if (i === -1) { if (value !== undefined) { obj[props] = value; } diff --git a/test/mocks/newXhr.js b/test/mocks/newXhr.js index 0f7ccee061..5631b68cae 100644 --- a/test/mocks/newXhr.js +++ b/test/mocks/newXhr.js @@ -37,7 +37,7 @@ var callbacks = {}; var newXhr = function () { stdXhr.apply(this, arguments); for (var method in callbacks) { - if (typeof callbacks[method] == 'function') { + if (typeof callbacks[method] === 'function') { callbacks[method].apply(this, arguments); } } From c18808fdeb9ca468fcd252b751f4f8a947386b11 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 14:42:15 -0700 Subject: [PATCH 41/60] ESlint no-useless-concat, no-mixed-spaces-and-tabs --- .eslintrc | 4 +-- public/src/admin/appearance/customise.js | 4 +-- public/src/admin/extend/rewards.js | 2 +- public/src/admin/general/navigation.js | 4 +-- public/src/admin/manage/flags.js | 2 +- public/src/admin/manage/ip-blacklist.js | 2 +- public/src/ajaxify.js | 2 +- public/src/app.js | 2 +- public/src/client/chats.js | 2 +- public/src/client/chats/messages.js | 2 +- public/src/modules/chat.js | 2 +- public/src/modules/helpers.js | 2 +- public/src/modules/pictureCropper.js | 20 ++++++------- public/src/modules/uploader.js | 2 +- public/src/widgets.js | 2 +- src/categories/topics.js | 2 +- src/controllers/accounts/settings.js | 6 ++-- src/database/mongo/sorted.js | 6 ++-- src/meta/languages.js | 2 +- src/posts/recent.js | 2 +- src/search.js | 8 +++--- test/mocks/databasemock.js | 36 ++++++++++++------------ test/user.js | 6 ++-- 23 files changed, 61 insertions(+), 61 deletions(-) diff --git a/.eslintrc b/.eslintrc index 7a8490fa3b..57105ee349 100644 --- a/.eslintrc +++ b/.eslintrc @@ -63,8 +63,8 @@ // "brace-style": "off", "max-statements-per-line": "off", "no-unused-vars": "off", - "no-mixed-spaces-and-tabs": "off", - "no-useless-concat": "off", + // "no-mixed-spaces-and-tabs": "off", + // "no-useless-concat": "off", // "require-jsdoc": "off", // "eqeqeq": "off", // "no-negated-condition": "off", diff --git a/public/src/admin/appearance/customise.js b/public/src/admin/appearance/customise.js index 026de7c204..edad9e8a74 100644 --- a/public/src/admin/appearance/customise.js +++ b/public/src/admin/appearance/customise.js @@ -18,7 +18,7 @@ define('admin/appearance/customise', ['admin/settings'], function (Settings) { customCSS.on('change', function (event) { app.flags = app.flags || {}; app.flags._unsaved = true; - $('#customCSS-holder').val(customCSS.getValue()); + $('#customCSS-holder').val(customCSS.getValue()); }); customHTML.setTheme('ace/theme/twilight'); @@ -27,7 +27,7 @@ define('admin/appearance/customise', ['admin/settings'], function (Settings) { customHTML.on('change', function (event) { app.flags = app.flags || {}; app.flags._unsaved = true; - $('#customHTML-holder').val(customHTML.getValue()); + $('#customHTML-holder').val(customHTML.getValue()); }); }); }; diff --git a/public/src/admin/extend/rewards.js b/public/src/admin/extend/rewards.js index e2858af2e8..374251166f 100644 --- a/public/src/admin/extend/rewards.js +++ b/public/src/admin/extend/rewards.js @@ -43,7 +43,7 @@ define('admin/extend/rewards', ['translator'], function (translator) { var btn = $(this); var disabled = btn.hasClass('btn-success'); var id = $(this).parents('[data-id]').attr('data-id'); - btn.toggleClass('btn-warning').toggleClass('btn-success').translateHtml('[[admin/extend/rewards:' + disabled ? 'disable' : 'enable' + ']]'); + btn.toggleClass('btn-warning').toggleClass('btn-success').translateHtml('[[admin/extend/rewards:' + (disabled ? 'disable' : 'enable') + ']]'); // send disable api call return false; }); diff --git a/public/src/admin/general/navigation.js b/public/src/admin/general/navigation.js index 50da0f952b..992c4fcb56 100644 --- a/public/src/admin/general/navigation.js +++ b/public/src/admin/general/navigation.js @@ -40,8 +40,8 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun $('#active-navigation').on('click', 'li', onSelect); $('#enabled') - .on('click', '.delete', remove) - .on('click', '.toggle', toggle); + .on('click', '.delete', remove) + .on('click', '.toggle', toggle); $('#save').on('click', save); }; diff --git a/public/src/admin/manage/flags.js b/public/src/admin/manage/flags.js index 2e4dca281d..26e9bd3f73 100644 --- a/public/src/admin/manage/flags.js +++ b/public/src/admin/manage/flags.js @@ -37,7 +37,7 @@ define('admin/manage/flags', [ socket.emit('posts.dismissFlag', pid, function (err) { done(err, btn); }); - }); + }); } function handleDismissAll() { diff --git a/public/src/admin/manage/ip-blacklist.js b/public/src/admin/manage/ip-blacklist.js index 5dd3e32fb1..a9cf75d022 100644 --- a/public/src/admin/manage/ip-blacklist.js +++ b/public/src/admin/manage/ip-blacklist.js @@ -8,7 +8,7 @@ define('admin/manage/ip-blacklist', ['translator'], function (translator) { var blacklist = $('#blacklist-rules'); blacklist.on('keyup', function () { - $('#blacklist-rules-holder').val(blacklist.val()); + $('#blacklist-rules-holder').val(blacklist.val()); }); $('[data-action="apply"]').on('click', function () { diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index 322a13bd20..c6d04ade07 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -321,7 +321,7 @@ $(document).ready(function () { callback(templates.cache[template]); } else { $.ajax({ - url: config.relative_path + '/assets/templates/' + template + '.tpl' + '?' + config['cache-buster'], + url: config.relative_path + '/assets/templates/' + template + '.tpl?' + config['cache-buster'], type: 'GET', success: function (data) { callback(data.toString()); diff --git a/public/src/app.js b/public/src/app.js index 9983aef36f..8df3941ddb 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -558,7 +558,7 @@ app.cacheBuster = null; var scriptEl = document.createElement('script'); scriptEl.type = 'text/javascript'; - scriptEl.src = config.relative_path + '/assets/vendor/jquery/js/jquery-ui.js' + '?' + config['cache-buster']; + scriptEl.src = config.relative_path + '/assets/vendor/jquery/js/jquery-ui.js?' + config['cache-buster']; scriptEl.onload = callback; document.head.appendChild(scriptEl); }; diff --git a/public/src/client/chats.js b/public/src/client/chats.js index 262f58bbe4..c42a8e9330 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -322,7 +322,7 @@ define('forum/chats', [ rooms: { roomId: data.roomId, lastUser: data.message.fromUser, usernames: data.message.fromUser.username, unread: true }, }, function (html) { translator.translate(html, function (translated) { - recentEl.prepend(translated); + recentEl.prepend(translated); }); }); } diff --git a/public/src/client/chats/messages.js b/public/src/client/chats/messages.js index ee68e8c88e..c8300c485c 100644 --- a/public/src/client/chats/messages.js +++ b/public/src/client/chats/messages.js @@ -114,7 +114,7 @@ define('forum/chats/messages', ['components', 'sounds', 'translator'], function var self = parseInt(message.fromuid, 10) === parseInt(app.user.uid, 10); message.self = self ? 1 : 0; messages.parseMessage(message, function (html) { - var body = components.get('chat/message', message.messageId); + var body = components.get('chat/message', message.messageId); if (body.length) { body.replaceWith(html); components.get('chat/message', message.messageId).find('.timeago').timeago(); diff --git a/public/src/modules/chat.js b/public/src/modules/chat.js index 38591ac996..3dc7bc136b 100644 --- a/public/src/modules/chat.js +++ b/public/src/modules/chat.js @@ -114,7 +114,7 @@ define('chat', [ } var rooms = data.rooms.filter(function (room) { - return room.teaser; + return room.teaser; }); templates.parse('partials/chats/dropdown', { diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js index 3e06438fd0..ea8c29d339 100644 --- a/public/src/modules/helpers.js +++ b/public/src/modules/helpers.js @@ -269,7 +269,7 @@ exports = module.exports/* = SemVer*/; } else if (typeof define === 'function' && define.amd) { // Use the define() function if we're in AMD land - define('helpers', exports); + define('helpers', exports); } else if (typeof window === 'object') { window.helpers = exports; } diff --git a/public/src/modules/pictureCropper.js b/public/src/modules/pictureCropper.js index 119565cbe7..409a000e87 100644 --- a/public/src/modules/pictureCropper.js +++ b/public/src/modules/pictureCropper.js @@ -17,7 +17,7 @@ define('pictureCropper', ['translator', 'cropper'], function (translator, croppe uploadModal = $(uploadModal); uploadModal.modal('show'); - uploadModal.on('hidden.bs.modal', function () { + uploadModal.on('hidden.bs.modal', function () { uploadModal.remove(); }); @@ -74,15 +74,15 @@ define('pictureCropper', ['translator', 'cropper'], function (translator, croppe socketData.imageData = imageData; socket.emit(data.socketMethod, socketData, function (err, imageData) { - if (err) { - cropperModal.find('#upload-progress-box').hide(); - cropperModal.find('.upload-btn').removeClass('disabled'); - cropperModal.find('.crop-btn').removeClass('disabled'); - return app.alertError(err.message); - } - - callback(imageData.url); - cropperModal.modal('hide'); + if (err) { + cropperModal.find('#upload-progress-box').hide(); + cropperModal.find('.upload-btn').removeClass('disabled'); + cropperModal.find('.crop-btn').removeClass('disabled'); + return app.alertError(err.message); + } + + callback(imageData.url); + cropperModal.modal('hide'); }); }); diff --git a/public/src/modules/uploader.js b/public/src/modules/uploader.js index 1b56dbb4b8..aca2460ee5 100644 --- a/public/src/modules/uploader.js +++ b/public/src/modules/uploader.js @@ -26,7 +26,7 @@ define('uploader', ['translator'], function (translator) { uploadModal = $(uploadModal); uploadModal.modal('show'); - uploadModal.on('hidden.bs.modal', function () { + uploadModal.on('hidden.bs.modal', function () { uploadModal.remove(); }); diff --git a/public/src/widgets.js b/public/src/widgets.js index 5c950563f0..f5f667d2a7 100644 --- a/public/src/widgets.js +++ b/public/src/widgets.js @@ -29,7 +29,7 @@ } }); - $.get(config.relative_path + '/api/widgets/render' + '?' + config['cache-buster'], { + $.get(config.relative_path + '/api/widgets/render?' + config['cache-buster'], { locations: widgetLocations, template: template + '.tpl', url: url, diff --git a/src/categories/topics.js b/src/categories/topics.js index ea719651fb..a346307e9c 100644 --- a/src/categories/topics.js +++ b/src/categories/topics.js @@ -36,7 +36,7 @@ module.exports = function (Categories) { }; Categories.getTopicIds = function (cid, set, reverse, start, stop, callback) { - var pinnedTids; + var pinnedTids; var pinnedCount; var totalPinnedCount; diff --git a/src/controllers/accounts/settings.js b/src/controllers/accounts/settings.js index 974e20c0dc..0644dad9e8 100644 --- a/src/controllers/accounts/settings.js +++ b/src/controllers/accounts/settings.js @@ -115,9 +115,9 @@ settingsController.get = function (req, res, callback) { } userData.homePageRoutes.push({ - route: 'custom', - name: 'Custom', - selected: isCustom, + route: 'custom', + name: 'Custom', + selected: isCustom, }); userData.bootswatchSkinOptions.forEach(function (skin) { diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index c52d616624..defaed80fc 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -362,13 +362,13 @@ module.exports = function (db, module) { var sets = {}; data.forEach(function (set) { - sets[set._key] = sets[set._key] || []; - sets[set._key].push(set.value); + sets[set._key] = sets[set._key] || []; + sets[set._key].push(set.value); }); var returnData = new Array(keys.length); for (var i = 0; i < keys.length; i += 1) { - returnData[i] = sets[keys[i]] || []; + returnData[i] = sets[keys[i]] || []; } callback(null, returnData); }); diff --git a/src/meta/languages.js b/src/meta/languages.js index 30d8d599e9..67bd9fabd5 100644 --- a/src/meta/languages.js +++ b/src/meta/languages.js @@ -39,7 +39,7 @@ function getTranslationTree(callback) { // generate list of languages and namespaces function (plugins, next) { var languages = []; - var namespaces = []; + var namespaces = []; // pull languages and namespaces from paths function extrude(languageDir, paths) { diff --git a/src/posts/recent.js b/src/posts/recent.js index 8936ee3633..320febff19 100644 --- a/src/posts/recent.js +++ b/src/posts/recent.js @@ -50,5 +50,5 @@ module.exports = function (Posts) { next(null, uids); }, ], callback); - }; + }; }; diff --git a/src/search.js b/src/search.js index 8cf54c86be..ffe33c8ef5 100644 --- a/src/search.js +++ b/src/search.js @@ -422,10 +422,10 @@ function getChildrenCids(cids, uid, callback) { childrenCategories.forEach(function (childrens) { categories.flattenCategories(allCategories, childrens); - childrenCids = childrenCids.concat(allCategories.map(function (category) { - return category && category.cid; - })); - }); + childrenCids = childrenCids.concat(allCategories.map(function (category) { + return category && category.cid; + })); + }); callback(null, childrenCids); }); diff --git a/test/mocks/databasemock.js b/test/mocks/databasemock.js index 4c75cb59ff..412a255dc6 100644 --- a/test/mocks/databasemock.js +++ b/test/mocks/databasemock.js @@ -38,27 +38,27 @@ '\n===========================================================\n' + 'Please, add parameters for test database in config.json\n' + 'For example (redis):\n' + - '"test_database": {' + '\n' + - ' "host": "127.0.0.1",' + '\n' + - ' "port": "6379",' + '\n' + - ' "password": "",' + '\n' + - ' "database": "1"' + '\n' + + '"test_database": {\n' + + ' "host": "127.0.0.1",\n' + + ' "port": "6379",\n' + + ' "password": "",\n' + + ' "database": "1"\n' + '}\n' + ' or (mongo):\n' + - '"test_database": {' + '\n' + - ' "host": "127.0.0.1",' + '\n' + - ' "port": "27017",' + '\n' + - ' "password": "",' + '\n' + - ' "database": "1"' + '\n' + + '"test_database": {\n' + + ' "host": "127.0.0.1",\n' + + ' "port": "27017",\n' + + ' "password": "",\n' + + ' "database": "1\n' + + '}\n' + + ' or (mongo) in a replicaset\n' + + '"test_database": {\n' + + ' "host": "127.0.0.1,127.0.0.1,127.0.0.1",\n' + + ' "port": "27017,27018,27019",\n' + + ' "username": "",\n' + + ' "password": "",\n' + + ' "database": "nodebb_test"\n' + '}\n' + - ' or (mongo) in a replicaset' + '\n' + - '"test_database": {' + '\n' + - ' "host": "127.0.0.1,127.0.0.1,127.0.0.1",' + '\n' + - ' "port": "27017,27018,27019",' + '\n' + - ' "username": "",' + '\n' + - ' "password": "",' + '\n' + - ' "database": "nodebb_test"' + '\n' + - '}\n' + '===========================================================' ); winston.error(errorText); diff --git a/test/user.js b/test/user.js index 8eed9d67c7..778385f10b 100644 --- a/test/user.js +++ b/test/user.js @@ -383,9 +383,9 @@ describe('User', function () { io.emit('user.updateProfile', data, function (err, result) { assert.ifError(err); - assert.equal(result.username, 'updatedUserName'); - assert.equal(result.userslug, 'updatedusername'); - assert.equal(result.email, 'updatedEmail@me.com'); + assert.equal(result.username, 'updatedUserName'); + assert.equal(result.userslug, 'updatedusername'); + assert.equal(result.email, 'updatedEmail@me.com'); db.getObject('user:' + uid, function (err, userData) { assert.ifError(err); From 4bb49a717188e9b318f8dcf453666e606c2a758b Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 15:05:36 -0700 Subject: [PATCH 42/60] ESlint no-unused-vars --- .eslintrc | 2 +- Gruntfile.js | 1 - loader.js | 2 +- public/src/admin/advanced/errors.js | 2 +- public/src/admin/advanced/logs.js | 2 +- public/src/admin/appearance/customise.js | 4 ++-- public/src/admin/extend/plugins.js | 29 +++++++++++------------- public/src/admin/extend/rewards.js | 1 - public/src/admin/extend/widgets.js | 2 +- public/src/admin/general/dashboard.js | 2 +- public/src/admin/general/homepage.js | 2 +- public/src/admin/general/navigation.js | 2 +- public/src/admin/manage/category.js | 28 +---------------------- public/src/admin/manage/groups.js | 3 +-- public/src/admin/manage/ip-blacklist.js | 2 +- public/src/admin/manage/registration.js | 4 ++-- public/src/admin/modules/selectable.js | 2 +- public/src/admin/settings/email.js | 2 +- public/src/admin/settings/general.js | 2 +- public/src/client/account/profile.js | 3 +-- public/src/client/account/topics.js | 2 -- public/src/client/categories.js | 1 - public/src/client/category.js | 4 ++-- public/src/client/groups/list.js | 2 -- public/src/client/groups/memberlist.js | 2 +- public/src/client/login.js | 6 ++--- public/src/client/topic/replies.js | 2 +- public/src/installer/install.js | 4 ++-- public/src/modules/iconSelect.js | 2 +- public/src/modules/search.js | 2 +- public/src/modules/settings/array.js | 3 +-- public/src/modules/settings/key.js | 3 +-- public/src/modules/settings/object.js | 3 +-- src/categories/unread.js | 2 -- src/controllers/admin/appearance.js | 2 +- src/controllers/admin/cache.js | 2 +- src/controllers/admin/categories.js | 2 +- src/controllers/admin/groups.js | 3 --- src/controllers/admin/info.js | 2 +- src/controllers/admin/users.js | 2 +- src/controllers/authentication.js | 3 +-- src/controllers/helpers.js | 2 +- src/controllers/index.js | 2 +- src/database/mongo/list.js | 10 ++++---- src/database/mongo/main.js | 8 +++---- src/database/mongo/sets.js | 8 +++---- src/database/redis.js | 1 - src/database/redis/hash.js | 4 ++-- src/database/redis/list.js | 8 +++---- src/database/redis/main.js | 6 ++--- src/database/redis/sets.js | 8 +++---- src/events.js | 2 +- src/meta/dependencies.js | 4 ++-- src/middleware/index.js | 3 +-- src/notifications.js | 3 --- src/plugins.js | 2 +- src/plugins/hooks.js | 2 +- src/plugins/install.js | 2 +- src/privileges/posts.js | 2 -- src/reset.js | 2 +- src/routes/debug.js | 3 +-- src/routes/feeds.js | 2 +- src/socket.io/blacklist.js | 3 --- src/socket.io/topics.js | 3 --- src/topics/fork.js | 3 +-- src/topics/user.js | 4 ---- src/user/bans.js | 2 +- src/user/invite.js | 2 +- test/.eslintrc | 3 +++ test/rewards.js | 4 ++-- 70 files changed, 97 insertions(+), 162 deletions(-) diff --git a/.eslintrc b/.eslintrc index 57105ee349..777f786b71 100644 --- a/.eslintrc +++ b/.eslintrc @@ -62,7 +62,7 @@ "no-mixed-requires": "off", // "brace-style": "off", "max-statements-per-line": "off", - "no-unused-vars": "off", + // "no-unused-vars": "off", // "no-mixed-spaces-and-tabs": "off", // "no-useless-concat": "off", // "require-jsdoc": "off", diff --git a/Gruntfile.js b/Gruntfile.js index cbfba0db6b..3a2a4cd4e7 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -16,7 +16,6 @@ module.exports = function (grunt) { function update(action, filepath, target) { var updateArgs = args.slice(); - var fromFile = ''; var compiling = ''; var time = Date.now(); diff --git a/loader.js b/loader.js index ead0e36125..38009f4691 100644 --- a/loader.js +++ b/loader.js @@ -237,6 +237,6 @@ fs.open(path.join(__dirname, 'config.json'), 'r', function (err) { }); } else { // No config detected, kickstart web installer - var child = require('child_process').fork('app'); + require('child_process').fork('app'); } }); diff --git a/public/src/admin/advanced/errors.js b/public/src/admin/advanced/errors.js index c49cef724e..6356d5690b 100644 --- a/public/src/admin/advanced/errors.js +++ b/public/src/admin/advanced/errors.js @@ -1,7 +1,7 @@ 'use strict'; -define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, translator) { +define('admin/advanced/errors', ['Chart'], function (Chart) { var Errors = {}; Errors.init = function () { diff --git a/public/src/admin/advanced/logs.js b/public/src/admin/advanced/logs.js index 5d13543a40..e756bea7d8 100644 --- a/public/src/admin/advanced/logs.js +++ b/public/src/admin/advanced/logs.js @@ -10,7 +10,7 @@ define('admin/advanced/logs', function () { // Affix menu $('.affix').affix(); - $('.logs').find('button[data-action]').on('click', function (event) { + $('.logs').find('button[data-action]').on('click', function () { var btnEl = $(this); var action = btnEl.attr('data-action'); diff --git a/public/src/admin/appearance/customise.js b/public/src/admin/appearance/customise.js index edad9e8a74..566161e5a9 100644 --- a/public/src/admin/appearance/customise.js +++ b/public/src/admin/appearance/customise.js @@ -15,7 +15,7 @@ define('admin/appearance/customise', ['admin/settings'], function (Settings) { customCSS.setTheme('ace/theme/twilight'); customCSS.getSession().setMode('ace/mode/css'); - customCSS.on('change', function (event) { + customCSS.on('change', function () { app.flags = app.flags || {}; app.flags._unsaved = true; $('#customCSS-holder').val(customCSS.getValue()); @@ -24,7 +24,7 @@ define('admin/appearance/customise', ['admin/settings'], function (Settings) { customHTML.setTheme('ace/theme/twilight'); customHTML.getSession().setMode('ace/mode/html'); - customHTML.on('change', function (event) { + customHTML.on('change', function () { app.flags = app.flags || {}; app.flags._unsaved = true; $('#customHTML-holder').val(customHTML.getValue()); diff --git a/public/src/admin/extend/plugins.js b/public/src/admin/extend/plugins.js index 1419a76555..9622b4fbc0 100644 --- a/public/src/admin/extend/plugins.js +++ b/public/src/admin/extend/plugins.js @@ -71,21 +71,19 @@ define('admin/extend/plugins', ['jqueryui', 'translator'], function (jqueryui, t return; } - require(['semver'], function (semver) { - if (payload.version !== 'latest') { - Plugins.toggleInstall(pluginID, payload.version); - } else if (payload.version === 'latest') { - confirmInstall(pluginID, function (confirm) { - if (confirm) { - Plugins.toggleInstall(pluginID, 'latest'); - } else { - btn.removeAttr('disabled'); - } - }); - } else { - btn.removeAttr('disabled'); - } - }); + if (payload.version !== 'latest') { + Plugins.toggleInstall(pluginID, payload.version); + } else if (payload.version === 'latest') { + confirmInstall(pluginID, function (confirm) { + if (confirm) { + Plugins.toggleInstall(pluginID, 'latest'); + } else { + btn.removeAttr('disabled'); + } + }); + } else { + btn.removeAttr('disabled'); + } }); }); @@ -198,7 +196,6 @@ define('admin/extend/plugins', ['jqueryui', 'translator'], function (jqueryui, t Plugins.toggleInstall = function (pluginID, version, callback) { var btn = $('li[data-plugin-id="' + pluginID + '"] button[data-action="toggleInstall"]'); - var activateBtn = btn.siblings('[data-action="toggleActive"]'); btn.find('i').attr('class', 'fa fa-refresh fa-spin'); socket.emit('admin.plugins.toggleInstall', { diff --git a/public/src/admin/extend/rewards.js b/public/src/admin/extend/rewards.js index 374251166f..fe1322b8e2 100644 --- a/public/src/admin/extend/rewards.js +++ b/public/src/admin/extend/rewards.js @@ -42,7 +42,6 @@ define('admin/extend/rewards', ['translator'], function (translator) { .on('click', '.toggle', function () { var btn = $(this); var disabled = btn.hasClass('btn-success'); - var id = $(this).parents('[data-id]').attr('data-id'); btn.toggleClass('btn-warning').toggleClass('btn-success').translateHtml('[[admin/extend/rewards:' + (disabled ? 'disable' : 'enable') + ']]'); // send disable api call return false; diff --git a/public/src/admin/extend/widgets.js b/public/src/admin/extend/widgets.js index 134efe3864..4394ee9a04 100644 --- a/public/src/admin/extend/widgets.js +++ b/public/src/admin/extend/widgets.js @@ -1,7 +1,7 @@ 'use strict'; -define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { +define('admin/extend/widgets', ['jqueryui'], function () { var Widgets = {}; Widgets.init = function () { diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index ed46203970..10fe6ffc6d 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -24,7 +24,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s realtimeInterval: 1500, }; - $(window).on('action:ajaxify.start', function (ev, data) { + $(window).on('action:ajaxify.start', function () { clearInterval(intervals.rooms); clearInterval(intervals.graphs); diff --git a/public/src/admin/general/homepage.js b/public/src/admin/general/homepage.js index 17e28d8cbb..ca5438c6a1 100644 --- a/public/src/admin/general/homepage.js +++ b/public/src/admin/general/homepage.js @@ -1,7 +1,7 @@ 'use strict'; -define('admin/general/homepage', ['admin/settings'], function (Settings) { +define('admin/general/homepage', ['admin/settings'], function () { function toggleCustomRoute() { if ($('[data-field="homePageRoute"]').val()) { $('#homePageCustom').hide(); diff --git a/public/src/admin/general/navigation.js b/public/src/admin/general/navigation.js index 992c4fcb56..5269c1c2c0 100644 --- a/public/src/admin/general/navigation.js +++ b/public/src/admin/general/navigation.js @@ -1,7 +1,7 @@ 'use strict'; -define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], function (translator, iconSelect, jqueryui) { +define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], function (translator, iconSelect) { var navigation = {}; var available; diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js index e70b858afa..af99bf9748 100644 --- a/public/src/admin/manage/category.js +++ b/public/src/admin/manage/category.js @@ -26,32 +26,6 @@ define('admin/manage/category', [ } } - function save(e) { - e.preventDefault(); - - if (Object.keys(modified_categories).length) { - socket.emit('admin.categories.update', modified_categories, function (err, results) { - if (err) { - return app.alertError(err.message); - } - - if (results && results.length) { - app.flags._unsaved = false; - app.alert({ - title: '[[admin/manage/categories:alert.updated]]', - message: translator.compile( - 'admin/manage/categories:alert.updated-success', - results.join(', ') - ), - type: 'success', - timeout: 2000, - }); - } - }); - modified_categories = {}; - } - } - $('.blockclass, form.category select').each(function () { var $this = $(this); $this.val($this.attr('data-value')); @@ -226,7 +200,7 @@ define('admin/manage/category', [ ajaxify.data.category.tagWhitelist.forEach(function (tag) { tagEl.tagsinput('add', tag); }); - tagEl.on('itemAdded itemRemoved', function (event) { + tagEl.on('itemAdded itemRemoved', function () { modified(tagEl); }); } diff --git a/public/src/admin/manage/groups.js b/public/src/admin/manage/groups.js index 90f46e82c3..71aaac5175 100644 --- a/public/src/admin/manage/groups.js +++ b/public/src/admin/manage/groups.js @@ -32,7 +32,6 @@ define('admin/manage/groups', ['translator'], function (translator) { name: createGroupName.val(), description: $('#create-group-desc').val(), }; - var errorText; socket.emit('admin.groups.create', submitObj, function (err) { if (err) { @@ -62,7 +61,7 @@ define('admin/manage/groups', ['translator'], function (translator) { if (confirm) { socket.emit('groups.delete', { groupName: groupName, - }, function (err, data) { + }, function (err) { if (err) { return app.alertError(err.message); } diff --git a/public/src/admin/manage/ip-blacklist.js b/public/src/admin/manage/ip-blacklist.js index a9cf75d022..0b565325d7 100644 --- a/public/src/admin/manage/ip-blacklist.js +++ b/public/src/admin/manage/ip-blacklist.js @@ -1,7 +1,7 @@ 'use strict'; -define('admin/manage/ip-blacklist', ['translator'], function (translator) { +define('admin/manage/ip-blacklist', [], function () { var Blacklist = {}; Blacklist.init = function () { diff --git a/public/src/admin/manage/registration.js b/public/src/admin/manage/registration.js index 2db0e5c6bf..048aafbf96 100644 --- a/public/src/admin/manage/registration.js +++ b/public/src/admin/manage/registration.js @@ -5,7 +5,7 @@ define('admin/manage/registration', function () { var Registration = {}; Registration.init = function () { - $('.users-list').on('click', '[data-action]', function (ev) { + $('.users-list').on('click', '[data-action]', function () { var parent = $(this).parents('[data-username]'); var action = $(this).attr('data-action'); var username = parent.attr('data-username'); @@ -20,7 +20,7 @@ define('admin/manage/registration', function () { return false; }); - $('.invites-list').on('click', '[data-action]', function (ev) { + $('.invites-list').on('click', '[data-action]', function () { var parent = $(this).parents('[data-invitation-mail][data-invited-by]'); var email = parent.attr('data-invitation-mail'); var invitedBy = parent.attr('data-invited-by'); diff --git a/public/src/admin/modules/selectable.js b/public/src/admin/modules/selectable.js index 80df206333..bd45e6f850 100644 --- a/public/src/admin/modules/selectable.js +++ b/public/src/admin/modules/selectable.js @@ -1,7 +1,7 @@ 'use strict'; -define('admin/modules/selectable', ['jqueryui'], function (jqueryui) { +define('admin/modules/selectable', ['jqueryui'], function () { var selectable = {}; selectable.enable = function (containerEl, targets) { diff --git a/public/src/admin/settings/email.js b/public/src/admin/settings/email.js index 4e75c10fb7..4156073367 100644 --- a/public/src/admin/settings/email.js +++ b/public/src/admin/settings/email.js @@ -1,7 +1,7 @@ 'use strict'; -define('admin/settings/email', ['admin/settings'], function (settings) { +define('admin/settings/email', ['admin/settings'], function () { var module = {}; var emailEditor; diff --git a/public/src/admin/settings/general.js b/public/src/admin/settings/general.js index 2487035a8b..af66449e02 100644 --- a/public/src/admin/settings/general.js +++ b/public/src/admin/settings/general.js @@ -1,7 +1,7 @@ 'use strict'; -define('admin/settings/general', ['admin/settings'], function (Settings) { +define('admin/settings/general', ['admin/settings'], function () { var Module = {}; Module.init = function () { diff --git a/public/src/client/account/profile.js b/public/src/client/account/profile.js index 9f57454e00..2f8a834d36 100644 --- a/public/src/client/account/profile.js +++ b/public/src/client/account/profile.js @@ -4,9 +4,8 @@ define('forum/account/profile', [ 'forum/account/header', 'forum/infinitescroll', - 'translator', 'components', -], function (header, infinitescroll, translator) { +], function (header, infinitescroll) { var Account = {}; var theirid; diff --git a/public/src/client/account/topics.js b/public/src/client/account/topics.js index bdd7626902..340c2e11b9 100644 --- a/public/src/client/account/topics.js +++ b/public/src/client/account/topics.js @@ -3,7 +3,6 @@ define('forum/account/topics', ['forum/account/header', 'forum/infinitescroll'], function (header, infinitescroll) { var AccountTopics = {}; - var template; var set; AccountTopics.init = function () { @@ -13,7 +12,6 @@ define('forum/account/topics', ['forum/account/header', 'forum/infinitescroll'], }; AccountTopics.handleInfiniteScroll = function (_template, _set) { - template = _template; set = _set; if (!config.usePagination) { diff --git a/public/src/client/categories.js b/public/src/client/categories.js index 30b22d5260..ff1dfa3401 100644 --- a/public/src/client/categories.js +++ b/public/src/client/categories.js @@ -35,7 +35,6 @@ define('forum/categories', ['components', 'translator'], function (components, t } var recentPosts = category.find('[component="category/posts"]'); - var insertBefore = recentPosts.first(); parseAndTranslate([post], function (html) { html.hide(); diff --git a/public/src/client/category.js b/public/src/client/category.js index 5b51c2249a..e2dfcd9924 100644 --- a/public/src/client/category.js +++ b/public/src/client/category.js @@ -112,11 +112,11 @@ define('forum/category', [ }); }; - Category.navigatorCallback = function (topIndex, bottomIndex, elementCount) { + Category.navigatorCallback = function (topIndex, bottomIndex) { return bottomIndex; }; - $(window).on('action:ajaxify.contentLoaded', function (ev, data) { + $(window).on('action:ajaxify.contentLoaded', function () { if (ajaxify.data.template.category && ajaxify.data.cid) { var bookmarkIndex = localStorage.getItem('category:' + ajaxify.data.cid + ':bookmark'); var clickedIndex = localStorage.getItem('category:' + ajaxify.data.cid + ':bookmark:clicked'); diff --git a/public/src/client/groups/list.js b/public/src/client/groups/list.js index 8a1bb996b4..882d59eef1 100644 --- a/public/src/client/groups/list.js +++ b/public/src/client/groups/list.js @@ -5,8 +5,6 @@ define('forum/groups/list', ['forum/infinitescroll'], function (infinitescroll) var Groups = {}; Groups.init = function () { - var groupsEl = $('#groups-list'); - infinitescroll.init(Groups.loadMoreGroups); // Group creation diff --git a/public/src/client/groups/memberlist.js b/public/src/client/groups/memberlist.js index a5231817b3..16874b6b79 100644 --- a/public/src/client/groups/memberlist.js +++ b/public/src/client/groups/memberlist.js @@ -1,7 +1,7 @@ 'use strict'; -define('forum/groups/memberlist', ['components', 'forum/infinitescroll'], function (components, infinitescroll) { +define('forum/groups/memberlist', ['components', 'forum/infinitescroll'], function () { var MemberList = {}; var searchInterval; var groupName; diff --git a/public/src/client/login.js b/public/src/client/login.js index bf138c2a25..078b7448f7 100644 --- a/public/src/client/login.js +++ b/public/src/client/login.js @@ -1,7 +1,7 @@ 'use strict'; -define('forum/login', ['translator'], function (translator) { +define('forum/login', [], function () { var Login = {}; Login.init = function () { @@ -35,10 +35,10 @@ define('forum/login', ['translator'], function (translator) { headers: { 'x-csrf-token': config.csrf_token, }, - success: function (data, status) { + success: function (data) { window.location.href = data + '?loggedin'; }, - error: function (data, status) { + error: function (data) { if (data.status === 403 && data.responseText === 'Forbidden') { window.location.href = config.relative_path + '/login?error=csrf-invalid'; } else { diff --git a/public/src/client/topic/replies.js b/public/src/client/topic/replies.js index 3156d44b63..56b5981843 100644 --- a/public/src/client/topic/replies.js +++ b/public/src/client/topic/replies.js @@ -16,7 +16,7 @@ define('forum/topic/replies', ['navigator', 'components', 'forum/topic/posts'], }); } - function onRepliesClicked(button, tid) { + function onRepliesClicked(button) { var post = button.closest('[data-pid]'); var pid = post.data('pid'); var open = button.children('[component="post/replies/open"]'); diff --git a/public/src/installer/install.js b/public/src/installer/install.js index fffc3e62a5..2b789041da 100644 --- a/public/src/installer/install.js +++ b/public/src/installer/install.js @@ -75,7 +75,7 @@ $('document').ready(function () { } } - function validateConfirmPassword(field) { + function validateConfirmPassword() { if ($('[name="admin:password"]').val() !== $('[name="admin:passwordConfirm"]').val()) { parent.addClass('error'); help.html('Passwords do not match.'); @@ -116,7 +116,7 @@ $('document').ready(function () { $.post('/launch', function () { setInterval(function () { - $.get('/admin').done(function (data) { + $.get('/admin').done(function () { window.location = 'admin'; }); }, 750); diff --git a/public/src/modules/iconSelect.js b/public/src/modules/iconSelect.js index 76d457088f..96a38e0df6 100644 --- a/public/src/modules/iconSelect.js +++ b/public/src/modules/iconSelect.js @@ -44,7 +44,7 @@ define('iconSelect', function () { success: { label: 'Select', className: 'btn-primary', - callback: function (confirm) { + callback: function () { var iconClass = $('.bootbox .selected').attr('class'); var categoryIconClass = $('
    ').addClass(iconClass).removeClass('fa').removeClass('selected').attr('class'); diff --git a/public/src/modules/search.js b/public/src/modules/search.js index 65f68af699..1401bf8619 100644 --- a/public/src/modules/search.js +++ b/public/src/modules/search.js @@ -85,7 +85,7 @@ define('search', ['navigator', 'translator'], function (nav, translator) { } }; - Search.queryTopic = function (tid, term, callback) { + Search.queryTopic = function (tid, term) { socket.emit('topics.search', { tid: tid, term: term, diff --git a/public/src/modules/settings/array.js b/public/src/modules/settings/array.js index 6268c8d6c9..9b51aee582 100644 --- a/public/src/modules/settings/array.js +++ b/public/src/modules/settings/array.js @@ -1,7 +1,6 @@ 'use strict'; define('settings/array', function () { - var Settings = null; var SettingsArray; var helper = null; @@ -95,7 +94,7 @@ define('settings/array', function () { SettingsArray = { types: ['array', 'div'], use: function () { - helper = (Settings = this).helper; + helper = this.helper; }, create: function (ignored, tagName) { return helper.createElement(tagName || 'div'); diff --git a/public/src/modules/settings/key.js b/public/src/modules/settings/key.js index eac0f9e3c0..df3ade0a32 100644 --- a/public/src/modules/settings/key.js +++ b/public/src/modules/settings/key.js @@ -1,7 +1,6 @@ 'use strict'; define('settings/key', function () { - var Settings = null; var SettingsKey; var helper = null; var lastKey = null; @@ -182,7 +181,7 @@ define('settings/key', function () { SettingsKey = { types: ['key'], use: function () { - helper = (Settings = this).helper; + helper = this.helper; }, init: function (element) { element.focus(function () { diff --git a/public/src/modules/settings/object.js b/public/src/modules/settings/object.js index e7c88ec585..7e79e54cc3 100644 --- a/public/src/modules/settings/object.js +++ b/public/src/modules/settings/object.js @@ -1,7 +1,6 @@ 'use strict'; define('settings/object', function () { - var Settings = null; var SettingsObject; var helper = null; @@ -57,7 +56,7 @@ define('settings/object', function () { SettingsObject = { types: ['object'], use: function () { - helper = (Settings = this).helper; + helper = this.helper; }, create: function (ignored, tagName) { return helper.createElement(tagName || 'div'); diff --git a/src/categories/unread.js b/src/categories/unread.js index 68cb957fe8..1ef6ee40b5 100644 --- a/src/categories/unread.js +++ b/src/categories/unread.js @@ -1,7 +1,5 @@ - 'use strict'; -var async = require('async'); var db = require('../database'); module.exports = function (Categories) { diff --git a/src/controllers/admin/appearance.js b/src/controllers/admin/appearance.js index ee3232204a..021733d417 100644 --- a/src/controllers/admin/appearance.js +++ b/src/controllers/admin/appearance.js @@ -2,7 +2,7 @@ var appearanceController = {}; -appearanceController.get = function (req, res, next) { +appearanceController.get = function (req, res) { var term = req.params.term ? req.params.term : 'themes'; res.render('admin/appearance/' + term, {}); diff --git a/src/controllers/admin/cache.js b/src/controllers/admin/cache.js index 3dab364893..dce16818f8 100644 --- a/src/controllers/admin/cache.js +++ b/src/controllers/admin/cache.js @@ -2,7 +2,7 @@ var cacheController = {}; -cacheController.get = function (req, res, next) { +cacheController.get = function (req, res) { var postCache = require('../../posts/cache'); var groupCache = require('../../groups').cache; diff --git a/src/controllers/admin/categories.js b/src/controllers/admin/categories.js index d1e7b1ef7c..4a60fc14e2 100644 --- a/src/controllers/admin/categories.js +++ b/src/controllers/admin/categories.js @@ -38,7 +38,7 @@ categoriesController.get = function (req, res, next) { }); }; -categoriesController.getAll = function (req, res, next) { +categoriesController.getAll = function (req, res) { // Categories list will be rendered on client side with recursion, etc. res.render('admin/manage/categories', {}); }; diff --git a/src/controllers/admin/groups.js b/src/controllers/admin/groups.js index 4e4aa64531..5e7dd1e78f 100644 --- a/src/controllers/admin/groups.js +++ b/src/controllers/admin/groups.js @@ -6,12 +6,9 @@ var db = require('../../database'); var groups = require('../../groups'); var meta = require('../../meta'); var pagination = require('../../pagination'); -var helpers = require('../helpers'); - var groupsController = {}; - groupsController.list = function (req, res, next) { var page = parseInt(req.query.page, 10) || 1; var groupsPerPage = 20; diff --git a/src/controllers/admin/info.js b/src/controllers/admin/info.js index 572dcd93c2..88fef98b4b 100644 --- a/src/controllers/admin/info.js +++ b/src/controllers/admin/info.js @@ -13,7 +13,7 @@ var infoController = {}; var info = {}; -infoController.get = function (req, res, next) { +infoController.get = function (req, res) { info = {}; pubsub.publish('sync:node:info:start'); setTimeout(function () { diff --git a/src/controllers/admin/users.js b/src/controllers/admin/users.js index ad10b7365e..54d9ab93de 100644 --- a/src/controllers/admin/users.js +++ b/src/controllers/admin/users.js @@ -15,7 +15,7 @@ var usersController = {}; var userFields = ['uid', 'username', 'userslug', 'email', 'postcount', 'joindate', 'banned', 'reputation', 'picture', 'flags', 'lastonline', 'email:confirmed']; -usersController.search = function (req, res, next) { +usersController.search = function (req, res) { res.render('admin/manage/users', { search_display: '', users: [], diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index e83cb56a33..6a2051d2c9 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -6,7 +6,6 @@ var passport = require('passport'); var nconf = require('nconf'); var validator = require('validator'); var _ = require('underscore'); -var url = require('url'); var db = require('../database'); var meta = require('../meta'); @@ -19,7 +18,7 @@ var sockets = require('../socket.io'); var authenticationController = {}; -authenticationController.register = function (req, res, next) { +authenticationController.register = function (req, res) { var registrationType = meta.config.registrationType || 'normal'; if (registrationType === 'disabled') { diff --git a/src/controllers/helpers.js b/src/controllers/helpers.js index 773b0e6463..5571bfbf62 100644 --- a/src/controllers/helpers.js +++ b/src/controllers/helpers.js @@ -18,7 +18,7 @@ helpers.notAllowed = function (req, res, error) { req: req, res: res, error: error, - }, function (err, data) { + }, function (err) { if (err) { return winston.error(err); } diff --git a/src/controllers/index.js b/src/controllers/index.js index 57e23e069f..04c613be1e 100644 --- a/src/controllers/index.js +++ b/src/controllers/index.js @@ -416,7 +416,7 @@ Controllers.handleURIErrors = function (err, req, res, next) { } }; -Controllers.handleErrors = function (err, req, res, next) { +Controllers.handleErrors = function (err, req, res) { switch (err.code) { case 'EBADCSRFTOKEN': winston.error(req.path + '\n', err.message); diff --git a/src/database/mongo/list.js b/src/database/mongo/list.js index a639ec0d73..0c5e2955e5 100644 --- a/src/database/mongo/list.js +++ b/src/database/mongo/list.js @@ -18,7 +18,7 @@ module.exports = function (db, module) { } if (exists) { - db.collection('objects').update({ _key: key }, { $push: { array: { $each: [value], $position: 0 } } }, { upsert: true, w: 1 }, function (err, res) { + db.collection('objects').update({ _key: key }, { $push: { array: { $each: [value], $position: 0 } } }, { upsert: true, w: 1 }, function (err) { callback(err); }); } else { @@ -33,7 +33,7 @@ module.exports = function (db, module) { return callback(); } value = helpers.valueToString(value); - db.collection('objects').update({ _key: key }, { $push: { array: value } }, { upsert: true, w: 1 }, function (err, res) { + db.collection('objects').update({ _key: key }, { $push: { array: value } }, { upsert: true, w: 1 }, function (err) { callback(err); }); }; @@ -48,7 +48,7 @@ module.exports = function (db, module) { return callback(err); } - db.collection('objects').update({ _key: key }, { $pop: { array: 1 } }, function (err, result) { + db.collection('objects').update({ _key: key }, { $pop: { array: 1 } }, function (err) { callback(err, (value && value.length) ? value[0] : null); }); }); @@ -61,7 +61,7 @@ module.exports = function (db, module) { } value = helpers.valueToString(value); - db.collection('objects').update({ _key: key }, { $pull: { array: value } }, function (err, res) { + db.collection('objects').update({ _key: key }, { $pull: { array: value } }, function (err) { callback(err); }); }; @@ -76,7 +76,7 @@ module.exports = function (db, module) { return callback(err); } - db.collection('objects').update({ _key: key }, { $set: { array: value } }, function (err, res) { + db.collection('objects').update({ _key: key }, { $set: { array: value } }, function (err) { callback(err); }); }); diff --git a/src/database/mongo/main.js b/src/database/mongo/main.js index c4cd9fe752..4ca3bb2cd3 100644 --- a/src/database/mongo/main.js +++ b/src/database/mongo/main.js @@ -1,7 +1,5 @@ 'use strict'; -var winston = require('winston'); - module.exports = function (db, module) { var helpers = module.helpers.mongo; @@ -33,7 +31,7 @@ module.exports = function (db, module) { if (!key) { return callback(); } - db.collection('objects').remove({ _key: key }, function (err, res) { + db.collection('objects').remove({ _key: key }, function (err) { callback(err); }); }; @@ -43,7 +41,7 @@ module.exports = function (db, module) { if (!Array.isArray(keys) || !keys.length) { return callback(); } - db.collection('objects').remove({ _key: { $in: keys } }, function (err, res) { + db.collection('objects').remove({ _key: { $in: keys } }, function (err) { callback(err); }); }; @@ -76,7 +74,7 @@ module.exports = function (db, module) { module.rename = function (oldKey, newKey, callback) { callback = callback || helpers.noop; - db.collection('objects').update({ _key: oldKey }, { $set: { _key: newKey } }, { multi: true }, function (err, res) { + db.collection('objects').update({ _key: oldKey }, { $set: { _key: newKey } }, { multi: true }, function (err) { callback(err); }); }; diff --git a/src/database/mongo/sets.js b/src/database/mongo/sets.js index 54f6458249..18ce2a932a 100644 --- a/src/database/mongo/sets.js +++ b/src/database/mongo/sets.js @@ -24,7 +24,7 @@ module.exports = function (db, module) { }, { upsert: true, w: 1, - }, function (err, res) { + }, function (err) { callback(err); }); }; @@ -54,7 +54,7 @@ module.exports = function (db, module) { } }); } - bulk.execute(function (err, res) { + bulk.execute(function (err) { callback(err); }); }; @@ -69,7 +69,7 @@ module.exports = function (db, module) { array[index] = helpers.valueToString(element); }); - db.collection('objects').update({ _key: key }, { $pullAll: { members: value } }, function (err, res) { + db.collection('objects').update({ _key: key }, { $pullAll: { members: value } }, function (err) { callback(err); }); }; @@ -89,7 +89,7 @@ module.exports = function (db, module) { } }); } - bulk.execute(function (err, res) { + bulk.execute(function (err) { callback(err); }); }; diff --git a/src/database/redis.js b/src/database/redis.js index d076476f20..27394f7463 100644 --- a/src/database/redis.js +++ b/src/database/redis.js @@ -6,7 +6,6 @@ var semver = require('semver'); var session = require('express-session'); var redis; - var connectRedis; var redisClient; module.questions = [ diff --git a/src/database/redis/hash.js b/src/database/redis/hash.js index 2a83630f4b..938beb2971 100644 --- a/src/database/redis/hash.js +++ b/src/database/redis/hash.js @@ -96,13 +96,13 @@ module.exports = function (redisClient, module) { module.deleteObjectField = function (key, field, callback) { callback = callback || function () {}; - redisClient.hdel(key, field, function (err, res) { + redisClient.hdel(key, field, function (err) { callback(err); }); }; module.deleteObjectFields = function (key, fields, callback) { - helpers.multiKeyValues(redisClient, 'hdel', key, fields, function (err, results) { + helpers.multiKeyValues(redisClient, 'hdel', key, fields, function (err) { callback(err); }); }; diff --git a/src/database/redis/list.js b/src/database/redis/list.js index 3323937cbf..fb445573ff 100644 --- a/src/database/redis/list.js +++ b/src/database/redis/list.js @@ -3,14 +3,14 @@ module.exports = function (redisClient, module) { module.listPrepend = function (key, value, callback) { callback = callback || function () {}; - redisClient.lpush(key, value, function (err, res) { + redisClient.lpush(key, value, function (err) { callback(err); }); }; module.listAppend = function (key, value, callback) { callback = callback || function () {}; - redisClient.rpush(key, value, function (err, res) { + redisClient.rpush(key, value, function (err) { callback(err); }); }; @@ -22,14 +22,14 @@ module.exports = function (redisClient, module) { module.listRemoveAll = function (key, value, callback) { callback = callback || function () {}; - redisClient.lrem(key, 0, value, function (err, res) { + redisClient.lrem(key, 0, value, function (err) { callback(err); }); }; module.listTrim = function (key, start, stop, callback) { callback = callback || function () {}; - redisClient.ltrim(key, start, stop, function (err, res) { + redisClient.ltrim(key, start, stop, function (err) { callback(err); }); }; diff --git a/src/database/redis/main.js b/src/database/redis/main.js index 1ab8a7ff13..baca6b0ffe 100644 --- a/src/database/redis/main.js +++ b/src/database/redis/main.js @@ -21,7 +21,7 @@ module.exports = function (redisClient, module) { module.delete = function (key, callback) { callback = callback || function () {}; - redisClient.del(key, function (err, res) { + redisClient.del(key, function (err) { callback(err); }); }; @@ -32,7 +32,7 @@ module.exports = function (redisClient, module) { for (var i = 0; i < keys.length; i += 1) { multi.del(keys[i]); } - multi.exec(function (err, res) { + multi.exec(function (err) { callback(err); }); }; @@ -55,7 +55,7 @@ module.exports = function (redisClient, module) { module.rename = function (oldKey, newKey, callback) { callback = callback || function () {}; - redisClient.rename(oldKey, newKey, function (err, res) { + redisClient.rename(oldKey, newKey, function (err) { callback(err && err.message !== 'ERR no such key' ? err : null); }); }; diff --git a/src/database/redis/sets.js b/src/database/redis/sets.js index 951b2648c9..a5716438e4 100644 --- a/src/database/redis/sets.js +++ b/src/database/redis/sets.js @@ -11,28 +11,28 @@ module.exports = function (redisClient, module) { if (!value.length) { return callback(); } - redisClient.sadd(key, value, function (err, res) { + redisClient.sadd(key, value, function (err) { callback(err); }); }; module.setsAdd = function (keys, value, callback) { callback = callback || function () {}; - helpers.multiKeysValue(redisClient, 'sadd', keys, value, function (err, res) { + helpers.multiKeysValue(redisClient, 'sadd', keys, value, function (err) { callback(err); }); }; module.setRemove = function (key, value, callback) { callback = callback || function () {}; - redisClient.srem(key, value, function (err, res) { + redisClient.srem(key, value, function (err) { callback(err); }); }; module.setsRemove = function (keys, value, callback) { callback = callback || function () {}; - helpers.multiKeysValue(redisClient, 'srem', keys, value, function (err, res) { + helpers.multiKeysValue(redisClient, 'srem', keys, value, function (err) { callback(err); }); }; diff --git a/src/events.js b/src/events.js index a484aa1fef..3c8ea7a252 100644 --- a/src/events.js +++ b/src/events.js @@ -30,7 +30,7 @@ var utils = require('../public/src/utils'); }, ], next); }, - ], function (err, result) { + ], function (err) { callback(err); }); }; diff --git a/src/meta/dependencies.js b/src/meta/dependencies.js index fff0308e83..939f14b674 100644 --- a/src/meta/dependencies.js +++ b/src/meta/dependencies.js @@ -5,7 +5,7 @@ var fs = require('fs'); var async = require('async'); var semver = require('semver'); var winston = require('winston'); -var colors = require('colors'); +require('colors'); var pkg = require('../../package.json'); @@ -47,7 +47,7 @@ module.exports = function (Meta) { next(true); } }); - }, function (ok) { + }, function () { if (depsMissing) { callback(new Error('dependencies-missing')); } else if (depsOutdated) { diff --git a/src/middleware/index.js b/src/middleware/index.js index df11d8a830..ea8e94e518 100644 --- a/src/middleware/index.js +++ b/src/middleware/index.js @@ -10,7 +10,6 @@ var ensureLoggedIn = require('connect-ensure-login'); var toobusy = require('toobusy-js'); var plugins = require('../plugins'); -var languages = require('../languages'); var meta = require('../meta'); var user = require('../user'); var groups = require('../groups'); @@ -181,7 +180,7 @@ middleware.applyBlacklist = function (req, res, next) { }); }; -middleware.processTimeagoLocales = function (req, res, next) { +middleware.processTimeagoLocales = function (req, res) { var fallback = req.path.indexOf('-short') === -1 ? 'jquery.timeago.en.js' : 'jquery.timeago.en-short.js'; var localPath = path.join(__dirname, '../../public/vendor/jquery/timeago/locales', req.path); var exists; diff --git a/src/notifications.js b/src/notifications.js index c2c8f01874..31960dc2f1 100644 --- a/src/notifications.js +++ b/src/notifications.js @@ -373,7 +373,6 @@ var utils = require('../public/src/utils'); Notifications.prune = function () { var week = 604800000; - var numPruned = 0; var cutoffTime = Date.now() - week; @@ -390,8 +389,6 @@ var utils = require('../public/src/utils'); return 'notifications:' + nid; }); - numPruned = nids.length; - async.parallel([ function (next) { db.sortedSetRemove('notifications', nids, next); diff --git a/src/plugins.js b/src/plugins.js index 84673f635f..0b2611ae25 100644 --- a/src/plugins.js +++ b/src/plugins.js @@ -115,7 +115,7 @@ var middleware; Object.keys(Plugins.loadedHooks).forEach(function (hook) { var hooks = Plugins.loadedHooks[hook]; - hooks = hooks.sort(function (a, b) { + hooks.sort(function (a, b) { return a.priority - b.priority; }); }); diff --git a/src/plugins/hooks.js b/src/plugins/hooks.js index 4db26fb560..208eaae1b8 100644 --- a/src/plugins/hooks.js +++ b/src/plugins/hooks.js @@ -44,7 +44,7 @@ module.exports = function (Plugins) { if (parts.length > 2) { parts.pop(); } - var hook = parts.join(':'); + parts.join(':'); } if (data.hook && data.method) { diff --git a/src/plugins/install.js b/src/plugins/install.js index be97ad4a68..1e0fe0838c 100644 --- a/src/plugins/install.js +++ b/src/plugins/install.js @@ -80,7 +80,7 @@ module.exports = function (Plugins) { }, function (active, next) { if (active) { - Plugins.toggleActive(id, function (err, status) { + Plugins.toggleActive(id, function (err) { next(err); }); return; diff --git a/src/privileges/posts.js b/src/privileges/posts.js index 08703ed3f9..8a31ad4129 100644 --- a/src/privileges/posts.js +++ b/src/privileges/posts.js @@ -221,13 +221,11 @@ module.exports = function (privileges) { }; function isPostEditable(pid, uid, callback) { - var tid; async.waterfall([ function (next) { posts.getPostFields(pid, ['tid', 'timestamp'], next); }, function (postData, next) { - tid = postData.tid; var postEditDuration = parseInt(meta.config.postEditDuration, 10); if (postEditDuration && Date.now() - parseInt(postData.timestamp, 10) > postEditDuration * 1000) { return callback(null, { flag: false, message: '[[error:post-edit-duration-expired, ' + meta.config.postEditDuration + ']]' }); diff --git a/src/reset.js b/src/reset.js index a6ed18b32a..f709c4188b 100644 --- a/src/reset.js +++ b/src/reset.js @@ -83,7 +83,7 @@ function resetTheme(themeId, callback) { var meta = require('./meta'); var fs = require('fs'); - fs.access('node_modules/' + themeId + '/package.json', function (err, fd) { + fs.access('node_modules/' + themeId + '/package.json', function (err) { if (err) { winston.warn('[reset] Theme `%s` is not installed on this forum', themeId); callback(new Error('theme-not-found')); diff --git a/src/routes/debug.js b/src/routes/debug.js index 59ec743c00..2ec3f23934 100644 --- a/src/routes/debug.js +++ b/src/routes/debug.js @@ -7,9 +7,8 @@ var user = require('../user'); var categories = require('../categories'); var topics = require('../topics'); var posts = require('../posts'); -var db = require('../database'); -module.exports = function (app, middleware, controllers) { +module.exports = function (app) { var router = express.Router(); router.get('/uid/:uid', function (req, res) { diff --git a/src/routes/feeds.js b/src/routes/feeds.js index 357c7dcc7d..5e3d75c34d 100644 --- a/src/routes/feeds.js +++ b/src/routes/feeds.js @@ -13,7 +13,7 @@ var meta = require('../meta'); var helpers = require('../controllers/helpers'); var privileges = require('../privileges'); -module.exports = function (app, middleware, controllers) { +module.exports = function (app, middleware) { app.get('/topic/:topic_id.rss', middleware.maintenanceMode, generateForTopic); app.get('/category/:category_id.rss', middleware.maintenanceMode, generateForCategory); app.get('/recent.rss', middleware.maintenanceMode, generateForRecent); diff --git a/src/socket.io/blacklist.js b/src/socket.io/blacklist.js index a05d632f3f..8592a8b901 100644 --- a/src/socket.io/blacklist.js +++ b/src/socket.io/blacklist.js @@ -1,9 +1,6 @@ 'use strict'; -var async = require('async'); -var winston = require('winston'); - var user = require('../user'); var meta = require('../meta'); diff --git a/src/socket.io/topics.js b/src/socket.io/topics.js index 358ff4223f..5eb9ce61dd 100644 --- a/src/socket.io/topics.js +++ b/src/socket.io/topics.js @@ -1,8 +1,5 @@ - 'use strict'; -var async = require('async'); - var topics = require('../topics'); var websockets = require('./index'); var user = require('../user'); diff --git a/src/topics/fork.js b/src/topics/fork.js index 4765727d6f..396ae3d63b 100644 --- a/src/topics/fork.js +++ b/src/topics/fork.js @@ -2,9 +2,8 @@ 'use strict'; var async = require('async'); -var winston = require('winston'); + var db = require('../database'); -var user = require('../user'); var posts = require('../posts'); var privileges = require('../privileges'); var plugins = require('../plugins'); diff --git a/src/topics/user.js b/src/topics/user.js index 2ecefb5c53..d0a8d21426 100644 --- a/src/topics/user.js +++ b/src/topics/user.js @@ -1,10 +1,6 @@ - - 'use strict'; -var async = require('async'); var db = require('../database'); -var posts = require('../posts'); module.exports = function (Topics) { Topics.isOwner = function (tid, uid, callback) { diff --git a/src/user/bans.js b/src/user/bans.js index e98380a573..dc70d012dd 100644 --- a/src/user/bans.js +++ b/src/user/bans.js @@ -1,8 +1,8 @@ 'use strict'; var async = require('async'); + var db = require('../database'); -var plugins = require('../plugins'); module.exports = function (User) { User.ban = function (uid, until, reason, callback) { diff --git a/src/user/invite.js b/src/user/invite.js index 25cadc41bf..7e1b8c9866 100644 --- a/src/user/invite.js +++ b/src/user/invite.js @@ -134,7 +134,7 @@ module.exports = function (User) { db.setRemove('invitation:uid:' + invitedByUid, email, next); }, function deleteInviteKey(next) { - db.delete('invitation:email:' + email, callback); + db.delete('invitation:email:' + email, next); }, ], function (err) { next(err); diff --git a/test/.eslintrc b/test/.eslintrc index d17a3b4940..4dea92c4c9 100644 --- a/test/.eslintrc +++ b/test/.eslintrc @@ -1,5 +1,8 @@ { "env": { "mocha": true + }, + "rules": { + "no-unused-vars": "off" } } diff --git a/test/rewards.js b/test/rewards.js index 67a00fe911..965df4770f 100644 --- a/test/rewards.js +++ b/test/rewards.js @@ -31,10 +31,10 @@ describe('rewards', function () { async.series([ function (next) { - Groups.join('administrators', adminUid, done); + Groups.join('administrators', adminUid, next); }, function (next) { - Groups.join('rewardGroup', adminUid, done); + Groups.join('rewardGroup', adminUid, next); }, ], done); }); From 93f38d4f30707730ac274e158f020ae45c947e85 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 18:06:28 -0700 Subject: [PATCH 43/60] ESlint no-multi-assign and max-nested-callbacks, no-mixed-requires, max-statements-per-line --- .eslintrc | 14 +++++++------- public/src/admin/admin.js | 3 ++- public/src/modules/navigator.js | 3 ++- public/src/modules/translator.js | 3 ++- public/src/utils.js | 3 ++- src/categories/data.js | 6 ++++-- src/categories/recentreplies.js | 4 +++- src/emailer.js | 3 ++- src/events.js | 6 +++++- src/messaging/notifications.js | 3 ++- src/meta/js.js | 3 ++- src/user/data.js | 3 ++- test/groups.js | 2 +- 13 files changed, 36 insertions(+), 20 deletions(-) diff --git a/.eslintrc b/.eslintrc index 777f786b71..3e9ea2e3ae 100644 --- a/.eslintrc +++ b/.eslintrc @@ -26,6 +26,8 @@ "indent": ["error", "tab"], "no-eq-null": "off", "camelcase": "off", + "no-new": "off", + "no-shadow": "off", // ES6 "prefer-rest-params": "off", @@ -33,6 +35,7 @@ "prefer-arrow-callback": "off", "prefer-template": "off", "no-var": "off", + "object-shorthand": "off", // TODO "import/no-unresolved": "off", @@ -41,27 +44,24 @@ "import/newline-after-import": "off", "no-bitwise": "off", "global-require": "off", - "no-multi-assign": "off", "max-len": "off", "no-param-reassign": "off", - "object-shorthand": "off", "no-prototype-builtins": "off", "vars-on-top": "off", "no-restricted-syntax": "off", - "no-shadow": "off", "no-script-url": "off", "no-use-before-define": "off", "default-case": "off", "new-cap": "off", + // "no-multi-assign": "off", // "linebreak-style": "off", // "one-var": "off", // "no-undef": "off", - "no-new": "off", - "max-nested-callbacks": "off", - "no-mixed-requires": "off", + // "max-nested-callbacks": "off", + // "no-mixed-requires": "off", // "brace-style": "off", - "max-statements-per-line": "off", + // "max-statements-per-line": "off", // "no-unused-vars": "off", // "no-mixed-spaces-and-tabs": "off", // "no-useless-concat": "off", diff --git a/public/src/admin/admin.js b/public/src/admin/admin.js index fd0804188f..7ec41a553b 100644 --- a/public/src/admin/admin.js +++ b/public/src/admin/admin.js @@ -108,7 +108,8 @@ var mainTitle; var pageTitle; if (/admin\/general\/dashboard$/.test(url)) { - mainTitle = pageTitle = '[[admin/menu:general/dashboard]]'; + pageTitle = '[[admin/menu:general/dashboard]]'; + mainTitle = pageTitle; } else if (/admin\/plugins\//.test(url)) { mainTitle = fallback; pageTitle = '[[admin/menu:section-plugins]] > ' + mainTitle; diff --git a/public/src/modules/navigator.js b/public/src/modules/navigator.js index 96ed332e98..68c0359755 100644 --- a/public/src/modules/navigator.js +++ b/public/src/modules/navigator.js @@ -75,7 +75,8 @@ define('navigator', ['forum/pagination', 'components'], function (pagination, co navigator.disable = function () { count = 0; index = 1; - navigator.selector = navigator.callback = null; + navigator.callback = null; + navigator.selector = null; $(window).off('scroll', navigator.update); toggle(false); diff --git a/public/src/modules/translator.js b/public/src/modules/translator.js index 4291c82957..ce49f222f5 100644 --- a/public/src/modules/translator.js +++ b/public/src/modules/translator.js @@ -289,7 +289,8 @@ warn('[translator] Parameter `namespace` is ' + namespace + (namespace === '' ? '(empty string)' : '')); translation = Promise.resolve({}); } else { - translation = this.translations[namespace] = this.translations[namespace] || this.load(this.lang, namespace).catch(function () { return {}; }); + this.translations[namespace] = this.translations[namespace] || this.load(this.lang, namespace).catch(function () { return {}; }); + translation = this.translations[namespace]; } if (key) { diff --git a/public/src/utils.js b/public/src/utils.js index 1506f296e2..171e3d86db 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -22,7 +22,7 @@ } - module.exports = utils = { + utils = { generateUUID: function () { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = Math.random() * 16 | 0; @@ -447,6 +447,7 @@ }, }; + module.exports = utils; if (typeof window !== 'undefined') { window.utils = module.exports; } diff --git a/src/categories/data.js b/src/categories/data.js index 06bd3acfe9..25b7021610 100644 --- a/src/categories/data.js +++ b/src/categories/data.js @@ -45,11 +45,13 @@ module.exports = function (Categories) { category.disabled = category.hasOwnProperty('disabled') ? parseInt(category.disabled, 10) === 1 : undefined; category.icon = category.icon || 'hidden'; if (category.hasOwnProperty('post_count')) { - category.post_count = category.totalPostCount = category.post_count || 0; + category.post_count = category.post_count || 0; + category.totalPostCount = category.post_count; } if (category.hasOwnProperty('topic_count')) { - category.topic_count = category.totalTopicCount = category.topic_count || 0; + category.topic_count = category.topic_count || 0; + category.totalTopicCount = category.topic_count; } if (category.image) { diff --git a/src/categories/recentreplies.js b/src/categories/recentreplies.js index d516f4f035..c38fec527e 100644 --- a/src/categories/recentreplies.js +++ b/src/categories/recentreplies.js @@ -131,7 +131,9 @@ module.exports = function (Categories) { if (teaser) { teaser.cid = topicData[index].cid; teaser.parentCid = parseInt(parentCids[teaser.cid], 10) || 0; - teaser.tid = teaser.uid = teaser.user.uid = undefined; + teaser.tid = undefined; + teaser.uid = undefined; + teaser.user.uid = undefined; teaser.topic = { slug: topicData[index].slug, title: validator.escape(String(topicData[index].title)), diff --git a/src/emailer.js b/src/emailer.js index 09b58a20c3..95ffbdceba 100644 --- a/src/emailer.js +++ b/src/emailer.js @@ -29,7 +29,7 @@ var fallbackTransport; // Enable Gmail transport if enabled in ACP if (parseInt(meta.config['email:GmailTransport:enabled'], 10) === 1) { - fallbackTransport = transports.gmail = nodemailer.createTransport(smtpTransport({ + transports.gmail = nodemailer.createTransport(smtpTransport({ host: 'smtp.gmail.com', port: 465, secure: true, @@ -38,6 +38,7 @@ var fallbackTransport; pass: meta.config['email:GmailTransport:pass'], }, })); + fallbackTransport = transports.gmail; } else { fallbackTransport = transports.sendmail; } diff --git a/src/events.js b/src/events.js index 3c8ea7a252..ab2864bc23 100644 --- a/src/events.js +++ b/src/events.js @@ -61,7 +61,11 @@ var utils = require('../public/src/utils'); } }); var e = utils.merge(event); - e.eid = e.uid = e.type = e.ip = e.user = undefined; + e.eid = undefined; + e.uid = undefined; + e.type = undefined; + e.ip = undefined; + e.user = undefined; event.jsonString = JSON.stringify(e, null, 4); event.timestampISO = new Date(parseInt(event.timestamp, 10)).toUTCString(); }); diff --git a/src/messaging/notifications.js b/src/messaging/notifications.js index 3a333b2ffd..674fa77c3a 100644 --- a/src/messaging/notifications.js +++ b/src/messaging/notifications.js @@ -36,9 +36,10 @@ module.exports = function (Messaging) { queueObj.message.content += '\n' + messageObj.content; clearTimeout(queueObj.timeout); } else { - queueObj = Messaging.notifyQueue[fromUid + ':' + roomId] = { + queueObj = { message: messageObj, }; + Messaging.notifyQueue[fromUid + ':' + roomId] = queueObj; } queueObj.timeout = setTimeout(function () { diff --git a/src/meta/js.js b/src/meta/js.js index f028717ba7..18701349f8 100644 --- a/src/meta/js.js +++ b/src/meta/js.js @@ -133,7 +133,8 @@ module.exports = function (Meta) { winston.verbose('[meta/js] Minifying ' + target); var forkProcessParams = setupDebugging(); - var minifier = Meta.js.minifierProc = fork('minifier.js', [], forkProcessParams); + var minifier = fork('minifier.js', [], forkProcessParams); + Meta.js.minifierProc = minifier; Meta.js.target[target] = {}; diff --git a/src/user/data.js b/src/user/data.js index 3a7ee731aa..443de8e7aa 100644 --- a/src/user/data.js +++ b/src/user/data.js @@ -116,7 +116,8 @@ module.exports = function (User) { } if (user.picture && user.picture === user.uploadedpicture) { - user.picture = user.uploadedpicture = user.picture.startsWith('http') ? user.picture : nconf.get('relative_path') + user.picture; + user.uploadedpicture = user.picture.startsWith('http') ? user.picture : nconf.get('relative_path') + user.picture; + user.picture = user.uploadedpicture; } else if (user.uploadedpicture) { user.uploadedpicture = user.uploadedpicture.startsWith('http') ? user.uploadedpicture : nconf.get('relative_path') + user.uploadedpicture; } diff --git a/test/groups.js b/test/groups.js index 8e70341e00..d2f2df8425 100644 --- a/test/groups.js +++ b/test/groups.js @@ -794,7 +794,7 @@ describe('Groups', function () { helpers.uploadFile(nconf.get('url') + '/api/groups/uploadpicture', logoPath, { params: JSON.stringify({ groupName: 'Test' }) }, jar, csrf_token, function (err, res, body) { assert.ifError(err); assert.equal(res.statusCode, 500); - assert.equal(body.error, '[[error:no-privileges]]'); + assert(/\[\[error:no-privileges\]\]/.test(body)); done(); }); }); From b227297ef3ead37df3681a8d7d84b463cc3902aa Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sat, 18 Feb 2017 18:55:33 -0700 Subject: [PATCH 44/60] ESlint no-use-before-define --- .eslintrc | 8 ++++---- public/src/admin/general/dashboard.js | 5 ++++- public/src/admin/manage/categories.js | 20 ++++++++++---------- public/src/admin/manage/category.js | 16 ++++++++-------- public/src/admin/manage/groups.js | 4 ++-- public/src/ajaxify.js | 18 +++++++++--------- public/src/app.js | 2 +- public/src/client/topic/postTools.js | 6 +++--- public/src/overrides.js | 2 +- public/src/sockets.js | 2 +- src/plugins/load.js | 4 ++-- 11 files changed, 45 insertions(+), 42 deletions(-) diff --git a/.eslintrc b/.eslintrc index 3e9ea2e3ae..3c2579b8fc 100644 --- a/.eslintrc +++ b/.eslintrc @@ -28,6 +28,9 @@ "camelcase": "off", "no-new": "off", "no-shadow": "off", + "no-use-before-define": ["error", "nofunc"], + "no-prototype-builtins": "off", + "new-cap": "off", // ES6 "prefer-rest-params": "off", @@ -36,6 +39,7 @@ "prefer-template": "off", "no-var": "off", "object-shorthand": "off", + "vars-on-top": "off", // TODO "import/no-unresolved": "off", @@ -46,13 +50,9 @@ "global-require": "off", "max-len": "off", "no-param-reassign": "off", - "no-prototype-builtins": "off", - "vars-on-top": "off", "no-restricted-syntax": "off", "no-script-url": "off", - "no-use-before-define": "off", "default-case": "off", - "new-cap": "off", // "no-multi-assign": "off", // "linebreak-style": "off", diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index 10fe6ffc6d..363311c9f9 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -24,6 +24,8 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s realtimeInterval: 1500, }; + var usedTopicColors = []; + $(window).on('action:ajaxify.start', function () { clearInterval(intervals.rooms); clearInterval(intervals.graphs); @@ -127,8 +129,8 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s }; var topicColors = ['#bf616a', '#5B90BF', '#d08770', '#ebcb8b', '#a3be8c', '#96b5b4', '#8fa1b3', '#b48ead', '#ab7967', '#46BFBD']; - var usedTopicColors = []; + /* eslint-disable */ // from chartjs.org function lighten(col, amt) { var usePound = false; @@ -157,6 +159,7 @@ define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (s return (usePound ? '#' : '') + (g | (b << 8) | (r << 16)).toString(16); } + /* eslint-enable */ function setupGraphs() { var trafficCanvas = document.getElementById('analytics-traffic'); diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js index 772af419fe..6434a25aed 100644 --- a/public/src/admin/manage/categories.js +++ b/public/src/admin/manage/categories.js @@ -42,16 +42,6 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri templates.parse('admin/partials/categories/create', { categories: categories, }, function (html) { - function submit() { - var formData = modal.find('form').serializeObject(); - formData.description = ''; - formData.icon = 'fa-comments'; - - Categories.create(formData); - modal.modal('hide'); - return false; - } - var modal = bootbox.dialog({ title: '[[admin/manage/categories:alert.create]]', message: html, @@ -64,6 +54,16 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri }, }); + function submit() { + var formData = modal.find('form').serializeObject(); + formData.description = ''; + formData.icon = 'fa-comments'; + + Categories.create(formData); + modal.modal('hide'); + return false; + } + modal.find('form').on('submit', submit); }); }); diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js index af99bf9748..22fc5d77ec 100644 --- a/public/src/admin/manage/category.js +++ b/public/src/admin/manage/category.js @@ -221,7 +221,7 @@ define('admin/manage/category', [ if (confirm) { Category.setPrivilege(member, privilege, state, checkboxEl); } else { - checkboxEl.prop('checked', checkboxEl.prop('checked') ^ 1); + checkboxEl.prop('checked', !checkboxEl.prop('checked')); } }); } else { @@ -427,13 +427,6 @@ define('admin/manage/category', [ categories: categories, }, function (html) { translator.translate(html, function (html) { - function submit() { - var formData = modal.find('form').serializeObject(); - callback(formData['select-cid']); - modal.modal('hide'); - return false; - } - var modal = bootbox.dialog({ title: 'Select a Category', message: html, @@ -446,6 +439,13 @@ define('admin/manage/category', [ }, }); + function submit() { + var formData = modal.find('form').serializeObject(); + callback(formData['select-cid']); + modal.modal('hide'); + return false; + } + modal.find('form').on('submit', submit); }); }); diff --git a/public/src/admin/manage/groups.js b/public/src/admin/manage/groups.js index 71aaac5175..5aa7b969b7 100644 --- a/public/src/admin/manage/groups.js +++ b/public/src/admin/manage/groups.js @@ -76,6 +76,8 @@ define('admin/manage/groups', ['translator'], function (translator) { }; function handleSearch() { + var queryEl = $('#group-search'); + function doSearch() { if (!queryEl.val()) { return ajaxify.refresh(); @@ -103,8 +105,6 @@ define('admin/manage/groups', ['translator'], function (translator) { }); } - var queryEl = $('#group-search'); - queryEl.on('keyup', function () { if (intervalId) { clearTimeout(intervalId); diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index c6d04ade07..12ebff1540 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -1,7 +1,7 @@ 'use strict'; -var ajaxify = ajaxify || {}; +var ajaxify = window.ajaxify || {}; $(document).ready(function () { var location = document.location || window.location; @@ -193,14 +193,14 @@ $(document).ready(function () { } ajaxify.end = function (url, tpl_url) { + var count = 2; + function done() { count -= 1; if (count === 0) { $(window).trigger('action:ajaxify.end', { url: url, tpl_url: tpl_url, title: ajaxify.data.title }); } } - var count = 2; - ajaxify.loadScript(tpl_url, done); ajaxify.widgets.render(tpl_url, url, done); @@ -343,6 +343,12 @@ $(document).ready(function () { // Enhancing all anchors to ajaxify... $(document.body).on('click', 'a', function (e) { var _self = this; + if (this.target !== '' || (this.protocol !== 'http:' && this.protocol !== 'https:')) { + return; + } + + var internalLink = utils.isInternalURI(this, window.location, RELATIVE_PATH); + var process = function () { if (!e.ctrlKey && !e.shiftKey && !e.metaKey && e.which === 1) { if (internalLink) { @@ -366,12 +372,6 @@ $(document).ready(function () { } }; - if (this.target !== '' || (this.protocol !== 'http:' && this.protocol !== 'https:')) { - return; - } - - var internalLink = utils.isInternalURI(this, window.location, RELATIVE_PATH); - if ($(this).attr('data-ajaxify') === 'false') { if (!internalLink) { return; diff --git a/public/src/app.js b/public/src/app.js index 8df3941ddb..7112d281da 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -1,7 +1,7 @@ 'use strict'; -var app = app || {}; +var app = window.app || {}; app.isFocused = true; app.currentRoom = null; diff --git a/public/src/client/topic/postTools.js b/public/src/client/topic/postTools.js index 5753380171..e012b20186 100644 --- a/public/src/client/topic/postTools.js +++ b/public/src/client/topic/postTools.js @@ -230,6 +230,9 @@ define('forum/topic/postTools', [ var selectedNode = getSelectedNode(); showStaleWarning(function () { + var username = getUserName(button); + var toPid = getData(button, 'data-pid'); + function quote(text) { $(window).trigger('action:composer.addQuote', { tid: tid, @@ -240,9 +243,6 @@ define('forum/topic/postTools', [ }); } - var username = getUserName(button); - var toPid = getData(button, 'data-pid'); - if (selectedNode.text && toPid && toPid === selectedNode.pid) { return quote(selectedNode.text); } diff --git a/public/src/overrides.js b/public/src/overrides.js index 144fb63ef3..b74d93efba 100644 --- a/public/src/overrides.js +++ b/public/src/overrides.js @@ -1,7 +1,7 @@ 'use strict'; -var overrides = overrides || {}; +var overrides = window.overrides || {}; if (typeof window !== 'undefined') { (function ($) { diff --git a/public/src/sockets.js b/public/src/sockets.js index 248ce498aa..6b22ce9ac9 100644 --- a/public/src/sockets.js +++ b/public/src/sockets.js @@ -1,7 +1,7 @@ 'use strict'; -var app = app || {}; +var app = window.app || {}; var socket; app.isConnected = false; diff --git a/src/plugins/load.js b/src/plugins/load.js index 33659e714f..49e4b26e2a 100644 --- a/src/plugins/load.js +++ b/src/plugins/load.js @@ -148,6 +148,8 @@ module.exports = function (Plugins) { } function mapStaticDirectories(pluginData, pluginPath, callback) { + var validMappedPath = /^[\w\-_]+$/; + function mapStaticDirs(mappedPath, callback) { if (Plugins.staticDirs[mappedPath]) { winston.warn('[plugins/' + pluginData.id + '] Mapped path (' + mappedPath + ') already specified!'); @@ -170,8 +172,6 @@ module.exports = function (Plugins) { } } - var validMappedPath = /^[\w\-_]+$/; - pluginData.staticDirs = pluginData.staticDirs || {}; var dirs = Object.keys(pluginData.staticDirs); From 3e562ceb83c027d1a934355d6cac9452b840ca34 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Sun, 19 Feb 2017 16:37:00 -0700 Subject: [PATCH 45/60] Update CONTRIBUTING.md --- .github/CONTRIBUTING.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 5098d7d39a..6d5e4f1201 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,6 +1,10 @@ # Submitting a Pull Request to NodeBB? -First of all, thank you! Please consider this [style guide](https://docs.nodebb.org/en/latest/contributing/style-guide.html) when submitting your changes. Also, please join our [community](https://community.nodebb.org) to meet other NodeBB developers and designers :) +First of all, thank you! Before submission, please run `npm test` to lint and run the automated NodeBB tests. If everything passes, you're good to go. If you have any errors, please fix them and re-run `npm test` to make sure there aren't any others. + +## Styleguide and linting + +NodeBB mostly conforms to the [AirBnB Javascript style guide](https://github.com/airbnb/javascript#readme). If you're running into a lot of ESlint errors, you may want to install an editor plugin to display them in real time. ## Contributor License Agreement @@ -51,12 +55,13 @@ $ git rev-parse HEAD If you have downloaded the `.zip` or `.tar.gz` packages from GitHub (or elsewhere), please let us know. ## Provide theme versions if issue is related to the theme/display +Use `npm ls` to list the versions of the theme you're using. In this example, we're running the Persona theme, which depends on the Vanilla theme. ``` bash -$ npm ls nodebb-theme-vanilla nodebb-theme-lavender -nodebb@0.7.0-dev /home/julian/Projects/nodebb/forum -├── nodebb-theme-lavender@0.2.13 -└── nodebb-theme-vanilla@0.2.35 +$ npm ls nodebb-theme-vanilla nodebb-theme-persona +nodebb@1.4.3 /path/to/nodebb ++-- nodebb-theme-persona@4.2.4 +`-- nodebb-theme-vanilla@5.2.0 ``` ## Attempt to use `git bisect` From b4a32ee96f3bfa616f1e9e4d9fdabd06f4fecdf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 23 Feb 2017 22:42:45 +0300 Subject: [PATCH 46/60] style changes --- src/topics/posts.js | 262 ++++++++++++++++++++++---------------------- 1 file changed, 133 insertions(+), 129 deletions(-) diff --git a/src/topics/posts.js b/src/topics/posts.js index aadf6bd76b..97b6f71162 100644 --- a/src/topics/posts.js +++ b/src/topics/posts.js @@ -28,23 +28,23 @@ module.exports = function (Topics) { }; Topics.getTopicPosts = function (tid, set, start, stop, uid, reverse, callback) { - callback = callback || function () {}; - async.parallel({ - posts: function (next) { - posts.getPostsFromSet(set, start, stop, uid, reverse, next); + async.waterfall([ + function (next) { + async.parallel({ + posts: function (next) { + posts.getPostsFromSet(set, start, stop, uid, reverse, next); + }, + postCount: function (next) { + Topics.getTopicField(tid, 'postcount', next); + } + }, next); }, - postCount: function (next) { - Topics.getTopicField(tid, 'postcount', next); - } - }, function (err, results) { - if (err) { - return callback(err); - } - - Topics.calculatePostIndices(results.posts, start, stop, results.postCount, reverse); + function (results, next) { + Topics.calculatePostIndices(results.posts, start, stop, results.postCount, reverse); - Topics.addPostData(results.posts, uid, callback); - }); + Topics.addPostData(results.posts, uid, next); + } + ], callback); }; Topics.addPostData = function (postData, uid, callback) { @@ -59,88 +59,82 @@ module.exports = function (Topics) { return callback(null, []); } - async.parallel({ - bookmarks: function (next) { - posts.hasBookmarked(pids, uid, next); - }, - voteData: function (next) { - posts.getVoteStatusByPostIDs(pids, uid, next); - }, - userData: function (next) { - var uids = []; + function getPostUserData(field, method, callback) { + var uids = []; - for(var i = 0; i < postData.length; ++i) { - if (postData[i] && uids.indexOf(postData[i].uid) === -1) { - uids.push(postData[i].uid); - } + postData.forEach(function (postData) { + if (postData && postData[field] && uids.indexOf(postData[field]) === -1) { + uids.push(postData[field]); } + }); - posts.getUserInfoForPosts(uids, uid, function (err, users) { - if (err) { - return next(err); - } - + async.waterfall([ + function (next) { + method(uids, next); + }, + function (users, next) { var userData = {}; users.forEach(function (user, index) { userData[uids[index]] = user; }); - next(null, userData); - }); - }, - editors: function (next) { - var editors = []; - for(var i = 0; i < postData.length; ++i) { - if (postData[i] && postData[i].editor && editors.indexOf(postData[i].editor) === -1) { - editors.push(postData[i].editor); - } } + ], callback); + } - user.getUsersFields(editors, ['uid', 'username', 'userslug'], function (err, editors) { - if (err) { - return next(err); + async.waterfall([ + function (next) { + async.parallel({ + bookmarks: function (next) { + posts.hasBookmarked(pids, uid, next); + }, + voteData: function (next) { + posts.getVoteStatusByPostIDs(pids, uid, next); + }, + userData: function (next) { + getPostUserData('uid', function (uids, next) { + posts.getUserInfoForPosts(uids, uid, next); + }, next); + + }, + editors: function (next) { + getPostUserData('editor', function (uids, next) { + user.getUsersFields(uids, ['uid', 'username', 'userslug'], next); + }, next); + }, + parents: function (next) { + Topics.addParentPosts(postData, next); + } + }, next); + }, + function (results, next) { + postData.forEach(function (postObj, i) { + if (postObj) { + postObj.deleted = parseInt(postObj.deleted, 10) === 1; + postObj.user = parseInt(postObj.uid, 10) ? results.userData[postObj.uid] : _.clone(results.userData[postObj.uid]); + postObj.editor = postObj.editor ? results.editors[postObj.editor] : null; + postObj.bookmarked = results.bookmarks[i]; + postObj.upvoted = results.voteData.upvotes[i]; + postObj.downvoted = results.voteData.downvotes[i]; + postObj.votes = postObj.votes || 0; + postObj.replies = postObj.replies || 0; + postObj.selfPost = !!parseInt(uid, 10) && parseInt(uid, 10) === parseInt(postObj.uid, 10); + + // Username override for guests, if enabled + if (parseInt(meta.config.allowGuestHandles, 10) === 1 && parseInt(postObj.uid, 10) === 0 && postObj.handle) { + postObj.user.username = validator.escape(String(postObj.handle)); + } } - var editorData = {}; - editors.forEach(function (editor) { - editorData[editor.uid] = editor; - }); - next(null, editorData); }); + plugins.fireHook('filter:topics.addPostData', { + posts: postData, + uid: uid + }, next); }, - parents: function (next) { - Topics.addParentPosts(postData, next); - } - }, function (err, results) { - if (err) { - return callback(err); + function (data, next) { + next(null, data.posts); } - - postData.forEach(function (postObj, i) { - if (postObj) { - postObj.deleted = parseInt(postObj.deleted, 10) === 1; - postObj.user = parseInt(postObj.uid, 10) ? results.userData[postObj.uid] : _.clone(results.userData[postObj.uid]); - postObj.editor = postObj.editor ? results.editors[postObj.editor] : null; - postObj.bookmarked = results.bookmarks[i]; - postObj.upvoted = results.voteData.upvotes[i]; - postObj.downvoted = results.voteData.downvotes[i]; - postObj.votes = postObj.votes || 0; - postObj.replies = postObj.replies || 0; - postObj.selfPost = !!parseInt(uid, 10) && parseInt(uid, 10) === parseInt(postObj.uid, 10); - - // Username override for guests, if enabled - if (parseInt(meta.config.allowGuestHandles, 10) === 1 && parseInt(postObj.uid, 10) === 0 && postObj.handle) { - postObj.user.username = validator.escape(String(postObj.handle)); - } - } - }); - - plugins.fireHook('filter:topics.addPostData', { - posts: postData, - uid: uid - }, function (err, data) { - callback(err, data ? data.posts : null); - }); - }); + ], callback); }; Topics.modifyPostsByPrivilege = function (topicData, topicPrivileges) { @@ -173,7 +167,9 @@ module.exports = function (Topics) { async.apply(posts.getPostsFields, parentPids, ['uid']), function (_parentPosts, next) { parentPosts = _parentPosts; - var parentUids = parentPosts.map(function (postObj) { return parseInt(postObj.uid, 10); }).filter(function (uid, idx, users) { + var parentUids = parentPosts.map(function (postObj) { + return parseInt(postObj.uid, 10); + }).filter(function (uid, idx, users) { return users.indexOf(uid) === idx; }); @@ -232,31 +228,31 @@ module.exports = function (Topics) { var done = false; var latestPid = null; var index = 0; + var pids; async.doWhilst( function (next) { - db.getSortedSetRevRange('tid:' + tid + ':posts', index, index, function (err, pids) { - if (err) { - return next(err); - } - - if (!Array.isArray(pids) || !pids.length) { - done = true; - return next(); - } - - posts.getPostField(pids[0], 'deleted', function (err, deleted) { - if (err) { - return next(err); + async.waterfall([ + function (_next) { + db.getSortedSetRevRange('tid:' + tid + ':posts', index, index, _next); + }, + function (_pids, _next) { + pids = _pids; + if (!Array.isArray(pids) || !pids.length) { + done = true; + return next(); } + posts.getPostField(pids[0], 'deleted', _next); + }, + function (deleted, _next) { isDeleted = parseInt(deleted, 10) === 1; if (!isDeleted) { latestPid = pids[0]; } ++index; - next(); - }); - }); + _next(); + } + ], next); }, function () { return isDeleted && !done; @@ -318,22 +314,24 @@ module.exports = function (Topics) { }; Topics.getPids = function (tid, callback) { - async.parallel({ - mainPid: function (next) { - Topics.getTopicField(tid, 'mainPid', next); + async.waterfall([ + function (next) { + async.parallel({ + mainPid: function (next) { + Topics.getTopicField(tid, 'mainPid', next); + }, + pids: function (next) { + db.getSortedSetRange('tid:' + tid + ':posts', 0, -1, next); + } + }, next); }, - pids: function (next) { - db.getSortedSetRange('tid:' + tid + ':posts', 0, -1, next); - } - }, function (err, results) { - if (err) { - return callback(err); - } - if (results.mainPid) { - results.pids = [results.mainPid].concat(results.pids); + function (results, next) { + if (results.mainPid) { + results.pids = [results.mainPid].concat(results.pids); + } + next(null, results.pids); } - callback(null, results.pids); - }); + ], callback); }; Topics.increasePostCount = function (tid, callback) { @@ -350,12 +348,14 @@ module.exports = function (Topics) { function incrementFieldAndUpdateSortedSet(tid, field, by, set, callback) { callback = callback || function () {}; - db.incrObjectFieldBy('topic:' + tid, field, by, function (err, value) { - if (err) { - return callback(err); + async.waterfall([ + function (next) { + db.incrObjectFieldBy('topic:' + tid, field, by, next); + }, + function (value, next) { + db.sortedSetAdd(set, value, tid, next); } - db.sortedSetAdd(set, value, tid, callback); - }); + ], callback); } Topics.getTitleByPid = function (pid, callback) { @@ -363,21 +363,25 @@ module.exports = function (Topics) { }; Topics.getTopicFieldByPid = function (field, pid, callback) { - posts.getPostField(pid, 'tid', function (err, tid) { - if (err) { - return callback(err); + async.waterfall([ + function (next) { + posts.getPostField(pid, 'tid', next); + }, + function (tid, next) { + Topics.getTopicField(tid, field, next); } - Topics.getTopicField(tid, field, callback); - }); + ], callback); }; Topics.getTopicDataByPid = function (pid, callback) { - posts.getPostField(pid, 'tid', function (err, tid) { - if (err) { - return callback(err); + async.waterfall([ + function (next) { + posts.getPostField(pid, 'tid', next); + }, + function (tid, next) { + Topics.getTopicData(tid, next); } - Topics.getTopicData(tid, callback); - }); + ], callback); }; Topics.getPostCount = function (tid, callback) { From 14398a2d90bd1278abdaec31d8d9a3041d42a85d Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Thu, 23 Feb 2017 14:54:49 -0500 Subject: [PATCH 47/60] up markdown --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9bfacb03d9..cc7276c158 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "nodebb-plugin-dbsearch": "1.0.5", "nodebb-plugin-emoji-extended": "1.1.1", "nodebb-plugin-emoji-one": "1.1.5", - "nodebb-plugin-markdown": "7.1.0", + "nodebb-plugin-markdown": "7.1.1", "nodebb-plugin-mentions": "1.1.3", "nodebb-plugin-soundpack-default": "1.0.0", "nodebb-plugin-spam-be-gone": "0.4.10", From 35ff71c37d71546f29eb9aa2816cc61c282bb964 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 23 Feb 2017 23:05:51 +0300 Subject: [PATCH 48/60] more tests --- test/topics.js | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/test/topics.js b/test/topics.js index 1ade4de261..9f430c995a 100644 --- a/test/topics.js +++ b/test/topics.js @@ -182,12 +182,27 @@ describe('Topic\'s', function () { }); }); - describe('.getTopicData', function () { - it('should not receive errors', function (done) { - topics.getTopicData(newTopic.tid, done); + + it('should not receive errors', function (done) { + topics.getTopicData(newTopic.tid, done); + }); + + it('should get topic title by pid', function (done) { + topics.getTitleByPid(newPost.pid, function (err, title) { + assert.ifError(err); + assert.equal(title, topic.title); + done(); }); }); + it('should get topic data by pid', function (done) { + topics.getTopicDataByPid(newPost.pid, function (err, data) { + assert.ifError(err); + assert.equal(data.tid, newTopic.tid); + done(); + }); + }); + describe('.getTopicWithPosts', function () { it('should get a topic with posts and other data', function (done) { topics.getTopicData(newTopic.tid, function (err, topicData) { From 1d5b3cc73f1275f80fa06d59e412a7c0a0c08491 Mon Sep 17 00:00:00 2001 From: pichalite Date: Thu, 23 Feb 2017 20:45:05 +0000 Subject: [PATCH 49/60] ACP manage tags page UI changes --- public/less/admin/manage/tags.less | 25 +- public/src/admin/manage/tags.js | 24 +- public/vendor/mdl/{mdl.css => material.css} | 2552 ++++++++++++++++--- public/vendor/mdl/mdl.min.css | 1 - src/meta/css.js | 13 +- src/views/admin/header.tpl | 7 +- src/views/admin/manage/tags.tpl | 9 +- 7 files changed, 2184 insertions(+), 447 deletions(-) rename public/vendor/mdl/{mdl.css => material.css} (78%) delete mode 100644 public/vendor/mdl/mdl.min.css diff --git a/public/less/admin/manage/tags.less b/public/less/admin/manage/tags.less index 34075816b1..fc4ea9f2e1 100644 --- a/public/less/admin/manage/tags.less +++ b/public/less/admin/manage/tags.less @@ -25,30 +25,7 @@ } } - .tag-item { - border: solid 1px @gray-light; - background-color: transparent; - color: @gray-light; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: 700; - white-space: nowrap; - } - .tag-topic-count { - border: solid 1px lighten(@brand-primary, 20%); - background-color: lighten(@brand-primary, 20%); - padding: 6px; - font-size: 75%; - font-weight: 700; - white-space: nowrap; - border-left: none; - padding-right: 5px; - padding-left: 5px; - border-width: 1px 1px 2px medium; - - a { - color: #FFFFFF; - } + font-size: 14px; } } \ No newline at end of file diff --git a/public/src/admin/manage/tags.js b/public/src/admin/manage/tags.js index 9984c8182d..9ead604c3f 100644 --- a/public/src/admin/manage/tags.js +++ b/public/src/admin/manage/tags.js @@ -6,7 +6,7 @@ define('admin/manage/tags', [ 'admin/modules/selectable', 'admin/modules/colorpicker' ], function (infinitescroll, selectable, colorpicker) { - var Tags = {}, + var Tags = {}, timeoutId = 0; Tags.init = function () { @@ -61,12 +61,16 @@ define('admin/manage/tags', [ } timeoutId = setTimeout(function () { - socket.emit('topics.searchAndLoadTags', {query: $('#tag-search').val()}, function (err, result) { + socket.emit('topics.searchAndLoadTags', { + query: $('#tag-search').val() + }, function (err, result) { if (err) { return app.alertError(err.message); } - app.parseAndTranslate('admin/manage/tags', 'tags', {tags: result.tags}, function (html) { + app.parseAndTranslate('admin/manage/tags', 'tags', { + tags: result.tags + }, function (html) { $('.tag-list').html(html); utils.makeNumbersHumanReadable(html.find('.human-readable-number')); timeoutId = 0; @@ -86,10 +90,10 @@ define('admin/manage/tags', [ } var firstTag = $(tagsToModify[0]), - title = tagsToModify.length > 1 ? '[[admin/manage/tags:alerts.editing-multiple]]' : '[[admin/manage/tags:alerts.editing-x, ' + firstTag.find('.tag-item').text() + ']]'; + title = tagsToModify.length > 1 ? '[[admin/manage/tags:alerts.editing-multiple]]' : '[[admin/manage/tags:alerts.editing-x, ' + firstTag.find('.tag-item').attr('data-tag') + ']]'; var modal = bootbox.dialog({ - title: title, + title: title, message: firstTag.find('.tag-modal').html(), buttons: { success: { @@ -133,7 +137,9 @@ define('admin/manage/tags', [ tagsToDelete.each(function (index, el) { tags.push($(el).attr('data-tag')); }); - socket.emit('admin.tags.deleteTags', {tags: tags}, function (err) { + socket.emit('admin.tags.deleteTags', { + tags: tags + }, function (err) { if (err) { return app.alertError(err.message); } @@ -155,8 +161,8 @@ define('admin/manage/tags', [ function save(tag) { var data = { tag: tag.attr('data-tag'), - bgColor : tag.find('[data-name="bgColor"]').val(), - color : tag.find('[data-name="color"]').val() + bgColor: tag.find('[data-name="bgColor"]').val(), + color: tag.find('[data-name="color"]').val() }; socket.emit('admin.tags.update', data, function (err) { @@ -169,4 +175,4 @@ define('admin/manage/tags', [ } return Tags; -}); \ No newline at end of file +}); diff --git a/public/vendor/mdl/mdl.css b/public/vendor/mdl/material.css similarity index 78% rename from public/vendor/mdl/mdl.css rename to public/vendor/mdl/material.css index c037532647..74b6b7b71f 100644 --- a/public/vendor/mdl/mdl.css +++ b/public/vendor/mdl/material.css @@ -1,6 +1,6 @@ /** * material-design-lite - Material Design Components in CSS, JS and HTML - * @version v1.0.3 + * @version v1.3.0 * @license Apache-2.0 * @copyright 2015 Google, Inc. * @link https://github.com/google/material-design-lite @@ -62,6 +62,15 @@ * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -113,6 +122,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -161,7 +171,10 @@ /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ /** * Copyright 2015 Google Inc. All Rights Reserved. * @@ -180,6 +193,7 @@ /* Typography */ /* Shadows */ /* Animations */ +/* Dialog */ /** * Copyright 2015 Google Inc. All Rights Reserved. * @@ -250,6 +264,15 @@ * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -301,6 +324,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -349,7 +373,10 @@ /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ /* * What follows is the result of much research on cross-browser styling. * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal, @@ -496,6 +523,12 @@ textarea { These examples override the primary ('mobile first') styles. Modify as content requires. ========================================================================== */ +@media only screen and (min-width: 35em) { + /* Style adjustments for viewports that meet the condition */ } + +@media print, (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 1.25dppx), (min-resolution: 120dpi) { + /* Style adjustments for high resolution devices */ } + /* ========================================================================== Print styles. Inlined to avoid the additional HTTP request: @@ -505,13 +538,11 @@ textarea { *, *:before, *:after, - *:first-letter, - *:first-line { + *:first-letter { background: transparent !important; color: #000 !important; /* Black prints faster: http://www.sanbeiji.com/archives/953 */ - box-shadow: none !important; - text-shadow: none !important; } + box-shadow: none !important; } a, a:visited { text-decoration: underline; } @@ -660,6 +691,15 @@ main { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -711,6 +751,7 @@ main { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -759,7 +800,10 @@ main { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ /** * Copyright 2015 Google Inc. All Rights Reserved. * @@ -778,6 +822,7 @@ main { /* Typography */ /* Shadows */ /* Animations */ +/* Dialog */ /*html, body { font-family: "Helvetica", "Arial", sans-serif; font-size: 14px; @@ -1160,6 +1205,21 @@ ul, ol { .mdl-typography--font-black { font-weight: 900 !important; } +.material-icons { + font-family: 'Material Icons'; + font-weight: normal; + font-style: normal; + font-size: 24px; + line-height: 1; + letter-spacing: normal; + text-transform: none; + display: inline-block; + word-wrap: normal; + -moz-font-feature-settings: 'liga'; + font-feature-settings: 'liga'; + -webkit-font-feature-settings: 'liga'; + -webkit-font-smoothing: antialiased; } + /** * Copyright 2015 Google Inc. All Rights Reserved. * @@ -1215,6 +1275,15 @@ ul, ol { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -1266,6 +1335,7 @@ ul, ol { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -1314,7 +1384,10 @@ ul, ol { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ .mdl-color-text--red { color: rgb(244,67,54) !important; } @@ -3050,6 +3123,15 @@ ul, ol { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -3101,6 +3183,7 @@ ul, ol { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -3149,7 +3232,10 @@ ul, ol { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ .mdl-ripple { background: rgb(0,0,0); border-radius: 50%; @@ -3160,13 +3246,13 @@ ul, ol { position: absolute; top: 0; -webkit-transform: translate(-50%, -50%); - -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); width: 50px; overflow: hidden; } .mdl-ripple.is-animating { - -webkit-transition: -webkit-transform 0.3s cubic-bezier(0, 0, 0.2, 1), width 0.3s cubic-bezier(0, 0, 0.2, 1), height 0.3s cubic-bezier(0, 0, 0.2, 1), opacity 0.6s cubic-bezier(0, 0, 0.2, 1); - transition: transform 0.3s cubic-bezier(0, 0, 0.2, 1), width 0.3s cubic-bezier(0, 0, 0.2, 1), height 0.3s cubic-bezier(0, 0, 0.2, 1), opacity 0.6s cubic-bezier(0, 0, 0.2, 1); } + transition: width 0.3s cubic-bezier(0, 0, 0.2, 1), height 0.3s cubic-bezier(0, 0, 0.2, 1), opacity 0.6s cubic-bezier(0, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0, 0, 0.2, 1); + transition: transform 0.3s cubic-bezier(0, 0, 0.2, 1), width 0.3s cubic-bezier(0, 0, 0.2, 1), height 0.3s cubic-bezier(0, 0, 0.2, 1), opacity 0.6s cubic-bezier(0, 0, 0.2, 1); + transition: transform 0.3s cubic-bezier(0, 0, 0.2, 1), width 0.3s cubic-bezier(0, 0, 0.2, 1), height 0.3s cubic-bezier(0, 0, 0.2, 1), opacity 0.6s cubic-bezier(0, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0, 0, 0.2, 1); } .mdl-ripple.is-visible { opacity: 0.3; } @@ -3225,6 +3311,15 @@ ul, ol { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -3276,6 +3371,7 @@ ul, ol { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -3324,22 +3420,21 @@ ul, ol { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ .mdl-animation--default { - -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .mdl-animation--fast-out-slow-in { - -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .mdl-animation--linear-out-slow-in { - -webkit-transition-timing-function: cubic-bezier(0, 0, 0.2, 1); - transition-timing-function: cubic-bezier(0, 0, 0.2, 1); } + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); } .mdl-animation--fast-out-linear-in { - -webkit-transition-timing-function: cubic-bezier(0.4, 0, 1, 1); - transition-timing-function: cubic-bezier(0.4, 0, 1, 1); } + transition-timing-function: cubic-bezier(0.4, 0, 1, 1); } /** * Copyright 2015 Google Inc. All Rights Reserved. @@ -3396,6 +3491,15 @@ ul, ol { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -3447,6 +3551,7 @@ ul, ol { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -3495,7 +3600,10 @@ ul, ol { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ .mdl-badge { position: relative; white-space: nowrap; @@ -3504,26 +3612,21 @@ ul, ol { margin-right: auto; } .mdl-badge[data-badge]:after { content: attr(data-badge); - display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap; - -webkit-box-pack: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; -webkit-align-content: center; -ms-flex-line-pack: center; align-content: center; - -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; @@ -3545,6 +3648,10 @@ ul, ol { color: rgb(255,64,129); background: rgba(255,255,255,0.2); box-shadow: 0 0 1px gray; } + .mdl-badge.mdl-badge--overlap { + margin-right: 10px; } + .mdl-badge.mdl-badge--overlap:after { + right: -10px; } /** * Copyright 2015 Google Inc. All Rights Reserved. @@ -3601,6 +3708,15 @@ ul, ol { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -3652,6 +3768,7 @@ ul, ol { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -3700,7 +3817,10 @@ ul, ol { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ /** * Copyright 2015 Google Inc. All Rights Reserved. * @@ -3719,6 +3839,7 @@ ul, ol { /* Typography */ /* Shadows */ /* Animations */ +/* Dialog */ .mdl-button { background: transparent; border: none; @@ -3726,8 +3847,9 @@ ul, ol { color: rgb(0,0,0); position: relative; height: 36px; + margin: 0; min-width: 64px; - padding: 0 8px; + padding: 0 16px; display: inline-block; font-family: "Roboto", "Helvetica", "Arial", sans-serif; font-size: 14px; @@ -3736,9 +3858,8 @@ ul, ol { line-height: 1; letter-spacing: 0; overflow: hidden; - will-change: box-shadow, transform; - -webkit-transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1); - transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1); + will-change: box-shadow; + transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1); outline: none; cursor: pointer; text-decoration: none; @@ -3800,7 +3921,6 @@ input.mdl-button[type="submit"] { top: 50%; left: 50%; -webkit-transform: translate(-12px, -12px); - -ms-transform: translate(-12px, -12px); transform: translate(-12px, -12px); line-height: 24px; width: 24px; } @@ -3846,7 +3966,6 @@ input.mdl-button[type="submit"] { top: 50%; left: 50%; -webkit-transform: translate(-12px, -12px); - -ms-transform: translate(-12px, -12px); transform: translate(-12px, -12px); line-height: 24px; width: 24px; } @@ -3890,26 +4009,21 @@ input.mdl-button[type="submit"] { color: rgb(255,255,255); background-color: rgb(255,64,129); } -.mdl-button[disabled][disabled], -.mdl-button.mdl-button--disabled.mdl-button--disabled { +.mdl-button[disabled][disabled], .mdl-button.mdl-button--disabled.mdl-button--disabled { color: rgba(0,0,0, 0.26); - cursor: auto; + cursor: default; background-color: transparent; } -.mdl-button--fab[disabled][disabled], -.mdl-button--fab.mdl-button--disabled.mdl-button--disabled { +.mdl-button--fab[disabled][disabled], .mdl-button--fab.mdl-button--disabled.mdl-button--disabled { background-color: rgba(0,0,0, 0.12); - color: rgba(0,0,0, 0.26); - box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); } + color: rgba(0,0,0, 0.26); } -.mdl-button--raised[disabled][disabled], -.mdl-button--raised.mdl-button--disabled.mdl-button--disabled { +.mdl-button--raised[disabled][disabled], .mdl-button--raised.mdl-button--disabled.mdl-button--disabled { background-color: rgba(0,0,0, 0.12); color: rgba(0,0,0, 0.26); - box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); } + box-shadow: none; } -.mdl-button--colored[disabled][disabled], -.mdl-button--colored.mdl-button--disabled.mdl-button--disabled { +.mdl-button--colored[disabled][disabled], .mdl-button--colored.mdl-button--disabled.mdl-button--disabled { color: rgba(0,0,0, 0.26); } .mdl-button .material-icons { @@ -3970,6 +4084,15 @@ input.mdl-button[type="submit"] { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -4021,6 +4144,7 @@ input.mdl-button[type="submit"] { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -4069,14 +4193,14 @@ input.mdl-button[type="submit"] { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ .mdl-card { - display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; -webkit-flex-direction: column; -ms-flex-direction: column; flex-direction: column; @@ -4101,17 +4225,14 @@ input.mdl-button[type="submit"] { box-sizing: border-box; } .mdl-card__title { - -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; color: rgb(0,0,0); display: block; - display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; - -webkit-box-pack: stretch; -webkit-justify-content: stretch; -ms-flex-pack: stretch; justify-content: stretch; @@ -4120,7 +4241,6 @@ input.mdl-button[type="submit"] { -webkit-perspective-origin: 165px 56px; perspective-origin: 165px 56px; -webkit-transform-origin: 165px 56px; - -ms-transform-origin: 165px 56px; transform-origin: 165px 56px; box-sizing: border-box; } .mdl-card__title.mdl-card--border { @@ -4132,7 +4252,6 @@ input.mdl-button[type="submit"] { align-self: flex-end; color: inherit; display: block; - display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; @@ -4141,22 +4260,23 @@ input.mdl-button[type="submit"] { line-height: normal; overflow: hidden; -webkit-transform-origin: 149px 48px; - -ms-transform-origin: 149px 48px; transform-origin: 149px 48px; margin: 0; } .mdl-card__subtitle-text { font-size: 14px; - color: grey; + color: rgba(0,0,0, 0.54); margin: 0; } .mdl-card__supporting-text { color: rgba(0,0,0, 0.54); - font-size: 13px; + font-size: 1rem; line-height: 18px; overflow: hidden; padding: 16px 16px; width: 90%; } + .mdl-card__supporting-text.mdl-card--border { + border-bottom: 1px solid rgba(0, 0, 0, 0.1); } .mdl-card__actions { font-size: 16px; @@ -4169,7 +4289,6 @@ input.mdl-button[type="submit"] { border-top: 1px solid rgba(0, 0, 0, 0.1); } .mdl-card--expand { - -webkit-box-flex: 1; -webkit-flex-grow: 1; -ms-flex-positive: 1; flex-grow: 1; } @@ -4234,6 +4353,15 @@ input.mdl-button[type="submit"] { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -4285,6 +4413,7 @@ input.mdl-button[type="submit"] { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -4333,7 +4462,10 @@ input.mdl-button[type="submit"] { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ /** * Copyright 2015 Google Inc. All Rights Reserved. * @@ -4352,6 +4484,7 @@ input.mdl-button[type="submit"] { /* Typography */ /* Shadows */ /* Animations */ +/* Dialog */ .mdl-checkbox { position: relative; z-index: 1; @@ -4396,6 +4529,7 @@ input.mdl-button[type="submit"] { z-index: 2; } .mdl-checkbox.is-checked .mdl-checkbox__box-outline { border: 2px solid rgb(63,81,181); } + fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline, .mdl-checkbox.is-disabled .mdl-checkbox__box-outline { border: 2px solid rgba(0,0,0, 0.26); cursor: auto; } @@ -4426,14 +4560,12 @@ input.mdl-button[type="submit"] { -webkit-mask: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMCwwIDAsMSAxLDEgMSwwIDAsMCB6IE0gMC44NTM0Mzc1LDAuMTY3MTg3NSAwLjk1OTY4NzUsMC4yNzMxMjUgMC40MjkzNzUsMC44MDM0Mzc1IDAuMzIzMTI1LDAuOTA5Njg3NSAwLjIxNzE4NzUsMC44MDM0Mzc1IDAuMDQwMzEyNSwwLjYyNjg3NSAwLjE0NjU2MjUsMC41MjA2MjUgMC4zMjMxMjUsMC42OTc1IDAuODUzNDM3NSwwLjE2NzE4NzUgeiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8bWFzayBpZD0ibWFzayIgbWFza1VuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgbWFza0NvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDAsMCAwLDEgMSwxIDEsMCAwLDAgeiBNIDAuODUzNDM3NSwwLjE2NzE4NzUgMC45NTk2ODc1LDAuMjczMTI1IDAuNDI5Mzc1LDAuODAzNDM3NSAwLjMyMzEyNSwwLjkwOTY4NzUgMC4yMTcxODc1LDAuODAzNDM3NSAwLjA0MDMxMjUsMC42MjY4NzUgMC4xNDY1NjI1LDAuNTIwNjI1IDAuMzIzMTI1LDAuNjk3NSAwLjg1MzQzNzUsMC4xNjcxODc1IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiIC8+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxyZWN0CiAgICAgd2lkdGg9IjEiCiAgICAgaGVpZ2h0PSIxIgogICAgIHg9IjAiCiAgICAgeT0iMCIKICAgICBjbGlwLXBhdGg9InVybCgjY2xpcCkiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KPC9zdmc+Cg=="); mask: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMCwwIDAsMSAxLDEgMSwwIDAsMCB6IE0gMC44NTM0Mzc1LDAuMTY3MTg3NSAwLjk1OTY4NzUsMC4yNzMxMjUgMC40MjkzNzUsMC44MDM0Mzc1IDAuMzIzMTI1LDAuOTA5Njg3NSAwLjIxNzE4NzUsMC44MDM0Mzc1IDAuMDQwMzEyNSwwLjYyNjg3NSAwLjE0NjU2MjUsMC41MjA2MjUgMC4zMjMxMjUsMC42OTc1IDAuODUzNDM3NSwwLjE2NzE4NzUgeiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8bWFzayBpZD0ibWFzayIgbWFza1VuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgbWFza0NvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDAsMCAwLDEgMSwxIDEsMCAwLDAgeiBNIDAuODUzNDM3NSwwLjE2NzE4NzUgMC45NTk2ODc1LDAuMjczMTI1IDAuNDI5Mzc1LDAuODAzNDM3NSAwLjMyMzEyNSwwLjkwOTY4NzUgMC4yMTcxODc1LDAuODAzNDM3NSAwLjA0MDMxMjUsMC42MjY4NzUgMC4xNDY1NjI1LDAuNTIwNjI1IDAuMzIzMTI1LDAuNjk3NSAwLjg1MzQzNzUsMC4xNjcxODc1IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiIC8+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxyZWN0CiAgICAgd2lkdGg9IjEiCiAgICAgaGVpZ2h0PSIxIgogICAgIHg9IjAiCiAgICAgeT0iMCIKICAgICBjbGlwLXBhdGg9InVybCgjY2xpcCkiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KPC9zdmc+Cg=="); background: transparent; - -webkit-transition-duration: 0.28s; - transition-duration: 0.28s; - -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - -webkit-transition-property: background; - transition-property: background; } + transition-duration: 0.28s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-property: background; } .mdl-checkbox.is-checked .mdl-checkbox__tick-outline { background: rgb(63,81,181) url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K"); } + fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline, .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline { background: rgba(0,0,0, 0.26) url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K"); } @@ -4443,6 +4575,7 @@ input.mdl-button[type="submit"] { font-size: 16px; line-height: 24px; margin: 0; } + fieldset[disabled] .mdl-checkbox .mdl-checkbox__label, .mdl-checkbox.is-disabled .mdl-checkbox__label { color: rgba(0,0,0, 0.26); cursor: auto; } @@ -4461,8 +4594,10 @@ input.mdl-button[type="submit"] { -webkit-mask-image: -webkit-radial-gradient(circle, white, black); } .mdl-checkbox__ripple-container .mdl-ripple { background: rgb(63,81,181); } + fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container, .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container { cursor: auto; } + fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple, .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple { background: transparent; } @@ -4521,6 +4656,257 @@ input.mdl-button[type="submit"] { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. + */ +/* ========== TYPOGRAPHY ========== */ +/* We're splitting fonts into "preferred" and "performance" in order to optimize + page loading. For important text, such as the body, we want it to load + immediately and not wait for the web font load, whereas for other sections, + such as headers and titles, we're OK with things taking a bit longer to load. + We do have some optional classes and parameters in the mixins, in case you + definitely want to make sure you're using the preferred font and don't mind + the performance hit. + We should be able to improve on this once CSS Font Loading L3 becomes more + widely available. +*/ +/* ========== COLORS ========== */ +/** +* +* Material design color palettes. +* @see http://www.google.com/design/spec/style/color.html +* +**/ +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* ========== Color Palettes ========== */ +/* colors.scss */ +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* ========== IMAGES ========== */ +/* ========== Color & Themes ========== */ +/* ========== Typography ========== */ +/* ========== Components ========== */ +/* ========== Standard Buttons ========== */ +/* ========== Icon Toggles ========== */ +/* ========== Radio Buttons ========== */ +/* ========== Ripple effect ========== */ +/* ========== Layout ========== */ +/* ========== Content Tabs ========== */ +/* ========== Checkboxes ========== */ +/* ========== Switches ========== */ +/* ========== Spinner ========== */ +/* ========== Text fields ========== */ +/* ========== Card ========== */ +/* ========== Sliders ========== */ +/* ========== Progress ========== */ +/* ========== List ========== */ +/* ========== Item ========== */ +/* ========== Dropdown menu ========== */ +/* ========== Tooltips ========== */ +/* ========== Footer ========== */ +/* TEXTFIELD */ +/* SWITCH */ +/* SPINNER */ +/* RADIO */ +/* MENU */ +/* LIST */ +/* LAYOUT */ +/* ICON TOGGLE */ +/* FOOTER */ +/*mega-footer*/ +/*mini-footer*/ +/* CHECKBOX */ +/* CARD */ +/* Card dimensions */ +/* Cover image */ +/* BUTTON */ +/** + * + * Dimensions + * + */ +/* ANIMATION */ +/* PROGRESS */ +/* BADGE */ +/* SHADOWS */ +/* GRID */ +/* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ +/* TOOLTIP */ +/* CHIP */ +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* Typography */ +/* Shadows */ +/* Animations */ +/* Dialog */ +.mdl-chip { + height: 32px; + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + line-height: 32px; + padding: 0 12px; + border: 0; + border-radius: 16px; + background-color: #dedede; + display: inline-block; + color: rgba(0,0,0, 0.87); + margin: 2px 0; + font-size: 0; + white-space: nowrap; } + .mdl-chip__text { + font-size: 13px; + vertical-align: middle; + display: inline-block; } + .mdl-chip__action { + height: 24px; + width: 24px; + background: transparent; + opacity: 0.54; + display: inline-block; + cursor: pointer; + text-align: center; + vertical-align: middle; + padding: 0; + margin: 0 0 0 4px; + font-size: 13px; + text-decoration: none; + color: rgba(0,0,0, 0.87); + border: none; + outline: none; + overflow: hidden; } + .mdl-chip__contact { + height: 32px; + width: 32px; + border-radius: 16px; + display: inline-block; + vertical-align: middle; + margin-right: 8px; + overflow: hidden; + text-align: center; + font-size: 18px; + line-height: 32px; } + .mdl-chip:focus { + outline: 0; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); } + .mdl-chip:active { + background-color: #d6d6d6; } + .mdl-chip--deletable { + padding-right: 4px; } + .mdl-chip--contact { + padding-left: 0; } + +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*------------------------------------* $CONTENTS +\*------------------------------------*/ +/** + * STYLE GUIDE VARIABLES------------------Declarations of Sass variables + * -----Typography + * -----Colors + * -----Textfield + * -----Switch + * -----Spinner + * -----Radio + * -----Menu + * -----List + * -----Layout + * -----Icon toggles + * -----Footer + * -----Column + * -----Checkbox + * -----Card + * -----Button + * -----Animation + * -----Progress + * -----Badge + * -----Shadows + * -----Grid + * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -4572,6 +4958,7 @@ input.mdl-button[type="submit"] { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -4620,7 +5007,10 @@ input.mdl-button[type="submit"] { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ /** * Copyright 2015 Google Inc. All Rights Reserved. * @@ -4639,6 +5029,7 @@ input.mdl-button[type="submit"] { /* Typography */ /* Shadows */ /* Animations */ +/* Dialog */ .mdl-data-table { position: relative; border: 1px solid rgba(0, 0, 0, 0.12); @@ -4653,18 +5044,15 @@ input.mdl-button[type="submit"] { .mdl-data-table tbody tr { position: relative; height: 48px; - -webkit-transition-duration: 0.28s; - transition-duration: 0.28s; - -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - -webkit-transition-property: background-color; - transition-property: background-color; } + transition-duration: 0.28s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-property: background-color; } .mdl-data-table tbody tr.is-selected { background-color: #e0e0e0; } .mdl-data-table tbody tr:hover { background-color: #eeeeee; } .mdl-data-table td, .mdl-data-table th { - padding: 0 18px 0 18px; + padding: 0 18px 12px 18px; text-align: right; } .mdl-data-table td:first-of-type, .mdl-data-table th:first-of-type { padding-left: 24px; } @@ -4672,16 +5060,14 @@ input.mdl-button[type="submit"] { padding-right: 24px; } .mdl-data-table td { position: relative; - vertical-align: top; + vertical-align: middle; height: 48px; border-top: 1px solid rgba(0, 0, 0, 0.12); border-bottom: 1px solid rgba(0, 0, 0, 0.12); padding-top: 12px; box-sizing: border-box; } .mdl-data-table td .mdl-data-table__select { - vertical-align: top; - position: absolute; - left: 24px; } + vertical-align: middle; } .mdl-data-table th { position: relative; vertical-align: bottom; @@ -4695,10 +5081,32 @@ input.mdl-button[type="submit"] { color: rgba(0, 0, 0, 0.54); padding-bottom: 8px; box-sizing: border-box; } - .mdl-data-table th .mdl-data-table__select { - position: absolute; - bottom: 8px; - left: 24px; } + .mdl-data-table th.mdl-data-table__header--sorted-ascending, .mdl-data-table th.mdl-data-table__header--sorted-descending { + color: rgba(0, 0, 0, 0.87); } + .mdl-data-table th.mdl-data-table__header--sorted-ascending:before, .mdl-data-table th.mdl-data-table__header--sorted-descending:before { + font-family: 'Material Icons'; + font-weight: normal; + font-style: normal; + font-size: 24px; + line-height: 1; + letter-spacing: normal; + text-transform: none; + display: inline-block; + word-wrap: normal; + -moz-font-feature-settings: 'liga'; + font-feature-settings: 'liga'; + -webkit-font-feature-settings: 'liga'; + -webkit-font-smoothing: antialiased; + font-size: 16px; + content: "\e5d8"; + margin-right: 5px; + vertical-align: sub; } + .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover, .mdl-data-table th.mdl-data-table__header--sorted-descending:hover { + cursor: pointer; } + .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover:before, .mdl-data-table th.mdl-data-table__header--sorted-descending:hover:before { + color: rgba(0, 0, 0, 0.26); } + .mdl-data-table th.mdl-data-table__header--sorted-descending:before { + content: "\e5db"; } .mdl-data-table__select { width: 16px; } @@ -4761,6 +5169,15 @@ input.mdl-button[type="submit"] { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -4812,6 +5229,7 @@ input.mdl-button[type="submit"] { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -4860,7 +5278,10 @@ input.mdl-button[type="submit"] { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ /** * Copyright 2015 Google Inc. All Rights Reserved. * @@ -4879,31 +5300,257 @@ input.mdl-button[type="submit"] { /* Typography */ /* Shadows */ /* Animations */ -.mdl-mega-footer { - padding: 16px 40px; - color: rgb(158,158,158); - background-color: rgb(66,66,66); } - -.mdl-mega-footer--top-section:after, -.mdl-mega-footer--middle-section:after, -.mdl-mega-footer--bottom-section:after, -.mdl-mega-footer__top-section:after, -.mdl-mega-footer__middle-section:after, -.mdl-mega-footer__bottom-section:after { - content: ''; - display: block; - clear: both; } - -.mdl-mega-footer--left-section, -.mdl-mega-footer__left-section { - margin-bottom: 16px; } - -.mdl-mega-footer--right-section, -.mdl-mega-footer__right-section { - margin-bottom: 16px; } +/* Dialog */ +.mdl-dialog { + border: none; + box-shadow: 0 9px 46px 8px rgba(0, 0, 0, 0.14), 0 11px 15px -7px rgba(0, 0, 0, 0.12), 0 24px 38px 3px rgba(0, 0, 0, 0.2); + width: 280px; } + .mdl-dialog__title { + padding: 24px 24px 0; + margin: 0; + font-size: 2.5rem; } + .mdl-dialog__actions { + padding: 8px 8px 8px 24px; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-direction: row-reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; } + .mdl-dialog__actions > * { + margin-right: 8px; + height: 36px; } + .mdl-dialog__actions > *:first-child { + margin-right: 0; } + .mdl-dialog__actions--full-width { + padding: 0 0 8px 0; } + .mdl-dialog__actions--full-width > * { + height: 48px; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + padding-right: 16px; + margin-right: 0; + text-align: right; } + .mdl-dialog__content { + padding: 20px 24px 24px 24px; + color: rgba(0,0,0, 0.54); } -.mdl-mega-footer--right-section a, -.mdl-mega-footer__right-section a { +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*------------------------------------* $CONTENTS +\*------------------------------------*/ +/** + * STYLE GUIDE VARIABLES------------------Declarations of Sass variables + * -----Typography + * -----Colors + * -----Textfield + * -----Switch + * -----Spinner + * -----Radio + * -----Menu + * -----List + * -----Layout + * -----Icon toggles + * -----Footer + * -----Column + * -----Checkbox + * -----Card + * -----Button + * -----Animation + * -----Progress + * -----Badge + * -----Shadows + * -----Grid + * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. + */ +/* ========== TYPOGRAPHY ========== */ +/* We're splitting fonts into "preferred" and "performance" in order to optimize + page loading. For important text, such as the body, we want it to load + immediately and not wait for the web font load, whereas for other sections, + such as headers and titles, we're OK with things taking a bit longer to load. + We do have some optional classes and parameters in the mixins, in case you + definitely want to make sure you're using the preferred font and don't mind + the performance hit. + We should be able to improve on this once CSS Font Loading L3 becomes more + widely available. +*/ +/* ========== COLORS ========== */ +/** +* +* Material design color palettes. +* @see http://www.google.com/design/spec/style/color.html +* +**/ +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* ========== Color Palettes ========== */ +/* colors.scss */ +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* ========== IMAGES ========== */ +/* ========== Color & Themes ========== */ +/* ========== Typography ========== */ +/* ========== Components ========== */ +/* ========== Standard Buttons ========== */ +/* ========== Icon Toggles ========== */ +/* ========== Radio Buttons ========== */ +/* ========== Ripple effect ========== */ +/* ========== Layout ========== */ +/* ========== Content Tabs ========== */ +/* ========== Checkboxes ========== */ +/* ========== Switches ========== */ +/* ========== Spinner ========== */ +/* ========== Text fields ========== */ +/* ========== Card ========== */ +/* ========== Sliders ========== */ +/* ========== Progress ========== */ +/* ========== List ========== */ +/* ========== Item ========== */ +/* ========== Dropdown menu ========== */ +/* ========== Tooltips ========== */ +/* ========== Footer ========== */ +/* TEXTFIELD */ +/* SWITCH */ +/* SPINNER */ +/* RADIO */ +/* MENU */ +/* LIST */ +/* LAYOUT */ +/* ICON TOGGLE */ +/* FOOTER */ +/*mega-footer*/ +/*mini-footer*/ +/* CHECKBOX */ +/* CARD */ +/* Card dimensions */ +/* Cover image */ +/* BUTTON */ +/** + * + * Dimensions + * + */ +/* ANIMATION */ +/* PROGRESS */ +/* BADGE */ +/* SHADOWS */ +/* GRID */ +/* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ +/* TOOLTIP */ +/* CHIP */ +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* Typography */ +/* Shadows */ +/* Animations */ +/* Dialog */ +.mdl-mega-footer { + padding: 16px 40px; + color: rgb(158,158,158); + background-color: rgb(66,66,66); } + +.mdl-mega-footer--top-section:after, +.mdl-mega-footer--middle-section:after, +.mdl-mega-footer--bottom-section:after, +.mdl-mega-footer__top-section:after, +.mdl-mega-footer__middle-section:after, +.mdl-mega-footer__bottom-section:after { + content: ''; + display: block; + clear: both; } + +.mdl-mega-footer--left-section, +.mdl-mega-footer__left-section { + margin-bottom: 16px; } + +.mdl-mega-footer--right-section, +.mdl-mega-footer__right-section { + margin-bottom: 16px; } + +.mdl-mega-footer--right-section a, +.mdl-mega-footer__right-section a { display: block; margin-bottom: 16px; color: inherit; @@ -4986,21 +5633,27 @@ input.mdl-button[type="submit"] { cursor: pointer; z-index: 1; opacity: 0; } - .mdl-mega-footer--heading-checkbox ~ .mdl-mega-footer--heading:after, - .mdl-mega-footer--heading-checkbox ~ .mdl-mega-footer__heading:after, - .mdl-mega-footer__heading-checkbox ~ .mdl-mega-footer--heading:after, - .mdl-mega-footer__heading-checkbox ~ .mdl-mega-footer__heading:after { + .mdl-mega-footer--heading-checkbox + .mdl-mega-footer--heading:after, + .mdl-mega-footer--heading-checkbox + .mdl-mega-footer__heading:after, + .mdl-mega-footer__heading-checkbox + .mdl-mega-footer--heading:after, + .mdl-mega-footer__heading-checkbox + .mdl-mega-footer__heading:after { font-family: 'Material Icons'; content: '\E5CE'; } -.mdl-mega-footer--heading-checkbox:checked ~ ul, -.mdl-mega-footer__heading-checkbox:checked ~ ul { +.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list, +.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list, +.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list, +.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list, +.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list, +.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list, +.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list, +.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list { display: none; } -.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--heading:after, -.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__heading:after, -.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--heading:after, -.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__heading:after { +.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading:after, +.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading:after, +.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading:after, +.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading:after { font-family: 'Material Icons'; content: '\E5CF'; } @@ -5060,18 +5713,24 @@ input.mdl-button[type="submit"] { .mdl-mega-footer--heading-checkbox, .mdl-mega-footer__heading-checkbox { display: none; } - .mdl-mega-footer--heading-checkbox ~ .mdl-mega-footer--heading:after, - .mdl-mega-footer--heading-checkbox ~ .mdl-mega-footer__heading:after, - .mdl-mega-footer__heading-checkbox ~ .mdl-mega-footer--heading:after, - .mdl-mega-footer__heading-checkbox ~ .mdl-mega-footer__heading:after { - background-image: none; } - .mdl-mega-footer--heading-checkbox:checked ~ ul, - .mdl-mega-footer__heading-checkbox:checked ~ ul { + .mdl-mega-footer--heading-checkbox + .mdl-mega-footer--heading:after, + .mdl-mega-footer--heading-checkbox + .mdl-mega-footer__heading:after, + .mdl-mega-footer__heading-checkbox + .mdl-mega-footer--heading:after, + .mdl-mega-footer__heading-checkbox + .mdl-mega-footer__heading:after { + content: ''; } + .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list, + .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list, + .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list, + .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list, + .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list, + .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list, + .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list, + .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list { display: block; } - .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--heading:after, - .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__heading:after, - .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--heading:after, - .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__heading:after { + .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading:after, + .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading:after, + .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading:after, + .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading:after { content: ''; } } .mdl-mega-footer--bottom-section, @@ -5150,6 +5809,15 @@ input.mdl-button[type="submit"] { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -5201,6 +5869,7 @@ input.mdl-button[type="submit"] { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -5249,16 +5918,17 @@ input.mdl-button[type="submit"] { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ .mdl-mini-footer { - display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-flex-flow: row wrap; -ms-flex-flow: row wrap; flex-flow: row wrap; - -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; @@ -5273,7 +5943,6 @@ input.mdl-button[type="submit"] { .mdl-mini-footer--link-list, .mdl-mini-footer__link-list { - display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; @@ -5300,7 +5969,6 @@ input.mdl-button[type="submit"] { .mdl-mini-footer--left-section, .mdl-mini-footer__left-section { display: inline-block; - -webkit-box-ordinal-group: 1; -webkit-order: 0; -ms-flex-order: 0; order: 0; } @@ -5308,7 +5976,6 @@ input.mdl-button[type="submit"] { .mdl-mini-footer--right-section, .mdl-mini-footer__right-section { display: inline-block; - -webkit-box-ordinal-group: 2; -webkit-order: 1; -ms-flex-order: 1; order: 1; } @@ -5377,6 +6044,15 @@ input.mdl-button[type="submit"] { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -5428,6 +6104,7 @@ input.mdl-button[type="submit"] { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -5476,7 +6153,10 @@ input.mdl-button[type="submit"] { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ .mdl-icon-toggle { position: relative; z-index: 1; @@ -5516,8 +6196,7 @@ input.mdl-button[type="submit"] { text-align: center; background-color: transparent; will-change: background-color; - -webkit-transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1); - transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1); } + transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1); } .mdl-icon-toggle__label.material-icons { line-height: 32px; font-size: 24px; } @@ -5526,8 +6205,7 @@ input.mdl-button[type="submit"] { .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label { color: rgba(0,0,0, 0.26); cursor: auto; - -webkit-transition: none; - transition: none; } + transition: none; } .mdl-icon-toggle.is-focused .mdl-icon-toggle__label { background-color: rgba(0,0,0, 0.12); } .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label { @@ -5607,6 +6285,336 @@ input.mdl-button[type="submit"] { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. + */ +/* ========== TYPOGRAPHY ========== */ +/* We're splitting fonts into "preferred" and "performance" in order to optimize + page loading. For important text, such as the body, we want it to load + immediately and not wait for the web font load, whereas for other sections, + such as headers and titles, we're OK with things taking a bit longer to load. + We do have some optional classes and parameters in the mixins, in case you + definitely want to make sure you're using the preferred font and don't mind + the performance hit. + We should be able to improve on this once CSS Font Loading L3 becomes more + widely available. +*/ +/* ========== COLORS ========== */ +/** +* +* Material design color palettes. +* @see http://www.google.com/design/spec/style/color.html +* +**/ +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* ========== Color Palettes ========== */ +/* colors.scss */ +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* ========== IMAGES ========== */ +/* ========== Color & Themes ========== */ +/* ========== Typography ========== */ +/* ========== Components ========== */ +/* ========== Standard Buttons ========== */ +/* ========== Icon Toggles ========== */ +/* ========== Radio Buttons ========== */ +/* ========== Ripple effect ========== */ +/* ========== Layout ========== */ +/* ========== Content Tabs ========== */ +/* ========== Checkboxes ========== */ +/* ========== Switches ========== */ +/* ========== Spinner ========== */ +/* ========== Text fields ========== */ +/* ========== Card ========== */ +/* ========== Sliders ========== */ +/* ========== Progress ========== */ +/* ========== List ========== */ +/* ========== Item ========== */ +/* ========== Dropdown menu ========== */ +/* ========== Tooltips ========== */ +/* ========== Footer ========== */ +/* TEXTFIELD */ +/* SWITCH */ +/* SPINNER */ +/* RADIO */ +/* MENU */ +/* LIST */ +/* LAYOUT */ +/* ICON TOGGLE */ +/* FOOTER */ +/*mega-footer*/ +/*mini-footer*/ +/* CHECKBOX */ +/* CARD */ +/* Card dimensions */ +/* Cover image */ +/* BUTTON */ +/** + * + * Dimensions + * + */ +/* ANIMATION */ +/* PROGRESS */ +/* BADGE */ +/* SHADOWS */ +/* GRID */ +/* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ +/* TOOLTIP */ +/* CHIP */ +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* Typography */ +/* Shadows */ +/* Animations */ +/* Dialog */ +.mdl-list { + display: block; + padding: 8px 0; + list-style: none; } + +.mdl-list__item { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 16px; + font-weight: 400; + line-height: 24px; + letter-spacing: 0.04em; + line-height: 1; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + min-height: 48px; + box-sizing: border-box; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + padding: 16px; + cursor: default; + color: rgba(0,0,0, 0.87); + overflow: hidden; } + .mdl-list__item .mdl-list__item-primary-content { + -webkit-order: 0; + -ms-flex-order: 0; + order: 0; + -webkit-flex-grow: 2; + -ms-flex-positive: 2; + flex-grow: 2; + text-decoration: none; + box-sizing: border-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; } + .mdl-list__item .mdl-list__item-primary-content .mdl-list__item-icon { + margin-right: 32px; } + .mdl-list__item .mdl-list__item-primary-content .mdl-list__item-avatar { + margin-right: 16px; } + .mdl-list__item .mdl-list__item-secondary-content { + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-flow: column; + -ms-flex-flow: column; + flex-flow: column; + -webkit-align-items: flex-end; + -ms-flex-align: end; + align-items: flex-end; + margin-left: 16px; } + .mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-secondary-action label { + display: inline; } + .mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-secondary-info { + font-size: 12px; + font-weight: 400; + line-height: 1; + letter-spacing: 0; + color: rgba(0,0,0, 0.54); } + .mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-sub-header { + padding: 0 0 0 16px; } + +.mdl-list__item-icon, +.mdl-list__item-icon.material-icons { + height: 24px; + width: 24px; + font-size: 24px; + box-sizing: border-box; + color: rgb(117,117,117); } + +.mdl-list__item-avatar, +.mdl-list__item-avatar.material-icons { + height: 40px; + width: 40px; + box-sizing: border-box; + border-radius: 50%; + background-color: rgb(117,117,117); + font-size: 40px; + color: white; } + +.mdl-list__item--two-line { + height: 72px; } + .mdl-list__item--two-line .mdl-list__item-primary-content { + height: 36px; + line-height: 20px; + display: block; } + .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-avatar { + float: left; } + .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-icon { + float: left; + margin-top: 6px; } + .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-secondary-content { + height: 36px; } + .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-sub-title { + font-size: 14px; + font-weight: 400; + line-height: 24px; + letter-spacing: 0; + line-height: 18px; + color: rgba(0,0,0, 0.54); + display: block; + padding: 0; } + +.mdl-list__item--three-line { + height: 88px; } + .mdl-list__item--three-line .mdl-list__item-primary-content { + height: 52px; + line-height: 20px; + display: block; } + .mdl-list__item--three-line .mdl-list__item-primary-content .mdl-list__item-avatar, + .mdl-list__item--three-line .mdl-list__item-primary-content .mdl-list__item-icon { + float: left; } + .mdl-list__item--three-line .mdl-list__item-secondary-content { + height: 52px; } + .mdl-list__item--three-line .mdl-list__item-text-body { + font-size: 14px; + font-weight: 400; + line-height: 24px; + letter-spacing: 0; + line-height: 18px; + height: 52px; + color: rgba(0,0,0, 0.54); + display: block; + padding: 0; } + +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*------------------------------------* $CONTENTS +\*------------------------------------*/ +/** + * STYLE GUIDE VARIABLES------------------Declarations of Sass variables + * -----Typography + * -----Colors + * -----Textfield + * -----Switch + * -----Spinner + * -----Radio + * -----Menu + * -----List + * -----Layout + * -----Icon toggles + * -----Footer + * -----Column + * -----Checkbox + * -----Card + * -----Button + * -----Animation + * -----Progress + * -----Badge + * -----Shadows + * -----Grid + * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -5658,6 +6666,7 @@ input.mdl-button[type="submit"] { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -5706,7 +6715,10 @@ input.mdl-button[type="submit"] { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ /** * Copyright 2015 Google Inc. All Rights Reserved. * @@ -5725,6 +6737,7 @@ input.mdl-button[type="submit"] { /* Typography */ /* Shadows */ /* Animations */ +/* Dialog */ .mdl-menu__container { display: block; margin: 0; @@ -5736,8 +6749,7 @@ input.mdl-button[type="submit"] { width: 0; visibility: hidden; z-index: -1; } - .mdl-menu__container.is-visible, - .mdl-menu__container.is-animating { + .mdl-menu__container.is-visible, .mdl-menu__container.is-animating { z-index: 999; visibility: visible; } @@ -5754,33 +6766,28 @@ input.mdl-button[type="submit"] { overflow: hidden; opacity: 0; -webkit-transform: scale(0); - -ms-transform: scale(0); transform: scale(0); -webkit-transform-origin: 0 0; - -ms-transform-origin: 0 0; transform-origin: 0 0; box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); will-change: transform; - -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1); - transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); z-index: -1; } .mdl-menu__container.is-visible .mdl-menu__outline { opacity: 1; -webkit-transform: scale(1); - -ms-transform: scale(1); transform: scale(1); z-index: 999; } .mdl-menu__outline.mdl-menu--bottom-right { -webkit-transform-origin: 100% 0; - -ms-transform-origin: 100% 0; transform-origin: 100% 0; } .mdl-menu__outline.mdl-menu--top-left { -webkit-transform-origin: 0 100%; - -ms-transform-origin: 0 100%; transform-origin: 0 100%; } .mdl-menu__outline.mdl-menu--top-right { -webkit-transform-origin: 100% 100%; - -ms-transform-origin: 100% 100%; transform-origin: 100% 100%; } .mdl-menu { @@ -5800,8 +6807,7 @@ input.mdl-button[type="submit"] { opacity: 1; z-index: 999; } .mdl-menu.is-animating { - -webkit-transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), clip 0.3s cubic-bezier(0.4, 0, 0.2, 1); - transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), clip 0.3s cubic-bezier(0.4, 0, 0.2, 1); } + transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), clip 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .mdl-menu.mdl-menu--bottom-right { left: auto; right: 0; } @@ -5838,8 +6844,7 @@ input.mdl-button[type="submit"] { line-height: 48px; white-space: nowrap; opacity: 0; - -webkit-transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1); - transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1); -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; @@ -5848,15 +6853,17 @@ input.mdl-button[type="submit"] { opacity: 1; } .mdl-menu__item::-moz-focus-inner { border: 0; } - .mdl-menu__item[disabled] { + .mdl-menu__item--full-bleed-divider { + border-bottom: 1px solid rgba(0,0,0, 0.12); } + .mdl-menu__item[disabled], .mdl-menu__item[data-mdl-disabled] { color: rgb(189,189,189); background-color: transparent; cursor: auto; } - .mdl-menu__item[disabled]:hover { + .mdl-menu__item[disabled]:hover, .mdl-menu__item[data-mdl-disabled]:hover { background-color: transparent; } - .mdl-menu__item[disabled]:focus { + .mdl-menu__item[disabled]:focus, .mdl-menu__item[data-mdl-disabled]:focus { background-color: transparent; } - .mdl-menu__item[disabled] .mdl-ripple { + .mdl-menu__item[disabled] .mdl-ripple, .mdl-menu__item[data-mdl-disabled] .mdl-ripple { background: transparent; } .mdl-menu__item:hover { background-color: rgb(238,238,238); } @@ -5931,6 +6938,15 @@ input.mdl-button[type="submit"] { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -5982,6 +6998,7 @@ input.mdl-button[type="submit"] { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -6030,12 +7047,16 @@ input.mdl-button[type="submit"] { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ .mdl-progress { display: block; position: relative; height: 4px; - width: 500px; } + width: 500px; + max-width: 100%; } .mdl-progress > .bar { display: block; @@ -6043,8 +7064,7 @@ input.mdl-button[type="submit"] { top: 0; bottom: 0; width: 0%; - -webkit-transition: width 0.2s cubic-bezier(0.4, 0, 0.2, 1); - transition: width 0.2s cubic-bezier(0.4, 0, 0.2, 1); } + transition: width 0.2s cubic-bezier(0.4, 0, 0.2, 1); } .mdl-progress > .progressbar { background-color: rgb(63,81,181); @@ -6052,7 +7072,6 @@ input.mdl-button[type="submit"] { left: 0; } .mdl-progress > .bufferbar { - background-image: -webkit-linear-gradient(left, rgba(255,255,255, 0.7), rgba(255,255,255, 0.7)), -webkit-linear-gradient(left, rgb(63,81,181), rgb(63,81,181)); background-image: linear-gradient(to right, rgba(255,255,255, 0.7), rgba(255,255,255, 0.7)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181)); z-index: 0; left: 0; } @@ -6061,16 +7080,17 @@ input.mdl-button[type="submit"] { right: 0; } @supports (-webkit-appearance: none) { + .mdl-progress:not(.mdl-progress--indeterminate):not(.mdl-progress--indeterminate) > .auxbar, .mdl-progress:not(.mdl-progress__indeterminate):not(.mdl-progress__indeterminate) > .auxbar { - background-image: -webkit-linear-gradient(left, rgba(255,255,255, 0.7), rgba(255,255,255, 0.7)), -webkit-linear-gradient(left, rgb(63,81,181), rgb(63,81,181)); background-image: linear-gradient(to right, rgba(255,255,255, 0.7), rgba(255,255,255, 0.7)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181)); -webkit-mask: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjQiIHZpZXdQb3J0PSIwIDAgMTIgNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxlbGxpcHNlIGN4PSIyIiBjeT0iMiIgcng9IjIiIHJ5PSIyIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImN4IiBmcm9tPSIyIiB0bz0iLTEwIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogIDwvZWxsaXBzZT4KICA8ZWxsaXBzZSBjeD0iMTQiIGN5PSIyIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJsb2FkZXIiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giIGZyb209IjE0IiB0bz0iMiIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICA8L2VsbGlwc2U+Cjwvc3ZnPgo="); mask: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjQiIHZpZXdQb3J0PSIwIDAgMTIgNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxlbGxpcHNlIGN4PSIyIiBjeT0iMiIgcng9IjIiIHJ5PSIyIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImN4IiBmcm9tPSIyIiB0bz0iLTEwIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogIDwvZWxsaXBzZT4KICA8ZWxsaXBzZSBjeD0iMTQiIGN5PSIyIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJsb2FkZXIiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giIGZyb209IjE0IiB0bz0iMiIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICA8L2VsbGlwc2U+Cjwvc3ZnPgo="); } } +.mdl-progress:not(.mdl-progress--indeterminate) > .auxbar, .mdl-progress:not(.mdl-progress__indeterminate) > .auxbar { - background-image: -webkit-linear-gradient(left, rgba(255,255,255, 0.9), rgba(255,255,255, 0.9)), -webkit-linear-gradient(left, rgb(63,81,181), rgb(63,81,181)); background-image: linear-gradient(to right, rgba(255,255,255, 0.9), rgba(255,255,255, 0.9)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181)); } +.mdl-progress.mdl-progress--indeterminate > .bar1, .mdl-progress.mdl-progress__indeterminate > .bar1 { background-color: rgb(63,81,181); -webkit-animation-name: indeterminate1; @@ -6082,6 +7102,7 @@ input.mdl-button[type="submit"] { -webkit-animation-timing-function: linear; animation-timing-function: linear; } +.mdl-progress.mdl-progress--indeterminate > .bar3, .mdl-progress.mdl-progress__indeterminate > .bar3 { background-image: none; background-color: rgb(63,81,181); @@ -6199,6 +7220,15 @@ input.mdl-button[type="submit"] { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -6250,6 +7280,7 @@ input.mdl-button[type="submit"] { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -6298,7 +7329,10 @@ input.mdl-button[type="submit"] { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ /** * Copyright 2015 Google Inc. All Rights Reserved. * @@ -6317,8 +7351,8 @@ input.mdl-button[type="submit"] { /* Typography */ /* Shadows */ /* Animations */ +/* Dialog */ .mdl-navigation { - display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; @@ -6330,19 +7364,21 @@ input.mdl-button[type="submit"] { .mdl-navigation__link { color: rgb(66,66,66); text-decoration: none; - font-weight: 500; - font-size: 13px; - margin: 0; } + margin: 0; + font-size: 14px; + font-weight: 400; + line-height: 24px; + letter-spacing: 0; + opacity: 0.87; } + .mdl-navigation__link .material-icons { + vertical-align: middle; } .mdl-layout { width: 100%; height: 100%; - display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; -webkit-flex-direction: column; -ms-flex-direction: column; flex-direction: column; @@ -6362,6 +7398,7 @@ input.mdl-button[type="submit"] { width: 100%; height: 100%; } +.mdl-layout__title, .mdl-layout-title { display: block; position: relative; @@ -6374,18 +7411,14 @@ input.mdl-button[type="submit"] { box-sizing: border-box; } .mdl-layout-spacer { - -webkit-box-flex: 1; -webkit-flex-grow: 1; -ms-flex-positive: 1; flex-grow: 1; } .mdl-layout__drawer { - display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; -webkit-flex-direction: column; -ms-flex-direction: column; flex-direction: column; @@ -6403,43 +7436,41 @@ input.mdl-button[type="submit"] { border-right: 1px solid rgb(224,224,224); background: rgb(250,250,250); -webkit-transform: translateX(-250px); - -ms-transform: translateX(-250px); transform: translateX(-250px); -webkit-transform-style: preserve-3d; transform-style: preserve-3d; will-change: transform; - -webkit-transition-duration: 0.2s; - transition-duration: 0.2s; - -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - -webkit-transition-property: -webkit-transform; - transition-property: transform; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-property: -webkit-transform; + transition-property: transform; + transition-property: transform, -webkit-transform; color: rgb(66,66,66); overflow: visible; overflow-y: auto; z-index: 5; } .mdl-layout__drawer.is-visible { -webkit-transform: translateX(0); - -ms-transform: translateX(0); transform: translateX(0); } + .mdl-layout__drawer.is-visible ~ .mdl-layout__content.mdl-layout__content { + overflow: hidden; } .mdl-layout__drawer > * { -webkit-flex-shrink: 0; -ms-flex-negative: 0; flex-shrink: 0; } + .mdl-layout__drawer > .mdl-layout__title, .mdl-layout__drawer > .mdl-layout-title { line-height: 64px; padding-left: 40px; } @media screen and (max-width: 1024px) { + .mdl-layout__drawer > .mdl-layout__title, .mdl-layout__drawer > .mdl-layout-title { line-height: 56px; padding-left: 16px; } } .mdl-layout__drawer .mdl-navigation { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; -webkit-flex-direction: column; -ms-flex-direction: column; flex-direction: column; - -webkit-box-align: stretch; -webkit-align-items: stretch; -ms-flex-align: stretch; align-items: stretch; @@ -6458,12 +7489,11 @@ input.mdl-button[type="submit"] { .mdl-layout__drawer .mdl-navigation .mdl-navigation__link:hover { background-color: rgb(224,224,224); } .mdl-layout__drawer .mdl-navigation .mdl-navigation__link--current { - background-color: rgb(0,0,0); - color: rgb(63,81,181); } + background-color: rgb(224,224,224); + color: rgb(0,0,0); } @media screen and (min-width: 1025px) { .mdl-layout--fixed-drawer > .mdl-layout__drawer { -webkit-transform: translateX(0); - -ms-transform: translateX(0); transform: translateX(0); } } .mdl-layout__drawer-button { @@ -6479,9 +7509,9 @@ input.mdl-button[type="submit"] { text-align: center; cursor: pointer; font-size: 26px; - line-height: 50px; + line-height: 56px; font-family: Helvetica, Arial, sans-serif; - margin: 10px 12px; + margin: 8px 12px; top: 0; left: 0; color: rgb(255,255,255); @@ -6498,23 +7528,23 @@ input.mdl-button[type="submit"] { margin: 4px; color: rgba(0, 0, 0, 0.5); } } @media screen and (min-width: 1025px) { - .mdl-layout--fixed-drawer > .mdl-layout__drawer-button { - display: none; } } + .mdl-layout__drawer-button { + line-height: 54px; } + .mdl-layout--no-desktop-drawer-button .mdl-layout__drawer-button, + .mdl-layout--fixed-drawer > .mdl-layout__drawer-button, + .mdl-layout--no-drawer-button .mdl-layout__drawer-button { + display: none; } } .mdl-layout__header { - display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; -webkit-flex-direction: column; -ms-flex-direction: column; flex-direction: column; -webkit-flex-wrap: nowrap; -ms-flex-wrap: nowrap; flex-wrap: nowrap; - -webkit-box-pack: start; -webkit-justify-content: flex-start; -ms-flex-pack: start; justify-content: flex-start; @@ -6532,19 +7562,16 @@ input.mdl-button[type="submit"] { background-color: rgb(63,81,181); color: rgb(255,255,255); box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); - -webkit-transition-duration: 0.2s; - transition-duration: 0.2s; - -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - -webkit-transition-property: max-height, box-shadow; - transition-property: max-height, box-shadow; } + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-property: max-height, box-shadow; } @media screen and (max-width: 1024px) { .mdl-layout__header { min-height: 56px; } } - .mdl-layout--fixed-drawer:not(.is-small-screen) > .mdl-layout__header { + .mdl-layout--fixed-drawer.is-upgraded:not(.is-small-screen) > .mdl-layout__header { margin-left: 240px; width: calc(100% - 240px); } - @media screen and (min-width: 1024px) { + @media screen and (min-width: 1025px) { .mdl-layout--fixed-drawer > .mdl-layout__header .mdl-layout__header-row { padding-left: 40px; } } .mdl-layout__header > .mdl-layout-icon { @@ -6576,7 +7603,6 @@ input.mdl-button[type="submit"] { .mdl-layout__header { display: none; } .mdl-layout--fixed-header > .mdl-layout__header { - display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; } } @@ -6596,14 +7622,15 @@ input.mdl-button[type="submit"] { overflow: hidden; } .mdl-layout__header--waterfall.is-casting-shadow { box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); } + .mdl-layout__header--waterfall.mdl-layout__header--waterfall-hide-top { + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; } .mdl-layout__header-row { - display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; @@ -6617,17 +7644,23 @@ input.mdl-button[type="submit"] { -webkit-align-self: stretch; -ms-flex-item-align: stretch; align-self: stretch; - -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; height: 64px; margin: 0; padding: 0 40px 0 80px; } + .mdl-layout--no-drawer-button .mdl-layout__header-row { + padding-left: 40px; } + @media screen and (min-width: 1025px) { + .mdl-layout--no-desktop-drawer-button .mdl-layout__header-row { + padding-left: 40px; } } @media screen and (max-width: 1024px) { .mdl-layout__header-row { height: 56px; - padding: 0 16px 0 72px; } } + padding: 0 16px 0 72px; } + .mdl-layout--no-drawer-button .mdl-layout__header-row { + padding-left: 16px; } } .mdl-layout__header-row > * { -webkit-flex-shrink: 0; -ms-flex-negative: 0; @@ -6638,12 +7671,9 @@ input.mdl-button[type="submit"] { margin: 0; padding: 0; height: 64px; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; - -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; } @@ -6669,22 +7699,29 @@ input.mdl-button[type="submit"] { width: 100%; z-index: 4; visibility: hidden; - -webkit-transition-property: background-color; - transition-property: background-color; - -webkit-transition-duration: 0.2s; - transition-duration: 0.2s; - -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } - .mdl-layout__drawer.is-visible ~ .mdl-layout__obfuscator { + transition-property: background-color; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } + .mdl-layout__obfuscator.is-visible { background-color: rgba(0, 0, 0, 0.5); visibility: visible; } + @supports (pointer-events: auto) { + .mdl-layout__obfuscator { + background-color: rgba(0, 0, 0, 0.5); + opacity: 0; + transition-property: opacity; + visibility: visible; + pointer-events: none; } + .mdl-layout__obfuscator.is-visible { + pointer-events: auto; + opacity: 1; } } .mdl-layout__content { -ms-flex: 0 1 auto; + position: relative; display: inline-block; overflow-y: auto; overflow-x: hidden; - -webkit-box-flex: 1; -webkit-flex-grow: 1; -ms-flex-positive: 1; flex-grow: 1; @@ -6704,9 +7741,8 @@ input.mdl-button[type="submit"] { .mdl-layout__tab-bar { height: 96px; margin: 0; - width: calc(100% - 112px); + width: calc(100% - 112px); padding: 0 0 0 56px; - display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; @@ -6715,10 +7751,20 @@ input.mdl-button[type="submit"] { overflow-x: scroll; } .mdl-layout__tab-bar::-webkit-scrollbar { display: none; } + .mdl-layout--no-drawer-button .mdl-layout__tab-bar { + padding-left: 16px; + width: calc(100% - 32px); } + @media screen and (min-width: 1025px) { + .mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar { + padding-left: 16px; + width: calc(100% - 32px); } } @media screen and (max-width: 1024px) { .mdl-layout__tab-bar { - width: calc(100% - 60px); - padding: 0 0 0 60px; } } + width: calc(100% - 60px); + padding: 0 0 0 60px; } + .mdl-layout--no-drawer-button .mdl-layout__tab-bar { + width: calc(100% - 8px); + padding-left: 4px; } } .mdl-layout--fixed-tabs .mdl-layout__tab-bar { padding: 0; overflow: hidden; @@ -6731,7 +7777,6 @@ input.mdl-button[type="submit"] { border: none; margin: 0; z-index: 2; - -webkit-box-flex: 0; -webkit-flex-grow: 0; -ms-flex-positive: 0; flex-grow: 0; @@ -6759,9 +7804,15 @@ input.mdl-button[type="submit"] { -moz-user-select: none; -ms-user-select: none; user-select: none; } + .mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar-button, + .mdl-layout--no-drawer-button .mdl-layout__tab-bar-button { + width: 16px; } + .mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar-button .material-icons, + .mdl-layout--no-drawer-button .mdl-layout__tab-bar-button .material-icons { + position: relative; + left: -4px; } @media screen and (max-width: 1024px) { .mdl-layout__tab-bar-button { - display: none; width: 60px; } } .mdl-layout--fixed-tabs .mdl-layout__tab-bar-button { display: none; } @@ -6783,7 +7834,6 @@ input.mdl-button[type="submit"] { float: left; position: relative; display: block; - -webkit-box-flex: 0; -webkit-flex-grow: 0; -ms-flex-positive: 0; flex-grow: 0; @@ -6804,7 +7854,6 @@ input.mdl-button[type="submit"] { padding: 0 12px 0 12px; } } .mdl-layout--fixed-tabs .mdl-layout__tab { float: none; - -webkit-box-flex: 1; -webkit-flex-grow: 1; -ms-flex-positive: 1; flex-grow: 1; @@ -6822,8 +7871,7 @@ input.mdl-button[type="submit"] { background: rgb(255,64,129); -webkit-animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards; animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards; - -webkit-transition: all 1s cubic-bezier(0.4, 0, 1, 1); - transition: all 1s cubic-bezier(0.4, 0, 1, 1); } + transition: all 1s cubic-bezier(0.4, 0, 1, 1); } .mdl-layout__tab .mdl-layout__tab-ripple-container { display: block; position: absolute; @@ -6898,6 +7946,15 @@ input.mdl-button[type="submit"] { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -6949,6 +8006,7 @@ input.mdl-button[type="submit"] { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -6997,7 +8055,10 @@ input.mdl-button[type="submit"] { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ /** * Copyright 2015 Google Inc. All Rights Reserved. * @@ -7016,12 +8077,15 @@ input.mdl-button[type="submit"] { /* Typography */ /* Shadows */ /* Animations */ +/* Dialog */ .mdl-radio { position: relative; font-size: 16px; line-height: 24px; display: inline-block; + vertical-align: middle; box-sizing: border-box; + height: 24px; margin: 0; padding-left: 0; } .mdl-radio.is-upgraded { @@ -7057,6 +8121,7 @@ input.mdl-button[type="submit"] { z-index: 2; } .mdl-radio.is-checked .mdl-radio__outer-circle { border: 2px solid rgb(63,81,181); } + .mdl-radio__outer-circle fieldset[disabled] .mdl-radio, .mdl-radio.is-disabled .mdl-radio__outer-circle { border: 2px solid rgba(0,0,0, 0.26); cursor: auto; } @@ -7071,19 +8136,19 @@ input.mdl-button[type="submit"] { width: 8px; height: 8px; cursor: pointer; - -webkit-transition-duration: 0.28s; - transition-duration: 0.28s; - -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - -webkit-transition-property: -webkit-transform; - transition-property: transform; - -webkit-transform: scale3d(0, 0, 0); - transform: scale3d(0, 0, 0); + transition-duration: 0.28s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-property: -webkit-transform; + transition-property: transform; + transition-property: transform, -webkit-transform; + -webkit-transform: scale(0, 0); + transform: scale(0, 0); border-radius: 50%; background: rgb(63,81,181); } .mdl-radio.is-checked .mdl-radio__inner-circle { - -webkit-transform: scale3d(1, 1, 1); - transform: scale3d(1, 1, 1); } + -webkit-transform: scale(1, 1); + transform: scale(1, 1); } + fieldset[disabled] .mdl-radio .mdl-radio__inner-circle, .mdl-radio.is-disabled .mdl-radio__inner-circle { background: rgba(0,0,0, 0.26); cursor: auto; } @@ -7092,6 +8157,7 @@ input.mdl-button[type="submit"] { .mdl-radio__label { cursor: pointer; } + fieldset[disabled] .mdl-radio .mdl-radio__label, .mdl-radio.is-disabled .mdl-radio__label { color: rgba(0,0,0, 0.26); cursor: auto; } @@ -7110,8 +8176,10 @@ input.mdl-button[type="submit"] { -webkit-mask-image: -webkit-radial-gradient(circle, white, black); } .mdl-radio__ripple-container .mdl-ripple { background: rgb(63,81,181); } + fieldset[disabled] .mdl-radio .mdl-radio__ripple-container, .mdl-radio.is-disabled .mdl-radio__ripple-container { cursor: auto; } + fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple, .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple { background: transparent; } @@ -7170,6 +8238,15 @@ input.mdl-button[type="submit"] { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -7221,6 +8298,7 @@ input.mdl-button[type="submit"] { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -7269,7 +8347,10 @@ input.mdl-button[type="submit"] { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { -ms-appearance: none; height: 32px; @@ -7293,6 +8374,7 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { color: rgb(63,81,181); -webkit-align-self: center; -ms-flex-item-align: center; + -ms-grid-row-align: center; align-self: center; z-index: 1; cursor: pointer; @@ -7329,8 +8411,9 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { border-radius: 50%; background: rgb(63,81,181); border: none; - -webkit-transition: -webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1); - transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1); } + transition: border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1); } .mdl-slider.is-upgraded::-moz-range-thumb { -moz-appearance: none; width: 12px; @@ -7359,24 +8442,23 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { border: none; border-radius: 50%; background: rgb(63,81,181); - -ms-transform: scale(0.375); - transform: scale(0.375); - transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1); } + transform: scale(0.375); + transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1); } .mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb { background: radial-gradient(circle closest-side, rgb(63,81,181) 0%, rgb(63,81,181) 37.5%, rgba(63,81,181, 0.26) 37.5%, rgba(63,81,181, 0.26) 100%); - -ms-transform: scale(1); - transform: scale(1); } + transform: scale(1); } .mdl-slider.is-upgraded:active::-ms-thumb { background: rgb(63,81,181); - -ms-transform: scale(0.5625); - transform: scale(0.5625); } + transform: scale(0.5625); } .mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb { border: 2px solid rgba(0,0,0, 0.26); background: transparent; } .mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb { border: 2px solid rgba(0,0,0, 0.26); background: transparent; } - .mdl-slider.is-upgraded.is-lowest-value ~ + .mdl-slider.is-upgraded.is-lowest-value + .mdl-slider__background-flex > .mdl-slider__background-upper { left: 6px; } .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb { @@ -7389,7 +8471,7 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { border: 1.6px solid rgba(0,0,0, 0.26); -webkit-transform: scale(1.5); transform: scale(1.5); } - .mdl-slider.is-upgraded.is-lowest-value:active ~ + .mdl-slider.is-upgraded.is-lowest-value:active + .mdl-slider__background-flex > .mdl-slider__background-upper { left: 9px; } .mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb { @@ -7399,11 +8481,9 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { background: radial-gradient(circle closest-side, transparent 0%, transparent 66.67%, rgba(0,0,0, 0.26) 66.67%, rgba(0,0,0, 0.26) 100%); } .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb { background: radial-gradient(circle closest-side, rgba(0,0,0, 0.12) 0%, rgba(0,0,0, 0.12) 25%, rgba(0,0,0, 0.26) 25%, rgba(0,0,0, 0.26) 37.5%, rgba(0,0,0, 0.12) 37.5%, rgba(0,0,0, 0.12) 100%); - -ms-transform: scale(1); - transform: scale(1); } + transform: scale(1); } .mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb { - -ms-transform: scale(0.5625); - transform: scale(0.5625); + transform: scale(0.5625); background: radial-gradient(circle closest-side, transparent 0%, transparent 77.78%, rgba(0,0,0, 0.26) 77.78%, rgba(0,0,0, 0.26) 100%); } .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower { background: transparent; } @@ -7411,51 +8491,37 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { margin-left: 6px; } .mdl-slider.is-upgraded.is-lowest-value:active::-ms-fill-upper { margin-left: 9px; } - .mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb, - .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb, - .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb { + .mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb, .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb, .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb { -webkit-transform: scale(0.667); transform: scale(0.667); background: rgba(0,0,0, 0.26); } - .mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb, - .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb, - .mdl-slider.is-upgraded:disabled::-moz-range-thumb { + .mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb, .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb, .mdl-slider.is-upgraded:disabled::-moz-range-thumb { transform: scale(0.667); background: rgba(0,0,0, 0.26); } - .mdl-slider.is-upgraded:disabled ~ + .mdl-slider.is-upgraded:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower { background-color: rgba(0,0,0, 0.26); left: -6px; } - .mdl-slider.is-upgraded:disabled ~ + .mdl-slider.is-upgraded:disabled + .mdl-slider__background-flex > .mdl-slider__background-upper { left: 6px; } - .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb, - .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb, - .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb { + .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb { border: 3px solid rgba(0,0,0, 0.26); background: transparent; -webkit-transform: scale(0.667); transform: scale(0.667); } - .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb, - .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb, - .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb { + .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb { border: 3px solid rgba(0,0,0, 0.26); background: transparent; transform: scale(0.667); } - .mdl-slider.is-upgraded.is-lowest-value:disabled:active ~ + .mdl-slider.is-upgraded.is-lowest-value:disabled:active + .mdl-slider__background-flex > .mdl-slider__background-upper { left: 6px; } - .mdl-slider.is-upgraded:disabled:focus::-ms-thumb, - .mdl-slider.is-upgraded:disabled:active::-ms-thumb, - .mdl-slider.is-upgraded:disabled::-ms-thumb { - -ms-transform: scale(0.25); - transform: scale(0.25); + .mdl-slider.is-upgraded:disabled:focus::-ms-thumb, .mdl-slider.is-upgraded:disabled:active::-ms-thumb, .mdl-slider.is-upgraded:disabled::-ms-thumb { + transform: scale(0.25); background: rgba(0,0,0, 0.26); } - .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb, - .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb, - .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb { - -ms-transform: scale(0.25); - transform: scale(0.25); + .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb { + transform: scale(0.25); background: radial-gradient(circle closest-side, transparent 0%, transparent 50%, rgba(0,0,0, 0.26) 50%, rgba(0,0,0, 0.26) 100%); } .mdl-slider.is-upgraded:disabled::-ms-fill-lower { margin-right: 6px; @@ -7476,12 +8542,9 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { height: 18px; position: relative; background: none; - display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; } @@ -7494,7 +8557,6 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { top: 50%; left: 0; margin: 0 26px; - display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; @@ -7502,12 +8564,10 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { border: 0; padding: 0; -webkit-transform: translate(0, -1px); - -ms-transform: translate(0, -1px); transform: translate(0, -1px); } .mdl-slider__background-lower { background: rgb(63,81,181); - -webkit-box-flex: 0; -webkit-flex: 0; -ms-flex: 0; flex: 0; @@ -7517,15 +8577,281 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { .mdl-slider__background-upper { background: rgba(0,0,0, 0.26); - -webkit-box-flex: 0; -webkit-flex: 0; -ms-flex: 0; flex: 0; position: relative; border: 0; padding: 0; - -webkit-transition: left 0.18s cubic-bezier(0.4, 0, 0.2, 1); - transition: left 0.18s cubic-bezier(0.4, 0, 0.2, 1); } + transition: left 0.18s cubic-bezier(0.4, 0, 0.2, 1); } + +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/*------------------------------------* $CONTENTS +\*------------------------------------*/ +/** + * STYLE GUIDE VARIABLES------------------Declarations of Sass variables + * -----Typography + * -----Colors + * -----Textfield + * -----Switch + * -----Spinner + * -----Radio + * -----Menu + * -----List + * -----Layout + * -----Icon toggles + * -----Footer + * -----Column + * -----Checkbox + * -----Card + * -----Button + * -----Animation + * -----Progress + * -----Badge + * -----Shadows + * -----Grid + * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. + */ +/* ========== TYPOGRAPHY ========== */ +/* We're splitting fonts into "preferred" and "performance" in order to optimize + page loading. For important text, such as the body, we want it to load + immediately and not wait for the web font load, whereas for other sections, + such as headers and titles, we're OK with things taking a bit longer to load. + We do have some optional classes and parameters in the mixins, in case you + definitely want to make sure you're using the preferred font and don't mind + the performance hit. + We should be able to improve on this once CSS Font Loading L3 becomes more + widely available. +*/ +/* ========== COLORS ========== */ +/** +* +* Material design color palettes. +* @see http://www.google.com/design/spec/style/color.html +* +**/ +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* ========== Color Palettes ========== */ +/* colors.scss */ +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* ========== IMAGES ========== */ +/* ========== Color & Themes ========== */ +/* ========== Typography ========== */ +/* ========== Components ========== */ +/* ========== Standard Buttons ========== */ +/* ========== Icon Toggles ========== */ +/* ========== Radio Buttons ========== */ +/* ========== Ripple effect ========== */ +/* ========== Layout ========== */ +/* ========== Content Tabs ========== */ +/* ========== Checkboxes ========== */ +/* ========== Switches ========== */ +/* ========== Spinner ========== */ +/* ========== Text fields ========== */ +/* ========== Card ========== */ +/* ========== Sliders ========== */ +/* ========== Progress ========== */ +/* ========== List ========== */ +/* ========== Item ========== */ +/* ========== Dropdown menu ========== */ +/* ========== Tooltips ========== */ +/* ========== Footer ========== */ +/* TEXTFIELD */ +/* SWITCH */ +/* SPINNER */ +/* RADIO */ +/* MENU */ +/* LIST */ +/* LAYOUT */ +/* ICON TOGGLE */ +/* FOOTER */ +/*mega-footer*/ +/*mini-footer*/ +/* CHECKBOX */ +/* CARD */ +/* Card dimensions */ +/* Cover image */ +/* BUTTON */ +/** + * + * Dimensions + * + */ +/* ANIMATION */ +/* PROGRESS */ +/* BADGE */ +/* SHADOWS */ +/* GRID */ +/* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ +/* TOOLTIP */ +/* CHIP */ +/** + * Copyright 2015 Google Inc. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* Typography */ +/* Shadows */ +/* Animations */ +/* Dialog */ +.mdl-snackbar { + position: fixed; + bottom: 0; + left: 50%; + cursor: default; + background-color: #323232; + z-index: 3; + display: block; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + will-change: transform; + -webkit-transform: translate(0, 80px); + transform: translate(0, 80px); + transition: -webkit-transform 0.25s cubic-bezier(0.4, 0, 1, 1); + transition: transform 0.25s cubic-bezier(0.4, 0, 1, 1); + transition: transform 0.25s cubic-bezier(0.4, 0, 1, 1), -webkit-transform 0.25s cubic-bezier(0.4, 0, 1, 1); + pointer-events: none; } + @media (max-width: 479px) { + .mdl-snackbar { + width: 100%; + left: 0; + min-height: 48px; + max-height: 80px; } } + @media (min-width: 480px) { + .mdl-snackbar { + min-width: 288px; + max-width: 568px; + border-radius: 2px; + -webkit-transform: translate(-50%, 80px); + transform: translate(-50%, 80px); } } + .mdl-snackbar--active { + -webkit-transform: translate(0, 0); + transform: translate(0, 0); + pointer-events: auto; + transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.2, 1); + transition: transform 0.25s cubic-bezier(0, 0, 0.2, 1); + transition: transform 0.25s cubic-bezier(0, 0, 0.2, 1), -webkit-transform 0.25s cubic-bezier(0, 0, 0.2, 1); } + @media (min-width: 480px) { + .mdl-snackbar--active { + -webkit-transform: translate(-50%, 0); + transform: translate(-50%, 0); } } + .mdl-snackbar__text { + padding: 14px 12px 14px 24px; + vertical-align: middle; + color: white; + float: left; } + .mdl-snackbar__action { + background: transparent; + border: none; + color: rgb(255,64,129); + float: right; + text-transform: uppercase; + padding: 14px 24px 14px 12px; + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 14px; + font-weight: 500; + text-transform: uppercase; + line-height: 1; + letter-spacing: 0; + overflow: hidden; + outline: none; + opacity: 0; + pointer-events: none; + cursor: pointer; + text-decoration: none; + text-align: center; + -webkit-align-self: center; + -ms-flex-item-align: center; + -ms-grid-row-align: center; + align-self: center; } + .mdl-snackbar__action::-moz-focus-inner { + border: 0; } + .mdl-snackbar__action:not([aria-hidden]) { + opacity: 1; + pointer-events: auto; } /** * Copyright 2015 Google Inc. All Rights Reserved. @@ -7582,6 +8908,15 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -7633,6 +8968,7 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -7681,7 +9017,10 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ .mdl-spinner { display: inline-block; position: relative; @@ -7929,6 +9268,10 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { height: 100%; overflow: hidden; border-color: inherit; } + .mdl-spinner__circle-clipper.mdl-spinner__left { + float: left; } + .mdl-spinner__circle-clipper.mdl-spinner__right { + float: right; } .mdl-spinner__circle-clipper .mdl-spinner__circle { width: 200%; } @@ -7950,7 +9293,6 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { .mdl-spinner__left .mdl-spinner__circle { border-right-color: transparent !important; -webkit-transform: rotate(129deg); - -ms-transform: rotate(129deg); transform: rotate(129deg); } .mdl-spinner.is-active .mdl-spinner__left .mdl-spinner__circle { -webkit-animation: mdl-spinner__left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; @@ -7959,7 +9301,6 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { left: -100%; border-left-color: transparent !important; -webkit-transform: rotate(-129deg); - -ms-transform: rotate(-129deg); transform: rotate(-129deg); } .mdl-spinner.is-active .mdl-spinner__right .mdl-spinner__circle { -webkit-animation: mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; @@ -8064,6 +9405,15 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -8115,6 +9465,7 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -8163,7 +9514,10 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ /** * Copyright 2015 Google Inc. All Rights Reserved. * @@ -8182,6 +9536,7 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { /* Typography */ /* Shadows */ /* Animations */ +/* Dialog */ .mdl-switch { position: relative; z-index: 1; @@ -8227,6 +9582,7 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { cursor: pointer; } .mdl-switch.is-checked .mdl-switch__track { background: rgba(63,81,181, 0.5); } + .mdl-switch__track fieldset[disabled] .mdl-switch, .mdl-switch.is-disabled .mdl-switch__track { background: rgba(0,0,0, 0.12); cursor: auto; } @@ -8241,16 +9597,14 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { border-radius: 50%; cursor: pointer; box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); - -webkit-transition-duration: 0.28s; - transition-duration: 0.28s; - -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - -webkit-transition-property: left; - transition-property: left; } + transition-duration: 0.28s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-property: left; } .mdl-switch.is-checked .mdl-switch__thumb { background: rgb(63,81,181); left: 16px; box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12); } + .mdl-switch__thumb fieldset[disabled] .mdl-switch, .mdl-switch.is-disabled .mdl-switch__thumb { background: rgb(189,189,189); cursor: auto; } @@ -8260,7 +9614,6 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { top: 50%; left: 50%; -webkit-transform: translate(-4px, -4px); - -ms-transform: translate(-4px, -4px); transform: translate(-4px, -4px); display: inline-block; box-sizing: border-box; @@ -8282,6 +9635,7 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { line-height: 24px; margin: 0; left: 24px; } + .mdl-switch__label fieldset[disabled] .mdl-switch, .mdl-switch.is-disabled .mdl-switch__label { color: rgb(189,189,189); cursor: auto; } @@ -8298,20 +9652,18 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { cursor: pointer; overflow: hidden; -webkit-mask-image: -webkit-radial-gradient(circle, white, black); - -webkit-transition-duration: 0.40s; - transition-duration: 0.40s; - -webkit-transition-timing-function: step-end; - transition-timing-function: step-end; - -webkit-transition-property: left; - transition-property: left; } + transition-duration: 0.40s; + transition-timing-function: step-end; + transition-property: left; } .mdl-switch__ripple-container .mdl-ripple { background: rgb(63,81,181); } + .mdl-switch__ripple-container fieldset[disabled] .mdl-switch, .mdl-switch.is-disabled .mdl-switch__ripple-container { cursor: auto; } + fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple, .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple { background: transparent; } .mdl-switch.is-checked .mdl-switch__ripple-container { - cursor: auto; left: 2px; } /** @@ -8369,6 +9721,15 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -8420,6 +9781,7 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -8468,29 +9830,27 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ .mdl-tabs { display: block; width: 100%; } .mdl-tabs__tab-bar { - display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; - -webkit-box-pack: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; -webkit-align-content: space-between; -ms-flex-line-pack: justify; align-content: space-between; - -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; align-items: flex-start; @@ -8506,7 +9866,6 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { float: left; position: relative; display: block; - color: red; text-decoration: none; height: 48px; line-height: 48px; @@ -8529,8 +9888,7 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { background: rgb(63,81,181); -webkit-animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards; animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards; - -webkit-transition: all 1s cubic-bezier(0.4, 0, 1, 1); - transition: all 1s cubic-bezier(0.4, 0, 1, 1); } + transition: all 1s cubic-bezier(0.4, 0, 1, 1); } .mdl-tabs__tab .mdl-tabs__ripple-container { display: block; position: absolute; @@ -8621,6 +9979,15 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -8672,6 +10039,7 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -8720,7 +10088,10 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ /** * Copyright 2015 Google Inc. All Rights Reserved. * @@ -8739,6 +10110,7 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { /* Typography */ /* Shadows */ /* Animations */ +/* Dialog */ .mdl-textfield { position: relative; font-size: 16px; @@ -8762,22 +10134,32 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { min-width: 32px; width: auto; min-height: 32px; } + .mdl-textfield--expandable .mdl-button--icon { + top: 16px; } .mdl-textfield__input { border: none; border-bottom: 1px solid rgba(0,0,0, 0.12); display: block; font-size: 16px; + font-family: "Helvetica", "Arial", sans-serif; margin: 0; padding: 4px 0; width: 100%; + background: none; text-align: left; color: inherit; } + .mdl-textfield__input[type="number"] { + -moz-appearance: textfield; } + .mdl-textfield__input[type="number"]::-webkit-inner-spin-button, .mdl-textfield__input[type="number"]::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; } .mdl-textfield.is-focused .mdl-textfield__input { outline: none; } .mdl-textfield.is-invalid .mdl-textfield__input { - border-color: rgb(222, 50, 38); + border-color: rgb(213,0,0); box-shadow: none; } + fieldset[disabled] .mdl-textfield .mdl-textfield__input, .mdl-textfield.is-disabled .mdl-textfield__input { background-color: transparent; border-bottom: 1px dotted rgba(0,0,0, 0.12); @@ -8800,26 +10182,30 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { overflow: hidden; white-space: nowrap; text-align: left; } - .mdl-textfield.is-dirty .mdl-textfield__label { + .mdl-textfield.is-dirty .mdl-textfield__label, + .mdl-textfield.has-placeholder .mdl-textfield__label { visibility: hidden; } .mdl-textfield--floating-label .mdl-textfield__label { - -webkit-transition-duration: 0.2s; - transition-duration: 0.2s; - -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } + .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label { + transition: none; } + fieldset[disabled] .mdl-textfield .mdl-textfield__label, .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label { color: rgba(0,0,0, 0.26); } .mdl-textfield--floating-label.is-focused .mdl-textfield__label, - .mdl-textfield--floating-label.is-dirty .mdl-textfield__label { + .mdl-textfield--floating-label.is-dirty .mdl-textfield__label, + .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label { color: rgb(63,81,181); font-size: 12px; top: 4px; visibility: visible; } .mdl-textfield--floating-label.is-focused .mdl-textfield__expandable-holder .mdl-textfield__label, - .mdl-textfield--floating-label.is-dirty .mdl-textfield__expandable-holder .mdl-textfield__label { + .mdl-textfield--floating-label.is-dirty .mdl-textfield__expandable-holder .mdl-textfield__label, + .mdl-textfield--floating-label.has-placeholder .mdl-textfield__expandable-holder .mdl-textfield__label { top: -16px; } .mdl-textfield--floating-label.is-invalid .mdl-textfield__label { - color: rgb(222, 50, 38); + color: rgb(213,0,0); font-size: 12px; } .mdl-textfield__label:after { background-color: rgb(63,81,181); @@ -8828,10 +10214,8 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { height: 2px; left: 45%; position: absolute; - -webkit-transition-duration: 0.2s; - transition-duration: 0.2s; - -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); visibility: hidden; width: 10px; } .mdl-textfield.is-focused .mdl-textfield__label:after { @@ -8839,10 +10223,10 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { visibility: visible; width: 100%; } .mdl-textfield.is-invalid .mdl-textfield__label:after { - background-color: rgb(222, 50, 38); } + background-color: rgb(213,0,0); } .mdl-textfield__error { - color: rgb(222, 50, 38); + color: rgb(213,0,0); position: absolute; font-size: 12px; margin-top: 3px; @@ -8855,10 +10239,8 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { display: inline-block; position: relative; margin-left: 32px; - -webkit-transition-duration: 0.2s; - transition-duration: 0.2s; - -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); display: inline-block; max-width: 0.1px; } .mdl-textfield.is-focused .mdl-textfield__expandable-holder, .mdl-textfield.is-dirty .mdl-textfield__expandable-holder { @@ -8921,6 +10303,15 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -8972,6 +10363,7 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -9020,15 +10412,15 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ .mdl-tooltip { -webkit-transform: scale(0); - -ms-transform: scale(0); transform: scale(0); -webkit-transform-origin: top center; - -ms-transform-origin: top center; transform-origin: top center; - will-change: transform; z-index: 999; background: rgba(97,97,97, 0.9); border-radius: 2px; @@ -9136,6 +10528,15 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -9187,6 +10588,7 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -9235,7 +10637,10 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ /** * Copyright 2015 Google Inc. All Rights Reserved. * @@ -9254,6 +10659,7 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { /* Typography */ /* Shadows */ /* Animations */ +/* Dialog */ .mdl-shadow--2dp { box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); } @@ -9272,6 +10678,9 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { .mdl-shadow--16dp { box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2); } +.mdl-shadow--24dp { + box-shadow: 0 9px 46px 8px rgba(0, 0, 0, 0.14), 0 11px 15px -7px rgba(0, 0, 0, 0.12), 0 24px 38px 3px rgba(0, 0, 0, 0.2); } + /** * Copyright 2015 Google Inc. All Rights Reserved. * @@ -9332,6 +10741,15 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { * -----Shadows * -----Grid * -----Data table + * -----Dialog + * -----Snackbar + * -----Tooltip + * -----Chip + * + * Even though all variables have the `!default` directive, most of them + * should not be changed as they are dependent one another. This can cause + * visual distortions (like alignment issues) that are hard to track down + * and fix. */ /* ========== TYPOGRAPHY ========== */ /* We're splitting fonts into "preferred" and "performance" in order to optimize @@ -9383,6 +10801,7 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { * See the License for the specific language governing permissions and * limitations under the License. */ +/* ========== IMAGES ========== */ /* ========== Color & Themes ========== */ /* ========== Typography ========== */ /* ========== Components ========== */ @@ -9431,9 +10850,11 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { /* SHADOWS */ /* GRID */ /* DATA TABLE */ +/* DIALOG */ +/* SNACKBAR */ /* TOOLTIP */ +/* CHIP */ .mdl-grid { - display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; @@ -9441,7 +10862,6 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { -ms-flex-flow: row wrap; flex-flow: row wrap; margin: 0 auto 0 auto; - -webkit-box-align: stretch; -webkit-align-items: stretch; -ms-flex-align: stretch; align-items: stretch; } @@ -9459,6 +10879,7 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { .mdl-cell--middle { -webkit-align-self: center; -ms-flex-item-align: center; + -ms-grid-row-align: center; align-self: center; } .mdl-cell--bottom { @@ -9469,11 +10890,72 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { .mdl-cell--stretch { -webkit-align-self: stretch; -ms-flex-item-align: stretch; + -ms-grid-row-align: stretch; align-self: stretch; } .mdl-grid.mdl-grid--no-spacing > .mdl-cell { margin: 0; } +.mdl-cell--order-1 { + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + +.mdl-cell--order-2 { + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; } + +.mdl-cell--order-3 { + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; } + +.mdl-cell--order-4 { + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; } + +.mdl-cell--order-5 { + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; } + +.mdl-cell--order-6 { + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; } + +.mdl-cell--order-7 { + -webkit-order: 7; + -ms-flex-order: 7; + order: 7; } + +.mdl-cell--order-8 { + -webkit-order: 8; + -ms-flex-order: 8; + order: 8; } + +.mdl-cell--order-9 { + -webkit-order: 9; + -ms-flex-order: 9; + order: 9; } + +.mdl-cell--order-10 { + -webkit-order: 10; + -ms-flex-order: 10; + order: 10; } + +.mdl-cell--order-11 { + -webkit-order: 11; + -ms-flex-order: 11; + order: 11; } + +.mdl-cell--order-12 { + -webkit-order: 12; + -ms-flex-order: 12; + order: 12; } + @media (max-width: 479px) { .mdl-grid { padding: 8px; } @@ -9484,78 +10966,144 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { width: 100%; } .mdl-cell--hide-phone { display: none !important; } + .mdl-cell--order-1-phone.mdl-cell--order-1-phone { + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + .mdl-cell--order-2-phone.mdl-cell--order-2-phone { + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; } + .mdl-cell--order-3-phone.mdl-cell--order-3-phone { + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; } + .mdl-cell--order-4-phone.mdl-cell--order-4-phone { + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; } + .mdl-cell--order-5-phone.mdl-cell--order-5-phone { + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; } + .mdl-cell--order-6-phone.mdl-cell--order-6-phone { + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; } + .mdl-cell--order-7-phone.mdl-cell--order-7-phone { + -webkit-order: 7; + -ms-flex-order: 7; + order: 7; } + .mdl-cell--order-8-phone.mdl-cell--order-8-phone { + -webkit-order: 8; + -ms-flex-order: 8; + order: 8; } + .mdl-cell--order-9-phone.mdl-cell--order-9-phone { + -webkit-order: 9; + -ms-flex-order: 9; + order: 9; } + .mdl-cell--order-10-phone.mdl-cell--order-10-phone { + -webkit-order: 10; + -ms-flex-order: 10; + order: 10; } + .mdl-cell--order-11-phone.mdl-cell--order-11-phone { + -webkit-order: 11; + -ms-flex-order: 11; + order: 11; } + .mdl-cell--order-12-phone.mdl-cell--order-12-phone { + -webkit-order: 12; + -ms-flex-order: 12; + order: 12; } .mdl-cell--1-col, .mdl-cell--1-col-phone.mdl-cell--1-col-phone { width: calc(25% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--1-col, - .mdl-grid--no-spacing > .mdl-cell--1-col-phone.mdl-cell--1-col-phone { + .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing > + .mdl-cell--1-col-phone.mdl-cell--1-col-phone { width: 25%; } .mdl-cell--2-col, .mdl-cell--2-col-phone.mdl-cell--2-col-phone { width: calc(50% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--2-col, - .mdl-grid--no-spacing > .mdl-cell--2-col-phone.mdl-cell--2-col-phone { + .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing > + .mdl-cell--2-col-phone.mdl-cell--2-col-phone { width: 50%; } .mdl-cell--3-col, .mdl-cell--3-col-phone.mdl-cell--3-col-phone { width: calc(75% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--3-col, - .mdl-grid--no-spacing > .mdl-cell--3-col-phone.mdl-cell--3-col-phone { + .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing > + .mdl-cell--3-col-phone.mdl-cell--3-col-phone { width: 75%; } .mdl-cell--4-col, .mdl-cell--4-col-phone.mdl-cell--4-col-phone { width: calc(100% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--4-col, - .mdl-grid--no-spacing > .mdl-cell--4-col-phone.mdl-cell--4-col-phone { + .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing > + .mdl-cell--4-col-phone.mdl-cell--4-col-phone { width: 100%; } .mdl-cell--5-col, .mdl-cell--5-col-phone.mdl-cell--5-col-phone { width: calc(100% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--5-col, - .mdl-grid--no-spacing > .mdl-cell--5-col-phone.mdl-cell--5-col-phone { + .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing > + .mdl-cell--5-col-phone.mdl-cell--5-col-phone { width: 100%; } .mdl-cell--6-col, .mdl-cell--6-col-phone.mdl-cell--6-col-phone { width: calc(100% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--6-col, - .mdl-grid--no-spacing > .mdl-cell--6-col-phone.mdl-cell--6-col-phone { + .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing > + .mdl-cell--6-col-phone.mdl-cell--6-col-phone { width: 100%; } .mdl-cell--7-col, .mdl-cell--7-col-phone.mdl-cell--7-col-phone { width: calc(100% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--7-col, - .mdl-grid--no-spacing > .mdl-cell--7-col-phone.mdl-cell--7-col-phone { + .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing > + .mdl-cell--7-col-phone.mdl-cell--7-col-phone { width: 100%; } .mdl-cell--8-col, .mdl-cell--8-col-phone.mdl-cell--8-col-phone { width: calc(100% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--8-col, - .mdl-grid--no-spacing > .mdl-cell--8-col-phone.mdl-cell--8-col-phone { + .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing > + .mdl-cell--8-col-phone.mdl-cell--8-col-phone { width: 100%; } .mdl-cell--9-col, .mdl-cell--9-col-phone.mdl-cell--9-col-phone { width: calc(100% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--9-col, - .mdl-grid--no-spacing > .mdl-cell--9-col-phone.mdl-cell--9-col-phone { + .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing > + .mdl-cell--9-col-phone.mdl-cell--9-col-phone { width: 100%; } .mdl-cell--10-col, .mdl-cell--10-col-phone.mdl-cell--10-col-phone { width: calc(100% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--10-col, - .mdl-grid--no-spacing > .mdl-cell--10-col-phone.mdl-cell--10-col-phone { + .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing > + .mdl-cell--10-col-phone.mdl-cell--10-col-phone { width: 100%; } .mdl-cell--11-col, .mdl-cell--11-col-phone.mdl-cell--11-col-phone { width: calc(100% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--11-col, - .mdl-grid--no-spacing > .mdl-cell--11-col-phone.mdl-cell--11-col-phone { + .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing > + .mdl-cell--11-col-phone.mdl-cell--11-col-phone { width: 100%; } .mdl-cell--12-col, .mdl-cell--12-col-phone.mdl-cell--12-col-phone { width: calc(100% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--12-col, - .mdl-grid--no-spacing > .mdl-cell--12-col-phone.mdl-cell--12-col-phone { - width: 100%; } } + .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing > + .mdl-cell--12-col-phone.mdl-cell--12-col-phone { + width: 100%; } + .mdl-cell--1-offset, + .mdl-cell--1-offset-phone.mdl-cell--1-offset-phone { + margin-left: calc(25% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--1-offset-phone.mdl-cell--1-offset-phone { + margin-left: 25%; } + .mdl-cell--2-offset, + .mdl-cell--2-offset-phone.mdl-cell--2-offset-phone { + margin-left: calc(50% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--2-offset-phone.mdl-cell--2-offset-phone { + margin-left: 50%; } + .mdl-cell--3-offset, + .mdl-cell--3-offset-phone.mdl-cell--3-offset-phone { + margin-left: calc(75% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--3-offset-phone.mdl-cell--3-offset-phone { + margin-left: 75%; } } @media (min-width: 480px) and (max-width: 839px) { .mdl-grid { @@ -9567,78 +11115,168 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { width: 50%; } .mdl-cell--hide-tablet { display: none !important; } + .mdl-cell--order-1-tablet.mdl-cell--order-1-tablet { + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + .mdl-cell--order-2-tablet.mdl-cell--order-2-tablet { + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; } + .mdl-cell--order-3-tablet.mdl-cell--order-3-tablet { + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; } + .mdl-cell--order-4-tablet.mdl-cell--order-4-tablet { + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; } + .mdl-cell--order-5-tablet.mdl-cell--order-5-tablet { + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; } + .mdl-cell--order-6-tablet.mdl-cell--order-6-tablet { + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; } + .mdl-cell--order-7-tablet.mdl-cell--order-7-tablet { + -webkit-order: 7; + -ms-flex-order: 7; + order: 7; } + .mdl-cell--order-8-tablet.mdl-cell--order-8-tablet { + -webkit-order: 8; + -ms-flex-order: 8; + order: 8; } + .mdl-cell--order-9-tablet.mdl-cell--order-9-tablet { + -webkit-order: 9; + -ms-flex-order: 9; + order: 9; } + .mdl-cell--order-10-tablet.mdl-cell--order-10-tablet { + -webkit-order: 10; + -ms-flex-order: 10; + order: 10; } + .mdl-cell--order-11-tablet.mdl-cell--order-11-tablet { + -webkit-order: 11; + -ms-flex-order: 11; + order: 11; } + .mdl-cell--order-12-tablet.mdl-cell--order-12-tablet { + -webkit-order: 12; + -ms-flex-order: 12; + order: 12; } .mdl-cell--1-col, .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet { width: calc(12.5% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--1-col, - .mdl-grid--no-spacing > .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet { + .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing > + .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet { width: 12.5%; } .mdl-cell--2-col, .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet { width: calc(25% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--2-col, - .mdl-grid--no-spacing > .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet { + .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing > + .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet { width: 25%; } .mdl-cell--3-col, .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet { width: calc(37.5% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--3-col, - .mdl-grid--no-spacing > .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet { + .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing > + .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet { width: 37.5%; } .mdl-cell--4-col, .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet { width: calc(50% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--4-col, - .mdl-grid--no-spacing > .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet { + .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing > + .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet { width: 50%; } .mdl-cell--5-col, .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet { width: calc(62.5% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--5-col, - .mdl-grid--no-spacing > .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet { + .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing > + .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet { width: 62.5%; } .mdl-cell--6-col, .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet { width: calc(75% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--6-col, - .mdl-grid--no-spacing > .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet { + .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing > + .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet { width: 75%; } .mdl-cell--7-col, .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet { width: calc(87.5% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--7-col, - .mdl-grid--no-spacing > .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet { + .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing > + .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet { width: 87.5%; } .mdl-cell--8-col, .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet { width: calc(100% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--8-col, - .mdl-grid--no-spacing > .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet { + .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing > + .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet { width: 100%; } .mdl-cell--9-col, .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet { width: calc(100% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--9-col, - .mdl-grid--no-spacing > .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet { + .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing > + .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet { width: 100%; } .mdl-cell--10-col, .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet { width: calc(100% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--10-col, - .mdl-grid--no-spacing > .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet { + .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing > + .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet { width: 100%; } .mdl-cell--11-col, .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet { width: calc(100% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--11-col, - .mdl-grid--no-spacing > .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet { + .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing > + .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet { width: 100%; } .mdl-cell--12-col, .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet { width: calc(100% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--12-col, - .mdl-grid--no-spacing > .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet { - width: 100%; } } + .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing > + .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet { + width: 100%; } + .mdl-cell--1-offset, + .mdl-cell--1-offset-tablet.mdl-cell--1-offset-tablet { + margin-left: calc(12.5% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--1-offset-tablet.mdl-cell--1-offset-tablet { + margin-left: 12.5%; } + .mdl-cell--2-offset, + .mdl-cell--2-offset-tablet.mdl-cell--2-offset-tablet { + margin-left: calc(25% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--2-offset-tablet.mdl-cell--2-offset-tablet { + margin-left: 25%; } + .mdl-cell--3-offset, + .mdl-cell--3-offset-tablet.mdl-cell--3-offset-tablet { + margin-left: calc(37.5% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--3-offset-tablet.mdl-cell--3-offset-tablet { + margin-left: 37.5%; } + .mdl-cell--4-offset, + .mdl-cell--4-offset-tablet.mdl-cell--4-offset-tablet { + margin-left: calc(50% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--4-offset-tablet.mdl-cell--4-offset-tablet { + margin-left: 50%; } + .mdl-cell--5-offset, + .mdl-cell--5-offset-tablet.mdl-cell--5-offset-tablet { + margin-left: calc(62.5% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--5-offset-tablet.mdl-cell--5-offset-tablet { + margin-left: 62.5%; } + .mdl-cell--6-offset, + .mdl-cell--6-offset-tablet.mdl-cell--6-offset-tablet { + margin-left: calc(75% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--6-offset-tablet.mdl-cell--6-offset-tablet { + margin-left: 75%; } + .mdl-cell--7-offset, + .mdl-cell--7-offset-tablet.mdl-cell--7-offset-tablet { + margin-left: calc(87.5% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--7-offset-tablet.mdl-cell--7-offset-tablet { + margin-left: 87.5%; } } @media (min-width: 840px) { .mdl-grid { @@ -9650,75 +11288,189 @@ _:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded { width: 33.3333333333%; } .mdl-cell--hide-desktop { display: none !important; } + .mdl-cell--order-1-desktop.mdl-cell--order-1-desktop { + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + .mdl-cell--order-2-desktop.mdl-cell--order-2-desktop { + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; } + .mdl-cell--order-3-desktop.mdl-cell--order-3-desktop { + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; } + .mdl-cell--order-4-desktop.mdl-cell--order-4-desktop { + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; } + .mdl-cell--order-5-desktop.mdl-cell--order-5-desktop { + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; } + .mdl-cell--order-6-desktop.mdl-cell--order-6-desktop { + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; } + .mdl-cell--order-7-desktop.mdl-cell--order-7-desktop { + -webkit-order: 7; + -ms-flex-order: 7; + order: 7; } + .mdl-cell--order-8-desktop.mdl-cell--order-8-desktop { + -webkit-order: 8; + -ms-flex-order: 8; + order: 8; } + .mdl-cell--order-9-desktop.mdl-cell--order-9-desktop { + -webkit-order: 9; + -ms-flex-order: 9; + order: 9; } + .mdl-cell--order-10-desktop.mdl-cell--order-10-desktop { + -webkit-order: 10; + -ms-flex-order: 10; + order: 10; } + .mdl-cell--order-11-desktop.mdl-cell--order-11-desktop { + -webkit-order: 11; + -ms-flex-order: 11; + order: 11; } + .mdl-cell--order-12-desktop.mdl-cell--order-12-desktop { + -webkit-order: 12; + -ms-flex-order: 12; + order: 12; } .mdl-cell--1-col, .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop { width: calc(8.3333333333% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--1-col, - .mdl-grid--no-spacing > .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop { + .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing > + .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop { width: 8.3333333333%; } .mdl-cell--2-col, .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop { width: calc(16.6666666667% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--2-col, - .mdl-grid--no-spacing > .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop { + .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing > + .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop { width: 16.6666666667%; } .mdl-cell--3-col, .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop { width: calc(25% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--3-col, - .mdl-grid--no-spacing > .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop { + .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing > + .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop { width: 25%; } .mdl-cell--4-col, .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop { width: calc(33.3333333333% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--4-col, - .mdl-grid--no-spacing > .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop { + .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing > + .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop { width: 33.3333333333%; } .mdl-cell--5-col, .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop { width: calc(41.6666666667% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--5-col, - .mdl-grid--no-spacing > .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop { + .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing > + .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop { width: 41.6666666667%; } .mdl-cell--6-col, .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop { width: calc(50% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--6-col, - .mdl-grid--no-spacing > .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop { + .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing > + .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop { width: 50%; } .mdl-cell--7-col, .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop { width: calc(58.3333333333% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--7-col, - .mdl-grid--no-spacing > .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop { + .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing > + .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop { width: 58.3333333333%; } .mdl-cell--8-col, .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop { width: calc(66.6666666667% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--8-col, - .mdl-grid--no-spacing > .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop { + .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing > + .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop { width: 66.6666666667%; } .mdl-cell--9-col, .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop { width: calc(75% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--9-col, - .mdl-grid--no-spacing > .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop { + .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing > + .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop { width: 75%; } .mdl-cell--10-col, .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop { width: calc(83.3333333333% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--10-col, - .mdl-grid--no-spacing > .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop { + .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing > + .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop { width: 83.3333333333%; } .mdl-cell--11-col, .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop { width: calc(91.6666666667% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--11-col, - .mdl-grid--no-spacing > .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop { + .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing > + .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop { width: 91.6666666667%; } .mdl-cell--12-col, .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop { width: calc(100% - 16px); } - .mdl-grid--no-spacing > .mdl-cell--12-col, - .mdl-grid--no-spacing > .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop { - width: 100%; } } + .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing > + .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop { + width: 100%; } + .mdl-cell--1-offset, + .mdl-cell--1-offset-desktop.mdl-cell--1-offset-desktop { + margin-left: calc(8.3333333333% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--1-offset-desktop.mdl-cell--1-offset-desktop { + margin-left: 8.3333333333%; } + .mdl-cell--2-offset, + .mdl-cell--2-offset-desktop.mdl-cell--2-offset-desktop { + margin-left: calc(16.6666666667% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--2-offset-desktop.mdl-cell--2-offset-desktop { + margin-left: 16.6666666667%; } + .mdl-cell--3-offset, + .mdl-cell--3-offset-desktop.mdl-cell--3-offset-desktop { + margin-left: calc(25% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--3-offset-desktop.mdl-cell--3-offset-desktop { + margin-left: 25%; } + .mdl-cell--4-offset, + .mdl-cell--4-offset-desktop.mdl-cell--4-offset-desktop { + margin-left: calc(33.3333333333% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--4-offset-desktop.mdl-cell--4-offset-desktop { + margin-left: 33.3333333333%; } + .mdl-cell--5-offset, + .mdl-cell--5-offset-desktop.mdl-cell--5-offset-desktop { + margin-left: calc(41.6666666667% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--5-offset-desktop.mdl-cell--5-offset-desktop { + margin-left: 41.6666666667%; } + .mdl-cell--6-offset, + .mdl-cell--6-offset-desktop.mdl-cell--6-offset-desktop { + margin-left: calc(50% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--6-offset-desktop.mdl-cell--6-offset-desktop { + margin-left: 50%; } + .mdl-cell--7-offset, + .mdl-cell--7-offset-desktop.mdl-cell--7-offset-desktop { + margin-left: calc(58.3333333333% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--7-offset-desktop.mdl-cell--7-offset-desktop { + margin-left: 58.3333333333%; } + .mdl-cell--8-offset, + .mdl-cell--8-offset-desktop.mdl-cell--8-offset-desktop { + margin-left: calc(66.6666666667% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--8-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--8-offset-desktop.mdl-cell--8-offset-desktop { + margin-left: 66.6666666667%; } + .mdl-cell--9-offset, + .mdl-cell--9-offset-desktop.mdl-cell--9-offset-desktop { + margin-left: calc(75% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--9-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--9-offset-desktop.mdl-cell--9-offset-desktop { + margin-left: 75%; } + .mdl-cell--10-offset, + .mdl-cell--10-offset-desktop.mdl-cell--10-offset-desktop { + margin-left: calc(83.3333333333% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--10-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--10-offset-desktop.mdl-cell--10-offset-desktop { + margin-left: 83.3333333333%; } + .mdl-cell--11-offset, + .mdl-cell--11-offset-desktop.mdl-cell--11-offset-desktop { + margin-left: calc(91.6666666667% + 8px); } + .mdl-grid.mdl-grid--no-spacing > .mdl-cell--11-offset, .mdl-grid.mdl-grid--no-spacing > + .mdl-cell--11-offset-desktop.mdl-cell--11-offset-desktop { + margin-left: 91.6666666667%; } } diff --git a/public/vendor/mdl/mdl.min.css b/public/vendor/mdl/mdl.min.css deleted file mode 100644 index 3815742333..0000000000 --- a/public/vendor/mdl/mdl.min.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.mdl-button,.mdl-button .material-icons,.mdl-checkbox,audio,canvas,iframe,img,svg,video{vertical-align:middle}.visuallyhidden,hr{border:0;height:1px}.mdl-typography--display-4,.mdl-typography--display-4-color-contrast{font-family:Roboto,Helvetica,Arial,sans-serif;font-size:112px;font-weight:300;line-height:1;letter-spacing:-.04em}.mdl-typography--display-3,.mdl-typography--display-4,.mdl-typography--display-4-color-contrast{font-family:Roboto,Helvetica,Arial,sans-serif}.mdl-card,.mdl-card__media,.mdl-card__title{box-sizing:border-box}.mdl-badge[data-badge]:after,.mdl-card,.mdl-layout,.mdl-layout__drawer,.mdl-layout__header{-webkit-box-direction:normal}::-moz-selection{background:#b3d4fc;text-shadow:none}::selection{background:#b3d4fc;text-shadow:none}hr{display:block;border-top:1px solid #ccc;margin:1em 0;padding:0}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}.browserupgrade{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.hidden{display:none!important}.visuallyhidden{clip:rect(0 0 0 0);margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}body,html{width:100%}.invisible{visibility:hidden}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}@media print{blockquote,img,pre,tr{page-break-inside:avoid}*,:after,:before,:first-letter,:first-line{background:0 0!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999}thead{display:table-header-group}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.mdl-accordion,.mdl-button,.mdl-card,.mdl-checkbox,.mdl-dropdown-menu,.mdl-icon-toggle,.mdl-item,.mdl-radio,.mdl-slider,.mdl-switch,.mdl-tabs__tab,a{-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:rgba(255,255,255,0)}html{height:100%;-ms-touch-action:manipulation;touch-action:manipulation}body{min-height:100%;margin:0}main{display:block}[hidden]{display:none!important}.mdl-typography--display-4-color-contrast{opacity:.54}.mdl-typography--display-3,.mdl-typography--display-3-color-contrast{font-size:56px;font-weight:400;line-height:1.35;letter-spacing:-.02em}.mdl-typography--display-3-color-contrast{font-family:Roboto,Helvetica,Arial,sans-serif;opacity:.54}.mdl-typography--display-2,.mdl-typography--display-2-color-contrast{font-weight:400;font-family:Roboto,Helvetica,Arial,sans-serif;font-size:45px;line-height:48px}.mdl-typography--display-2-color-contrast{opacity:.54}.mdl-typography--display-1{font-family:Roboto,Helvetica,Arial,sans-serif;font-size:34px;font-weight:400;line-height:40px}.mdl-typography--display-1-color-contrast{font-family:Roboto,Helvetica,Arial,sans-serif;font-size:34px;font-weight:400;line-height:40px;opacity:.54}.mdl-typography--headline,.mdl-typography--headline-color-contrast{font-family:Roboto,Helvetica,Arial,sans-serif;font-size:24px;font-weight:400;line-height:32px;-moz-osx-font-smoothing:grayscale}.mdl-typography--headline-color-contrast{opacity:.87}.mdl-typography--title,.mdl-typography--title-color-contrast{font-size:20px;font-weight:500;line-height:1;letter-spacing:.02em}.mdl-typography--title{font-family:Roboto,Helvetica,Arial,sans-serif}.mdl-typography--title-color-contrast{font-family:Roboto,Helvetica,Arial,sans-serif;opacity:.87}.mdl-typography--subhead,.mdl-typography--subhead-color-contrast{font-family:Roboto,Helvetica,Arial,sans-serif;line-height:24px;font-size:16px;font-weight:400;letter-spacing:.04em}.mdl-typography--subhead-color-contrast{opacity:.87}.mdl-typography--body-2{font-size:14px;font-weight:700;line-height:24px;letter-spacing:0}.mdl-typography--body-2-color-contrast{font-size:14px;font-weight:700;line-height:24px;letter-spacing:0;opacity:.87}.mdl-typography--body-1,.mdl-typography--body-1-color-contrast{line-height:24px;letter-spacing:0;font-size:14px;font-weight:400}.mdl-typography--body-1-color-contrast{opacity:.87}.mdl-typography--body-2-force-preferred-font{font-family:Roboto,Helvetica,Arial,sans-serif;font-size:14px;font-weight:500;line-height:24px;letter-spacing:0}.mdl-typography--body-2-force-preferred-font-color-contrast{font-family:Roboto,Helvetica,Arial,sans-serif;font-size:14px;font-weight:500;line-height:24px;letter-spacing:0;opacity:.87}.mdl-typography--body-1-force-preferred-font,.mdl-typography--body-1-force-preferred-font-color-contrast{font-family:Roboto,Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:24px;letter-spacing:0}.mdl-typography--body-1-force-preferred-font-color-contrast{opacity:.87}.mdl-typography--caption,.mdl-typography--caption-color-contrast,.mdl-typography--caption-force-preferred-font,.mdl-typography--caption-force-preferred-font-color-contrast{font-size:12px;font-weight:400;line-height:1;letter-spacing:0}.mdl-typography--caption-force-preferred-font{font-family:Roboto,Helvetica,Arial,sans-serif}.mdl-typography--caption-color-contrast{opacity:.54}.mdl-typography--caption-force-preferred-font-color-contrast{font-family:Roboto,Helvetica,Arial,sans-serif;opacity:.54}.mdl-typography--button,.mdl-typography--button-color-contrast,.mdl-typography--menu,.mdl-typography--menu-color-contrast{font-family:Roboto,Helvetica,Arial,sans-serif;letter-spacing:0;font-weight:500;font-size:14px;line-height:1}.mdl-typography--menu-color-contrast{opacity:.87}.mdl-typography--button{text-transform:uppercase}.mdl-typography--button-color-contrast{text-transform:uppercase;opacity:.87}.mdl-typography--text-left{text-align:left}.mdl-typography--text-right{text-align:right}.mdl-typography--text-center{text-align:center}.mdl-typography--text-justify{text-align:justify}.mdl-typography--text-nowrap{white-space:nowrap}.mdl-typography--text-lowercase{text-transform:lowercase}.mdl-typography--text-uppercase{text-transform:uppercase}.mdl-typography--text-capitalize{text-transform:capitalize}.mdl-button,.mdl-layout__tab,.mdl-tabs__tab{text-decoration:none;text-transform:uppercase}.mdl-typography--font-thin{font-weight:200!important}.mdl-typography--font-light{font-weight:300!important}.mdl-typography--font-regular{font-weight:400!important}.mdl-typography--font-medium{font-weight:500!important}.mdl-typography--font-bold{font-weight:700!important}.mdl-typography--font-black{font-weight:900!important}.mdl-color-text--red{color:#f44336!important}.mdl-color--red{background-color:#f44336!important}.mdl-color-text--red-50{color:#ffebee!important}.mdl-color--red-50{background-color:#ffebee!important}.mdl-color-text--red-100{color:#ffcdd2!important}.mdl-color--red-100{background-color:#ffcdd2!important}.mdl-color-text--red-200{color:#ef9a9a!important}.mdl-color--red-200{background-color:#ef9a9a!important}.mdl-color-text--red-300{color:#e57373!important}.mdl-color--red-300{background-color:#e57373!important}.mdl-color-text--red-400{color:#ef5350!important}.mdl-color--red-400{background-color:#ef5350!important}.mdl-color-text--red-500{color:#f44336!important}.mdl-color--red-500{background-color:#f44336!important}.mdl-color-text--red-600{color:#e53935!important}.mdl-color--red-600{background-color:#e53935!important}.mdl-color-text--red-700{color:#d32f2f!important}.mdl-color--red-700{background-color:#d32f2f!important}.mdl-color-text--red-800{color:#c62828!important}.mdl-color--red-800{background-color:#c62828!important}.mdl-color-text--red-900{color:#b71c1c!important}.mdl-color--red-900{background-color:#b71c1c!important}.mdl-color-text--red-A100{color:#ff8a80!important}.mdl-color--red-A100{background-color:#ff8a80!important}.mdl-color-text--red-A200{color:#ff5252!important}.mdl-color--red-A200{background-color:#ff5252!important}.mdl-color-text--red-A400{color:#ff1744!important}.mdl-color--red-A400{background-color:#ff1744!important}.mdl-color-text--red-A700{color:#d50000!important}.mdl-color--red-A700{background-color:#d50000!important}.mdl-color-text--pink{color:#e91e63!important}.mdl-color--pink{background-color:#e91e63!important}.mdl-color-text--pink-50{color:#fce4ec!important}.mdl-color--pink-50{background-color:#fce4ec!important}.mdl-color-text--pink-100{color:#f8bbd0!important}.mdl-color--pink-100{background-color:#f8bbd0!important}.mdl-color-text--pink-200{color:#f48fb1!important}.mdl-color--pink-200{background-color:#f48fb1!important}.mdl-color-text--pink-300{color:#f06292!important}.mdl-color--pink-300{background-color:#f06292!important}.mdl-color-text--pink-400{color:#ec407a!important}.mdl-color--pink-400{background-color:#ec407a!important}.mdl-color-text--pink-500{color:#e91e63!important}.mdl-color--pink-500{background-color:#e91e63!important}.mdl-color-text--pink-600{color:#d81b60!important}.mdl-color--pink-600{background-color:#d81b60!important}.mdl-color-text--pink-700{color:#c2185b!important}.mdl-color--pink-700{background-color:#c2185b!important}.mdl-color-text--pink-800{color:#ad1457!important}.mdl-color--pink-800{background-color:#ad1457!important}.mdl-color-text--pink-900{color:#880e4f!important}.mdl-color--pink-900{background-color:#880e4f!important}.mdl-color-text--pink-A100{color:#ff80ab!important}.mdl-color--pink-A100{background-color:#ff80ab!important}.mdl-color-text--pink-A200{color:#ff4081!important}.mdl-color--pink-A200{background-color:#ff4081!important}.mdl-color-text--pink-A400{color:#f50057!important}.mdl-color--pink-A400{background-color:#f50057!important}.mdl-color-text--pink-A700{color:#c51162!important}.mdl-color--pink-A700{background-color:#c51162!important}.mdl-color-text--purple{color:#9c27b0!important}.mdl-color--purple{background-color:#9c27b0!important}.mdl-color-text--purple-50{color:#f3e5f5!important}.mdl-color--purple-50{background-color:#f3e5f5!important}.mdl-color-text--purple-100{color:#e1bee7!important}.mdl-color--purple-100{background-color:#e1bee7!important}.mdl-color-text--purple-200{color:#ce93d8!important}.mdl-color--purple-200{background-color:#ce93d8!important}.mdl-color-text--purple-300{color:#ba68c8!important}.mdl-color--purple-300{background-color:#ba68c8!important}.mdl-color-text--purple-400{color:#ab47bc!important}.mdl-color--purple-400{background-color:#ab47bc!important}.mdl-color-text--purple-500{color:#9c27b0!important}.mdl-color--purple-500{background-color:#9c27b0!important}.mdl-color-text--purple-600{color:#8e24aa!important}.mdl-color--purple-600{background-color:#8e24aa!important}.mdl-color-text--purple-700{color:#7b1fa2!important}.mdl-color--purple-700{background-color:#7b1fa2!important}.mdl-color-text--purple-800{color:#6a1b9a!important}.mdl-color--purple-800{background-color:#6a1b9a!important}.mdl-color-text--purple-900{color:#4a148c!important}.mdl-color--purple-900{background-color:#4a148c!important}.mdl-color-text--purple-A100{color:#ea80fc!important}.mdl-color--purple-A100{background-color:#ea80fc!important}.mdl-color-text--purple-A200{color:#e040fb!important}.mdl-color--purple-A200{background-color:#e040fb!important}.mdl-color-text--purple-A400{color:#d500f9!important}.mdl-color--purple-A400{background-color:#d500f9!important}.mdl-color-text--purple-A700{color:#a0f!important}.mdl-color--purple-A700{background-color:#a0f!important}.mdl-color-text--deep-purple{color:#673ab7!important}.mdl-color--deep-purple{background-color:#673ab7!important}.mdl-color-text--deep-purple-50{color:#ede7f6!important}.mdl-color--deep-purple-50{background-color:#ede7f6!important}.mdl-color-text--deep-purple-100{color:#d1c4e9!important}.mdl-color--deep-purple-100{background-color:#d1c4e9!important}.mdl-color-text--deep-purple-200{color:#b39ddb!important}.mdl-color--deep-purple-200{background-color:#b39ddb!important}.mdl-color-text--deep-purple-300{color:#9575cd!important}.mdl-color--deep-purple-300{background-color:#9575cd!important}.mdl-color-text--deep-purple-400{color:#7e57c2!important}.mdl-color--deep-purple-400{background-color:#7e57c2!important}.mdl-color-text--deep-purple-500{color:#673ab7!important}.mdl-color--deep-purple-500{background-color:#673ab7!important}.mdl-color-text--deep-purple-600{color:#5e35b1!important}.mdl-color--deep-purple-600{background-color:#5e35b1!important}.mdl-color-text--deep-purple-700{color:#512da8!important}.mdl-color--deep-purple-700{background-color:#512da8!important}.mdl-color-text--deep-purple-800{color:#4527a0!important}.mdl-color--deep-purple-800{background-color:#4527a0!important}.mdl-color-text--deep-purple-900{color:#311b92!important}.mdl-color--deep-purple-900{background-color:#311b92!important}.mdl-color-text--deep-purple-A100{color:#b388ff!important}.mdl-color--deep-purple-A100{background-color:#b388ff!important}.mdl-color-text--deep-purple-A200{color:#7c4dff!important}.mdl-color--deep-purple-A200{background-color:#7c4dff!important}.mdl-color-text--deep-purple-A400{color:#651fff!important}.mdl-color--deep-purple-A400{background-color:#651fff!important}.mdl-color-text--deep-purple-A700{color:#6200ea!important}.mdl-color--deep-purple-A700{background-color:#6200ea!important}.mdl-color-text--indigo{color:#3f51b5!important}.mdl-color--indigo{background-color:#3f51b5!important}.mdl-color-text--indigo-50{color:#e8eaf6!important}.mdl-color--indigo-50{background-color:#e8eaf6!important}.mdl-color-text--indigo-100{color:#c5cae9!important}.mdl-color--indigo-100{background-color:#c5cae9!important}.mdl-color-text--indigo-200{color:#9fa8da!important}.mdl-color--indigo-200{background-color:#9fa8da!important}.mdl-color-text--indigo-300{color:#7986cb!important}.mdl-color--indigo-300{background-color:#7986cb!important}.mdl-color-text--indigo-400{color:#5c6bc0!important}.mdl-color--indigo-400{background-color:#5c6bc0!important}.mdl-color-text--indigo-500{color:#3f51b5!important}.mdl-color--indigo-500{background-color:#3f51b5!important}.mdl-color-text--indigo-600{color:#3949ab!important}.mdl-color--indigo-600{background-color:#3949ab!important}.mdl-color-text--indigo-700{color:#303f9f!important}.mdl-color--indigo-700{background-color:#303f9f!important}.mdl-color-text--indigo-800{color:#283593!important}.mdl-color--indigo-800{background-color:#283593!important}.mdl-color-text--indigo-900{color:#1a237e!important}.mdl-color--indigo-900{background-color:#1a237e!important}.mdl-color-text--indigo-A100{color:#8c9eff!important}.mdl-color--indigo-A100{background-color:#8c9eff!important}.mdl-color-text--indigo-A200{color:#536dfe!important}.mdl-color--indigo-A200{background-color:#536dfe!important}.mdl-color-text--indigo-A400{color:#3d5afe!important}.mdl-color--indigo-A400{background-color:#3d5afe!important}.mdl-color-text--indigo-A700{color:#304ffe!important}.mdl-color--indigo-A700{background-color:#304ffe!important}.mdl-color-text--blue{color:#2196f3!important}.mdl-color--blue{background-color:#2196f3!important}.mdl-color-text--blue-50{color:#e3f2fd!important}.mdl-color--blue-50{background-color:#e3f2fd!important}.mdl-color-text--blue-100{color:#bbdefb!important}.mdl-color--blue-100{background-color:#bbdefb!important}.mdl-color-text--blue-200{color:#90caf9!important}.mdl-color--blue-200{background-color:#90caf9!important}.mdl-color-text--blue-300{color:#64b5f6!important}.mdl-color--blue-300{background-color:#64b5f6!important}.mdl-color-text--blue-400{color:#42a5f5!important}.mdl-color--blue-400{background-color:#42a5f5!important}.mdl-color-text--blue-500{color:#2196f3!important}.mdl-color--blue-500{background-color:#2196f3!important}.mdl-color-text--blue-600{color:#1e88e5!important}.mdl-color--blue-600{background-color:#1e88e5!important}.mdl-color-text--blue-700{color:#1976d2!important}.mdl-color--blue-700{background-color:#1976d2!important}.mdl-color-text--blue-800{color:#1565c0!important}.mdl-color--blue-800{background-color:#1565c0!important}.mdl-color-text--blue-900{color:#0d47a1!important}.mdl-color--blue-900{background-color:#0d47a1!important}.mdl-color-text--blue-A100{color:#82b1ff!important}.mdl-color--blue-A100{background-color:#82b1ff!important}.mdl-color-text--blue-A200{color:#448aff!important}.mdl-color--blue-A200{background-color:#448aff!important}.mdl-color-text--blue-A400{color:#2979ff!important}.mdl-color--blue-A400{background-color:#2979ff!important}.mdl-color-text--blue-A700{color:#2962ff!important}.mdl-color--blue-A700{background-color:#2962ff!important}.mdl-color-text--light-blue{color:#03a9f4!important}.mdl-color--light-blue{background-color:#03a9f4!important}.mdl-color-text--light-blue-50{color:#e1f5fe!important}.mdl-color--light-blue-50{background-color:#e1f5fe!important}.mdl-color-text--light-blue-100{color:#b3e5fc!important}.mdl-color--light-blue-100{background-color:#b3e5fc!important}.mdl-color-text--light-blue-200{color:#81d4fa!important}.mdl-color--light-blue-200{background-color:#81d4fa!important}.mdl-color-text--light-blue-300{color:#4fc3f7!important}.mdl-color--light-blue-300{background-color:#4fc3f7!important}.mdl-color-text--light-blue-400{color:#29b6f6!important}.mdl-color--light-blue-400{background-color:#29b6f6!important}.mdl-color-text--light-blue-500{color:#03a9f4!important}.mdl-color--light-blue-500{background-color:#03a9f4!important}.mdl-color-text--light-blue-600{color:#039be5!important}.mdl-color--light-blue-600{background-color:#039be5!important}.mdl-color-text--light-blue-700{color:#0288d1!important}.mdl-color--light-blue-700{background-color:#0288d1!important}.mdl-color-text--light-blue-800{color:#0277bd!important}.mdl-color--light-blue-800{background-color:#0277bd!important}.mdl-color-text--light-blue-900{color:#01579b!important}.mdl-color--light-blue-900{background-color:#01579b!important}.mdl-color-text--light-blue-A100{color:#80d8ff!important}.mdl-color--light-blue-A100{background-color:#80d8ff!important}.mdl-color-text--light-blue-A200{color:#40c4ff!important}.mdl-color--light-blue-A200{background-color:#40c4ff!important}.mdl-color-text--light-blue-A400{color:#00b0ff!important}.mdl-color--light-blue-A400{background-color:#00b0ff!important}.mdl-color-text--light-blue-A700{color:#0091ea!important}.mdl-color--light-blue-A700{background-color:#0091ea!important}.mdl-color-text--cyan{color:#00bcd4!important}.mdl-color--cyan{background-color:#00bcd4!important}.mdl-color-text--cyan-50{color:#e0f7fa!important}.mdl-color--cyan-50{background-color:#e0f7fa!important}.mdl-color-text--cyan-100{color:#b2ebf2!important}.mdl-color--cyan-100{background-color:#b2ebf2!important}.mdl-color-text--cyan-200{color:#80deea!important}.mdl-color--cyan-200{background-color:#80deea!important}.mdl-color-text--cyan-300{color:#4dd0e1!important}.mdl-color--cyan-300{background-color:#4dd0e1!important}.mdl-color-text--cyan-400{color:#26c6da!important}.mdl-color--cyan-400{background-color:#26c6da!important}.mdl-color-text--cyan-500{color:#00bcd4!important}.mdl-color--cyan-500{background-color:#00bcd4!important}.mdl-color-text--cyan-600{color:#00acc1!important}.mdl-color--cyan-600{background-color:#00acc1!important}.mdl-color-text--cyan-700{color:#0097a7!important}.mdl-color--cyan-700{background-color:#0097a7!important}.mdl-color-text--cyan-800{color:#00838f!important}.mdl-color--cyan-800{background-color:#00838f!important}.mdl-color-text--cyan-900{color:#006064!important}.mdl-color--cyan-900{background-color:#006064!important}.mdl-color-text--cyan-A100{color:#84ffff!important}.mdl-color--cyan-A100{background-color:#84ffff!important}.mdl-color-text--cyan-A200{color:#18ffff!important}.mdl-color--cyan-A200{background-color:#18ffff!important}.mdl-color-text--cyan-A400{color:#00e5ff!important}.mdl-color--cyan-A400{background-color:#00e5ff!important}.mdl-color-text--cyan-A700{color:#00b8d4!important}.mdl-color--cyan-A700{background-color:#00b8d4!important}.mdl-color-text--teal{color:#009688!important}.mdl-color--teal{background-color:#009688!important}.mdl-color-text--teal-50{color:#e0f2f1!important}.mdl-color--teal-50{background-color:#e0f2f1!important}.mdl-color-text--teal-100{color:#b2dfdb!important}.mdl-color--teal-100{background-color:#b2dfdb!important}.mdl-color-text--teal-200{color:#80cbc4!important}.mdl-color--teal-200{background-color:#80cbc4!important}.mdl-color-text--teal-300{color:#4db6ac!important}.mdl-color--teal-300{background-color:#4db6ac!important}.mdl-color-text--teal-400{color:#26a69a!important}.mdl-color--teal-400{background-color:#26a69a!important}.mdl-color-text--teal-500{color:#009688!important}.mdl-color--teal-500{background-color:#009688!important}.mdl-color-text--teal-600{color:#00897b!important}.mdl-color--teal-600{background-color:#00897b!important}.mdl-color-text--teal-700{color:#00796b!important}.mdl-color--teal-700{background-color:#00796b!important}.mdl-color-text--teal-800{color:#00695c!important}.mdl-color--teal-800{background-color:#00695c!important}.mdl-color-text--teal-900{color:#004d40!important}.mdl-color--teal-900{background-color:#004d40!important}.mdl-color-text--teal-A100{color:#a7ffeb!important}.mdl-color--teal-A100{background-color:#a7ffeb!important}.mdl-color-text--teal-A200{color:#64ffda!important}.mdl-color--teal-A200{background-color:#64ffda!important}.mdl-color-text--teal-A400{color:#1de9b6!important}.mdl-color--teal-A400{background-color:#1de9b6!important}.mdl-color-text--teal-A700{color:#00bfa5!important}.mdl-color--teal-A700{background-color:#00bfa5!important}.mdl-color-text--green{color:#4caf50!important}.mdl-color--green{background-color:#4caf50!important}.mdl-color-text--green-50{color:#e8f5e9!important}.mdl-color--green-50{background-color:#e8f5e9!important}.mdl-color-text--green-100{color:#c8e6c9!important}.mdl-color--green-100{background-color:#c8e6c9!important}.mdl-color-text--green-200{color:#a5d6a7!important}.mdl-color--green-200{background-color:#a5d6a7!important}.mdl-color-text--green-300{color:#81c784!important}.mdl-color--green-300{background-color:#81c784!important}.mdl-color-text--green-400{color:#66bb6a!important}.mdl-color--green-400{background-color:#66bb6a!important}.mdl-color-text--green-500{color:#4caf50!important}.mdl-color--green-500{background-color:#4caf50!important}.mdl-color-text--green-600{color:#43a047!important}.mdl-color--green-600{background-color:#43a047!important}.mdl-color-text--green-700{color:#388e3c!important}.mdl-color--green-700{background-color:#388e3c!important}.mdl-color-text--green-800{color:#2e7d32!important}.mdl-color--green-800{background-color:#2e7d32!important}.mdl-color-text--green-900{color:#1b5e20!important}.mdl-color--green-900{background-color:#1b5e20!important}.mdl-color-text--green-A100{color:#b9f6ca!important}.mdl-color--green-A100{background-color:#b9f6ca!important}.mdl-color-text--green-A200{color:#69f0ae!important}.mdl-color--green-A200{background-color:#69f0ae!important}.mdl-color-text--green-A400{color:#00e676!important}.mdl-color--green-A400{background-color:#00e676!important}.mdl-color-text--green-A700{color:#00c853!important}.mdl-color--green-A700{background-color:#00c853!important}.mdl-color-text--light-green{color:#8bc34a!important}.mdl-color--light-green{background-color:#8bc34a!important}.mdl-color-text--light-green-50{color:#f1f8e9!important}.mdl-color--light-green-50{background-color:#f1f8e9!important}.mdl-color-text--light-green-100{color:#dcedc8!important}.mdl-color--light-green-100{background-color:#dcedc8!important}.mdl-color-text--light-green-200{color:#c5e1a5!important}.mdl-color--light-green-200{background-color:#c5e1a5!important}.mdl-color-text--light-green-300{color:#aed581!important}.mdl-color--light-green-300{background-color:#aed581!important}.mdl-color-text--light-green-400{color:#9ccc65!important}.mdl-color--light-green-400{background-color:#9ccc65!important}.mdl-color-text--light-green-500{color:#8bc34a!important}.mdl-color--light-green-500{background-color:#8bc34a!important}.mdl-color-text--light-green-600{color:#7cb342!important}.mdl-color--light-green-600{background-color:#7cb342!important}.mdl-color-text--light-green-700{color:#689f38!important}.mdl-color--light-green-700{background-color:#689f38!important}.mdl-color-text--light-green-800{color:#558b2f!important}.mdl-color--light-green-800{background-color:#558b2f!important}.mdl-color-text--light-green-900{color:#33691e!important}.mdl-color--light-green-900{background-color:#33691e!important}.mdl-color-text--light-green-A100{color:#ccff90!important}.mdl-color--light-green-A100{background-color:#ccff90!important}.mdl-color-text--light-green-A200{color:#b2ff59!important}.mdl-color--light-green-A200{background-color:#b2ff59!important}.mdl-color-text--light-green-A400{color:#76ff03!important}.mdl-color--light-green-A400{background-color:#76ff03!important}.mdl-color-text--light-green-A700{color:#64dd17!important}.mdl-color--light-green-A700{background-color:#64dd17!important}.mdl-color-text--lime{color:#cddc39!important}.mdl-color--lime{background-color:#cddc39!important}.mdl-color-text--lime-50{color:#f9fbe7!important}.mdl-color--lime-50{background-color:#f9fbe7!important}.mdl-color-text--lime-100{color:#f0f4c3!important}.mdl-color--lime-100{background-color:#f0f4c3!important}.mdl-color-text--lime-200{color:#e6ee9c!important}.mdl-color--lime-200{background-color:#e6ee9c!important}.mdl-color-text--lime-300{color:#dce775!important}.mdl-color--lime-300{background-color:#dce775!important}.mdl-color-text--lime-400{color:#d4e157!important}.mdl-color--lime-400{background-color:#d4e157!important}.mdl-color-text--lime-500{color:#cddc39!important}.mdl-color--lime-500{background-color:#cddc39!important}.mdl-color-text--lime-600{color:#c0ca33!important}.mdl-color--lime-600{background-color:#c0ca33!important}.mdl-color-text--lime-700{color:#afb42b!important}.mdl-color--lime-700{background-color:#afb42b!important}.mdl-color-text--lime-800{color:#9e9d24!important}.mdl-color--lime-800{background-color:#9e9d24!important}.mdl-color-text--lime-900{color:#827717!important}.mdl-color--lime-900{background-color:#827717!important}.mdl-color-text--lime-A100{color:#f4ff81!important}.mdl-color--lime-A100{background-color:#f4ff81!important}.mdl-color-text--lime-A200{color:#eeff41!important}.mdl-color--lime-A200{background-color:#eeff41!important}.mdl-color-text--lime-A400{color:#c6ff00!important}.mdl-color--lime-A400{background-color:#c6ff00!important}.mdl-color-text--lime-A700{color:#aeea00!important}.mdl-color--lime-A700{background-color:#aeea00!important}.mdl-color-text--yellow{color:#ffeb3b!important}.mdl-color--yellow{background-color:#ffeb3b!important}.mdl-color-text--yellow-50{color:#fffde7!important}.mdl-color--yellow-50{background-color:#fffde7!important}.mdl-color-text--yellow-100{color:#fff9c4!important}.mdl-color--yellow-100{background-color:#fff9c4!important}.mdl-color-text--yellow-200{color:#fff59d!important}.mdl-color--yellow-200{background-color:#fff59d!important}.mdl-color-text--yellow-300{color:#fff176!important}.mdl-color--yellow-300{background-color:#fff176!important}.mdl-color-text--yellow-400{color:#ffee58!important}.mdl-color--yellow-400{background-color:#ffee58!important}.mdl-color-text--yellow-500{color:#ffeb3b!important}.mdl-color--yellow-500{background-color:#ffeb3b!important}.mdl-color-text--yellow-600{color:#fdd835!important}.mdl-color--yellow-600{background-color:#fdd835!important}.mdl-color-text--yellow-700{color:#fbc02d!important}.mdl-color--yellow-700{background-color:#fbc02d!important}.mdl-color-text--yellow-800{color:#f9a825!important}.mdl-color--yellow-800{background-color:#f9a825!important}.mdl-color-text--yellow-900{color:#f57f17!important}.mdl-color--yellow-900{background-color:#f57f17!important}.mdl-color-text--yellow-A100{color:#ffff8d!important}.mdl-color--yellow-A100{background-color:#ffff8d!important}.mdl-color-text--yellow-A200{color:#ff0!important}.mdl-color--yellow-A200{background-color:#ff0!important}.mdl-color-text--yellow-A400{color:#ffea00!important}.mdl-color--yellow-A400{background-color:#ffea00!important}.mdl-color-text--yellow-A700{color:#ffd600!important}.mdl-color--yellow-A700{background-color:#ffd600!important}.mdl-color-text--amber{color:#ffc107!important}.mdl-color--amber{background-color:#ffc107!important}.mdl-color-text--amber-50{color:#fff8e1!important}.mdl-color--amber-50{background-color:#fff8e1!important}.mdl-color-text--amber-100{color:#ffecb3!important}.mdl-color--amber-100{background-color:#ffecb3!important}.mdl-color-text--amber-200{color:#ffe082!important}.mdl-color--amber-200{background-color:#ffe082!important}.mdl-color-text--amber-300{color:#ffd54f!important}.mdl-color--amber-300{background-color:#ffd54f!important}.mdl-color-text--amber-400{color:#ffca28!important}.mdl-color--amber-400{background-color:#ffca28!important}.mdl-color-text--amber-500{color:#ffc107!important}.mdl-color--amber-500{background-color:#ffc107!important}.mdl-color-text--amber-600{color:#ffb300!important}.mdl-color--amber-600{background-color:#ffb300!important}.mdl-color-text--amber-700{color:#ffa000!important}.mdl-color--amber-700{background-color:#ffa000!important}.mdl-color-text--amber-800{color:#ff8f00!important}.mdl-color--amber-800{background-color:#ff8f00!important}.mdl-color-text--amber-900{color:#ff6f00!important}.mdl-color--amber-900{background-color:#ff6f00!important}.mdl-color-text--amber-A100{color:#ffe57f!important}.mdl-color--amber-A100{background-color:#ffe57f!important}.mdl-color-text--amber-A200{color:#ffd740!important}.mdl-color--amber-A200{background-color:#ffd740!important}.mdl-color-text--amber-A400{color:#ffc400!important}.mdl-color--amber-A400{background-color:#ffc400!important}.mdl-color-text--amber-A700{color:#ffab00!important}.mdl-color--amber-A700{background-color:#ffab00!important}.mdl-color-text--orange{color:#ff9800!important}.mdl-color--orange{background-color:#ff9800!important}.mdl-color-text--orange-50{color:#fff3e0!important}.mdl-color--orange-50{background-color:#fff3e0!important}.mdl-color-text--orange-100{color:#ffe0b2!important}.mdl-color--orange-100{background-color:#ffe0b2!important}.mdl-color-text--orange-200{color:#ffcc80!important}.mdl-color--orange-200{background-color:#ffcc80!important}.mdl-color-text--orange-300{color:#ffb74d!important}.mdl-color--orange-300{background-color:#ffb74d!important}.mdl-color-text--orange-400{color:#ffa726!important}.mdl-color--orange-400{background-color:#ffa726!important}.mdl-color-text--orange-500{color:#ff9800!important}.mdl-color--orange-500{background-color:#ff9800!important}.mdl-color-text--orange-600{color:#fb8c00!important}.mdl-color--orange-600{background-color:#fb8c00!important}.mdl-color-text--orange-700{color:#f57c00!important}.mdl-color--orange-700{background-color:#f57c00!important}.mdl-color-text--orange-800{color:#ef6c00!important}.mdl-color--orange-800{background-color:#ef6c00!important}.mdl-color-text--orange-900{color:#e65100!important}.mdl-color--orange-900{background-color:#e65100!important}.mdl-color-text--orange-A100{color:#ffd180!important}.mdl-color--orange-A100{background-color:#ffd180!important}.mdl-color-text--orange-A200{color:#ffab40!important}.mdl-color--orange-A200{background-color:#ffab40!important}.mdl-color-text--orange-A400{color:#ff9100!important}.mdl-color--orange-A400{background-color:#ff9100!important}.mdl-color-text--orange-A700{color:#ff6d00!important}.mdl-color--orange-A700{background-color:#ff6d00!important}.mdl-color-text--deep-orange{color:#ff5722!important}.mdl-color--deep-orange{background-color:#ff5722!important}.mdl-color-text--deep-orange-50{color:#fbe9e7!important}.mdl-color--deep-orange-50{background-color:#fbe9e7!important}.mdl-color-text--deep-orange-100{color:#ffccbc!important}.mdl-color--deep-orange-100{background-color:#ffccbc!important}.mdl-color-text--deep-orange-200{color:#ffab91!important}.mdl-color--deep-orange-200{background-color:#ffab91!important}.mdl-color-text--deep-orange-300{color:#ff8a65!important}.mdl-color--deep-orange-300{background-color:#ff8a65!important}.mdl-color-text--deep-orange-400{color:#ff7043!important}.mdl-color--deep-orange-400{background-color:#ff7043!important}.mdl-color-text--deep-orange-500{color:#ff5722!important}.mdl-color--deep-orange-500{background-color:#ff5722!important}.mdl-color-text--deep-orange-600{color:#f4511e!important}.mdl-color--deep-orange-600{background-color:#f4511e!important}.mdl-color-text--deep-orange-700{color:#e64a19!important}.mdl-color--deep-orange-700{background-color:#e64a19!important}.mdl-color-text--deep-orange-800{color:#d84315!important}.mdl-color--deep-orange-800{background-color:#d84315!important}.mdl-color-text--deep-orange-900{color:#bf360c!important}.mdl-color--deep-orange-900{background-color:#bf360c!important}.mdl-color-text--deep-orange-A100{color:#ff9e80!important}.mdl-color--deep-orange-A100{background-color:#ff9e80!important}.mdl-color-text--deep-orange-A200{color:#ff6e40!important}.mdl-color--deep-orange-A200{background-color:#ff6e40!important}.mdl-color-text--deep-orange-A400{color:#ff3d00!important}.mdl-color--deep-orange-A400{background-color:#ff3d00!important}.mdl-color-text--deep-orange-A700{color:#dd2c00!important}.mdl-color--deep-orange-A700{background-color:#dd2c00!important}.mdl-color-text--brown{color:#795548!important}.mdl-color--brown{background-color:#795548!important}.mdl-color-text--brown-50{color:#efebe9!important}.mdl-color--brown-50{background-color:#efebe9!important}.mdl-color-text--brown-100{color:#d7ccc8!important}.mdl-color--brown-100{background-color:#d7ccc8!important}.mdl-color-text--brown-200{color:#bcaaa4!important}.mdl-color--brown-200{background-color:#bcaaa4!important}.mdl-color-text--brown-300{color:#a1887f!important}.mdl-color--brown-300{background-color:#a1887f!important}.mdl-color-text--brown-400{color:#8d6e63!important}.mdl-color--brown-400{background-color:#8d6e63!important}.mdl-color-text--brown-500{color:#795548!important}.mdl-color--brown-500{background-color:#795548!important}.mdl-color-text--brown-600{color:#6d4c41!important}.mdl-color--brown-600{background-color:#6d4c41!important}.mdl-color-text--brown-700{color:#5d4037!important}.mdl-color--brown-700{background-color:#5d4037!important}.mdl-color-text--brown-800{color:#4e342e!important}.mdl-color--brown-800{background-color:#4e342e!important}.mdl-color-text--brown-900{color:#3e2723!important}.mdl-color--brown-900{background-color:#3e2723!important}.mdl-color-text--grey{color:#9e9e9e!important}.mdl-color--grey{background-color:#9e9e9e!important}.mdl-color-text--grey-50{color:#fafafa!important}.mdl-color--grey-50{background-color:#fafafa!important}.mdl-color-text--grey-100{color:#f5f5f5!important}.mdl-color--grey-100{background-color:#f5f5f5!important}.mdl-color-text--grey-200{color:#eee!important}.mdl-color--grey-200{background-color:#eee!important}.mdl-color-text--grey-300{color:#e0e0e0!important}.mdl-color--grey-300{background-color:#e0e0e0!important}.mdl-color-text--grey-400{color:#bdbdbd!important}.mdl-color--grey-400{background-color:#bdbdbd!important}.mdl-color-text--grey-500{color:#9e9e9e!important}.mdl-color--grey-500{background-color:#9e9e9e!important}.mdl-color-text--grey-600{color:#757575!important}.mdl-color--grey-600{background-color:#757575!important}.mdl-color-text--grey-700{color:#616161!important}.mdl-color--grey-700{background-color:#616161!important}.mdl-color-text--grey-800{color:#424242!important}.mdl-color--grey-800{background-color:#424242!important}.mdl-color-text--grey-900{color:#212121!important}.mdl-color--grey-900{background-color:#212121!important}.mdl-color-text--blue-grey{color:#607d8b!important}.mdl-color--blue-grey{background-color:#607d8b!important}.mdl-color-text--blue-grey-50{color:#eceff1!important}.mdl-color--blue-grey-50{background-color:#eceff1!important}.mdl-color-text--blue-grey-100{color:#cfd8dc!important}.mdl-color--blue-grey-100{background-color:#cfd8dc!important}.mdl-color-text--blue-grey-200{color:#b0bec5!important}.mdl-color--blue-grey-200{background-color:#b0bec5!important}.mdl-color-text--blue-grey-300{color:#90a4ae!important}.mdl-color--blue-grey-300{background-color:#90a4ae!important}.mdl-color-text--blue-grey-400{color:#78909c!important}.mdl-color--blue-grey-400{background-color:#78909c!important}.mdl-color-text--blue-grey-500{color:#607d8b!important}.mdl-color--blue-grey-500{background-color:#607d8b!important}.mdl-color-text--blue-grey-600{color:#546e7a!important}.mdl-color--blue-grey-600{background-color:#546e7a!important}.mdl-color-text--blue-grey-700{color:#455a64!important}.mdl-color--blue-grey-700{background-color:#455a64!important}.mdl-color-text--blue-grey-800{color:#37474f!important}.mdl-color--blue-grey-800{background-color:#37474f!important}.mdl-color-text--blue-grey-900{color:#263238!important}.mdl-color--blue-grey-900{background-color:#263238!important}.mdl-color--black{background-color:#000!important}.mdl-color-text--black{color:#000!important}.mdl-color--white{background-color:#fff!important}.mdl-color-text--white{color:#fff!important}.mdl-color--primary{background-color:#3f51b5!important}.mdl-color--primary-contrast{background-color:#fff!important}.mdl-color--primary-dark{background-color:#303f9f!important}.mdl-color--accent{background-color:#ff4081!important}.mdl-color--accent-contrast{background-color:#fff!important}.mdl-color-text--primary{color:#3f51b5!important}.mdl-color-text--primary-contrast{color:#fff!important}.mdl-color-text--primary-dark{color:#303f9f!important}.mdl-color-text--accent{color:#ff4081!important}.mdl-color-text--accent-contrast{color:#fff!important}.mdl-ripple{background:#000;border-radius:50%;height:50px;left:0;opacity:0;pointer-events:none;position:absolute;top:0;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:50px;overflow:hidden}.mdl-ripple.is-animating{-webkit-transition:-webkit-transform .3s cubic-bezier(0,0,.2,1),width .3s cubic-bezier(0,0,.2,1),height .3s cubic-bezier(0,0,.2,1),opacity .6s cubic-bezier(0,0,.2,1);transition:transform .3s cubic-bezier(0,0,.2,1),width .3s cubic-bezier(0,0,.2,1),height .3s cubic-bezier(0,0,.2,1),opacity .6s cubic-bezier(0,0,.2,1)}.mdl-ripple.is-visible{opacity:.3}.mdl-animation--default,.mdl-animation--fast-out-slow-in{-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.mdl-animation--linear-out-slow-in{-webkit-transition-timing-function:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1)}.mdl-animation--fast-out-linear-in{-webkit-transition-timing-function:cubic-bezier(.4,0,1,1);transition-timing-function:cubic-bezier(.4,0,1,1)}.mdl-badge{position:relative;white-space:nowrap;margin-right:24px}.mdl-badge:not([data-badge]){margin-right:auto}.mdl-badge[data-badge]:after{content:attr(data-badge);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;position:absolute;top:-11px;right:-24px;font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:600;font-size:12px;width:22px;height:22px;border-radius:50%;background:#ff4081;color:#fff}.mdl-button .mdl-badge[data-badge]:after{top:-10px;right:-5px}.mdl-badge.mdl-badge--no-background[data-badge]:after{color:#ff4081;background:rgba(255,255,255,.2);box-shadow:0 0 1px gray}.mdl-button{background:0 0;border:none;border-radius:2px;color:#000;position:relative;height:36px;min-width:64px;padding:0 8px;display:inline-block;font-family:Roboto,Helvetica,Arial,sans-serif;font-size:14px;font-weight:500;letter-spacing:0;overflow:hidden;will-change:box-shadow,transform;-webkit-transition:box-shadow .2s cubic-bezier(.4,0,1,1),background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);transition:box-shadow .2s cubic-bezier(.4,0,1,1),background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);outline:0;cursor:pointer;text-align:center;line-height:36px}.mdl-button--fab,.mdl-button--icon{overflow:hidden;font-size:24px;padding:0}.mdl-button::-moz-focus-inner{border:0}.mdl-button:hover{background-color:rgba(158,158,158,.2)}.mdl-button:focus:not(:active){background-color:rgba(0,0,0,.12)}.mdl-button:active{background-color:rgba(158,158,158,.4)}.mdl-button.mdl-button--colored{color:#3f51b5}.mdl-button.mdl-button--colored:focus:not(:active){background-color:rgba(0,0,0,.12)}input.mdl-button[type=submit]{-webkit-appearance:none}.mdl-button--raised{background:rgba(158,158,158,.2);box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.mdl-button--raised:active{box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2);background-color:rgba(158,158,158,.4)}.mdl-button--raised:focus:not(:active){box-shadow:0 0 8px rgba(0,0,0,.18),0 8px 16px rgba(0,0,0,.36);background-color:rgba(158,158,158,.4)}.mdl-button--raised.mdl-button--colored{background:#3f51b5;color:#fff}.mdl-button--raised.mdl-button--colored:active,.mdl-button--raised.mdl-button--colored:focus:not(:active),.mdl-button--raised.mdl-button--colored:hover{background-color:#3f51b5}.mdl-button--raised.mdl-button--colored .mdl-ripple{background:#fff}.mdl-button--fab{border-radius:50%;height:56px;margin:auto;min-width:56px;width:56px;background:rgba(158,158,158,.2);box-shadow:0 1px 1.5px 0 rgba(0,0,0,.12),0 1px 1px 0 rgba(0,0,0,.24);position:relative;line-height:normal}.mdl-button--fab .material-icons{transform:translate(-12px,-12px);line-height:24px;width:24px}.mdl-button--fab .material-icons,.mdl-button--icon .material-icons{position:absolute;top:50%;left:50%;-webkit-transform:translate(-12px,-12px);-ms-transform:translate(-12px,-12px)}.mdl-button--fab.mdl-button--mini-fab{height:40px;min-width:40px;width:40px}.mdl-button--fab .mdl-button__ripple-container{border-radius:50%;-webkit-mask-image:-webkit-radial-gradient(circle,#fff,#000)}.mdl-button--fab:active{box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2);background-color:rgba(158,158,158,.4)}.mdl-button--fab:focus:not(:active){box-shadow:0 0 8px rgba(0,0,0,.18),0 8px 16px rgba(0,0,0,.36);background-color:rgba(158,158,158,.4)}.mdl-button--fab.mdl-button--colored{background:#ff4081;color:#fff}.mdl-button--fab.mdl-button--colored:active,.mdl-button--fab.mdl-button--colored:focus:not(:active),.mdl-button--fab.mdl-button--colored:hover{background-color:#ff4081}.mdl-button--fab.mdl-button--colored .mdl-ripple{background:#fff}.mdl-button--icon{border-radius:50%;height:32px;margin-left:0;margin-right:0;min-width:32px;width:32px;color:inherit;line-height:normal}.mdl-button--icon .material-icons{transform:translate(-12px,-12px);line-height:24px;width:24px}.mdl-button--icon.mdl-button--mini-icon{height:24px;min-width:24px;width:24px}.mdl-button--icon.mdl-button--mini-icon .material-icons{top:0;left:0}.mdl-button--icon .mdl-button__ripple-container{border-radius:50%;-webkit-mask-image:-webkit-radial-gradient(circle,#fff,#000)}.mdl-button__ripple-container{display:block;height:100%;left:0;position:absolute;top:0;width:100%;z-index:0;overflow:hidden}.mdl-button.mdl-button--disabled .mdl-button__ripple-container .mdl-ripple,.mdl-button[disabled] .mdl-button__ripple-container .mdl-ripple{background-color:transparent}.mdl-button--primary.mdl-button--primary{color:#3f51b5}.mdl-button--primary.mdl-button--primary .mdl-ripple{background:#fff}.mdl-button--primary.mdl-button--primary.mdl-button--fab,.mdl-button--primary.mdl-button--primary.mdl-button--raised{color:#fff;background-color:#3f51b5}.mdl-button--accent.mdl-button--accent{color:#ff4081}.mdl-button--accent.mdl-button--accent .mdl-ripple{background:#fff}.mdl-button--accent.mdl-button--accent.mdl-button--fab,.mdl-button--accent.mdl-button--accent.mdl-button--raised{color:#fff;background-color:#ff4081}.mdl-button.mdl-button--disabled.mdl-button--disabled,.mdl-button[disabled][disabled]{color:rgba(0,0,0,.26);cursor:auto;background-color:transparent}.mdl-button--fab.mdl-button--disabled.mdl-button--disabled,.mdl-button--fab[disabled][disabled],.mdl-button--raised.mdl-button--disabled.mdl-button--disabled,.mdl-button--raised[disabled][disabled]{background-color:rgba(0,0,0,.12);color:rgba(0,0,0,.26);box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.mdl-button--colored.mdl-button--disabled.mdl-button--disabled,.mdl-button--colored[disabled][disabled]{color:rgba(0,0,0,.26)}.mdl-card{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;font-size:16px;font-weight:400;min-height:200px;overflow:hidden;width:330px;z-index:1;position:relative;background:#fff;border-radius:2px}.mdl-card__media{background-color:#ff4081;background-repeat:repeat;background-position:50% 50%;background-size:cover;background-origin:padding-box;background-attachment:scroll}.mdl-card__title{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;color:#000;display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:stretch;-webkit-justify-content:stretch;-ms-flex-pack:stretch;justify-content:stretch;line-height:normal;padding:16px;-webkit-perspective-origin:165px 56px;perspective-origin:165px 56px;-webkit-transform-origin:165px 56px;-ms-transform-origin:165px 56px;transform-origin:165px 56px}.mdl-card__title.mdl-card--border{border-bottom:1px solid rgba(0,0,0,.1)}.mdl-card__title-text{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end;color:inherit;display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;font-size:24px;font-weight:300;line-height:normal;overflow:hidden;-webkit-transform-origin:149px 48px;-ms-transform-origin:149px 48px;transform-origin:149px 48px;margin:0}.mdl-card__subtitle-text{font-size:14px;color:grey;margin:0}.mdl-card__supporting-text{color:rgba(0,0,0,.54);font-size:13px;line-height:18px;overflow:hidden;padding:16px;width:90%}.mdl-card__actions,.mdl-checkbox{box-sizing:border-box;width:100%}.mdl-card__actions{font-size:16px;line-height:normal;background-color:transparent;padding:8px}.mdl-card__actions.mdl-card--border{border-top:1px solid rgba(0,0,0,.1)}.mdl-card--expand{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.mdl-card__menu{position:absolute;right:16px;top:16px}.mdl-checkbox{position:relative;z-index:1;display:inline-block;height:24px;margin:0;padding:0}.mdl-checkbox.is-upgraded{padding-left:24px}.mdl-checkbox__input{line-height:24px}.mdl-checkbox.is-upgraded .mdl-checkbox__input{position:absolute;width:0;height:0;margin:0;padding:0;opacity:0;-ms-appearance:none;-moz-appearance:none;-webkit-appearance:none;appearance:none;border:none}.mdl-checkbox__box-outline,.mdl-checkbox__focus-helper{position:absolute;left:0;top:3px;display:inline-block;box-sizing:border-box;width:16px;height:16px}.mdl-checkbox__box-outline{margin:0;cursor:pointer;overflow:hidden;border:2px solid rgba(0,0,0,.54);border-radius:2px;z-index:2}.mdl-checkbox.is-checked .mdl-checkbox__box-outline{border:2px solid #3f51b5}.mdl-checkbox.is-disabled .mdl-checkbox__box-outline{border:2px solid rgba(0,0,0,.26);cursor:auto}.mdl-checkbox__focus-helper{border-radius:50%;background-color:transparent}.mdl-checkbox.is-focused .mdl-checkbox__focus-helper{box-shadow:0 0 0 8px rgba(0,0,0,.1);background-color:rgba(0,0,0,.1)}.mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper{box-shadow:0 0 0 8px rgba(63,81,181,.26);background-color:rgba(63,81,181,.26)}.mdl-layout__drawer,.mdl-layout__header,.mdl-menu__outline{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.mdl-checkbox__tick-outline{position:absolute;top:0;left:0;height:100%;width:100%;-webkit-mask:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMCwwIDAsMSAxLDEgMSwwIDAsMCB6IE0gMC44NTM0Mzc1LDAuMTY3MTg3NSAwLjk1OTY4NzUsMC4yNzMxMjUgMC40MjkzNzUsMC44MDM0Mzc1IDAuMzIzMTI1LDAuOTA5Njg3NSAwLjIxNzE4NzUsMC44MDM0Mzc1IDAuMDQwMzEyNSwwLjYyNjg3NSAwLjE0NjU2MjUsMC41MjA2MjUgMC4zMjMxMjUsMC42OTc1IDAuODUzNDM3NSwwLjE2NzE4NzUgeiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8bWFzayBpZD0ibWFzayIgbWFza1VuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgbWFza0NvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDAsMCAwLDEgMSwxIDEsMCAwLDAgeiBNIDAuODUzNDM3NSwwLjE2NzE4NzUgMC45NTk2ODc1LDAuMjczMTI1IDAuNDI5Mzc1LDAuODAzNDM3NSAwLjMyMzEyNSwwLjkwOTY4NzUgMC4yMTcxODc1LDAuODAzNDM3NSAwLjA0MDMxMjUsMC42MjY4NzUgMC4xNDY1NjI1LDAuNTIwNjI1IDAuMzIzMTI1LDAuNjk3NSAwLjg1MzQzNzUsMC4xNjcxODc1IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiIC8+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxyZWN0CiAgICAgd2lkdGg9IjEiCiAgICAgaGVpZ2h0PSIxIgogICAgIHg9IjAiCiAgICAgeT0iMCIKICAgICBjbGlwLXBhdGg9InVybCgjY2xpcCkiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KPC9zdmc+Cg==);mask:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMCwwIDAsMSAxLDEgMSwwIDAsMCB6IE0gMC44NTM0Mzc1LDAuMTY3MTg3NSAwLjk1OTY4NzUsMC4yNzMxMjUgMC40MjkzNzUsMC44MDM0Mzc1IDAuMzIzMTI1LDAuOTA5Njg3NSAwLjIxNzE4NzUsMC44MDM0Mzc1IDAuMDQwMzEyNSwwLjYyNjg3NSAwLjE0NjU2MjUsMC41MjA2MjUgMC4zMjMxMjUsMC42OTc1IDAuODUzNDM3NSwwLjE2NzE4NzUgeiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8bWFzayBpZD0ibWFzayIgbWFza1VuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgbWFza0NvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDAsMCAwLDEgMSwxIDEsMCAwLDAgeiBNIDAuODUzNDM3NSwwLjE2NzE4NzUgMC45NTk2ODc1LDAuMjczMTI1IDAuNDI5Mzc1LDAuODAzNDM3NSAwLjMyMzEyNSwwLjkwOTY4NzUgMC4yMTcxODc1LDAuODAzNDM3NSAwLjA0MDMxMjUsMC42MjY4NzUgMC4xNDY1NjI1LDAuNTIwNjI1IDAuMzIzMTI1LDAuNjk3NSAwLjg1MzQzNzUsMC4xNjcxODc1IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiIC8+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxyZWN0CiAgICAgd2lkdGg9IjEiCiAgICAgaGVpZ2h0PSIxIgogICAgIHg9IjAiCiAgICAgeT0iMCIKICAgICBjbGlwLXBhdGg9InVybCgjY2xpcCkiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KPC9zdmc+Cg==);background:0 0;-webkit-transition-duration:.28s;transition-duration:.28s;transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-property:background;transition-property:background}.mdl-checkbox__tick-outline,.mdl-data-table tbody tr{-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1)}.mdl-checkbox__ripple-container,.mdl-icon-toggle__ripple-container{box-sizing:border-box;overflow:hidden;-webkit-mask-image:-webkit-radial-gradient(circle,#fff,#000)}.mdl-checkbox.is-checked .mdl-checkbox__tick-outline{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K) #3f51b5}.mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K) rgba(0,0,0,.26)}.mdl-checkbox__label{position:relative;cursor:pointer;font-size:16px;line-height:24px;margin:0}.mdl-checkbox.is-disabled .mdl-checkbox__label{color:rgba(0,0,0,.26);cursor:auto}.mdl-checkbox__ripple-container{position:absolute;z-index:2;top:-6px;left:-10px;width:36px;height:36px;border-radius:50%;cursor:pointer}.mdl-checkbox__ripple-container .mdl-ripple{background:#3f51b5}.mdl-checkbox.is-disabled .mdl-checkbox__ripple-container{cursor:auto}.mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple{background:0 0}.mdl-data-table{position:relative;border:1px solid rgba(0,0,0,.12);border-collapse:collapse;white-space:nowrap;font-size:13px;background-color:#fff}.mdl-data-table thead{padding-bottom:3px}.mdl-data-table thead .mdl-data-table__select{margin-top:0}.mdl-data-table tbody tr{position:relative;height:48px;-webkit-transition-duration:.28s;transition-duration:.28s;transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-property:background-color;transition-property:background-color}.mdl-data-table tbody tr.is-selected{background-color:#e0e0e0}.mdl-data-table tbody tr:hover{background-color:#eee}.mdl-data-table td,.mdl-data-table th{padding:0 18px;text-align:right}.mdl-data-table td:first-of-type,.mdl-data-table th:first-of-type{padding-left:24px}.mdl-data-table td:last-of-type,.mdl-data-table th:last-of-type{padding-right:24px}.mdl-data-table td{position:relative;vertical-align:top;height:48px;border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12);padding-top:12px;box-sizing:border-box}.mdl-data-table td .mdl-data-table__select{vertical-align:top;position:absolute;left:24px}.mdl-data-table th{position:relative;vertical-align:bottom;text-overflow:ellipsis;font-weight:700;line-height:24px;letter-spacing:0;height:48px;font-size:12px;color:rgba(0,0,0,.54);padding-bottom:8px;box-sizing:border-box}.mdl-data-table th .mdl-data-table__select{position:absolute;bottom:8px;left:24px}.mdl-data-table__select{width:16px}.mdl-data-table__cell--non-numeric.mdl-data-table__cell--non-numeric{text-align:left}.mdl-mega-footer{padding:16px 40px;color:#9e9e9e;background-color:#424242}.mdl-mega-footer--bottom-section:after,.mdl-mega-footer--middle-section:after,.mdl-mega-footer--top-section:after,.mdl-mega-footer__bottom-section:after,.mdl-mega-footer__middle-section:after,.mdl-mega-footer__top-section:after{content:'';display:block;clear:both}.mdl-mega-footer--left-section,.mdl-mega-footer--right-section,.mdl-mega-footer__left-section,.mdl-mega-footer__right-section{margin-bottom:16px}.mdl-mega-footer--right-section a,.mdl-mega-footer__right-section a{display:block;margin-bottom:16px;color:inherit;text-decoration:none}@media screen and (min-width:760px){.mdl-mega-footer--left-section,.mdl-mega-footer__left-section{float:left}.mdl-mega-footer--right-section,.mdl-mega-footer__right-section{float:right}.mdl-mega-footer--right-section a,.mdl-mega-footer__right-section a{display:inline-block;margin-left:16px;line-height:36px;vertical-align:middle}}.mdl-mega-footer--social-btn,.mdl-mega-footer__social-btn{width:36px;height:36px;padding:0;margin:0;background-color:#9e9e9e;border:none}.mdl-mega-footer--drop-down-section,.mdl-mega-footer__drop-down-section{display:block;position:relative}@media screen and (min-width:760px){.mdl-mega-footer--drop-down-section,.mdl-mega-footer__drop-down-section{width:33%}.mdl-mega-footer--drop-down-section:nth-child(1),.mdl-mega-footer--drop-down-section:nth-child(2),.mdl-mega-footer__drop-down-section:nth-child(1),.mdl-mega-footer__drop-down-section:nth-child(2){float:left}.mdl-mega-footer--drop-down-section:nth-child(3),.mdl-mega-footer__drop-down-section:nth-child(3){float:right}.mdl-mega-footer--drop-down-section:nth-child(3):after,.mdl-mega-footer__drop-down-section:nth-child(3):after{clear:right}.mdl-mega-footer--drop-down-section:nth-child(4),.mdl-mega-footer__drop-down-section:nth-child(4){clear:right;float:right}.mdl-mega-footer--middle-section:after,.mdl-mega-footer__middle-section:after{content:'';display:block;clear:both}.mdl-mega-footer--bottom-section,.mdl-mega-footer__bottom-section{padding-top:0}}@media screen and (min-width:1024px){.mdl-mega-footer--drop-down-section,.mdl-mega-footer--drop-down-section:nth-child(3),.mdl-mega-footer--drop-down-section:nth-child(4),.mdl-mega-footer__drop-down-section,.mdl-mega-footer__drop-down-section:nth-child(3),.mdl-mega-footer__drop-down-section:nth-child(4){width:24%;float:left}}.mdl-mega-footer--heading-checkbox,.mdl-mega-footer__heading-checkbox{position:absolute;width:100%;height:55.8px;padding:32px;margin:-16px 0 0;cursor:pointer;z-index:1;opacity:0}.mdl-mega-footer--heading-checkbox~.mdl-mega-footer--heading:after,.mdl-mega-footer--heading-checkbox~.mdl-mega-footer__heading:after,.mdl-mega-footer__heading-checkbox~.mdl-mega-footer--heading:after,.mdl-mega-footer__heading-checkbox~.mdl-mega-footer__heading:after{font-family:'Material Icons';content:'\E5CE'}.mdl-mega-footer--heading-checkbox:checked~ul,.mdl-mega-footer__heading-checkbox:checked~ul{display:none}.mdl-mega-footer--heading-checkbox:checked~.mdl-mega-footer--heading:after,.mdl-mega-footer--heading-checkbox:checked~.mdl-mega-footer__heading:after,.mdl-mega-footer__heading-checkbox:checked~.mdl-mega-footer--heading:after,.mdl-mega-footer__heading-checkbox:checked~.mdl-mega-footer__heading:after{font-family:'Material Icons';content:'\E5CF'}.mdl-mega-footer--heading,.mdl-mega-footer__heading{position:relative;width:100%;padding-right:39.8px;margin-bottom:16px;box-sizing:border-box;font-size:14px;line-height:23.8px;font-weight:500;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:#e0e0e0}.mdl-mega-footer--heading:after,.mdl-mega-footer__heading:after{content:'';position:absolute;top:0;right:0;display:block;width:23.8px;height:23.8px;background-size:cover}.mdl-mega-footer--link-list,.mdl-mega-footer__link-list{list-style:none;margin:0 0 32px;padding:0}.mdl-mega-footer--link-list:after,.mdl-mega-footer__link-list:after{clear:both;display:block;content:''}.mdl-mega-footer--link-list li,.mdl-mega-footer__link-list li{font-size:14px;font-weight:400;letter-spacing:0;line-height:20px}.mdl-mega-footer--link-list a,.mdl-mega-footer__link-list a{color:inherit;text-decoration:none;white-space:nowrap}.mdl-mega-footer--bottom-section,.mdl-mega-footer__bottom-section{padding-top:16px;margin-bottom:16px}.mdl-logo{margin-bottom:16px;color:#fff}.mdl-mega-footer--bottom-section .mdl-mega-footer--link-list li,.mdl-mega-footer__bottom-section .mdl-mega-footer__link-list li{float:left;margin-bottom:0;margin-right:16px}@media screen and (min-width:760px){.mdl-mega-footer--heading-checkbox,.mdl-mega-footer__heading-checkbox{display:none}.mdl-mega-footer--heading-checkbox~.mdl-mega-footer--heading:after,.mdl-mega-footer--heading-checkbox~.mdl-mega-footer__heading:after,.mdl-mega-footer__heading-checkbox~.mdl-mega-footer--heading:after,.mdl-mega-footer__heading-checkbox~.mdl-mega-footer__heading:after{background-image:none}.mdl-mega-footer--heading-checkbox:checked~ul,.mdl-mega-footer__heading-checkbox:checked~ul{display:block}.mdl-mega-footer--heading-checkbox:checked~.mdl-mega-footer--heading:after,.mdl-mega-footer--heading-checkbox:checked~.mdl-mega-footer__heading:after,.mdl-mega-footer__heading-checkbox:checked~.mdl-mega-footer--heading:after,.mdl-mega-footer__heading-checkbox:checked~.mdl-mega-footer__heading:after{content:''}.mdl-logo{float:left;margin-bottom:0;margin-right:16px}}.mdl-mini-footer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:32px 16px;color:#9e9e9e;background-color:#424242}.mdl-mini-footer:after{content:'';display:block}.mdl-mini-footer .mdl-logo{line-height:36px}.mdl-mini-footer--link-list,.mdl-mini-footer__link-list{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;list-style:none;margin:0;padding:0}.mdl-mini-footer--link-list li,.mdl-mini-footer__link-list li{margin-bottom:0;margin-right:16px}@media screen and (min-width:760px){.mdl-mini-footer--link-list li,.mdl-mini-footer__link-list li{line-height:36px}}.mdl-mini-footer--link-list a,.mdl-mini-footer__link-list a{color:inherit;text-decoration:none;white-space:nowrap}.mdl-mini-footer--left-section,.mdl-mini-footer__left-section{display:inline-block;-webkit-box-ordinal-group:1;-webkit-order:0;-ms-flex-order:0;order:0}.mdl-mini-footer--right-section,.mdl-mini-footer__right-section{display:inline-block;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.mdl-mini-footer--social-btn,.mdl-mini-footer__social-btn{width:36px;height:36px;padding:0;margin:0;background-color:#9e9e9e;border:none}.mdl-icon-toggle{position:relative;z-index:1;vertical-align:middle;display:inline-block;height:32px;margin:0;padding:0}.mdl-icon-toggle__input{line-height:32px}.mdl-icon-toggle.is-upgraded .mdl-icon-toggle__input{position:absolute;width:0;height:0;margin:0;padding:0;opacity:0;-ms-appearance:none;-moz-appearance:none;-webkit-appearance:none;appearance:none;border:none}.mdl-icon-toggle__label{display:inline-block;position:relative;cursor:pointer;height:32px;width:32px;min-width:32px;color:#616161;border-radius:50%;padding:0;margin-left:0;margin-right:0;text-align:center;background-color:transparent;will-change:background-color;-webkit-transition:background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);transition:background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1)}.mdl-icon-toggle__label.material-icons{line-height:32px;font-size:24px}.mdl-icon-toggle.is-checked .mdl-icon-toggle__label{color:#3f51b5}.mdl-icon-toggle.is-disabled .mdl-icon-toggle__label{color:rgba(0,0,0,.26);cursor:auto;-webkit-transition:none;transition:none}.mdl-icon-toggle.is-focused .mdl-icon-toggle__label{background-color:rgba(0,0,0,.12)}.mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label{background-color:rgba(63,81,181,.26)}.mdl-icon-toggle__ripple-container{position:absolute;z-index:2;top:-2px;left:-2px;width:36px;height:36px;border-radius:50%;cursor:pointer}.mdl-menu,.mdl-menu__outline{position:absolute;top:0;left:0}.mdl-icon-toggle__ripple-container .mdl-ripple{background:#616161}.mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container{cursor:auto}.mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple{background:0 0}.mdl-menu__container{display:block;margin:0;padding:0;border:none;position:absolute;overflow:visible;height:0;width:0;visibility:hidden;z-index:-1}.mdl-menu__container.is-animating,.mdl-menu__container.is-visible{z-index:999;visibility:visible}.mdl-menu__outline{background:#fff;padding:0;border-radius:2px;overflow:hidden;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;will-change:transform;-webkit-transition:-webkit-transform .3s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1);transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1);z-index:-1}.mdl-menu__item,.mdl-menu__outline{margin:0;display:block;border:none}.mdl-menu__item,.mdl-menu__item[disabled],.mdl-menu__item[disabled]:focus,.mdl-menu__item[disabled]:hover{background-color:transparent}.mdl-menu__container.is-visible .mdl-menu__outline{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);z-index:999}.mdl-menu__outline.mdl-menu--bottom-right{-webkit-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0}.mdl-menu__outline.mdl-menu--top-left{-webkit-transform-origin:0 100%;-ms-transform-origin:0 100%;transform-origin:0 100%}.mdl-menu__outline.mdl-menu--top-right{-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}.mdl-menu{list-style:none;height:auto;width:auto;min-width:124px;padding:8px 0;margin:0;opacity:0;clip:rect(0 0 0 0);z-index:-1}.mdl-menu__container.is-visible .mdl-menu{opacity:1;z-index:999}.mdl-menu.is-animating{-webkit-transition:opacity .2s cubic-bezier(.4,0,.2,1),clip .3s cubic-bezier(.4,0,.2,1);transition:opacity .2s cubic-bezier(.4,0,.2,1),clip .3s cubic-bezier(.4,0,.2,1)}.mdl-menu.mdl-menu--bottom-right{left:auto;right:0}.mdl-menu.mdl-menu--top-left{top:auto;bottom:0}.mdl-menu.mdl-menu--top-right{top:auto;left:auto;bottom:0;right:0}.mdl-menu.mdl-menu--unaligned{top:auto;left:auto}.mdl-menu__item{color:rgba(0,0,0,.87);text-align:left;padding:0 16px;outline-color:#bdbdbd;position:relative;overflow:hidden;font-size:14px;font-weight:400;letter-spacing:0;text-decoration:none;cursor:pointer;height:48px;line-height:48px;white-space:nowrap;opacity:0;-webkit-transition:opacity .2s cubic-bezier(.4,0,.2,1);transition:opacity .2s cubic-bezier(.4,0,.2,1);user-select:none}.mdl-layout__tab-bar-button,.mdl-menu__item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.mdl-menu__item:focus,.mdl-textfield.is-focused .mdl-textfield__input{outline:0}.mdl-menu__container.is-visible .mdl-menu__item{opacity:1}.mdl-menu__item::-moz-focus-inner{border:0}.mdl-menu__item[disabled]{color:#bdbdbd;cursor:auto}.mdl-menu__item[disabled] .mdl-ripple{background:0 0}.mdl-menu__item:focus,.mdl-menu__item:hover{background-color:#eee}.mdl-menu__item:active{background-color:#e0e0e0}.mdl-menu__item--ripple-container{display:block;height:100%;left:0;position:absolute;top:0;width:100%;z-index:0;overflow:hidden}.mdl-progress{display:block;position:relative;height:4px;width:500px}.mdl-progress>.bar{display:block;position:absolute;top:0;bottom:0;width:0;-webkit-transition:width .2s cubic-bezier(.4,0,.2,1);transition:width .2s cubic-bezier(.4,0,.2,1)}.mdl-layout,.mdl-navigation{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.mdl-progress>.progressbar{background-color:#3f51b5;z-index:1;left:0}.mdl-progress>.bufferbar{background-image:-webkit-linear-gradient(left,rgba(255,255,255,.7),rgba(255,255,255,.7)),-webkit-linear-gradient(left,#3f51b5,#3f51b5);background-image:linear-gradient(to right,rgba(255,255,255,.7),rgba(255,255,255,.7)),linear-gradient(to right,#3f51b5,#3f51b5);z-index:0;left:0}.mdl-progress>.auxbar{right:0}@supports (-webkit-appearance:none){.mdl-progress:not(.mdl-progress__indeterminate):not(.mdl-progress__indeterminate)>.auxbar{background-image:-webkit-linear-gradient(left,rgba(255,255,255,.7),rgba(255,255,255,.7)),-webkit-linear-gradient(left,#3f51b5,#3f51b5);background-image:linear-gradient(to right,rgba(255,255,255,.7),rgba(255,255,255,.7)),linear-gradient(to right,#3f51b5,#3f51b5);-webkit-mask:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjQiIHZpZXdQb3J0PSIwIDAgMTIgNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxlbGxpcHNlIGN4PSIyIiBjeT0iMiIgcng9IjIiIHJ5PSIyIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImN4IiBmcm9tPSIyIiB0bz0iLTEwIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogIDwvZWxsaXBzZT4KICA8ZWxsaXBzZSBjeD0iMTQiIGN5PSIyIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJsb2FkZXIiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giIGZyb209IjE0IiB0bz0iMiIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICA8L2VsbGlwc2U+Cjwvc3ZnPgo=);mask:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjQiIHZpZXdQb3J0PSIwIDAgMTIgNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxlbGxpcHNlIGN4PSIyIiBjeT0iMiIgcng9IjIiIHJ5PSIyIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImN4IiBmcm9tPSIyIiB0bz0iLTEwIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogIDwvZWxsaXBzZT4KICA8ZWxsaXBzZSBjeD0iMTQiIGN5PSIyIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJsb2FkZXIiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giIGZyb209IjE0IiB0bz0iMiIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICA8L2VsbGlwc2U+Cjwvc3ZnPgo=)}}.mdl-progress:not(.mdl-progress__indeterminate)>.auxbar{background-image:-webkit-linear-gradient(left,rgba(255,255,255,.9),rgba(255,255,255,.9)),-webkit-linear-gradient(left,#3f51b5,#3f51b5);background-image:linear-gradient(to right,rgba(255,255,255,.9),rgba(255,255,255,.9)),linear-gradient(to right,#3f51b5,#3f51b5)}.mdl-progress.mdl-progress__indeterminate>.bar1{background-color:#3f51b5;-webkit-animation-name:indeterminate1;animation-name:indeterminate1;animation-duration:2s;animation-iteration-count:infinite;animation-timing-function:linear}.mdl-progress.mdl-progress__indeterminate>.bar1,.mdl-progress.mdl-progress__indeterminate>.bar3{-webkit-animation-duration:2s;-webkit-animation-iteration-count:infinite;-webkit-animation-timing-function:linear}.mdl-progress.mdl-progress__indeterminate>.bar3{background-image:none;background-color:#3f51b5;-webkit-animation-name:indeterminate2;animation-name:indeterminate2;animation-duration:2s;animation-iteration-count:infinite;animation-timing-function:linear}@-webkit-keyframes indeterminate1{0%{left:0;width:0}50%{left:25%;width:75%}75%{left:100%;width:0}}@keyframes indeterminate1{0%{left:0;width:0}50%{left:25%;width:75%}75%{left:100%;width:0}}@-webkit-keyframes indeterminate2{0%,50%{left:0;width:0}75%{left:0;width:25%}100%{left:100%;width:0}}@keyframes indeterminate2{0%,50%{left:0;width:0}75%{left:0;width:25%}100%{left:100%;width:0}}.mdl-navigation{display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;box-sizing:border-box}.mdl-navigation__link{color:#424242;text-decoration:none;font-weight:500;font-size:13px;margin:0}.mdl-layout{width:100%;height:100%;display:flex;-webkit-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow-y:auto;overflow-x:hidden;position:relative;-webkit-overflow-scrolling:touch}.mdl-layout.is-small-screen .mdl-layout--large-screen-only,.mdl-layout:not(.is-small-screen) .mdl-layout--small-screen-only{display:none}.mdl-layout__container{position:absolute;width:100%;height:100%}.mdl-layout-title{display:block;position:relative;font-family:Roboto,Helvetica,Arial,sans-serif;font-size:20px;line-height:1;letter-spacing:.02em;font-weight:400;box-sizing:border-box}.mdl-layout-spacer{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.mdl-layout__drawer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;width:240px;height:100%;max-height:100%;position:absolute;top:0;left:0;box-sizing:border-box;border-right:1px solid #e0e0e0;background:#fafafa;-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px);-webkit-transform-style:preserve-3d;transform-style:preserve-3d;will-change:transform;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-property:-webkit-transform;transition-property:transform;color:#424242;overflow:visible;overflow-y:auto;z-index:5}.mdl-layout__drawer.is-visible{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.mdl-layout__drawer>*{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.mdl-layout__drawer>.mdl-layout-title{line-height:64px;padding-left:40px}@media screen and (max-width:1024px){.mdl-layout__drawer>.mdl-layout-title{line-height:56px;padding-left:16px}}.mdl-layout__drawer .mdl-navigation{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;padding-top:16px}.mdl-layout__drawer .mdl-navigation .mdl-navigation__link{display:block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;padding:16px 40px;margin:0;color:#757575}.mdl-layout__drawer .mdl-navigation .mdl-navigation__link:hover{background-color:#e0e0e0}.mdl-layout__drawer .mdl-navigation .mdl-navigation__link--current{background-color:#000;color:#3f51b5}.mdl-layout__drawer-button{display:block;position:absolute;height:48px;width:48px;border:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;overflow:hidden;text-align:center;cursor:pointer;font-size:26px;line-height:50px;font-family:Helvetica,Arial,sans-serif;margin:10px 12px;top:0;left:0;color:#fff;z-index:4}.mdl-layout__header .mdl-layout__drawer-button{position:absolute;color:#fff;background-color:inherit}@media screen and (max-width:1024px){.mdl-layout__drawer .mdl-navigation .mdl-navigation__link{padding:16px}.mdl-layout__header .mdl-layout__drawer-button{margin:4px}.mdl-layout__drawer-button{margin:4px;color:rgba(0,0,0,.5)}}@media screen and (min-width:1025px){.mdl-layout--fixed-drawer>.mdl-layout__drawer{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.mdl-layout--fixed-drawer>.mdl-layout__drawer-button{display:none}}.mdl-layout__header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:100%;margin:0;padding:0;border:none;min-height:64px;max-height:1000px;z-index:3;background-color:#3f51b5;color:#fff;-webkit-transition-duration:.2s;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-property:max-height,box-shadow;transition-property:max-height,box-shadow}.mdl-layout__header,.mdl-layout__obfuscator{-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1)}.mdl-layout--fixed-drawer:not(.is-small-screen)>.mdl-layout__header{margin-left:240px;width:calc(100% - 240px)}.mdl-layout__header-row,.mdl-layout__header-row .mdl-navigation{-webkit-box-orient:horizontal;-webkit-box-direction:normal;margin:0}@media screen and (min-width:1024px){.mdl-layout--fixed-drawer>.mdl-layout__header .mdl-layout__header-row{padding-left:40px}}.mdl-layout__header>.mdl-layout-icon{position:absolute;left:40px;top:16px;height:32px;width:32px;overflow:hidden;z-index:3;display:block}.mdl-layout.has-drawer .mdl-layout__header>.mdl-layout-icon{display:none}.mdl-layout__header.is-compact{max-height:64px}.mdl-layout__header.is-compact.has-tabs{height:112px}@media screen and (max-width:1024px){.mdl-layout__header{min-height:56px;display:none}.mdl-layout__header>.mdl-layout-icon{left:16px;top:12px}.mdl-layout__header.is-compact{max-height:56px}.mdl-layout__header.is-compact.has-tabs{min-height:104px}.mdl-layout--fixed-header>.mdl-layout__header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}}.mdl-layout__header--transparent.mdl-layout__header--transparent{background-color:transparent;box-shadow:none}.mdl-layout__header--scroll,.mdl-layout__header--seamed{box-shadow:none}.mdl-layout__header--waterfall{box-shadow:none;overflow:hidden}.mdl-layout__header--waterfall.is-casting-shadow,.mdl-switch__thumb{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.mdl-layout__header-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;box-sizing:border-box;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:64px;padding:0 40px 0 80px}@media screen and (max-width:1024px){.mdl-layout__header-row{height:56px;padding:0 16px 0 72px}}.mdl-layout__header-row>*{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.mdl-layout__header--scroll .mdl-layout__header-row{width:100%}.mdl-layout__header-row .mdl-navigation{padding:0;height:64px;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.mdl-layout__header-row .mdl-navigation__link{display:block;color:#fff;line-height:64px;padding:0 24px}@media screen and (max-width:1024px){.mdl-layout__header-row .mdl-navigation{height:56px}.mdl-layout__header-row .mdl-navigation__link{line-height:56px;padding:0 16px}}.mdl-layout__tab,.mdl-layout__tab-bar-button .material-icons{line-height:48px}.mdl-layout__obfuscator{background-color:transparent;position:absolute;top:0;left:0;height:100%;width:100%;z-index:4;visibility:hidden;-webkit-transition-property:background-color;transition-property:background-color;-webkit-transition-duration:.2s;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.mdl-layout__drawer.is-visible~.mdl-layout__obfuscator{background-color:rgba(0,0,0,.5);visibility:visible}.mdl-layout__content{-ms-flex:0 1 auto;display:inline-block;overflow-y:auto;overflow-x:hidden;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;z-index:1;-webkit-overflow-scrolling:touch}.mdl-layout--fixed-drawer>.mdl-layout__content{margin-left:240px}.mdl-layout__container.has-scrolling-header .mdl-layout__content{overflow:visible}@media screen and (max-width:1024px){.mdl-layout--fixed-drawer>.mdl-layout__content{margin-left:0}.mdl-layout__container.has-scrolling-header .mdl-layout__content{overflow-y:auto;overflow-x:hidden}}.mdl-layout__tab-bar{height:96px;margin:0;width:calc(100% - 112px);padding:0 0 0 56px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;background-color:#3f51b5;overflow-y:hidden;overflow-x:scroll}.mdl-layout__tab-bar::-webkit-scrollbar{display:none}@media screen and (max-width:1024px){.mdl-layout__tab-bar{width:calc(100% - 60px);padding:0 0 0 60px}}.mdl-layout--fixed-tabs .mdl-layout__tab-bar{padding:0;overflow:hidden;width:100%}.mdl-layout__tab-bar-container{position:relative;height:48px;width:100%;border:none;margin:0;z-index:2;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.mdl-layout__container>.mdl-layout__tab-bar-container{position:absolute;top:0;left:0}.mdl-layout__tab-bar-button{display:inline-block;position:absolute;top:0;height:48px;width:56px;z-index:4;text-align:center;background-color:#3f51b5;color:transparent;cursor:pointer;user-select:none}@media screen and (max-width:1024px){.mdl-layout__tab-bar-button{display:none;width:60px}}.mdl-layout--fixed-tabs .mdl-layout__tab-bar-button{display:none}.mdl-layout__tab-bar-button.is-active{color:#fff}.mdl-layout__tab-bar-left-button{left:0}.mdl-layout__tab-bar-right-button{right:0}.mdl-layout__tab{margin:0;border:none;padding:0 24px;float:left;position:relative;display:block;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:48px;text-align:center;font-weight:500;font-size:14px;color:rgba(255,255,255,.6);overflow:hidden}.mdl-radio,.mdl-radio__button,.mdl-switch__input{line-height:24px}@media screen and (max-width:1024px){.mdl-layout__tab{padding:0 12px}}.mdl-layout--fixed-tabs .mdl-layout__tab{float:none;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;padding:0}.mdl-layout.is-upgraded .mdl-layout__tab.is-active{color:#fff}.mdl-layout.is-upgraded .mdl-layout__tab.is-active::after{height:2px;width:100%;display:block;content:" ";bottom:0;left:0;position:absolute;background:#ff4081;-webkit-animation:border-expand .2s cubic-bezier(.4,0,.4,1) .01s alternate forwards;animation:border-expand .2s cubic-bezier(.4,0,.4,1) .01s alternate forwards;-webkit-transition:all 1s cubic-bezier(.4,0,1,1);transition:all 1s cubic-bezier(.4,0,1,1)}.mdl-layout__tab .mdl-layout__tab-ripple-container{display:block;position:absolute;height:100%;width:100%;left:0;top:0;z-index:1;overflow:hidden}.mdl-layout__tab .mdl-layout__tab-ripple-container .mdl-ripple{background-color:#fff}.mdl-layout__tab-panel{display:block}.mdl-layout.is-upgraded .mdl-layout__tab-panel{display:none}.mdl-layout.is-upgraded .mdl-layout__tab-panel.is-active{display:block}.mdl-radio,.mdl-radio__outer-circle{margin:0;box-sizing:border-box;display:inline-block}.mdl-radio{position:relative;font-size:16px;padding-left:0}.mdl-radio.is-upgraded{padding-left:24px}.mdl-radio.is-upgraded .mdl-radio__button{position:absolute;width:0;height:0;margin:0;padding:0;opacity:0;-ms-appearance:none;-moz-appearance:none;-webkit-appearance:none;appearance:none;border:none}.mdl-radio__outer-circle{position:absolute;top:4px;left:0;width:16px;height:16px;cursor:pointer;border:2px solid rgba(0,0,0,.54);border-radius:50%;z-index:2}.mdl-radio.is-checked .mdl-radio__outer-circle{border:2px solid #3f51b5}.mdl-radio.is-disabled .mdl-radio__outer-circle{border:2px solid rgba(0,0,0,.26);cursor:auto}.mdl-radio__inner-circle{position:absolute;z-index:1;margin:0;top:8px;left:4px;box-sizing:border-box;width:8px;height:8px;cursor:pointer;-webkit-transition-duration:.28s;transition-duration:.28s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-property:-webkit-transform;transition-property:transform;-webkit-transform:scale3d(0,0,0);transform:scale3d(0,0,0);border-radius:50%;background:#3f51b5}.mdl-radio__ripple-container,.mdl-switch__ripple-container{box-sizing:border-box;z-index:2;-webkit-mask-image:-webkit-radial-gradient(circle,#fff,#000)}.mdl-radio.is-checked .mdl-radio__inner-circle{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}.mdl-radio.is-disabled .mdl-radio__inner-circle{background:rgba(0,0,0,.26);cursor:auto}.mdl-radio.is-focused .mdl-radio__inner-circle{box-shadow:0 0 0 10px rgba(0,0,0,.1)}.mdl-radio__label{cursor:pointer}.mdl-radio.is-disabled .mdl-radio__label{color:rgba(0,0,0,.26);cursor:auto}.mdl-radio__ripple-container{position:absolute;top:-9px;left:-13px;width:42px;height:42px;border-radius:50%;cursor:pointer;overflow:hidden}.mdl-radio__ripple-container .mdl-ripple{background:#3f51b5}.mdl-radio.is-disabled .mdl-radio__ripple-container{cursor:auto}.mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple{background:0 0}:root .mdl-slider.mdl-slider.is-upgraded,_:-ms-input-placeholder{-ms-appearance:none;height:32px;margin:0}.mdl-slider{width:calc(100% - 40px);margin:0 20px}.mdl-slider.is-upgraded{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:2px;background:0 0;user-select:none;outline:0;padding:0;color:#3f51b5;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;z-index:1;cursor:pointer}.mdl-slider.is-upgraded,.mdl-switch{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.mdl-slider.is-upgraded::-moz-focus-outer{border:0}.mdl-slider.is-upgraded::-ms-tooltip{display:none}.mdl-slider.is-upgraded::-webkit-slider-runnable-track{background:0 0}.mdl-slider.is-upgraded::-moz-range-track{background:0 0;border:none}.mdl-slider.is-upgraded::-ms-track{background:0 0;color:transparent;height:2px;width:100%;border:none}.mdl-slider.is-upgraded::-ms-fill-lower{padding:0;background:linear-gradient(to right,transparent,transparent 16px,#3f51b5 16px,#3f51b5 0)}.mdl-slider.is-upgraded::-ms-fill-upper{padding:0;background:linear-gradient(to left,transparent,transparent 16px,rgba(0,0,0,.26) 16px,rgba(0,0,0,.26) 0)}.mdl-slider.is-upgraded::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;box-sizing:border-box;border-radius:50%;background:#3f51b5;border:none;-webkit-transition:-webkit-transform .18s cubic-bezier(.4,0,.2,1),border .18s cubic-bezier(.4,0,.2,1),box-shadow .18s cubic-bezier(.4,0,.2,1),background .28s cubic-bezier(.4,0,.2,1);transition:transform .18s cubic-bezier(.4,0,.2,1),border .18s cubic-bezier(.4,0,.2,1),box-shadow .18s cubic-bezier(.4,0,.2,1),background .28s cubic-bezier(.4,0,.2,1)}.mdl-slider.is-upgraded::-moz-range-thumb{-moz-appearance:none;width:12px;height:12px;box-sizing:border-box;border-radius:50%;background:#3f51b5;border:none}.mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb{box-shadow:0 0 0 10px rgba(63,81,181,.26)}.mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb{box-shadow:0 0 0 10px rgba(63,81,181,.26)}.mdl-slider.is-upgraded:active::-webkit-slider-thumb{background:#3f51b5;-webkit-transform:scale(1.5);transform:scale(1.5)}.mdl-slider.is-upgraded:active::-moz-range-thumb{background:#3f51b5;transform:scale(1.5)}.mdl-slider.is-upgraded::-ms-thumb{width:32px;height:32px;border:none;border-radius:50%;background:#3f51b5;-ms-transform:scale(.375);transform:scale(.375);transition:transform .18s cubic-bezier(.4,0,.2,1),background .28s cubic-bezier(.4,0,.2,1)}.mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb{background:radial-gradient(circle closest-side,#3f51b5 0,#3f51b5 37.5%,rgba(63,81,181,.26) 37.5%,rgba(63,81,181,.26) 100%);-ms-transform:scale(1);transform:scale(1)}.mdl-slider.is-upgraded:active::-ms-thumb{background:#3f51b5;-ms-transform:scale(.5625);transform:scale(.5625)}.mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb{border:2px solid rgba(0,0,0,.26);background:0 0}.mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb{border:2px solid rgba(0,0,0,.26);background:0 0}.mdl-slider.is-upgraded.is-lowest-value~.mdl-slider__background-flex>.mdl-slider__background-upper{left:6px}.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb{box-shadow:0 0 0 10px rgba(0,0,0,.12);background:rgba(0,0,0,.12)}.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb{box-shadow:0 0 0 10px rgba(0,0,0,.12);background:rgba(0,0,0,.12)}.mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb{border:1.6px solid rgba(0,0,0,.26);-webkit-transform:scale(1.5);transform:scale(1.5)}.mdl-slider.is-upgraded.is-lowest-value:active~.mdl-slider__background-flex>.mdl-slider__background-upper{left:9px}.mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb{border:1.5px solid rgba(0,0,0,.26);transform:scale(1.5)}.mdl-slider.is-upgraded.is-lowest-value::-ms-thumb{background:radial-gradient(circle closest-side,transparent 0,transparent 66.67%,rgba(0,0,0,.26) 66.67%,rgba(0,0,0,.26) 100%)}.mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb{background:radial-gradient(circle closest-side,rgba(0,0,0,.12) 0,rgba(0,0,0,.12) 25%,rgba(0,0,0,.26) 25%,rgba(0,0,0,.26) 37.5%,rgba(0,0,0,.12) 37.5%,rgba(0,0,0,.12) 100%);-ms-transform:scale(1);transform:scale(1)}.mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb{-ms-transform:scale(.5625);transform:scale(.5625);background:radial-gradient(circle closest-side,transparent 0,transparent 77.78%,rgba(0,0,0,.26) 77.78%,rgba(0,0,0,.26) 100%)}.mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower{background:0 0}.mdl-slider.is-upgraded.is-lowest-value::-ms-fill-upper{margin-left:6px}.mdl-slider.is-upgraded.is-lowest-value:active::-ms-fill-upper{margin-left:9px}.mdl-slider.is-upgraded:disabled::-webkit-slider-thumb,.mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb,.mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb{-webkit-transform:scale(.667);transform:scale(.667);background:rgba(0,0,0,.26)}.mdl-slider.is-upgraded:disabled::-moz-range-thumb,.mdl-slider.is-upgraded:disabled:active::-moz-range-thumb,.mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb{transform:scale(.667);background:rgba(0,0,0,.26)}.mdl-slider.is-upgraded:disabled~.mdl-slider__background-flex>.mdl-slider__background-lower{background-color:rgba(0,0,0,.26);left:-6px}.mdl-slider.is-upgraded.is-lowest-value:disabled:active~.mdl-slider__background-flex>.mdl-slider__background-upper,.mdl-slider.is-upgraded:disabled~.mdl-slider__background-flex>.mdl-slider__background-upper{left:6px}.mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb{border:3px solid rgba(0,0,0,.26);background:0 0;-webkit-transform:scale(.667);transform:scale(.667)}.mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb{border:3px solid rgba(0,0,0,.26);background:0 0;transform:scale(.667)}.mdl-slider.is-upgraded:disabled::-ms-thumb,.mdl-slider.is-upgraded:disabled:active::-ms-thumb,.mdl-slider.is-upgraded:disabled:focus::-ms-thumb{-ms-transform:scale(.25);transform:scale(.25);background:rgba(0,0,0,.26)}.mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb,.mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb{-ms-transform:scale(.25);transform:scale(.25);background:radial-gradient(circle closest-side,transparent 0,transparent 50%,rgba(0,0,0,.26) 50%,rgba(0,0,0,.26) 100%)}.mdl-slider.is-upgraded:disabled::-ms-fill-lower{margin-right:6px;background:linear-gradient(to right,transparent,transparent 25px,rgba(0,0,0,.26) 25px,rgba(0,0,0,.26) 0)}.mdl-slider__background-flex,.mdl-slider__container{background:0 0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox}.mdl-slider.is-upgraded:disabled::-ms-fill-upper{margin-left:6px}.mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-fill-upper{margin-left:6px}.mdl-slider__ie-container{height:18px;overflow:visible;border:none;margin:none;padding:none}.mdl-slider__container{height:18px;position:relative;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.mdl-slider__background-flex{position:absolute;height:2px;width:calc(100% - 52px);top:50%;left:0;margin:0 26px;display:flex;overflow:hidden;border:0;padding:0;-webkit-transform:translate(0,-1px);-ms-transform:translate(0,-1px);transform:translate(0,-1px)}.mdl-slider__background-lower{background:#3f51b5;-webkit-box-flex:0;-webkit-flex:0;-ms-flex:0;flex:0;position:relative;border:0;padding:0}.mdl-slider__background-upper{background:rgba(0,0,0,.26);-webkit-box-flex:0;-webkit-flex:0;-ms-flex:0;flex:0;position:relative;border:0;padding:0;-webkit-transition:left .18s cubic-bezier(.4,0,.2,1);transition:left .18s cubic-bezier(.4,0,.2,1)}.mdl-spinner{display:inline-block;position:relative;width:28px;height:28px}.mdl-spinner:not(.is-upgraded).is-active:after{content:"Loading..."}.mdl-spinner.is-upgraded.is-active{-webkit-animation:mdl-spinner__container-rotate 1568.23529412ms linear infinite;animation:mdl-spinner__container-rotate 1568.23529412ms linear infinite}@-webkit-keyframes mdl-spinner__container-rotate{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes mdl-spinner__container-rotate{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.mdl-spinner__layer{position:absolute;width:100%;height:100%;opacity:0}.mdl-spinner__layer-1{border-color:#42a5f5}.mdl-spinner--single-color .mdl-spinner__layer-1{border-color:#3f51b5}.mdl-spinner.is-active .mdl-spinner__layer-1{-webkit-animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.mdl-spinner__layer-2{border-color:#f44336}.mdl-spinner--single-color .mdl-spinner__layer-2{border-color:#3f51b5}.mdl-spinner.is-active .mdl-spinner__layer-2{-webkit-animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.mdl-spinner__layer-3{border-color:#fdd835}.mdl-spinner--single-color .mdl-spinner__layer-3{border-color:#3f51b5}.mdl-spinner.is-active .mdl-spinner__layer-3{-webkit-animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.mdl-spinner__layer-4{border-color:#4caf50}.mdl-spinner--single-color .mdl-spinner__layer-4{border-color:#3f51b5}.mdl-spinner.is-active .mdl-spinner__layer-4{-webkit-animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}@-webkit-keyframes mdl-spinner__fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg);transform:rotate(1080deg)}}@keyframes mdl-spinner__fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg);transform:rotate(1080deg)}}@-webkit-keyframes mdl-spinner__layer-1-fade-in-out{100%,25%,90%,from{opacity:.99}26%,89%{opacity:0}}@keyframes mdl-spinner__layer-1-fade-in-out{100%,25%,90%,from{opacity:.99}26%,89%{opacity:0}}@-webkit-keyframes mdl-spinner__layer-2-fade-in-out{15%,51%,from{opacity:0}25%,50%{opacity:.99}}@keyframes mdl-spinner__layer-2-fade-in-out{15%,51%,from{opacity:0}25%,50%{opacity:.99}}@-webkit-keyframes mdl-spinner__layer-3-fade-in-out{40%,76%,from{opacity:0}50%,75%{opacity:.99}}@keyframes mdl-spinner__layer-3-fade-in-out{40%,76%,from{opacity:0}50%,75%{opacity:.99}}@-webkit-keyframes mdl-spinner__layer-4-fade-in-out{100%,65%,from{opacity:0}75%,90%{opacity:.99}}@keyframes mdl-spinner__layer-4-fade-in-out{100%,65%,from{opacity:0}75%,90%{opacity:.99}}.mdl-spinner__gap-patch{position:absolute;box-sizing:border-box;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.mdl-spinner__gap-patch .mdl-spinner__circle{width:1000%;left:-450%}.mdl-spinner__circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.mdl-spinner__circle-clipper .mdl-spinner__circle{width:200%}.mdl-spinner__circle{box-sizing:border-box;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent!important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0;left:0}.mdl-spinner__left .mdl-spinner__circle{border-right-color:transparent!important;-webkit-transform:rotate(129deg);-ms-transform:rotate(129deg);transform:rotate(129deg)}.mdl-spinner.is-active .mdl-spinner__left .mdl-spinner__circle{-webkit-animation:mdl-spinner__left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both;animation:mdl-spinner__left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}.mdl-spinner__right .mdl-spinner__circle{left:-100%;border-left-color:transparent!important;-webkit-transform:rotate(-129deg);-ms-transform:rotate(-129deg);transform:rotate(-129deg)}.mdl-spinner.is-active .mdl-spinner__right .mdl-spinner__circle{-webkit-animation:mdl-spinner__right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both;animation:mdl-spinner__right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}@-webkit-keyframes mdl-spinner__left-spin{from,to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}}@keyframes mdl-spinner__left-spin{from,to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}}@-webkit-keyframes mdl-spinner__right-spin{from,to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}}@keyframes mdl-spinner__right-spin{from,to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}}.mdl-switch{position:relative;z-index:1;vertical-align:middle;display:inline-block;box-sizing:border-box;width:100%;height:24px;margin:0;padding:0;overflow:visible;-webkit-touch-callout:none;user-select:none}.mdl-switch.is-upgraded{padding-left:28px}.mdl-switch.is-upgraded .mdl-switch__input{position:absolute;width:0;height:0;margin:0;padding:0;opacity:0;-ms-appearance:none;-moz-appearance:none;-webkit-appearance:none;appearance:none;border:none}.mdl-switch__track{background:rgba(0,0,0,.26);position:absolute;left:0;top:5px;height:14px;width:36px;border-radius:14px;cursor:pointer}.mdl-switch.is-checked .mdl-switch__track{background:rgba(63,81,181,.5)}.mdl-switch.is-disabled .mdl-switch__track{background:rgba(0,0,0,.12);cursor:auto}.mdl-switch__thumb{background:#fafafa;position:absolute;left:0;top:2px;height:20px;width:20px;cursor:pointer;-webkit-transition-duration:.28s;transition-duration:.28s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);transition-property:left}.mdl-switch__ripple-container,.mdl-switch__thumb{border-radius:50%;-webkit-transition-property:left}.mdl-switch.is-checked .mdl-switch__thumb{background:#3f51b5;left:16px;box-shadow:0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.2),0 1px 8px 0 rgba(0,0,0,.12)}.mdl-switch.is-disabled .mdl-switch__thumb{background:#bdbdbd;cursor:auto}.mdl-switch__focus-helper{position:absolute;top:50%;left:50%;-webkit-transform:translate(-4px,-4px);-ms-transform:translate(-4px,-4px);transform:translate(-4px,-4px);display:inline-block;box-sizing:border-box;width:8px;height:8px;border-radius:50%;background-color:transparent}.mdl-switch.is-focused .mdl-switch__focus-helper{box-shadow:0 0 0 20px rgba(0,0,0,.1);background-color:rgba(0,0,0,.1)}.mdl-switch.is-focused.is-checked .mdl-switch__focus-helper{box-shadow:0 0 0 20px rgba(63,81,181,.26);background-color:rgba(63,81,181,.26)}.mdl-switch__label{position:relative;cursor:pointer;font-size:16px;line-height:24px;margin:0;left:24px}.mdl-switch.is-disabled .mdl-switch__label{color:#bdbdbd;cursor:auto}.mdl-switch__ripple-container{position:absolute;top:-12px;left:-14px;width:48px;height:48px;cursor:pointer;overflow:hidden;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-timing-function:step-end;transition-timing-function:step-end;transition-property:left}.mdl-switch__ripple-container .mdl-ripple{background:#3f51b5}.mdl-switch.is-disabled .mdl-switch__ripple-container{cursor:auto}.mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple{background:0 0}.mdl-switch.is-checked .mdl-switch__ripple-container{cursor:auto;left:2px}.mdl-tabs{display:block;width:100%}.mdl-tabs__tab-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-content:space-between;-ms-flex-line-pack:justify;align-content:space-between;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;height:48px;padding:0;margin:0;border-bottom:1px solid #e0e0e0}.mdl-tabs__tab{margin:0;border:none;padding:0 24px;float:left;position:relative;display:block;color:red;height:48px;line-height:48px;text-align:center;font-weight:500;font-size:14px;color:rgba(0,0,0,.54);overflow:hidden}.mdl-tabs.is-upgraded .mdl-tabs__tab.is-active{color:rgba(0,0,0,.87)}.mdl-tabs.is-upgraded .mdl-tabs__tab.is-active:after{height:2px;width:100%;display:block;content:" ";bottom:0;left:0;position:absolute;background:#3f51b5;-webkit-animation:border-expand .2s cubic-bezier(.4,0,.4,1) .01s alternate forwards;animation:border-expand .2s cubic-bezier(.4,0,.4,1) .01s alternate forwards;-webkit-transition:all 1s cubic-bezier(.4,0,1,1);transition:all 1s cubic-bezier(.4,0,1,1)}.mdl-tabs__tab .mdl-tabs__ripple-container{display:block;position:absolute;height:100%;width:100%;left:0;top:0;z-index:1;overflow:hidden}.mdl-tabs__tab .mdl-tabs__ripple-container .mdl-ripple{background:#3f51b5}.mdl-tabs__panel{display:block}.mdl-tabs.is-upgraded .mdl-tabs__panel{display:none}.mdl-tabs.is-upgraded .mdl-tabs__panel.is-active{display:block}@-webkit-keyframes border-expand{0%{opacity:0;width:0}100%{opacity:1;width:100%}}@keyframes border-expand{0%{opacity:0;width:0}100%{opacity:1;width:100%}}.mdl-textfield{position:relative;font-size:16px;display:inline-block;box-sizing:border-box;width:300px;max-width:100%;margin:0;padding:20px 0}.mdl-textfield .mdl-button{position:absolute;bottom:20px}.mdl-textfield--align-right{text-align:right}.mdl-textfield--full-width{width:100%}.mdl-textfield--expandable{min-width:32px;width:auto;min-height:32px}.mdl-textfield__input,.mdl-textfield__label{display:block;font-size:16px;width:100%;text-align:left}.mdl-textfield__input{border:none;border-bottom:1px solid rgba(0,0,0,.12);margin:0;padding:4px 0;color:inherit}.mdl-textfield.is-disabled.is-disabled .mdl-textfield__label,.mdl-textfield__label{color:rgba(0,0,0,.26)}.mdl-textfield.is-invalid .mdl-textfield__input{border-color:#de3226;box-shadow:none}.mdl-textfield.is-disabled .mdl-textfield__input{background-color:transparent;border-bottom:1px dotted rgba(0,0,0,.12);color:rgba(0,0,0,.26)}.mdl-textfield textarea.mdl-textfield__input{display:block}.mdl-textfield__label{bottom:0;left:0;right:0;pointer-events:none;position:absolute;top:24px;overflow:hidden;white-space:nowrap}.mdl-textfield.is-dirty .mdl-textfield__label{visibility:hidden}.mdl-textfield--floating-label .mdl-textfield__label{-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.mdl-textfield--floating-label.is-dirty .mdl-textfield__label,.mdl-textfield--floating-label.is-focused .mdl-textfield__label{color:#3f51b5;font-size:12px;top:4px;visibility:visible}.mdl-textfield--floating-label.is-invalid .mdl-textfield__label,.mdl-textfield__error{color:#de3226;font-size:12px}.mdl-textfield--floating-label.is-dirty .mdl-textfield__expandable-holder .mdl-textfield__label,.mdl-textfield--floating-label.is-focused .mdl-textfield__expandable-holder .mdl-textfield__label{top:-16px}.mdl-textfield__label:after{background-color:#3f51b5;bottom:20px;content:'';height:2px;left:45%;position:absolute;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);visibility:hidden;width:10px}.mdl-textfield__expandable-holder,.mdl-textfield__label:after{-webkit-transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1)}.mdl-textfield.is-focused .mdl-textfield__label:after{left:0;visibility:visible;width:100%}.mdl-textfield.is-invalid .mdl-textfield__label:after{background-color:#de3226}.mdl-textfield__error{position:absolute;margin-top:3px;visibility:hidden;display:block}.mdl-textfield.is-invalid .mdl-textfield__error{visibility:visible}.mdl-textfield__expandable-holder{position:relative;margin-left:32px;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:inline-block;max-width:.1px}.mdl-textfield.is-dirty .mdl-textfield__expandable-holder,.mdl-textfield.is-focused .mdl-textfield__expandable-holder{max-width:600px}.mdl-textfield__expandable-holder .mdl-textfield__label:after{bottom:0}.mdl-tooltip{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transform-origin:top center;-ms-transform-origin:top center;transform-origin:top center;will-change:transform;z-index:999;background:rgba(97,97,97,.9);border-radius:2px;color:#fff;display:inline-block;font-size:10px;font-weight:500;line-height:14px;max-width:170px;position:fixed;top:-500px;left:-500px;padding:8px;text-align:center}.mdl-tooltip.is-active{-webkit-animation:pulse 200ms cubic-bezier(0,0,.2,1) forwards;animation:pulse 200ms cubic-bezier(0,0,.2,1) forwards}.mdl-tooltip--large{line-height:14px;font-size:14px;padding:16px}@-webkit-keyframes pulse{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}50%{-webkit-transform:scale(.99);transform:scale(.99)}100%{-webkit-transform:scale(1);transform:scale(1);opacity:1;visibility:visible}}@keyframes pulse{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}50%{-webkit-transform:scale(.99);transform:scale(.99)}100%{-webkit-transform:scale(1);transform:scale(1);opacity:1;visibility:visible}}.mdl-shadow--2dp{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.mdl-shadow--3dp{box-shadow:0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.2),0 1px 8px 0 rgba(0,0,0,.12)}.mdl-shadow--4dp{box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2)}.mdl-shadow--6dp{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.2)}.mdl-shadow--8dp{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.2)}.mdl-shadow--16dp{box-shadow:0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12),0 8px 10px -5px rgba(0,0,0,.2)}.mdl-grid{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;margin:0 auto;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.mdl-grid.mdl-grid--no-spacing{padding:0}.mdl-cell{box-sizing:border-box}.mdl-cell--top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.mdl-cell--middle{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.mdl-cell--bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.mdl-cell--stretch{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch}.mdl-grid.mdl-grid--no-spacing>.mdl-cell{margin:0}@media (max-width:479px){.mdl-grid{padding:8px}.mdl-cell{margin:8px;width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell{width:100%}.mdl-cell--hide-phone{display:none!important}.mdl-cell--1-col,.mdl-cell--1-col-phone.mdl-cell--1-col-phone{width:calc(25% - 16px)}.mdl-grid--no-spacing>.mdl-cell--1-col,.mdl-grid--no-spacing>.mdl-cell--1-col-phone.mdl-cell--1-col-phone{width:25%}.mdl-cell--2-col,.mdl-cell--2-col-phone.mdl-cell--2-col-phone{width:calc(50% - 16px)}.mdl-grid--no-spacing>.mdl-cell--2-col,.mdl-grid--no-spacing>.mdl-cell--2-col-phone.mdl-cell--2-col-phone{width:50%}.mdl-cell--3-col,.mdl-cell--3-col-phone.mdl-cell--3-col-phone{width:calc(75% - 16px)}.mdl-grid--no-spacing>.mdl-cell--3-col,.mdl-grid--no-spacing>.mdl-cell--3-col-phone.mdl-cell--3-col-phone{width:75%}.mdl-cell--4-col,.mdl-cell--4-col-phone.mdl-cell--4-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--4-col,.mdl-grid--no-spacing>.mdl-cell--4-col-phone.mdl-cell--4-col-phone{width:100%}.mdl-cell--5-col,.mdl-cell--5-col-phone.mdl-cell--5-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--5-col,.mdl-grid--no-spacing>.mdl-cell--5-col-phone.mdl-cell--5-col-phone{width:100%}.mdl-cell--6-col,.mdl-cell--6-col-phone.mdl-cell--6-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--6-col,.mdl-grid--no-spacing>.mdl-cell--6-col-phone.mdl-cell--6-col-phone{width:100%}.mdl-cell--7-col,.mdl-cell--7-col-phone.mdl-cell--7-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--7-col,.mdl-grid--no-spacing>.mdl-cell--7-col-phone.mdl-cell--7-col-phone{width:100%}.mdl-cell--8-col,.mdl-cell--8-col-phone.mdl-cell--8-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--8-col,.mdl-grid--no-spacing>.mdl-cell--8-col-phone.mdl-cell--8-col-phone{width:100%}.mdl-cell--9-col,.mdl-cell--9-col-phone.mdl-cell--9-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--9-col,.mdl-grid--no-spacing>.mdl-cell--9-col-phone.mdl-cell--9-col-phone{width:100%}.mdl-cell--10-col,.mdl-cell--10-col-phone.mdl-cell--10-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--10-col,.mdl-grid--no-spacing>.mdl-cell--10-col-phone.mdl-cell--10-col-phone{width:100%}.mdl-cell--11-col,.mdl-cell--11-col-phone.mdl-cell--11-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--11-col,.mdl-grid--no-spacing>.mdl-cell--11-col-phone.mdl-cell--11-col-phone{width:100%}.mdl-cell--12-col,.mdl-cell--12-col-phone.mdl-cell--12-col-phone{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--12-col,.mdl-grid--no-spacing>.mdl-cell--12-col-phone.mdl-cell--12-col-phone{width:100%}}@media (min-width:480px) and (max-width:839px){.mdl-grid{padding:8px}.mdl-cell{margin:8px;width:calc(50% - 16px)}.mdl-grid--no-spacing>.mdl-cell{width:50%}.mdl-cell--hide-tablet{display:none!important}.mdl-cell--1-col,.mdl-cell--1-col-tablet.mdl-cell--1-col-tablet{width:calc(12.5% - 16px)}.mdl-grid--no-spacing>.mdl-cell--1-col,.mdl-grid--no-spacing>.mdl-cell--1-col-tablet.mdl-cell--1-col-tablet{width:12.5%}.mdl-cell--2-col,.mdl-cell--2-col-tablet.mdl-cell--2-col-tablet{width:calc(25% - 16px)}.mdl-grid--no-spacing>.mdl-cell--2-col,.mdl-grid--no-spacing>.mdl-cell--2-col-tablet.mdl-cell--2-col-tablet{width:25%}.mdl-cell--3-col,.mdl-cell--3-col-tablet.mdl-cell--3-col-tablet{width:calc(37.5% - 16px)}.mdl-grid--no-spacing>.mdl-cell--3-col,.mdl-grid--no-spacing>.mdl-cell--3-col-tablet.mdl-cell--3-col-tablet{width:37.5%}.mdl-cell--4-col,.mdl-cell--4-col-tablet.mdl-cell--4-col-tablet{width:calc(50% - 16px)}.mdl-grid--no-spacing>.mdl-cell--4-col,.mdl-grid--no-spacing>.mdl-cell--4-col-tablet.mdl-cell--4-col-tablet{width:50%}.mdl-cell--5-col,.mdl-cell--5-col-tablet.mdl-cell--5-col-tablet{width:calc(62.5% - 16px)}.mdl-grid--no-spacing>.mdl-cell--5-col,.mdl-grid--no-spacing>.mdl-cell--5-col-tablet.mdl-cell--5-col-tablet{width:62.5%}.mdl-cell--6-col,.mdl-cell--6-col-tablet.mdl-cell--6-col-tablet{width:calc(75% - 16px)}.mdl-grid--no-spacing>.mdl-cell--6-col,.mdl-grid--no-spacing>.mdl-cell--6-col-tablet.mdl-cell--6-col-tablet{width:75%}.mdl-cell--7-col,.mdl-cell--7-col-tablet.mdl-cell--7-col-tablet{width:calc(87.5% - 16px)}.mdl-grid--no-spacing>.mdl-cell--7-col,.mdl-grid--no-spacing>.mdl-cell--7-col-tablet.mdl-cell--7-col-tablet{width:87.5%}.mdl-cell--8-col,.mdl-cell--8-col-tablet.mdl-cell--8-col-tablet{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--8-col,.mdl-grid--no-spacing>.mdl-cell--8-col-tablet.mdl-cell--8-col-tablet{width:100%}.mdl-cell--9-col,.mdl-cell--9-col-tablet.mdl-cell--9-col-tablet{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--9-col,.mdl-grid--no-spacing>.mdl-cell--9-col-tablet.mdl-cell--9-col-tablet{width:100%}.mdl-cell--10-col,.mdl-cell--10-col-tablet.mdl-cell--10-col-tablet{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--10-col,.mdl-grid--no-spacing>.mdl-cell--10-col-tablet.mdl-cell--10-col-tablet{width:100%}.mdl-cell--11-col,.mdl-cell--11-col-tablet.mdl-cell--11-col-tablet{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--11-col,.mdl-grid--no-spacing>.mdl-cell--11-col-tablet.mdl-cell--11-col-tablet{width:100%}.mdl-cell--12-col,.mdl-cell--12-col-tablet.mdl-cell--12-col-tablet{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--12-col,.mdl-grid--no-spacing>.mdl-cell--12-col-tablet.mdl-cell--12-col-tablet{width:100%}}@media (min-width:840px){.mdl-grid{padding:8px}.mdl-cell{margin:8px;width:calc(33.3333333333% - 16px)}.mdl-grid--no-spacing>.mdl-cell{width:33.3333333333%}.mdl-cell--hide-desktop{display:none!important}.mdl-cell--1-col,.mdl-cell--1-col-desktop.mdl-cell--1-col-desktop{width:calc(8.3333333333% - 16px)}.mdl-grid--no-spacing>.mdl-cell--1-col,.mdl-grid--no-spacing>.mdl-cell--1-col-desktop.mdl-cell--1-col-desktop{width:8.3333333333%}.mdl-cell--2-col,.mdl-cell--2-col-desktop.mdl-cell--2-col-desktop{width:calc(16.6666666667% - 16px)}.mdl-grid--no-spacing>.mdl-cell--2-col,.mdl-grid--no-spacing>.mdl-cell--2-col-desktop.mdl-cell--2-col-desktop{width:16.6666666667%}.mdl-cell--3-col,.mdl-cell--3-col-desktop.mdl-cell--3-col-desktop{width:calc(25% - 16px)}.mdl-grid--no-spacing>.mdl-cell--3-col,.mdl-grid--no-spacing>.mdl-cell--3-col-desktop.mdl-cell--3-col-desktop{width:25%}.mdl-cell--4-col,.mdl-cell--4-col-desktop.mdl-cell--4-col-desktop{width:calc(33.3333333333% - 16px)}.mdl-grid--no-spacing>.mdl-cell--4-col,.mdl-grid--no-spacing>.mdl-cell--4-col-desktop.mdl-cell--4-col-desktop{width:33.3333333333%}.mdl-cell--5-col,.mdl-cell--5-col-desktop.mdl-cell--5-col-desktop{width:calc(41.6666666667% - 16px)}.mdl-grid--no-spacing>.mdl-cell--5-col,.mdl-grid--no-spacing>.mdl-cell--5-col-desktop.mdl-cell--5-col-desktop{width:41.6666666667%}.mdl-cell--6-col,.mdl-cell--6-col-desktop.mdl-cell--6-col-desktop{width:calc(50% - 16px)}.mdl-grid--no-spacing>.mdl-cell--6-col,.mdl-grid--no-spacing>.mdl-cell--6-col-desktop.mdl-cell--6-col-desktop{width:50%}.mdl-cell--7-col,.mdl-cell--7-col-desktop.mdl-cell--7-col-desktop{width:calc(58.3333333333% - 16px)}.mdl-grid--no-spacing>.mdl-cell--7-col,.mdl-grid--no-spacing>.mdl-cell--7-col-desktop.mdl-cell--7-col-desktop{width:58.3333333333%}.mdl-cell--8-col,.mdl-cell--8-col-desktop.mdl-cell--8-col-desktop{width:calc(66.6666666667% - 16px)}.mdl-grid--no-spacing>.mdl-cell--8-col,.mdl-grid--no-spacing>.mdl-cell--8-col-desktop.mdl-cell--8-col-desktop{width:66.6666666667%}.mdl-cell--9-col,.mdl-cell--9-col-desktop.mdl-cell--9-col-desktop{width:calc(75% - 16px)}.mdl-grid--no-spacing>.mdl-cell--9-col,.mdl-grid--no-spacing>.mdl-cell--9-col-desktop.mdl-cell--9-col-desktop{width:75%}.mdl-cell--10-col,.mdl-cell--10-col-desktop.mdl-cell--10-col-desktop{width:calc(83.3333333333% - 16px)}.mdl-grid--no-spacing>.mdl-cell--10-col,.mdl-grid--no-spacing>.mdl-cell--10-col-desktop.mdl-cell--10-col-desktop{width:83.3333333333%}.mdl-cell--11-col,.mdl-cell--11-col-desktop.mdl-cell--11-col-desktop{width:calc(91.6666666667% - 16px)}.mdl-grid--no-spacing>.mdl-cell--11-col,.mdl-grid--no-spacing>.mdl-cell--11-col-desktop.mdl-cell--11-col-desktop{width:91.6666666667%}.mdl-cell--12-col,.mdl-cell--12-col-desktop.mdl-cell--12-col-desktop{width:calc(100% - 16px)}.mdl-grid--no-spacing>.mdl-cell--12-col,.mdl-grid--no-spacing>.mdl-cell--12-col-desktop.mdl-cell--12-col-desktop{width:100%}} \ No newline at end of file diff --git a/src/meta/css.js b/src/meta/css.js index 53388da57b..df613ee39f 100644 --- a/src/meta/css.js +++ b/src/meta/css.js @@ -32,7 +32,9 @@ module.exports = function (Meta) { '@import "../../public/less/generics.less";', '@import "../../public/less/mixins.less";', '@import "../../public/less/global.less";', - ].map(function (str) { return str.replace(/\//g, path.sep); }).join('\n'); + ].map(function (str) { + return str.replace(/\//g, path.sep); + }).join('\n'); }, admin: function (source) { return source + '\n' + [ @@ -42,7 +44,10 @@ module.exports = function (Meta) { '@import (inline) "../public/vendor/colorpicker/colorpicker.css";', '@import (inline) "../public/vendor/jquery/css/smoothness/jquery-ui.css";', '@import (inline) "../public/vendor/jquery/bootstrap-tagsinput/bootstrap-tagsinput.css";', - ].map(function (str) { return str.replace(/\//g, path.sep); }).join('\n'); + '@import (inline) "../public/vendor/mdl/material.css";', + ].map(function (str) { + return str.replace(/\//g, path.sep); + }).join('\n'); }, }; @@ -90,7 +95,7 @@ module.exports = function (Meta) { }; function getStyleSource(files, prefix, extension, callback) { - var pluginDirectories = [], + var pluginDirectories = [], source = ''; files.forEach(function (styleFile) { @@ -143,7 +148,7 @@ module.exports = function (Meta) { return callback(err); } - postcss(global.env === 'development' ? [ autoprefixer ] : [ + postcss(global.env === 'development' ? [autoprefixer] : [ autoprefixer, clean({ processImportFrom: ['local'] diff --git a/src/views/admin/header.tpl b/src/views/admin/header.tpl index 23ce1e2c02..b293436106 100644 --- a/src/views/admin/header.tpl +++ b/src/views/admin/header.tpl @@ -3,11 +3,10 @@ {title} - + - - + - + diff --git a/src/views/admin/manage/tags.tpl b/src/views/admin/manage/tags.tpl index 41851df893..8fa01a1200 100644 --- a/src/views/admin/manage/tags.tpl +++ b/src/views/admin/manage/tags.tpl @@ -10,12 +10,11 @@
    - {tags.value} - - {tags.score} + background-color: {tags.bgColor};"> + {tags.score} + {tags.value}