From 2ba46808a181d34ae1c242cfaa1f88438c15bdf6 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Fri, 17 Feb 2017 20:20:42 -0700 Subject: [PATCH] ESlint one-var, fix comma-dangle --- .eslintrc.json | 9 +- Gruntfile.js | 19 +-- bcrypt.js | 4 +- loader.js | 36 +++-- public/src/admin/advanced/errors.js | 6 +- public/src/admin/advanced/logs.js | 4 +- public/src/admin/appearance/customise.js | 4 +- public/src/admin/appearance/skins.js | 8 +- public/src/admin/appearance/themes.js | 12 +- public/src/admin/extend/plugins.js | 6 +- public/src/admin/extend/rewards.js | 36 ++--- public/src/admin/extend/widgets.js | 34 ++--- public/src/admin/general/dashboard.js | 26 ++-- public/src/admin/general/navigation.js | 20 +-- public/src/admin/manage/categories.js | 19 ++- public/src/admin/manage/category.js | 26 ++-- public/src/admin/manage/group.js | 37 ++--- public/src/admin/manage/groups.js | 22 +-- public/src/admin/manage/registration.js | 6 +- public/src/admin/manage/tags.js | 14 +- public/src/admin/modules/search.js | 4 +- public/src/admin/settings.js | 22 +-- public/src/admin/settings/email.js | 4 +- public/src/app.js | 6 +- public/src/client/account/header.js | 2 +- public/src/client/account/posts.js | 3 +- public/src/client/account/topics.js | 3 +- public/src/client/category.js | 15 +- public/src/client/chats.js | 8 +- public/src/client/chats/messages.js | 2 +- public/src/client/groups/details.js | 36 ++--- public/src/client/groups/list.js | 6 +- public/src/client/infinitescroll.js | 7 +- public/src/client/login.js | 6 +- public/src/client/register.js | 28 ++-- public/src/client/reset.js | 6 +- public/src/client/search.js | 3 +- public/src/client/topic.js | 8 +- public/src/client/topic/flag.js | 6 +- public/src/client/topic/move-post.js | 4 +- public/src/client/topic/move.js | 6 +- public/src/client/topic/posts.js | 75 +++++----- public/src/client/topic/votes.js | 4 +- public/src/installer/install.js | 6 +- public/src/modules/coverPhoto.js | 4 +- public/src/modules/helpers.js | 18 +-- public/src/modules/iconSelect.js | 12 +- public/src/modules/notifications.js | 8 +- public/src/modules/settings.js | 48 ++++--- public/src/modules/settings/array.js | 38 ++--- public/src/modules/settings/checkbox.js | 4 +- public/src/modules/settings/key.js | 70 ++++----- public/src/modules/settings/object.js | 35 ++--- public/src/modules/settings/select.js | 8 +- public/src/modules/settings/textarea.js | 4 +- public/src/modules/taskbar.js | 6 +- public/src/utils.js | 42 +++--- src/analytics.js | 8 +- src/batch.js | 4 +- src/categories.js | 5 +- src/controllers/accounts/profile.js | 2 +- src/controllers/admin/themes.js | 4 +- src/controllers/admin/uploads.js | 10 +- src/controllers/authentication.js | 3 +- src/database/mongo/sorted.js | 8 +- src/database/redis/sorted.js | 3 +- src/groups.js | 44 +++--- src/groups/ownership.js | 6 +- src/hotswap.js | 6 +- src/image.js | 14 +- src/install.js | 172 +++++++++++------------ src/logger.js | 16 +-- src/meta/blacklist.js | 6 +- src/meta/css.js | 4 +- src/meta/languages.js | 3 +- src/meta/templates.js | 23 +-- src/meta/themes.js | 4 +- src/middleware/index.js | 6 +- src/notifications.js | 22 +-- src/plugins.js | 4 +- src/plugins/hooks.js | 6 +- src/posts/parse.js | 8 +- src/posts/votes.js | 6 +- src/privileges/helpers.js | 6 +- src/privileges/users.js | 6 +- src/pubsub.js | 8 +- src/routes/authentication.js | 18 +-- src/settings.js | 23 +-- src/socket.io/admin/navigation.js | 4 +- src/socket.io/admin/social.js | 4 +- src/topics.js | 4 +- src/topics/delete.js | 3 +- src/topics/posts.js | 2 +- src/user/auth.js | 4 +- src/user/info.js | 4 +- src/user/picture.js | 6 +- src/user/reset.js | 18 +-- src/widgets/admin.js | 5 +- test/database/hash.js | 6 +- test/database/keys.js | 6 +- test/database/list.js | 6 +- test/database/sets.js | 6 +- test/database/sorted.js | 6 +- test/mocks/databasemock.js | 2 +- test/search-admin.js | 12 +- test/topics.js | 2 +- test/translator.js | 10 +- test/user.js | 4 +- test/utils.js | 4 +- 109 files changed, 778 insertions(+), 713 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 28d82dc1ac..e89a04f1dc 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -3,10 +3,17 @@ "rules": { "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" + }], // "linebreak-style": "off", "import/no-unresolved": "off", "import/no-extraneous-dependencies": "off", - "one-var": "off", + // "one-var": "off", "no-undef": "off", "max-len": "off", "no-new": "off", diff --git a/Gruntfile.js b/Gruntfile.js index bc1cf50a95..e0544e60c5 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,10 +1,11 @@ "use strict"; -var fork = require('child_process').fork, - env = process.env, - worker, updateWorker, - incomplete = [], - running = 0; +var fork = require('child_process').fork; +var env = process.env; +var worker; +var updateWorker; +var incomplete = []; +var running = 0; module.exports = function (grunt) { @@ -14,10 +15,10 @@ module.exports = function (grunt) { } function update(action, filepath, target) { - var updateArgs = args.slice(), - fromFile = '', - compiling = '', - time = Date.now(); + var updateArgs = args.slice(); + var fromFile = ''; + var compiling = ''; + var time = Date.now(); if (target === 'lessUpdated_Client') { compiling = 'clientCSS'; diff --git a/bcrypt.js b/bcrypt.js index 35e36b839f..13b4865bf6 100644 --- a/bcrypt.js +++ b/bcrypt.js @@ -1,8 +1,8 @@ 'use strict'; -var bcrypt = require('bcryptjs'), - async = require('async'); +var bcrypt = require('bcryptjs'); +var async = require('async'); process.on('message', function (msg) { diff --git a/loader.js b/loader.js index a1effda6c8..959e5124b7 100644 --- a/loader.js +++ b/loader.js @@ -1,29 +1,27 @@ 'use strict'; -var nconf = require('nconf'), - fs = require('fs'), - url = require('url'), - path = require('path'), - fork = require('child_process').fork, - - async = require('async'), - logrotate = require('logrotate-stream'), - file = require('./src/file'), - pkg = require('./package.json'); +var nconf = require('nconf'); +var fs = require('fs'); +var url = require('url'); +var path = require('path'); +var fork = require('child_process').fork; +var async = require('async'); +var logrotate = require('logrotate-stream'); +var file = require('./src/file'); +var pkg = require('./package.json'); nconf.argv().env().file({ file: path.join(__dirname, '/config.json'), }); -var pidFilePath = __dirname + '/pidfile', - output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true }), - silent = nconf.get('silent') === 'false' ? false : nconf.get('silent') !== false, - numProcs, - workers = [], - - Loader = { - timesStarted: 0, - }; +var pidFilePath = __dirname + '/pidfile'; +var output = logrotate({ file: __dirname + '/logs/output.log', size: '1m', keep: 3, compress: true }); +var silent = nconf.get('silent') === 'false' ? false : nconf.get('silent') !== false; +var numProcs; +var workers = []; +var Loader = { + timesStarted: 0, +}; Loader.init = function (callback) { if (silent) { diff --git a/public/src/admin/advanced/errors.js b/public/src/admin/advanced/errors.js index 56c2612d05..827309d14c 100644 --- a/public/src/admin/advanced/errors.js +++ b/public/src/admin/advanced/errors.js @@ -26,9 +26,9 @@ define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, transl }; Errors.setupCharts = function () { - var notFoundCanvas = document.getElementById('not-found'), - tooBusyCanvas = document.getElementById('toobusy'), - dailyLabels = utils.getDaysArray(); + var notFoundCanvas = document.getElementById('not-found'); + var tooBusyCanvas = document.getElementById('toobusy'); + var dailyLabels = utils.getDaysArray(); dailyLabels = dailyLabels.slice(-7); diff --git a/public/src/admin/advanced/logs.js b/public/src/admin/advanced/logs.js index 667dcd7280..9f3e6d4d94 100644 --- a/public/src/admin/advanced/logs.js +++ b/public/src/admin/advanced/logs.js @@ -11,8 +11,8 @@ define('admin/advanced/logs', function () { $('.affix').affix(); $('.logs').find('button[data-action]').on('click', function (event) { - var btnEl = $(this), - action = btnEl.attr('data-action'); + var btnEl = $(this); + var action = btnEl.attr('data-action'); switch(action) { case 'reload': diff --git a/public/src/admin/appearance/customise.js b/public/src/admin/appearance/customise.js index d8ad5e3ecb..b5b4df85cd 100644 --- a/public/src/admin/appearance/customise.js +++ b/public/src/admin/appearance/customise.js @@ -9,8 +9,8 @@ define('admin/appearance/customise', ['admin/settings'], function (Settings) { $('#customCSS').text($('#customCSS-holder').val()); $('#customHTML').text($('#customHTML-holder').val()); - var customCSS = ace.edit("customCSS"), - 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"); diff --git a/public/src/admin/appearance/skins.js b/public/src/admin/appearance/skins.js index cbdcb51a82..d314d948c5 100644 --- a/public/src/admin/appearance/skins.js +++ b/public/src/admin/appearance/skins.js @@ -21,10 +21,10 @@ define('admin/appearance/skins', ['translator'], function (translator) { var action = target.attr('data-action'); if (action && action === 'use') { - var parentEl = target.parents('[data-theme]'), - themeType = parentEl.attr('data-type'), - cssSrc = parentEl.attr('data-css'), - themeId = parentEl.attr('data-theme'); + var parentEl = target.parents('[data-theme]'); + var themeType = parentEl.attr('data-type'); + var cssSrc = parentEl.attr('data-css'); + var themeId = parentEl.attr('data-theme'); socket.emit('admin.themes.set', { diff --git a/public/src/admin/appearance/themes.js b/public/src/admin/appearance/themes.js index ecf90c6882..68f899da37 100644 --- a/public/src/admin/appearance/themes.js +++ b/public/src/admin/appearance/themes.js @@ -6,14 +6,14 @@ define('admin/appearance/themes', ['translator'], function (translator) { Themes.init = function () { $('#installed_themes').on('click', function (e) { - var target = $(e.target), - action = target.attr('data-action'); + var target = $(e.target); + var action = target.attr('data-action'); if (action && action === 'use') { - var parentEl = target.parents('[data-theme]'), - themeType = parentEl.attr('data-type'), - cssSrc = parentEl.attr('data-css'), - themeId = parentEl.attr('data-theme'); + var parentEl = target.parents('[data-theme]'); + var themeType = parentEl.attr('data-type'); + var cssSrc = parentEl.attr('data-css'); + var themeId = parentEl.attr('data-theme'); socket.emit('admin.themes.set', { type: themeType, diff --git a/public/src/admin/extend/plugins.js b/public/src/admin/extend/plugins.js index 73d57d7b1a..fc487e975f 100644 --- a/public/src/admin/extend/plugins.js +++ b/public/src/admin/extend/plugins.js @@ -4,9 +4,9 @@ define('admin/extend/plugins', ['jqueryui', 'translator'], function (jqueryui, translator) { var Plugins = {}; Plugins.init = function () { - var pluginsList = $('.plugins'), - numPlugins = pluginsList[0].querySelectorAll('li').length, - pluginID; + var pluginsList = $('.plugins'); + var numPlugins = pluginsList[0].querySelectorAll('li').length; + var pluginID; if (!numPlugins) { translator.translate('
  • [[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'); }); });