From b09b3aef7fe501759156c914eff80d4c591d4ac0 Mon Sep 17 00:00:00 2001
From: Peter Jaszkowiak
Date: Fri, 17 Feb 2017 21:55:19 -0700
Subject: [PATCH] ESlint no-undef, remove global comments
---
.eslintrc.json => .eslintrc | 2 +-
app.js | 1 -
public/.eslintrc | 22 +++++
public/.jshintrc | 84 +++++++++++++++++++
public/src/admin/.eslintrc | 8 ++
public/src/admin/advanced/errors.js | 2 +-
public/src/admin/advanced/events.js | 2 +-
public/src/admin/advanced/logs.js | 2 +-
public/src/admin/appearance/customise.js | 2 +-
public/src/admin/appearance/skins.js | 2 +-
public/src/admin/appearance/themes.js | 2 +-
public/src/admin/extend/plugins.js | 2 +-
public/src/admin/extend/rewards.js | 2 +-
public/src/admin/extend/widgets.js | 2 +-
public/src/admin/general/dashboard.js | 2 +-
public/src/admin/general/homepage.js | 2 +-
public/src/admin/general/languages.js | 2 +-
public/src/admin/general/navigation.js | 2 +-
public/src/admin/general/social.js | 2 +-
public/src/admin/general/sounds.js | 2 +-
public/src/admin/manage/categories.js | 2 +-
public/src/admin/manage/category-analytics.js | 2 +-
public/src/admin/manage/category.js | 2 +-
public/src/admin/manage/flags.js | 2 +-
public/src/admin/manage/group.js | 2 +-
public/src/admin/manage/groups.js | 2 +-
public/src/admin/manage/ip-blacklist.js | 2 +-
public/src/admin/manage/registration.js | 2 +-
public/src/admin/manage/tags.js | 2 +-
public/src/admin/manage/users.js | 2 +-
public/src/admin/modules/colorpicker.js | 2 +-
public/src/admin/modules/instance.js | 2 +-
public/src/admin/modules/search.js | 2 +-
public/src/admin/modules/selectable.js | 2 +-
public/src/admin/settings.js | 2 +-
public/src/admin/settings/cookies.js | 2 +-
public/src/admin/settings/email.js | 2 +-
public/src/admin/settings/general.js | 2 +-
public/src/ajaxify.js | 2 +-
public/src/app.js | 2 +-
public/src/client/account/best.js | 2 +-
public/src/client/account/bookmarks.js | 2 +-
public/src/client/account/downvoted.js | 2 +-
public/src/client/account/edit.js | 2 +-
public/src/client/account/edit/email.js | 2 +-
public/src/client/account/edit/password.js | 2 +-
public/src/client/account/edit/username.js | 2 +-
public/src/client/account/followers.js | 2 +-
public/src/client/account/following.js | 2 +-
public/src/client/account/groups.js | 2 +-
public/src/client/account/header.js | 2 +-
public/src/client/account/info.js | 2 +-
public/src/client/account/posts.js | 2 +-
public/src/client/account/profile.js | 2 +-
public/src/client/account/settings.js | 2 +-
public/src/client/account/topics.js | 2 +-
public/src/client/account/upvoted.js | 2 +-
public/src/client/account/watched.js | 2 +-
public/src/client/categories.js | 2 +-
public/src/client/category.js | 2 +-
public/src/client/category/tools.js | 2 +-
public/src/client/chats.js | 2 +-
public/src/client/chats/messages.js | 2 +-
public/src/client/chats/recent.js | 2 +-
public/src/client/chats/search.js | 2 +-
public/src/client/compose.js | 2 +-
public/src/client/footer.js | 2 +-
public/src/client/groups/details.js | 2 +-
public/src/client/groups/list.js | 2 +-
public/src/client/groups/memberlist.js | 2 +-
public/src/client/infinitescroll.js | 2 +-
public/src/client/login.js | 2 +-
public/src/client/notifications.js | 2 +-
public/src/client/pagination.js | 2 +-
public/src/client/popular.js | 2 +-
public/src/client/recent.js | 2 +-
public/src/client/register.js | 2 +-
public/src/client/reset.js | 2 +-
public/src/client/reset_code.js | 2 +-
public/src/client/search.js | 2 +-
public/src/client/tag.js | 2 +-
public/src/client/tags.js | 2 +-
public/src/client/topic.js | 2 +-
public/src/client/topic/delete-posts.js | 2 +-
public/src/client/topic/events.js | 2 +-
public/src/client/topic/flag.js | 2 +-
public/src/client/topic/fork.js | 2 +-
public/src/client/topic/move-post.js | 2 +-
public/src/client/topic/move.js | 2 +-
public/src/client/topic/postTools.js | 2 +-
public/src/client/topic/posts.js | 2 +-
public/src/client/topic/replies.js | 2 +-
public/src/client/topic/threadTools.js | 2 +-
public/src/client/topic/votes.js | 2 +-
public/src/client/unread.js | 2 +-
public/src/client/users.js | 2 +-
public/src/installer/install.js | 2 +-
public/src/modules/alerts.js | 2 +-
public/src/modules/autocomplete.js | 2 +-
public/src/modules/chat.js | 2 +-
public/src/modules/coverPhoto.js | 2 +-
public/src/modules/helpers.js | 4 +-
public/src/modules/iconSelect.js | 2 +-
public/src/modules/navigator.js | 2 +-
public/src/modules/notifications.js | 2 +-
public/src/modules/pictureCropper.js | 2 +-
public/src/modules/postSelect.js | 2 +-
public/src/modules/scrollStop.js | 2 +-
public/src/modules/search.js | 2 +-
public/src/modules/settings.js | 2 +-
public/src/modules/share.js | 2 +-
public/src/modules/sort.js | 2 +-
public/src/modules/sounds.js | 2 +-
public/src/modules/taskbar.js | 2 +-
public/src/modules/topicSelect.js | 2 +-
public/src/modules/translator.js | 2 +-
public/src/modules/uploader.js | 2 +-
public/src/overrides.js | 2 +-
public/src/sockets.js | 2 +-
public/src/widgets.js | 2 +-
src/messaging/unread.js | 2 +-
src/meta/languages.js | 2 +-
src/upgrade.js | 2 +-
test/.eslintrc | 5 ++
test/authentication.js | 2 +-
test/categories.js | 2 +-
test/database.js | 2 +-
test/database/hash.js | 2 +-
test/database/keys.js | 2 +-
test/database/list.js | 2 +-
test/database/sets.js | 2 +-
test/database/sorted.js | 2 +-
test/mocks/databasemock.js | 2 +-
test/notifications.js | 2 +-
test/pagination.js | 2 +-
test/plugins.js | 2 +-
test/posts.js | 2 +-
test/search-admin.js | 2 +-
test/search.js | 2 +-
test/socket.io.js | 2 +-
test/translator.js | 2 +-
test/utils.js | 2 +-
142 files changed, 257 insertions(+), 139 deletions(-)
rename .eslintrc.json => .eslintrc (99%)
create mode 100644 public/.eslintrc
create mode 100644 public/.jshintrc
create mode 100644 public/src/admin/.eslintrc
create mode 100644 test/.eslintrc
diff --git a/.eslintrc.json b/.eslintrc
similarity index 99%
rename from .eslintrc.json
rename to .eslintrc
index e89a04f1dc..e1374e915b 100644
--- a/.eslintrc.json
+++ b/.eslintrc
@@ -14,7 +14,7 @@
"import/no-unresolved": "off",
"import/no-extraneous-dependencies": "off",
// "one-var": "off",
- "no-undef": "off",
+ // "no-undef": "off",
"max-len": "off",
"no-new": "off",
"max-nested-callbacks": "off",
diff --git a/app.js b/app.js
index 5c667bc14b..1cd10a446c 100644
--- a/app.js
+++ b/app.js
@@ -18,7 +18,6 @@
*/
"use strict";
-/*global require, global, process*/
var nconf = require('nconf');
nconf.argv().env('__');
diff --git a/public/.eslintrc b/public/.eslintrc
new file mode 100644
index 0000000000..6e7ddc57e0
--- /dev/null
+++ b/public/.eslintrc
@@ -0,0 +1,22 @@
+{
+ "globals": {
+ "app": true,
+ "io": true,
+ "socket": true,
+ "ajaxify": true,
+ "config": true,
+ "RELATIVE_PATH": true,
+ "utils": true,
+ "overrides": true,
+ "componentHandler": true,
+ "bootbox": true,
+ "templates": true,
+ "Visibility": true,
+ "Tinycon": true
+ },
+ "env": {
+ "jquery": true,
+ "amd": true,
+ "browser": true
+ }
+}
diff --git a/public/.jshintrc b/public/.jshintrc
new file mode 100644
index 0000000000..5201bccc62
--- /dev/null
+++ b/public/.jshintrc
@@ -0,0 +1,84 @@
+{
+ "maxerr" : 50, // {int} Maximum error before stopping
+
+ // Enforcing
+ "bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.)
+ "camelcase" : false, // true: Identifiers must be in camelCase
+ "curly" : true, // true: Require {} for every new block or scope
+ "eqeqeq" : true, // true: Require triple equals (===) for comparison
+ "forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty()
+ "immed" : false, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());`
+ "indent" : 4, // {int} Number of spaces to use for indentation
+ "latedef" : false, // true: Require variables/functions to be defined before being used
+ "newcap" : false, // true: Require capitalization of all constructor functions e.g. `new F()`
+ "noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee`
+ "noempty" : true, // true: Prohibit use of empty blocks
+ "nonew" : false, // true: Prohibit use of constructors for side-effects (without assignment)
+ "plusplus" : false, // true: Prohibit use of `++` & `--`
+ "quotmark" : false, // Quotation mark consistency:
+ // false : do nothing (default)
+ // true : ensure whatever is used is consistent
+ // "single" : require single quotes
+ // "double" : require double quotes
+ "undef" : true, // true: Require all non-global variables to be declared (prevents global leaks)
+ "unused" : true, // true: Require all defined variables be used
+ "strict" : true, // true: Requires all functions run in ES5 Strict Mode
+ "trailing" : false, // true: Prohibit trailing whitespaces
+ "maxparams" : false, // {int} Max number of formal params allowed per function
+ "maxdepth" : false, // {int} Max depth of nested blocks (within functions)
+ "maxstatements" : false, // {int} Max number statements per function
+ "maxcomplexity" : false, // {int} Max cyclomatic complexity per function
+ "maxlen" : false, // {int} Max number of characters per line
+
+ // Relaxing
+ "asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons)
+ "boss" : false, // true: Tolerate assignments where comparisons would be expected
+ "debug" : false, // true: Allow debugger statements e.g. browser breakpoints.
+ "eqnull" : false, // true: Tolerate use of `== null`
+ "es5" : false, // true: Allow ES5 syntax (ex: getters and setters)
+ "esnext" : false, // true: Allow ES.next (ES6) syntax (ex: `const`)
+ "moz" : false, // true: Allow Mozilla specific syntax (extends and overrides esnext features)
+ // (ex: `for each`, multiple try/catch, function expression…)
+ "evil" : false, // true: Tolerate use of `eval` and `new Function()`
+ "expr" : false, // true: Tolerate `ExpressionStatement` as Programs
+ "funcscope" : false, // true: Tolerate defining variables inside control statements"
+ "globalstrict" : false, // true: Allow global "use strict" (also enables 'strict')
+ "iterator" : false, // true: Tolerate using the `__iterator__` property
+ "lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block
+ "laxbreak" : false, // true: Tolerate possibly unsafe line breakings
+ "laxcomma" : false, // true: Tolerate comma-first style coding
+ "loopfunc" : false, // true: Tolerate functions being defined in loops
+ "multistr" : false, // true: Tolerate multi-line strings
+ "proto" : false, // true: Tolerate using the `__proto__` property
+ "scripturl" : false, // true: Tolerate script-targeted URLs
+ "smarttabs" : false, // true: Tolerate mixed tabs/spaces when used for alignment
+ "shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;`
+ "sub" : false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation
+ "supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;`
+ "validthis" : false, // true: Tolerate using this in a non-constructor function
+
+ "globals": {
+ "app": true,
+ "io": true,
+ "socket": true,
+ "ajaxify": true,
+ "config": true,
+ "RELATIVE_PATH": true,
+ "utils": true,
+ "overrides": true,
+ "componentHandler": true,
+ "bootbox": true,
+ "templates": true,
+ "Visibility": true,
+ "Tinycon": true,
+ "require": true,
+ "define": true,
+ "ace": true,
+ "Sortable": true,
+ "Slideout": true,
+ "NProgress": true
+ },
+
+ "jquery": true,
+ "browser": true
+}
\ No newline at end of file
diff --git a/public/src/admin/.eslintrc b/public/src/admin/.eslintrc
new file mode 100644
index 0000000000..0c670302fa
--- /dev/null
+++ b/public/src/admin/.eslintrc
@@ -0,0 +1,8 @@
+{
+ "globals": {
+ "ace": true,
+ "Sortable": true,
+ "Slideout": true,
+ "NProgress": true
+ }
+}
\ No newline at end of file
diff --git a/public/src/admin/advanced/errors.js b/public/src/admin/advanced/errors.js
index 827309d14c..ec1bf1bff5 100644
--- a/public/src/admin/advanced/errors.js
+++ b/public/src/admin/advanced/errors.js
@@ -1,5 +1,5 @@
"use strict";
-/*global config, define, app, socket, ajaxify, bootbox, templates, Chart, utils */
+
define('admin/advanced/errors', ['Chart', 'translator'], function (Chart, translator) {
var Errors = {};
diff --git a/public/src/admin/advanced/events.js b/public/src/admin/advanced/events.js
index b4f18414ea..9da3f0fcec 100644
--- a/public/src/admin/advanced/events.js
+++ b/public/src/admin/advanced/events.js
@@ -1,6 +1,6 @@
"use strict";
-/* global define, socket, app */
+
define('admin/advanced/events', function () {
diff --git a/public/src/admin/advanced/logs.js b/public/src/admin/advanced/logs.js
index 9f3e6d4d94..054e1af77d 100644
--- a/public/src/admin/advanced/logs.js
+++ b/public/src/admin/advanced/logs.js
@@ -1,5 +1,5 @@
"use strict";
-/* global define, socket, app */
+
define('admin/advanced/logs', function () {
var Logs = {};
diff --git a/public/src/admin/appearance/customise.js b/public/src/admin/appearance/customise.js
index b5b4df85cd..b38b391828 100644
--- a/public/src/admin/appearance/customise.js
+++ b/public/src/admin/appearance/customise.js
@@ -1,5 +1,5 @@
"use strict";
-/* global ace, define, app, socket */
+
define('admin/appearance/customise', ['admin/settings'], function (Settings) {
var Customise = {};
diff --git a/public/src/admin/appearance/skins.js b/public/src/admin/appearance/skins.js
index d314d948c5..e6651551f4 100644
--- a/public/src/admin/appearance/skins.js
+++ b/public/src/admin/appearance/skins.js
@@ -1,5 +1,5 @@
"use strict";
-/* global define, app, socket, templates */
+
define('admin/appearance/skins', ['translator'], function (translator) {
var Skins = {};
diff --git a/public/src/admin/appearance/themes.js b/public/src/admin/appearance/themes.js
index 68f899da37..d217520a13 100644
--- a/public/src/admin/appearance/themes.js
+++ b/public/src/admin/appearance/themes.js
@@ -1,5 +1,5 @@
"use strict";
-/* global define, app, socket, bootbox, templates, config */
+
define('admin/appearance/themes', ['translator'], function (translator) {
var Themes = {};
diff --git a/public/src/admin/extend/plugins.js b/public/src/admin/extend/plugins.js
index fc487e975f..ed99847dd3 100644
--- a/public/src/admin/extend/plugins.js
+++ b/public/src/admin/extend/plugins.js
@@ -1,5 +1,5 @@
"use strict";
-/* global define, app, socket, bootbox */
+
define('admin/extend/plugins', ['jqueryui', 'translator'], function (jqueryui, translator) {
var Plugins = {};
diff --git a/public/src/admin/extend/rewards.js b/public/src/admin/extend/rewards.js
index f02f106f64..50b2adebf0 100644
--- a/public/src/admin/extend/rewards.js
+++ b/public/src/admin/extend/rewards.js
@@ -1,5 +1,5 @@
"use strict";
-/* global define, app, ajaxify, socket, templates, bootbox */
+
define('admin/extend/rewards', ['translator'], function (translator) {
var rewards = {};
diff --git a/public/src/admin/extend/widgets.js b/public/src/admin/extend/widgets.js
index a57a82ab57..b8a07d9d97 100644
--- a/public/src/admin/extend/widgets.js
+++ b/public/src/admin/extend/widgets.js
@@ -1,5 +1,5 @@
"use strict";
-/* global define, app, socket, bootbox */
+
define('admin/extend/widgets', ['jqueryui'], function (jqueryui) {
var Widgets = {};
diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js
index 4af4d0d579..6097a58339 100644
--- a/public/src/admin/general/dashboard.js
+++ b/public/src/admin/general/dashboard.js
@@ -1,5 +1,5 @@
"use strict";
-/*global define, ajaxify, app, socket, utils, bootbox, RELATIVE_PATH*/
+
define('admin/general/dashboard', ['semver', 'Chart', 'translator'], function (semver, Chart, translator) {
var Admin = {};
diff --git a/public/src/admin/general/homepage.js b/public/src/admin/general/homepage.js
index f0239e784c..7116422048 100644
--- a/public/src/admin/general/homepage.js
+++ b/public/src/admin/general/homepage.js
@@ -1,5 +1,5 @@
"use strict";
-/*global define*/
+
define('admin/general/homepage', ['admin/settings'], function (Settings) {
diff --git a/public/src/admin/general/languages.js b/public/src/admin/general/languages.js
index 8ccf016698..d0d270f5c2 100644
--- a/public/src/admin/general/languages.js
+++ b/public/src/admin/general/languages.js
@@ -1,5 +1,5 @@
"use strict";
-/*global define*/
+
define('admin/general/languages', ['admin/settings'], function (Settings) {
var Languages = {};
diff --git a/public/src/admin/general/navigation.js b/public/src/admin/general/navigation.js
index 63f4ff26a4..3181ebacee 100644
--- a/public/src/admin/general/navigation.js
+++ b/public/src/admin/general/navigation.js
@@ -1,5 +1,5 @@
"use strict";
-/* global define, app, ajaxify, socket, templates */
+
define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], function (translator, iconSelect, jqueryui) {
var navigation = {};
diff --git a/public/src/admin/general/social.js b/public/src/admin/general/social.js
index cfcc3d3c52..45f02afa66 100644
--- a/public/src/admin/general/social.js
+++ b/public/src/admin/general/social.js
@@ -1,5 +1,5 @@
"use strict";
-/*global define, socket*/
+
define('admin/general/social', [], function () {
var social = {};
diff --git a/public/src/admin/general/sounds.js b/public/src/admin/general/sounds.js
index e258e0db55..a3f25de5af 100644
--- a/public/src/admin/general/sounds.js
+++ b/public/src/admin/general/sounds.js
@@ -1,5 +1,5 @@
"use strict";
-/* global app, define, socket */
+
define('admin/general/sounds', ['sounds', 'settings'], function (Sounds, Settings) {
var SoundsAdmin = {};
diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js
index 7004854649..8d83050bf1 100644
--- a/public/src/admin/manage/categories.js
+++ b/public/src/admin/manage/categories.js
@@ -1,5 +1,5 @@
"use strict";
-/*global define, socket, app, bootbox, templates, ajaxify, Sortable */
+
define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-serializeobject.min', 'translator'], function (serialize, translator) {
var Categories = {};
diff --git a/public/src/admin/manage/category-analytics.js b/public/src/admin/manage/category-analytics.js
index 95f8093d2f..c9cf8162f4 100644
--- a/public/src/admin/manage/category-analytics.js
+++ b/public/src/admin/manage/category-analytics.js
@@ -1,5 +1,5 @@
"use strict";
-/*global define, ajaxify, utils */
+
define('admin/manage/category-analytics', ['Chart'], function (Chart) {
var CategoryAnalytics = {};
diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js
index 527a66c3ed..d864a96b94 100644
--- a/public/src/admin/manage/category.js
+++ b/public/src/admin/manage/category.js
@@ -1,5 +1,5 @@
"use strict";
-/*global config, define, app, socket, ajaxify, bootbox, templates */
+
define('admin/manage/category', [
'uploader',
diff --git a/public/src/admin/manage/flags.js b/public/src/admin/manage/flags.js
index 16f928c260..eec663ffcb 100644
--- a/public/src/admin/manage/flags.js
+++ b/public/src/admin/manage/flags.js
@@ -1,5 +1,5 @@
"use strict";
-/*global define, socket, app, utils, bootbox, ajaxify*/
+
define('admin/manage/flags', [
'autocomplete',
diff --git a/public/src/admin/manage/group.js b/public/src/admin/manage/group.js
index 973c20fd83..b799b7c9ea 100644
--- a/public/src/admin/manage/group.js
+++ b/public/src/admin/manage/group.js
@@ -1,5 +1,5 @@
"use strict";
-/*global define, templates, socket, ajaxify, app, bootbox */
+
define('admin/manage/group', [
'forum/groups/memberlist',
diff --git a/public/src/admin/manage/groups.js b/public/src/admin/manage/groups.js
index 58488bde7c..718437eb50 100644
--- a/public/src/admin/manage/groups.js
+++ b/public/src/admin/manage/groups.js
@@ -1,5 +1,5 @@
"use strict";
-/*global define, templates, socket, ajaxify, app, admin, bootbox, utils, config */
+
define('admin/manage/groups', ['translator'], function (translator) {
var Groups = {};
diff --git a/public/src/admin/manage/ip-blacklist.js b/public/src/admin/manage/ip-blacklist.js
index 637dd5ebe9..b77aa7e064 100644
--- a/public/src/admin/manage/ip-blacklist.js
+++ b/public/src/admin/manage/ip-blacklist.js
@@ -1,5 +1,5 @@
'use strict';
-/* globals $, app, socket, templates, define, bootbox */
+
define('admin/manage/ip-blacklist', ['translator'], function (translator) {
diff --git a/public/src/admin/manage/registration.js b/public/src/admin/manage/registration.js
index 230a02b1d8..d1c999ab99 100644
--- a/public/src/admin/manage/registration.js
+++ b/public/src/admin/manage/registration.js
@@ -1,6 +1,6 @@
"use strict";
-/* global config, socket, define, templates, bootbox, app, ajaxify, */
+
define('admin/manage/registration', function () {
var Registration = {};
diff --git a/public/src/admin/manage/tags.js b/public/src/admin/manage/tags.js
index b9001dabc2..29fb27ba3e 100644
--- a/public/src/admin/manage/tags.js
+++ b/public/src/admin/manage/tags.js
@@ -1,5 +1,5 @@
"use strict";
-/*global define, socket, app, utils, bootbox, ajaxify*/
+
define('admin/manage/tags', [
'forum/infinitescroll',
diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js
index 858baaff75..c4a8df97d6 100644
--- a/public/src/admin/manage/users.js
+++ b/public/src/admin/manage/users.js
@@ -1,6 +1,6 @@
"use strict";
-/* global config, socket, define, templates, bootbox, app, ajaxify */
+
define('admin/manage/users', ['translator'], function (translator) {
var Users = {};
diff --git a/public/src/admin/modules/colorpicker.js b/public/src/admin/modules/colorpicker.js
index 84dbc5f052..29329c4085 100644
--- a/public/src/admin/modules/colorpicker.js
+++ b/public/src/admin/modules/colorpicker.js
@@ -1,6 +1,6 @@
"use strict";
-/*globals define*/
+
define('admin/modules/colorpicker', function () {
var colorpicker = {};
diff --git a/public/src/admin/modules/instance.js b/public/src/admin/modules/instance.js
index 89e627d639..ca115199c4 100644
--- a/public/src/admin/modules/instance.js
+++ b/public/src/admin/modules/instance.js
@@ -1,6 +1,6 @@
"use strict";
-/*globals define, app, socket*/
+
define('admin/modules/instance', function () {
var instance = {};
diff --git a/public/src/admin/modules/search.js b/public/src/admin/modules/search.js
index 29379f0dac..d485131e6c 100644
--- a/public/src/admin/modules/search.js
+++ b/public/src/admin/modules/search.js
@@ -1,5 +1,5 @@
"use strict";
-/* globals socket, app, define, ajaxify, config */
+
define('admin/modules/search', ['mousetrap'], function (mousetrap) {
var search = {};
diff --git a/public/src/admin/modules/selectable.js b/public/src/admin/modules/selectable.js
index a3a693d49b..8dc8b4e489 100644
--- a/public/src/admin/modules/selectable.js
+++ b/public/src/admin/modules/selectable.js
@@ -1,6 +1,6 @@
"use strict";
-/*globals define*/
+
define('admin/modules/selectable', ['jqueryui'], function (jqueryui) {
var selectable = {};
diff --git a/public/src/admin/settings.js b/public/src/admin/settings.js
index 13fa82cf68..d9ae99714f 100644
--- a/public/src/admin/settings.js
+++ b/public/src/admin/settings.js
@@ -1,5 +1,5 @@
'use strict';
-/*global define, app, socket, ajaxify */
+
define('admin/settings', ['uploader'], function (uploader) {
var Settings = {};
diff --git a/public/src/admin/settings/cookies.js b/public/src/admin/settings/cookies.js
index 26d2b90a37..10e825d4ae 100644
--- a/public/src/admin/settings/cookies.js
+++ b/public/src/admin/settings/cookies.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define */
+
define('admin/settings/cookies', [
'admin/modules/colorpicker',
diff --git a/public/src/admin/settings/email.js b/public/src/admin/settings/email.js
index 4f2275ecb2..e4b02bebc1 100644
--- a/public/src/admin/settings/email.js
+++ b/public/src/admin/settings/email.js
@@ -1,5 +1,5 @@
"use strict";
-/* global define, socket, app, ajaxify, ace */
+
define('admin/settings/email', ['admin/settings'], function (settings) {
var module = {};
diff --git a/public/src/admin/settings/general.js b/public/src/admin/settings/general.js
index af1028c70e..ac8a0eee91 100644
--- a/public/src/admin/settings/general.js
+++ b/public/src/admin/settings/general.js
@@ -1,5 +1,5 @@
"use strict";
-/* global define, socket */
+
define('admin/settings/general', ['admin/settings'], function (Settings) {
var Module = {};
diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js
index 3506bd6b6f..22af54a266 100644
--- a/public/src/ajaxify.js
+++ b/public/src/ajaxify.js
@@ -1,5 +1,5 @@
"use strict";
-/*global app, bootbox, templates, socket, config, RELATIVE_PATH*/
+
var ajaxify = ajaxify || {};
diff --git a/public/src/app.js b/public/src/app.js
index d0390d50cf..99b67a2094 100644
--- a/public/src/app.js
+++ b/public/src/app.js
@@ -1,5 +1,5 @@
"use strict";
-/*global templates, ajaxify, utils, bootbox, overrides, socket, config, Visibility*/
+
var app = app || {};
diff --git a/public/src/client/account/best.js b/public/src/client/account/best.js
index abc88620bf..3146935be9 100644
--- a/public/src/client/account/best.js
+++ b/public/src/client/account/best.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define */
+
define('forum/account/best', ['forum/account/header', 'forum/account/posts'], function (header, posts) {
var Best = {};
diff --git a/public/src/client/account/bookmarks.js b/public/src/client/account/bookmarks.js
index 3f9b848b75..16b13216be 100644
--- a/public/src/client/account/bookmarks.js
+++ b/public/src/client/account/bookmarks.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define */
+
define('forum/account/bookmarks', ['forum/account/header', 'forum/account/posts'], function (header, posts) {
var Bookmarks = {};
diff --git a/public/src/client/account/downvoted.js b/public/src/client/account/downvoted.js
index b84e5da6bf..d27b460af0 100644
--- a/public/src/client/account/downvoted.js
+++ b/public/src/client/account/downvoted.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define */
+
define('forum/account/downvoted', ['forum/account/header', 'forum/account/posts'], function (header, posts) {
var Downvoted = {};
diff --git a/public/src/client/account/edit.js b/public/src/client/account/edit.js
index f2556b1cf9..7c05e1ccab 100644
--- a/public/src/client/account/edit.js
+++ b/public/src/client/account/edit.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, ajaxify, socket, app, config, templates, bootbox */
+
define('forum/account/edit', ['forum/account/header', 'translator', 'components', 'pictureCropper'], function (header, translator, components, pictureCropper) {
var AccountEdit = {};
diff --git a/public/src/client/account/edit/email.js b/public/src/client/account/edit/email.js
index 65b9b7616b..66362e850d 100644
--- a/public/src/client/account/edit/email.js
+++ b/public/src/client/account/edit/email.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, ajaxify, socket, app */
+
define('forum/account/edit/email', ['forum/account/header'], function (header) {
var AccountEditEmail = {};
diff --git a/public/src/client/account/edit/password.js b/public/src/client/account/edit/password.js
index 75efd0bbc9..f983e230ea 100644
--- a/public/src/client/account/edit/password.js
+++ b/public/src/client/account/edit/password.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, ajaxify, socket, app, utils */
+
define('forum/account/edit/password', ['forum/account/header', 'translator'], function (header, translator) {
var AccountEditPassword = {};
diff --git a/public/src/client/account/edit/username.js b/public/src/client/account/edit/username.js
index b65474bfdf..bedc6c400e 100644
--- a/public/src/client/account/edit/username.js
+++ b/public/src/client/account/edit/username.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, ajaxify, socket, app, utils, config */
+
define('forum/account/edit/username', ['forum/account/header'], function (header) {
var AccountEditUsername = {};
diff --git a/public/src/client/account/followers.js b/public/src/client/account/followers.js
index 22970327fb..a055b12194 100644
--- a/public/src/client/account/followers.js
+++ b/public/src/client/account/followers.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define */
+
define('forum/account/followers', ['forum/account/header'], function (header) {
var Followers = {};
diff --git a/public/src/client/account/following.js b/public/src/client/account/following.js
index dff2f92709..e52e973204 100644
--- a/public/src/client/account/following.js
+++ b/public/src/client/account/following.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define */
+
define('forum/account/following', ['forum/account/header'], function (header) {
var Following = {};
diff --git a/public/src/client/account/groups.js b/public/src/client/account/groups.js
index f8fe55fdd9..aaa3f3d930 100644
--- a/public/src/client/account/groups.js
+++ b/public/src/client/account/groups.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals ajaxify, define, app, socket, utils */
+
define('forum/account/groups', ['forum/account/header'], function (header) {
var AccountTopics = {};
diff --git a/public/src/client/account/header.js b/public/src/client/account/header.js
index a9f2bd7921..9e453e8203 100644
--- a/public/src/client/account/header.js
+++ b/public/src/client/account/header.js
@@ -1,5 +1,5 @@
'use strict';
-/* globals define, app, config, ajaxify, socket, bootbox, templates */
+
define('forum/account/header', [
'coverPhoto',
diff --git a/public/src/client/account/info.js b/public/src/client/account/info.js
index aef4349376..82bafaadb5 100644
--- a/public/src/client/account/info.js
+++ b/public/src/client/account/info.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, socket, ajaxify, app */
+
define('forum/account/info', ['forum/account/header', 'components'], function (header, components) {
var Info = {};
diff --git a/public/src/client/account/posts.js b/public/src/client/account/posts.js
index 1647f8a2f0..5c5668a267 100644
--- a/public/src/client/account/posts.js
+++ b/public/src/client/account/posts.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, socket, utils, config, ajaxify */
+
define('forum/account/posts', ['forum/account/header', 'forum/infinitescroll'], function (header, infinitescroll) {
var AccountPosts = {};
diff --git a/public/src/client/account/profile.js b/public/src/client/account/profile.js
index 8e99f48786..2f7775c682 100644
--- a/public/src/client/account/profile.js
+++ b/public/src/client/account/profile.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, ajaxify, app, socket, bootbox */
+
define('forum/account/profile', [
'forum/account/header',
diff --git a/public/src/client/account/settings.js b/public/src/client/account/settings.js
index 51ccb36a47..967e80bfd4 100644
--- a/public/src/client/account/settings.js
+++ b/public/src/client/account/settings.js
@@ -1,6 +1,6 @@
'use strict';
-/*global define, socket, app, ajaxify, config*/
+
define('forum/account/settings', ['forum/account/header', 'components', 'sounds'], function (header, components, sounds) {
var AccountSettings = {};
diff --git a/public/src/client/account/topics.js b/public/src/client/account/topics.js
index e9217c0c5c..b825810e85 100644
--- a/public/src/client/account/topics.js
+++ b/public/src/client/account/topics.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, socket, utils, config, ajaxify */
+
define('forum/account/topics', ['forum/account/header', 'forum/infinitescroll'], function (header, infinitescroll) {
var AccountTopics = {};
diff --git a/public/src/client/account/upvoted.js b/public/src/client/account/upvoted.js
index 76bf001b77..192961402f 100644
--- a/public/src/client/account/upvoted.js
+++ b/public/src/client/account/upvoted.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define */
+
define('forum/account/upvoted', ['forum/account/header', 'forum/account/posts'], function (header, posts) {
var Upvoted = {};
diff --git a/public/src/client/account/watched.js b/public/src/client/account/watched.js
index 4e1ca01cfe..6ba9ccc19d 100644
--- a/public/src/client/account/watched.js
+++ b/public/src/client/account/watched.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, socket, utils */
+
define('forum/account/watched', ['forum/account/header', 'forum/account/topics'], function (header, topics) {
var AccountWatched = {};
diff --git a/public/src/client/categories.js b/public/src/client/categories.js
index 9f1e4ba51d..5e4e01e2b7 100644
--- a/public/src/client/categories.js
+++ b/public/src/client/categories.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, socket, app, templates, ajaxify*/
+
define('forum/categories', ['components', 'translator'], function (components, translator) {
var categories = {};
diff --git a/public/src/client/category.js b/public/src/client/category.js
index 060e39eb36..f394ee0a88 100644
--- a/public/src/client/category.js
+++ b/public/src/client/category.js
@@ -1,5 +1,5 @@
"use strict";
-/* global define, config, templates, app, utils, ajaxify, socket */
+
define('forum/category', [
'forum/infinitescroll',
diff --git a/public/src/client/category/tools.js b/public/src/client/category/tools.js
index 66000e12ff..d85ddadaf8 100644
--- a/public/src/client/category/tools.js
+++ b/public/src/client/category/tools.js
@@ -1,7 +1,7 @@
'use strict';
-/* globals define, app, socket, bootbox, ajaxify */
+
define('forum/category/tools', [
diff --git a/public/src/client/chats.js b/public/src/client/chats.js
index 36c600ec71..45e08c85e7 100644
--- a/public/src/client/chats.js
+++ b/public/src/client/chats.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, ajaxify, utils, socket, templates */
+
define('forum/chats', [
'components',
diff --git a/public/src/client/chats/messages.js b/public/src/client/chats/messages.js
index 19f7bf1b7f..ab325cc950 100644
--- a/public/src/client/chats/messages.js
+++ b/public/src/client/chats/messages.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, socket, app, ajaxify, templates, bootbox */
+
define('forum/chats/messages', ['components', 'sounds', 'translator'], function (components, sounds, translator) {
diff --git a/public/src/client/chats/recent.js b/public/src/client/chats/recent.js
index f51b8c1242..8ecb0e8448 100644
--- a/public/src/client/chats/recent.js
+++ b/public/src/client/chats/recent.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, socket, app */
+
define('forum/chats/recent', function () {
diff --git a/public/src/client/chats/search.js b/public/src/client/chats/search.js
index 986dfaa9c4..d886a7e6bb 100644
--- a/public/src/client/chats/search.js
+++ b/public/src/client/chats/search.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, socket, app */
+
define('forum/chats/search', ['components'], function (components) {
diff --git a/public/src/client/compose.js b/public/src/client/compose.js
index a27edad14d..27cf0be90d 100644
--- a/public/src/client/compose.js
+++ b/public/src/client/compose.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define */
+
define('forum/compose', [], function () {
var Compose = {};
diff --git a/public/src/client/footer.js b/public/src/client/footer.js
index d10f47e317..58837406ee 100644
--- a/public/src/client/footer.js
+++ b/public/src/client/footer.js
@@ -1,5 +1,5 @@
"use strict";
-/*globals define, app, socket*/
+
define('forum/footer', ['notifications', 'chat', 'components', 'translator'], function (Notifications, Chat, components, translator) {
diff --git a/public/src/client/groups/details.js b/public/src/client/groups/details.js
index 373e169ff1..baf05e107c 100644
--- a/public/src/client/groups/details.js
+++ b/public/src/client/groups/details.js
@@ -1,5 +1,5 @@
"use strict";
-/* globals define, socket, ajaxify, app, bootbox, utils, config */
+
define('forum/groups/details', [
'forum/groups/memberlist',
diff --git a/public/src/client/groups/list.js b/public/src/client/groups/list.js
index 960fba8c78..3a6a651c39 100644
--- a/public/src/client/groups/list.js
+++ b/public/src/client/groups/list.js
@@ -1,5 +1,5 @@
"use strict";
-/* globals app, define, ajaxify, socket, bootbox, utils, templates */
+
define('forum/groups/list', ['forum/infinitescroll'], function (infinitescroll) {
var Groups = {};
diff --git a/public/src/client/groups/memberlist.js b/public/src/client/groups/memberlist.js
index 2a5da78458..9550ad2568 100644
--- a/public/src/client/groups/memberlist.js
+++ b/public/src/client/groups/memberlist.js
@@ -1,5 +1,5 @@
"use strict";
-/* globals define, socket, ajaxify, app */
+
define('forum/groups/memberlist', ['components', 'forum/infinitescroll'], function (components, infinitescroll) {
diff --git a/public/src/client/infinitescroll.js b/public/src/client/infinitescroll.js
index d681ab1779..1c9e55bbac 100644
--- a/public/src/client/infinitescroll.js
+++ b/public/src/client/infinitescroll.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, socket, app */
+
define('forum/infinitescroll', function () {
diff --git a/public/src/client/login.js b/public/src/client/login.js
index fb88797410..00b0e8ed73 100644
--- a/public/src/client/login.js
+++ b/public/src/client/login.js
@@ -1,5 +1,5 @@
"use strict";
-/* global define, app, config, RELATIVE_PATH */
+
define('forum/login', ['translator'], function (translator) {
var Login = {};
diff --git a/public/src/client/notifications.js b/public/src/client/notifications.js
index f68496bf3e..0ca79ae6c0 100644
--- a/public/src/client/notifications.js
+++ b/public/src/client/notifications.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, socket, app */
+
define('forum/notifications', ['components', 'notifications', 'forum/infinitescroll'], function (components, notifs, infinitescroll) {
var Notifications = {};
diff --git a/public/src/client/pagination.js b/public/src/client/pagination.js
index 6cbd7102f0..1fba9d354d 100644
--- a/public/src/client/pagination.js
+++ b/public/src/client/pagination.js
@@ -1,5 +1,5 @@
'use strict';
-/*global define, utils, ajaxify, bootbox*/
+
define('forum/pagination', function () {
var pagination = {};
diff --git a/public/src/client/popular.js b/public/src/client/popular.js
index 00fb6937e2..b8999de7cf 100644
--- a/public/src/client/popular.js
+++ b/public/src/client/popular.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, socket*/
+
define('forum/popular', ['components'], function (components) {
var Popular = {};
diff --git a/public/src/client/recent.js b/public/src/client/recent.js
index 676fa5e815..b29b1bddef 100644
--- a/public/src/client/recent.js
+++ b/public/src/client/recent.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, socket, utils, ajaxify, config */
+
define('forum/recent', ['forum/infinitescroll', 'components'], function (infinitescroll, components) {
var Recent = {};
diff --git a/public/src/client/register.js b/public/src/client/register.js
index adae04de2a..79287d088e 100644
--- a/public/src/client/register.js
+++ b/public/src/client/register.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, utils, socket, config, ajaxify, bootbox */
+
define('forum/register', ['translator'], function (translator) {
diff --git a/public/src/client/reset.js b/public/src/client/reset.js
index 3712957e36..84915b597c 100644
--- a/public/src/client/reset.js
+++ b/public/src/client/reset.js
@@ -1,5 +1,5 @@
"use strict";
-/*globals define, app, socket*/
+
define('forum/reset', function () {
var ResetPassword = {};
diff --git a/public/src/client/reset_code.js b/public/src/client/reset_code.js
index a0c005311e..4104648c47 100644
--- a/public/src/client/reset_code.js
+++ b/public/src/client/reset_code.js
@@ -1,5 +1,5 @@
"use strict";
-/*globals define, app, ajaxify, socket, config*/
+
define('forum/reset_code', function () {
var ResetCode = {};
diff --git a/public/src/client/search.js b/public/src/client/search.js
index c528b011c8..7df69aa440 100644
--- a/public/src/client/search.js
+++ b/public/src/client/search.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals app, define, utils*/
+
define('forum/search', ['search', 'autocomplete'], function (searchModule, autocomplete) {
var Search = {};
diff --git a/public/src/client/tag.js b/public/src/client/tag.js
index b51d57b32d..8667cbc303 100644
--- a/public/src/client/tag.js
+++ b/public/src/client/tag.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, ajaxify, socket */
+
define('forum/tag', ['forum/recent', 'forum/infinitescroll'], function (recent, infinitescroll) {
var Tag = {};
diff --git a/public/src/client/tags.js b/public/src/client/tags.js
index 832e4c773c..7d683831e8 100644
--- a/public/src/client/tags.js
+++ b/public/src/client/tags.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, utils, socket */
+
define('forum/tags', ['forum/infinitescroll'], function (infinitescroll) {
var Tags = {};
diff --git a/public/src/client/topic.js b/public/src/client/topic.js
index 68f3679a16..2c6c11ae2a 100644
--- a/public/src/client/topic.js
+++ b/public/src/client/topic.js
@@ -1,7 +1,7 @@
'use strict';
-/* globals define, app, socket, config, ajaxify, RELATIVE_PATH, utils */
+
define('forum/topic', [
'forum/infinitescroll',
diff --git a/public/src/client/topic/delete-posts.js b/public/src/client/topic/delete-posts.js
index 3ff058509c..d8f752706c 100644
--- a/public/src/client/topic/delete-posts.js
+++ b/public/src/client/topic/delete-posts.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, ajaxify, socket */
+
define('forum/topic/delete-posts', ['components', 'postSelect'], function (components, postSelect) {
diff --git a/public/src/client/topic/events.js b/public/src/client/topic/events.js
index 88d8391fa4..dba8b950aa 100644
--- a/public/src/client/topic/events.js
+++ b/public/src/client/topic/events.js
@@ -1,7 +1,7 @@
'use strict';
-/* globals config, app, ajaxify, define, socket, templates, utils */
+
define('forum/topic/events', [
'forum/topic/postTools',
diff --git a/public/src/client/topic/flag.js b/public/src/client/topic/flag.js
index 82b3fdfb00..e44c77072c 100644
--- a/public/src/client/topic/flag.js
+++ b/public/src/client/topic/flag.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, socket, templates */
+
define('forum/topic/flag', [], function () {
diff --git a/public/src/client/topic/fork.js b/public/src/client/topic/fork.js
index 8dfa0a8365..ab8368ec52 100644
--- a/public/src/client/topic/fork.js
+++ b/public/src/client/topic/fork.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, ajaxify, socket */
+
define('forum/topic/fork', ['components', 'postSelect'], function (components, postSelect) {
diff --git a/public/src/client/topic/move-post.js b/public/src/client/topic/move-post.js
index 1da810a599..c4a66917e6 100644
--- a/public/src/client/topic/move-post.js
+++ b/public/src/client/topic/move-post.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, socket */
+
define('forum/topic/move-post', [], function () {
diff --git a/public/src/client/topic/move.js b/public/src/client/topic/move.js
index d5eea6e10f..4043dc211d 100644
--- a/public/src/client/topic/move.js
+++ b/public/src/client/topic/move.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, socket, templates */
+
define('forum/topic/move', function () {
diff --git a/public/src/client/topic/postTools.js b/public/src/client/topic/postTools.js
index ac542940a8..d7eedfd840 100644
--- a/public/src/client/topic/postTools.js
+++ b/public/src/client/topic/postTools.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, ajaxify, bootbox, socket, templates, utils, config */
+
define('forum/topic/postTools', [
'share',
diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js
index da07207379..f2c20a5a8f 100644
--- a/public/src/client/topic/posts.js
+++ b/public/src/client/topic/posts.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals config, app, ajaxify, define, utils */
+
define('forum/topic/posts', [
'forum/pagination',
diff --git a/public/src/client/topic/replies.js b/public/src/client/topic/replies.js
index 07eeab847e..03529225a5 100644
--- a/public/src/client/topic/replies.js
+++ b/public/src/client/topic/replies.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, ajaxify, socket */
+
define('forum/topic/replies', ['navigator', 'components', 'forum/topic/posts'], function (navigator, components, posts) {
diff --git a/public/src/client/topic/threadTools.js b/public/src/client/topic/threadTools.js
index aab7654e27..9563e6d3ae 100644
--- a/public/src/client/topic/threadTools.js
+++ b/public/src/client/topic/threadTools.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, ajaxify, socket, bootbox, templates */
+
define('forum/topic/threadTools', [
'forum/topic/fork',
diff --git a/public/src/client/topic/votes.js b/public/src/client/topic/votes.js
index 37c612eacf..f8f9785407 100644
--- a/public/src/client/topic/votes.js
+++ b/public/src/client/topic/votes.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, socket, ajaxify, templates, bootbox */
+
define('forum/topic/votes', ['components', 'translator'], function (components, translator) {
diff --git a/public/src/client/unread.js b/public/src/client/unread.js
index a9fea6b15e..41686a9eee 100644
--- a/public/src/client/unread.js
+++ b/public/src/client/unread.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, app, socket */
+
define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', 'components'], function (recent, topicSelect, infinitescroll, components) {
var Unread = {};
diff --git a/public/src/client/users.js b/public/src/client/users.js
index 5d7ff6ea8b..302f65c2c6 100644
--- a/public/src/client/users.js
+++ b/public/src/client/users.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, socket, app, templates, bootbox, utils */
+
define('forum/users', ['translator'], function (translator) {
var Users = {};
diff --git a/public/src/installer/install.js b/public/src/installer/install.js
index 760dc788a2..c3bc1a06de 100644
--- a/public/src/installer/install.js
+++ b/public/src/installer/install.js
@@ -1,5 +1,5 @@
"use strict";
-/*global utils*/
+
$('document').ready(function () {
setupInputs();
diff --git a/public/src/modules/alerts.js b/public/src/modules/alerts.js
index 1c9b0bd086..6c5595d889 100644
--- a/public/src/modules/alerts.js
+++ b/public/src/modules/alerts.js
@@ -1,5 +1,5 @@
'use strict';
-/* globals define, templates */
+
define('alerts', ['translator', 'components'], function (translator, components) {
var module = {};
diff --git a/public/src/modules/autocomplete.js b/public/src/modules/autocomplete.js
index 390822012c..5988797c13 100644
--- a/public/src/modules/autocomplete.js
+++ b/public/src/modules/autocomplete.js
@@ -1,7 +1,7 @@
'use strict';
-/* globals define, socket, app */
+
define('autocomplete', function () {
var module = {};
diff --git a/public/src/modules/chat.js b/public/src/modules/chat.js
index 9bfa0306b3..c891a67b70 100644
--- a/public/src/modules/chat.js
+++ b/public/src/modules/chat.js
@@ -1,5 +1,5 @@
"use strict";
-/* globals app, define, socket, templates, utils, ajaxify */
+
define('chat', [
'components',
diff --git a/public/src/modules/coverPhoto.js b/public/src/modules/coverPhoto.js
index e8f1342c6b..797211eff4 100644
--- a/public/src/modules/coverPhoto.js
+++ b/public/src/modules/coverPhoto.js
@@ -1,5 +1,5 @@
"use strict";
-/* globals define, app */
+
define('coverPhoto', [
'vendor/jquery/draggable-background/backgroundDraggable',
diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js
index ad04f2b9d6..ec6e443921 100644
--- a/public/src/modules/helpers.js
+++ b/public/src/modules/helpers.js
@@ -1,6 +1,6 @@
;(function (exports) {
"use strict";
- /* globals define, utils, config */
+
// export the class if we are in a Node-like system.
if (typeof module === 'object' && module.exports === exports) {
@@ -285,5 +285,5 @@
}(
typeof exports === 'object' ? exports :
typeof define === 'function' && define.amd ? {} :
- helpers = {}
+ window.helpers = {}
));
diff --git a/public/src/modules/iconSelect.js b/public/src/modules/iconSelect.js
index b7849245ca..118515a5d5 100644
--- a/public/src/modules/iconSelect.js
+++ b/public/src/modules/iconSelect.js
@@ -1,6 +1,6 @@
"use strict";
-/* globals define, bootbox, templates */
+
define('iconSelect', function () {
var iconSelect = {};
diff --git a/public/src/modules/navigator.js b/public/src/modules/navigator.js
index cdc5d728bc..f5c729f265 100644
--- a/public/src/modules/navigator.js
+++ b/public/src/modules/navigator.js
@@ -1,7 +1,7 @@
'use strict';
-/* globals define, ajaxify, utils, config */
+
define('navigator', ['forum/pagination', 'components'], function (pagination, components) {
diff --git a/public/src/modules/notifications.js b/public/src/modules/notifications.js
index ab97cea18d..64b8e2f896 100644
--- a/public/src/modules/notifications.js
+++ b/public/src/modules/notifications.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, socket, app, ajaxify, templates, Tinycon*/
+
define('notifications', ['sounds', 'translator', 'components'], function (sound, translator, components) {
var Notifications = {};
diff --git a/public/src/modules/pictureCropper.js b/public/src/modules/pictureCropper.js
index f8da4c4442..3df948e979 100644
--- a/public/src/modules/pictureCropper.js
+++ b/public/src/modules/pictureCropper.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, socket, app, templates */
+
define('pictureCropper', ['translator', 'cropper'], function (translator, cropper) {
var module = {};
diff --git a/public/src/modules/postSelect.js b/public/src/modules/postSelect.js
index 6001488708..528e488eaf 100644
--- a/public/src/modules/postSelect.js
+++ b/public/src/modules/postSelect.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define*/
+
define('postSelect', ['components'], function (components) {
var PostSelect = {};
diff --git a/public/src/modules/scrollStop.js b/public/src/modules/scrollStop.js
index 13d722402c..f083a01aa0 100644
--- a/public/src/modules/scrollStop.js
+++ b/public/src/modules/scrollStop.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals console, define */
+
/*
The point of this library is to enhance(tm) a textarea so that if scrolled,
diff --git a/public/src/modules/search.js b/public/src/modules/search.js
index e7aefb7056..582ea3d4f2 100644
--- a/public/src/modules/search.js
+++ b/public/src/modules/search.js
@@ -1,5 +1,5 @@
"use strict";
-/* globals socket, ajaxify, app, define, config */
+
define('search', ['navigator', 'translator'], function (nav, translator) {
diff --git a/public/src/modules/settings.js b/public/src/modules/settings.js
index 77825a6175..31aeac9788 100644
--- a/public/src/modules/settings.js
+++ b/public/src/modules/settings.js
@@ -1,5 +1,5 @@
"use strict";
-/*global define, app, socket*/
+
define('settings', function () {
diff --git a/public/src/modules/share.js b/public/src/modules/share.js
index ec850ed1c9..b99068ea42 100644
--- a/public/src/modules/share.js
+++ b/public/src/modules/share.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, config */
+
define('share', function () {
diff --git a/public/src/modules/sort.js b/public/src/modules/sort.js
index c9e80020af..8242df566b 100644
--- a/public/src/modules/sort.js
+++ b/public/src/modules/sort.js
@@ -1,5 +1,5 @@
'use strict';
-/* globals define, config, socket, app, ajaxify, templates */
+
define('sort', ['components'], function (components) {
var module = {};
diff --git a/public/src/modules/sounds.js b/public/src/modules/sounds.js
index a31bbe507a..9b23ab97bc 100644
--- a/public/src/modules/sounds.js
+++ b/public/src/modules/sounds.js
@@ -1,5 +1,5 @@
"use strict";
-/* global app, define, socket, config */
+
define('sounds', ['buzz'], function (buzz) {
var Sounds = {};
diff --git a/public/src/modules/taskbar.js b/public/src/modules/taskbar.js
index 8961359ca5..e797f14ecf 100644
--- a/public/src/modules/taskbar.js
+++ b/public/src/modules/taskbar.js
@@ -1,5 +1,5 @@
"use strict";
-/*global define, app, templates*/
+
define('taskbar', function () {
var taskbar = {};
diff --git a/public/src/modules/topicSelect.js b/public/src/modules/topicSelect.js
index 4368b97237..097e443bf6 100644
--- a/public/src/modules/topicSelect.js
+++ b/public/src/modules/topicSelect.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define*/
+
define('topicSelect', ['components'], function (components) {
var TopicSelect = {};
diff --git a/public/src/modules/translator.js b/public/src/modules/translator.js
index fc7498c821..7652ba3837 100644
--- a/public/src/modules/translator.js
+++ b/public/src/modules/translator.js
@@ -1,4 +1,4 @@
-/* global define, jQuery, config, utils, window, Promise */
+
(function (factory) {
'use strict';
diff --git a/public/src/modules/uploader.js b/public/src/modules/uploader.js
index 4fb79bd3ad..ac1ba7e9f3 100644
--- a/public/src/modules/uploader.js
+++ b/public/src/modules/uploader.js
@@ -1,6 +1,6 @@
'use strict';
-/* globals define, templates */
+
define('uploader', ['translator'], function (translator) {
diff --git a/public/src/overrides.js b/public/src/overrides.js
index 95c9c3d69e..3cbe27ef28 100644
--- a/public/src/overrides.js
+++ b/public/src/overrides.js
@@ -1,6 +1,6 @@
'use strict';
-/* global bootbox */
+
var overrides = overrides || {};
diff --git a/public/src/sockets.js b/public/src/sockets.js
index e98e059da7..80463cce0a 100644
--- a/public/src/sockets.js
+++ b/public/src/sockets.js
@@ -1,5 +1,5 @@
'use strict';
-/* globals config, io, ajaxify */
+
var app = app || {};
var socket;
diff --git a/public/src/widgets.js b/public/src/widgets.js
index 041804ae95..961f0a8672 100644
--- a/public/src/widgets.js
+++ b/public/src/widgets.js
@@ -1,5 +1,5 @@
"use strict";
-/*global ajaxify, templates, config, utils*/
+
(function (ajaxify) {
ajaxify.widgets = {};
diff --git a/src/messaging/unread.js b/src/messaging/unread.js
index ffea6b52fd..74f4fc99c2 100644
--- a/src/messaging/unread.js
+++ b/src/messaging/unread.js
@@ -16,7 +16,7 @@ module.exports = function (Messaging) {
Messaging.pushUnreadCount = function (uid) {
if (!parseInt(uid, 10)) {
- return callback(null, 0);
+ return;
}
Messaging.getUnreadCount(uid, function (err, unreadCount) {
if (err) {
diff --git a/src/meta/languages.js b/src/meta/languages.js
index c386141ccb..381c22c34f 100644
--- a/src/meta/languages.js
+++ b/src/meta/languages.js
@@ -39,7 +39,7 @@ function getTranslationTree(callback) {
// generate list of languages and namespaces
function (plugins, next) {
var languages = [];
- namespaces = [];
+ var namespaces = [];
// pull languages and namespaces from paths
function extrude(languageDir, paths) {
diff --git a/src/upgrade.js b/src/upgrade.js
index 923684662b..a9670ef763 100644
--- a/src/upgrade.js
+++ b/src/upgrade.js
@@ -1,6 +1,6 @@
"use strict";
-/* globals console, require */
+
var db = require('./database');
var async = require('async');
diff --git a/test/.eslintrc b/test/.eslintrc
new file mode 100644
index 0000000000..d17a3b4940
--- /dev/null
+++ b/test/.eslintrc
@@ -0,0 +1,5 @@
+{
+ "env": {
+ "mocha": true
+ }
+}
diff --git a/test/authentication.js b/test/authentication.js
index 815070d660..e475f1c395 100644
--- a/test/authentication.js
+++ b/test/authentication.js
@@ -1,5 +1,5 @@
'use strict';
-/*global require, before*/
+
var assert = require('assert');
var nconf = require('nconf');
diff --git a/test/categories.js b/test/categories.js
index 8795548577..900d1a9aea 100644
--- a/test/categories.js
+++ b/test/categories.js
@@ -1,5 +1,5 @@
'use strict';
-/*global require, after, before*/
+
var async = require('async');
diff --git a/test/database.js b/test/database.js
index 36b2ef932d..d2f51c907e 100644
--- a/test/database.js
+++ b/test/database.js
@@ -1,5 +1,5 @@
'use strict';
-/*global require*/
+
var assert = require('assert');
var db = require('./mocks/databasemock');
diff --git a/test/database/hash.js b/test/database/hash.js
index 39df28e6fc..c8e67c9f1f 100644
--- a/test/database/hash.js
+++ b/test/database/hash.js
@@ -1,5 +1,5 @@
'use strict';
-/*global require, after, before*/
+
var async = require('async');
var assert = require('assert');
diff --git a/test/database/keys.js b/test/database/keys.js
index 7f44fea060..f4b577f038 100644
--- a/test/database/keys.js
+++ b/test/database/keys.js
@@ -1,5 +1,5 @@
'use strict';
-/*global require, after*/
+
var async = require('async');
var assert = require('assert');
diff --git a/test/database/list.js b/test/database/list.js
index 4d51b3dbd9..d328191e7a 100644
--- a/test/database/list.js
+++ b/test/database/list.js
@@ -1,5 +1,5 @@
'use strict';
-/*global require, after, before*/
+
var async = require('async');
var assert = require('assert');
diff --git a/test/database/sets.js b/test/database/sets.js
index 7b36d5fc60..7400fea70e 100644
--- a/test/database/sets.js
+++ b/test/database/sets.js
@@ -1,5 +1,5 @@
'use strict';
-/*global require, after, before*/
+
var async = require('async');
var assert = require('assert');
diff --git a/test/database/sorted.js b/test/database/sorted.js
index f1ed54ca00..c38820f7fb 100644
--- a/test/database/sorted.js
+++ b/test/database/sorted.js
@@ -1,5 +1,5 @@
'use strict';
-/*global require, after, before*/
+
var async = require('async');
var assert = require('assert');
diff --git a/test/mocks/databasemock.js b/test/mocks/databasemock.js
index 1ef42e3298..256c8117d1 100644
--- a/test/mocks/databasemock.js
+++ b/test/mocks/databasemock.js
@@ -5,7 +5,7 @@
(function (module) {
'use strict';
- /*global require, before, __dirname*/
+
var async = require('async');
var winston = require('winston');
diff --git a/test/notifications.js b/test/notifications.js
index e989b7f16e..041ac54fcf 100644
--- a/test/notifications.js
+++ b/test/notifications.js
@@ -1,5 +1,5 @@
'use strict';
-/*global require, after, before*/
+
var assert = require('assert');
diff --git a/test/pagination.js b/test/pagination.js
index b3c50e57f2..df362d9df4 100644
--- a/test/pagination.js
+++ b/test/pagination.js
@@ -1,5 +1,5 @@
'use strict';
-/*global require*/
+
var assert = require('assert');
var pagination = require('../src/pagination');
diff --git a/test/plugins.js b/test/plugins.js
index 09537d8990..b7267d8f4f 100644
--- a/test/plugins.js
+++ b/test/plugins.js
@@ -1,5 +1,5 @@
'use strict';
-/*global require*/
+
var assert = require('assert');
var path = require('path');
diff --git a/test/posts.js b/test/posts.js
index 4a291d401b..4e135831ba 100644
--- a/test/posts.js
+++ b/test/posts.js
@@ -1,5 +1,5 @@
'use strict';
-/*global require, before, after*/
+
var assert = require('assert');
var async = require('async');
diff --git a/test/search-admin.js b/test/search-admin.js
index 216d26d35f..25fb940adf 100644
--- a/test/search-admin.js
+++ b/test/search-admin.js
@@ -1,5 +1,5 @@
'use strict';
-/*global require*/
+
var assert = require('assert');
var search = require('../src/admin/search');
diff --git a/test/search.js b/test/search.js
index 0c4713b720..12287c93e4 100644
--- a/test/search.js
+++ b/test/search.js
@@ -1,5 +1,5 @@
'use strict';
-/*global require, before, after*/
+
var assert = require('assert');
var async = require('async');
diff --git a/test/socket.io.js b/test/socket.io.js
index ca3ba2bb0e..3965448142 100644
--- a/test/socket.io.js
+++ b/test/socket.io.js
@@ -2,7 +2,7 @@
// see https://gist.github.com/jfromaniello/4087861#gistcomment-1447029
-/* global process, require, before, after*/
+
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
diff --git a/test/translator.js b/test/translator.js
index 8198814164..e24754d8e8 100644
--- a/test/translator.js
+++ b/test/translator.js
@@ -1,5 +1,5 @@
'use strict';
-/*global require*/
+
var assert = require('assert');
var shim = require('../public/src/modules/translator.js');
diff --git a/test/utils.js b/test/utils.js
index bb71b0c9ec..31efbfe8df 100644
--- a/test/utils.js
+++ b/test/utils.js
@@ -1,5 +1,5 @@
'use strict';
-/*global require*/
+
var assert = require('assert');
var utils = require('./../public/src/utils.js');