diff --git a/.eslintrc.json b/.eslintrc.json index 996ebe85c2..9e8e4dd35b 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -18,7 +18,6 @@ "eqeqeq": "off", "camelcase": "off", "no-negated-condition": "off", - "wrap-iife": "off", "one-var-declaration-per-line": "off", "new-cap": "off", "no-lonely-if": "off", @@ -57,7 +56,6 @@ "indent": "off", "func-names": "off", "prefer-arrow-callback": "off", - "space-before-function-paren": "off", "object-curly-spacing": "off", "no-var": "off", "no-shadow": "off", @@ -77,7 +75,6 @@ "no-multi-spaces": "off", "quotes": "off", "keyword-spacing": "off", - "space-infix-ops": "off", "no-plusplus": "off", "no-mixed-operators": "off", "semi": "off", diff --git a/Gruntfile.js b/Gruntfile.js index eb3cdc7417..9f1585f301 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -6,7 +6,7 @@ var fork = require('child_process').fork, incomplete = []; -module.exports = function(grunt) { +module.exports = function (grunt) { var args = []; if (!grunt.option('verbose')) { args.push('--log-level=info'); @@ -34,7 +34,7 @@ module.exports = function(grunt) { fromFile = ['clientLess', 'acpLess', 'js', 'tpl']; } - fromFile = fromFile.filter(function(ext) { + fromFile = fromFile.filter(function (ext) { return incomplete.indexOf(ext) === -1; }); @@ -44,7 +44,7 @@ module.exports = function(grunt) { worker.kill(); worker = fork('app.js', updateArgs, { env: env }); - worker.on('message', function() { + worker.on('message', function () { if (incomplete.length) { incomplete = []; diff --git a/app.js b/app.js index c348cbfed5..82ffd2f7b1 100644 --- a/app.js +++ b/app.js @@ -36,7 +36,7 @@ global.env = process.env.NODE_ENV || 'production'; winston.remove(winston.transports.Console); winston.add(winston.transports.Console, { colorize: true, - timestamp: function() { + timestamp: function () { var date = new Date(); return date.getDate() + '/' + (date.getMonth() + 1) + ' ' + date.toTimeString().substr(0,5) + ' [' + global.process.pid + ']'; }, @@ -146,7 +146,7 @@ function start() { process.on('SIGTERM', shutdown); process.on('SIGINT', shutdown); process.on('SIGHUP', restart); - process.on('message', function(message) { + process.on('message', function (message) { if (typeof message !== 'object') { return; } @@ -173,7 +173,7 @@ function start() { } }); - process.on('uncaughtException', function(err) { + process.on('uncaughtException', function (err) { winston.error(err.stack); console.log(err.stack); @@ -184,10 +184,10 @@ function start() { async.waterfall([ async.apply(db.init), async.apply(db.checkCompatibility), - function(next) { + function (next) { require('./src/meta').configs.init(next); }, - function(next) { + function (next) { if (nconf.get('dep-check') === undefined || nconf.get('dep-check') !== false) { require('./src/meta').dependencies.check(next); } else { @@ -195,10 +195,10 @@ function start() { setImmediate(next); } }, - function(next) { + function (next) { require('./src/upgrade').check(next); }, - function(next) { + function (next) { var webserver = require('./src/webserver'); require('./src/socket.io').init(webserver.server); @@ -209,7 +209,7 @@ function start() { webserver.listen(); } - ], function(err) { + ], function (err) { if (err) { switch(err.message) { case 'schema-out-of-date': @@ -251,7 +251,7 @@ function setup() { install.setup(function (err, data) { var separator = ' '; if (process.stdout.columns > 10) { - for(var x=0,cols=process.stdout.columns-10;x '); @@ -124,18 +124,18 @@ } function setupRestartLinks() { - $('.restart').off('click').on('click', function() { - bootbox.confirm('Are you sure you wish to restart NodeBB?', function(confirm) { + $('.restart').off('click').on('click', function () { + bootbox.confirm('Are you sure you wish to restart NodeBB?', function (confirm) { if (confirm) { - require(['admin/modules/instance'], function(instance) { + require(['admin/modules/instance'], function (instance) { instance.restart(); }); } }); }); - $('.reload').off('click').on('click', function() { - require(['admin/modules/instance'], function(instance) { + $('.reload').off('click').on('click', function () { + require(['admin/modules/instance'], function (instance) { instance.reload(); }); }); @@ -144,8 +144,8 @@ function launchSnackbar(params) { var message = (params.title ? "" + params.title + "" : '') + (params.message ? params.message : ''); - require(['translator'], function(translator) { - translator.translate(message, function(html) { + require(['translator'], function (translator) { + translator.translate(message, function (html) { var bar = $.snackbar({ content: html, timeout: 3000, @@ -167,15 +167,15 @@ 'tolerance': 70 }); - $('#mobile-menu').on('click', function() { + $('#mobile-menu').on('click', function () { slideout.toggle(); }); - $('#menu a').on('click', function() { + $('#menu a').on('click', function () { slideout.close(); }); - $(window).on('resize', function() { + $(window).on('resize', function () { slideout.close(); }); @@ -190,7 +190,7 @@ slideout.on('open', onOpeningMenu); slideout.on('translate', onOpeningMenu); - slideout.on('close', function() { + slideout.on('close', function () { $('#header').css({ 'top': '0px', 'position': 'fixed' diff --git a/public/src/admin/advanced/errors.js b/public/src/admin/advanced/errors.js index 3977778b5a..29ee7e362c 100644 --- a/public/src/admin/advanced/errors.js +++ b/public/src/admin/advanced/errors.js @@ -1,19 +1,19 @@ "use strict"; /*global config, define, app, socket, ajaxify, bootbox, templates, Chart, utils */ -define('admin/advanced/errors', ['Chart'], function(Chart) { +define('admin/advanced/errors', ['Chart'], function (Chart) { var Errors = {}; - Errors.init = function() { + Errors.init = function () { Errors.setupCharts(); $('[data-action="clear"]').on('click', Errors.clear404); }; - Errors.clear404 = function() { - bootbox.confirm('Are you sure you wish to clear the 404 error logs?', function(ok) { + Errors.clear404 = function () { + bootbox.confirm('Are you sure you wish to clear the 404 error logs?', function (ok) { if (ok) { - socket.emit('admin.errors.clear', {}, function(err) { + socket.emit('admin.errors.clear', {}, function (err) { if (err) { return app.alertError(err.message); } @@ -25,7 +25,7 @@ define('admin/advanced/errors', ['Chart'], function(Chart) { }); }; - Errors.setupCharts = function() { + Errors.setupCharts = function () { var notFoundCanvas = document.getElementById('not-found'), tooBusyCanvas = document.getElementById('toobusy'), dailyLabels = utils.getDaysArray(); diff --git a/public/src/admin/advanced/events.js b/public/src/admin/advanced/events.js index a952666786..b4f18414ea 100644 --- a/public/src/admin/advanced/events.js +++ b/public/src/admin/advanced/events.js @@ -3,13 +3,13 @@ /* global define, socket, app */ -define('admin/advanced/events', function() { +define('admin/advanced/events', function () { var Events = {}; - Events.init = function() { + Events.init = function () { - $('[data-action="clear"]').on('click', function() { - socket.emit('admin.deleteAllEvents', function(err) { + $('[data-action="clear"]').on('click', function () { + socket.emit('admin.deleteAllEvents', function (err) { if (err) { return app.alertError(err.message); } diff --git a/public/src/admin/advanced/logs.js b/public/src/admin/advanced/logs.js index 8411effabc..2ea10f1b36 100644 --- a/public/src/admin/advanced/logs.js +++ b/public/src/admin/advanced/logs.js @@ -1,22 +1,22 @@ "use strict"; /* global define, socket, app */ -define('admin/advanced/logs', function() { +define('admin/advanced/logs', function () { var Logs = {}; - Logs.init = function() { + Logs.init = function () { var logsEl = $('.logs pre'); logsEl.scrollTop(logsEl.prop('scrollHeight')); // Affix menu $('.affix').affix(); - $('.logs').find('button[data-action]').on('click', function(event) { + $('.logs').find('button[data-action]').on('click', function (event) { var btnEl = $(this), action = btnEl.attr('data-action'); switch(action) { case 'reload': - socket.emit('admin.logs.get', function(err, logs) { + socket.emit('admin.logs.get', function (err, logs) { if (!err) { logsEl.text(logs); logsEl.scrollTop(logsEl.prop('scrollHeight')); @@ -27,7 +27,7 @@ define('admin/advanced/logs', function() { break; case 'clear': - socket.emit('admin.logs.clear', function(err) { + socket.emit('admin.logs.clear', function (err) { if (!err) { app.alertSuccess('Logs Cleared!'); btnEl.prev().click(); diff --git a/public/src/admin/appearance/customise.js b/public/src/admin/appearance/customise.js index e76bb9d3e4..d8ad5e3ecb 100644 --- a/public/src/admin/appearance/customise.js +++ b/public/src/admin/appearance/customise.js @@ -1,11 +1,11 @@ "use strict"; /* global ace, define, app, socket */ -define('admin/appearance/customise', ['admin/settings'], function(Settings) { +define('admin/appearance/customise', ['admin/settings'], function (Settings) { var Customise = {}; - Customise.init = function() { - Settings.prepare(function() { + Customise.init = function () { + Settings.prepare(function () { $('#customCSS').text($('#customCSS-holder').val()); $('#customHTML').text($('#customHTML-holder').val()); @@ -15,7 +15,7 @@ define('admin/appearance/customise', ['admin/settings'], function(Settings) { customCSS.setTheme("ace/theme/twilight"); customCSS.getSession().setMode("ace/mode/css"); - customCSS.on('change', function(event) { + customCSS.on('change', function (event) { app.flags = app.flags || {}; app.flags._unsaved = true; $('#customCSS-holder').val(customCSS.getValue()); @@ -24,7 +24,7 @@ define('admin/appearance/customise', ['admin/settings'], function(Settings) { customHTML.setTheme("ace/theme/twilight"); customHTML.getSession().setMode("ace/mode/html"); - customHTML.on('change', function(event) { + customHTML.on('change', function (event) { app.flags = app.flags || {}; app.flags._unsaved = true; $('#customHTML-holder').val(customHTML.getValue()); diff --git a/public/src/admin/appearance/skins.js b/public/src/admin/appearance/skins.js index 4d0d8ffc04..9dc02a1efc 100644 --- a/public/src/admin/appearance/skins.js +++ b/public/src/admin/appearance/skins.js @@ -1,17 +1,17 @@ "use strict"; /* global define, app, socket, templates */ -define('admin/appearance/skins', function() { +define('admin/appearance/skins', function () { var Skins = {}; - Skins.init = function() { + Skins.init = function () { // Populate skins from Bootswatch API $.ajax({ method: 'get', url: 'https://bootswatch.com/api/3.json' }).done(Skins.render); - $('#skins').on('click', function(e){ + $('#skins').on('click', function (e){ var target = $(e.target); if (!target.attr('data-action')) { @@ -31,7 +31,7 @@ define('admin/appearance/skins', function() { type: themeType, id: themeId, src: cssSrc - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } @@ -49,11 +49,11 @@ define('admin/appearance/skins', function() { }); }; - Skins.render = function(bootswatch) { + Skins.render = function (bootswatch) { var themeContainer = $('#bootstrap_themes'); templates.parse('admin/partials/theme_list', { - themes: bootswatch.themes.map(function(theme) { + themes: bootswatch.themes.map(function (theme) { return { type: 'bootswatch', id: theme.name, @@ -66,13 +66,13 @@ define('admin/appearance/skins', function() { }; }), showRevert: true - }, function(html) { + }, function (html) { themeContainer.html(html); if (config['theme:src']) { var skin = config['theme:src'] .match(/latest\/(\S+)\/bootstrap.min.css/)[1] - .replace(/(^|\s)([a-z])/g , function(m,p1,p2){return p1+p2.toUpperCase();}); + .replace(/(^|\s)([a-z])/g , function (m,p1,p2){return p1 + p2.toUpperCase();}); highlightSelectedTheme(skin); } @@ -82,7 +82,7 @@ define('admin/appearance/skins', function() { function highlightSelectedTheme(themeId) { $('[data-theme]') .removeClass('selected') - .find('[data-action="use"]').each(function() { + .find('[data-action="use"]').each(function () { if ($(this).parents('[data-theme]').attr('data-theme')) { $(this) .html('Select Skin') diff --git a/public/src/admin/appearance/themes.js b/public/src/admin/appearance/themes.js index 0d4e403fbd..41adcc1589 100644 --- a/public/src/admin/appearance/themes.js +++ b/public/src/admin/appearance/themes.js @@ -1,11 +1,11 @@ "use strict"; /* global define, app, socket, bootbox, templates, config */ -define('admin/appearance/themes', function() { +define('admin/appearance/themes', function () { var Themes = {}; - Themes.init = function() { - $('#installed_themes').on('click', function(e){ + Themes.init = function () { + $('#installed_themes').on('click', function (e){ var target = $(e.target), action = target.attr('data-action'); @@ -19,7 +19,7 @@ define('admin/appearance/themes', function() { type: themeType, id: themeId, src: cssSrc - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } @@ -31,7 +31,7 @@ define('admin/appearance/themes', function() { title: 'Theme Changed', message: 'Please restart your NodeBB to fully activate this theme', timeout: 5000, - clickfn: function() { + clickfn: function () { socket.emit('admin.restart'); } }); @@ -39,13 +39,13 @@ define('admin/appearance/themes', function() { } }); - $('#revert_theme').on('click', function() { - bootbox.confirm('Are you sure you wish to restore the default NodeBB theme?', function(confirm) { + $('#revert_theme').on('click', function () { + bootbox.confirm('Are you sure you wish to restore the default NodeBB theme?', function (confirm) { if (confirm) { socket.emit('admin.themes.set', { type: 'local', id: 'nodebb-theme-persona' - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } @@ -62,7 +62,7 @@ define('admin/appearance/themes', function() { }); }); - socket.emit('admin.themes.getInstalled', function(err, themes) { + socket.emit('admin.themes.getInstalled', function (err, themes) { if(err) { return app.alertError(err.message); } @@ -75,9 +75,9 @@ define('admin/appearance/themes', function() { } else { templates.parse('admin/partials/theme_list', { themes: themes - }, function(html) { - require(['translator'], function(translator) { - translator.translate(html, function(html) { + }, function (html) { + require(['translator'], function (translator) { + translator.translate(html, function (html) { instListEl.html(html); highlightSelectedTheme(config['theme:id']); }); diff --git a/public/src/admin/extend/plugins.js b/public/src/admin/extend/plugins.js index 3e12074e3a..bb89256959 100644 --- a/public/src/admin/extend/plugins.js +++ b/public/src/admin/extend/plugins.js @@ -1,9 +1,9 @@ "use strict"; /* global define, app, socket, bootbox */ -define('admin/extend/plugins', function() { +define('admin/extend/plugins', function () { var Plugins = {}; - Plugins.init = function() { + Plugins.init = function () { var pluginsList = $('.plugins'), numPlugins = pluginsList[0].querySelectorAll('li').length, pluginID; @@ -15,11 +15,11 @@ define('admin/extend/plugins', function() { $('#plugin-search').val(''); - pluginsList.on('click', 'button[data-action="toggleActive"]', function() { + pluginsList.on('click', 'button[data-action="toggleActive"]', function () { var pluginEl = $(this).parents('li'); pluginID = pluginEl.attr('data-plugin-id'); var btn = $('#' + pluginID + ' [data-action="toggleActive"]'); - socket.emit('admin.plugins.toggleActive', pluginID, function(err, status) { + socket.emit('admin.plugins.toggleActive', pluginID, function (err, status) { if (err) { return app.alertError(err); } @@ -37,8 +37,8 @@ define('admin/extend/plugins', function() { message: status.active ? 'Please restart your NodeBB to fully activate this plugin' : 'Plugin successfully deactivated', type: status.active ? 'warning' : 'success', timeout: 5000, - clickfn: function() { - require(['admin/modules/instance'], function(instance) { + clickfn: function () { + require(['admin/modules/instance'], function (instance) { instance.restart(); }); } @@ -46,7 +46,7 @@ define('admin/extend/plugins', function() { }); }); - pluginsList.on('click', 'button[data-action="toggleInstall"]', function() { + pluginsList.on('click', 'button[data-action="toggleInstall"]', function () { var btn = $(this); btn.attr('disabled', true); pluginID = $(this).parents('li').attr('data-plugin-id'); @@ -55,9 +55,9 @@ define('admin/extend/plugins', function() { return Plugins.toggleInstall(pluginID, $(this).parents('li').attr('data-version')); } - Plugins.suggest(pluginID, function(err, payload) { + Plugins.suggest(pluginID, function (err, payload) { if (err) { - bootbox.confirm('

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (' + err.status + '): ' + err.responseText + '
', function(confirm) { + bootbox.confirm('

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (' + err.status + '): ' + err.responseText + '
', function (confirm) { if (confirm) { Plugins.toggleInstall(pluginID, 'latest'); } else { @@ -67,11 +67,11 @@ define('admin/extend/plugins', function() { return; } - require(['semver'], function(semver) { + require(['semver'], function (semver) { if (payload.version !== 'latest') { Plugins.toggleInstall(pluginID, payload.version); } else if (payload.version === 'latest') { - confirmInstall(pluginID, function(confirm) { + confirmInstall(pluginID, function (confirm) { if (confirm) { Plugins.toggleInstall(pluginID, 'latest'); } else { @@ -85,21 +85,21 @@ define('admin/extend/plugins', function() { }); }); - pluginsList.on('click', 'button[data-action="upgrade"]', function() { + pluginsList.on('click', 'button[data-action="upgrade"]', function () { var btn = $(this); var parent = btn.parents('li'); pluginID = parent.attr('data-plugin-id'); - Plugins.suggest(pluginID, function(err, payload) { + Plugins.suggest(pluginID, function (err, payload) { if (err) { return bootbox.alert('

NodeBB could not reach the package manager, an upgrade is not suggested at this time.

'); } - require(['semver'], function(semver) { + require(['semver'], function (semver) { if (payload.version !== 'latest' && semver.gt(payload.version, parent.find('.currentVersion').text())) { upgrade(pluginID, btn, payload.version); } else if (payload.version === 'latest') { - confirmInstall(pluginID, function() { + confirmInstall(pluginID, function () { upgrade(pluginID, btn, payload.version); }); } else { @@ -109,22 +109,22 @@ define('admin/extend/plugins', function() { }); }); - $('#plugin-search').on('input propertychange', function() { + $('#plugin-search').on('input propertychange', function () { var term = $(this).val(); - $('.plugins li').each(function() { + $('.plugins li').each(function () { var pluginId = $(this).attr('data-plugin-id'); $(this).toggleClass('hide', pluginId && pluginId.indexOf(term) === -1); }); }); - $('#plugin-order').on('click', function() { + $('#plugin-order').on('click', function () { $('#order-active-plugins-modal').modal('show'); - socket.emit('admin.plugins.getActive', function(err, activePlugins) { + socket.emit('admin.plugins.getActive', function (err, activePlugins) { if (err) { return app.alertError(err); } var html = ''; - activePlugins.forEach(function(plugin) { + activePlugins.forEach(function (plugin) { html += '
  • ' + plugin + '
  • '; }); if (!activePlugins.length) { @@ -134,14 +134,14 @@ define('admin/extend/plugins', function() { }); }); - $('#save-plugin-order').on('click', function() { + $('#save-plugin-order').on('click', function () { var plugins = $('#order-active-plugins-modal .plugin-list').children(); var data = []; - plugins.each(function(index, el) { + plugins.each(function (index, el) { data.push({name: $(el).text(), order: index}); }); - socket.emit('admin.plugins.orderActivePlugins', data, function(err) { + socket.emit('admin.plugins.orderActivePlugins', data, function (err) { if (err) { return app.alertError(err.message); } @@ -158,7 +158,7 @@ define('admin/extend/plugins', function() { '

    No Compatibility Infomation Found

    This plugin did not specify a specific version for installation given your NodeBB version. Full compatibility cannot be guaranteed, and may cause your NodeBB to no longer start properly.

    ' + '

    In the event that NodeBB cannot boot properly:

    ' + '
    $ ./nodebb reset plugin="' + pluginID + '"
    ' + - '

    Continue installation of latest version of this plugin?

    ', function(confirm) { + '

    Continue installation of latest version of this plugin?

    ', function (confirm) { callback(confirm); }); } @@ -168,7 +168,7 @@ define('admin/extend/plugins', function() { socket.emit('admin.plugins.upgrade', { id: pluginID, version: version - }, function(err, isActive) { + }, function (err, isActive) { if (err) { return app.alertError(err.message); } @@ -183,8 +183,8 @@ define('admin/extend/plugins', function() { message: 'Please reload your NodeBB to fully upgrade this plugin', type: 'warning', timeout: 5000, - clickfn: function() { - require(['admin/modules/instance'], function(instance) { + clickfn: function () { + require(['admin/modules/instance'], function (instance) { instance.reload(); }); } @@ -193,7 +193,7 @@ define('admin/extend/plugins', function() { }); } - Plugins.toggleInstall = function(pluginID, version, callback) { + Plugins.toggleInstall = function (pluginID, version, callback) { var btn = $('li[data-plugin-id="' + pluginID + '"] button[data-action="toggleInstall"]'); var activateBtn = btn.siblings('[data-action="toggleActive"]'); btn.find('i').attr('class', 'fa fa-refresh fa-spin'); @@ -201,7 +201,7 @@ define('admin/extend/plugins', function() { socket.emit('admin.plugins.toggleInstall', { id: pluginID, version: version - }, function(err, pluginData) { + }, function (err, pluginData) { if (err) { btn.removeAttr('disabled'); return app.alertError(err.message); @@ -223,7 +223,7 @@ define('admin/extend/plugins', function() { }); }; - Plugins.suggest = function(pluginId, callback) { + Plugins.suggest = function (pluginId, callback) { var nbbVersion = app.config.version.match(/^\d\.\d\.\d/); $.ajax((app.config.registry || 'https://packages.nodebb.org') + '/api/v1/suggest', { type: 'GET', @@ -232,13 +232,13 @@ define('admin/extend/plugins', function() { version: nbbVersion[0] }, dataType: 'json' - }).done(function(payload) { + }).done(function (payload) { callback(undefined, payload); }).fail(callback); }; function populateUpgradeablePlugins() { - $('#installed ul li').each(function() { + $('#installed ul li').each(function () { if ($(this).children('[data-action="upgrade"]').length) { $('#upgrade ul').append($(this).clone(true)); } @@ -246,7 +246,7 @@ define('admin/extend/plugins', function() { } function populateActivePlugins() { - $('#installed ul li').each(function() { + $('#installed ul li').each(function () { if ($(this).hasClass('active')) { $('#active ul').append($(this).clone(true)); } else { diff --git a/public/src/admin/extend/rewards.js b/public/src/admin/extend/rewards.js index 255b53dcbf..939bdbb20d 100644 --- a/public/src/admin/extend/rewards.js +++ b/public/src/admin/extend/rewards.js @@ -1,7 +1,7 @@ "use strict"; /* global define, app, ajaxify, socket, templates, bootbox */ -define('admin/extend/rewards', function() { +define('admin/extend/rewards', function () { var rewards = {}; @@ -10,25 +10,25 @@ define('admin/extend/rewards', function() { conditions, conditionals; - rewards.init = function() { + rewards.init = function () { available = ajaxify.data.rewards; active = ajaxify.data.active; conditions = ajaxify.data.conditions; conditionals = ajaxify.data.conditionals; - $('[data-selected]').each(function() { + $('[data-selected]').each(function () { select($(this)); }); $('#active') - .on('change', '[data-selected]', function() { + .on('change', '[data-selected]', function () { update($(this)); }) - .on('click', '.delete', function() { + .on('click', '.delete', function () { var parent = $(this).parents('[data-id]'), id = parent.attr('data-id'); - socket.emit('admin.rewards.delete', {id: id}, function(err) { + socket.emit('admin.rewards.delete', {id: id}, function (err) { if (err) { app.alertError(err.message); } else { @@ -39,7 +39,7 @@ define('admin/extend/rewards', function() { parent.remove(); return false; }) - .on('click', '.toggle', function() { + .on('click', '.toggle', function () { var btn = $(this), disabled = btn.hasClass('btn-success'), id = $(this).parents('[data-id]').attr('data-id'); @@ -93,17 +93,17 @@ define('admin/extend/rewards', function() { return app.alertError('Illegal reward - no inputs found! ' + el.attr('data-selected')); } - inputs.forEach(function(input) { + inputs.forEach(function (input) { html += '
    '; @@ -113,7 +113,7 @@ define('admin/extend/rewards', function() { } function populateInputs() { - $('[data-rid]').each(function(i) { + $('[data-rid]').each(function (i) { var div = $(this).find('.inputs'), rewards = active[i].rewards; @@ -141,7 +141,7 @@ define('admin/extend/rewards', function() { rewards: available, }; - templates.parse('admin/extend/rewards', 'active', data, function(li) { + templates.parse('admin/extend/rewards', 'active', data, function (li) { li = $(li); ul.append(li); li.find('select').val(''); @@ -151,16 +151,16 @@ define('admin/extend/rewards', function() { function saveRewards() { var activeRewards = []; - $('#active li').each(function() { + $('#active li').each(function () { var data = {rewards: {}}, main = $(this).find('form.main').serializeArray(), rewards = $(this).find('form.rewards').serializeArray(); - main.forEach(function(obj) { + main.forEach(function (obj) { data[obj.name] = obj.value; }); - rewards.forEach(function(obj) { + rewards.forEach(function (obj) { data.rewards[obj.name] = obj.value; }); @@ -170,7 +170,7 @@ define('admin/extend/rewards', function() { activeRewards.push(data); }); - socket.emit('admin.rewards.save', activeRewards, function(err) { + socket.emit('admin.rewards.save', activeRewards, function (err) { if (err) { app.alertError(err.message); } else { diff --git a/public/src/admin/extend/widgets.js b/public/src/admin/extend/widgets.js index 91e05beb04..761a57f423 100644 --- a/public/src/admin/extend/widgets.js +++ b/public/src/admin/extend/widgets.js @@ -1,11 +1,11 @@ "use strict"; /* global define, app, socket */ -define('admin/extend/widgets', ['jqueryui'], function(jqueryui) { +define('admin/extend/widgets', ['jqueryui'], function (jqueryui) { var Widgets = {}; - Widgets.init = function() { - $('#widgets .nav-pills a').on('click', function(ev) { + Widgets.init = function () { + $('#widgets .nav-pills a').on('click', function (ev) { var $this = $(this); $('#widgets .nav-pills li').removeClass('active'); $this.parent().addClass('active'); @@ -17,7 +17,7 @@ define('admin/extend/widgets', ['jqueryui'], function(jqueryui) { return false; }); - $('#widget-selector').on('change', function() { + $('#widget-selector').on('change', function () { $('.available-widgets [data-widget]').addClass('hide'); $('.available-widgets [data-widget="' + $(this).val() + '"]').removeClass('hide'); }); @@ -31,7 +31,7 @@ define('admin/extend/widgets', ['jqueryui'], function(jqueryui) { $('[data-location="drafts"]').insertAfter($('[data-location="drafts"]').closest('.tab-content')); $('#widgets .available-widgets .widget-panel').draggable({ - helper: function(e) { + helper: function (e) { return $(e.target).parents('.widget-panel').clone(); }, distance: 10, @@ -40,7 +40,7 @@ define('admin/extend/widgets', ['jqueryui'], function(jqueryui) { $('#widgets .available-containers .containers > [data-container-html]') .draggable({ - helper: function(e) { + helper: function (e) { var target = $(e.target); target = target.attr('data-container-html') ? target : target.parents('[data-container-html]'); @@ -48,7 +48,7 @@ define('admin/extend/widgets', ['jqueryui'], function(jqueryui) { }, distance: 10 }) - .each(function() { + .each(function () { $(this).attr('data-container-html', $(this).attr('data-container-html').replace(/\\\{([\s\S]*?)\\\}/g, '{$1}')); }); @@ -57,15 +57,15 @@ define('admin/extend/widgets', ['jqueryui'], function(jqueryui) { appendToggle(ui.item); }, connectWith: "div" - }).on('click', '.delete-widget', function() { + }).on('click', '.delete-widget', function () { var panel = $(this).parents('.widget-panel'); - bootbox.confirm('Are you sure you wish to delete this widget?', function(confirm) { + bootbox.confirm('Are you sure you wish to delete this widget?', function (confirm) { if (confirm) { panel.remove(); } }); - }).on('mouseup', '> .panel > .panel-heading', function(evt) { + }).on('mouseup', '> .panel > .panel-heading', function (evt) { if ( !( $(this).parent().is('.ui-sortable-helper') || $(evt.target).closest('.delete-widget').length ) ) { $(this).parent().children('.panel-body').toggleClass('hidden'); } @@ -76,7 +76,7 @@ define('admin/extend/widgets', ['jqueryui'], function(jqueryui) { function saveWidgets() { var total = $('#widgets [data-template][data-location]').length; - $('#widgets [data-template][data-location]').each(function(i, el) { + $('#widgets [data-template][data-location]').each(function (i, el) { el = $(el); var template = el.attr('data-template'), @@ -84,7 +84,7 @@ define('admin/extend/widgets', ['jqueryui'], function(jqueryui) { area = el.children('.widget-area'), widgets = []; - area.find('.widget-panel[data-widget]').each(function() { + area.find('.widget-panel[data-widget]').each(function () { var widgetData = {}, data = $(this).find('form').serializeArray(); @@ -113,7 +113,7 @@ define('admin/extend/widgets', ['jqueryui'], function(jqueryui) { template: template, location: location, widgets: widgets - }, function(err) { + }, function (err) { total--; if (err) { @@ -134,13 +134,13 @@ define('admin/extend/widgets', ['jqueryui'], function(jqueryui) { }); } - $('.color-selector').on('click', '.btn', function() { + $('.color-selector').on('click', '.btn', function () { var btn = $(this), selector = btn.parents('.color-selector'), container = selector.parents('[data-container-html]'), classList = []; - selector.children().each(function() { + selector.children().each(function () { classList.push($(this).attr('data-class')); }); @@ -159,7 +159,7 @@ define('admin/extend/widgets', ['jqueryui'], function(jqueryui) { el.addClass('block').css('width', '').css('height', '') .droppable({ accept: '[data-container-html]', - drop: function(event, ui) { + drop: function (event, ui) { var el = $(this); el.find('.panel-body .container-html').val(ui.draggable.attr('data-container-html')); @@ -180,7 +180,7 @@ define('admin/extend/widgets', ['jqueryui'], function(jqueryui) { title.text(title.text() + ' - ' + data.title); } - widget.find('input, textarea, select').each(function() { + widget.find('input, textarea, select').each(function () { var input = $(this), value = data[input.attr('name')]; @@ -194,16 +194,16 @@ define('admin/extend/widgets', ['jqueryui'], function(jqueryui) { return widget; } - $.get(RELATIVE_PATH + '/api/admin/extend/widgets', function(data) { + $.get(RELATIVE_PATH + '/api/admin/extend/widgets', function (data) { var areas = data.areas; - for(var i=0; i'+ data.onlineRegisteredCount +'' + + '
    ' + data.onlineRegisteredCount + '
    ' + '
    Users
    ' + '' + '
    ' + - '
    '+ data.onlineGuestCount +'
    ' + + '
    ' + data.onlineGuestCount + '
    ' + '
    Guests
    ' + '
    ' + '
    ' + - '
    '+ (data.onlineRegisteredCount + data.onlineGuestCount) +'
    ' + + '
    ' + (data.onlineRegisteredCount + data.onlineGuestCount) + '
    ' + '
    Total
    ' + '
    ' + '
    ' + - '
    '+ data.socketCount +'
    ' + + '
    ' + data.socketCount + '
    ' + '
    Connections
    ' + '
    '; @@ -150,7 +150,7 @@ define('admin/general/dashboard', ['semver', 'Chart'], function(semver, Chart) { if (g > 255) g = 255; else if (g < 0) g = 0; - return (usePound?"#":"") + (g | (b << 8) | (r << 16)).toString(16); + return (usePound ? "#" : "") + (g | (b << 8) | (r << 16)).toString(16); } function setupGraphs() { @@ -272,12 +272,12 @@ define('admin/general/dashboard', ['semver', 'Chart'], function(semver, Chart) { $(window).on('resize', adjustPieCharts); adjustPieCharts(); - $('[data-action="updateGraph"]').on('click', function() { + $('[data-action="updateGraph"]').on('click', function () { var until = undefined; switch($(this).attr('data-until')) { case 'last-month': var lastMonth = new Date(); - lastMonth.setDate(lastMonth.getDate()-30); + lastMonth.setDate(lastMonth.getDate() - 30); until = lastMonth.getTime(); } updateTrafficGraph($(this).attr('data-units'), until); @@ -285,7 +285,7 @@ define('admin/general/dashboard', ['semver', 'Chart'], function(semver, Chart) { } function adjustPieCharts() { - $('.pie-chart.legend-up').each(function() { + $('.pie-chart.legend-up').each(function () { var $this = $(this); if ($this.width() < 320) { @@ -396,7 +396,7 @@ define('admin/general/dashboard', ['semver', 'Chart'], function(semver, Chart) { } function setupRealtimeButton() { - $('#toggle-realtime .fa').on('click', function() { + $('#toggle-realtime .fa').on('click', function () { var $this = $(this); if ($this.hasClass('fa-toggle-on')) { $this.removeClass('fa-toggle-on').addClass('fa-toggle-off'); @@ -414,13 +414,13 @@ define('admin/general/dashboard', ['semver', 'Chart'], function(semver, Chart) { clearInterval(intervals.rooms); clearInterval(intervals.graphs); - intervals.rooms = setInterval(function() { + intervals.rooms = setInterval(function () { if (app.isFocused && app.isConnected) { socket.emit('admin.rooms.getAll', Admin.updateRoomUsage); } }, realtime ? DEFAULTS.realtimeInterval : DEFAULTS.roomInterval); - intervals.graphs = setInterval(function() { + intervals.graphs = setInterval(function () { updateTrafficGraph(currentGraph.units, currentGraph.until); }, realtime ? DEFAULTS.realtimeInterval : DEFAULTS.graphInterval); } diff --git a/public/src/admin/general/homepage.js b/public/src/admin/general/homepage.js index 96a6aac0eb..f0239e784c 100644 --- a/public/src/admin/general/homepage.js +++ b/public/src/admin/general/homepage.js @@ -1,7 +1,7 @@ "use strict"; /*global define*/ -define('admin/general/homepage', ['admin/settings'], function(Settings) { +define('admin/general/homepage', ['admin/settings'], function (Settings) { function toggleCustomRoute() { if ($('[data-field="homePageRoute"]').val()) { @@ -13,7 +13,7 @@ define('admin/general/homepage', ['admin/settings'], function(Settings) { var Homepage = {}; - Homepage.init = function() { + Homepage.init = function () { $('[data-field="homePageRoute"]').on('change', toggleCustomRoute); toggleCustomRoute(); diff --git a/public/src/admin/general/languages.js b/public/src/admin/general/languages.js index 24d6a418c9..7d597ffc46 100644 --- a/public/src/admin/general/languages.js +++ b/public/src/admin/general/languages.js @@ -1,10 +1,10 @@ "use strict"; /*global define*/ -define('admin/general/languages', ['admin/settings'], function(Settings) { +define('admin/general/languages', ['admin/settings'], function (Settings) { var Languages = {} - Languages.init = function() { + Languages.init = function () { Settings.prepare(); }; diff --git a/public/src/admin/general/navigation.js b/public/src/admin/general/navigation.js index 1837fc590f..35ca62e094 100644 --- a/public/src/admin/general/navigation.js +++ b/public/src/admin/general/navigation.js @@ -1,18 +1,18 @@ "use strict"; /* global define, app, ajaxify, socket, templates */ -define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], function(translator, iconSelect, jqueryui) { +define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], function (translator, iconSelect, jqueryui) { var navigation = {}, available; - navigation.init = function() { + navigation.init = function () { available = ajaxify.data.available; - $('#enabled .unescape').each(function() { + $('#enabled .unescape').each(function () { $(this).val(translator.unescape($(this).val())); }); - translator.translate(translator.unescape($('#available').html()), function(html) { + translator.translate(translator.unescape($('#available').html()), function (html) { $('#available').html(html) .find('li .drag-item').draggable({ connectToSortable: '#active-navigation', @@ -26,9 +26,9 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun accept: $('#available li .drag-item') }); - $('#enabled').on('click', '.iconPicker', function() { + $('#enabled').on('click', '.iconPicker', function () { var iconEl = $(this).find('i'); - iconSelect.init(iconEl, function(el) { + iconSelect.init(iconEl, function (el) { var newIconClass = el.attr('value'); var index = iconEl.parents('[data-index]').attr('data-index'); $('#active-navigation [data-index="' + index + '"] i').attr('class', 'fa fa-fw ' + newIconClass); @@ -68,13 +68,13 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun data.enabled = false; data.index = (parseInt($('#enabled').children().last().attr('data-index'), 10) || 0) + 1; - templates.parse('admin/general/navigation', 'navigation', {navigation: [data]}, function(li) { + templates.parse('admin/general/navigation', 'navigation', {navigation: [data]}, function (li) { li = $(translator.unescape(li)); el.after(li); el.remove(); }); - templates.parse('admin/general/navigation', 'enabled', {enabled: [data]}, function(li) { + templates.parse('admin/general/navigation', 'enabled', {enabled: [data]}, function (li) { li = $(translator.unescape(li)); $('#enabled').append(li); componentHandler.upgradeDom() @@ -85,17 +85,17 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun var nav = []; var indices = []; - $('#active-navigation li').each(function() { + $('#active-navigation li').each(function () { indices.push($(this).attr('data-index')); }); - indices.forEach(function(index) { + indices.forEach(function (index) { var el = $('#enabled').children('[data-index="' + index + '"]'); var form = el.find('form').serializeArray(), data = {}, properties = {}; - form.forEach(function(input) { + form.forEach(function (input) { if (input.name.slice(0, 9) === 'property:' && input.value === 'on') { properties[input.name.slice(9)] = true; } else { @@ -114,7 +114,7 @@ define('admin/general/navigation', ['translator', 'iconSelect', 'jqueryui'], fun nav.push(data); }); - socket.emit('admin.navigation.save', nav, function(err) { + socket.emit('admin.navigation.save', nav, function (err) { if (err) { app.alertError(err.message); } else { diff --git a/public/src/admin/general/social.js b/public/src/admin/general/social.js index 6816eb3909..9accf87417 100644 --- a/public/src/admin/general/social.js +++ b/public/src/admin/general/social.js @@ -1,19 +1,19 @@ "use strict"; /*global define, socket*/ -define('admin/general/social', [], function() { +define('admin/general/social', [], function () { var social = {}; - social.init = function() { - $('#save').on('click', function() { + social.init = function () { + $('#save').on('click', function () { var networks = []; - $('#postSharingNetworks input[type="checkbox"]').each(function() { + $('#postSharingNetworks input[type="checkbox"]').each(function () { if ($(this).prop('checked')) { networks.push($(this).attr('id')); } }); - socket.emit('admin.social.savePostSharingNetworks', networks, function(err) { + socket.emit('admin.social.savePostSharingNetworks', networks, function (err) { if (err) { return app.alertError(err); } diff --git a/public/src/admin/general/sounds.js b/public/src/admin/general/sounds.js index 73899144a0..0ea87f0917 100644 --- a/public/src/admin/general/sounds.js +++ b/public/src/admin/general/sounds.js @@ -1,12 +1,12 @@ "use strict"; /* global app, define, socket */ -define('admin/general/sounds', ['sounds', 'settings'], function(Sounds, Settings) { +define('admin/general/sounds', ['sounds', 'settings'], function (Sounds, Settings) { var SoundsAdmin = {}; - SoundsAdmin.init = function() { + SoundsAdmin.init = function () { // Sounds tab - $('.sounds').find('button[data-action="play"]').on('click', function(e) { + $('.sounds').find('button[data-action="play"]').on('click', function (e) { e.preventDefault(); var fileName = $(this).parent().parent().find('select').val(); @@ -18,8 +18,8 @@ define('admin/general/sounds', ['sounds', 'settings'], function(Sounds, Settings // Saving of Form Values var saveEl = $('#save'); - saveEl.on('click', function() { - Settings.save('sounds', $('.sounds form'), function() { + saveEl.on('click', function () { + Settings.save('sounds', $('.sounds form'), function () { socket.emit('admin.fireEvent', { name: 'event:sounds.reloadMapping' }); diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js index 398d24dd42..4244fa41ab 100644 --- a/public/src/admin/manage/categories.js +++ b/public/src/admin/manage/categories.js @@ -1,11 +1,11 @@ "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) { +define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-serializeobject.min', 'translator'], function (serialize, translator) { var Categories = {}, newCategoryId = -1, sortables; - Categories.init = function() { - socket.emit('admin.categories.getAll', function(error, payload){ + Categories.init = function () { + socket.emit('admin.categories.getAll', function (error, payload){ if(error){ return app.alertError(error.message); } @@ -16,13 +16,13 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri $('button[data-action="create"]').on('click', Categories.throwCreateModal); // Enable/Disable toggle events - $('.categories').on('click', 'button[data-action="toggle"]', function() { + $('.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 children = parentEl.find('li[data-cid]').map(function() { + var children = parentEl.find('li[data-cid]').map(function () { return $(this).attr('data-cid'); }).get(); @@ -31,15 +31,15 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri }); }; - Categories.throwCreateModal = function() { - socket.emit('admin.categories.getNames', {}, function(err, categories) { + Categories.throwCreateModal = function () { + socket.emit('admin.categories.getNames', {}, function (err, categories) { if (err) { return app.alertError(err.message); } templates.parse('admin/partials/categories/create', { categories: categories - }, function(html) { + }, function (html) { function submit() { var formData = modal.find('form').serializeObject(); formData.description = ''; @@ -67,8 +67,8 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri }); }; - Categories.create = function(payload) { - socket.emit('admin.categories.create', payload, function(err, data) { + Categories.create = function (payload) { + socket.emit('admin.categories.create', payload, function (err, data) { if (err) { return app.alertError(err.message); } @@ -85,7 +85,7 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri }); }; - Categories.render = function(categories){ + Categories.render = function (categories){ var container = $('.categories'); if (!categories || !categories.length) { @@ -99,16 +99,16 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri } }; - Categories.toggle = function(cids, disabled) { + Categories.toggle = function (cids, disabled) { var payload = {}; - cids.forEach(function(cid) { + cids.forEach(function (cid) { payload[cid] = { disabled: disabled ? 1 : 0 }; }); - socket.emit('admin.categories.update', payload, function(err) { + socket.emit('admin.categories.update', payload, function (err) { if (err) { return app.alertError(err.message); } @@ -154,8 +154,8 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri function renderList(categories, container, parentId){ // Translate category names if needed var count = 0; - categories.forEach(function(category, idx, parent) { - translator.translate(category.name, function(translated) { + categories.forEach(function (category, idx, parent) { + translator.translate(category.name, function (translated) { if (category.name !== translated) { category.name = translated; } @@ -175,11 +175,11 @@ define('admin/manage/categories', ['vendor/jquery/serializeObject/jquery.ba-seri templates.parse('admin/partials/categories/category-rows', { cid: parentId, categories: categories - }, function(html) { + }, function (html) { container.append(html); // Handle and children categories in this level have - for(var x=0,numCategories=categories.length;xDo you really want to purge this category "' + $('form.category').find('input[data-name="name"]').val() + '"?

    Warning! All topics and posts in this category will be purged!

    Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you\'ll want to "disable" the category instead.

    ', function(confirm) { + bootbox.confirm('

    Do you really want to purge this category "' + $('form.category').find('input[data-name="name"]').val() + '"?

    Warning! All topics and posts in this category will be purged!

    Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category temporarily, you\'ll want to "disable" the category instead.

    ', function (confirm) { if (!confirm) { return; } - socket.emit('admin.categories.purge', ajaxify.data.category.cid, function(err) { + socket.emit('admin.categories.purge', ajaxify.data.category.cid, function (err) { if (err) { return app.alertError(err.message); } @@ -103,9 +103,9 @@ define('admin/manage/category', [ }); }); - $('.copy-settings').on('click', function() { - selectCategoryModal(function(cid) { - socket.emit('admin.categories.copySettingsFrom', {fromCid: cid, toCid: ajaxify.data.category.cid}, function(err) { + $('.copy-settings').on('click', function () { + selectCategoryModal(function (cid) { + socket.emit('admin.categories.copySettingsFrom', {fromCid: cid, toCid: ajaxify.data.category.cid}, function (err) { if (err) { return app.alertError(err.message); } @@ -116,7 +116,7 @@ define('admin/manage/category', [ return false; }); - $('.upload-button').on('click', function() { + $('.upload-button').on('click', function () { var inputEl = $(this); var cid = inputEl.attr('data-cid'); @@ -124,7 +124,7 @@ define('admin/manage/category', [ title: 'Upload category image', route: config.relative_path + '/api/admin/category/uploadpicture', params: {cid: cid} - }, function(imageUrlOnServer) { + }, function (imageUrlOnServer) { $('#category-image').val(imageUrlOnServer); var previewBox = inputEl.parent().parent().siblings('.category-preview'); previewBox.css('background', 'url(' + imageUrlOnServer + '?' + new Date().getTime() + ')'); @@ -133,11 +133,11 @@ define('admin/manage/category', [ }); }); - $('#category-image').on('change', function() { + $('#category-image').on('change', function () { $('.category-preview').css('background-image', $(this).val() ? ('url("' + $(this).val() + '")') : ''); }); - $('.delete-image').on('click', function(e) { + $('.delete-image').on('click', function (e) { e.preventDefault(); var inputEl = $('#category-image'); @@ -149,18 +149,18 @@ define('admin/manage/category', [ $(this).parent().addClass('hide').hide(); }); - $('.category-preview').on('click', function() { + $('.category-preview').on('click', function () { iconSelect.init($(this).find('i'), modified); }); $('button[data-action="setParent"], button[data-action="changeParent"]').on('click', Category.launchParentSelector); - $('button[data-action="removeParent"]').on('click', function() { - var payload= {}; + $('button[data-action="removeParent"]').on('click', function () { + var payload = {}; payload[ajaxify.data.category.cid] = { parentCid: 0 }; - socket.emit('admin.categories.update', payload, function(err) { + socket.emit('admin.categories.update', payload, function (err) { if (err) { return app.alertError(err.message); } @@ -173,8 +173,8 @@ define('admin/manage/category', [ Category.setupPrivilegeTable(); }; - Category.setupPrivilegeTable = function() { - $('.privilege-table-container').on('change', 'input[type="checkbox"]', function() { + 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'), @@ -185,7 +185,7 @@ define('admin/manage/category', [ if (member) { if (isGroup && privilege === 'groups:moderate' && !isPrivate && state) { - bootbox.confirm('Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.', function(confirm) { + bootbox.confirm('Are you sure you wish to grant the moderation privilege to this user group? This group is public, and any users can join at will.', function (confirm) { if (confirm) { Category.setPrivilege(member, privilege, state, checkboxEl); } else { @@ -208,36 +208,36 @@ define('admin/manage/category', [ Category.exposeAssumedPrivileges(); }; - Category.refreshPrivilegeTable = function() { - socket.emit('admin.categories.getPrivilegeSettings', ajaxify.data.category.cid, function(err, privileges) { + Category.refreshPrivilegeTable = function () { + socket.emit('admin.categories.getPrivilegeSettings', ajaxify.data.category.cid, function (err, privileges) { if (err) { return app.alertError(err.message); } templates.parse('admin/partials/categories/privileges', { privileges: privileges - }, function(html) { + }, function (html) { $('.privilege-table-container').html(html); Category.exposeAssumedPrivileges(); }); }); }; - Category.exposeAssumedPrivileges = function() { + Category.exposeAssumedPrivileges = function () { /* If registered-users has a privilege enabled, then all users and groups of that privilege should be assumed to have that privilege as well, even if not set in the db, so reflect this arrangement in the table */ var privs = []; - $('.privilege-table tr[data-group-name="registered-users"] td input[type="checkbox"]').parent().each(function(idx, el) { + $('.privilege-table tr[data-group-name="registered-users"] td input[type="checkbox"]').parent().each(function (idx, el) { if ($(el).find('input').prop('checked')) { privs.push(el.getAttribute('data-privilege')); } }); - for(var x=0,numPrivs=privs.length;x', show: true }); - modal.on('shown.bs.modal', function() { + modal.on('shown.bs.modal', function () { var inputEl = modal.find('input'); - autocomplete.user(inputEl, function(ev, ui) { + autocomplete.user(inputEl, function (ev, ui) { socket.emit('admin.categories.setPrivilege', { cid: ajaxify.data.category.cid, privilege: ['find', 'read', 'topics:read'], set: true, member: ui.item.user.uid - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } @@ -335,23 +335,23 @@ define('admin/manage/category', [ }); }; - Category.addGroupToPrivilegeTable = function() { + Category.addGroupToPrivilegeTable = function () { var modal = bootbox.dialog({ title: 'Find a Group', message: '', show: true }); - modal.on('shown.bs.modal', function() { + modal.on('shown.bs.modal', function () { var inputEl = modal.find('input'); - autocomplete.group(inputEl, function(ev, ui) { + autocomplete.group(inputEl, function (ev, ui) { socket.emit('admin.categories.setPrivilege', { cid: ajaxify.data.category.cid, privilege: ['groups:find', 'groups:read', 'groups:topics:read'], set: true, member: ui.item.group.name - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } @@ -363,8 +363,8 @@ define('admin/manage/category', [ }); }; - Category.copyPrivilegesToChildren = function() { - socket.emit('admin.categories.copyPrivilegesToChildren', ajaxify.data.category.cid, function(err) { + Category.copyPrivilegesToChildren = function () { + socket.emit('admin.categories.copyPrivilegesToChildren', ajaxify.data.category.cid, function (err) { if (err) { return app.alertError(err.message); } @@ -372,9 +372,9 @@ define('admin/manage/category', [ }); }; - Category.copyPrivilegesFromCategory = function() { - selectCategoryModal(function(cid) { - socket.emit('admin.categories.copyPrivilegesFrom', {toCid: ajaxify.data.category.cid, fromCid: cid}, function(err) { + Category.copyPrivilegesFromCategory = function () { + selectCategoryModal(function (cid) { + socket.emit('admin.categories.copyPrivilegesFrom', {toCid: ajaxify.data.category.cid, fromCid: cid}, function (err) { if (err) { return app.alertError(err.message); } @@ -384,14 +384,14 @@ define('admin/manage/category', [ }; function selectCategoryModal(callback) { - socket.emit('admin.categories.getNames', function(err, categories) { + socket.emit('admin.categories.getNames', function (err, categories) { if (err) { return app.alertError(err.message); } templates.parse('admin/partials/categories/select-category', { categories: categories - }, function(html) { + }, function (html) { function submit() { var formData = modal.find('form').serializeObject(); callback(formData['select-cid']); diff --git a/public/src/admin/manage/flags.js b/public/src/admin/manage/flags.js index 30209bca11..fb8b32d602 100644 --- a/public/src/admin/manage/flags.js +++ b/public/src/admin/manage/flags.js @@ -5,11 +5,11 @@ define('admin/manage/flags', [ 'autocomplete', 'Chart', 'components' -], function(autocomplete, Chart, components) { +], function (autocomplete, Chart, components) { var Flags = {}; - Flags.init = function() { + Flags.init = function () { $('.post-container .content img:not(.not-responsive)').addClass('img-responsive'); autocomplete.user($('#byUsername')); @@ -30,19 +30,19 @@ define('admin/manage/flags', [ }; function handleDismiss() { - $('.flags').on('click', '.dismiss', function() { + $('.flags').on('click', '.dismiss', function () { var btn = $(this); var pid = btn.parents('[data-pid]').attr('data-pid'); - socket.emit('posts.dismissFlag', pid, function(err) { + socket.emit('posts.dismissFlag', pid, function (err) { done(err, btn); }); }); } function handleDismissAll() { - $('#dismissAll').on('click', function() { - socket.emit('posts.dismissAllFlags', function(err) { + $('#dismissAll').on('click', function () { + socket.emit('posts.dismissAllFlags', function (err) { if (err) { return app.alertError(err.message); } @@ -54,15 +54,15 @@ define('admin/manage/flags', [ } function handleDelete() { - $('.flags').on('click', '.delete', function() { + $('.flags').on('click', '.delete', function () { var btn = $(this); - bootbox.confirm('Do you really want to delete this post?', function(confirm) { + bootbox.confirm('Do you really want to delete this post?', function (confirm) { if (!confirm) { return; } var pid = btn.parents('[data-pid]').attr('data-pid'); var tid = btn.parents('[data-pid]').attr('data-tid'); - socket.emit('posts.delete', {pid: pid, tid: tid}, function(err) { + socket.emit('posts.delete', {pid: pid, tid: tid}, function (err) { done(err, btn); }); }); @@ -73,7 +73,7 @@ define('admin/manage/flags', [ if (err) { return app.alertError(err.messaage); } - btn.parents('[data-pid]').fadeOut(function() { + btn.parents('[data-pid]').fadeOut(function () { $(this).remove(); if (!$('.flags [data-pid]').length) { $('.post-container').text('No flagged posts!'); @@ -83,7 +83,7 @@ define('admin/manage/flags', [ function handleGraphs() { var dailyCanvas = document.getElementById('flags:daily'); - var dailyLabels = utils.getDaysArray().map(function(text, idx) { + var dailyLabels = utils.getDaysArray().map(function (text, idx) { return idx % 3 ? '' : text; }); @@ -133,12 +133,12 @@ define('admin/manage/flags', [ // As the flag details are returned in the API, update the form controls to show the correct data // Create reference hash for use in this method - source = source.reduce(function(memo, cur) { + source = source.reduce(function (memo, cur) { memo[cur.pid] = cur.flagData; return memo; }, {}); - components.get('posts/flag').each(function(idx, el) { + components.get('posts/flag').each(function (idx, el) { var pid = el.getAttribute('data-pid'); var el = $(el); @@ -159,7 +159,7 @@ define('admin/manage/flags', [ socket.emit('posts.updateFlag', { pid: pid, data: formData - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } else { diff --git a/public/src/admin/manage/group.js b/public/src/admin/manage/group.js index 32ff8aea80..ce41436dac 100644 --- a/public/src/admin/manage/group.js +++ b/public/src/admin/manage/group.js @@ -6,10 +6,10 @@ define('admin/manage/group', [ 'iconSelect', 'admin/modules/colorpicker', 'translator' -], function(memberList, iconSelect, colorpicker, translator) { +], function (memberList, iconSelect, colorpicker, translator) { var Groups = {}; - Groups.init = function() { + Groups.init = function () { var groupDetailsSearch = $('#group-details-search'), groupDetailsSearchResults = $('#group-details-search-results'), groupIcon = $('#group-icon'), @@ -23,25 +23,25 @@ define('admin/manage/group', [ memberList.init(); - changeGroupUserTitle.keyup(function() { + changeGroupUserTitle.keyup(function () { groupLabelPreview.text(changeGroupUserTitle.val()); }); - changeGroupLabelColor.keyup(function() { + changeGroupLabelColor.keyup(function () { groupLabelPreview.css('background', changeGroupLabelColor.val() || '#000000'); }); - groupDetailsSearch.on('keyup', function() { + groupDetailsSearch.on('keyup', function () { if (searchDelay) { clearTimeout(searchDelay); } - searchDelay = setTimeout(function() { + searchDelay = setTimeout(function () { var searchText = groupDetailsSearch.val(), foundUser; - socket.emit('admin.user.search', {query: searchText}, function(err, results) { + socket.emit('admin.user.search', {query: searchText}, function (err, results) { if (!err && results && results.users.length > 0) { var numResults = results.users.length, x; if (numResults > 20) { @@ -75,14 +75,14 @@ define('admin/manage/group', [ }, 200); }); - groupDetailsSearchResults.on('click', 'li[data-uid]', function() { + groupDetailsSearchResults.on('click', 'li[data-uid]', function () { var userLabel = $(this), uid = parseInt(userLabel.attr('data-uid'), 10); socket.emit('admin.groups.join', { groupName: groupName, uid: uid - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } @@ -96,15 +96,15 @@ define('admin/manage/group', [ "icon:text": userLabel.attr('data-usericon-text') }; - templates.parse('partials/groups/memberlist', 'members', {group: {isOwner: ajaxify.data.group.isOwner, members: [member]}}, function(html) { - translator.translate(html, function(html) { + templates.parse('partials/groups/memberlist', 'members', {group: {isOwner: ajaxify.data.group.isOwner, members: [member]}}, function (html) { + translator.translate(html, function (html) { $('[component="groups/members"] tbody').prepend(html); }); }); }); }); - $('[component="groups/members"]').on('click', '[data-action]', function() { + $('[component="groups/members"]').on('click', '[data-action]', function () { var btnEl = $(this), userRow = btnEl.parents('[data-uid]'), ownerFlagEl = userRow.find('.member-name i'), @@ -117,7 +117,7 @@ define('admin/manage/group', [ socket.emit('groups.' + (isOwner ? 'rescind' : 'grant'), { toUid: uid, groupName: groupName - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } @@ -126,14 +126,14 @@ define('admin/manage/group', [ break; case 'kick': - bootbox.confirm('Are you sure you want to remove this user?', function(confirm) { + bootbox.confirm('Are you sure you want to remove this user?', function (confirm) { if (!confirm) { return; } socket.emit('admin.groups.leave', { uid: uid, groupName: groupName - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } @@ -147,15 +147,15 @@ define('admin/manage/group', [ } }); - $('#group-icon').on('click', function() { + $('#group-icon').on('click', function () { iconSelect.init(groupIcon); }); - colorpicker.enable(changeGroupLabelColor, function(hsb, hex) { + colorpicker.enable(changeGroupLabelColor, function (hsb, hex) { groupLabelPreview.css('background-color', '#' + hex); }); - $('.save').on('click', function() { + $('.save').on('click', function () { socket.emit('admin.groups.update', { groupName: groupName, values: { @@ -169,7 +169,7 @@ define('admin/manage/group', [ hidden: $('#group-hidden').is(':checked'), disableJoinRequests: $('#group-disableJoinRequests').is(':checked') } - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } diff --git a/public/src/admin/manage/groups.js b/public/src/admin/manage/groups.js index 3eee1ca08c..bbb0c08352 100644 --- a/public/src/admin/manage/groups.js +++ b/public/src/admin/manage/groups.js @@ -4,12 +4,12 @@ define('admin/manage/groups', [ 'translator', 'components' -], function(translator, components) { +], function (translator, components) { var Groups = {}; var intervalId = 0; - Groups.init = function() { + Groups.init = function () { var createModal = $('#create-modal'), createGroupName = $('#create-group-name'), createModalGo = $('#create-modal-go'), @@ -17,30 +17,30 @@ define('admin/manage/groups', [ handleSearch(); - createModal.on('keypress', function(e) { + createModal.on('keypress', function (e) { if (e.keyCode === 13) { createModalGo.click(); } }); - $('#create').on('click', function() { + $('#create').on('click', function () { createModal.modal('show'); - setTimeout(function() { + setTimeout(function () { createGroupName.focus(); }, 250); }); - createModalGo.on('click', function() { + createModalGo.on('click', function () { var submitObj = { name: createGroupName.val(), description: $('#create-group-desc').val() }, errorText; - socket.emit('admin.groups.create', submitObj, function(err) { + socket.emit('admin.groups.create', submitObj, function (err) { if (err) { if (err.hasOwnProperty('message') && utils.hasLanguageKey(err.message)) { - translator.translate(err.message, config.defaultLang, function(translated) { + translator.translate(err.message, config.defaultLang, function (translated) { createModalError.html(translated).removeClass('hide'); }); } else { @@ -49,7 +49,7 @@ define('admin/manage/groups', [ } else { createModalError.addClass('hide'); createGroupName.val(''); - createModal.on('hidden.bs.modal', function() { + createModal.on('hidden.bs.modal', function () { ajaxify.refresh(); }); createModal.modal('hide'); @@ -57,18 +57,18 @@ define('admin/manage/groups', [ }); }); - $('.groups-list').on('click', 'button[data-action]', function() { + $('.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'); switch (action) { case 'delete': - bootbox.confirm('Are you sure you wish to delete this group?', function(confirm) { + bootbox.confirm('Are you sure you wish to delete this group?', function (confirm) { if (confirm) { socket.emit('groups.delete', { groupName: groupName - }, function(err, data) { + }, function (err, data) { if(err) { return app.alertError(err.message); } @@ -94,14 +94,14 @@ define('admin/manage/groups', [ options: { sort: 'date' } - }, function(err, groups) { + }, function (err, groups) { if (err) { return app.alertError(err.message); } templates.parse('admin/manage/groups', 'groups', { groups: groups - }, function(html) { + }, function (html) { groupsEl.find('[data-groupname]').remove(); groupsEl.find('tr').after(html); }); @@ -110,7 +110,7 @@ define('admin/manage/groups', [ var queryEl = $('#group-search'); - queryEl.on('keyup', function() { + queryEl.on('keyup', function () { if (intervalId) { clearTimeout(intervalId); intervalId = 0; diff --git a/public/src/admin/manage/ip-blacklist.js b/public/src/admin/manage/ip-blacklist.js index 949d8ac8fd..03f4d8bb5c 100644 --- a/public/src/admin/manage/ip-blacklist.js +++ b/public/src/admin/manage/ip-blacklist.js @@ -1,19 +1,19 @@ 'use strict'; /* globals $, app, socket, templates, define, bootbox */ -define('admin/manage/ip-blacklist', [], function() { +define('admin/manage/ip-blacklist', [], function () { var Blacklist = {}; - Blacklist.init = function() { + Blacklist.init = function () { var blacklist = $('#blacklist-rules'); - blacklist.on('keyup', function() { + blacklist.on('keyup', function () { $('#blacklist-rules-holder').val(blacklist.val()); }); - $('[data-action="apply"]').on('click', function() { - socket.emit('blacklist.save', blacklist.val(), function(err) { + $('[data-action="apply"]').on('click', function () { + socket.emit('blacklist.save', blacklist.val(), function (err) { if (err) { return app.alertError(err.message); } @@ -25,15 +25,15 @@ define('admin/manage/ip-blacklist', [], function() { }); }); - $('[data-action="test"]').on('click', function() { + $('[data-action="test"]').on('click', function () { socket.emit('blacklist.validate', { rules: blacklist.val() - }, function(err, data) { + }, function (err, data) { if (err) { return app.alertError(err.message); } - templates.parse('admin/partials/blacklist-validate', data, function(html) { + templates.parse('admin/partials/blacklist-validate', data, function (html) { bootbox.alert(html); }); }); diff --git a/public/src/admin/manage/registration.js b/public/src/admin/manage/registration.js index 55578901e8..329a4edb96 100644 --- a/public/src/admin/manage/registration.js +++ b/public/src/admin/manage/registration.js @@ -2,18 +2,18 @@ /* global config, socket, define, templates, bootbox, app, ajaxify, */ -define('admin/manage/registration', function() { +define('admin/manage/registration', function () { var Registration = {}; - Registration.init = function() { + Registration.init = function () { - $('.users-list').on('click', '[data-action]', function(ev) { + $('.users-list').on('click', '[data-action]', function (ev) { var parent = $(this).parents('[data-username]'); var action = $(this).attr('data-action'); var username = parent.attr('data-username'); var method = action === 'accept' ? 'admin.user.acceptRegistration' : 'admin.user.rejectRegistration'; - socket.emit(method, {username: username}, function(err) { + socket.emit(method, {username: username}, function (err) { if (err) { return app.alertError(err.message); } @@ -22,7 +22,7 @@ define('admin/manage/registration', function() { return false; }); - $('.invites-list').on('click', '[data-action]', function(ev) { + $('.invites-list').on('click', '[data-action]', function (ev) { var parent = $(this).parents('[data-invitation-mail][data-invited-by]'); var email = parent.attr('data-invitation-mail'); var invitedBy = parent.attr('data-invited-by'); @@ -39,9 +39,9 @@ define('admin/manage/registration', function() { parent.remove(); }; if (action === 'delete') { - bootbox.confirm('Are you sure you wish to delete this invitation?', function(confirm) { + bootbox.confirm('Are you sure you wish to delete this invitation?', function (confirm) { if (confirm) { - socket.emit(method, {email: email, invitedBy: invitedBy}, function(err) { + socket.emit(method, {email: email, invitedBy: invitedBy}, function (err) { if (err) { return app.alertError(err.message); } diff --git a/public/src/admin/manage/tags.js b/public/src/admin/manage/tags.js index 0c0bc368c3..108fce3797 100644 --- a/public/src/admin/manage/tags.js +++ b/public/src/admin/manage/tags.js @@ -5,11 +5,11 @@ define('admin/manage/tags', [ 'forum/infinitescroll', 'admin/modules/selectable', 'admin/modules/colorpicker' -], function(infinitescroll, selectable, colorpicker) { +], function (infinitescroll, selectable, colorpicker) { var Tags = {}, timeoutId = 0; - Tags.init = function() { + Tags.init = function () { selectable.enable('.tag-management', '.tag-row'); handleCreate(); @@ -23,29 +23,29 @@ define('admin/manage/tags', [ var createTagName = $('#create-tag-name'); var createModalGo = $('#create-modal-go'); - createModal.on('keypress', function(e) { + createModal.on('keypress', function (e) { if (e.keyCode === 13) { createModalGo.click(); } }); - $('#create').on('click', function() { + $('#create').on('click', function () { createModal.modal('show'); - setTimeout(function() { + setTimeout(function () { createTagName.focus(); }, 250); }); - createModalGo.on('click', function() { + createModalGo.on('click', function () { socket.emit('admin.tags.create', { tag: createTagName.val() - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } createTagName.val(''); - createModal.on('hidden.bs.modal', function() { + createModal.on('hidden.bs.modal', function () { ajaxify.refresh(); }); createModal.modal('hide'); @@ -54,19 +54,19 @@ define('admin/manage/tags', [ } function handleSearch() { - $('#tag-search').on('input propertychange', function() { + $('#tag-search').on('input propertychange', function () { if (timeoutId) { clearTimeout(timeoutId); timeoutId = 0; } - timeoutId = setTimeout(function() { - socket.emit('topics.searchAndLoadTags', {query: $('#tag-search').val()}, function(err, result) { + timeoutId = setTimeout(function () { + socket.emit('topics.searchAndLoadTags', {query: $('#tag-search').val()}, function (err, result) { if (err) { return app.alertError(err.message); } - app.parseAndTranslate('admin/manage/tags', 'tags', {tags: result.tags}, function(html) { + app.parseAndTranslate('admin/manage/tags', 'tags', {tags: result.tags}, function (html) { $('.tag-list').html(html); utils.makeNumbersHumanReadable(html.find('.human-readable-number')); timeoutId = 0; @@ -79,7 +79,7 @@ define('admin/manage/tags', [ } function handleModify() { - $('#modify').on('click', function() { + $('#modify').on('click', function () { var tagsToModify = $('.tag-row.ui-selected'); if (!tagsToModify.length) { return; @@ -95,12 +95,12 @@ define('admin/manage/tags', [ success: { label: "Save", className: "btn-primary save", - callback: function() { + callback: function () { var modal = $('.bootbox'), bgColor = modal.find('[data-name="bgColor"]').val(), color = modal.find('[data-name="color"]').val(); - tagsToModify.each(function(idx, tag) { + tagsToModify.each(function (idx, tag) { tag = $(tag); tag.find('[data-name="bgColor"]').val(bgColor); @@ -119,21 +119,21 @@ define('admin/manage/tags', [ } function handleDeleteSelected() { - $('#deleteSelected').on('click', function() { + $('#deleteSelected').on('click', function () { var tagsToDelete = $('.tag-row.ui-selected'); if (!tagsToDelete.length) { return; } - bootbox.confirm('Do you want to delete the selected tags?', function(confirm) { + bootbox.confirm('Do you want to delete the selected tags?', function (confirm) { if (!confirm) { return; } var tags = []; - tagsToDelete.each(function(index, el) { + tagsToDelete.each(function (index, el) { tags.push($(el).attr('data-tag')); }); - socket.emit('admin.tags.deleteTags', {tags: tags}, function(err) { + socket.emit('admin.tags.deleteTags', {tags: tags}, function (err) { if (err) { return app.alertError(err.message); } @@ -159,7 +159,7 @@ define('admin/manage/tags', [ color : tag.find('[data-name="color"]').val() }; - socket.emit('admin.tags.update', data, function(err) { + socket.emit('admin.tags.update', data, function (err) { if (err) { return app.alertError(err.message); } diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js index db2cd3fef3..b8fb8d5de6 100644 --- a/public/src/admin/manage/users.js +++ b/public/src/admin/manage/users.js @@ -2,10 +2,10 @@ /* global config, socket, define, templates, bootbox, app, ajaxify */ -define('admin/manage/users', ['translator'], function(translator) { +define('admin/manage/users', ['translator'], function (translator) { var Users = {}; - Users.init = function() { + Users.init = function () { var navPills = $('.nav-pills li'); var pathname = window.location.pathname; if (!navPills.find('a[href="' + pathname + '"]').length) { @@ -16,7 +16,7 @@ define('admin/manage/users', ['translator'], function(translator) { function getSelectedUids() { var uids = []; - $('.users-table [component="user/select/single"]').each(function() { + $('.users-table [component="user/select/single"]').each(function () { if ($(this).is(':checked')) { uids.push($(this).attr('data-uid')); } @@ -26,7 +26,7 @@ define('admin/manage/users', ['translator'], function(translator) { } function update(className, state) { - $('.users-table [component="user/select/single"]:checked').parents('.user-row').find(className).each(function() { + $('.users-table [component="user/select/single"]:checked').parents('.user-row').find(className).each(function () { $(this).toggleClass('hidden', !state); }); } @@ -41,7 +41,7 @@ define('admin/manage/users', ['translator'], function(translator) { } function done(successMessage, className, flag) { - return function(err) { + return function (err) { if (err) { return app.alertError(err.message); } @@ -53,7 +53,7 @@ define('admin/manage/users', ['translator'], function(translator) { }; } - $('[component="user/select/all"]').on('click', function() { + $('[component="user/select/all"]').on('click', function () { if ($(this).is(':checked')) { $('.users-table [component="user/select/single"]').prop('checked', true); } else { @@ -61,28 +61,28 @@ define('admin/manage/users', ['translator'], function(translator) { } }); - $('.ban-user').on('click', function() { + $('.ban-user').on('click', function () { var uids = getSelectedUids(); if (!uids.length) { app.alertError('[[error:no-users-selected]]'); return false; // specifically to keep the menu open } - bootbox.confirm('Do you really want to ban ' + (uids.length > 1 ? 'these users' : 'this user') + ' permanently?', function(confirm) { + bootbox.confirm('Do you really want to ban ' + (uids.length > 1 ? 'these users' : 'this user') + ' permanently?', function (confirm) { if (confirm) { socket.emit('user.banUsers', { uids: uids, reason: '' }, done('User(s) banned!', '.ban', true)); } }); }); - $('.ban-user-temporary').on('click', function() { + $('.ban-user-temporary').on('click', function () { var uids = getSelectedUids(); if (!uids.length) { app.alertError('[[error:no-users-selected]]'); return false; // specifically to keep the menu open } - templates.parse('admin/partials/temporary-ban', {}, function(html) { + templates.parse('admin/partials/temporary-ban', {}, function (html) { bootbox.dialog({ className: 'ban-modal', title: '[[user:ban_account]]', @@ -95,12 +95,12 @@ define('admin/manage/users', ['translator'], function(translator) { }, submit: { label: 'Ban ' + uids.length + (uids.length > 1 ? ' users' : ' user'), - callback: function() { - var formData = $('.ban-modal form').serializeArray().reduce(function(data, cur) { + callback: function () { + var formData = $('.ban-modal form').serializeArray().reduce(function (data, cur) { data[cur.name] = cur.value; return data; }, {}); - var until = formData.length ? (Date.now() + formData.length * 1000*60*60 * (parseInt(formData.unit, 10) ? 24 : 1)) : 0; + var until = formData.length ? (Date.now() + formData.length * 1000 * 60 * 60 * (parseInt(formData.unit, 10) ? 24 : 1)) : 0; socket.emit('user.banUsers', { uids: uids, until: until, reason: formData.reason }, done('User(s) banned!', '.ban', true)); } } @@ -109,7 +109,7 @@ define('admin/manage/users', ['translator'], function(translator) { }); }); - $('.unban-user').on('click', function() { + $('.unban-user').on('click', function () { var uids = getSelectedUids(); if (!uids.length) { app.alertError('[[error:no-users-selected]]'); @@ -119,7 +119,7 @@ define('admin/manage/users', ['translator'], function(translator) { socket.emit('user.unbanUsers', uids, done('User(s) unbanned!', '.ban', false)); }); - $('.reset-lockout').on('click', function() { + $('.reset-lockout').on('click', function () { var uids = getSelectedUids(); if (!uids.length) { return; @@ -128,7 +128,7 @@ define('admin/manage/users', ['translator'], function(translator) { socket.emit('admin.user.resetLockouts', uids, done('Lockout(s) reset!')); }); - $('.reset-flags').on('click', function() { + $('.reset-flags').on('click', function () { var uids = getSelectedUids(); if (!uids.length) { return; @@ -137,7 +137,7 @@ define('admin/manage/users', ['translator'], function(translator) { socket.emit('admin.user.resetFlags', uids, done('Flags(s) reset!')); }); - $('.admin-user').on('click', function() { + $('.admin-user').on('click', function () { var uids = getSelectedUids(); if (!uids.length) { return; @@ -150,7 +150,7 @@ define('admin/manage/users', ['translator'], function(translator) { } }); - $('.remove-admin-user').on('click', function() { + $('.remove-admin-user').on('click', function () { var uids = getSelectedUids(); if (!uids.length) { return; @@ -159,7 +159,7 @@ define('admin/manage/users', ['translator'], function(translator) { if (uids.indexOf(app.user.uid.toString()) !== -1) { app.alertError('You can\'t remove yourself as Administrator!'); } else { - bootbox.confirm('Do you really want to remove admins?', function(confirm) { + bootbox.confirm('Do you really want to remove admins?', function (confirm) { if (confirm) { socket.emit('admin.user.removeAdmins', uids, done('User(s) are no longer administrators.', '.administrator', false)); } @@ -167,17 +167,17 @@ define('admin/manage/users', ['translator'], function(translator) { } }); - $('.validate-email').on('click', function() { + $('.validate-email').on('click', function () { var uids = getSelectedUids(); if (!uids.length) { return; } - bootbox.confirm('Do you want to validate email(s) of these user(s)?', function(confirm) { + bootbox.confirm('Do you want to validate email(s) of these user(s)?', function (confirm) { if (!confirm) { return; } - socket.emit('admin.user.validateEmail', uids, function(err) { + socket.emit('admin.user.validateEmail', uids, function (err) { if (err) { return app.alertError(err.message); } @@ -189,12 +189,12 @@ define('admin/manage/users', ['translator'], function(translator) { }); }); - $('.send-validation-email').on('click', function() { + $('.send-validation-email').on('click', function () { var uids = getSelectedUids(); if (!uids.length) { return; } - socket.emit('admin.user.sendValidationEmail', uids, function(err) { + socket.emit('admin.user.sendValidationEmail', uids, function (err) { if (err) { return app.alertError(err.message); } @@ -202,28 +202,28 @@ define('admin/manage/users', ['translator'], function(translator) { }); }); - $('.password-reset-email').on('click', function() { + $('.password-reset-email').on('click', function () { var uids = getSelectedUids(); if (!uids.length) { return; } - bootbox.confirm('Do you want to send password reset email(s) to these user(s)?', function(confirm) { + bootbox.confirm('Do you want to send password reset email(s) to these user(s)?', function (confirm) { if (confirm) { socket.emit('admin.user.sendPasswordResetEmail', uids, done('Emails sent')); } }); }); - $('.delete-user').on('click', function() { + $('.delete-user').on('click', function () { var uids = getSelectedUids(); if (!uids.length) { return; } - bootbox.confirm('Warning!
    Do you really want to delete user(s)?
    This action is not reversable, only the user account will be deleted, their posts and topics will not be deleled!', function(confirm) { + bootbox.confirm('Warning!
    Do you really want to delete user(s)?
    This action is not reversable, only the user account will be deleted, their posts and topics will not be deleled!', function (confirm) { if (confirm) { - socket.emit('admin.user.deleteUsers', uids, function(err) { + socket.emit('admin.user.deleteUsers', uids, function (err) { if (err) { return app.alertError(err.message); } @@ -236,14 +236,14 @@ define('admin/manage/users', ['translator'], function(translator) { }); }); - $('.delete-user-and-content').on('click', function() { + $('.delete-user-and-content').on('click', function () { var uids = getSelectedUids(); if (!uids.length) { return; } - bootbox.confirm('Warning!
    Do you really want to delete user(s) and their content?
    This action is not reversable, all user data and content will be erased!', function(confirm) { + bootbox.confirm('Warning!
    Do you really want to delete user(s) and their content?
    This action is not reversable, all user data and content will be erased!', function (confirm) { if (confirm) { - socket.emit('admin.user.deleteUsersAndContent', uids, function(err) { + socket.emit('admin.user.deleteUsersAndContent', uids, function (err) { if (err) { return app.alertError(err.message); } @@ -257,9 +257,9 @@ define('admin/manage/users', ['translator'], function(translator) { }); function handleUserCreate() { - $('#createUser').on('click', function() { - templates.parse('admin/partials/create_user_modal', {}, function(html) { - translator.translate(html, function(html) { + $('#createUser').on('click', function () { + templates.parse('admin/partials/create_user_modal', {}, function (html) { + translator.translate(html, function (html) { bootbox.dialog({ message: html, title: 'Create User', @@ -272,7 +272,7 @@ define('admin/manage/users', ['translator'], function(translator) { create: { label: 'Create', className: 'btn-primary', - callback: function() { + callback: function () { createUser.call(this); return false; } @@ -303,13 +303,13 @@ define('admin/manage/users', ['translator'], function(translator) { password: password }; - socket.emit('admin.user.createUser', user, function(err) { + socket.emit('admin.user.createUser', user, function (err) { if(err) { return errorEl.translateHtml('Error

    ' + err.message + '

    ').removeClass('hide'); } modal.modal('hide'); - modal.on('hidden.bs.modal', function() { + modal.on('hidden.bs.modal', function () { ajaxify.refresh(); }); app.alertSuccess('User created!'); @@ -318,7 +318,7 @@ define('admin/manage/users', ['translator'], function(translator) { var timeoutId = 0; - $('#search-user-name, #search-user-email, #search-user-ip').on('keyup', function() { + $('#search-user-name, #search-user-email, #search-user-ip').on('keyup', function () { if (timeoutId !== 0) { clearTimeout(timeoutId); timeoutId = 0; @@ -327,15 +327,15 @@ define('admin/manage/users', ['translator'], function(translator) { var $this = $(this); var type = $this.attr('data-search-type'); - timeoutId = setTimeout(function() { + timeoutId = setTimeout(function () { $('.fa-spinner').removeClass('hidden'); - socket.emit('admin.user.search', {searchBy: type, query: $this.val()}, function(err, data) { + socket.emit('admin.user.search', {searchBy: type, query: $this.val()}, function (err, data) { if (err) { return app.alertError(err.message); } - templates.parse('admin/manage/users', 'users', data, function(html) { + templates.parse('admin/manage/users', 'users', data, function (html) { html = $(html); $('.users-table tr').not(':first').remove(); $('.users-table tr').first().after(html); @@ -367,13 +367,13 @@ define('admin/manage/users', ['translator'], function(translator) { }; function handleInvite() { - $('[component="user/invite"]').on('click', function() { - bootbox.prompt('Email: ', function(email) { + $('[component="user/invite"]').on('click', function () { + bootbox.prompt('Email: ', function (email) { if (!email) { return; } - socket.emit('user.invite', email, function(err) { + socket.emit('user.invite', email, function (err) { if (err) { return app.alertError(err.message); } diff --git a/public/src/admin/modules/colorpicker.js b/public/src/admin/modules/colorpicker.js index 6a0054ae85..47e129249a 100644 --- a/public/src/admin/modules/colorpicker.js +++ b/public/src/admin/modules/colorpicker.js @@ -2,22 +2,22 @@ /*globals define*/ -define('admin/modules/colorpicker', function() { +define('admin/modules/colorpicker', function () { var colorpicker = {}; - colorpicker.enable = function(inputEl, callback) { - (inputEl instanceof jQuery ? inputEl : $(inputEl)).each(function() { + colorpicker.enable = function (inputEl, callback) { + (inputEl instanceof jQuery ? inputEl : $(inputEl)).each(function () { var $this = $(this); $this.ColorPicker({ color: $this.val() || '#000', - onChange: function(hsb, hex) { + onChange: function (hsb, hex) { $this.val('#' + hex); if (typeof callback === 'function') { callback(hsb, hex); } }, - onShow: function(colpkr) { + onShow: function (colpkr) { $(colpkr).css('z-index', 1051); } }); diff --git a/public/src/admin/modules/instance.js b/public/src/admin/modules/instance.js index edad60b80e..d5c2164155 100644 --- a/public/src/admin/modules/instance.js +++ b/public/src/admin/modules/instance.js @@ -2,10 +2,10 @@ /*globals define, app, socket*/ -define('admin/modules/instance', function() { +define('admin/modules/instance', function () { var instance = {}; - instance.reload = function(callback) { + instance.reload = function (callback) { app.alert({ alert_id: 'instance_reload', type: 'info', @@ -14,7 +14,7 @@ define('admin/modules/instance', function() { timeout: 5000 }); - socket.emit('admin.reload', function(err) { + socket.emit('admin.reload', function (err) { if (!err) { app.alert({ alert_id: 'instance_reload', @@ -38,7 +38,7 @@ define('admin/modules/instance', function() { }); }; - instance.restart = function(callback) { + instance.restart = function (callback) { app.alert({ alert_id: 'instance_restart', type: 'info', @@ -47,7 +47,7 @@ define('admin/modules/instance', function() { timeout: 5000 }); - $(window).one('action:reconnected', function() { + $(window).one('action:reconnected', function () { app.alert({ alert_id: 'instance_restart', type: 'success', diff --git a/public/src/admin/modules/search.js b/public/src/admin/modules/search.js index ae15ad0064..b639034ebd 100644 --- a/public/src/admin/modules/search.js +++ b/public/src/admin/modules/search.js @@ -1,11 +1,11 @@ "use strict"; /*globals define, admin, ajaxify, RELATIVE_PATH*/ -define(function() { +define(function () { var search = {}, searchIndex; - search.init = function() { + search.init = function () { $.getJSON(RELATIVE_PATH + '/templates/indexed.json', function (data) { searchIndex = data; for (var file in searchIndex) { @@ -31,17 +31,17 @@ define(function() { input = $('#acp-search input'), firstResult = null; - input.on('keyup', function() { + input.on('keyup', function () { $('#acp-search .dropdown').addClass('open'); }); - $('#acp-search').parents('form').on('submit', function(ev) { + $('#acp-search').parents('form').on('submit', function (ev) { var input = $(this).find('input'), href = firstResult ? firstResult : RELATIVE_PATH + '/search/' + input.val(); ajaxify.go(href.replace(/^\//, '')); - setTimeout(function() { + setTimeout(function () { $('#acp-search .dropdown').removeClass('open'); $(input).blur(); }, 150); @@ -50,11 +50,11 @@ define(function() { return false; }); - $('#main-menu a').each(function(idx, link) { + $('#main-menu a').each(function (idx, link) { routes.push($(link).attr('href')); }); - input.on('keyup focus', function() { + input.on('keyup focus', function () { var $input = $(this), value = $input.val().toLowerCase(), menuItems = $('#acp-search .dropdown-menu').html(''); diff --git a/public/src/admin/modules/selectable.js b/public/src/admin/modules/selectable.js index 5e4bb5725f..6964f74924 100644 --- a/public/src/admin/modules/selectable.js +++ b/public/src/admin/modules/selectable.js @@ -2,10 +2,10 @@ /*globals define*/ -define('admin/modules/selectable', ['jqueryui'], function(jqueryui) { +define('admin/modules/selectable', ['jqueryui'], function (jqueryui) { var selectable = {}; - selectable.enable = function(containerEl, targets) { + selectable.enable = function (containerEl, targets) { $(containerEl).selectable({ filter: targets }); diff --git a/public/src/admin/settings.js b/public/src/admin/settings.js index d6436ccefc..ce0a17933f 100644 --- a/public/src/admin/settings.js +++ b/public/src/admin/settings.js @@ -1,16 +1,16 @@ 'use strict'; /*global define, app, socket, ajaxify */ -define('admin/settings', ['uploader'], function(uploader) { +define('admin/settings', ['uploader'], function (uploader) { var Settings = {}; - Settings.init = function() { + Settings.init = function () { console.warn('[deprecation] require(\'admin/settings\').init() has been deprecated, please call require(\'admin/settings\').prepare() directly instead.'); Settings.prepare(); }; - Settings.populateTOC = function() { - $('.settings-header').each(function() { + Settings.populateTOC = function () { + $('.settings-header').each(function () { var header = $(this).text(), anchor = header.toLowerCase().replace(/ /g, '-').trim(); @@ -19,7 +19,7 @@ define('admin/settings', ['uploader'], function(uploader) { }); }; - Settings.prepare = function(callback) { + Settings.prepare = function (callback) { // Populate the fields on the page from the config var fields = $('#content [data-field]'), numFields = fields.length, @@ -28,7 +28,7 @@ define('admin/settings', ['uploader'], function(uploader) { x, key, inputType, field; // Handle unsaved changes - $(fields).on('change', function() { + $(fields).on('change', function () { app.flags = app.flags || {}; app.flags._unsaved = true; }); @@ -66,11 +66,11 @@ define('admin/settings', ['uploader'], function(uploader) { } } - revertBtn.off('click').on('click', function() { + revertBtn.off('click').on('click', function () { ajaxify.refresh(); }); - saveBtn.off('click').on('click', function(e) { + saveBtn.off('click').on('click', function (e) { e.preventDefault(); saveFields(fields, function onFieldsSaved(err) { @@ -100,8 +100,8 @@ define('admin/settings', ['uploader'], function(uploader) { handleUploads(); - $('#clear-sitemap-cache').off('click').on('click', function() { - socket.emit('admin.settings.clearSitemapCache', function() { + $('#clear-sitemap-cache').off('click').on('click', function () { + socket.emit('admin.settings.clearSitemapCache', function () { app.alertSuccess('Sitemap Cache Cleared!'); }); return false; @@ -111,15 +111,15 @@ define('admin/settings', ['uploader'], function(uploader) { callback(); } - setTimeout(function() { + setTimeout(function () { $(window).trigger('action:admin.settingsLoaded'); }, 0); }; function handleUploads() { - $('#content input[data-action="upload"]').each(function() { + $('#content input[data-action="upload"]').each(function () { var uploadBtn = $(this); - uploadBtn.on('click', function() { + uploadBtn.on('click', function () { uploader.show({ title: uploadBtn.attr('data-title'), description: uploadBtn.attr('data-description'), @@ -127,7 +127,7 @@ define('admin/settings', ['uploader'], function(uploader) { params: {}, showHelp: uploadBtn.attr('data-help') ? uploadBtn.attr('data-help') === 1 : undefined, accept: uploadBtn.attr('data-accept') - }, function(image) { + }, function (image) { // need to move these into template, ex data-callback if (ajaxify.currentPage === 'admin/general/sounds') { ajaxify.refresh(); @@ -139,14 +139,14 @@ define('admin/settings', ['uploader'], function(uploader) { }); } - Settings.remove = function(key) { + Settings.remove = function (key) { socket.emit('admin.config.remove', key); }; function saveFields(fields, callback) { var data = {}; - fields.each(function() { + fields.each(function () { var field = $(this); var key = field.attr('data-field'), value, inputType; @@ -173,7 +173,7 @@ define('admin/settings', ['uploader'], function(uploader) { data[key] = value; }); - socket.emit('admin.config.setMultiple', data, function(err) { + socket.emit('admin.config.setMultiple', data, function (err) { if (err) { return callback(err); } diff --git a/public/src/admin/settings/email.js b/public/src/admin/settings/email.js index e404099800..d296c8aa25 100644 --- a/public/src/admin/settings/email.js +++ b/public/src/admin/settings/email.js @@ -1,23 +1,23 @@ "use strict"; /* global define, socket, app, ajaxify, ace */ -define('admin/settings/email', ['admin/settings'], function(settings) { +define('admin/settings/email', ['admin/settings'], function (settings) { var module = {}, emailEditor; - module.init = function() { + module.init = function () { configureEmailTester(); configureEmailEditor(); $(window).on('action:admin.settingsLoaded action:admin.settingsSaved', handleDigestHourChange); - $(window).on('action:admin.settingsSaved', function() { + $(window).on('action:admin.settingsSaved', function () { socket.emit('admin.user.restartJobs'); }); }; function configureEmailTester() { - $('button[data-action="email.test"]').off('click').on('click', function() { - socket.emit('admin.email.test', {template: $('#test-email').val()}, function(err) { + $('button[data-action="email.test"]').off('click').on('click', function () { + socket.emit('admin.email.test', {template: $('#test-email').val()}, function (err) { if (err) { return app.alertError(err.message); } @@ -34,10 +34,10 @@ define('admin/settings/email', ['admin/settings'], function(settings) { emailEditor.setTheme("ace/theme/twilight"); emailEditor.getSession().setMode("ace/mode/html"); - emailEditor.on('change', function() { + emailEditor.on('change', function () { var emailPath = $('#email-editor-selector').val(); var original; - ajaxify.data.emails.forEach(function(email) { + ajaxify.data.emails.forEach(function (email) { if (email.path === emailPath) { original = email.original; } @@ -46,8 +46,8 @@ define('admin/settings/email', ['admin/settings'], function(settings) { $('#email-editor-holder').val(newEmail !== original ? newEmail : ''); }); - $('button[data-action="email.revert"]').off('click').on('click', function() { - ajaxify.data.emails.forEach(function(email) { + $('button[data-action="email.revert"]').off('click').on('click', function () { + ajaxify.data.emails.forEach(function (email) { if (email.path === $('#email-editor-selector').val()) { emailEditor.getSession().setValue(email.original); $('#email-editor-holder').val(''); @@ -59,7 +59,7 @@ define('admin/settings/email', ['admin/settings'], function(settings) { } function updateEmailEditor() { - ajaxify.data.emails.forEach(function(email) { + ajaxify.data.emails.forEach(function (email) { if (email.path === $('#email-editor-selector').val()) { emailEditor.getSession().setValue(email.text); $('#email-editor-holder') @@ -78,7 +78,7 @@ define('admin/settings/email', ['admin/settings'], function(settings) { hour = 0; } - socket.emit('meta.getServerTime', {}, function(err, now) { + socket.emit('meta.getServerTime', {}, function (err, now) { if (err) { return app.alertError(err.message); } diff --git a/public/src/admin/settings/general.js b/public/src/admin/settings/general.js index 0c36db401c..fc0d7d540f 100644 --- a/public/src/admin/settings/general.js +++ b/public/src/admin/settings/general.js @@ -1,20 +1,20 @@ "use strict"; /* global define, socket */ -define('admin/settings/general', ['admin/settings'], function(Settings) { +define('admin/settings/general', ['admin/settings'], function (Settings) { var Module = {} - Module.init = function() { - $('button[data-action="removeLogo"]').on('click', function() { + Module.init = function () { + $('button[data-action="removeLogo"]').on('click', function () { $('input[data-field="brand:logo"]').val(''); }); - $('button[data-action="removeFavicon"]').on('click', function() { + $('button[data-action="removeFavicon"]').on('click', function () { $('input[data-field="brand:favicon"]').val(''); }); - $('button[data-action="removeTouchIcon"]').on('click', function() { + $('button[data-action="removeTouchIcon"]').on('click', function () { $('input[data-field="brand:touchIcon"]').val(''); }); - $('button[data-action="removeOgImage"]').on('click', function() { + $('button[data-action="removeOgImage"]').on('click', function () { $('input[data-field="removeOgImage"]').val(''); }); }; diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index b4ad44e51b..955acab7bb 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -3,7 +3,7 @@ var ajaxify = ajaxify || {}; -$(document).ready(function() { +$(document).ready(function () { var location = document.location || window.location; var rootUrl = location.protocol + '//' + (location.hostname || location.host) + (location.port ? ':' + location.port : ''); var apiXHR = null; @@ -14,7 +14,7 @@ $(document).ready(function() { // Dumb hack to fool ajaxify into thinking translator is still a global // When ajaxify is migrated to a require.js module, then this can be merged into the "define" call - require(['translator'], function(_translator) { + require(['translator'], function (_translator) { translator = _translator; }); @@ -27,7 +27,7 @@ $(document).ready(function() { url: ev.state.returnPath }, ev.state.returnPath, config.relative_path + '/' + ev.state.returnPath); } else if (ev.state.url !== undefined) { - ajaxify.go(ev.state.url, function() { + ajaxify.go(ev.state.url, function () { $(window).trigger('action:popstate', {url: ev.state.url}); }, true); } @@ -41,7 +41,7 @@ $(document).ready(function() { if (ajaxify.reconnectAction) { $(window).off('action:reconnected', ajaxify.reconnectAction); } - ajaxify.reconnectAction = function(e) { + ajaxify.reconnectAction = function (e) { ajaxify.go(url, callback, quiet); $(window).off(e); }; @@ -75,7 +75,7 @@ $(document).ready(function() { previousBodyClass = ajaxify.data.bodyClass; $('#footer, #content').removeClass('hide').addClass('ajaxifying'); - ajaxify.loadData(url, function(err, data) { + ajaxify.loadData(url, function (err, data) { if (!err || (err && err.data && (parseInt(err.data.status, 10) !== 302 && parseInt(err.data.status, 10) !== 308))) { ajaxify.updateHistory(url, quiet); @@ -88,7 +88,7 @@ $(document).ready(function() { retry = true; app.template = data.template.name; - require(['translator'], function(translator) { + require(['translator'], function (translator) { translator.load(config.defaultLang, data.template.name); renderTemplate(url, data.template.name, data, callback); }); @@ -97,7 +97,7 @@ $(document).ready(function() { return true; }; - ajaxify.handleRedirects = function(url) { + ajaxify.handleRedirects = function (url) { url = ajaxify.removeRelativePath(url.replace(/\/$/, '')).toLowerCase(); var isClientToAdmin = url.startsWith('admin') && window.location.pathname.indexOf(RELATIVE_PATH + '/admin') !== 0; var isAdminToClient = !url.startsWith('admin') && window.location.pathname.indexOf(RELATIVE_PATH + '/admin') === 0; @@ -110,7 +110,7 @@ $(document).ready(function() { }; - ajaxify.start = function(url) { + ajaxify.start = function (url) { url = ajaxify.removeRelativePath(url.replace(/^\/|\/$/g, '')); var payload = { @@ -122,7 +122,7 @@ $(document).ready(function() { return payload.url; }; - ajaxify.updateHistory = function(url, quiet) { + ajaxify.updateHistory = function (url, quiet) { ajaxify.currentPage = url.split(/[?#]/)[0]; if (window.history && window.history.pushState) { window.history[!quiet ? 'pushState' : 'replaceState']({ @@ -171,8 +171,8 @@ $(document).ready(function() { function renderTemplate(url, tpl_url, data, callback) { $(window).trigger('action:ajaxify.loadingTemplates', {}); - templates.parse(tpl_url, data, function(template) { - translator.translate(template, function(translatedTemplate) { + templates.parse(tpl_url, data, function (template) { + translator.translate(template, function (translatedTemplate) { translatedTemplate = translator.unescape(translatedTemplate); $('body').removeClass(previousBodyClass).addClass(data.bodyClass); $('#content').html(translatedTemplate); @@ -190,7 +190,7 @@ $(document).ready(function() { }); } - ajaxify.end = function(url, tpl_url) { + ajaxify.end = function (url, tpl_url) { function done() { if (--count === 0) { $(window).trigger('action:ajaxify.end', {url: url, tpl_url: tpl_url, title: ajaxify.data.title}); @@ -207,7 +207,7 @@ $(document).ready(function() { app.processPage(); }; - ajaxify.parseData = function() { + ajaxify.parseData = function () { var dataEl = $('#ajaxify-data'); if (dataEl.length) { ajaxify.data = JSON.parse(dataEl.text()); @@ -215,18 +215,18 @@ $(document).ready(function() { } }; - ajaxify.removeRelativePath = function(url) { + ajaxify.removeRelativePath = function (url) { if (url.startsWith(RELATIVE_PATH.slice(1))) { url = url.slice(RELATIVE_PATH.length); } return url; }; - ajaxify.refresh = function(callback) { + ajaxify.refresh = function (callback) { ajaxify.go(ajaxify.currentPage + window.location.search + window.location.hash, callback, true); }; - ajaxify.loadScript = function(tpl_url, callback) { + ajaxify.loadScript = function (tpl_url, callback) { var location = !app.inAdmin ? 'forum/' : ''; if (tpl_url.startsWith('admin')) { @@ -239,7 +239,7 @@ $(document).ready(function() { $(window).trigger('action:script.load', data); - require(data.scripts, function(script) { + require(data.scripts, function (script) { if (script && script.init) { script.init(); } @@ -250,7 +250,7 @@ $(document).ready(function() { }); }; - ajaxify.loadData = function(url, callback) { + ajaxify.loadData = function (url, callback) { url = ajaxify.removeRelativePath(url); $(window).trigger('action:ajaxify.loadingData', {url: url}); @@ -258,7 +258,7 @@ $(document).ready(function() { apiXHR = $.ajax({ url: RELATIVE_PATH + '/api/' + url, cache: false, - success: function(data) { + success: function (data) { if (!data) { return; } @@ -270,7 +270,7 @@ $(document).ready(function() { callback(null, data); }, - error: function(data, textStatus) { + error: function (data, textStatus) { if (data.status === 0 && textStatus === 'error') { data.status = 500; } @@ -282,17 +282,17 @@ $(document).ready(function() { }); }; - ajaxify.loadTemplate = function(template, callback) { + ajaxify.loadTemplate = function (template, callback) { if (templates.cache[template]) { callback(templates.cache[template]); } else { $.ajax({ url: RELATIVE_PATH + '/templates/' + template + '.tpl' + (config['cache-buster'] ? '?v=' + config['cache-buster'] : ''), type: 'GET', - success: function(data) { + success: function (data) { callback(data.toString()); }, - error: function(error) { + error: function (error) { throw new Error("Unable to load template: " + template + " (" + error.statusText + ")"); } }); @@ -309,7 +309,7 @@ $(document).ready(function() { // Enhancing all anchors to ajaxify... $(document.body).on('click', 'a', function (e) { var _self = this; - var process = function() { + var process = function () { if (!e.ctrlKey && !e.shiftKey && !e.metaKey && e.which === 1) { if (internalLink) { var pathname = this.href.replace(rootUrl + RELATIVE_PATH + '/', ''); @@ -358,8 +358,8 @@ $(document).ready(function() { } if (app.flags && app.flags.hasOwnProperty('_unsaved') && app.flags._unsaved === true) { - translator.translate('[[global:unsaved-changes]]', function(text) { - bootbox.confirm(text, function(navigate) { + translator.translate('[[global:unsaved-changes]]', function (text) { + bootbox.confirm(text, function (navigate) { if (navigate) { app.flags._unsaved = false; process.call(_self); @@ -382,7 +382,7 @@ $(document).ready(function() { app.load(); - $('[type="text/tpl"][data-template]').each(function() { + $('[type="text/tpl"][data-template]').each(function () { templates.cache[$(this).attr('data-template')] = $('
    ').html($(this).html()).text(); $(this).parent().remove(); }); diff --git a/public/src/app.js b/public/src/app.js index 46f0419709..442e57f373 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -19,7 +19,7 @@ app.cacheBuster = null; locale: config.userLang }); - app.load = function() { + app.load = function () { app.loadProgressiveStylesheet(); var url = ajaxify.start(window.location.pathname.slice(1) + window.location.search + window.location.hash); @@ -33,15 +33,15 @@ app.cacheBuster = null; app.handleSearch(); } - $('body').on('click', '#new_topic', function(){ + $('body').on('click', '#new_topic', function (){ app.newTopic(); }); - require(['components'], function(components) { + require(['components'], function (components) { components.get('user/logout').on('click', app.logout); }); - Visibility.change(function(event, state){ + Visibility.change(function (event, state){ if (state === 'visible') { app.isFocused = true; app.alternatingTitle(''); @@ -56,7 +56,7 @@ app.cacheBuster = null; app.showEmailConfirmWarning(); socket.removeAllListeners('event:nodebb.ready'); - socket.on('event:nodebb.ready', function(data) { + socket.on('event:nodebb.ready', function (data) { if (!app.cacheBuster || app.cacheBuster !== data['cache-buster']) { app.cacheBuster = data['cache-buster']; @@ -64,7 +64,7 @@ app.cacheBuster = null; alert_id: 'forum_updated', title: '[[global:updated.title]]', message: '[[global:updated.message]]', - clickfn: function() { + clickfn: function () { window.location.reload(); }, type: 'warning' @@ -72,7 +72,7 @@ app.cacheBuster = null; } }); - require(['taskbar', 'helpers', 'forum/pagination'], function(taskbar, helpers, pagination) { + require(['taskbar', 'helpers', 'forum/pagination'], function (taskbar, helpers, pagination) { taskbar.init(); // templates.js helpers @@ -84,14 +84,14 @@ app.cacheBuster = null; }); }; - app.logout = function() { + app.logout = function () { $(window).trigger('action:app.logout'); $.ajax(config.relative_path + '/logout', { type: 'POST', headers: { 'x-csrf-token': config.csrf_token }, - success: function() { + success: function () { var payload = { next: config.relative_path + '/' }; @@ -103,13 +103,13 @@ app.cacheBuster = null; }; app.alert = function (params) { - require(['alerts'], function(alerts) { + require(['alerts'], function (alerts) { alerts.alert(params); }); }; - app.removeAlert = function(id) { - require(['alerts'], function(alerts) { + app.removeAlert = function (id) { + require(['alerts'], function (alerts) { alerts.remove(id); }); }; @@ -136,7 +136,7 @@ app.cacheBuster = null; }); }; - app.handleInvalidSession = function() { + app.handleInvalidSession = function () { if (app.flags && app.flags._sessionRefresh) { return; } @@ -144,13 +144,13 @@ app.cacheBuster = null; app.flags = app.flags || {}; app.flags._sessionRefresh = true; - require(['translator'], function(translator) { - translator.translate('[[error:invalid-session-text]]', function(translated) { + require(['translator'], function (translator) { + translator.translate('[[error:invalid-session-text]]', function (translated) { bootbox.alert({ title: '[[error:invalid-session]]', message: translated, closeButton: false, - callback: function() { + callback: function () { window.location.reload(); } }); @@ -159,13 +159,13 @@ app.cacheBuster = null; }; app.enterRoom = function (room, callback) { - callback = callback || function() {}; + callback = callback || function () {}; if (socket && app.user.uid && app.currentRoom !== room) { var previousRoom = app.currentRoom; app.currentRoom = room; socket.emit('meta.rooms.enter', { enter: room - }, function(err) { + }, function (err) { if (err) { app.currentRoom = previousRoom; return app.alertError(err.message); @@ -176,11 +176,11 @@ app.cacheBuster = null; } }; - app.leaveCurrentRoom = function() { + app.leaveCurrentRoom = function () { if (!socket) { return; } - socket.emit('meta.rooms.leaveCurrent', function(err) { + socket.emit('meta.rooms.leaveCurrent', function (err) { if (err) { return app.alertError(err.message); } @@ -196,9 +196,9 @@ app.cacheBuster = null; } } - app.createUserTooltips = function(els, placement) { + app.createUserTooltips = function (els, placement) { els = els || $('body'); - els.find('.avatar,img[title].teaser-pic,img[title].user-img,div.user-icon,span.user-icon').each(function() { + els.find('.avatar,img[title].teaser-pic,img[title].user-img,div.user-icon,span.user-icon').each(function () { if (!utils.isTouchDevice()) { $(this).tooltip({ placement: placement || $(this).attr('title-placement') || 'top', @@ -208,7 +208,7 @@ app.cacheBuster = null; }); }; - app.createStatusTooltips = function() { + app.createStatusTooltips = function () { if (!utils.isTouchDevice()) { $('body').tooltip({ selector:'.fa-circle.status', @@ -217,9 +217,9 @@ app.cacheBuster = null; } }; - app.replaceSelfLinks = function(selector) { + app.replaceSelfLinks = function (selector) { selector = selector || $('a'); - selector.each(function() { + selector.each(function () { var href = $(this).attr('href'); if (href && app.user.userslug && href.indexOf('user/_self_') !== -1) { $(this).attr('href', href.replace(/user\/_self_/g, 'user/' + app.user.userslug)); @@ -281,11 +281,11 @@ app.cacheBuster = null; if (chat.modalExists(roomId)) { loadAndCenter(chat.getModal(roomId)); } else { - socket.emit('modules.chats.loadRoom', {roomId: roomId, uid: uid || app.user.uid}, function(err, roomData) { + socket.emit('modules.chats.loadRoom', {roomId: roomId, uid: uid || app.user.uid}, function (err, roomData) { if (err) { return app.alertError(err.message); } - roomData.users = roomData.users.filter(function(user) { + roomData.users = roomData.users.filter(function (user) { return user && parseInt(user.uid, 10) !== parseInt(app.user.uid, 10); }); roomData.uid = uid || app.user.uid; @@ -296,12 +296,12 @@ app.cacheBuster = null; }; app.newChat = function (touid, callback) { - callback = callback || function() {}; + callback = callback || function () {}; if (!app.user.uid) { return app.alertError('[[error:not-logged-in]]'); } - socket.emit('modules.chats.newRoom', {touid: touid}, function(err, roomId) { + socket.emit('modules.chats.newRoom', {touid: touid}, function (err, roomId) { if (err) { return app.alertError(err.message); } @@ -332,14 +332,14 @@ app.cacheBuster = null; titleObj.titles[0] = window.document.title; } - require(['translator'], function(translator) { - translator.translate(title, function(translated) { + require(['translator'], function (translator) { + translator.translate(title, function (translated) { titleObj.titles[1] = translated; if (titleObj.interval) { clearInterval(titleObj.interval); } - titleObj.interval = setInterval(function() { + titleObj.interval = setInterval(function () { var title = titleObj.titles[titleObj.titles.indexOf(window.document.title) ^ 1]; if (title) { window.document.title = $('
    ').html(title).text(); @@ -357,23 +357,23 @@ app.cacheBuster = null; } }; - app.refreshTitle = function(title) { + app.refreshTitle = function (title) { if (!title) { return; } - require(['translator'], function(translator) { + require(['translator'], function (translator) { title = config.titleLayout.replace(/{/g, '{').replace(/}/g, '}') - .replace('{pageTitle}', function() { return title; }) - .replace('{browserTitle}', function() { return config.browserTitle; }); + .replace('{pageTitle}', function () { return title; }) + .replace('{browserTitle}', function () { return config.browserTitle; }); - translator.translate(title, function(translated) { + translator.translate(title, function (translated) { titleObj.titles[0] = translated; app.alternatingTitle(''); }); }); }; - app.toggleNavbar = function(state) { + app.toggleNavbar = function (state) { var navbarEl = $('.navbar'); if (navbarEl) { navbarEl.toggleClass('hidden', !!!state); @@ -385,7 +385,7 @@ app.cacheBuster = null; if (env === 'xs' || env === 'sm') { return; } - $('#header-menu li a[title]').each(function() { + $('#header-menu li a[title]').each(function () { if (!utils.isTouchDevice()) { $(this).tooltip({ placement: 'bottom', @@ -417,7 +417,7 @@ app.cacheBuster = null; searchFields = $("#search-fields"), searchInput = $('#search-fields input'); - $('#search-form .advanced-search-link').on('mousedown', function() { + $('#search-form .advanced-search-link').on('mousedown', function () { ajaxify.go('/search'); }); @@ -429,7 +429,7 @@ app.cacheBuster = null; searchButton.removeClass('hidden'); } - searchButton.on('click', function(e) { + searchButton.on('click', function (e) { if (!config.loggedIn && !config.allowGuestSearching) { app.alert({ message:'[[error:search-requires-login]]', @@ -446,10 +446,10 @@ app.cacheBuster = null; $('#search-form').on('submit', function () { var input = $(this).find('input'); - require(['search'], function(search) { + require(['search'], function (search) { var data = search.getSearchPreferences(); data.term = input.val(); - search.query(data, function() { + search.query(data, function () { input.val(''); }); }); @@ -457,16 +457,16 @@ app.cacheBuster = null; }); }; - app.prepareSearch = function() { + app.prepareSearch = function () { $("#search-fields").removeClass('hidden'); $("#search-button").addClass('hidden'); $('#search-fields input').focus(); }; function handleStatusChange() { - $('[component="header/usercontrol"] [data-status]').off('click').on('click', function(e) { + $('[component="header/usercontrol"] [data-status]').off('click').on('click', function (e) { var status = $(this).attr('data-status'); - socket.emit('user.setStatus', status, function(err) { + socket.emit('user.setStatus', status, function (err) { if(err) { return app.alertError(err.message); } @@ -480,13 +480,13 @@ app.cacheBuster = null; }); } - app.updateUserStatus = function(el, status) { + app.updateUserStatus = function (el, status) { if (!el.length) { return; } - require(['translator'], function(translator) { - translator.translate('[[global:' + status + ']]', function(translated) { + require(['translator'], function (translator) { + translator.translate('[[global:' + status + ']]', function (translated) { el.removeClass('online offline dnd away') .addClass(status) .attr('title', translated) @@ -502,7 +502,7 @@ app.cacheBuster = null; }); }; - app.loadJQueryUI = function(callback) { + app.loadJQueryUI = function (callback) { if (typeof $().autocomplete === 'function') { return callback(); } @@ -514,7 +514,7 @@ app.cacheBuster = null; document.head.appendChild(scriptEl); }; - app.showEmailConfirmWarning = function(err) { + app.showEmailConfirmWarning = function (err) { if (!config.requireEmailConfirmation || !app.user.uid) { return; } @@ -526,16 +526,16 @@ app.cacheBuster = null; if (!app.user.email) { msg.message = '[[error:no-email-to-confirm]]'; - msg.clickfn = function() { + msg.clickfn = function () { app.removeAlert('email_confirm'); ajaxify.go('user/' + app.user.userslug + '/edit'); }; app.alert(msg); } else if (!app.user['email:confirmed'] && !app.user.isEmailConfirmSent) { msg.message = err ? err.message : '[[error:email-not-confirmed]]'; - msg.clickfn = function() { + msg.clickfn = function () { app.removeAlert('email_confirm'); - socket.emit('user.emailConfirm', {}, function(err) { + socket.emit('user.emailConfirm', {}, function (err) { if (err) { return app.alertError(err.message); } @@ -550,30 +550,30 @@ app.cacheBuster = null; } }; - app.parseAndTranslate = function(template, blockName, data, callback) { - require(['translator'], function(translator) { + app.parseAndTranslate = function (template, blockName, data, callback) { + require(['translator'], function (translator) { function translate(html, callback) { - translator.translate(html, function(translatedHTML) { + translator.translate(html, function (translatedHTML) { translatedHTML = translator.unescape(translatedHTML); callback($(translatedHTML)); }); } if (typeof blockName === 'string') { - templates.parse(template, blockName, data, function(html) { + templates.parse(template, blockName, data, function (html) { translate(html, callback); }); } else { callback = data; data = blockName; - templates.parse(template, data, function(html) { + templates.parse(template, data, function (html) { translate(html, callback); }); } }); }; - app.loadProgressiveStylesheet = function() { + app.loadProgressiveStylesheet = function () { var linkEl = document.createElement('link'); linkEl.rel = 'stylesheet'; linkEl.href = config.relative_path + '/js-enabled.css'; diff --git a/public/src/client/account/best.js b/public/src/client/account/best.js index 27384f9638..abc88620bf 100644 --- a/public/src/client/account/best.js +++ b/public/src/client/account/best.js @@ -2,10 +2,10 @@ /* globals define */ -define('forum/account/best', ['forum/account/header', 'forum/account/posts'], function(header, posts) { +define('forum/account/best', ['forum/account/header', 'forum/account/posts'], function (header, posts) { var Best = {}; - Best.init = function() { + Best.init = function () { header.init(); $('[component="post/content"] img:not(.not-responsive)').addClass('img-responsive'); diff --git a/public/src/client/account/bookmarks.js b/public/src/client/account/bookmarks.js index d1aca2080e..3f9b848b75 100644 --- a/public/src/client/account/bookmarks.js +++ b/public/src/client/account/bookmarks.js @@ -2,10 +2,10 @@ /* globals define */ -define('forum/account/bookmarks', ['forum/account/header', 'forum/account/posts'], function(header, posts) { +define('forum/account/bookmarks', ['forum/account/header', 'forum/account/posts'], function (header, posts) { var Bookmarks = {}; - Bookmarks.init = function() { + Bookmarks.init = function () { header.init(); $('[component="post/content"] img:not(.not-responsive)').addClass('img-responsive'); diff --git a/public/src/client/account/downvoted.js b/public/src/client/account/downvoted.js index 1a3758e215..b84e5da6bf 100644 --- a/public/src/client/account/downvoted.js +++ b/public/src/client/account/downvoted.js @@ -2,10 +2,10 @@ /* globals define */ -define('forum/account/downvoted', ['forum/account/header', 'forum/account/posts'], function(header, posts) { +define('forum/account/downvoted', ['forum/account/header', 'forum/account/posts'], function (header, posts) { var Downvoted = {}; - Downvoted.init = function() { + Downvoted.init = function () { header.init(); $('[component="post/content"] img:not(.not-responsive)').addClass('img-responsive'); diff --git a/public/src/client/account/edit.js b/public/src/client/account/edit.js index 51632481cb..915e2b5079 100644 --- a/public/src/client/account/edit.js +++ b/public/src/client/account/edit.js @@ -2,16 +2,16 @@ /* globals define, ajaxify, socket, app, config, templates, bootbox */ -define('forum/account/edit', ['forum/account/header', 'uploader', 'translator', 'components'], function(header, uploader, translator, components) { +define('forum/account/edit', ['forum/account/header', 'uploader', 'translator', 'components'], function (header, uploader, translator, components) { var AccountEdit = {}; - AccountEdit.init = function() { + AccountEdit.init = function () { header.init(); $('#submitBtn').on('click', updateProfile); - app.loadJQueryUI(function() { + app.loadJQueryUI(function () { $('#inputBirthday').datepicker({ changeMonth: true, changeYear: true, @@ -39,7 +39,7 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator', aboutme: $('#inputAboutMe').val() }; - socket.emit('user.updateProfile', userData, function(err, data) { + socket.emit('user.updateProfile', userData, function (err, data) { if (err) { return app.alertError(err.message); } @@ -70,14 +70,14 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator', function handleImageChange() { - $('#changePictureBtn').on('click', function() { - socket.emit('user.getProfilePictures', {uid: ajaxify.data.uid}, function(err, pictures) { + $('#changePictureBtn').on('click', function () { + socket.emit('user.getProfilePictures', {uid: ajaxify.data.uid}, function (err, pictures) { if (err) { return app.alertError(err.message); } // boolean to signify whether an uploaded picture is present in the pictures list - var uploaded = pictures.reduce(function(memo, cur) { + var uploaded = pictures.reduce(function (memo, cur) { return memo || cur.type === 'uploaded'; }, false); @@ -85,8 +85,8 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator', pictures: pictures, uploaded: uploaded, allowProfileImageUploads: ajaxify.data.allowProfileImageUploads - }, function(html) { - translator.translate(html, function(html) { + }, function (html) { + translator.translate(html, function (html) { var modal = bootbox.dialog({ className: 'picture-switcher', title: '[[user:change_picture]]', @@ -124,7 +124,7 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator', if (!ajaxify.data.picture) { modal.find('.list-group-item .user-icon').parents('.list-group-item').addClass('active'); } else { - modal.find('.list-group-item img').each(function() { + modal.find('.list-group-item img').each(function () { if (this.getAttribute('src') === ajaxify.data.picture) { $(this).parents('.list-group-item').addClass('active'); } @@ -135,7 +135,7 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator', function saveSelection() { var type = modal.find('.list-group-item.active').attr('data-type'); - changeUserPicture(type, function(err) { + changeUserPicture(type, function (err) { if (err) { return app.alertError(err.message); } @@ -157,9 +157,9 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator', } function handleAccountDelete() { - $('#deleteAccountBtn').on('click', function() { - translator.translate('[[user:delete_account_confirm]]', function(translated) { - var modal = bootbox.confirm(translated + '

    ', function(confirm) { + $('#deleteAccountBtn').on('click', function () { + translator.translate('[[user:delete_account_confirm]]', function (translated) { + var modal = bootbox.confirm(translated + '

    ', function (confirm) { if (!confirm) { return; } @@ -168,7 +168,7 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator', app.alertError('[[error:invalid-username]]'); return false; } else { - socket.emit('user.deleteAccount', {}, function(err) { + socket.emit('user.deleteAccount', {}, function (err) { if (err) { return app.alertError(err.message); } @@ -178,7 +178,7 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator', } }); - modal.on('shown.bs.modal', function() { + modal.on('shown.bs.modal', function () { modal.find('input').focus(); }); }); @@ -196,7 +196,7 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator', $('#user-current-picture, img.avatar').attr('src', urlOnServer); ajaxify.data.uploadedpicture = urlOnServer; } else { - ajaxify.refresh(function() { + ajaxify.refresh(function () { $('#user-current-picture, img.avatar').attr('src', urlOnServer); }); } @@ -209,7 +209,7 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator', } } - modal.find('[data-action="upload"]').on('click', function() { + modal.find('[data-action="upload"]').on('click', function () { modal.modal('hide'); uploader.show({ @@ -219,26 +219,26 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator', title: '[[user:upload_picture]]', description: '[[user:upload_a_picture]]', accept: '.png,.jpg,.bmp' - }, function(imageUrlOnServer) { + }, function (imageUrlOnServer) { onUploadComplete(imageUrlOnServer); }); return false; }); - modal.find('[data-action="upload-url"]').on('click', function() { + modal.find('[data-action="upload-url"]').on('click', function () { modal.modal('hide'); - templates.parse('partials/modals/upload_picture_from_url_modal', {}, function(html) { - translator.translate(html, function(html) { + templates.parse('partials/modals/upload_picture_from_url_modal', {}, function (html) { + translator.translate(html, function (html) { var uploadModal = $(html); uploadModal.modal('show'); - uploadModal.find('.upload-btn').on('click', function() { + uploadModal.find('.upload-btn').on('click', function () { var url = uploadModal.find('#uploadFromUrl').val(); if (!url) { return; } - socket.emit('user.uploadProfileImageFromUrl', {url: url, uid: ajaxify.data.theirid}, function(err, imageUrlOnServer) { + socket.emit('user.uploadProfileImageFromUrl', {url: url, uid: ajaxify.data.theirid}, function (err, imageUrlOnServer) { if (err) { return app.alertError(err.message); } @@ -255,8 +255,8 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator', return false; }); - modal.find('[data-action="remove-uploaded"]').on('click', function() { - socket.emit('user.removeUploadedPicture', {uid: ajaxify.data.theirid}, function(err) { + modal.find('[data-action="remove-uploaded"]').on('click', function () { + socket.emit('user.removeUploadedPicture', {uid: ajaxify.data.theirid}, function (err) { modal.modal('hide'); if (err) { return app.alertError(err.message); @@ -267,9 +267,9 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator', } function handleEmailConfirm() { - $('#confirm-email').on('click', function() { + $('#confirm-email').on('click', function () { var btn = $(this).attr('disabled', true); - socket.emit('user.emailConfirm', {}, function(err) { + socket.emit('user.emailConfirm', {}, function (err) { btn.removeAttr('disabled'); if (err) { return app.alertError(err.message); @@ -294,7 +294,7 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator', var el = $('#inputSignature'); $('#signatureCharCountLeft').html(getCharsLeft(el, ajaxify.data.maximumSignatureLength)); - el.on('keyup change', function() { + el.on('keyup change', function () { $('#signatureCharCountLeft').html(getCharsLeft(el, ajaxify.data.maximumSignatureLength)); }); } @@ -303,7 +303,7 @@ define('forum/account/edit', ['forum/account/header', 'uploader', 'translator', var el = $('#inputAboutMe'); $('#aboutMeCharCountLeft').html(getCharsLeft(el, ajaxify.data.maximumAboutMeLength)); - el.on('keyup change', function() { + el.on('keyup change', function () { $('#aboutMeCharCountLeft').html(getCharsLeft(el, ajaxify.data.maximumAboutMeLength)); }); } diff --git a/public/src/client/account/edit/email.js b/public/src/client/account/edit/email.js index 1772f76c49..df998bead0 100644 --- a/public/src/client/account/edit/email.js +++ b/public/src/client/account/edit/email.js @@ -2,10 +2,10 @@ /* globals define, ajaxify, socket, app */ -define('forum/account/edit/email', ['forum/account/header'], function(header) { +define('forum/account/edit/email', ['forum/account/header'], function (header) { var AccountEditEmail = {}; - AccountEditEmail.init = function() { + AccountEditEmail.init = function () { header.init(); $('#submitBtn').on('click', function () { @@ -26,7 +26,7 @@ define('forum/account/edit/email', ['forum/account/header'], function(header) { var btn = $(this); btn.addClass('disabled').find('i').removeClass('hide'); - socket.emit('user.changeUsernameEmail', userData, function(err) { + socket.emit('user.changeUsernameEmail', userData, function (err) { btn.removeClass('disabled').find('i').addClass('hide'); if (err) { return app.alertError(err.message); diff --git a/public/src/client/account/edit/password.js b/public/src/client/account/edit/password.js index cadf12c146..a123959804 100644 --- a/public/src/client/account/edit/password.js +++ b/public/src/client/account/edit/password.js @@ -2,10 +2,10 @@ /* globals define, ajaxify, socket, app, utils */ -define('forum/account/edit/password', ['forum/account/header', 'translator'], function(header, translator) { +define('forum/account/edit/password', ['forum/account/header', 'translator'], function (header, translator) { var AccountEditPassword = {}; - AccountEditPassword.init = function() { + AccountEditPassword.init = function () { header.init(); handlePasswordChange(); @@ -56,7 +56,7 @@ define('forum/account/edit/password', ['forum/account/header', 'translator'], fu password.on('blur', onPasswordChanged); password_confirm.on('blur', onPasswordConfirmChanged); - $('#changePasswordBtn').on('click', function() { + $('#changePasswordBtn').on('click', function () { onPasswordChanged(); onPasswordConfirmChanged(); @@ -67,7 +67,7 @@ define('forum/account/edit/password', ['forum/account/header', 'translator'], fu 'currentPassword': currentPassword.val(), 'newPassword': password.val(), 'uid': ajaxify.data.theirid - }, function(err) { + }, function (err) { btn.removeClass('disabled').find('i').addClass('hide'); currentPassword.val(''); password.val(''); @@ -97,7 +97,7 @@ define('forum/account/edit/password', ['forum/account/header', 'translator'], fu } function showError(element, msg) { - translator.translate(msg, function(msg) { + translator.translate(msg, function (msg) { element.html(msg); element.parent() diff --git a/public/src/client/account/edit/username.js b/public/src/client/account/edit/username.js index 64f9baa0bc..cb924a3f53 100644 --- a/public/src/client/account/edit/username.js +++ b/public/src/client/account/edit/username.js @@ -2,10 +2,10 @@ /* globals define, ajaxify, socket, app, utils, config */ -define('forum/account/edit/username', ['forum/account/header'], function(header) { +define('forum/account/edit/username', ['forum/account/header'], function (header) { var AccountEditUsername = {}; - AccountEditUsername.init = function() { + AccountEditUsername.init = function () { header.init(); $('#submitBtn').on('click', function updateUsername() { @@ -25,7 +25,7 @@ define('forum/account/edit/username', ['forum/account/header'], function(header) var btn = $(this); btn.addClass('disabled').find('i').removeClass('hide'); - socket.emit('user.changeUsernameEmail', userData, function(err, data) { + socket.emit('user.changeUsernameEmail', userData, function (err, data) { btn.removeClass('disabled').find('i').addClass('hide'); if (err) { return app.alertError(err.message); diff --git a/public/src/client/account/followers.js b/public/src/client/account/followers.js index 8a2d15f0b0..22970327fb 100644 --- a/public/src/client/account/followers.js +++ b/public/src/client/account/followers.js @@ -2,10 +2,10 @@ /* globals define */ -define('forum/account/followers', ['forum/account/header'], function(header) { +define('forum/account/followers', ['forum/account/header'], function (header) { var Followers = {}; - Followers.init = function() { + Followers.init = function () { header.init(); }; diff --git a/public/src/client/account/following.js b/public/src/client/account/following.js index 04230fb979..dff2f92709 100644 --- a/public/src/client/account/following.js +++ b/public/src/client/account/following.js @@ -2,10 +2,10 @@ /* globals define */ -define('forum/account/following', ['forum/account/header'], function(header) { +define('forum/account/following', ['forum/account/header'], function (header) { var Following = {}; - Following.init = function() { + Following.init = function () { header.init(); }; diff --git a/public/src/client/account/groups.js b/public/src/client/account/groups.js index e4c932161d..f8fe55fdd9 100644 --- a/public/src/client/account/groups.js +++ b/public/src/client/account/groups.js @@ -2,15 +2,15 @@ /* globals ajaxify, define, app, socket, utils */ -define('forum/account/groups', ['forum/account/header'], function(header) { +define('forum/account/groups', ['forum/account/header'], function (header) { var AccountTopics = {}; - AccountTopics.init = function() { + AccountTopics.init = function () { header.init(); var groupsEl = $('#groups-list'); - groupsEl.on('click', '.list-cover', function() { + groupsEl.on('click', '.list-cover', function () { var groupSlug = $(this).parents('[data-slug]').attr('data-slug'); ajaxify.go('groups/' + groupSlug); diff --git a/public/src/client/account/header.js b/public/src/client/account/header.js index 0c65653e0f..d29b58c05b 100644 --- a/public/src/client/account/header.js +++ b/public/src/client/account/header.js @@ -6,11 +6,11 @@ define('forum/account/header', [ 'uploader', 'components', 'translator' -], function(coverPhoto, uploader, components, translator) { +], function (coverPhoto, uploader, components, translator) { var AccountHeader = {}; var isAdminOrSelfOrGlobalMod; - AccountHeader.init = function() { + AccountHeader.init = function () { isAdminOrSelfOrGlobalMod = ajaxify.data.isAdmin || ajaxify.data.isSelf || ajaxify.data.isGlobalModerator; hidePrivateLinks(); @@ -20,16 +20,16 @@ define('forum/account/header', [ setupCoverPhoto(); } - components.get('account/follow').on('click', function() { + components.get('account/follow').on('click', function () { toggleFollow('follow'); }); - components.get('account/unfollow').on('click', function() { + components.get('account/unfollow').on('click', function () { toggleFollow('unfollow'); }); - components.get('account/chat').on('click', function() { - socket.emit('modules.chats.hasPrivateChat', ajaxify.data.uid, function(err, roomId) { + components.get('account/chat').on('click', function () { + socket.emit('modules.chats.hasPrivateChat', ajaxify.data.uid, function (err, roomId) { if (err) { return app.alertError(err.message); } @@ -53,7 +53,7 @@ define('forum/account/header', [ } function selectActivePill() { - $('.account-sub-links li').removeClass('active').each(function() { + $('.account-sub-links li').removeClass('active').each(function () { var href = $(this).find('a').attr('href'); if (decodeURIComponent(href) === decodeURIComponent(window.location.pathname)) { @@ -65,20 +65,20 @@ define('forum/account/header', [ function setupCoverPhoto() { coverPhoto.init(components.get('account/cover'), - function(imageData, position, callback) { + function (imageData, position, callback) { socket.emit('user.updateCover', { uid: ajaxify.data.uid, imageData: imageData, position: position }, callback); }, - function() { + function () { uploader.show({ title: '[[user:upload_cover_picture]]', route: config.relative_path + '/api/user/' + ajaxify.data.userslug + '/uploadcover', params: {uid: ajaxify.data.uid }, accept: '.png,.jpg,.bmp' - }, function(imageUrlOnServer) { + }, function (imageUrlOnServer) { components.get('account/cover').css('background-image', 'url(' + imageUrlOnServer + '?v=' + Date.now() + ')'); }); }, @@ -89,7 +89,7 @@ define('forum/account/header', [ function toggleFollow(type) { socket.emit('user.' + type, { uid: ajaxify.data.uid - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } @@ -102,7 +102,7 @@ define('forum/account/header', [ } function banAccount() { - templates.parse('admin/partials/temporary-ban', {}, function(html) { + templates.parse('admin/partials/temporary-ban', {}, function (html) { bootbox.dialog({ className: 'ban-modal', title: '[[user:ban_account]]', @@ -115,14 +115,14 @@ define('forum/account/header', [ }, submit: { label: '[[user:ban_account]]', - callback: function() { - var formData = $('.ban-modal form').serializeArray().reduce(function(data, cur) { + callback: function () { + var formData = $('.ban-modal form').serializeArray().reduce(function (data, cur) { data[cur.name] = cur.value; return data; }, {}); - var until = formData.length ? (Date.now() + formData.length * 1000*60*60 * (parseInt(formData.unit, 10) ? 24 : 1)) : 0; + var until = formData.length ? (Date.now() + formData.length * 1000 * 60 * 60 * (parseInt(formData.unit, 10) ? 24 : 1)) : 0; - socket.emit('user.banUsers', { uids: [ajaxify.data.theirid], until: until, reason: formData.reason || '' }, function(err) { + socket.emit('user.banUsers', { uids: [ajaxify.data.theirid], until: until, reason: formData.reason || '' }, function (err) { if (err) { return app.alertError(err.message); } @@ -136,7 +136,7 @@ define('forum/account/header', [ } function unbanAccount() { - socket.emit('user.unbanUsers', [ajaxify.data.theirid], function(err) { + socket.emit('user.unbanUsers', [ajaxify.data.theirid], function (err) { if (err) { return app.alertError(err.message); } @@ -145,13 +145,13 @@ define('forum/account/header', [ } function deleteAccount() { - translator.translate('[[user:delete_this_account_confirm]]', function(translated) { - bootbox.confirm(translated, function(confirm) { + translator.translate('[[user:delete_this_account_confirm]]', function (translated) { + bootbox.confirm(translated, function (confirm) { if (!confirm) { return; } - socket.emit('admin.user.deleteUsersAndContent', [ajaxify.data.theirid], function(err) { + socket.emit('admin.user.deleteUsersAndContent', [ajaxify.data.theirid], function (err) { if (err) { return app.alertError(err.message); } @@ -165,7 +165,7 @@ define('forum/account/header', [ function removeCover() { socket.emit('user.removeCover', { uid: ajaxify.data.uid - }, function(err) { + }, function (err) { if (!err) { ajaxify.refresh(); } else { diff --git a/public/src/client/account/info.js b/public/src/client/account/info.js index 3e1a218827..4ee76b21a3 100644 --- a/public/src/client/account/info.js +++ b/public/src/client/account/info.js @@ -2,18 +2,18 @@ /* globals define, socket, ajaxify, app */ -define('forum/account/info', ['forum/account/header'], function(header) { +define('forum/account/info', ['forum/account/header'], function (header) { var Info = {}; - Info.init = function() { + Info.init = function () { header.init(); handleModerationNote(); }; function handleModerationNote() { - $('[component="account/save-moderation-note"]').on('click', function() { + $('[component="account/save-moderation-note"]').on('click', function () { var note = $('[component="account/moderation-note"]').val(); - socket.emit('user.setModerationNote', {uid: ajaxify.data.uid, note: note}, function(err) { + socket.emit('user.setModerationNote', {uid: ajaxify.data.uid, note: note}, function (err) { if (err) { return app.alertError(err.message); } diff --git a/public/src/client/account/posts.js b/public/src/client/account/posts.js index 35e60e890b..9e2082e211 100644 --- a/public/src/client/account/posts.js +++ b/public/src/client/account/posts.js @@ -2,11 +2,11 @@ /* globals define, app, socket, utils, config, ajaxify */ -define('forum/account/posts', ['forum/account/header', 'forum/infinitescroll'], function(header, infinitescroll) { +define('forum/account/posts', ['forum/account/header', 'forum/infinitescroll'], function (header, infinitescroll) { var AccountPosts = {}; var method, template; - AccountPosts.init = function() { + AccountPosts.init = function () { header.init(); $('[component="post/content"] img:not(.not-responsive)').addClass('img-responsive'); @@ -14,7 +14,7 @@ define('forum/account/posts', ['forum/account/header', 'forum/infinitescroll'], AccountPosts.handleInfiniteScroll('posts.loadMoreUserPosts', 'account/posts'); }; - AccountPosts.handleInfiniteScroll = function(_method, _template) { + AccountPosts.handleInfiniteScroll = function (_method, _template) { method = _method; template = _template; if (!config.usePagination) { @@ -30,7 +30,7 @@ define('forum/account/posts', ['forum/account/header', 'forum/infinitescroll'], infinitescroll.loadMore(method, { uid: ajaxify.data.theirid, after: $('[component="posts"]').attr('data-nextstart') - }, function(data, done) { + }, function (data, done) { if (data.posts && data.posts.length) { onPostsLoaded(data.posts, done); } else { @@ -41,7 +41,7 @@ define('forum/account/posts', ['forum/account/header', 'forum/infinitescroll'], } function onPostsLoaded(posts, callback) { - app.parseAndTranslate(template, 'posts', {posts: posts}, function(html) { + app.parseAndTranslate(template, 'posts', {posts: posts}, function (html) { $('[component="posts"]').append(html); html.find('img:not(.not-responsive)').addClass('img-responsive'); html.find('.timeago').timeago(); diff --git a/public/src/client/account/profile.js b/public/src/client/account/profile.js index 0d59a96df1..f1d41db46f 100644 --- a/public/src/client/account/profile.js +++ b/public/src/client/account/profile.js @@ -7,11 +7,11 @@ define('forum/account/profile', [ 'forum/infinitescroll', 'translator', 'components' -], function(header, infinitescroll, translator) { +], function (header, infinitescroll, translator) { var Account = {}, theirid; - Account.init = function() { + Account.init = function () { header.init(); theirid = ajaxify.data.theirid; @@ -48,7 +48,7 @@ define('forum/account/profile', [ infinitescroll.loadMore('posts.loadMoreUserPosts', { after: $('[component="posts"]').attr('data-nextstart'), uid: theirid - }, function(data, done) { + }, function (data, done) { if (data.posts && data.posts.length) { onPostsLoaded(data.posts, done); } else { @@ -60,7 +60,7 @@ define('forum/account/profile', [ } function onPostsLoaded(posts, callback) { - posts = posts.filter(function(post) { + posts = posts.filter(function (post) { return !$('[component="posts"] [data-pid=' + post.pid + ']').length; }); @@ -68,7 +68,7 @@ define('forum/account/profile', [ return callback(); } - app.parseAndTranslate('account/profile', 'posts', {posts: posts}, function(html) { + app.parseAndTranslate('account/profile', 'posts', {posts: posts}, function (html) { $('[component="posts"]').append(html); html.find('.timeago').timeago(); diff --git a/public/src/client/account/settings.js b/public/src/client/account/settings.js index cc9aaf0439..6410267795 100644 --- a/public/src/client/account/settings.js +++ b/public/src/client/account/settings.js @@ -2,19 +2,19 @@ /*global define, socket, app, ajaxify, config*/ -define('forum/account/settings', ['forum/account/header', 'components', 'sounds'], function(header, components, sounds) { +define('forum/account/settings', ['forum/account/header', 'components', 'sounds'], function (header, components, sounds) { var AccountSettings = {}; - AccountSettings.init = function() { + AccountSettings.init = function () { header.init(); - $('#submitBtn').on('click', function() { + $('#submitBtn').on('click', function () { var settings = loadSettings(); if (settings.homePageRoute === 'custom' && settings.homePageCustom) { - $.get(config.relative_path + '/' + settings.homePageCustom, function() { + $.get(config.relative_path + '/' + settings.homePageCustom, function () { saveSettings(settings); - }).fail(function() { + }).fail(function () { app.alertError('[[error:invalid-home-page-route]]'); }); } else { @@ -24,7 +24,7 @@ define('forum/account/settings', ['forum/account/header', 'components', 'sounds' return false; }); - $('#bootswatchSkin').on('change', function() { + $('#bootswatchSkin').on('change', function () { var css = $('#bootswatchCSS'); var val = $(this).val() === 'default' ? config['theme:src'] : '//maxcdn.bootstrapcdn.com/bootswatch/latest/' + $(this).val() + '/bootstrap.min.css'; @@ -33,7 +33,7 @@ define('forum/account/settings', ['forum/account/header', 'components', 'sounds' $('[data-property="homePageRoute"]').on('change', toggleCustomRoute); - $('.account').find('button[data-action="play"]').on('click', function(e) { + $('.account').find('button[data-action="play"]').on('click', function (e) { e.preventDefault(); var fileName = $(this).parent().parent().find('select').val(); @@ -49,7 +49,7 @@ define('forum/account/settings', ['forum/account/header', 'components', 'sounds' function loadSettings() { var settings = {}; - $('.account').find('input, textarea, select').each(function(id, input) { + $('.account').find('input, textarea, select').each(function (id, input) { input = $(input); var setting = input.attr('data-property'); if (input.is('select')) { @@ -72,7 +72,7 @@ define('forum/account/settings', ['forum/account/header', 'components', 'sounds' } function saveSettings(settings) { - socket.emit('user.saveSettings', {uid: ajaxify.data.theirid, settings: settings}, function(err, newSettings) { + socket.emit('user.saveSettings', {uid: ajaxify.data.theirid, settings: settings}, function (err, newSettings) { if (err) { return app.alertError(err.message); } @@ -98,7 +98,7 @@ define('forum/account/settings', ['forum/account/header', 'components', 'sounds' message: '[[user:settings-require-reload]]', type: 'warning', timeout: 5000, - clickfn: function() { + clickfn: function () { ajaxify.refresh(); } }); @@ -116,7 +116,7 @@ define('forum/account/settings', ['forum/account/header', 'components', 'sounds' } function prepareSessionRevoking() { - components.get('user/sessions').on('click', '[data-action]', function() { + components.get('user/sessions').on('click', '[data-action]', function () { var parentEl = $(this).parents('[data-uuid]'); var uuid = parentEl.attr('data-uuid'); @@ -129,9 +129,9 @@ define('forum/account/settings', ['forum/account/header', 'components', 'sounds' headers: { 'x-csrf-token': config.csrf_token } - }).done(function() { + }).done(function () { parentEl.remove(); - }).fail(function(err) { + }).fail(function (err) { try { var errorObj = JSON.parse(err.responseText); if (errorObj.loggedIn === false) { diff --git a/public/src/client/account/topics.js b/public/src/client/account/topics.js index 1fefc727d1..63658f0cbf 100644 --- a/public/src/client/account/topics.js +++ b/public/src/client/account/topics.js @@ -2,17 +2,17 @@ /* globals define, app, socket, utils, config, ajaxify */ -define('forum/account/topics', ['forum/account/header', 'forum/infinitescroll'], function(header, infinitescroll) { +define('forum/account/topics', ['forum/account/header', 'forum/infinitescroll'], function (header, infinitescroll) { var AccountTopics = {}; var template, set; - AccountTopics.init = function() { + AccountTopics.init = function () { header.init(); AccountTopics.handleInfiniteScroll('account/topics', 'uid:' + ajaxify.data.theirid + ':topics'); }; - AccountTopics.handleInfiniteScroll = function(_template, _set) { + AccountTopics.handleInfiniteScroll = function (_template, _set) { template = _template; set = _set; @@ -29,7 +29,7 @@ define('forum/account/topics', ['forum/account/header', 'forum/infinitescroll'], infinitescroll.loadMore('topics.loadMoreFromSet', { set: set, after: $('[component="category"]').attr('data-nextstart') - }, function(data, done) { + }, function (data, done) { if (data.topics && data.topics.length) { onTopicsLoaded(data.topics, done); } else { @@ -41,7 +41,7 @@ define('forum/account/topics', ['forum/account/header', 'forum/infinitescroll'], } function onTopicsLoaded(topics, callback) { - app.parseAndTranslate('account/topics', 'topics', {topics: topics}, function(html) { + app.parseAndTranslate('account/topics', 'topics', {topics: topics}, function (html) { $('[component="category"]').append(html); html.find('.timeago').timeago(); app.createUserTooltips(); diff --git a/public/src/client/account/upvoted.js b/public/src/client/account/upvoted.js index 1d0ef86294..76bf001b77 100644 --- a/public/src/client/account/upvoted.js +++ b/public/src/client/account/upvoted.js @@ -2,10 +2,10 @@ /* globals define */ -define('forum/account/upvoted', ['forum/account/header', 'forum/account/posts'], function(header, posts) { +define('forum/account/upvoted', ['forum/account/header', 'forum/account/posts'], function (header, posts) { var Upvoted = {}; - Upvoted.init = function() { + Upvoted.init = function () { header.init(); $('[component="post/content"] img:not(.not-responsive)').addClass('img-responsive'); diff --git a/public/src/client/account/watched.js b/public/src/client/account/watched.js index dae195df2d..4e1ca01cfe 100644 --- a/public/src/client/account/watched.js +++ b/public/src/client/account/watched.js @@ -1,10 +1,10 @@ 'use strict'; /* globals define, app, socket, utils */ -define('forum/account/watched', ['forum/account/header', 'forum/account/topics'], function(header, topics) { +define('forum/account/watched', ['forum/account/header', 'forum/account/topics'], function (header, topics) { var AccountWatched = {}; - AccountWatched.init = function() { + AccountWatched.init = function () { header.init(); topics.handleInfiniteScroll('account/watched', 'uid:' + ajaxify.data.theirid + ':followed_tids'); diff --git a/public/src/client/categories.js b/public/src/client/categories.js index a73ed617bb..672fa38cf9 100644 --- a/public/src/client/categories.js +++ b/public/src/client/categories.js @@ -2,16 +2,16 @@ /* globals define, socket, app, templates, ajaxify*/ -define('forum/categories', ['components', 'translator'], function(components, translator) { +define('forum/categories', ['components', 'translator'], function (components, translator) { var categories = {}; - $(window).on('action:ajaxify.start', function(ev, data) { + $(window).on('action:ajaxify.start', function (ev, data) { if (ajaxify.currentPage !== data.url) { socket.removeListener('event:new_post', categories.onNewPost); } }); - categories.init = function() { + categories.init = function () { app.enterRoom('categories'); socket.removeListener('event:new_post', categories.onNewPost); @@ -22,7 +22,7 @@ define('forum/categories', ['components', 'translator'], function(components, tr }); }; - categories.onNewPost = function(data) { + categories.onNewPost = function (data) { if (data && data.posts && data.posts.length && data.posts[0].topic) { renderNewPost(data.posts[0].topic.cid, data.posts[0]); } @@ -38,7 +38,7 @@ define('forum/categories', ['components', 'translator'], function(components, tr var recentPosts = category.find('[component="category/posts"]'); var insertBefore = recentPosts.first(); - parseAndTranslate([post], function(html) { + parseAndTranslate([post], function (html) { html.hide(); if(recentPosts.length === 0) { html.appendTo(category); @@ -60,8 +60,8 @@ define('forum/categories', ['components', 'translator'], function(components, tr } function parseAndTranslate(posts, callback) { - templates.parse('categories', '(categories.)?posts', {categories: {posts: posts}}, function(html) { - translator.translate(html, function(translatedHTML) { + templates.parse('categories', '(categories.)?posts', {categories: {posts: posts}}, function (html) { + translator.translate(html, function (translatedHTML) { translatedHTML = $(translatedHTML); translatedHTML.find('img:not(.not-responsive)').addClass('img-responsive'); diff --git a/public/src/client/category.js b/public/src/client/category.js index d0a6d37f2a..7f64fd4f7f 100644 --- a/public/src/client/category.js +++ b/public/src/client/category.js @@ -11,10 +11,10 @@ define('forum/category', [ 'translator', 'topicSelect', 'forum/pagination' -], function(infinitescroll, share, navigator, categoryTools, sort, components, translator, topicSelect, pagination) { +], function (infinitescroll, share, navigator, categoryTools, sort, components, translator, topicSelect, pagination) { var Category = {}; - $(window).on('action:ajaxify.start', function(ev, data) { + $(window).on('action:ajaxify.start', function (ev, data) { if (ajaxify.currentPage !== data.url) { navigator.disable(); @@ -27,7 +27,7 @@ define('forum/category', [ categoryTools.removeListeners(); } - Category.init = function() { + Category.init = function () { var cid = ajaxify.data.cid; app.enterRoom('category_' + cid); @@ -47,9 +47,9 @@ define('forum/category', [ enableInfiniteLoadingOrPagination(); - $('[component="category"]').on('click', '[component="topic/header"]', function() { + $('[component="category"]').on('click', '[component="topic/header"]', function () { var clickedIndex = $(this).parents('[data-index]').attr('data-index'); - $('[component="category/topic"]').each(function(index, el) { + $('[component="category/topic"]').each(function (index, el) { if ($(el).offset().top - $(window).scrollTop() > 0) { localStorage.setItem('category:' + cid + ':bookmark', $(el).attr('data-index')); localStorage.setItem('category:' + cid + ':bookmark:clicked', clickedIndex); @@ -65,11 +65,11 @@ define('forum/category', [ }; function handleIgnoreWatch(cid) { - $('[component="category/watching"], [component="category/ignoring"]').on('click', function() { + $('[component="category/watching"], [component="category/ignoring"]').on('click', function () { var $this = $(this); var command = $this.attr('component') === 'category/watching' ? 'watch' : 'ignore'; - socket.emit('categories.' + command, cid, function(err) { + socket.emit('categories.' + command, cid, function (err) { if (err) { return app.alertError(err.message); } @@ -85,12 +85,12 @@ define('forum/category', [ }); } - Category.toTop = function() { + Category.toTop = function () { navigator.scrollTop(0); }; - Category.toBottom = function() { - socket.emit('categories.getTopicCount', ajaxify.data.cid, function(err, count) { + Category.toBottom = function () { + socket.emit('categories.getTopicCount', ajaxify.data.cid, function (err, count) { if (err) { return app.alertError(err.message); } @@ -99,11 +99,11 @@ define('forum/category', [ }); }; - Category.navigatorCallback = function(topIndex, bottomIndex, elementCount) { + Category.navigatorCallback = function (topIndex, bottomIndex, elementCount) { return bottomIndex; }; - $(window).on('action:popstate', function(ev, data) { + $(window).on('action:popstate', function (ev, data) { if (data.url.startsWith('category/')) { var cid = data.url.match(/^category\/(\d+)/); if (cid && cid[1]) { @@ -125,7 +125,7 @@ define('forum/category', [ if (config.usePagination) { var page = Math.ceil((parseInt(bookmarkIndex, 10) + 1) / config.topicsPerPage); if (parseInt(page, 10) !== ajaxify.data.pagination.currentPage) { - pagination.loadPage(page, function() { + pagination.loadPage(page, function () { Category.scrollToTopic(bookmarkIndex, clickedIndex, 400); }); } else { @@ -139,25 +139,25 @@ define('forum/category', [ $('[component="category"]').empty(); - loadTopicsAfter(Math.max(0, bookmarkIndex - 1), 1, function() { + loadTopicsAfter(Math.max(0, bookmarkIndex - 1), 1, function () { Category.scrollToTopic(bookmarkIndex, clickedIndex, 0); }); } } }); - Category.highlightTopic = function(topicIndex) { + Category.highlightTopic = function (topicIndex) { var highlight = components.get('category/topic', 'index', topicIndex); if (highlight.length && !highlight.hasClass('highlight')) { highlight.addClass('highlight'); - setTimeout(function() { + setTimeout(function () { highlight.removeClass('highlight'); }, 5000); } }; - Category.scrollToTopic = function(bookmarkIndex, clickedIndex, duration, offset) { + Category.scrollToTopic = function (bookmarkIndex, clickedIndex, duration, offset) { if (!bookmarkIndex) { return; } @@ -172,7 +172,7 @@ define('forum/category', [ if (scrollTo.length && cid) { $('html, body').animate({ scrollTop: (scrollTo.offset().top - offset) + 'px' - }, duration !== undefined ? duration : 400, function() { + }, duration !== undefined ? duration : 400, function () { Category.highlightTopic(clickedIndex); navigator.update(); }); @@ -187,7 +187,7 @@ define('forum/category', [ } } - Category.onNewTopic = function(topic) { + Category.onNewTopic = function (topic) { var cid = ajaxify.data.cid; if (!topic || parseInt(topic.cid, 10) !== parseInt(cid, 10)) { return; @@ -202,8 +202,8 @@ define('forum/category', [ showSelect: editable, topics: [topic], template: {category: true} - }, function(html) { - translator.translate(html, function(translatedHTML) { + }, function (html) { + translator.translate(html, function (translatedHTML) { var topic = $(translatedHTML), container = $('[component="category"]'), topics = $('[component="category/topic"]'), @@ -246,7 +246,7 @@ define('forum/category', [ }; function updateTopicCount() { - socket.emit('categories.getTopicCount', ajaxify.data.cid, function(err, topicCount) { + socket.emit('categories.getTopicCount', ajaxify.data.cid, function (err, topicCount) { if(err) { return app.alertError(err.message); } @@ -254,7 +254,7 @@ define('forum/category', [ }); } - Category.loadMoreTopics = function(direction) { + Category.loadMoreTopics = function (direction) { if (!$('[component="category"]').length || !$('[component="category"]').children().length) { return; } @@ -267,7 +267,7 @@ define('forum/category', [ }; function loadTopicsAfter(after, direction, callback) { - callback = callback || function() {}; + callback = callback || function () {}; if (!utils.isNumber(after) || (after === 0 && components.get('category/topic', 'index', 0).length)) { return callback(); } @@ -294,13 +294,13 @@ define('forum/category', [ } - Category.onTopicsLoaded = function(data, direction, callback) { + Category.onTopicsLoaded = function (data, direction, callback) { if (!data || !data.topics.length) { return callback(); } function removeAlreadyAddedTopics(topics) { - return topics.filter(function(topic) { + return topics.filter(function (topic) { return components.get('category/topic', 'tid', topic.tid).length === 0; }); } @@ -321,7 +321,7 @@ define('forum/category', [ before = topics.first(); } - app.parseAndTranslate('category', 'topics', data, function(html) { + app.parseAndTranslate('category', 'topics', data, function (html) { $('[component="category"]').removeClass('hidden'); $('.category-sidebar').removeClass('hidden'); diff --git a/public/src/client/categoryTools.js b/public/src/client/categoryTools.js index 8344ddf355..548386ffc6 100644 --- a/public/src/client/categoryTools.js +++ b/public/src/client/categoryTools.js @@ -4,31 +4,31 @@ /* globals define, app, socket, bootbox, ajaxify */ -define('forum/categoryTools', ['forum/topic/move', 'topicSelect', 'components', 'translator'], function(move, topicSelect, components, translator) { +define('forum/categoryTools', ['forum/topic/move', 'topicSelect', 'components', 'translator'], function (move, topicSelect, components, translator) { var CategoryTools = {}; - CategoryTools.init = function(cid) { + CategoryTools.init = function (cid) { CategoryTools.cid = cid; topicSelect.init(updateDropdownOptions); - components.get('topic/delete').on('click', function() { + components.get('topic/delete').on('click', function () { categoryCommand('delete', topicSelect.getSelectedTids()); return false; }); - components.get('topic/restore').on('click', function() { + components.get('topic/restore').on('click', function () { categoryCommand('restore', topicSelect.getSelectedTids()); return false; }); - components.get('topic/purge').on('click', function() { + components.get('topic/purge').on('click', function () { categoryCommand('purge', topicSelect.getSelectedTids()); return false; }); - components.get('topic/lock').on('click', function() { + components.get('topic/lock').on('click', function () { var tids = topicSelect.getSelectedTids(); if (tids.length) { socket.emit('topics.lock', {tids: tids, cid: CategoryTools.cid}, onCommandComplete); @@ -36,7 +36,7 @@ define('forum/categoryTools', ['forum/topic/move', 'topicSelect', 'components', return false; }); - components.get('topic/unlock').on('click', function() { + components.get('topic/unlock').on('click', function () { var tids = topicSelect.getSelectedTids(); if (tids.length) { socket.emit('topics.unlock', {tids: tids, cid: CategoryTools.cid}, onCommandComplete); @@ -44,7 +44,7 @@ define('forum/categoryTools', ['forum/topic/move', 'topicSelect', 'components', return false; }); - components.get('topic/pin').on('click', function() { + components.get('topic/pin').on('click', function () { var tids = topicSelect.getSelectedTids(); if (tids.length) { socket.emit('topics.pin', {tids: tids, cid: CategoryTools.cid}, onCommandComplete); @@ -52,7 +52,7 @@ define('forum/categoryTools', ['forum/topic/move', 'topicSelect', 'components', return false; }); - components.get('topic/unpin').on('click', function() { + components.get('topic/unpin').on('click', function () { var tids = topicSelect.getSelectedTids(); if (tids.length) { socket.emit('topics.unpin', {tids: tids, cid: CategoryTools.cid}, onCommandComplete); @@ -60,15 +60,15 @@ define('forum/categoryTools', ['forum/topic/move', 'topicSelect', 'components', return false; }); - components.get('topic/mark-unread-for-all').on('click', function() { + components.get('topic/mark-unread-for-all').on('click', function () { var tids = topicSelect.getSelectedTids(); if (tids.length) { - socket.emit('topics.markAsUnreadForAll', tids, function(err) { + socket.emit('topics.markAsUnreadForAll', tids, function (err) { if (err) { return app.alertError(err.message); } app.alertSuccess('[[topic:markAsUnreadForAll.success]]'); - tids.forEach(function(tid) { + tids.forEach(function (tid) { $('[component="category/topic"][data-tid="' + tid + '"]').addClass('unread'); }); onCommandComplete(); @@ -78,7 +78,7 @@ define('forum/categoryTools', ['forum/topic/move', 'topicSelect', 'components', return false; }); - components.get('topic/move').on('click', function() { + components.get('topic/move').on('click', function () { var tids = topicSelect.getSelectedTids(); if (tids.length) { @@ -87,8 +87,8 @@ define('forum/categoryTools', ['forum/topic/move', 'topicSelect', 'components', return false; }); - components.get('topic/move-all').on('click', function() { - move.init(null, cid, function(err) { + components.get('topic/move-all').on('click', function () { + move.init(null, cid, function (err) { if (err) { return app.alertError(err.message); } @@ -113,8 +113,8 @@ define('forum/categoryTools', ['forum/topic/move', 'topicSelect', 'components', return; } - translator.translate('[[topic:thread_tools.' + command + '_confirm]]', function(msg) { - bootbox.confirm(msg, function(confirm) { + translator.translate('[[topic:thread_tools.' + command + '_confirm]]', function (msg) { + bootbox.confirm(msg, function (confirm) { if (!confirm) { return; } @@ -124,7 +124,7 @@ define('forum/categoryTools', ['forum/topic/move', 'topicSelect', 'components', }); } - CategoryTools.removeListeners = function() { + CategoryTools.removeListeners = function () { socket.removeListener('event:topic_deleted', setDeleteState); socket.removeListener('event:topic_restored', setDeleteState); socket.removeListener('event:topic_purged', onTopicPurged); @@ -175,7 +175,7 @@ define('forum/categoryTools', ['forum/topic/move', 'topicSelect', 'components', } function isAny(method, tids) { - for(var i=0; i').html(user.username).text()); }); } - tagEl.on('beforeItemAdd', function(event) { + tagEl.on('beforeItemAdd', function (event) { event.cancel = event.item === app.user.username; }); - tagEl.on('itemAdded', function(event) { + tagEl.on('itemAdded', function (event) { if (event.item === app.user.username) { return; } - socket.emit('modules.chats.addUserToRoom', {roomId: data.roomId, username: event.item}, function(err) { + socket.emit('modules.chats.addUserToRoom', {roomId: data.roomId, username: event.item}, function (err) { if (err) { app.alertError(err.message); tagEl.tagsinput('remove', event.item, {nouser: true}); @@ -241,7 +241,7 @@ define('forum/chats', [ }); }); - tagEl.on('beforeItemRemove', function(event) { + tagEl.on('beforeItemRemove', function (event) { if (event.options && event.options.nouser) { return; } @@ -256,11 +256,11 @@ define('forum/chats', [ } }); - tagEl.on('itemRemoved', function(event) { + tagEl.on('itemRemoved', function (event) { if (event.options && event.options.nouser) { return; } - socket.emit('modules.chats.removeUserFromRoom', {roomId: data.roomId, username: event.item}, function(err) { + socket.emit('modules.chats.removeUserFromRoom', {roomId: data.roomId, username: event.item}, function (err) { if (err) { return app.alertError(err.message); } @@ -269,14 +269,14 @@ define('forum/chats', [ var input = $('.users-tag-container').find('.bootstrap-tagsinput input'); - require(['autocomplete'], function(autocomplete) { + require(['autocomplete'], function (autocomplete) { autocomplete.user(input); }); }; - Chats.leave = function(el) { + Chats.leave = function (el) { var roomId = el.attr('data-roomid'); - socket.emit('modules.chats.leave', roomId, function(err) { + socket.emit('modules.chats.leave', roomId, function (err) { if (err) { return app.alertError(err.message); } @@ -288,13 +288,13 @@ define('forum/chats', [ }); }; - Chats.switchChat = function(roomid) { + Chats.switchChat = function (roomid) { ajaxify.go('user/' + ajaxify.data.userslug + '/chats/' + roomid); }; - Chats.addGlobalEventListeners = function() { + Chats.addGlobalEventListeners = function () { $(window).on('resize', Chats.resizeMainWindow); - $(window).on('mousemove keypress click', function() { + $(window).on('mousemove keypress click', function () { if (newMessage && ajaxify.data.roomId) { socket.emit('modules.chats.markRead', ajaxify.data.roomId); newMessage = false; @@ -302,8 +302,8 @@ define('forum/chats', [ }); }; - Chats.addSocketListeners = function() { - socket.on('event:chats.receive', function(data) { + Chats.addSocketListeners = function () { + socket.on('event:chats.receive', function (data) { if (parseInt(data.roomId, 10) === parseInt(ajaxify.data.roomId, 10)) { newMessage = data.self === 0; data.message.self = data.self; @@ -319,8 +319,8 @@ define('forum/chats', [ var recentEl = components.get('chat/recent'); templates.parse('partials/chat_recent_room', { rooms: { "roomId": data.roomId, "lastUser": data.message.fromUser, "usernames": data.message.fromUser.username, "unread": true } - }, function(html) { - translator.translate(html, function(translated) { + }, function (html) { + translator.translate(html, function (translated) { recentEl.prepend(translated); }); }); @@ -329,18 +329,18 @@ define('forum/chats', [ } }); - socket.on('event:user_status_change', function(data) { + socket.on('event:user_status_change', function (data) { app.updateUserStatus($('.chats-list [data-uid="' + data.uid + '"] [component="user/status"]'), data.status); }); messages.onChatMessageEdit(); - socket.on('event:chats.roomRename', function(data) { + socket.on('event:chats.roomRename', function (data) { $('[component="chat/room/name"]').val($('
    ').html(data.newName).text()); }); }; - Chats.resizeMainWindow = function() { + Chats.resizeMainWindow = function () { var messagesList = $('.expanded-chat .chat-content'); if (messagesList.length) { @@ -352,13 +352,13 @@ define('forum/chats', [ messagesList.height($(window).height() - (fromTop + inputHeight + (margin * 4))); components.get('chat/recent').height($('.expanded-chat').height() - (searchHeight + searchListHeight)); - $('[component="chat/search/list"]').css('max-height', components.get('chat/recent').height()/2 + 'px'); + $('[component="chat/search/list"]').css('max-height', components.get('chat/recent').height() / 2 + 'px'); } Chats.setActive(); }; - Chats.setActive = function() { + Chats.setActive = function () { if (ajaxify.data.roomId) { socket.emit('modules.chats.markRead', ajaxify.data.roomId); $('.expanded-chat input').focus(); diff --git a/public/src/client/chats/messages.js b/public/src/client/chats/messages.js index ab444e36a4..9d91910493 100644 --- a/public/src/client/chats/messages.js +++ b/public/src/client/chats/messages.js @@ -2,11 +2,11 @@ /* globals define, socket, app, ajaxify, templates, bootbox */ -define('forum/chats/messages', ['components', 'sounds', 'translator'], function(components, sounds, translator) { +define('forum/chats/messages', ['components', 'sounds', 'translator'], function (components, sounds, translator) { var messages = {}; - messages.sendMessage = function(roomId, inputEl) { + messages.sendMessage = function (roomId, inputEl) { var msg = inputEl.val(); var mid = inputEl.attr('data-mid'); @@ -25,7 +25,7 @@ define('forum/chats/messages', ['components', 'sounds', 'translator'], function( socket.emit('modules.chats.send', { roomId: roomId, message: msg - }, function(err) { + }, function (err) { if (err) { if (err.message === '[[error:email-not-confirmed-chat]]') { return app.showEmailConfirmWarning(err); @@ -40,7 +40,7 @@ define('forum/chats/messages', ['components', 'sounds', 'translator'], function( roomId: roomId, mid: mid, message: msg - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } @@ -48,14 +48,14 @@ define('forum/chats/messages', ['components', 'sounds', 'translator'], function( } }; - messages.appendChatMessage = function(chatContentEl, data) { + messages.appendChatMessage = function (chatContentEl, data) { var lastSpeaker = parseInt(chatContentEl.find('.chat-message').last().attr('data-uid'), 10); if (!Array.isArray(data)) { data.newSet = lastSpeaker !== data.fromuid; } - messages.parseMessage(data, function(html) { + messages.parseMessage(data, function (html) { onMessagesParsed(chatContentEl, html); }); }; @@ -70,16 +70,16 @@ define('forum/chats/messages', ['components', 'sounds', 'translator'], function( } - messages.parseMessage = function(data, callback) { + messages.parseMessage = function (data, callback) { templates.parse('partials/chat_message' + (Array.isArray(data) ? 's' : ''), { messages: data - }, function(html) { + }, function (html) { translator.translate(html, callback); }); }; - messages.scrollToBottom = function(containerEl) { + messages.scrollToBottom = function (containerEl) { if (containerEl.length) { containerEl.scrollTop( containerEl[0].scrollHeight - containerEl.height() @@ -87,8 +87,8 @@ define('forum/chats/messages', ['components', 'sounds', 'translator'], function( } }; - messages.prepEdit = function(inputEl, messageId, roomId) { - socket.emit('modules.chats.getRaw', { mid: messageId, roomId: roomId }, function(err, raw) { + messages.prepEdit = function (inputEl, messageId, roomId) { + socket.emit('modules.chats.getRaw', { mid: messageId, roomId: roomId }, function (err, raw) { if (err) { return app.alertError(err.message); } @@ -102,12 +102,12 @@ define('forum/chats/messages', ['components', 'sounds', 'translator'], function( }); }; - messages.onChatMessageEdit = function() { - socket.on('event:chats.edit', function(data) { - data.messages.forEach(function(message) { + messages.onChatMessageEdit = function () { + socket.on('event:chats.edit', function (data) { + data.messages.forEach(function (message) { var self = parseInt(message.fromuid, 10) === parseInt(app.user.uid); message.self = self ? 1 : 0; - messages.parseMessage(message, function(html) { + messages.parseMessage(message, function (html) { var body = components.get('chat/message', message.messageId); if (body.length) { body.replaceWith(html); @@ -118,9 +118,9 @@ define('forum/chats/messages', ['components', 'sounds', 'translator'], function( }); }; - messages.delete = function(messageId, roomId) { - translator.translate('[[modules:chat.delete_message_confirm]]', function(translated) { - bootbox.confirm(translated, function(ok) { + messages.delete = function (messageId, roomId) { + translator.translate('[[modules:chat.delete_message_confirm]]', function (translated) { + bootbox.confirm(translated, function (ok) { if (!ok) { return; } @@ -128,12 +128,12 @@ define('forum/chats/messages', ['components', 'sounds', 'translator'], function( socket.emit('modules.chats.delete', { messageId: messageId, roomId: roomId - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } - components.get('chat/message', messageId).slideUp('slow', function() { + components.get('chat/message', messageId).slideUp('slow', function () { $(this).remove(); }); }); diff --git a/public/src/client/chats/recent.js b/public/src/client/chats/recent.js index 9afc7ab76a..b4b9ba115b 100644 --- a/public/src/client/chats/recent.js +++ b/public/src/client/chats/recent.js @@ -2,12 +2,12 @@ /* globals define, socket, app */ -define('forum/chats/recent', function() { +define('forum/chats/recent', function () { var recent = {}; - recent.init = function() { - $('[component="chat/recent"]').on('scroll', function() { + recent.init = function () { + $('[component="chat/recent"]').on('scroll', function () { var $this = $(this); var bottom = ($this[0].scrollHeight - $this.height()) * 0.9; if ($this.scrollTop() > bottom) { @@ -25,13 +25,13 @@ define('forum/chats/recent', function() { socket.emit('modules.chats.getRecentChats', { uid: ajaxify.data.uid, after: recentChats.attr('data-nextstart') - }, function(err, data) { + }, function (err, data) { if (err) { return app.alertError(err.message); } if (data && data.rooms.length) { - onRecentChatsLoaded(data, function() { + onRecentChatsLoaded(data, function () { recentChats.removeAttr('loading'); recentChats.attr('data-nextstart', data.nextStart); }); @@ -46,7 +46,7 @@ define('forum/chats/recent', function() { return callback(); } - app.parseAndTranslate('chats', 'rooms', data, function(html) { + app.parseAndTranslate('chats', 'rooms', data, function (html) { $('[component="chat/recent"]').append(html); html.find('.timeago').timeago(); callback(); diff --git a/public/src/client/chats/search.js b/public/src/client/chats/search.js index 6701563639..82b3923d2d 100644 --- a/public/src/client/chats/search.js +++ b/public/src/client/chats/search.js @@ -2,14 +2,14 @@ /* globals define, socket, app */ -define('forum/chats/search', ['components'], function(components) { +define('forum/chats/search', ['components'], function (components) { var search = {}; - search.init = function() { + search.init = function () { var timeoutId = 0; - components.get('chat/search').on('keyup', function() { + components.get('chat/search').on('keyup', function () { if (timeoutId) { clearTimeout(timeoutId); timeoutId = 0; @@ -30,7 +30,7 @@ define('forum/chats/search', ['components'], function(components) { socket.emit('user.search', { query: username, searchBy: 'username' - }, function(err, data) { + }, function (err, data) { if (err) { return app.alertError(err.message); } @@ -46,7 +46,7 @@ define('forum/chats/search', ['components'], function(components) { return chatsListEl.translateHtml('
  • [[users:no-users-found]]
  • '); } - data.users.forEach(function(userObj) { + data.users.forEach(function (userObj) { var chatEl = displayUser(chatsListEl, userObj); onUserClick(chatEl, userObj); }); @@ -55,7 +55,7 @@ define('forum/chats/search', ['components'], function(components) { function displayUser(chatsListEl, userObj) { function createUserImage() { return (userObj.picture ? - '' : + '' : '
    ' + userObj['icon:text'] + '
    ') + ' ' + userObj.username; } @@ -69,13 +69,13 @@ define('forum/chats/search', ['components'], function(components) { } function onUserClick(chatEl, userObj) { - chatEl.on('click', function() { - socket.emit('modules.chats.hasPrivateChat', userObj.uid, function(err, roomId) { + chatEl.on('click', function () { + socket.emit('modules.chats.hasPrivateChat', userObj.uid, function (err, roomId) { if (err) { return app.alertError(err.message); } if (roomId) { - require(['forum/chats'], function(chats) { + require(['forum/chats'], function (chats) { chats.switchChat(roomId); }); } else { diff --git a/public/src/client/compose.js b/public/src/client/compose.js index c50ffe9945..4b2bb87b4e 100644 --- a/public/src/client/compose.js +++ b/public/src/client/compose.js @@ -2,10 +2,10 @@ /* globals define */ -define('forum/compose', [], function() { +define('forum/compose', [], function () { var Compose = {}; - Compose.init = function() { + Compose.init = function () { var container = $('.composer'); if (container.length) { diff --git a/public/src/client/footer.js b/public/src/client/footer.js index 30da71aa12..d10f47e317 100644 --- a/public/src/client/footer.js +++ b/public/src/client/footer.js @@ -1,7 +1,7 @@ "use strict"; /*globals define, app, socket*/ -define('forum/footer', ['notifications', 'chat', 'components', 'translator'], function(Notifications, Chat, components, translator) { +define('forum/footer', ['notifications', 'chat', 'components', 'translator'], function (Notifications, Chat, components, translator) { Notifications.prepareDOM(); Chat.prepareDOM(); @@ -49,7 +49,7 @@ define('forum/footer', ['notifications', 'chat', 'components', 'translator'], fu $('[data-tid="' + tid + '"]').addClass('unread'); } - $(window).on('action:ajaxify.end', function(ev, data) { + $(window).on('action:ajaxify.end', function (ev, data) { if (data.url) { var tid = data.url.match(/^topic\/(\d+)/); @@ -63,7 +63,7 @@ define('forum/footer', ['notifications', 'chat', 'components', 'translator'], fu } if (app.user.uid) { - socket.emit('user.getUnreadCounts', function(err, data) { + socket.emit('user.getUnreadCounts', function (err, data) { if (err) { return app.alert(err.message); } diff --git a/public/src/client/groups/details.js b/public/src/client/groups/details.js index d2f1cfbd8d..e8c449f5f6 100644 --- a/public/src/client/groups/details.js +++ b/public/src/client/groups/details.js @@ -8,12 +8,12 @@ define('forum/groups/details', [ 'coverPhoto', 'uploader', 'vendor/colorpicker/colorpicker' -], function(memberList, iconSelect, components, coverPhoto, uploader) { +], function (memberList, iconSelect, components, coverPhoto, uploader) { var Details = {}; var groupName; - Details.init = function() { + Details.init = function () { var detailsPage = components.get('groups/container'); groupName = ajaxify.data.group.name; @@ -22,19 +22,19 @@ define('forum/groups/details', [ Details.prepareSettings(); coverPhoto.init(components.get('groups/cover'), - function(imageData, position, callback) { + function (imageData, position, callback) { socket.emit('groups.cover.update', { groupName: groupName, imageData: imageData, position: position }, callback); }, - function() { + function () { uploader.show({ title: '[[groups:upload-group-cover]]', route: config.relative_path + '/api/groups/uploadpicture', params: {groupName: groupName} - }, function(imageUrlOnServer) { + }, function (imageUrlOnServer) { components.get('groups/cover').css('background-image', 'url(' + imageUrlOnServer + ')'); }); }, @@ -48,7 +48,7 @@ define('forum/groups/details', [ components.get('groups/activity').find('.content img:not(.not-responsive)').addClass('img-responsive'); - detailsPage.on('click', '[data-action]', function() { + detailsPage.on('click', '[data-action]', function () { var btnEl = $(this), userRow = btnEl.parents('[data-uid]'), ownerFlagEl = userRow.find('.member-name > i'), @@ -61,7 +61,7 @@ define('forum/groups/details', [ socket.emit('groups.' + (isOwner ? 'rescind' : 'grant'), { toUid: uid, groupName: groupName - }, function(err) { + }, function (err) { if (!err) { ownerFlagEl.toggleClass('invisible'); } else { @@ -74,7 +74,7 @@ define('forum/groups/details', [ socket.emit('groups.kick', { uid: uid, groupName: groupName - }, function(err) { + }, function (err) { if (!err) { userRow.slideUp().remove(); } else { @@ -104,7 +104,7 @@ define('forum/groups/details', [ socket.emit('groups.' + action, { toUid: uid, groupName: groupName - }, function(err) { + }, function (err) { if (!err) { ajaxify.refresh(); } else { @@ -116,7 +116,7 @@ define('forum/groups/details', [ }); }; - Details.prepareSettings = function() { + Details.prepareSettings = function () { var settingsFormEl = components.get('groups/settings'), colorBtn = settingsFormEl.find('[data-action="color-select"]'), colorValueEl = settingsFormEl.find('[name="labelColor"]'), @@ -130,31 +130,31 @@ define('forum/groups/details', [ // Add color picker to settings form colorBtn.ColorPicker({ color: colorValueEl.val() || '#000', - onChange: function(hsb, hex) { + onChange: function (hsb, hex) { colorValueEl.val('#' + hex); previewEl.css('background-color', '#' + hex); }, - onShow: function(colpkr) { + onShow: function (colpkr) { $(colpkr).css('z-index', 1051); } }); // Add icon selection interface - iconBtn.on('click', function() { - iconSelect.init(previewIcon, function() { + iconBtn.on('click', function () { + iconSelect.init(previewIcon, function () { iconValueEl.val(previewIcon.val()); }); }); // If the user title changes, update that too - userTitleEl.on('keyup', function() { + userTitleEl.on('keyup', function () { var icon = previewIcon.detach(); previewEl.text(' ' + (this.value || settingsFormEl.find('#name').val())); previewEl.prepend(icon); }); // Disable user title customisation options if the the user title itself is disabled - userTitleEnabledEl.on('change', function() { + userTitleEnabledEl.on('change', function () { var customOpts = components.get('groups/userTitleOption'); if (this.checked) { @@ -167,16 +167,16 @@ define('forum/groups/details', [ }); }; - Details.update = function() { + Details.update = function () { var settingsFormEl = components.get('groups/settings'), checkboxes = settingsFormEl.find('input[type="checkbox"][name]'); if (settingsFormEl.length) { - require(['vendor/jquery/serializeObject/jquery.ba-serializeobject.min'], function() { + require(['vendor/jquery/serializeObject/jquery.ba-serializeobject.min'], function () { var settings = settingsFormEl.serializeObject(); // Fix checkbox values - checkboxes.each(function(idx, inputEl) { + checkboxes.each(function (idx, inputEl) { inputEl = $(inputEl); if (inputEl.length) { settings[inputEl.attr('name')] = inputEl.prop('checked'); @@ -186,7 +186,7 @@ define('forum/groups/details', [ socket.emit('groups.update', { groupName: groupName, values: settings - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } @@ -205,14 +205,14 @@ define('forum/groups/details', [ } }; - Details.deleteGroup = function() { - bootbox.confirm('Are you sure you want to delete the group: ' + utils.escapeHTML(groupName), function(confirm) { + Details.deleteGroup = function () { + bootbox.confirm('Are you sure you want to delete the group: ' + utils.escapeHTML(groupName), function (confirm) { if (confirm) { - bootbox.prompt('Please enter the name of this group in order to delete it:', function(response) { + bootbox.prompt('Please enter the name of this group in order to delete it:', function (response) { if (response === groupName) { socket.emit('groups.delete', { groupName: groupName - }, function(err) { + }, function (err) { if (!err) { app.alertSuccess('[[groups:event.deleted, ' + utils.escapeHTML(groupName) + ']]'); ajaxify.go('groups'); @@ -232,12 +232,12 @@ define('forum/groups/details', [ } var searchInput = $('[component="groups/members/invite"]'); - require(['autocomplete'], function(autocomplete) { - autocomplete.user(searchInput, function(event, selected) { + require(['autocomplete'], function (autocomplete) { + autocomplete.user(searchInput, function (event, selected) { socket.emit('groups.issueInvite', { toUid: selected.item.user.uid, groupName: ajaxify.data.group.name - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } @@ -246,7 +246,7 @@ define('forum/groups/details', [ }); }); - $('[component="groups/members/bulk-invite-button"]').on('click', function() { + $('[component="groups/members/bulk-invite-button"]').on('click', function () { var usernames = $('[component="groups/members/bulk-invite"]').val(); if (!usernames) { return false; @@ -254,7 +254,7 @@ define('forum/groups/details', [ socket.emit('groups.issueMassInvite', { usernames: usernames, groupName: ajaxify.data.group.name - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } @@ -267,7 +267,7 @@ define('forum/groups/details', [ function removeCover() { socket.emit('groups.cover.remove', { groupName: ajaxify.data.group.name - }, function(err) { + }, function (err) { if (!err) { ajaxify.refresh(); } else { diff --git a/public/src/client/groups/list.js b/public/src/client/groups/list.js index 606a460dff..55ac232eb1 100644 --- a/public/src/client/groups/list.js +++ b/public/src/client/groups/list.js @@ -1,21 +1,21 @@ "use strict"; /* globals app, define, ajaxify, socket, bootbox, utils, templates */ -define('forum/groups/list', ['forum/infinitescroll'], function(infinitescroll) { +define('forum/groups/list', ['forum/infinitescroll'], function (infinitescroll) { var Groups = {}; - Groups.init = function() { + Groups.init = function () { var groupsEl = $('#groups-list'); infinitescroll.init(Groups.loadMoreGroups); // Group creation - $('button[data-action="new"]').on('click', function() { - bootbox.prompt('[[groups:new-group.group_name]]', function(name) { + $('button[data-action="new"]').on('click', function () { + bootbox.prompt('[[groups:new-group.group_name]]', function (name) { if (name && name.length) { socket.emit('groups.create', { name: name - }, function(err) { + }, function (err) { if (!err) { ajaxify.go('groups/' + utils.slugify(name)); } else { @@ -31,12 +31,12 @@ define('forum/groups/list', ['forum/infinitescroll'], function(infinitescroll) { // Group searching $('#search-text').on('keyup', Groups.search); $('#search-button').on('click', Groups.search); - $('#search-sort').on('change', function() { + $('#search-sort').on('change', function () { ajaxify.go('groups?sort=' + $('#search-sort').val()); }); }; - Groups.loadMoreGroups = function(direction) { + Groups.loadMoreGroups = function (direction) { if (direction < 0) { return; } @@ -44,11 +44,11 @@ define('forum/groups/list', ['forum/infinitescroll'], function(infinitescroll) { infinitescroll.loadMore('groups.loadMore', { sort: $('#search-sort').val(), after: $('[component="groups/container"]').attr('data-nextstart') - }, function(data, done) { + }, function (data, done) { if (data && data.groups.length) { templates.parse('partials/groups/list', { groups: data.groups - }, function(html) { + }, function (html) { $('#groups-list').append(html); done(); }); @@ -62,7 +62,7 @@ define('forum/groups/list', ['forum/infinitescroll'], function(infinitescroll) { }); } - Groups.search = function() { + Groups.search = function () { var groupsEl = $('#groups-list'), queryEl = $('#search-text'), sortEl = $('#search-sort'); @@ -73,16 +73,16 @@ define('forum/groups/list', ['forum/infinitescroll'], function(infinitescroll) { sort: sortEl.val(), filterHidden: true } - }, function(err, groups) { + }, function (err, groups) { if (err) { return app.alertError(err.message); } - groups = groups.filter(function(group) { + groups = groups.filter(function (group) { return group.name !== 'registered-users' && group.name !== 'guests'; }); templates.parse('partials/groups/list', { groups: groups - }, function(html) { + }, function (html) { groupsEl.empty().append(html); }); }); diff --git a/public/src/client/groups/memberlist.js b/public/src/client/groups/memberlist.js index 7fc3bb6781..e7e6d8b1f1 100644 --- a/public/src/client/groups/memberlist.js +++ b/public/src/client/groups/memberlist.js @@ -1,13 +1,13 @@ "use strict"; /* globals define, socket, ajaxify, app */ -define('forum/groups/memberlist', ['components', 'forum/infinitescroll'], function(components, infinitescroll) { +define('forum/groups/memberlist', ['components', 'forum/infinitescroll'], function (components, infinitescroll) { var MemberList = {}; var searchInterval; var groupName; - MemberList.init = function() { + MemberList.init = function () { groupName = ajaxify.data.group.name; handleMemberSearch(); @@ -15,19 +15,19 @@ define('forum/groups/memberlist', ['components', 'forum/infinitescroll'], functi }; function handleMemberSearch() { - $('[component="groups/members/search"]').on('keyup', function() { + $('[component="groups/members/search"]').on('keyup', function () { var query = $(this).val(); if (searchInterval) { clearInterval(searchInterval); searchInterval = 0; } - searchInterval = setTimeout(function() { - socket.emit('groups.searchMembers', {groupName: groupName, query: query}, function(err, results) { + searchInterval = setTimeout(function () { + socket.emit('groups.searchMembers', {groupName: groupName, query: query}, function (err, results) { if (err) { return app.alertError(err.message); } - parseAndTranslate(results.users, function(html) { + parseAndTranslate(results.users, function (html) { $('[component="groups/members"] tbody').html(html); $('[component="groups/members"]').attr('data-nextstart', 20); }); @@ -37,7 +37,7 @@ define('forum/groups/memberlist', ['components', 'forum/infinitescroll'], functi } function handleMemberInfiniteScroll() { - $('[component="groups/members"] tbody').on('scroll', function() { + $('[component="groups/members"] tbody').on('scroll', function () { var $this = $(this); var bottom = ($this[0].scrollHeight - $this.innerHeight()) * 0.9; @@ -57,13 +57,13 @@ define('forum/groups/memberlist', ['components', 'forum/infinitescroll'], functi socket.emit('groups.loadMoreMembers', { groupName: groupName, after: members.attr('data-nextstart') - }, function(err, data) { + }, function (err, data) { if (err) { return app.alertError(err.message); } if (data && data.users.length) { - onMembersLoaded(data.users, function() { + onMembersLoaded(data.users, function () { members.removeAttr('loading'); members.attr('data-nextstart', data.nextStart); }); @@ -74,11 +74,11 @@ define('forum/groups/memberlist', ['components', 'forum/infinitescroll'], functi } function onMembersLoaded(users, callback) { - users = users.filter(function(user) { + users = users.filter(function (user) { return !$('[component="groups/members"] [data-uid="' + user.uid + '"]').length; }); - parseAndTranslate(users, function(html) { + parseAndTranslate(users, function (html) { $('[component="groups/members"] tbody').append(html); callback(); }); diff --git a/public/src/client/infinitescroll.js b/public/src/client/infinitescroll.js index aa559c623e..6ae9b5cbbc 100644 --- a/public/src/client/infinitescroll.js +++ b/public/src/client/infinitescroll.js @@ -2,7 +2,7 @@ /* globals define, socket, app */ -define('forum/infinitescroll', function() { +define('forum/infinitescroll', function () { var scroll = {}; var callback; @@ -10,7 +10,7 @@ define('forum/infinitescroll', function() { var loadingMore = false; var container; - scroll.init = function(el, cb) { + scroll.init = function (el, cb) { if (typeof el === 'function') { callback = el; container = $('body'); @@ -47,7 +47,7 @@ define('forum/infinitescroll', function() { previousScrollTop = currentScrollTop; } - scroll.loadMore = function(method, data, callback) { + scroll.loadMore = function (method, data, callback) { if (loadingMore) { return; } @@ -56,18 +56,18 @@ define('forum/infinitescroll', function() { var hookData = {method: method, data: data}; $(window).trigger('action:infinitescroll.loadmore', hookData); - socket.emit(hookData.method, hookData.data, function(err, data) { + socket.emit(hookData.method, hookData.data, function (err, data) { if (err) { loadingMore = false; return app.alertError(err.message); } - callback(data, function() { + callback(data, function () { loadingMore = false; }); }); }; - scroll.removeExtra = function(els, direction, count) { + scroll.removeExtra = function (els, direction, count) { if (els.length <= count) { return; } diff --git a/public/src/client/login.js b/public/src/client/login.js index c86e743be2..254c90d583 100644 --- a/public/src/client/login.js +++ b/public/src/client/login.js @@ -1,15 +1,15 @@ "use strict"; /* global define, app, config, RELATIVE_PATH */ -define('forum/login', ['translator'], function(translator) { +define('forum/login', ['translator'], function (translator) { var Login = {}; - Login.init = function() { + Login.init = function () { var errorEl = $('#login-error-notify'), submitEl = $('#login'), formEl = $('#login-form'); - submitEl.on('click', function(e) { + submitEl.on('click', function (e) { e.preventDefault(); if (!$('#username').val() || !$('#password').val()) { @@ -27,10 +27,10 @@ define('forum/login', ['translator'], function(translator) { headers: { 'x-csrf-token': config.csrf_token }, - success: function(data, status) { + success: function (data, status) { window.location.href = data + '?loggedin'; }, - error: function(data, status) { + error: function (data, status) { if (data.status === 403 && data.responseText === 'Forbidden') { window.location.href = config.relative_path + '/login?error=csrf-invalid'; } else { @@ -48,7 +48,7 @@ define('forum/login', ['translator'], function(translator) { } }); - $('#login-error-notify button').on('click', function(e) { + $('#login-error-notify button').on('click', function (e) { e.preventDefault(); errorEl.hide(); return false; diff --git a/public/src/client/notifications.js b/public/src/client/notifications.js index 6d353ddc21..baeaa262cd 100644 --- a/public/src/client/notifications.js +++ b/public/src/client/notifications.js @@ -2,14 +2,14 @@ /* globals define, socket, app */ -define('forum/notifications', ['components', 'notifications', 'forum/infinitescroll'], function(components, notifs, infinitescroll) { +define('forum/notifications', ['components', 'notifications', 'forum/infinitescroll'], function (components, notifs, infinitescroll) { var Notifications = {}; - Notifications.init = function() { + Notifications.init = function () { var listEl = $('.notifications-list'); - listEl.on('click', '[component="notifications/item/link"]', function() { + listEl.on('click', '[component="notifications/item/link"]', function () { var nid = $(this).parents('[data-nid]').attr('data-nid'); - socket.emit('notifications.markRead', nid, function(err) { + socket.emit('notifications.markRead', nid, function (err) { if (err) { return app.alertError(err); } @@ -18,8 +18,8 @@ define('forum/notifications', ['components', 'notifications', 'forum/infinitescr $('.timeago').timeago(); - components.get('notifications/mark_all').on('click', function() { - socket.emit('notifications.markAllRead', function(err) { + components.get('notifications/mark_all').on('click', function () { + socket.emit('notifications.markAllRead', function (err) { if (err) { return app.alertError(err.message); } @@ -39,7 +39,7 @@ define('forum/notifications', ['components', 'notifications', 'forum/infinitescr var notifList = $('.notifications-list'); infinitescroll.loadMore('notifications.loadMore', { after: notifList.attr('data-nextstart') - }, function(data, done) { + }, function (data, done) { if (!data) { return done(); } @@ -47,7 +47,7 @@ define('forum/notifications', ['components', 'notifications', 'forum/infinitescr if (!data.notifications || !data.notifications.length) { return done(); } - app.parseAndTranslate('notifications', 'notifications', {notifications: data.notifications}, function(html) { + app.parseAndTranslate('notifications', 'notifications', {notifications: data.notifications}, function (html) { notifList.append(html); html.find('.timeago').timeago(); done(); diff --git a/public/src/client/pagination.js b/public/src/client/pagination.js index 3bac155dc5..6cbd7102f0 100644 --- a/public/src/client/pagination.js +++ b/public/src/client/pagination.js @@ -1,20 +1,20 @@ 'use strict'; /*global define, utils, ajaxify, bootbox*/ -define('forum/pagination', function() { +define('forum/pagination', function () { var pagination = {}; - pagination.init = function() { - $('body').on('click', '[component="pagination/select-page"]', function() { - bootbox.prompt('[[global:enter_page_number]]', function(pageNum) { + pagination.init = function () { + $('body').on('click', '[component="pagination/select-page"]', function () { + bootbox.prompt('[[global:enter_page_number]]', function (pageNum) { pagination.loadPage(pageNum); }); return false; }); }; - pagination.loadPage = function(page, callback) { - callback = callback || function() {}; + pagination.loadPage = function (page, callback) { + callback = callback || function () {}; page = parseInt(page, 10); if (!utils.isNumber(page) || page < 1 || page > ajaxify.data.pagination.pageCount) { return; diff --git a/public/src/client/popular.js b/public/src/client/popular.js index f7f0cd568e..00fb6937e2 100644 --- a/public/src/client/popular.js +++ b/public/src/client/popular.js @@ -2,10 +2,10 @@ /* globals define, app, socket*/ -define('forum/popular', ['components'], function(components) { +define('forum/popular', ['components'], function (components) { var Popular = {}; - Popular.init = function() { + Popular.init = function () { app.enterRoom('popular_topics'); components.get('popular/tab') diff --git a/public/src/client/recent.js b/public/src/client/recent.js index 973819d44d..15b37eaf19 100644 --- a/public/src/client/recent.js +++ b/public/src/client/recent.js @@ -2,24 +2,24 @@ /* globals define, app, socket, utils, ajaxify, config */ -define('forum/recent', ['forum/infinitescroll', 'components'], function(infinitescroll, components) { +define('forum/recent', ['forum/infinitescroll', 'components'], function (infinitescroll, components) { var Recent = {}; var newTopicCount = 0; var newPostCount = 0; - $(window).on('action:ajaxify.start', function(ev, data) { + $(window).on('action:ajaxify.start', function (ev, data) { if (ajaxify.currentPage !== data.url) { Recent.removeListeners(); } }); - Recent.init = function() { + Recent.init = function () { app.enterRoom('recent_topics'); Recent.watchForNewPosts(); - $('#new-topics-alert').on('click', function() { + $('#new-topics-alert').on('click', function () { $(this).addClass('hide'); }); @@ -74,7 +74,7 @@ define('forum/recent', ['forum/infinitescroll', 'components'], function(infinite } if (ajaxify.data.selectedFilter && ajaxify.data.selectedFilter.url === 'unread/watched') { - socket.emit('topics.isFollowed', post.tid, function(err, isFollowed) { + socket.emit('topics.isFollowed', post.tid, function (err, isFollowed) { if (err) { app.alertError(err.message); } @@ -88,12 +88,12 @@ define('forum/recent', ['forum/infinitescroll', 'components'], function(infinite showAlert(); } - Recent.removeListeners = function() { + Recent.removeListeners = function () { socket.removeListener('event:new_topic', onNewTopic); socket.removeListener('event:new_post', onNewPost); }; - Recent.updateAlertText = function() { + Recent.updateAlertText = function () { var text = ''; if (newTopicCount === 0) { @@ -108,7 +108,7 @@ define('forum/recent', ['forum/infinitescroll', 'components'], function(infinite } else if (newPostCount === 1) { text = '[[recent:there-is-a-new-topic-and-a-new-post]]'; } else if (newPostCount > 1) { - text = '[[recent:there-is-a-new-topic-and-new-posts, ' + newPostCount +']]'; + text = '[[recent:there-is-a-new-topic-and-new-posts, ' + newPostCount + ']]'; } } else if (newTopicCount > 1) { if (newPostCount === 0) { @@ -116,7 +116,7 @@ define('forum/recent', ['forum/infinitescroll', 'components'], function(infinite } else if (newPostCount === 1) { text = '[[recent:there-are-new-topics-and-a-new-post, ' + newTopicCount + ']]'; } else if (newPostCount > 1) { - text = '[[recent:there-are-new-topics-and-new-posts, ' + newTopicCount + ', ' + newPostCount +']]'; + text = '[[recent:there-are-new-topics-and-new-posts, ' + newTopicCount + ', ' + newPostCount + ']]'; } } @@ -126,7 +126,7 @@ define('forum/recent', ['forum/infinitescroll', 'components'], function(infinite $('#category-no-topics').addClass('hide'); }; - Recent.loadMoreTopics = function(direction) { + Recent.loadMoreTopics = function (direction) { if(direction < 0 || !$('[component="category"]').length) { return; } @@ -134,7 +134,7 @@ define('forum/recent', ['forum/infinitescroll', 'components'], function(infinite infinitescroll.loadMore('topics.loadMoreFromSet', { after: $('[component="category"]').attr('data-nextstart'), set: $('[component="category"]').attr('data-set') ? $('[component="category"]').attr('data-set') : 'topics:recent' - }, function(data, done) { + }, function (data, done) { if (data.topics && data.topics.length) { Recent.onTopicsLoaded('recent', data.topics, false, done); } else { @@ -144,9 +144,9 @@ define('forum/recent', ['forum/infinitescroll', 'components'], function(infinite }); }; - Recent.onTopicsLoaded = function(templateName, topics, showSelect, callback) { + Recent.onTopicsLoaded = function (templateName, topics, showSelect, callback) { - topics = topics.filter(function(topic) { + topics = topics.filter(function (topic) { return !components.get('category/topic', 'tid', topic.tid).length; }); @@ -154,7 +154,7 @@ define('forum/recent', ['forum/infinitescroll', 'components'], function(infinite return callback(); } - app.parseAndTranslate(templateName, 'topics', {topics: topics, showSelect: showSelect}, function(html) { + app.parseAndTranslate(templateName, 'topics', {topics: topics, showSelect: showSelect}, function (html) { $('#category-no-topics').remove(); $('[component="category"]').append(html); diff --git a/public/src/client/register.js b/public/src/client/register.js index 4b5d5a02d6..01dfa4dfc1 100644 --- a/public/src/client/register.js +++ b/public/src/client/register.js @@ -3,12 +3,12 @@ /* globals define, app, utils, socket, config, ajaxify, bootbox */ -define('forum/register', ['translator'], function(translator) { +define('forum/register', ['translator'], function (translator) { var Register = {}, validationError = false, successIcon = ''; - Register.init = function() { + Register.init = function () { var email = $('#email'), username = $('#username'), password = $('#password'), @@ -19,7 +19,7 @@ define('forum/register', ['translator'], function(translator) { $('#referrer').val(app.previousUrl); - email.on('blur', function() { + email.on('blur', function () { if (email.val().length) { validateEmail(email.val()); } @@ -32,23 +32,23 @@ define('forum/register', ['translator'], function(translator) { } // Update the "others can mention you via" text - username.on('keyup', function() { + username.on('keyup', function () { $('#yourUsername').text(this.value.length > 0 ? utils.slugify(this.value) : 'username'); }); - username.on('blur', function() { + username.on('blur', function () { if (username.val().length) { validateUsername(username.val()); } }); - password.on('blur', function() { + password.on('blur', function () { if (password.val().length) { validatePassword(password.val(), password_confirm.val()); } }); - password_confirm.on('blur', function() { + password_confirm.on('blur', function () { if (password_confirm.val().length) { validatePasswordConfirm(password.val(), password_confirm.val()); } @@ -59,17 +59,17 @@ define('forum/register', ['translator'], function(translator) { validatePassword(password.val(), password_confirm.val()); validatePasswordConfirm(password.val(), password_confirm.val()); - validateEmail(email.val(), function() { + validateEmail(email.val(), function () { validateUsername(username.val(), callback); }); } - register.on('click', function(e) { + register.on('click', function (e) { var registerBtn = $(this); var errorEl = $('#register-error-notify'); errorEl.addClass('hidden'); e.preventDefault(); - validateForm(function() { + validateForm(function () { if (validationError) { return; } @@ -80,7 +80,7 @@ define('forum/register', ['translator'], function(translator) { headers: { 'x-csrf-token': config.csrf_token }, - success: function(data) { + success: function (data) { registerBtn.removeClass('disabled'); if (!data) { return; @@ -88,16 +88,16 @@ define('forum/register', ['translator'], function(translator) { if (data.referrer) { window.location.href = data.referrer; } else if (data.message) { - require(['translator'], function(translator) { - translator.translate(data.message, function(msg) { + require(['translator'], function (translator) { + translator.translate(data.message, function (msg) { bootbox.alert(msg); ajaxify.go('/'); }); }); } }, - error: function(data) { - translator.translate(data.responseText, config.defaultLang, function(translated) { + error: function (data) { + translator.translate(data.responseText, config.defaultLang, function (translated) { if (data.status === 403 && data.responseText === 'Forbidden') { window.location.href = config.relative_path + '/register?error=csrf-invalid'; } else { @@ -113,7 +113,7 @@ define('forum/register', ['translator'], function(translator) { }; function validateEmail(email, callback) { - callback = callback || function() {}; + callback = callback || function () {}; var email_notify = $('#email-notify'); if (!utils.isEmailValid(email)) { @@ -123,7 +123,7 @@ define('forum/register', ['translator'], function(translator) { socket.emit('user.emailExists', { email: email - }, function(err, exists) { + }, function (err, exists) { if (err) { app.alertError(err.message); return callback(); @@ -140,7 +140,7 @@ define('forum/register', ['translator'], function(translator) { } function validateUsername(username, callback) { - callback = callback || function() {}; + callback = callback || function () {}; var username_notify = $('#username-notify'); @@ -153,7 +153,7 @@ define('forum/register', ['translator'], function(translator) { } else { socket.emit('user.exists', { username: username - }, function(err, exists) { + }, function (err, exists) { if (err) { return app.alertError(err.message); } @@ -208,7 +208,7 @@ define('forum/register', ['translator'], function(translator) { } function showError(element, msg) { - translator.translate(msg, function(msg) { + translator.translate(msg, function (msg) { element.html(msg); element.parent() .removeClass('register-success') @@ -219,7 +219,7 @@ define('forum/register', ['translator'], function(translator) { } function showSuccess(element, msg) { - translator.translate(msg, function(msg) { + translator.translate(msg, function (msg) { element.html(msg); element.parent() .removeClass('register-danger') diff --git a/public/src/client/reset.js b/public/src/client/reset.js index ef6856555a..3e0220957b 100644 --- a/public/src/client/reset.js +++ b/public/src/client/reset.js @@ -1,17 +1,17 @@ "use strict"; /*globals define, app, socket*/ -define('forum/reset', function() { +define('forum/reset', function () { var ResetPassword = {}; - ResetPassword.init = function() { + ResetPassword.init = function () { var inputEl = $('#email'), errorEl = $('#error'), successEl = $('#success'); - $('#reset').on('click', function() { + $('#reset').on('click', function () { if (inputEl.val() && inputEl.val().indexOf('@') !== -1) { - socket.emit('user.reset.send', inputEl.val(), function(err) { + socket.emit('user.reset.send', inputEl.val(), function (err) { if(err) { return app.alertError(err.message); } diff --git a/public/src/client/reset_code.js b/public/src/client/reset_code.js index 2efd14b1a6..044602144c 100644 --- a/public/src/client/reset_code.js +++ b/public/src/client/reset_code.js @@ -1,17 +1,17 @@ "use strict"; /*globals define, app, ajaxify, socket, config*/ -define('forum/reset_code', function() { +define('forum/reset_code', function () { var ResetCode = {}; - ResetCode.init = function() { + ResetCode.init = function () { var reset_code = ajaxify.data.code; var resetEl = $('#reset'); var password = $('#password'); var repeat = $('#repeat'); - resetEl.on('click', function() { + resetEl.on('click', function () { if (password.val().length < ajaxify.data.minimumPasswordLength) { app.alertError('[[reset_password:password_too_short]]'); } else if (password.val() !== repeat.val()) { @@ -21,7 +21,7 @@ define('forum/reset_code', function() { socket.emit('user.reset.commit', { code: reset_code, password: password.val() - }, function(err) { + }, function (err) { if (err) { ajaxify.refresh(); return app.alertError(err.message); diff --git a/public/src/client/search.js b/public/src/client/search.js index 91839ff880..20c85c13c2 100644 --- a/public/src/client/search.js +++ b/public/src/client/search.js @@ -2,10 +2,10 @@ /* globals app, define, utils*/ -define('forum/search', ['search', 'autocomplete'], function(searchModule, autocomplete) { +define('forum/search', ['search', 'autocomplete'], function (searchModule, autocomplete) { var Search = {}; - Search.init = function() { + Search.init = function () { var searchQuery = $('#results').attr('data-search-query'); $('#search-input').val(searchQuery); @@ -14,15 +14,15 @@ define('forum/search', ['search', 'autocomplete'], function(searchModule, autoco fillOutForm(); - searchIn.on('change', function() { + searchIn.on('change', function () { updateFormItemVisiblity(searchIn.val()); }); highlightMatches(searchQuery); - $('#advanced-search').off('submit').on('submit', function(e) { + $('#advanced-search').off('submit').on('submit', function (e) { e.preventDefault(); - searchModule.query(getSearchData(), function() { + searchModule.query(getSearchData(), function () { $('#search-input').val(''); }); return false; @@ -120,10 +120,10 @@ define('forum/search', ['search', 'autocomplete'], function(searchModule, autoco var regexStr = searchQuery.replace(/^"/, '').replace(/"$/, '').trim().split(' ').join('|'); var regex = new RegExp('(' + regexStr + ')', 'gi'); - $('.search-result-text p, .search-result-text h4').each(function() { + $('.search-result-text p, .search-result-text h4').each(function () { var result = $(this), nested = []; - result.find('*').each(function() { + result.find('*').each(function () { $(this).after(''); nested.push($('
    ').append($(this))); }); @@ -139,13 +139,13 @@ define('forum/search', ['search', 'autocomplete'], function(searchModule, autoco } function handleSavePreferences() { - $('#save-preferences').on('click', function() { + $('#save-preferences').on('click', function () { localStorage.setItem('search-preferences', JSON.stringify(getSearchData())); app.alertSuccess('[[search:search-preferences-saved]]'); return false; }); - $('#clear-preferences').on('click', function() { + $('#clear-preferences').on('click', function () { localStorage.removeItem('search-preferences'); var query = $('#search-input').val(); $('#advanced-search')[0].reset(); diff --git a/public/src/client/tag.js b/public/src/client/tag.js index b475c7406b..e48252ec76 100644 --- a/public/src/client/tag.js +++ b/public/src/client/tag.js @@ -2,17 +2,17 @@ /* globals define, app, ajaxify, socket */ -define('forum/tag', ['forum/recent', 'forum/infinitescroll'], function(recent, infinitescroll) { +define('forum/tag', ['forum/recent', 'forum/infinitescroll'], function (recent, infinitescroll) { var Tag = {}; - Tag.init = function() { + Tag.init = function () { app.enterRoom('tags'); if ($('body').height() <= $(window).height() && $('[component="category"]').children().length >= 20) { $('#load-more-btn').show(); } - $('#load-more-btn').on('click', function() { + $('#load-more-btn').on('click', function () { loadMoreTopics(); }); @@ -28,7 +28,7 @@ define('forum/tag', ['forum/recent', 'forum/infinitescroll'], function(recent, i infinitescroll.loadMore('topics.loadMoreFromSet', { set: 'tag:' + ajaxify.data.tag + ':topics', after: $('[component="category"]').attr('data-nextstart') - }, function(data, done) { + }, function (data, done) { if (data.topics && data.topics.length) { recent.onTopicsLoaded('tag', data.topics, false, done); } else { diff --git a/public/src/client/tags.js b/public/src/client/tags.js index 5ea916257e..4fbae1ecf5 100644 --- a/public/src/client/tags.js +++ b/public/src/client/tags.js @@ -2,14 +2,14 @@ /* globals define, app, utils, socket */ -define('forum/tags', ['forum/infinitescroll'], function(infinitescroll) { +define('forum/tags', ['forum/infinitescroll'], function (infinitescroll) { var Tags = {}; var timeoutId = 0; - Tags.init = function() { + Tags.init = function () { app.enterRoom('tags'); - $('#tag-search').on('input propertychange', function() { + $('#tag-search').on('input propertychange', function () { if (timeoutId) { clearTimeout(timeoutId); timeoutId = 0; @@ -19,12 +19,12 @@ define('forum/tags', ['forum/infinitescroll'], function(infinitescroll) { return resetSearch(); } - timeoutId = setTimeout(function() { - socket.emit('topics.searchAndLoadTags', {query: $('#tag-search').val()}, function(err, results) { + timeoutId = setTimeout(function () { + socket.emit('topics.searchAndLoadTags', {query: $('#tag-search').val()}, function (err, results) { if (err) { return app.alertError(err.message); } - onTagsLoaded(results.tags, true, function() { + onTagsLoaded(results.tags, true, function () { timeoutId = 0; }); }); @@ -34,14 +34,14 @@ define('forum/tags', ['forum/infinitescroll'], function(infinitescroll) { infinitescroll.init(Tags.loadMoreTags); }; - Tags.loadMoreTags = function(direction) { + Tags.loadMoreTags = function (direction) { if(direction < 0 || !$('.tag-list').length) { return; } infinitescroll.loadMore('topics.loadMoreTags', { after: $('.tag-list').attr('data-nextstart') - }, function(data, done) { + }, function (data, done) { if (data && data.tags && data.tags.length) { onTagsLoaded(data.tags, false, done); $('.tag-list').attr('data-nextstart', data.nextStart); @@ -54,7 +54,7 @@ define('forum/tags', ['forum/infinitescroll'], function(infinitescroll) { function resetSearch() { socket.emit('topics.loadMoreTags', { after: 0 - }, function(err, data) { + }, function (err, data) { if (err) { return app.alertError(err.message); } @@ -63,8 +63,8 @@ define('forum/tags', ['forum/infinitescroll'], function(infinitescroll) { } function onTagsLoaded(tags, replace, callback) { - callback = callback || function() {}; - app.parseAndTranslate('tags', 'tags', {tags: tags}, function(html) { + callback = callback || function () {}; + app.parseAndTranslate('tags', 'tags', {tags: tags}, function (html) { $('.tag-list')[replace ? 'html' : 'append'](html); utils.makeNumbersHumanReadable(html.find('.human-readable-number')); callback(); diff --git a/public/src/client/topic.js b/public/src/client/topic.js index 6f81233ee4..3408f18560 100644 --- a/public/src/client/topic.js +++ b/public/src/client/topic.js @@ -12,11 +12,11 @@ define('forum/topic', [ 'navigator', 'sort', 'components' -], function(infinitescroll, threadTools, postTools, events, posts, navigator, sort, components) { +], function (infinitescroll, threadTools, postTools, events, posts, navigator, sort, components) { var Topic = {}, currentUrl = ''; - $(window).on('action:ajaxify.start', function(ev, data) { + $(window).on('action:ajaxify.start', function (ev, data) { if (Topic.replaceURLTimeout) { clearTimeout(Topic.replaceURLTimeout); Topic.replaceURLTimeout = 0; @@ -32,7 +32,7 @@ define('forum/topic', [ } if (data.url && !data.url.startsWith('topic/')) { - require(['search'], function(search) { + require(['search'], function (search) { if (search.topicDOM.active) { search.topicDOM.end(); } @@ -40,7 +40,7 @@ define('forum/topic', [ } }); - Topic.init = function() { + Topic.init = function () { var tid = ajaxify.data.tid; $(window).trigger('action:topic.loading'); @@ -98,16 +98,16 @@ define('forum/topic', [ } function handleTopicSearch() { - require(['search', 'mousetrap'], function(search, mousetrap) { + require(['search', 'mousetrap'], function (search, mousetrap) { $('.topic-search') - .on('click', '.prev', function() { + .on('click', '.prev', function () { search.topicDOM.prev(); }) - .on('click', '.next', function() { + .on('click', '.next', function () { search.topicDOM.next(); }); - mousetrap.bind('ctrl+f', function(e) { + 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]+)/), @@ -123,12 +123,12 @@ define('forum/topic', [ }); } - Topic.toTop = function() { + Topic.toTop = function () { navigator.scrollTop(0); }; - Topic.toBottom = function() { - socket.emit('topics.postcount', ajaxify.data.tid, function(err, postCount) { + Topic.toBottom = function () { + socket.emit('topics.postcount', ajaxify.data.tid, function (err, postCount) { if (err) { return app.alertError(err.message); } @@ -155,14 +155,14 @@ define('forum/topic', [ message: '[[topic:bookmark_instructions]]', timeout: 0, type: 'info', - clickfn : function() { + clickfn : function () { navigator.scrollToPost(parseInt(bookmark - 1, 10), true); }, - closefn : function() { + closefn : function () { localStorage.removeItem('topic:' + tid + ':bookmark'); } }); - setTimeout(function() { + setTimeout(function () { app.removeAlert('bookmark'); }, 10000); } else { @@ -187,7 +187,7 @@ define('forum/topic', [ } function addBlockQuoteHandler() { - components.get('topic').on('click', 'blockquote .toggle', function() { + components.get('topic').on('click', 'blockquote .toggle', function () { var blockQuote = $(this).parent('blockquote'); var toggle = $(this); blockQuote.toggleClass('uncollapsed'); @@ -197,7 +197,7 @@ define('forum/topic', [ } function addParentHandler() { - components.get('topic').on('click', '[component="post/parent"]', function(e) { + components.get('topic').on('click', '[component="post/parent"]', function (e) { var toPid = $(this).attr('data-topid'); var toPost = $('[component="post"][data-pid="' + toPid + '"]'); @@ -221,14 +221,14 @@ define('forum/topic', [ } } - Topic.calculateIndex = function(index, elementCount) { + Topic.calculateIndex = function (index, elementCount) { if (index !== 1 && config.topicPostSort !== 'oldest_to_newest') { return elementCount - index + 2; } return index; }; - Topic.navigatorCallback = function(index, elementCount, threshold) { + Topic.navigatorCallback = function (index, elementCount, threshold) { var path = ajaxify.removeRelativePath(window.location.pathname.slice(1)); if (!path.startsWith('topic')) { return; @@ -248,7 +248,7 @@ define('forum/topic', [ clearTimeout(Topic.replaceURLTimeout); } - Topic.replaceURLTimeout = setTimeout(function() { + Topic.replaceURLTimeout = setTimeout(function () { if (index >= elementCount && app.user.uid) { socket.emit('topics.markAsRead', [ajaxify.data.tid]); @@ -281,7 +281,7 @@ define('forum/topic', [ socket.emit('topics.bookmark', { 'tid': ajaxify.data.tid, 'index': index - }, function(err) { + }, function (err) { if (err) { return app.alertError(err.message); } diff --git a/public/src/client/topic/delete-posts.js b/public/src/client/topic/delete-posts.js index 8c114679c4..ec7a0ca1d5 100644 --- a/public/src/client/topic/delete-posts.js +++ b/public/src/client/topic/delete-posts.js @@ -2,14 +2,14 @@ /* globals define, app, ajaxify, socket */ -define('forum/topic/delete-posts', ['components', 'postSelect'], function(components, postSelect) { +define('forum/topic/delete-posts', ['components', 'postSelect'], function (components, postSelect) { var DeletePosts = {}; var modal; var deleteBtn; var purgeBtn; - DeletePosts.init = function() { + DeletePosts.init = function () { $('.topic').on('click', '[component="topic/delete/posts"]', onDeletePostsClicked); $(window).on('action:ajaxify.start', onAjaxifyStart); }; @@ -20,7 +20,7 @@ define('forum/topic/delete-posts', ['components', 'postSelect'], function(compon } function onDeletePostsClicked() { - app.parseAndTranslate('partials/delete_posts_modal', {}, function(html) { + app.parseAndTranslate('partials/delete_posts_modal', {}, function (html) { modal = html; $('body').append(modal); @@ -30,16 +30,16 @@ define('forum/topic/delete-posts', ['components', 'postSelect'], function(compon modal.find('.close,#delete_posts_cancel').on('click', closeModal); - postSelect.init(function() { + postSelect.init(function () { checkButtonEnable(); showPostsSelected(); }); showPostsSelected(); - deleteBtn.on('click', function() { + deleteBtn.on('click', function () { deletePosts(deleteBtn, 'posts.deletePosts'); }); - purgeBtn.on('click', function() { + purgeBtn.on('click', function () { deletePosts(purgeBtn, 'posts.purgePosts'); }); }); @@ -50,7 +50,7 @@ define('forum/topic/delete-posts', ['components', 'postSelect'], function(compon socket.emit(command, { tid: ajaxify.data.tid, pids: postSelect.pids - }, function(err) { + }, function (err) { btn.removeAttr('disabled'); if (err) { return app.alertError(err.message); @@ -79,7 +79,7 @@ define('forum/topic/delete-posts', ['components', 'postSelect'], function(compon } function closeModal() { - postSelect.pids.forEach(function(pid) { + postSelect.pids.forEach(function (pid) { components.get('post', 'pid', pid).toggleClass('bg-success', false); }); diff --git a/public/src/client/topic/events.js b/public/src/client/topic/events.js index bba3cb0dcb..f6a6aecc6d 100644 --- a/public/src/client/topic/events.js +++ b/public/src/client/topic/events.js @@ -9,7 +9,7 @@ define('forum/topic/events', [ 'forum/topic/posts', 'components', 'translator' -], function(postTools, threadTools, posts, components, translator) { +], function (postTools, threadTools, posts, components, translator) { var Events = {}; @@ -47,7 +47,7 @@ define('forum/topic/events', [ 'event:new_post': posts.onNewPost }; - Events.init = function() { + Events.init = function () { Events.removeListeners(); for(var eventName in events) { if (events.hasOwnProperty(eventName)) { @@ -56,7 +56,7 @@ define('forum/topic/events', [ } }; - Events.removeListeners = function() { + Events.removeListeners = function () { for(var eventName in events) { if (events.hasOwnProperty(eventName)) { socket.removeListener(eventName, events[eventName]); @@ -107,18 +107,18 @@ define('forum/topic/events', [ var newUrl = 'topic/' + data.topic.slug + (window.location.search ? window.location.search : ''); history.replaceState({url: newUrl}, null, window.location.protocol + '//' + window.location.host + config.relative_path + '/' + newUrl); - topicTitle.fadeOut(250, function() { + topicTitle.fadeOut(250, function () { topicTitle.html(data.topic.title).fadeIn(250); }); - breadCrumb.fadeOut(250, function() { + breadCrumb.fadeOut(250, function () { breadCrumb.html(data.topic.title).fadeIn(250); }); - navbarTitle.fadeOut(250, function() { + navbarTitle.fadeOut(250, function () { navbarTitle.html(data.topic.title).fadeIn(250); }); } - editedPostEl.fadeOut(250, function() { + editedPostEl.fadeOut(250, function () { editedPostEl.html(translator.unescape(data.post.content)); editedPostEl.find('img:not(.not-responsive)').addClass('img-responsive'); app.replaceSelfLinks(editedPostEl.find('a')); @@ -132,8 +132,8 @@ define('forum/topic/events', [ editedISO: utils.toISOString(data.post.edited) }; - templates.parse('partials/topic/post-editor', editData, function(html) { - translator.translate(html, function(translated) { + templates.parse('partials/topic/post-editor', editData, function (html) { + translator.translate(html, function (translated) { html = $(translated); editorEl.replaceWith(html); html.find('.timeago').timeago(); @@ -143,10 +143,10 @@ define('forum/topic/events', [ }); if (data.topic.tags && tagsUpdated(data.topic.tags)) { - templates.parse('partials/post_bar', 'tags', {tags: data.topic.tags}, function(html) { + templates.parse('partials/post_bar', 'tags', {tags: data.topic.tags}, function (html) { var tags = $('.tags'); - tags.fadeOut(250, function() { + tags.fadeOut(250, function () { tags.html(html).fadeIn(250); }); }); @@ -158,7 +158,7 @@ define('forum/topic/events', [ return true; } - for (var i=0; i'); var indent = '      '; - category.children.forEach(function(childCategory) { + category.children.forEach(function (childCategory) { if (!childCategory.link) { buildRecursive(parentEl, childCategory, indent + level); } @@ -110,7 +110,7 @@ define('forum/topic/move', function() { tids: Move.tids, cid: selectedEl.attr('data-cid'), currentCid: Move.currentCid - }, function(err) { + }, function (err) { modal.modal('hide'); if (err) { diff --git a/public/src/client/topic/postTools.js b/public/src/client/topic/postTools.js index b5095384da..d09325ebfd 100644 --- a/public/src/client/topic/postTools.js +++ b/public/src/client/topic/postTools.js @@ -2,13 +2,13 @@ /* globals define, app, ajaxify, bootbox, socket, templates, utils, config */ -define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator'], function(share, navigator, components, translator) { +define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator'], function (share, navigator, components, translator) { var PostTools = {}; var staleReplyAnyway = false; - PostTools.init = function(tid) { + PostTools.init = function (tid) { staleReplyAnyway = false; renderMenu(); @@ -23,7 +23,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator }; function renderMenu() { - $('[component="topic"]').on('show.bs.dropdown', '.moderator-tools', function() { + $('[component="topic"]').on('show.bs.dropdown', '.moderator-tools', function () { var $this = $(this); var dropdownMenu = $this.find('.dropdown-menu'); if (dropdownMenu.html()) { @@ -33,14 +33,14 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator var pid = postEl.attr('data-pid'); var index = parseInt(postEl.attr('data-index'), 10); - socket.emit('posts.loadPostTools', {pid: pid, cid: ajaxify.data.cid}, function(err, data) { + socket.emit('posts.loadPostTools', {pid: pid, cid: ajaxify.data.cid}, function (err, data) { if (err) { return app.alertError(err.message); } data.posts.display_move_tools = data.posts.display_move_tools && index !== 0; - templates.parse('partials/topic/post-menu-list', data, function(html) { - translator.translate(html, function(html) { + templates.parse('partials/topic/post-menu-list', data, function (html) { + translator.translate(html, function (html) { dropdownMenu.html(html); $(window).trigger('action:post.tools.load'); }); @@ -49,7 +49,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator }); } - PostTools.toggle = function(pid, isDeleted) { + PostTools.toggle = function (pid, isDeleted) { var postEl = components.get('post', 'pid', pid); postEl.find('[component="post/quote"], [component="post/bookmark"], [component="post/reply"], [component="post/flag"], [component="user/chat"]') @@ -62,7 +62,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator postEl.find('[component="post/tools"] .dropdown-menu').html(''); }; - PostTools.updatePostCount = function(postCount) { + PostTools.updatePostCount = function (postCount) { var postCountEl = components.get('topic/post-count'); postCountEl.html(postCount).attr('title', postCount); utils.makeNumbersHumanReadable(postCountEl); @@ -71,9 +71,9 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator function addVoteHandler() { components.get('topic').on('mouseenter', '[data-pid] [component="post/vote-count"]', loadDataAndCreateTooltip); - components.get('topic').on('mouseout', '[data-pid] [component="post/vote-count"]', function() { + components.get('topic').on('mouseout', '[data-pid] [component="post/vote-count"]', function () { var el = $(this).parent(); - el.on('shown.bs.tooltip', function() { + el.on('shown.bs.tooltip', function () { $('.tooltip').tooltip('destroy'); el.off('shown.bs.tooltip'); }); @@ -92,7 +92,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator $('.tooltip').tooltip('destroy'); $this.off('mouseenter', loadDataAndCreateTooltip); - socket.emit('posts.getUpvoters', [pid], function(err, data) { + socket.emit('posts.getUpvoters', [pid], function (err, data) { if (err) { return app.alertError(err.message); } @@ -115,7 +115,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator } if (usernames.length + data.otherCount > 6) { usernames = usernames.join(', ').replace(/,/g, '|'); - translator.translate('[[topic:users_and_others, ' + usernames + ', ' + data.otherCount + ']]', function(translated) { + translator.translate('[[topic:users_and_others, ' + usernames + ', ' + data.otherCount + ']]', function (translated) { translated = translated.replace(/\|/g, ','); doCreateTooltip(translated); }); @@ -128,20 +128,20 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator function addPostHandlers(tid) { var postContainer = components.get('topic'); - postContainer.on('click', '[component="post/quote"]', function() { + postContainer.on('click', '[component="post/quote"]', function () { onQuoteClicked($(this), tid); }); - postContainer.on('click', '[component="post/reply"]', function() { + postContainer.on('click', '[component="post/reply"]', function () { onReplyClicked($(this), tid); }); - $('.topic').on('click', '[component="topic/reply"]', function() { + $('.topic').on('click', '[component="topic/reply"]', function () { onReplyClicked($(this), tid); }); - $('.topic').on('click', '[component="topic/reply-as-topic"]', function() { - translator.translate('[[topic:link_back, ' + ajaxify.data.titleRaw + ', ' + config.relative_path + '/topic/' + ajaxify.data.slug + ']]', function(body) { + $('.topic').on('click', '[component="topic/reply-as-topic"]', function () { + translator.translate('[[topic:link_back, ' + ajaxify.data.titleRaw + ', ' + config.relative_path + '/topic/' + ajaxify.data.slug + ']]', function (body) { $(window).trigger('action:composer.topic.new', { cid: ajaxify.data.cid, body: body @@ -149,30 +149,30 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator }); }); - postContainer.on('click', '[component="post/bookmark"]', function() { + postContainer.on('click', '[component="post/bookmark"]', function () { bookmarkPost($(this), getData($(this), 'data-pid')); }); - postContainer.on('click', '[component="post/upvote"]', function() { + postContainer.on('click', '[component="post/upvote"]', function () { return toggleVote($(this), '.upvoted', 'posts.upvote'); }); - postContainer.on('click', '[component="post/downvote"]', function() { + postContainer.on('click', '[component="post/downvote"]', function () { return toggleVote($(this), '.downvoted', 'posts.downvote'); }); - postContainer.on('click', '[component="post/vote-count"]', function() { + postContainer.on('click', '[component="post/vote-count"]', function () { showVotes(getData($(this), 'data-pid')); }); - postContainer.on('click', '[component="post/flag"]', function() { + postContainer.on('click', '[component="post/flag"]', function () { var pid = getData($(this), 'data-pid'); - require(['forum/topic/flag'], function(flag) { + require(['forum/topic/flag'], function (flag) { flag.showFlagModal(pid); }); }); - postContainer.on('click', '[component="post/edit"]', function() { + postContainer.on('click', '[component="post/edit"]', function () { var btn = $(this); var timestamp = parseInt(getData(btn, 'data-timestamp'), 10); @@ -185,7 +185,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator } }); - postContainer.on('click', '[component="post/delete"]', function() { + postContainer.on('click', '[component="post/delete"]', function () { var btn = $(this); var timestamp = parseInt(getData(btn, 'data-timestamp'), 10); var postDeleteDuration = parseInt(ajaxify.data.postDeleteDuration, 10); @@ -226,19 +226,19 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator return true; } - postContainer.on('click', '[component="post/restore"]', function() { + postContainer.on('click', '[component="post/restore"]', function () { togglePostDelete($(this), tid); }); - postContainer.on('click', '[component="post/purge"]', function() { + postContainer.on('click', '[component="post/purge"]', function () { purgePost($(this), tid); }); - postContainer.on('click', '[component="post/move"]', function() { + postContainer.on('click', '[component="post/move"]', function () { openMovePostModal($(this)); }); - postContainer.on('click', '[component="post/chat"]', function() { + postContainer.on('click', '[component="post/chat"]', function () { openChat($(this)); }); } @@ -246,7 +246,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator function onReplyClicked(button, tid) { var selectedText = getSelectedText(button); - showStaleWarning(function() { + showStaleWarning(function () { var username = getUserName(button); if (getData(button, 'data-uid') === '0' || !getData(button, 'data-userslug')) { username = ''; @@ -278,7 +278,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator function onQuoteClicked(button, tid) { var selectedText = getSelectedText(button); - showStaleWarning(function() { + showStaleWarning(function () { function quote(text) { $(window).trigger('action:composer.addQuote', { @@ -298,7 +298,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator if (selectedText) { return quote(selectedText); } - socket.emit('posts.getRawPost', pid, function(err, post) { + socket.emit('posts.getRawPost', pid, function (err, post) { if (err) { return app.alertError(err.message); } @@ -336,7 +336,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator socket.emit(method, { pid: pid, room_id: app.currentRoom - }, function(err) { + }, function (err) { if (err) { app.alertError(err.message); } @@ -352,7 +352,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator socket.emit(currentState ? 'posts.unvote' : method , { pid: post.attr('data-pid'), room_id: app.currentRoom - }, function(err) { + }, function (err) { if (err) { if (err.message === 'self-vote') { showVotes(post.attr('data-pid')); @@ -366,7 +366,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator } function showVotes(pid) { - socket.emit('posts.getVoters', {pid: pid, cid: ajaxify.data.cid}, function(err, data) { + socket.emit('posts.getVoters', {pid: pid, cid: ajaxify.data.cid}, function (err, data) { if (err) { if (err.message === '[[error:no-privileges]]') { return; @@ -376,8 +376,8 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator return app.alertError(err.message); } - templates.parse('partials/modals/votes_modal', data, function(html) { - translator.translate(html, function(translated) { + templates.parse('partials/modals/votes_modal', data, function (html) { + translator.translate(html, function (translated) { var dialog = bootbox.dialog({ title: 'Voters', message: translated, @@ -385,7 +385,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator show: true }); - dialog.on('click', function() { + dialog.on('click', function () { dialog.modal('hide'); }); @@ -429,8 +429,8 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator } function postAction(action, pid, tid) { - translator.translate('[[topic:post_' + action + '_confirm]]', function(msg) { - bootbox.confirm(msg, function(confirm) { + translator.translate('[[topic:post_' + action + '_confirm]]', function (msg) { + bootbox.confirm(msg, function (confirm) { if (!confirm) { return; } @@ -438,7 +438,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator socket.emit('posts.' + action, { pid: pid, tid: tid - }, function(err) { + }, function (err) { if (err) { app.alertError(err.message); } @@ -448,28 +448,28 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator } function openMovePostModal(button) { - parseMoveModal(function(html) { + parseMoveModal(function (html) { var moveModal = $(html); var moveBtn = moveModal.find('#move_post_commit'), topicId = moveModal.find('#topicId'); - moveModal.on('hidden.bs.modal', function() { + moveModal.on('hidden.bs.modal', function () { moveModal.remove(); }); showMoveModal(moveModal); - moveModal.find('.close, #move_post_cancel').on('click', function() { + moveModal.find('.close, #move_post_cancel').on('click', function () { moveModal.addClass('hide'); }); - topicId.on('keyup change', function() { + topicId.on('keyup change', function () { moveBtn.attr('disabled', !topicId.val()); }); - moveBtn.on('click', function() { - movePost(button.parents('[data-pid]'), getData(button, 'data-pid'), topicId.val(), function() { + moveBtn.on('click', function () { + movePost(button.parents('[data-pid]'), getData(button, 'data-pid'), topicId.val(), function () { moveModal.modal('hide'); topicId.val(''); }); @@ -479,7 +479,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator } function parseMoveModal(callback) { - templates.parse('partials/move_post_modal', {}, function(html) { + templates.parse('partials/move_post_modal', {}, function (html) { translator.translate(html, callback); }); } @@ -493,13 +493,13 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator } function movePost(post, pid, tid, callback) { - socket.emit('posts.movePost', {pid: pid, tid: tid}, function(err) { + socket.emit('posts.movePost', {pid: pid, tid: tid}, function (err) { if (err) { app.alertError(err.message); return callback(); } - post.fadeOut(500, function() { + post.fadeOut(500, function () { post.remove(); }); @@ -521,7 +521,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator return callback(); } - translator.translate('[[topic:stale.warning]]', function(translated) { + translator.translate('[[topic:stale.warning]]', function (translated) { var warning = bootbox.dialog({ title: '[[topic:stale.title]]', message: translated, @@ -529,7 +529,7 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator reply: { label: '[[topic:stale.reply_anyway]]', className: 'btn-link', - callback: function() { + callback: function () { staleReplyAnyway = true; callback(); } @@ -537,8 +537,8 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator create: { label: '[[topic:stale.create]]', className: 'btn-primary', - callback: function() { - translator.translate('[[topic:link_back, ' + ajaxify.data.title + ', ' + config.relative_path + '/topic/' + ajaxify.data.slug + ']]', function(body) { + callback: function () { + translator.translate('[[topic:link_back, ' + ajaxify.data.title + ', ' + config.relative_path + '/topic/' + ajaxify.data.slug + ']]', function (body) { $(window).trigger('action:composer.topic.new', { cid: ajaxify.data.cid, body: body diff --git a/public/src/client/topic/posts.js b/public/src/client/topic/posts.js index 1c0d03eeb0..bc2d297112 100644 --- a/public/src/client/topic/posts.js +++ b/public/src/client/topic/posts.js @@ -8,13 +8,13 @@ define('forum/topic/posts', [ 'forum/topic/postTools', 'navigator', 'components' -], function(pagination, infinitescroll, postTools, navigator, components) { +], function (pagination, infinitescroll, postTools, navigator, components) { var Posts = { _imageLoaderTimeout: undefined }; - Posts.onNewPost = function(data) { + Posts.onNewPost = function (data) { if (!data || !data.posts || !data.posts.length) { return; } @@ -25,7 +25,7 @@ define('forum/topic/posts', [ data.loggedIn = app.user.uid ? true : false; data.privileges = ajaxify.data.privileges; - data.posts.forEach(function(post) { + data.posts.forEach(function (post) { post.selfPost = !!app.user.uid && parseInt(post.uid, 10) === parseInt(app.user.uid, 10); post.display_edit_tools = (ajaxify.data.privileges['posts:edit'] && post.selfPost) || ajaxify.data.privileges.isAdminOrMod; post.display_delete_tools = (ajaxify.data.privileges['posts:delete'] && post.selfPost) || ajaxify.data.privileges.isAdminOrMod; @@ -47,7 +47,7 @@ define('forum/topic/posts', [ }; function updatePostCounts(posts) { - for (var i=0; i 1) { - data.posts.forEach(function(post) { + data.posts.forEach(function (post) { var p = components.get('post', 'pid', post.pid); if (p.hasClass('new')) { p.remove(); @@ -145,7 +145,7 @@ define('forum/topic/posts', [ }); } - data.posts = data.posts.filter(function(post) { + data.posts = data.posts.filter(function (post) { return $('[component="post"][data-pid="' + post.pid + '"]').length === 0; }); } @@ -168,9 +168,9 @@ define('forum/topic/posts', [ $(window).trigger('action:posts.loading', {posts: data.posts, after: after, before: before}); - app.parseAndTranslate('topic', 'posts', data, function(html) { + app.parseAndTranslate('topic', 'posts', data, function (html) { - html = html.filter(function() { + html = html.filter(function () { var pid = $(this).attr('data-pid'); return pid && $('[component="post"][data-pid="' + pid + '"]').length === 0; }); @@ -200,12 +200,12 @@ define('forum/topic/posts', [ }); } - Posts.loadMorePosts = function(direction) { + Posts.loadMorePosts = function (direction) { if (!components.get('topic').length || navigator.scrollActive || Posts._infiniteScrollTimeout) { return; } - Posts._infiniteScrollTimeout = setTimeout(function() { + Posts._infiniteScrollTimeout = setTimeout(function () { delete Posts._infiniteScrollTimeout; }, 1000); var replies = components.get('post').not('[data-index=0]').not('.new'); @@ -239,7 +239,7 @@ define('forum/topic/posts', [ }); }; - Posts.processPage = function(posts) { + Posts.processPage = function (posts) { Posts.unloadImages(posts); Posts.showBottomPostBar(); posts.find('[component="post/content"] img:not(.not-responsive)').addClass('img-responsive'); @@ -253,11 +253,11 @@ define('forum/topic/posts', [ hidePostToolsForDeletedPosts(posts); }; - Posts.unloadImages = function(posts) { + Posts.unloadImages = function (posts) { var images = posts.find('[component="post/content"] img:not(.not-responsive)'); if (config.delayImageLoading) { - images.each(function() { + images.each(function () { $(this).attr('data-src', $(this).attr('src')); }).attr('data-state', 'unloaded').attr('src', 'about:blank'); } else { @@ -266,12 +266,12 @@ define('forum/topic/posts', [ } }; - Posts.loadImages = function(threshold) { + Posts.loadImages = function (threshold) { if (Posts._imageLoaderTimeout) { clearTimeout(Posts._imageLoaderTimeout); } - Posts._imageLoaderTimeout = setTimeout(function() { + Posts._imageLoaderTimeout = setTimeout(function () { /* If threshold is defined, images loaded above this threshold will modify the user's scroll position so they are not scrolled away from content @@ -282,16 +282,16 @@ define('forum/topic/posts', [ */ var images = components.get('post/content').find('img[data-state="unloaded"]'), - visible = images.filter(function() { + visible = images.filter(function () { return utils.isElementInViewport(this); }), - posts = $.unique(visible.map(function() { + posts = $.unique(visible.map(function () { return $(this).parents('[component="post"]').get(0); })), scrollTop = $(window).scrollTop(), adjusting = false, adjustQueue = [], - adjustPosition = function() { + adjustPosition = function () { adjusting = true; oldHeight = document.body.clientHeight; @@ -318,10 +318,10 @@ define('forum/topic/posts', [ // For each image, reset the source and adjust scrollTop when loaded visible.attr('data-state', 'loading'); - visible.each(function(index, image) { + visible.each(function (index, image) { image = $(image); - image.on('load', function() { + image.on('load', function () { if (!adjusting) { adjustPosition.call(this); } else { @@ -335,8 +335,8 @@ define('forum/topic/posts', [ }, 250); }; - Posts.wrapImagesInLinks = function(posts) { - posts.find('[component="post/content"] img:not(.emoji)').each(function() { + Posts.wrapImagesInLinks = function (posts) { + posts.find('[component="post/content"] img:not(.emoji)').each(function () { var $this = $(this), src = $this.attr('src'), suffixRegex = /-resized(\.[\w]+)?$/; @@ -355,7 +355,7 @@ define('forum/topic/posts', [ }); }; - Posts.showBottomPostBar = function() { + Posts.showBottomPostBar = function () { var mainPost = components.get('post', 'index', 0); var placeHolder = $('.post-bar-placeholder'); var posts = $('[component="post"]'); @@ -368,7 +368,7 @@ define('forum/topic/posts', [ }; function hidePostToolsForDeletedPosts(posts) { - posts.each(function() { + posts.each(function () { if ($(this).hasClass('deleted')) { postTools.toggle($(this).attr('data-pid'), true); } @@ -376,7 +376,7 @@ define('forum/topic/posts', [ } function addBlockquoteEllipses(blockquotes) { - blockquotes.each(function() { + blockquotes.each(function () { var $this = $(this); if ($this.find(':hidden:not(br)').length && !$this.find('.toggle').length) { $this.append(''); diff --git a/public/src/client/topic/threadTools.js b/public/src/client/topic/threadTools.js index a18c069cd5..7eef6306a3 100644 --- a/public/src/client/topic/threadTools.js +++ b/public/src/client/topic/threadTools.js @@ -8,53 +8,53 @@ define('forum/topic/threadTools', [ 'forum/topic/delete-posts', 'components', 'translator' -], function(fork, move, deletePosts, components, translator) { +], function (fork, move, deletePosts, components, translator) { var ThreadTools = {}; - ThreadTools.init = function(tid) { + ThreadTools.init = function (tid) { renderMenu(); var topicContainer = $('.topic'); - topicContainer.on('click', '[component="topic/delete"]', function() { + topicContainer.on('click', '[component="topic/delete"]', function () { topicCommand('delete', tid); return false; }); - topicContainer.on('click', '[component="topic/restore"]', function() { + topicContainer.on('click', '[component="topic/restore"]', function () { topicCommand('restore', tid); return false; }); - topicContainer.on('click', '[component="topic/purge"]', function() { + topicContainer.on('click', '[component="topic/purge"]', function () { topicCommand('purge', tid); return false; }); - topicContainer.on('click', '[component="topic/lock"]', function() { + topicContainer.on('click', '[component="topic/lock"]', function () { socket.emit('topics.lock', {tids: [tid], cid: ajaxify.data.cid}); return false; }); - topicContainer.on('click', '[component="topic/unlock"]', function() { + topicContainer.on('click', '[component="topic/unlock"]', function () { socket.emit('topics.unlock', {tids: [tid], cid: ajaxify.data.cid}); return false; }); - topicContainer.on('click', '[component="topic/pin"]', function() { + topicContainer.on('click', '[component="topic/pin"]', function () { socket.emit('topics.pin', {tids: [tid], cid: ajaxify.data.cid}); return false; }); - topicContainer.on('click', '[component="topic/unpin"]', function() { + topicContainer.on('click', '[component="topic/unpin"]', function () { socket.emit('topics.unpin', {tids: [tid], cid: ajaxify.data.cid}); return false; }); - topicContainer.on('click', '[component="topic/mark-unread"]', function() { - socket.emit('topics.markUnread', tid, function(err) { + topicContainer.on('click', '[component="topic/mark-unread"]', function () { + socket.emit('topics.markUnread', tid, function (err) { if (err) { return app.alertError(err); } @@ -63,9 +63,9 @@ define('forum/topic/threadTools', [ return false; }); - topicContainer.on('click', '[component="topic/mark-unread-for-all"]', function() { + topicContainer.on('click', '[component="topic/mark-unread-for-all"]', function () { var btn = $(this); - socket.emit('topics.markAsUnreadForAll', [tid], function(err) { + socket.emit('topics.markAsUnreadForAll', [tid], function (err) { if (err) { return app.alertError(err.message); } @@ -75,7 +75,7 @@ define('forum/topic/threadTools', [ return false; }); - topicContainer.on('click', '[component="topic/move"]', function() { + topicContainer.on('click', '[component="topic/move"]', function () { move.init([tid], ajaxify.data.cid); return false; }); @@ -83,18 +83,18 @@ define('forum/topic/threadTools', [ deletePosts.init(); fork.init(); - $('.topic').on('click', '[component="topic/following"]', function() { + $('.topic').on('click', '[component="topic/following"]', function () { changeWatching('follow'); }); - $('.topic').on('click', '[component="topic/not-following"]', function() { + $('.topic').on('click', '[component="topic/not-following"]', function () { changeWatching('unfollow'); }); - $('.topic').on('click', '[component="topic/ignoring"]', function() { + $('.topic').on('click', '[component="topic/ignoring"]', function () { changeWatching('ignore'); }); function changeWatching(type) { - socket.emit('topics.changeWatching', {tid: tid, type: type}, function(err) { + socket.emit('topics.changeWatching', {tid: tid, type: type}, function (err) { if (err) { return app.alert({ type: 'danger', @@ -136,13 +136,13 @@ define('forum/topic/threadTools', [ return; } - socket.emit('topics.loadTopicTools', {tid: ajaxify.data.tid, cid: ajaxify.data.cid}, function(err, data) { + socket.emit('topics.loadTopicTools', {tid: ajaxify.data.tid, cid: ajaxify.data.cid}, function (err, data) { if (err) { return app.alertError(err); } - templates.parse('partials/topic/topic-menu-list', data, function(html) { - translator.translate(html, function(html) { + templates.parse('partials/topic/topic-menu-list', data, function (html) { + translator.translate(html, function (html) { dropdownMenu.html(html); $(window).trigger('action:topic.tools.load'); }); @@ -152,13 +152,13 @@ define('forum/topic/threadTools', [ } function topicCommand(command, tid) { - translator.translate('[[topic:thread_tools.' + command + '_confirm]]', function(msg) { - bootbox.confirm(msg, function(confirm) { + translator.translate('[[topic:thread_tools.' + command + '_confirm]]', function (msg) { + bootbox.confirm(msg, function (confirm) { if (!confirm) { return; } - socket.emit('topics.' + command, {tids: [tid], cid: ajaxify.data.cid}, function(err) { + socket.emit('topics.' + command, {tids: [tid], cid: ajaxify.data.cid}, function (err) { if (err) { app.alertError(err.message); } @@ -167,7 +167,7 @@ define('forum/topic/threadTools', [ }); } - ThreadTools.setLockedState = function(data) { + ThreadTools.setLockedState = function (data) { var threadEl = components.get('topic'); if (parseInt(data.tid, 10) !== parseInt(threadEl.attr('data-tid'), 10)) { return; @@ -186,14 +186,14 @@ define('forum/topic/threadTools', [ threadEl.find('[component="post"]:not(.deleted) [component="post/reply"], [component="post"]:not(.deleted) [component="post/quote"]').toggleClass('hidden', hideReply); threadEl.find('[component="post/edit"], [component="post/delete"]').toggleClass('hidden', isLocked); - threadEl.find('[component="post"][data-uid="'+app.user.uid+'"].deleted [component="post/tools"]').toggleClass('hidden', isLocked); + threadEl.find('[component="post"][data-uid="' + app.user.uid + '"].deleted [component="post/tools"]').toggleClass('hidden', isLocked); $('[component="post/header"] i.fa-lock').toggleClass('hidden', !data.isLocked); $('[component="post/tools"] .dropdown-menu').html(''); ajaxify.data.locked = data.isLocked; }; - ThreadTools.setDeleteState = function(data) { + ThreadTools.setDeleteState = function (data) { var threadEl = components.get('topic'); if (parseInt(data.tid, 10) !== parseInt(threadEl.attr('data-tid'), 10)) { return; @@ -215,7 +215,7 @@ define('forum/topic/threadTools', [ }; - ThreadTools.setPinnedState = function(data) { + ThreadTools.setPinnedState = function (data) { var threadEl = components.get('topic'); if (parseInt(data.tid, 10) !== parseInt(threadEl.attr('data-tid'), 10)) { return; diff --git a/public/src/client/unread.js b/public/src/client/unread.js index 4984d398b0..e185788981 100644 --- a/public/src/client/unread.js +++ b/public/src/client/unread.js @@ -2,19 +2,19 @@ /* globals define, app, socket */ -define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', 'components'], function(recent, topicSelect, infinitescroll, components) { +define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', 'components'], function (recent, topicSelect, infinitescroll, components) { var Unread = {}; - $(window).on('action:ajaxify.start', function(ev, data) { + $(window).on('action:ajaxify.start', function (ev, data) { if (ajaxify.currentPage !== data.url) { recent.removeListeners(); } }); - Unread.init = function() { + Unread.init = function () { app.enterRoom('unread_topics'); - $('#new-topics-alert').on('click', function() { + $('#new-topics-alert').on('click', function () { $(this).addClass('hide'); }); @@ -22,12 +22,12 @@ define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', ' $(window).trigger('action:topics.loaded', {topics: ajaxify.data.topics}); - $('#markSelectedRead').on('click', function() { + $('#markSelectedRead').on('click', function () { var tids = topicSelect.getSelectedTids(); if(!tids.length) { return; } - socket.emit('topics.markAsRead', tids, function(err) { + socket.emit('topics.markAsRead', tids, function (err) { if(err) { return app.alertError(err.message); } @@ -36,8 +36,8 @@ define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', ' }); }); - $('#markAllRead').on('click', function() { - socket.emit('topics.markAllRead', function(err) { + $('#markAllRead').on('click', function () { + socket.emit('topics.markAllRead', function (err) { if(err) { return app.alertError(err.message); } @@ -51,10 +51,10 @@ define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', ' }); }); - $('.markread').on('click', '.category', function() { + $('.markread').on('click', '.category', function () { function getCategoryTids(cid) { var tids = []; - components.get('category/topic', 'cid', cid).each(function() { + components.get('category/topic', 'cid', cid).each(function () { tids.push($(this).attr('data-tid')); }); return tids; @@ -62,7 +62,7 @@ define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', ' var cid = $(this).attr('data-cid'); var tids = getCategoryTids(cid); - socket.emit('topics.markCategoryTopicsRead', cid, function(err) { + socket.emit('topics.markCategoryTopicsRead', cid, function (err) { if(err) { return app.alertError(err.message); } @@ -77,7 +77,7 @@ define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', ' $('#load-more-btn').show(); } - $('#load-more-btn').on('click', function() { + $('#load-more-btn').on('click', function () { loadMoreTopics(); }); @@ -95,7 +95,7 @@ define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', ' after: $('[component="category"]').attr('data-nextstart'), cid: cid, filter: ajaxify.data.selectedFilter.filter - }, function(data, done) { + }, function (data, done) { if (data.topics && data.topics.length) { recent.onTopicsLoaded('unread', data.topics, true, done); $('[component="category"]').attr('data-nextstart', data.nextStart); @@ -119,7 +119,7 @@ define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll', ' } function removeTids(tids) { - for(var i=0; i').html(user.username).text() return user && { label: username, @@ -42,21 +42,21 @@ define('autocomplete', function() { }); }; - module.group = function(input, onselect) { - app.loadJQueryUI(function() { + module.group = function (input, onselect) { + app.loadJQueryUI(function () { input.autocomplete({ delay: 200, select: onselect, - source: function(request, response) { + source: function (request, response) { socket.emit('groups.search', { query: request.term - }, function(err, results) { + }, function (err, results) { if (err) { return app.alertError(err.message); } if (results && results.length) { - var names = results.map(function(group) { + var names = results.map(function (group) { return group && { label: group.name, value: group.name, diff --git a/public/src/modules/chat.js b/public/src/modules/chat.js index a856f3d88c..af7ef0fff3 100644 --- a/public/src/modules/chat.js +++ b/public/src/modules/chat.js @@ -9,16 +9,16 @@ define('chat', [ 'forum/chats', 'forum/chats/messages', 'translator' -], function(components, taskbar, S, sounds, Chats, ChatsMessages, translator) { +], function (components, taskbar, S, sounds, Chats, ChatsMessages, translator) { var module = {}; var newMessage = false; - module.prepareDOM = function() { + module.prepareDOM = function () { var chatsToggleEl = components.get('chat/dropdown'); var chatsListEl = components.get('chat/list'); - chatsToggleEl.on('click', function() { + chatsToggleEl.on('click', function () { if (chatsToggleEl.parent().hasClass('open')) { return; } @@ -26,7 +26,7 @@ define('chat', [ module.loadChatsDropdown(chatsListEl); }); - chatsListEl.on('click', '[data-roomid]', function(ev) { + chatsListEl.on('click', '[data-roomid]', function (ev) { if ($(ev.target).parents('.user-link').length) { return; } @@ -38,15 +38,15 @@ define('chat', [ } }); - $('[component="chats/mark-all-read"]').on('click', function() { - socket.emit('modules.chats.markAllRead', function(err) { + $('[component="chats/mark-all-read"]').on('click', function () { + socket.emit('modules.chats.markAllRead', function (err) { if (err) { return app.alertError(err); } }); }); - socket.on('event:chats.receive', function(data) { + socket.on('event:chats.receive', function (data) { var username = data.message.fromUser.username; var isSelf = data.self === 1; data.message.self = data.self; @@ -75,16 +75,16 @@ define('chat', [ }); } } else { - socket.emit('modules.chats.loadRoom', {roomId: data.roomId}, function(err, roomData) { + socket.emit('modules.chats.loadRoom', {roomId: data.roomId}, function (err, roomData) { if (err) { return app.alertError(err.message); } - roomData.users = roomData.users.filter(function(user) { + roomData.users = roomData.users.filter(function (user) { return user && parseInt(user.uid, 10) !== parseInt(app.user.uid, 10); }); roomData.silent = true; roomData.uid = app.user.uid; - module.createModal(roomData, function(modal) { + module.createModal(roomData, function (modal) { module.toggleNew(modal.attr('UUID'), !isSelf, true); if (!isSelf) { app.alternatingTitle('[[modules:chat.user_has_messaged_you, ' + username + ']]'); @@ -95,32 +95,32 @@ define('chat', [ } }); - socket.on('event:user_status_change', function(data) { + socket.on('event:user_status_change', function (data) { var modal = module.getModal(data.uid); app.updateUserStatus(modal.find('[component="user/status"]'), data.status); }); - socket.on('event:chats.roomRename', function(data) { + socket.on('event:chats.roomRename', function (data) { module.getModal(data.roomId).find('[component="chat/room/name"]').val($('
    ').html(data.newName).text()); }); ChatsMessages.onChatMessageEdit(); }; - module.loadChatsDropdown = function(chatsListEl) { - socket.emit('modules.chats.getRecentChats', {uid: app.user.uid, after: 0}, function(err, data) { + module.loadChatsDropdown = function (chatsListEl) { + socket.emit('modules.chats.getRecentChats', {uid: app.user.uid, after: 0}, function (err, data) { if (err) { return app.alertError(err.message); } - var rooms = data.rooms.filter(function(room) { + var rooms = data.rooms.filter(function (room) { return room.teaser; }); templates.parse('partials/chat_dropdown', { rooms: rooms - }, function(html) { - translator.translate(html, function(translated) { + }, function (html) { + translator.translate(html, function (translated) { chatsListEl.empty().html(translated); app.createUserTooltips(chatsListEl, 'right'); }); @@ -128,7 +128,7 @@ define('chat', [ }); }; - module.bringModalToTop = function(chatModal) { + module.bringModalToTop = function (chatModal) { var topZ = 0; taskbar.updateActive(chatModal.attr('UUID')); @@ -136,7 +136,7 @@ define('chat', [ if ($('.chat-modal').length === 1) { return; } - $('.chat-modal').each(function() { + $('.chat-modal').each(function () { var thisZ = parseInt($(this).css('zIndex'), 10); if (thisZ > topZ) { topZ = thisZ; @@ -146,16 +146,16 @@ define('chat', [ chatModal.css('zIndex', topZ + 1); }; - module.getModal = function(roomId) { + module.getModal = function (roomId) { return $('#chat-modal-' + roomId); }; - module.modalExists = function(roomId) { + module.modalExists = function (roomId) { return $('#chat-modal-' + roomId).length !== 0; }; - module.createModal = function(data, callback) { - app.parseAndTranslate('chat', data, function(chatModal) { + module.createModal = function (data, callback) { + app.parseAndTranslate('chat', data, function (chatModal) { var uuid = utils.generateUUID(); var dragged = false; @@ -170,14 +170,14 @@ define('chat', [ chatModal.find('.timeago').timeago(); module.center(chatModal); - app.loadJQueryUI(function() { + app.loadJQueryUI(function () { chatModal.find('.modal-content').resizable({ handles: 'n, e, s, w, se', minHeight: 250, minWidth: 400 }); - chatModal.find('.modal-content').on('resize', function(event, ui) { + chatModal.find('.modal-content').on('resize', function (event, ui) { if (ui.originalSize.height === ui.size.height) { return; } @@ -186,10 +186,10 @@ define('chat', [ }); chatModal.draggable({ - start:function() { + start:function () { module.bringModalToTop(chatModal); }, - stop:function() { + stop:function () { chatModal.find('#chat-message-input').focus(); }, distance: 10, @@ -197,13 +197,13 @@ define('chat', [ }); }); - chatModal.find('#chat-close-btn').on('click', function() { + chatModal.find('#chat-close-btn').on('click', function () { module.close(chatModal); }); function gotoChats() { var text = components.get('chat/input').val(); - $(window).one('action:ajaxify.end', function() { + $(window).one('action:ajaxify.end', function () { components.get('chat/input').val(text); }); @@ -214,7 +214,7 @@ define('chat', [ chatModal.find('.modal-header').on('dblclick', gotoChats); chatModal.find('button[data-action="maximize"]').on('click', gotoChats); - chatModal.on('click', function() { + chatModal.on('click', function () { module.bringModalToTop(chatModal); if (dragged) { @@ -222,13 +222,13 @@ define('chat', [ } }); - chatModal.on('mousemove', function(e) { + chatModal.on('mousemove', function (e) { if (e.which === 1) { dragged = true; } }); - chatModal.on('mousemove keypress click', function() { + chatModal.on('mousemove keypress click', function () { if (newMessage) { socket.emit('modules.chats.markRead', data.roomId); newMessage = false; @@ -237,7 +237,7 @@ define('chat', [ Chats.addEditDeleteHandler(chatModal.find('[component="chat/messages"]'), data.roomId); - chatModal.find('[component="chat/controlsToggle"]').on('click', function() { + chatModal.find('[component="chat/controlsToggle"]').on('click', function () { var messagesEl = chatModal.find('[component="chat/messages"]'); chatModal.find('[component="chat/controls"]').toggle(); @@ -268,11 +268,11 @@ define('chat', [ }); }; - module.focusInput = function(chatModal) { + module.focusInput = function (chatModal) { chatModal.find('#chat-message-input').focus(); }; - module.close = function(chatModal) { + module.close = function (chatModal) { clearInterval(chatModal.attr('intervalId')); chatModal.attr('intervalId', 0); chatModal.remove(); @@ -284,7 +284,7 @@ define('chat', [ } }; - module.center = function(chatModal) { + module.center = function (chatModal) { var hideAfter = false; if (chatModal.hasClass('hide')) { chatModal.removeClass('hide'); @@ -299,7 +299,7 @@ define('chat', [ return chatModal; }; - module.load = function(uuid) { + module.load = function (uuid) { var chatModal = $('div[UUID="' + uuid + '"]'); chatModal.removeClass('hide'); taskbar.updateActive(uuid); @@ -314,22 +314,22 @@ define('chat', [ } }; - module.enableMobileBehaviour = function(modalEl) { + module.enableMobileBehaviour = function (modalEl) { app.toggleNavbar(false); modalEl.attr('data-mobile', '1'); var messagesEl = modalEl.find('.chat-content'); messagesEl.css('height', module.calculateChatListHeight(modalEl)); - $(window).on('resize', function() { + $(window).on('resize', function () { messagesEl.css('height', module.calculateChatListHeight(modalEl)); }); }; - module.disableMobileBehaviour = function() { + module.disableMobileBehaviour = function () { app.toggleNavbar(true); }; - module.calculateChatListHeight = function(modalEl) { + module.calculateChatListHeight = function (modalEl) { var totalHeight = modalEl.find('.modal-content').outerHeight() - modalEl.find('.modal-header').outerHeight(); var padding = parseInt(modalEl.find('.modal-body').css('padding-top'), 10) + parseInt(modalEl.find('.modal-body').css('padding-bottom'), 10); var contentMargin = parseInt(modalEl.find('.chat-content').css('margin-top'), 10) + parseInt(modalEl.find('.chat-content').css('margin-bottom'), 10); @@ -338,7 +338,7 @@ define('chat', [ return totalHeight - padding - contentMargin - inputGroupHeight; }; - module.minimize = function(uuid) { + module.minimize = function (uuid) { var chatModal = $('div[UUID="' + uuid + '"]'); chatModal.addClass('hide'); taskbar.minimize('chat', uuid); diff --git a/public/src/modules/components.js b/public/src/modules/components.js index 4a08e4073c..ef936d0f75 100644 --- a/public/src/modules/components.js +++ b/public/src/modules/components.js @@ -1,61 +1,61 @@ "use strict"; -define('components', function() { +define('components', function () { var components = {}; components.core = { - 'topic/teaser': function(tid) { + 'topic/teaser': function (tid) { if (tid) { return $('[component="category/topic"][data-tid="' + tid + '"] [component="topic/teaser"]'); } else { return $('[component="topic/teaser"]'); } }, - 'topic': function(name, value) { + 'topic': function (name, value) { return $('[component="topic"][data-' + name + '="' + value + '"]'); }, - 'post': function(name, value) { + 'post': function (name, value) { return $('[component="post"][data-' + name + '="' + value + '"]'); }, - 'post/content': function(pid) { + 'post/content': function (pid) { return components.core.post('pid', pid).find('[component="post/content"]'); }, - 'post/header': function(pid) { + 'post/header': function (pid) { return components.core.post('pid', pid).find('[component="post/header"]'); }, - 'post/anchor': function(index) { + 'post/anchor': function (index) { return components.core.post('index', index).find('[component="post/anchor"]'); }, - 'post/vote-count': function(pid) { + 'post/vote-count': function (pid) { return components.core.post('pid', pid).find('[component="post/vote-count"]'); }, - 'post/bookmark-count': function(pid) { + 'post/bookmark-count': function (pid) { return components.core.post('pid', pid).find('[component="post/bookmark-count"]'); }, - 'user/postcount': function(uid) { + 'user/postcount': function (uid) { return $('[component="user/postcount"][data-uid="' + uid + '"]'); }, - 'user/reputation': function(uid) { + 'user/reputation': function (uid) { return $('[component="user/reputation"][data-uid="' + uid + '"]'); }, - 'category/topic': function(name, value) { + 'category/topic': function (name, value) { return $('[component="category/topic"][data-' + name + '="' + value + '"]'); }, - 'categories/category': function(name, value) { + 'categories/category': function (name, value) { return $('[component="categories/category"][data-' + name + '="' + value + '"]'); }, - 'chat/message': function(messageId) { + 'chat/message': function (messageId) { return $('[component="chat/message"][data-mid="' + messageId + '"]'); }, - 'chat/message/body': function(messageId) { + 'chat/message/body': function (messageId) { return $('[component="chat/message"][data-mid="' + messageId + '"] [component="chat/message/body"]'); } }; - components.get = function() { + components.get = function () { var args = Array.prototype.slice.call(arguments, 1); if (components.core[arguments[0]] && args.length) { diff --git a/public/src/modules/coverPhoto.js b/public/src/modules/coverPhoto.js index 6a45732c9b..fa6bdc4d7d 100644 --- a/public/src/modules/coverPhoto.js +++ b/public/src/modules/coverPhoto.js @@ -3,19 +3,19 @@ define('coverPhoto', [ 'vendor/jquery/draggable-background/backgroundDraggable' -], function() { +], function () { var coverPhoto = { coverEl: null, saveFn: null }; - coverPhoto.init = function(coverEl, saveFn, uploadFn, removeFn) { + coverPhoto.init = function (coverEl, saveFn, uploadFn, removeFn) { coverPhoto.coverEl = coverEl; coverPhoto.saveFn = saveFn; coverEl.find('.upload').on('click', uploadFn); - coverEl.find('.resize').on('click', function() { + coverEl.find('.resize').on('click', function () { enableDragging(coverEl); }); coverEl.find('.remove').on('click', removeFn); @@ -28,13 +28,13 @@ define('coverPhoto', [ coverEl.addClass('initialised'); }; - coverPhoto.onDragOver = function(e) { + coverPhoto.onDragOver = function (e) { e.stopPropagation(); e.preventDefault(); e.originalEvent.dataTransfer.dropEffect = 'copy'; }; - coverPhoto.onDrop = function(e) { + coverPhoto.onDrop = function (e) { e.stopPropagation(); e.preventDefault(); @@ -42,7 +42,7 @@ define('coverPhoto', [ reader = new FileReader(); if (files.length && files[0].type.match('image.*')) { - reader.onload = function(e) { + reader.onload = function (e) { coverPhoto.coverEl.css('background-image', 'url(' + e.target.result + ')'); coverPhoto.newCover = e.target.result; }; @@ -67,10 +67,10 @@ define('coverPhoto', [ }); } - coverPhoto.save = function() { + coverPhoto.save = function () { coverPhoto.coverEl.addClass('saving'); - coverPhoto.saveFn(coverPhoto.newCover || undefined, coverPhoto.coverEl.css('background-position'), function(err) { + coverPhoto.saveFn(coverPhoto.newCover || undefined, coverPhoto.coverEl.css('background-position'), function (err) { if (!err) { coverPhoto.coverEl.toggleClass('active', 0); coverPhoto.coverEl.backgroundDraggable('disable'); diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js index 7250fab3b6..5de0cdbb3b 100644 --- a/public/src/modules/helpers.js +++ b/public/src/modules/helpers.js @@ -1,4 +1,4 @@ -;(function(exports) { +;(function (exports) { "use strict"; /* globals define, utils, config */ @@ -9,7 +9,7 @@ var helpers = {}; - helpers.displayMenuItem = function(data, index) { + helpers.displayMenuItem = function (data, index) { var item = data.navigation[index]; if (!item) { return false; @@ -36,7 +36,7 @@ return true; }; - helpers.buildMetaTag = function(tag) { + 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, ' ') + '" ' : ''; @@ -44,7 +44,7 @@ return '\n\t'; }; - helpers.buildLinkTag = function(tag) { + helpers.buildLinkTag = function (tag) { var link = tag.link ? 'link="' + tag.link + '" ' : '', rel = tag.rel ? 'rel="' + tag.rel + '" ' : '', type = tag.type ? 'type="' + tag.type + '" ' : '', @@ -54,12 +54,12 @@ return '\n\t'; }; - helpers.stringify = function(obj) { + helpers.stringify = function (obj) { // Turns the incoming object into a JSON string return JSON.stringify(obj).replace(/&/gm,"&").replace(//gm,">").replace(/"/g, '"'); }; - helpers.escape = function(str) { + helpers.escape = function (str) { if (typeof utils !== 'undefined') { return utils.escapeHTML(str); } else { @@ -67,7 +67,7 @@ } }; - helpers.stripTags = function(str) { + helpers.stripTags = function (str) { if (typeof S !== 'undefined') { return S(str).stripTags().s; } else { @@ -76,7 +76,7 @@ } }; - helpers.generateCategoryBackground = function(category) { + helpers.generateCategoryBackground = function (category) { if (!category) { return ''; } @@ -100,13 +100,13 @@ return style.join('; ') + ';'; }; - helpers.generateChildrenCategories = function(category) { + helpers.generateChildrenCategories = function (category) { var html = ''; var relative_path = (typeof config !== 'undefined' ? config.relative_path : require('nconf').get('relative_path')); if (!category || !category.children) { return html; } - category.children.forEach(function(child) { + category.children.forEach(function (child) { if (!child) { return; } @@ -121,7 +121,7 @@ return html; }; - helpers.generateTopicClass = function(topic) { + helpers.generateTopicClass = function (topic) { var style = []; if (topic.locked) { @@ -143,16 +143,16 @@ return style.join(' '); }; - helpers.getBookmarkFromIndex = function(topic) { + helpers.getBookmarkFromIndex = function (topic) { return (topic.index || 0) + 1; }; - helpers.displayUserSearch = function(data, allowGuestUserSearching) { + helpers.displayUserSearch = function (data, allowGuestUserSearching) { return data.loggedIn || allowGuestUserSearching === 'true'; }; // Groups helpers - helpers.membershipBtn = function(groupObj) { + helpers.membershipBtn = function (groupObj) { if (groupObj.name === 'administrators') { return ''; } @@ -172,7 +172,7 @@ } }; - helpers.spawnPrivilegeStates = function(member, privileges) { + helpers.spawnPrivilegeStates = function (member, privileges) { var states = []; for(var priv in privileges) { if (privileges.hasOwnProperty(priv)) { @@ -182,16 +182,16 @@ }); } } - return states.map(function(priv) { + return states.map(function (priv) { return ''; }).join(''); }; - helpers.localeToHTML = function(locale) { + helpers.localeToHTML = function (locale) { return locale.replace('_', '-'); }; - helpers.renderTopicImage = function(topicObj) { + helpers.renderTopicImage = function (topicObj) { if (topicObj.thumb) { return ''; } else { @@ -199,7 +199,7 @@ } }; - helpers.renderDigestAvatar = function(block) { + helpers.renderDigestAvatar = function (block) { if (block.teaser) { if (block.teaser.user.picture) { return ''; @@ -215,7 +215,7 @@ } }; - helpers.userAgentIcons = function(data) { + helpers.userAgentIcons = function (data) { var icons = ''; switch(data.platform) { @@ -267,7 +267,7 @@ return icons; }; - exports.register = function() { + exports.register = function () { var templates; if (typeof module === 'object') { @@ -276,7 +276,7 @@ templates = window.templates; } - Object.keys(helpers).forEach(function(helperName) { + Object.keys(helpers).forEach(function (helperName) { templates.registerHelper(helperName, helpers[helperName]); }); }; @@ -286,8 +286,8 @@ define('helpers', exports); } -})( +}( typeof exports === 'object' ? exports : typeof define === 'function' && define.amd ? {} : helpers = {} -); +)); diff --git a/public/src/modules/iconSelect.js b/public/src/modules/iconSelect.js index 00804d1616..34a7d595ce 100644 --- a/public/src/modules/iconSelect.js +++ b/public/src/modules/iconSelect.js @@ -2,11 +2,11 @@ /* globals define, bootbox, templates */ -define('iconSelect', function() { +define('iconSelect', function () { var iconSelect = {}; - iconSelect.init = function(el, onModified) { - onModified = onModified || function() {}; + iconSelect.init = function (el, onModified) { + onModified = onModified || function () {}; var doubleSize = el.hasClass('fa-2x'), selected = el.attr('class').replace('fa-2x', '').replace('fa', '').replace(/\s+/g, ''); @@ -16,7 +16,7 @@ define('iconSelect', function() { $('#icons .fa-icons .fa.' + selected).addClass('selected'); } - templates.parse('partials/fontawesome', {}, function(html) { + templates.parse('partials/fontawesome', {}, function (html) { html = $(html); html.find('.fa-icons').prepend($('')); @@ -30,7 +30,7 @@ define('iconSelect', function() { noIcon: { label: 'No Icon', className: 'btn-default', - callback: function() { + callback: function () { el.attr('class', 'fa ' + (doubleSize ? 'fa-2x ' : '')); el.val(''); el.attr('value', ''); @@ -41,7 +41,7 @@ define('iconSelect', function() { success: { label: 'Select', className: 'btn-primary', - callback: function(confirm) { + callback: function (confirm) { var iconClass = $('.bootbox .selected').attr('class'); var categoryIconClass = $('
    ').addClass(iconClass).removeClass('fa').removeClass('selected').attr('class'); @@ -57,7 +57,7 @@ define('iconSelect', function() { } }); - picker.on('show.bs.modal', function() { + picker.on('show.bs.modal', function () { var modalEl = $(this), searchEl = modalEl.find('input'); @@ -67,7 +67,7 @@ define('iconSelect', function() { } }).modal('show'); - picker.on('shown.bs.modal', function() { + picker.on('shown.bs.modal', function () { var modalEl = $(this), searchEl = modalEl.find('input'), icons = modalEl.find('.fa-icons i'), @@ -89,16 +89,16 @@ define('iconSelect', function() { // Focus on the input box searchEl.selectRange(0, searchEl.val().length); - modalEl.find('.icon-container').on('click', 'i', function() { + modalEl.find('.icon-container').on('click', 'i', function () { searchEl.val($(this).attr('class').replace('fa fa-', '').replace('selected', '')); changeSelection($(this)); }); - searchEl.on('keyup', function(e) { + searchEl.on('keyup', function (e) { if (e.keyCode !== 13) { // Filter icons.show(); - icons.each(function(idx, el) { + icons.each(function (idx, el) { if (!el.className.match(new RegExp('^fa fa-.*' + searchEl.val() + '.*$'))) { $(el).hide(); } diff --git a/public/src/modules/navigator.js b/public/src/modules/navigator.js index 965b3ba28e..9700db947c 100644 --- a/public/src/modules/navigator.js +++ b/public/src/modules/navigator.js @@ -4,7 +4,7 @@ /* globals define, ajaxify, utils, config */ -define('navigator', ['forum/pagination', 'components'], function(pagination, components) { +define('navigator', ['forum/pagination', 'components'], function (pagination, components) { var navigator = {}; var index = 1; @@ -13,21 +13,21 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com navigator.scrollActive = false; - navigator.init = function(selector, count, toTop, toBottom, callback, calculateIndex) { + navigator.init = function (selector, count, toTop, toBottom, callback, calculateIndex) { index = 1; navigator.selector = selector; navigator.callback = callback; - toTop = toTop || function() {}; - toBottom = toBottom || function() {}; + toTop = toTop || function () {}; + toBottom = toBottom || function () {}; $(window).off('scroll', navigator.delayedUpdate).on('scroll', navigator.delayedUpdate); - $('.pagination-block .dropdown-menu').off('click').on('click', function(e) { + $('.pagination-block .dropdown-menu').off('click').on('click', function (e) { e.stopPropagation(); }); - $('.pagination-block').off('shown.bs.dropdown', '.dropdown').on('shown.bs.dropdown', '.dropdown', function() { - setTimeout(function() { + $('.pagination-block').off('shown.bs.dropdown', '.dropdown').on('shown.bs.dropdown', '.dropdown', function () { + setTimeout(function () { $('.pagination-block input').focus(); }, 100); }); @@ -37,7 +37,7 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com $('.pagination-block .pagetop').off('click').on('click', toTop); $('.pagination-block .pagebottom').off('click').on('click', toBottom); - $('.pagination-block input').on('keydown', function(e) { + $('.pagination-block input').on('keydown', function (e) { if (e.which === 13) { var input = $(this); if (!utils.isNumber(input.val())) { @@ -66,16 +66,16 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com return parts[1] + '/' + parts[2] + '/' + parts[3] + (index ? '/' + index : ''); } - navigator.setCount = function(value) { + navigator.setCount = function (value) { count = parseInt(value, 10); navigator.updateTextAndProgressBar(); }; - navigator.show = function() { + navigator.show = function () { toggle(true); }; - navigator.disable = function() { + navigator.disable = function () { count = 0; index = 1; navigator.selector = navigator.callback = null; @@ -93,7 +93,7 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com $('.pagination-block').toggleClass('ready', flag); } - navigator.delayedUpdate = function() { + navigator.delayedUpdate = function () { if (navigatorUpdateTimeoutId) { clearTimeout(navigatorUpdateTimeoutId); navigatorUpdateTimeoutId = 0; @@ -101,7 +101,7 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com navigatorUpdateTimeoutId = setTimeout(navigator.update, 100); }; - navigator.update = function(threshold) { + navigator.update = function (threshold) { /* The "threshold" is defined as the distance from the top of the page to a spot where a user is expecting to begin reading. @@ -118,7 +118,7 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com var documentHeight = $(document).height(); var middleOfViewport = scrollTop + windowHeight / 2; var previousDistance = Number.MAX_VALUE; - els.each(function() { + els.each(function () { var distanceToMiddle = Math.abs(middleOfViewport - $(this).offset().top); if (distanceToMiddle > previousDistance) { @@ -161,7 +161,7 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com toggle(!!count); }; - navigator.updateTextAndProgressBar = function() { + navigator.updateTextAndProgressBar = function () { index = index > count ? count : index; $('.pagination-block .pagination-text').translateHtml('[[global:pagination.out_of, ' + index + ', ' + count + ']]'); @@ -180,7 +180,7 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com }); }; - navigator.scrollTop = function(index) { + navigator.scrollTop = function (index) { if ($(navigator.selector + '[data-index="' + index + '"]').length) { navigator.scrollToPost(index, true); } else { @@ -188,7 +188,7 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com } }; - navigator.scrollBottom = function(index) { + navigator.scrollBottom = function (index) { if (parseInt(index, 10) < 0) { return; } @@ -200,7 +200,7 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com } }; - navigator.scrollToPost = function(postIndex, highlight, duration) { + navigator.scrollToPost = function (postIndex, highlight, duration) { if (!utils.isNumber(postIndex) || !components.get('topic').length) { return; } @@ -220,7 +220,7 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com var page = Math.max(1, Math.ceil(index / config.postsPerPage)); if (parseInt(page, 10) !== ajaxify.data.pagination.currentPage) { - pagination.loadPage(page, function() { + pagination.loadPage(page, function () { navigator.scrollToPostIndex(postIndex, highlight, duration); }); } else { @@ -233,7 +233,7 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com } }; - navigator.scrollToPostIndex = function(postIndex, highlight, duration) { + navigator.scrollToPostIndex = function (postIndex, highlight, duration) { var scrollTo = components.get('post', 'index', postIndex); var postHeight = scrollTo.height(); var viewportHeight = $(window).height(); @@ -261,7 +261,7 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com $('html, body').animate({ scrollTop: scrollTop + 'px' - }, duration, function() { + }, duration, function () { if (done) { // Re-enable onScroll behaviour $(window).on('scroll', navigator.update); @@ -281,7 +281,7 @@ define('navigator', ['forum/pagination', 'components'], function(pagination, com function highlightPost() { if (highlight) { scrollTo.addClass('highlight'); - setTimeout(function() { + setTimeout(function () { scrollTo.removeClass('highlight'); }, 10000); } diff --git a/public/src/modules/notifications.js b/public/src/modules/notifications.js index dcabe7d0a1..a5b32c1037 100644 --- a/public/src/modules/notifications.js +++ b/public/src/modules/notifications.js @@ -2,19 +2,19 @@ /* globals define, socket, app, ajaxify, templates, Tinycon*/ -define('notifications', ['sounds', 'translator', 'components'], function(sound, translator, components) { +define('notifications', ['sounds', 'translator', 'components'], function (sound, translator, components) { var Notifications = {}; var unreadNotifs = {}; - Notifications.prepareDOM = function() { + Notifications.prepareDOM = function () { var notifContainer = components.get('notifications'), notifTrigger = notifContainer.children('a'), notifList = components.get('notifications/list'), notifIcon = components.get('notifications/icon'); notifTrigger - .on('click', function(e) { + .on('click', function (e) { e.preventDefault(); if (notifContainer.hasClass('open')) { return; @@ -22,20 +22,20 @@ define('notifications', ['sounds', 'translator', 'components'], function(sound, Notifications.loadNotifications(notifList); }) - .on('dblclick', function(e) { + .on('dblclick', function (e) { e.preventDefault(); if (parseInt(notifIcon.attr('data-content'), 10) > 0) { Notifications.markAllRead(); } }); - notifList.on('click', '[data-nid]', function() { + notifList.on('click', '[data-nid]', function () { var unread = $(this).hasClass('unread'); var nid = $(this).attr('data-nid'); if (!unread) { return; } - socket.emit('notifications.markRead', nid, function(err) { + socket.emit('notifications.markRead', nid, function (err) { if (err) { return app.alertError(err.message); } @@ -48,12 +48,12 @@ define('notifications', ['sounds', 'translator', 'components'], function(sound, notifContainer.on('click', '.mark-all-read', Notifications.markAllRead); - notifList.on('click', '.mark-read', function() { + notifList.on('click', '.mark-read', function () { var liEl = $(this).parent(); var unread = liEl.hasClass('unread'); var nid = liEl.attr('data-nid'); - socket.emit('notifications.mark' + (unread ? 'Read' : 'Unread'), nid, function(err) { + socket.emit('notifications.mark' + (unread ? 'Read' : 'Unread'), nid, function (err) { if (err) { return app.alertError(err.message); } @@ -72,7 +72,7 @@ define('notifications', ['sounds', 'translator', 'components'], function(sound, Notifications.updateNotifCount(count); } - socket.on('event:new_notification', function(notifData) { + socket.on('event:new_notification', function (notifData) { // If a path is defined, show notif data, otherwise show generic data var payload = { alert_id: 'new_notif', @@ -83,7 +83,7 @@ define('notifications', ['sounds', 'translator', 'components'], function(sound, if (notifData.path) { payload.message = notifData.bodyShort; payload.type = 'info'; - payload.clickfn = function() { + payload.clickfn = function () { if (notifData.path.startsWith('http') && notifData.path.startsWith('https')) { window.location.href = notifData.path; } else { @@ -102,7 +102,7 @@ define('notifications', ['sounds', 'translator', 'components'], function(sound, ajaxify.refresh(); } - socket.emit('notifications.getCount', function(err, count) { + socket.emit('notifications.getCount', function (err, count) { if (err) { return app.alertError(err.message); } @@ -116,34 +116,34 @@ define('notifications', ['sounds', 'translator', 'components'], function(sound, } }); - socket.on('event:notifications.updateCount', function(count) { + socket.on('event:notifications.updateCount', function (count) { Notifications.updateNotifCount(count); }); }; - Notifications.loadNotifications = function(notifList) { - socket.emit('notifications.get', null, function(err, data) { + Notifications.loadNotifications = function (notifList) { + socket.emit('notifications.get', null, function (err, data) { if (err) { return app.alertError(err.message); } - var notifs = data.unread.concat(data.read).sort(function(a, b) { + var notifs = data.unread.concat(data.read).sort(function (a, b) { return parseInt(a.datetime, 10) > parseInt(b.datetime, 10) ? -1 : 1; }); translator.toggleTimeagoShorthand(); - for(var i=0; i 0) { @@ -166,8 +166,8 @@ define('notifications', ['sounds', 'translator', 'components'], function(sound, } }; - Notifications.markAllRead = function() { - socket.emit('notifications.markAllRead', function(err) { + Notifications.markAllRead = function () { + socket.emit('notifications.markAllRead', function (err) { if (err) { app.alertError(err.message); } diff --git a/public/src/modules/postSelect.js b/public/src/modules/postSelect.js index 4f7439aff0..6001488708 100644 --- a/public/src/modules/postSelect.js +++ b/public/src/modules/postSelect.js @@ -2,14 +2,14 @@ /* globals define*/ -define('postSelect', ['components'], function(components) { +define('postSelect', ['components'], function (components) { var PostSelect = {}; PostSelect.pids = []; - PostSelect.init = function(onSelect) { + PostSelect.init = function (onSelect) { PostSelect.pids.length = 0; - components.get('topic').on('click', '[data-pid]', function() { + components.get('topic').on('click', '[data-pid]', function () { togglePostSelection($(this), onSelect); }); disableClicksOnPosts(); @@ -34,7 +34,7 @@ define('postSelect', ['components'], function(components) { } if (PostSelect.pids.length) { - PostSelect.pids.sort(function(a,b) { return a - b; }); + PostSelect.pids.sort(function (a,b) { return a - b; }); } callback(); } @@ -49,7 +49,7 @@ define('postSelect', ['components'], function(components) { components.get('post').on('click', 'button,a', disableClicks); } - PostSelect.enableClicksOnPosts = function() { + PostSelect.enableClicksOnPosts = function () { components.get('post').off('click', 'button,a', disableClicks); }; diff --git a/public/src/modules/search.js b/public/src/modules/search.js index 304235c7fa..4319de5617 100644 --- a/public/src/modules/search.js +++ b/public/src/modules/search.js @@ -1,13 +1,13 @@ "use strict"; /* globals socket, ajaxify, app, define, config */ -define('search', ['navigator', 'translator'], function(nav, translator) { +define('search', ['navigator', 'translator'], function (nav, translator) { var Search = { current: {} }; - Search.query = function(data, callback) { + Search.query = function (data, callback) { var term = data.term; // Detect if a tid was specified @@ -74,7 +74,7 @@ define('search', ['navigator', 'translator'], function(nav, translator) { return decodeURIComponent($.param(query)); } - Search.getSearchPreferences = function() { + Search.getSearchPreferences = function () { try { return JSON.parse(localStorage.getItem('search-preferences') || '{}'); } catch(e) { @@ -82,11 +82,11 @@ define('search', ['navigator', 'translator'], function(nav, translator) { } }; - Search.queryTopic = function(tid, term, callback) { + Search.queryTopic = function (tid, term, callback) { socket.emit('topics.search', { tid: tid, term: term - }, function(err, pids) { + }, function (err, pids) { if (err) { return app.alertError(err.message); } @@ -94,21 +94,21 @@ define('search', ['navigator', 'translator'], function(nav, translator) { if (Array.isArray(pids)) { // Sort pids numerically & store Search.current = { - results: pids.sort(function(a, b) { - return a-b; + results: pids.sort(function (a, b) { + return a - b; }), tid: tid, term: term }; - Search.checkPagePresence(tid, function() { + Search.checkPagePresence(tid, function () { Search.topicDOM.update(0); }); } }); }; - Search.checkPagePresence = function(tid, callback) { + Search.checkPagePresence = function (tid, callback) { if (parseInt(ajaxify.data.tid, 10) !== parseInt(tid, 10)) { ajaxify.go('topic/' + tid, callback); } else { @@ -120,29 +120,29 @@ define('search', ['navigator', 'translator'], function(nav, translator) { active: false }; - Search.topicDOM.prev = function() { - Search.topicDOM.update((Search.current.index === 0) ? Search.current.results.length-1 : Search.current.index-1); + Search.topicDOM.prev = function () { + Search.topicDOM.update((Search.current.index === 0) ? Search.current.results.length - 1 : Search.current.index - 1); }; - Search.topicDOM.next = function() { - Search.topicDOM.update((Search.current.index === Search.current.results.length-1) ? 0 : Search.current.index+1); + Search.topicDOM.next = function () { + Search.topicDOM.update((Search.current.index === Search.current.results.length - 1) ? 0 : Search.current.index + 1); }; - Search.topicDOM.update = function(index) { + Search.topicDOM.update = function (index) { var topicSearchEl = $('.topic-search'); Search.current.index = index; Search.topicDOM.start(); if (Search.current.results.length > 0) { - topicSearchEl.find('.count').html((index+1) + ' / ' + Search.current.results.length); + topicSearchEl.find('.count').html((index + 1) + ' / ' + Search.current.results.length); topicSearchEl.find('.prev, .next').removeAttr('disabled'); var data = { pid: Search.current.results[index], tid: Search.current.tid, topicPostSort: config.topicPostSort }; - socket.emit('posts.getPidIndex', data, function(err, postIndex) { + socket.emit('posts.getPidIndex', data, function (err, postIndex) { if (err) { return app.alertError(err.message); } @@ -150,31 +150,31 @@ define('search', ['navigator', 'translator'], function(nav, translator) { nav.scrollToPost(postIndex, true); }); } else { - translator.translate('[[search:no-matches]]', function(text) { + translator.translate('[[search:no-matches]]', function (text) { topicSearchEl.find('.count').html(text); }); topicSearchEl.removeClass('hidden').find('.prev, .next').attr('disabled', 'disabled'); } }; - Search.topicDOM.start = function() { + Search.topicDOM.start = function () { $('.topic-search').removeClass('hidden'); if (!Search.topicDOM.active) { Search.topicDOM.active = true; // Bind to esc - require(['mousetrap'], function(mousetrap) { + require(['mousetrap'], function (mousetrap) { mousetrap.bind('esc', Search.topicDOM.end); }); } }; - Search.topicDOM.end = function() { + Search.topicDOM.end = function () { $('.topic-search').addClass('hidden').find('.prev, .next').attr('disabled', 'disabled'); Search.topicDOM.active = false; // Unbind esc - require(['mousetrap'], function(mousetrap) { + require(['mousetrap'], function (mousetrap) { mousetrap.unbind('esc', Search.topicDOM.end); }); }; diff --git a/public/src/modules/settings.js b/public/src/modules/settings.js index 692e0ec7b4..090c83e2d0 100644 --- a/public/src/modules/settings.js +++ b/public/src/modules/settings.js @@ -448,7 +448,7 @@ define('settings', function () { helper.persistSettings(hash, Settings.cfg, notify, callback); }, load: function (hash, formEl, callback) { - callback = callback || function() {}; + callback = callback || function () {}; socket.emit('admin.settings.get', { hash: hash }, function (err, values) { @@ -468,13 +468,13 @@ define('settings', function () { } $(formEl).deserialize(values); - $(formEl).find('input[type="checkbox"]').each(function() { + $(formEl).find('input[type="checkbox"]').each(function () { $(this).parents('.mdl-switch').toggleClass('is-checked', $(this).is(':checked')); }); $(window).trigger('action:admin.settingsLoaded'); // Handle unsaved changes - $(formEl).on('change', 'input, select, textarea', function() { + $(formEl).on('change', 'input, select, textarea', function () { app.flags = app.flags || {}; app.flags._unsaved = true; }); @@ -495,7 +495,7 @@ define('settings', function () { }); // Normalizing value of multiple selects - formEl.find('select[multiple]').each(function(idx, selectEl) { + formEl.find('select[multiple]').each(function (idx, selectEl) { selectEl = $(selectEl); values[selectEl.attr('name')] = JSON.stringify(selectEl.val()); }); diff --git a/public/src/modules/settings/array.js b/public/src/modules/settings/array.js index 81071a65fa..fd94ed8226 100644 --- a/public/src/modules/settings/array.js +++ b/public/src/modules/settings/array.js @@ -107,7 +107,7 @@ define('settings/array', function () { } catch (_error) { return $(document.createTextNode(separator)); } - })(); + }()); if (typeof attributes !== 'object') { attributes = {}; } diff --git a/public/src/modules/settings/object.js b/public/src/modules/settings/object.js index 8c7a53f99a..05971d6d73 100644 --- a/public/src/modules/settings/object.js +++ b/public/src/modules/settings/object.js @@ -69,7 +69,7 @@ define('settings/object', function () { } catch (_error) { return $(document.createTextNode(separator)); } - })(); + }()); element.empty(); if (typeof value !== 'object') { value = {}; diff --git a/public/src/modules/share.js b/public/src/modules/share.js index 6fe2f5f8bf..9229ca549e 100644 --- a/public/src/modules/share.js +++ b/public/src/modules/share.js @@ -2,11 +2,11 @@ /* globals define */ -define('share', function() { +define('share', function () { var module = {}; - module.addShareHandlers = function(name) { + module.addShareHandlers = function (name) { var baseUrl = window.location.protocol + '//' + window.location.host; @@ -15,18 +15,18 @@ define('share', function() { return false; } - $('#content').off('shown.bs.dropdown', '.share-dropdown').on('shown.bs.dropdown', '.share-dropdown', function() { + $('#content').off('shown.bs.dropdown', '.share-dropdown').on('shown.bs.dropdown', '.share-dropdown', function () { var postLink = $(this).find('.post-link'); postLink.val(baseUrl + getPostUrl($(this))); // without the setTimeout can't select the text in the input - setTimeout(function() { + setTimeout(function () { postLink.putCursorAtEnd().select(); }, 50); }); - addHandler('.post-link', function(e) { + addHandler('.post-link', function (e) { e.preventDefault(); return false; }); diff --git a/public/src/modules/sort.js b/public/src/modules/sort.js index 960e21facb..c9e80020af 100644 --- a/public/src/modules/sort.js +++ b/public/src/modules/sort.js @@ -1,7 +1,7 @@ 'use strict'; /* globals define, config, socket, app, ajaxify, templates */ -define('sort', ['components'], function(components) { +define('sort', ['components'], function (components) { var module = {}; module.handleSort = function (field, method, gotoOnSave) { @@ -10,9 +10,9 @@ define('sort', ['components'], function(components) { var currentSetting = threadSort.find('a[data-sort="' + config[field] + '"]'); currentSetting.find('i').addClass('fa-check'); - $('.category, .topic').on('click', '[component="thread/sort"] a', function() { + $('.category, .topic').on('click', '[component="thread/sort"] a', function () { var newSetting = $(this).attr('data-sort'); - socket.emit(method, newSetting, function(err) { + socket.emit(method, newSetting, function (err) { if (err) { return app.alertError(err.message); } diff --git a/public/src/modules/sounds.js b/public/src/modules/sounds.js index a9a1840fd4..c82391159e 100644 --- a/public/src/modules/sounds.js +++ b/public/src/modules/sounds.js @@ -1,19 +1,19 @@ "use strict"; /* global app, define, socket, config */ -define('sounds', ['buzz'], function(buzz) { +define('sounds', ['buzz'], function (buzz) { var Sounds = {}; var loadedSounds = {}; var eventSoundMapping; var files; - socket.on('event:sounds.reloadMapping', function() { + socket.on('event:sounds.reloadMapping', function () { Sounds.reloadMapping(); }); - Sounds.reloadMapping = function() { - socket.emit('modules.sounds.getMapping', function(err, mapping) { + Sounds.reloadMapping = function () { + socket.emit('modules.sounds.getMapping', function (err, mapping) { if (err) { return app.alertError(err.message); } @@ -22,7 +22,7 @@ define('sounds', ['buzz'], function(buzz) { } function loadData(callback) { - socket.emit('modules.sounds.getData', function(err, data) { + socket.emit('modules.sounds.getData', function (err, data) { if (err) { return app.alertError('[sounds] Could not load sound mapping!'); } @@ -54,7 +54,7 @@ define('sounds', ['buzz'], function(buzz) { createSound(); } - Sounds.play = function(name) { + Sounds.play = function (name) { function play() { Sounds.playFile(eventSoundMapping[name]); } @@ -66,7 +66,7 @@ define('sounds', ['buzz'], function(buzz) { play(); }; - Sounds.playFile = function(fileName) { + Sounds.playFile = function (fileName) { if (!fileName) { return; } diff --git a/public/src/modules/taskbar.js b/public/src/modules/taskbar.js index 7f5978250b..9e51e34d72 100644 --- a/public/src/modules/taskbar.js +++ b/public/src/modules/taskbar.js @@ -1,23 +1,23 @@ "use strict"; /*global define, app, templates*/ -define('taskbar', function() { +define('taskbar', function () { var taskbar = {}; - taskbar.init = function() { + taskbar.init = function () { var self = this; - templates.parse('modules/taskbar', {}, function(html) { + templates.parse('modules/taskbar', {}, function (html) { self.taskbar = $(html); self.tasklist = self.taskbar.find('ul'); $(document.body).append(self.taskbar); - self.taskbar.on('click', 'li', function() { + self.taskbar.on('click', 'li', function () { var $btn = $(this), module = $btn.attr('data-module'), uuid = $btn.attr('data-uuid'); - require([module], function(module) { + require([module], function (module) { if (!$btn.hasClass('active')) { minimizeAll(); module.load(uuid); @@ -36,14 +36,14 @@ define('taskbar', function() { }); }; - taskbar.discard = function(module, uuid) { + taskbar.discard = function (module, uuid) { var btnEl = taskbar.tasklist.find('[data-module="' + module + '"][data-uuid="' + uuid + '"]'); btnEl.remove(); update(); }; - taskbar.push = function(module, uuid, options) { + taskbar.push = function (module, uuid, options) { var element = taskbar.tasklist.find('li[data-uuid="' + uuid + '"]'); var data = { @@ -60,20 +60,20 @@ define('taskbar', function() { } }; - taskbar.get = function(module) { - var items = $('[data-module="' + module + '"]').map(function(idx, el) { + taskbar.get = function (module) { + var items = $('[data-module="' + module + '"]').map(function (idx, el) { return $(el).data(); }); return items; }; - taskbar.minimize = function(module, uuid) { + taskbar.minimize = function (module, uuid) { var btnEl = taskbar.tasklist.find('[data-module="' + module + '"][data-uuid="' + uuid + '"]'); btnEl.removeClass('active'); }; - taskbar.toggleNew = function(uuid, state, silent) { + taskbar.toggleNew = function (uuid, state, silent) { var btnEl = taskbar.tasklist.find('[data-uuid="' + uuid + '"]'); btnEl.toggleClass('new', state); @@ -82,13 +82,13 @@ define('taskbar', function() { } }; - taskbar.updateActive = function(uuid) { + taskbar.updateActive = function (uuid) { var tasks = taskbar.tasklist.find('li'); tasks.removeClass('active'); tasks.filter('[data-uuid="' + uuid + '"]').addClass('active'); }; - taskbar.isActive = function(uuid) { + taskbar.isActive = function (uuid) { var taskBtn = taskbar.tasklist.find('li[data-uuid="' + uuid + '"]'); return taskBtn.hasClass('active'); }; @@ -114,7 +114,7 @@ define('taskbar', function() { .addClass(data.options.className) .html('' + (data.options.icon ? ' ' : '') + - (data.options.image ? ' ': '') + + (data.options.image ? ' ' : '') + '' + title + '' + '') .attr({ diff --git a/public/src/modules/topicSelect.js b/public/src/modules/topicSelect.js index d0dd85b601..6169b1f891 100644 --- a/public/src/modules/topicSelect.js +++ b/public/src/modules/topicSelect.js @@ -2,19 +2,19 @@ /* globals define*/ -define('topicSelect', ['components'], function(components) { +define('topicSelect', ['components'], function (components) { var TopicSelect = {}; var lastSelected; var topicsContainer; - TopicSelect.init = function(onSelect) { + TopicSelect.init = function (onSelect) { topicsContainer = $('[component="category"]'); - topicsContainer.on('selectstart', function() { + topicsContainer.on('selectstart', function () { return false; }); - topicsContainer.on('click', '[component="topic/select"]', function(ev) { + topicsContainer.on('click', '[component="topic/select"]', function (ev) { var select = $(this); if (ev.shiftKey) { @@ -38,15 +38,15 @@ define('topicSelect', ['components'], function(components) { select.parents('[component="category/topic"]').toggleClass('selected', isSelected); } - TopicSelect.getSelectedTids = function() { + TopicSelect.getSelectedTids = function () { var tids = []; - topicsContainer.find('[component="category/topic"].selected').each(function() { + topicsContainer.find('[component="category/topic"].selected').each(function () { tids.push($(this).attr('data-tid')); }); return tids; }; - TopicSelect.unselectAll = function() { + TopicSelect.unselectAll = function () { topicsContainer.find('[component="category/topic"].selected').removeClass('selected'); topicsContainer.find('[component="topic/select"]').toggleClass('fa-check-square-o', false).toggleClass('fa-square-o', true); }; @@ -71,7 +71,7 @@ define('topicSelect', ['components'], function(components) { end = tmp; } - for(var i=start; i<=end; ++i) { + for(var i = start; i <= end; ++i) { var topic = $('[component="category/topic"]').eq(i); toggleSelect(topic.find('[component="topic/select"]'), isSelected); } diff --git a/public/src/modules/translator.js b/public/src/modules/translator.js index 08525702d5..65a92772e5 100644 --- a/public/src/modules/translator.js +++ b/public/src/modules/translator.js @@ -29,16 +29,16 @@ } module.exports = factory(require('string'), loadServer); - })(); + }()); } else { window.translator = factory(window.string, loadClient); } -})(function (string, load) { +}(function (string, load) { 'use strict'; var assign = Object.assign || jQuery.extend; function classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - var Translator = function () { + var Translator = (function () { /** * Construct a new Translator object * @param {string} language - Language code for this translator instance @@ -305,7 +305,7 @@ Translator.cache = {}; return Translator; - }(); + }()); var adaptor = { /** @@ -453,4 +453,4 @@ }; return adaptor; -}); +})); diff --git a/public/src/modules/uploader.js b/public/src/modules/uploader.js index 5d257e4cfb..106b82d67d 100644 --- a/public/src/modules/uploader.js +++ b/public/src/modules/uploader.js @@ -2,11 +2,11 @@ /* globals define, templates */ -define('uploader', ['translator'], function(translator) { +define('uploader', ['translator'], function (translator) { var module = {}; - module.open = function(route, params, fileSize, callback) { + module.open = function (route, params, fileSize, callback) { console.warn('[uploader] uploader.open() is deprecated, please use uploader.show() instead, and pass parameters as a singe option with callback, e.g. uploader.show({}, callback);'); module.show({ route: route, @@ -15,7 +15,7 @@ define('uploader', ['translator'], function(translator) { }, callback); }; - module.show = function(data, callback) { + module.show = function (data, callback) { var fileSize = data.hasOwnProperty('fileSize') && data.fileSize !== undefined ? parseInt(data.fileSize, 10) : false; parseModal({ showHelp: data.hasOwnProperty('showHelp') && data.showHelp !== undefined ? data.showHelp : true, @@ -24,11 +24,11 @@ define('uploader', ['translator'], function(translator) { description: data.description || '', button: data.button || '[[global:upload]]', accept: data.accept ? data.accept.replace(/,/g, ', ') : '' - }, function(uploadModal) { + }, function (uploadModal) { uploadModal = $(uploadModal); uploadModal.modal('show'); - uploadModal.on('hidden.bs.modal', function() { + uploadModal.on('hidden.bs.modal', function () { uploadModal.remove(); }); @@ -36,19 +36,19 @@ define('uploader', ['translator'], function(translator) { uploadForm.attr('action', data.route); uploadForm.find('#params').val(JSON.stringify(data.params)); - uploadModal.find('#fileUploadSubmitBtn').on('click', function() { + uploadModal.find('#fileUploadSubmitBtn').on('click', function () { $(this).addClass('disabled'); uploadForm.submit(); }); - uploadForm.submit(function() { + uploadForm.submit(function () { onSubmit(uploadModal, fileSize, callback); return false; }); }); }; - module.hideAlerts = function(modal) { + module.hideAlerts = function (modal) { $(modal).find('#alert-status, #alert-success, #alert-error, #upload-progress-box').addClass('hide'); }; @@ -78,14 +78,14 @@ define('uploader', ['translator'], function(translator) { headers: { 'x-csrf-token': config.csrf_token }, - error: function(xhr) { + error: function (xhr) { xhr = maybeParse(xhr); showAlert('error', xhr.responseJSON ? (xhr.responseJSON.error || xhr.statusText) : 'error uploading, code : ' + xhr.status); }, - uploadProgress: function(event, position, total, percent) { + uploadProgress: function (event, position, total, percent) { uploadModal.find('#upload-progress-bar').css('width', percent + '%'); }, - success: function(response) { + success: function (response) { response = maybeParse(response); if (response.error) { @@ -95,7 +95,7 @@ define('uploader', ['translator'], function(translator) { callback(response[0].url); showAlert('success', '[[uploads:upload-success]]'); - setTimeout(function() { + setTimeout(function () { module.hideAlerts(uploadModal); uploadModal.modal('hide'); }, 750); @@ -104,7 +104,7 @@ define('uploader', ['translator'], function(translator) { } function parseModal(tplVals, callback) { - templates.parse('partials/modals/upload_file_modal', tplVals, function(html) { + templates.parse('partials/modals/upload_file_modal', tplVals, function (html) { translator.translate(html, callback); }); } diff --git a/public/src/overrides.js b/public/src/overrides.js index 49dce7e754..c644bb6281 100644 --- a/public/src/overrides.js +++ b/public/src/overrides.js @@ -7,8 +7,8 @@ var overrides = overrides || {}; if ('undefined' !== typeof window) { (function ($, undefined) { - require(['translator'], function(translator) { - $.fn.getCursorPosition = function() { + require(['translator'], function (translator) { + $.fn.getCursorPosition = function () { var el = $(this).get(0); var pos = 0; if('selectionStart' in el) { @@ -23,11 +23,11 @@ if ('undefined' !== typeof window) { return pos; }; - $.fn.selectRange = function(start, end) { + $.fn.selectRange = function (start, end) { if(!end) { end = start; } - return this.each(function() { + return this.each(function () { if (this.setSelectionRange) { this.focus(); this.setSelectionRange(start, end); @@ -42,8 +42,8 @@ if ('undefined' !== typeof window) { }; //http://stackoverflow.com/questions/511088/use-javascript-to-place-cursor-at-end-of-text-in-text-input-element - $.fn.putCursorAtEnd = function() { - return this.each(function() { + $.fn.putCursorAtEnd = function () { + return this.each(function () { $(this).focus(); if (this.setSelectionRange) { @@ -56,39 +56,39 @@ if ('undefined' !== typeof window) { }); }; - $.fn.translateHtml = function(str) { + $.fn.translateHtml = function (str) { return translate(this, 'html', str); }; - $.fn.translateText = function(str) { + $.fn.translateText = function (str) { return translate(this, 'text', str); }; - $.fn.translateVal = function(str) { + $.fn.translateVal = function (str) { return translate(this, 'val', str); }; - $.fn.translateAttr = function(attr, str) { - return this.each(function() { + $.fn.translateAttr = function (attr, str) { + return this.each(function () { var el = $(this); - translator.translate(str, function(translated) { + translator.translate(str, function (translated) { el.attr(attr, translated); }); }); }; function translate(elements, type, str) { - return elements.each(function() { + return elements.each(function () { var el = $(this); - translator.translate(str, function(translated) { + translator.translate(str, function (translated) { el[type](translated); }); }); } }); - })(jQuery || {fn:{}}); + }(jQuery || {fn:{}})); - (function(){ + (function (){ // FIX FOR #1245 - https://github.com/NodeBB/NodeBB/issues/1245 // from http://stackoverflow.com/questions/15931962/bootstrap-dropdown-disappear-with-right-click-on-firefox // obtain a reference to the original handler @@ -109,10 +109,10 @@ if ('undefined' !== typeof window) { _clearMenus(); } }); - })(); + }()); overrides.overrideBootbox = function () { - require(['translator'], function(translator) { + require(['translator'], function (translator) { var dialog = bootbox.dialog, prompt = bootbox.prompt, confirm = bootbox.confirm; @@ -120,27 +120,27 @@ if ('undefined' !== typeof window) { function translate(modal) { var header = modal.find('.modal-header'), footer = modal.find('.modal-footer'); - translator.translate(header.html(), function(html) { + translator.translate(header.html(), function (html) { header.html(html); }); - translator.translate(footer.html(), function(html) { + translator.translate(footer.html(), function (html) { footer.html(html); }); } - bootbox.dialog = function() { + bootbox.dialog = function () { var modal = $(dialog.apply(this, arguments)[0]); translate(modal); return modal; }; - bootbox.prompt = function() { + bootbox.prompt = function () { var modal = $(prompt.apply(this, arguments)[0]); translate(modal); return modal; }; - bootbox.confirm = function() { + bootbox.confirm = function () { var modal = $(confirm.apply(this, arguments)[0]); translate(modal); return modal; @@ -148,13 +148,13 @@ if ('undefined' !== typeof window) { }); }; - overrides.overrideTimeago = function() { + overrides.overrideTimeago = function () { var timeagoFn = $.fn.timeago; - $.fn.timeago = function() { + $.fn.timeago = function () { var els = timeagoFn.apply(this, arguments); if (els) { - els.each(function() { + els.each(function () { $(this).attr('title', (new Date($(this).attr('title'))).toString()); }); } diff --git a/public/src/sockets.js b/public/src/sockets.js index 15eee26b5e..a8c33be1e8 100644 --- a/public/src/sockets.js +++ b/public/src/sockets.js @@ -23,12 +23,12 @@ app.isConnected = false; socket.on('disconnect', onDisconnect); - socket.on('reconnect_failed', function() { + socket.on('reconnect_failed', function () { // Wait ten times the reconnection delay and then start over setTimeout(socket.connect.bind(socket), parseInt(config.reconnectionDelay, 10) * 10); }); - socket.on('checkSession', function(uid) { + socket.on('checkSession', function (uid) { if (parseInt(uid, 10) !== parseInt(app.user.uid, 10)) { app.handleInvalidSession(); } @@ -61,7 +61,7 @@ app.isConnected = false; $(window).trigger('action:reconnected'); - setTimeout(function() { + setTimeout(function () { reconnectEl.removeClass('active').addClass('hide'); }, 3000); } @@ -129,7 +129,7 @@ app.isConnected = false; timeout: 1000 }); - setTimeout(function() { + setTimeout(function () { window.location.href = config.relative_path + '/'; }, 1000); } diff --git a/public/src/utils.js b/public/src/utils.js index 190d0ab3c6..b2d86fedb1 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -1,4 +1,4 @@ -(function(module) { +(function (module) { 'use strict'; var utils, fs, XRegExp; @@ -7,11 +7,11 @@ fs = require('fs'); XRegExp = require('xregexp'); - process.profile = function(operation, start) { + process.profile = function (operation, start) { console.log('%s took %d milliseconds', operation, process.elapsedTimeSince(start)); }; - process.elapsedTimeSince = function(start) { + process.elapsedTimeSince = function (start) { var diff = process.hrtime(start); return diff[0] * 1e3 + diff[1] / 1e6; }; @@ -22,8 +22,8 @@ module.exports = utils = { - generateUUID: function() { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + 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); return v.toString(16); @@ -31,10 +31,10 @@ }, //Adapted from http://stackoverflow.com/questions/5827612/node-js-fs-readdir-recursive-directory-search - walk: function(dir, done) { + walk: function (dir, done) { var results = []; - fs.readdir(dir, function(err, list) { + fs.readdir(dir, function (err, list) { if (err) { return done(err); } @@ -42,15 +42,15 @@ if (!pending) { return done(null, results); } - list.forEach(function(file) { + list.forEach(function (file) { file = dir + '/' + file; - fs.stat(file, function(err, stat) { + fs.stat(file, function (err, stat) { if (err) { return done(err); } if (stat && stat.isDirectory()) { - utils.walk(file, function(err, res) { + utils.walk(file, function (err, res) { if (err) { return done(err); } @@ -82,7 +82,7 @@ languageKeyRegex: /\[\[[\w]+:.+\]\]/, //http://dense13.com/blog/2009/05/03/converting-string-to-slug-javascript/ - slugify: function(str, preserveCase) { + slugify: function (str, preserveCase) { if (!str) { return ''; } @@ -100,7 +100,7 @@ return str; }, - cleanUpTag: function(tag, maxLength) { + cleanUpTag: function (tag, maxLength) { if (typeof tag !== 'string' || !tag.length ) { return ''; } @@ -117,32 +117,32 @@ return tag; }, - removePunctuation: function(str) { + removePunctuation: function (str) { return str.replace(/[\.,-\/#!$%\^&\*;:{}=\-_`<>'"~()?]/g, ''); }, - isEmailValid: function(email) { + isEmailValid: function (email) { return typeof email === 'string' && email.length && email.indexOf('@') !== -1; }, - isUserNameValid: function(name) { + isUserNameValid: function (name) { return (name && name !== '' && (/^['"\s\-.*0-9\u00BF-\u1FFF\u2C00-\uD7FF\w]+$/.test(name))); }, - isPasswordValid: function(password) { + isPasswordValid: function (password) { return typeof password === 'string' && password.length; }, - isNumber: function(n) { + isNumber: function (n) { return !isNaN(parseFloat(n)) && isFinite(n); }, - hasLanguageKey: function(input) { + hasLanguageKey: function (input) { return utils.languageKeyRegex.test(input); }, // shallow objects merge - merge: function() { + merge: function () { var result = {}, obj, keys; for (var i = 0; i < arguments.length; i++) { obj = arguments[i] || {}; @@ -188,22 +188,22 @@ return utils.extensionToMimeType(utils.fileExtension(path)); }, - extensionToMimeType: function(extension) { + extensionToMimeType: function (extension) { return utils.extensionMimeTypeMap[extension] || '*'; }, - isRelativeUrl: function(url) { + isRelativeUrl: function (url) { var firstChar = url.slice(0, 1); return (firstChar === '.' || firstChar === '/'); }, - makeNumbersHumanReadable: function(elements) { - elements.each(function() { + makeNumbersHumanReadable: function (elements) { + elements.each(function () { $(this).html(utils.makeNumberHumanReadable($(this).attr('title'))); }); }, - makeNumberHumanReadable: function(num) { + makeNumberHumanReadable: function (num) { var n = parseInt(num, 10); if(!n) { return num; @@ -228,7 +228,7 @@ return text.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"); }, - toISOString: function(timestamp) { + toISOString: function (timestamp) { if (!timestamp || !Date.prototype.toISOString) { return ''; } @@ -248,25 +248,25 @@ 'source', 'span', 'strike', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr'], - escapeRegexChars: function(text) { + escapeRegexChars: function (text) { return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); }, - escapeHTML: function(raw) { + escapeHTML: function (raw) { return raw.replace(/&/gm,"&").replace(//gm,">"); }, - isAndroidBrowser: function() { + isAndroidBrowser: function () { // http://stackoverflow.com/questions/9286355/how-to-detect-only-the-native-android-browser var nua = navigator.userAgent; return ((nua.indexOf('Mozilla/5.0') > -1 && nua.indexOf('Android ') > -1 && nua.indexOf('AppleWebKit') > -1) && !(nua.indexOf('Chrome') > -1)); }, - isTouchDevice: function() { + isTouchDevice: function () { return 'ontouchstart' in document.documentElement; }, - findBootstrapEnvironment: function() { + 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 = $('
    '); @@ -276,7 +276,7 @@ for (var i = envs.length - 1; i >= 0; i--) { var env = envs[i]; - $el.addClass('hidden-'+env); + $el.addClass('hidden-' + env); if ($el.is(':hidden')) { $el.remove(); return env; @@ -284,14 +284,14 @@ } }, - isMobile: function() { + isMobile: function () { var env = utils.findBootstrapEnvironment(); - return ['xs', 'sm'].some(function(targetEnv) { + return ['xs', 'sm'].some(function (targetEnv) { return targetEnv === env; }); }, - getHoursArray: function() { + getHoursArray: function () { var currentHour = new Date().getHours(), labels = []; @@ -303,14 +303,14 @@ return labels.reverse(); }, - getDaysArray: function(from) { + 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; - for(var x=29;x>=0;x--) { - tmpDate = new Date(currentDay - (1000*60*60*24*x)); + for(var x = 29;x >= 0;x--) { + tmpDate = new Date(currentDay - (1000 * 60 * 60 * 24 * x)); labels.push(months[tmpDate.getMonth()] + ' ' + tmpDate.getDate()); } @@ -318,7 +318,7 @@ }, /* Retrieved from http://stackoverflow.com/a/7557433 @ 27 Mar 2016 */ - isElementInViewport: function(el) { + isElementInViewport: function (el) { //special bonus for those using jQuery if (typeof jQuery === "function" && el instanceof jQuery) { el = el[0]; @@ -335,7 +335,7 @@ }, // get all the url params in a single key/value hash - params: function(options) { + params: function (options) { var a, hash = {}, params; options = options || {}; @@ -346,7 +346,7 @@ } params = (a ? a.search : window.location.search).substring(1).split("&"); - params.forEach(function(param) { + params.forEach(function (param) { var val = param.split('='), key = decodeURI(val[0]), value = options.skipToType[key] ? decodeURI(val[1]) : utils.toType(decodeURI(val[1])); @@ -368,11 +368,11 @@ return hash; }, - param: function(key) { + param: function (key) { return this.params()[key]; }, - urlToLocation: function(url) { + urlToLocation: function (url) { var a = document.createElement('a'); a.href = url; return a; @@ -380,7 +380,7 @@ // return boolean if string 'true' or string 'false', or if a parsable string which is a number // also supports JSON object and/or arrays parsing - toType: function(str) { + toType: function (str) { var type = typeof str; if (type !== 'string') { return str; @@ -409,7 +409,7 @@ // get example: utils.props(A, 'a.b.c') // returns {d: 10} // get example: utils.props(A, 'a.b.c.foo.bar') // returns undefined without throwing a TypeError // credits to github.com/gkindel - props: function(obj, props, value) { + props: function (obj, props, value) { if(obj === undefined) { obj = window; } @@ -433,7 +433,7 @@ return utils.props(obj[prop], newProps, value); }, - isInternalURI: function(targetLocation, referenceLocation, relative_path) { + isInternalURI: function (targetLocation, referenceLocation, relative_path) { return targetLocation.host === '' || // Relative paths are always internal links ( targetLocation.host === referenceLocation.host && targetLocation.protocol === referenceLocation.protocol && // Otherwise need to check if protocol and host match @@ -455,13 +455,13 @@ } if (typeof String.prototype.endsWith != 'function') { - String.prototype.endsWith = function(suffix) { + String.prototype.endsWith = function (suffix) { if (this.length < suffix.length) { return false; } var len = this.length; var suffixLen = suffix.length; - for (var i=1; (i <= suffixLen && this[len - i] === suffix[suffixLen - i]); ++i) { + for (var i = 1; (i <= suffixLen && this[len - i] === suffix[suffixLen - i]); ++i) { continue; } return i > suffixLen; @@ -469,7 +469,7 @@ } if (typeof String.prototype.rtrim != 'function') { - String.prototype.rtrim = function() { + String.prototype.rtrim = function () { return this.replace(/\s+$/g, ''); }; } @@ -478,8 +478,8 @@ window.utils = module.exports; } -})('undefined' === typeof module ? { +}('undefined' === typeof module ? { module: { exports: {} } -} : module); +} : module)); diff --git a/public/src/widgets.js b/public/src/widgets.js index 8bae7cc465..ede518db4d 100644 --- a/public/src/widgets.js +++ b/public/src/widgets.js @@ -1,11 +1,11 @@ "use strict"; /*global ajaxify, templates, config, utils*/ -(function(ajaxify) { +(function (ajaxify) { ajaxify.widgets = {}; - ajaxify.widgets.reposition = function(location) { - $('body [no-widget-class]').each(function() { + ajaxify.widgets.reposition = function (location) { + $('body [no-widget-class]').each(function () { var $this = $(this); if ($this.attr('no-widget-target') === location) { $this.removeClass(); @@ -14,15 +14,15 @@ }); }; - ajaxify.widgets.render = function(template, url, callback) { - callback = callback || function() {}; + ajaxify.widgets.render = function (template, url, callback) { + callback = callback || function () {}; if (template.match(/^admin/)) { return callback(); } var widgetLocations = ['sidebar', 'footer', 'header'], numLocations; - $('#content [widget-area]').each(function() { + $('#content [widget-area]').each(function () { var location = $(this).attr('widget-area'); if ($.inArray(location, widgetLocations) === -1) { widgetLocations.push(location); @@ -41,13 +41,13 @@ template: template + '.tpl', url: url, isMobile: utils.isMobile() - }, function(renderedAreas) { - for (var x=0; x b.os.hostname) ? 1 : 0; }); res.render('admin/development/info', {info: data, infoJSON: JSON.stringify(data, null, 4), host: os.hostname(), port: nconf.get('port')}); }, 500); }; -pubsub.on('sync:node:info:start', function() { - getNodeInfo(function(err, data) { +pubsub.on('sync:node:info:start', function () { + getNodeInfo(function (err, data) { if (err) { return winston.error(err); } @@ -37,7 +37,7 @@ pubsub.on('sync:node:info:start', function() { }); }); -pubsub.on('sync:node:info:end', function(data) { +pubsub.on('sync:node:info:end', function (data) { info[data.id] = data.data; }); @@ -57,18 +57,18 @@ function getNodeInfo(callback) { platform: os.platform(), arch: os.arch(), release: os.release(), - load: os.loadavg().map(function(load){ return load.toFixed(2); }).join(', ') + load: os.loadavg().map(function (load){ return load.toFixed(2); }).join(', ') } }; async.parallel({ - stats: function(next) { + stats: function (next) { rooms.getLocalStats(next); }, - gitInfo: function(next) { + gitInfo: function (next) { getGitInfo(next); } - }, function(err, results) { + }, function (err, results) { if (err) { return callback(err); } @@ -80,15 +80,15 @@ function getNodeInfo(callback) { function getGitInfo(callback) { function get(cmd, callback) { - exec(cmd, function(err, stdout) { + exec(cmd, function (err, stdout) { callback(err, stdout ? stdout.replace(/\n$/, '') : ''); }); } async.parallel({ - hash: function(next) { + hash: function (next) { get('git rev-parse HEAD', next); }, - branch: function(next) { + branch: function (next) { get('git rev-parse --abbrev-ref HEAD', next); } }, callback); diff --git a/src/controllers/admin/languages.js b/src/controllers/admin/languages.js index 85c6d60484..292cd2a3b4 100644 --- a/src/controllers/admin/languages.js +++ b/src/controllers/admin/languages.js @@ -6,13 +6,13 @@ var meta = require('../../meta'); var languagesController = {}; -languagesController.get = function(req, res, next) { - languages.list(function(err, languages) { +languagesController.get = function (req, res, next) { + languages.list(function (err, languages) { if (err) { return next(err); } - languages.forEach(function(language) { + languages.forEach(function (language) { language.selected = language.code === (meta.config.defaultLang || 'en_GB'); }); diff --git a/src/controllers/admin/logger.js b/src/controllers/admin/logger.js index 45c9f246c9..7ae327a858 100644 --- a/src/controllers/admin/logger.js +++ b/src/controllers/admin/logger.js @@ -2,7 +2,7 @@ var loggerController = {}; -loggerController.get = function(req, res) { +loggerController.get = function (req, res) { res.render('admin/development/logger', {}); }; diff --git a/src/controllers/admin/logs.js b/src/controllers/admin/logs.js index f3ae601dd4..6723d3795f 100644 --- a/src/controllers/admin/logs.js +++ b/src/controllers/admin/logs.js @@ -6,8 +6,8 @@ var meta = require('../../meta'); var logsController = {}; -logsController.get = function(req, res, next) { - meta.logs.get(function(err, logs) { +logsController.get = function (req, res, next) { + meta.logs.get(function (err, logs) { if (err) { return next(err); } diff --git a/src/controllers/admin/navigation.js b/src/controllers/admin/navigation.js index 463c525eff..423f21721c 100644 --- a/src/controllers/admin/navigation.js +++ b/src/controllers/admin/navigation.js @@ -2,14 +2,14 @@ var navigationController = {}; -navigationController.get = function(req, res, next) { - require('../../navigation/admin').getAdmin(function(err, data) { +navigationController.get = function (req, res, next) { + require('../../navigation/admin').getAdmin(function (err, data) { if (err) { return next(err); } - data.enabled.forEach(function(enabled, index) { + data.enabled.forEach(function (enabled, index) { enabled.index = index; enabled.selected = index === 0; }); diff --git a/src/controllers/admin/plugins.js b/src/controllers/admin/plugins.js index 8cc06a5e63..f1a72720ac 100644 --- a/src/controllers/admin/plugins.js +++ b/src/controllers/admin/plugins.js @@ -5,10 +5,10 @@ var plugins = require('../../plugins'); var pluginsController = {}; -pluginsController.get = function(req, res, next) { +pluginsController.get = function (req, res, next) { async.parallel({ - compatible: function(next) { - plugins.list(function(err, plugins) { + compatible: function (next) { + plugins.list(function (err, plugins) { if (err || !Array.isArray(plugins)) { plugins = []; } @@ -16,8 +16,8 @@ pluginsController.get = function(req, res, next) { next(null, plugins); }); }, - all: function(next) { - plugins.list(false, function(err, plugins) { + all: function (next) { + plugins.list(false, function (err, plugins) { if (err || !Array.isArray(plugins)) { plugins = []; } @@ -25,28 +25,28 @@ pluginsController.get = function(req, res, next) { next(null, plugins); }); } - }, function(err, payload) { + }, function (err, payload) { if (err) { return next(err); } - var compatiblePkgNames = payload.compatible.map(function(pkgData) { + var compatiblePkgNames = payload.compatible.map(function (pkgData) { return pkgData.name; }); res.render('admin/extend/plugins' , { - installed: payload.compatible.filter(function(plugin) { + installed: payload.compatible.filter(function (plugin) { return plugin.installed; }), - upgradeCount: payload.compatible.reduce(function(count, current) { + upgradeCount: payload.compatible.reduce(function (count, current) { if (current.installed && current.outdated) { ++count; } return count; }, 0), - download: payload.compatible.filter(function(plugin) { + download: payload.compatible.filter(function (plugin) { return !plugin.installed; }), - incompatible: payload.all.filter(function(plugin) { + incompatible: payload.all.filter(function (plugin) { return compatiblePkgNames.indexOf(plugin.name) === -1; }) }); diff --git a/src/controllers/admin/rewards.js b/src/controllers/admin/rewards.js index 063abb6807..8ff05c75b3 100644 --- a/src/controllers/admin/rewards.js +++ b/src/controllers/admin/rewards.js @@ -2,8 +2,8 @@ var rewardsController = {}; -rewardsController.get = function(req, res, next) { - require('../../rewards/admin').get(function(err, data) { +rewardsController.get = function (req, res, next) { + require('../../rewards/admin').get(function (err, data) { if (err) { return next(err); } diff --git a/src/controllers/admin/settings.js b/src/controllers/admin/settings.js index 13e7b42722..a6afb80cfc 100644 --- a/src/controllers/admin/settings.js +++ b/src/controllers/admin/settings.js @@ -4,7 +4,7 @@ var settingsController = {}; var async = require('async'), meta = require('../../meta'); -settingsController.get = function(req, res, next) { +settingsController.get = function (req, res, next) { var term = req.params.term ? req.params.term : 'general'; switch (req.params.term) { @@ -24,15 +24,15 @@ function renderEmail(req, res, next) { var utils = require('../../../public/src/utils'); var emailsPath = path.join(__dirname, '../../../public/templates/emails'); - utils.walk(emailsPath, function(err, emails) { + utils.walk(emailsPath, function (err, emails) { if (err) { return next(err); } - async.map(emails, function(email, next) { + async.map(emails, function (email, next) { var path = email.replace(emailsPath, '').substr(1).replace('.tpl', ''); - fs.readFile(email, function(err, original) { + fs.readFile(email, function (err, original) { if (err) { return next(err); } @@ -46,14 +46,14 @@ function renderEmail(req, res, next) { original: original.toString() }); }); - }, function(err, emails) { + }, function (err, emails) { if (err) { return next(err); } res.render('admin/settings/email', { emails: emails, - sendable: emails.filter(function(email) { + sendable: emails.filter(function (email) { return email.path.indexOf('_plaintext') === -1 && email.path.indexOf('partials') === -1; }) }); diff --git a/src/controllers/admin/social.js b/src/controllers/admin/social.js index d8f87af060..11c7982701 100644 --- a/src/controllers/admin/social.js +++ b/src/controllers/admin/social.js @@ -5,8 +5,8 @@ var social = require('../../social'); var socialController = {}; -socialController.get = function(req, res, next) { - social.getPostSharing(function(err, posts) { +socialController.get = function (req, res, next) { + social.getPostSharing(function (err, posts) { if (err) { return next(err); } diff --git a/src/controllers/admin/sounds.js b/src/controllers/admin/sounds.js index b583125c5a..801a2067ac 100644 --- a/src/controllers/admin/sounds.js +++ b/src/controllers/admin/sounds.js @@ -4,13 +4,13 @@ var meta = require('../../meta'); var soundsController = {}; -soundsController.get = function(req, res, next) { - meta.sounds.getFiles(function(err, sounds) { +soundsController.get = function (req, res, next) { + meta.sounds.getFiles(function (err, sounds) { if (err) { return next(err); } - sounds = Object.keys(sounds).map(function(name) { + sounds = Object.keys(sounds).map(function (name) { return { name: name }; diff --git a/src/controllers/admin/tags.js b/src/controllers/admin/tags.js index 22e3b32d67..a645e2ef11 100644 --- a/src/controllers/admin/tags.js +++ b/src/controllers/admin/tags.js @@ -4,8 +4,8 @@ var topics = require('../../topics'); var tagsController = {}; -tagsController.get = function(req, res, next) { - topics.getTags(0, 199, function(err, tags) { +tagsController.get = function (req, res, next) { + topics.getTags(0, 199, function (err, tags) { if (err) { return next(err); } diff --git a/src/controllers/admin/themes.js b/src/controllers/admin/themes.js index e5ef8a9343..4f6f3e1f3b 100644 --- a/src/controllers/admin/themes.js +++ b/src/controllers/admin/themes.js @@ -5,9 +5,9 @@ var file = require('../../file'); var themesController = {}; -themesController.get = function(req, res, next) { +themesController.get = function (req, res, next) { var themeDir = path.join(__dirname, '../../../node_modules/' + req.params.theme); - file.exists(themeDir, function(exists) { + file.exists(themeDir, function (exists) { if (!exists) { return next(); } diff --git a/src/controllers/admin/uploads.js b/src/controllers/admin/uploads.js index b507e092cf..d1664cb8f1 100644 --- a/src/controllers/admin/uploads.js +++ b/src/controllers/admin/uploads.js @@ -13,14 +13,14 @@ var allowedImageTypes = ['image/png', 'image/jpeg', 'image/pjpeg', 'image/jpg', var uploadsController = {}; -uploadsController.uploadCategoryPicture = function(req, res, next) { +uploadsController.uploadCategoryPicture = function (req, res, next) { var uploadedFile = req.files.files[0]; var params = null; try { params = JSON.parse(req.body.params); } catch (e) { - fs.unlink(uploadedFile.path, function(err) { + fs.unlink(uploadedFile.path, function (err) { if (err) { winston.error(err); } @@ -34,13 +34,13 @@ uploadsController.uploadCategoryPicture = function(req, res, next) { } }; -uploadsController.uploadFavicon = function(req, res, next) { +uploadsController.uploadFavicon = function (req, res, next) { var uploadedFile = req.files.files[0]; var allowedTypes = ['image/x-icon', 'image/vnd.microsoft.icon']; if (validateUpload(req, res, next, uploadedFile, allowedTypes)) { - file.saveFileToLocal('favicon.ico', 'system', uploadedFile.path, function(err, image) { - fs.unlink(uploadedFile.path, function(err) { + file.saveFileToLocal('favicon.ico', 'system', uploadedFile.path, function (err, image) { + fs.unlink(uploadedFile.path, function (err) { if (err) { winston.error(err); } @@ -54,19 +54,19 @@ uploadsController.uploadFavicon = function(req, res, next) { } }; -uploadsController.uploadTouchIcon = 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]; if (validateUpload(req, res, next, uploadedFile, allowedTypes)) { - file.saveFileToLocal('touchicon-orig.png', 'system', uploadedFile.path, function(err, imageObj) { + file.saveFileToLocal('touchicon-orig.png', 'system', uploadedFile.path, function (err, imageObj) { if (err) { return next(err); } // Resize the image into squares for use as touch icons at various DPIs - async.each(sizes, function(size, next) { + async.each(sizes, function (size, next) { async.series([ async.apply(file.saveFileToLocal, 'touchicon-' + size + '.png', 'system', uploadedFile.path), async.apply(image.resizeImage, { @@ -76,8 +76,8 @@ uploadsController.uploadTouchIcon = function(req, res, next) { height: size }) ], next); - }, function(err) { - fs.unlink(uploadedFile.path, function(err) { + }, function (err) { + fs.unlink(uploadedFile.path, function (err) { if (err) { winston.error(err); } @@ -93,14 +93,14 @@ uploadsController.uploadTouchIcon = function(req, res, next) { } }; -uploadsController.uploadLogo = function(req, res, next) { +uploadsController.uploadLogo = function (req, res, next) { upload('site-logo', req, res, next); }; -uploadsController.uploadSound = function(req, res, next) { +uploadsController.uploadSound = function (req, res, next) { var uploadedFile = req.files.files[0]; - file.saveFileToLocal(uploadedFile.name, 'sounds', uploadedFile.path, function(err) { + file.saveFileToLocal(uploadedFile.name, 'sounds', uploadedFile.path, function (err) { if (err) { return next(err); } @@ -114,7 +114,7 @@ uploadsController.uploadSound = function(req, res, next) { fs.symlink(filePath, path.join(soundsPath, path.basename(filePath)), 'file'); } - fs.unlink(uploadedFile.path, function(err) { + fs.unlink(uploadedFile.path, function (err) { if (err) { return next(err); } @@ -124,11 +124,11 @@ uploadsController.uploadSound = function(req, res, next) { }); }; -uploadsController.uploadDefaultAvatar = function(req, res, next) { +uploadsController.uploadDefaultAvatar = function (req, res, next) { upload('avatar-default', req, res, next); }; -uploadsController.uploadOgImage = function(req, res, next) { +uploadsController.uploadOgImage = function (req, res, next) { upload('og:image', req, res, next); }; @@ -143,7 +143,7 @@ function upload(name, req, res, next) { function validateUpload(req, res, next, uploadedFile, allowedTypes) { if (allowedTypes.indexOf(uploadedFile.type) === -1) { - fs.unlink(uploadedFile.path, function(err) { + fs.unlink(uploadedFile.path, function (err) { if (err) { winston.error(err); } @@ -158,7 +158,7 @@ function validateUpload(req, res, next, uploadedFile, allowedTypes) { function uploadImage(filename, folder, uploadedFile, req, res, next) { function done(err, image) { - fs.unlink(uploadedFile.path, function(err) { + fs.unlink(uploadedFile.path, function (err) { if (err) { winston.error(err); } diff --git a/src/controllers/admin/users.js b/src/controllers/admin/users.js index c2e085ada1..426d8b1c19 100644 --- a/src/controllers/admin/users.js +++ b/src/controllers/admin/users.js @@ -15,40 +15,40 @@ var usersController = {}; var userFields = ['uid', 'username', 'userslug', 'email', 'postcount', 'joindate', 'banned', 'reputation', 'picture', 'flags', 'lastonline', 'email:confirmed']; -usersController.search = function(req, res, next) { +usersController.search = function (req, res, next) { res.render('admin/manage/users', { search_display: '', users: [] }); }; -usersController.sortByJoinDate = function(req, res, next) { +usersController.sortByJoinDate = function (req, res, next) { getUsers('users:joindate', 'latest', undefined, undefined, req, res, next); }; -usersController.notValidated = function(req, res, next) { +usersController.notValidated = function (req, res, next) { getUsers('users:notvalidated', 'notvalidated', undefined, undefined, req, res, next); }; -usersController.noPosts = function(req, res, next) { +usersController.noPosts = function (req, res, next) { getUsers('users:postcount', 'noposts', '-inf', 0, req, res, next); }; -usersController.flagged = function(req, res, next) { +usersController.flagged = function (req, res, next) { getUsers('users:flags', 'mostflags', 1, '+inf', req, res, next); }; -usersController.inactive = function(req, res, next) { +usersController.inactive = function (req, res, next) { var timeRange = 1000 * 60 * 60 * 24 * 30 * (parseInt(req.query.months, 10) || 3); var cutoff = Date.now() - timeRange; getUsers('users:online', 'inactive', '-inf', cutoff, req, res, next); }; -usersController.banned = function(req, res, next) { +usersController.banned = function (req, res, next) { getUsers('users:banned', 'banned', undefined, undefined, req, res, next); }; -usersController.registrationQueue = function(req, res, next) { +usersController.registrationQueue = function (req, res, next) { var page = parseInt(req.query.page, 10) || 1; var itemsPerPage = 20; var start = (page - 1) * 20; @@ -56,37 +56,37 @@ usersController.registrationQueue = function(req, res, next) { var invitations; async.parallel({ - registrationQueueCount: function(next) { + registrationQueueCount: function (next) { db.sortedSetCard('registration:queue', next); }, - users: function(next) { + users: function (next) { user.getRegistrationQueue(start, stop, next); }, - customHeaders: function(next) { + customHeaders: function (next) { plugins.fireHook('filter:admin.registrationQueue.customHeaders', {headers: []}, next); }, - invites: function(next) { + invites: function (next) { async.waterfall([ - function(next) { + function (next) { user.getAllInvites(next); }, - function(_invitations, next) { + function (_invitations, next) { invitations = _invitations; - async.map(invitations, function(invites, next) { + async.map(invitations, function (invites, next) { user.getUserField(invites.uid, 'username', next); }, next); }, - function(usernames, next) { - invitations.forEach(function(invites, index) { + function (usernames, next) { + invitations.forEach(function (invites, index) { invites.username = usernames[index]; }); - async.map(invitations, function(invites, next) { + async.map(invitations, function (invites, next) { async.map(invites.invitations, user.getUsernameByEmail, next); }, next); }, - function(usernames, next) { - invitations.forEach(function(invites, index) { - invites.invitations = invites.invitations.map(function(email, i) { + function (usernames, next) { + invitations.forEach(function (invites, index) { + invites.invitations = invites.invitations.map(function (email, i) { return { email: email, username: usernames[index][i] === '[[global:guest]]' ? '' : usernames[index][i] @@ -97,7 +97,7 @@ usersController.registrationQueue = function(req, res, next) { } ], next); } - }, function(err, data) { + }, function (err, data) { if (err) { return next(err); } @@ -116,33 +116,33 @@ function getUsers(set, section, min, max, req, res, next) { var byScore = min !== undefined && max !== undefined; async.parallel({ - count: function(next) { + count: function (next) { if (byScore) { db.sortedSetCount(set, min, max, next); } else { db.sortedSetCard(set, next); } }, - users: function(next) { + users: function (next) { async.waterfall([ - function(next) { + function (next) { if (byScore) { db.getSortedSetRevRangeByScore(set, start, resultsPerPage, max, min, next); } else { user.getUidsFromSet(set, start, stop, next); } }, - function(uids, next) { + function (uids, next) { user.getUsersWithFields(uids, userFields, req.uid, next); } ], next); } - }, function(err, results) { + }, function (err, results) { if (err) { return next(err); } - results.users = results.users.filter(function(user) { + results.users = results.users.filter(function (user) { user.email = validator.escape(String(user.email || '')); return user && parseInt(user.uid, 10); }); @@ -169,14 +169,14 @@ function render(req, res, data) { res.render('admin/manage/users', data); } -usersController.getCSV = function(req, res, next) { +usersController.getCSV = function (req, res, next) { events.log({ type: 'getUsersCSV', uid: req.user.uid, ip: req.ip }); - user.getUsersCSV(function(err, data) { + user.getUsersCSV(function (err, data) { if (err) { return next(err); } diff --git a/src/controllers/admin/widgets.js b/src/controllers/admin/widgets.js index 8dd93fbead..c2d0d1e667 100644 --- a/src/controllers/admin/widgets.js +++ b/src/controllers/admin/widgets.js @@ -2,8 +2,8 @@ var widgetsController = {}; -widgetsController.get = function(req, res, next) { - require('../../widgets/admin').get(function(err, data) { +widgetsController.get = function (req, res, next) { + require('../../widgets/admin').get(function (err, data) { if (err) { return next(err); } diff --git a/src/controllers/api.js b/src/controllers/api.js index 42cc74e7e7..36261a23c1 100644 --- a/src/controllers/api.js +++ b/src/controllers/api.js @@ -16,7 +16,7 @@ var accountHelpers = require('../controllers/accounts/helpers'); var apiController = {}; -apiController.getConfig = function(req, res, next) { +apiController.getConfig = function (req, res, next) { var config = {}; config.environment = process.env.NODE_ENV; config.relative_path = nconf.get('relative_path'); @@ -82,7 +82,7 @@ apiController.getConfig = function(req, res, next) { config.bootswatchSkin = settings.bootswatchSkin || config.bootswatchSkin; plugins.fireHook('filter:config.get', config, next); } - ], function(err, config) { + ], function (err, config) { if (err) { return next(err); } @@ -96,7 +96,7 @@ apiController.getConfig = function(req, res, next) { }; -apiController.renderWidgets = function(req, res, next) { +apiController.renderWidgets = function (req, res, next) { var areas = { template: req.query.template, locations: req.query.locations, @@ -116,7 +116,7 @@ apiController.renderWidgets = function(req, res, next) { }, req, res, - function(err, widgets) { + function (err, widgets) { if (err) { return next(err); } @@ -124,15 +124,15 @@ apiController.renderWidgets = function(req, res, next) { }); }; -apiController.getPostData = function(pid, uid, callback) { +apiController.getPostData = function (pid, uid, callback) { async.parallel({ - privileges: function(next) { + privileges: function (next) { privileges.posts.get([pid], uid, next); }, - post: function(next) { + post: function (next) { posts.getPostData(pid, next); } - }, function(err, results) { + }, function (err, results) { if (err || !results.post) { return callback(err); } @@ -153,15 +153,15 @@ apiController.getPostData = function(pid, uid, callback) { }); }; -apiController.getTopicData = function(tid, uid, callback) { +apiController.getTopicData = function (tid, uid, callback) { async.parallel({ - privileges: function(next) { + privileges: function (next) { privileges.topics.get(tid, uid, next); }, - topic: function(next) { + topic: function (next) { topics.getTopicData(tid, next); } - }, function(err, results) { + }, function (err, results) { if (err || !results.topic) { return callback(err); } @@ -173,15 +173,15 @@ apiController.getTopicData = function(tid, uid, callback) { }); }; -apiController.getCategoryData = function(cid, uid, callback) { +apiController.getCategoryData = function (cid, uid, callback) { async.parallel({ - privileges: function(next) { + privileges: function (next) { privileges.categories.get(cid, uid, next); }, - category: function(next) { + category: function (next) { categories.getCategoryData(cid, next); } - }, function(err, results) { + }, function (err, results) { if (err || !results.category) { return callback(err); } @@ -194,7 +194,7 @@ apiController.getCategoryData = function(cid, uid, callback) { }; -apiController.getObject = function(req, res, next) { +apiController.getObject = function (req, res, next) { var methods = { post: apiController.getPostData, topic: apiController.getTopicData, @@ -204,7 +204,7 @@ apiController.getObject = function(req, res, next) { if (!method) { return next(); } - method(req.params.id, req.uid, function(err, result) { + method(req.params.id, req.uid, function (err, result) { if (err || !result) { return next(err); } @@ -213,18 +213,18 @@ apiController.getObject = function(req, res, next) { }); }; -apiController.getCurrentUser = function(req, res, next) { +apiController.getCurrentUser = function (req, res, next) { if (!req.uid) { return res.status(401).json('not-authorized'); } async.waterfall([ - function(next) { + function (next) { user.getUserField(req.uid, 'userslug', next); }, - function(userslug, next) { + function (userslug, next) { accountHelpers.getUserDataByUserSlug(userslug, req.uid, next); } - ], function(err, userData) { + ], function (err, userData) { if (err) { return next(err); } @@ -232,20 +232,20 @@ apiController.getCurrentUser = function(req, res, next) { }); }; -apiController.getUserByUID = function(req, res, next) { +apiController.getUserByUID = function (req, res, next) { byType('uid', req, res, next); }; -apiController.getUserByUsername = function(req, res, next) { +apiController.getUserByUsername = function (req, res, next) { byType('username', req, res, next); }; -apiController.getUserByEmail = function(req, res, next) { +apiController.getUserByEmail = function (req, res, next) { byType('email', req, res, next); }; function byType(type, req, res, next) { - apiController.getUserDataByField(req.uid, type, req.params[type], function(err, data) { + apiController.getUserDataByField(req.uid, type, req.params[type], function (err, data) { if (err || !data) { return next(err); } @@ -253,7 +253,7 @@ function byType(type, req, res, next) { }); } -apiController.getUserDataByField = function(callerUid, field, fieldValue, callback) { +apiController.getUserDataByField = function (callerUid, field, fieldValue, callback) { async.waterfall([ function (next) { if (field === 'uid') { @@ -275,7 +275,7 @@ apiController.getUserDataByField = function(callerUid, field, fieldValue, callba ], callback); }; -apiController.getUserDataByUID = function(callerUid, uid, callback) { +apiController.getUserDataByUID = function (callerUid, uid, callback) { if (!parseInt(callerUid, 10) && parseInt(meta.config.privateUserInfo, 10) === 1) { return callback(new Error('[[error:no-privileges]]')); } @@ -287,7 +287,7 @@ apiController.getUserDataByUID = function(callerUid, uid, callback) { async.parallel({ userData: async.apply(user.getUserData, uid), settings: async.apply(user.getSettings, uid) - }, function(err, results) { + }, function (err, results) { if (err || !results.userData) { return callback(err || new Error('[[error:no-user]]')); } @@ -299,8 +299,8 @@ apiController.getUserDataByUID = function(callerUid, uid, callback) { }); }; -apiController.getModerators = function(req, res, next) { - categories.getModerators(req.params.cid, function(err, moderators) { +apiController.getModerators = function (req, res, next) { + categories.getModerators(req.params.cid, function (err, moderators) { if (err) { return next(err); } @@ -309,7 +309,7 @@ apiController.getModerators = function(req, res, next) { }; -apiController.getRecentPosts = function(req, res, next) { +apiController.getRecentPosts = function (req, res, next) { posts.getRecentPosts(req.uid, 0, 19, req.params.term, function (err, data) { if (err) { return next(err); diff --git a/src/controllers/authentication.js b/src/controllers/authentication.js index 43707bfccd..0111f62573 100644 --- a/src/controllers/authentication.js +++ b/src/controllers/authentication.js @@ -17,7 +17,7 @@ var Password = require('../password'); var authenticationController = {}; -authenticationController.register = function(req, res, next) { +authenticationController.register = function (req, res, next) { var registrationType = meta.config.registrationType || 'normal'; if (registrationType === 'disabled') { @@ -33,14 +33,14 @@ authenticationController.register = function(req, res, next) { } async.waterfall([ - function(next) { + function (next) { if (registrationType === 'invite-only' || registrationType === 'admin-invite-only') { user.verifyInvitation(userData, next); } else { next(); } }, - function(next) { + function (next) { if (!userData.email) { return next(new Error('[[error:invalid-email]]')); } @@ -55,17 +55,17 @@ authenticationController.register = function(req, res, next) { user.isPasswordValid(userData.password, next); }, - function(next) { + function (next) { res.locals.processLogin = true; // set it to false in plugin if you wish to just register only plugins.fireHook('filter:register.check', {req: req, res: res, userData: userData}, next); }, - function(data, next) { + function (data, next) { if (registrationType === 'normal' || registrationType === 'invite-only' || registrationType === 'admin-invite-only') { registerAndLoginUser(req, res, userData, next); } else if (registrationType === 'admin-approval') { addToApprovalQueue(req, userData, next); } else if (registrationType === 'admin-approval-ip') { - db.sortedSetCard('ip:' + req.ip + ':uid', function(err, count) { + db.sortedSetCard('ip:' + req.ip + ':uid', function (err, count) { if (err) { next(err); } else if (count) { @@ -76,7 +76,7 @@ authenticationController.register = function(req, res, next) { }); } } - ], function(err, data) { + ], function (err, data) { if (err) { return res.status(400).send(err.message); } @@ -92,11 +92,11 @@ authenticationController.register = function(req, res, next) { function registerAndLoginUser(req, res, userData, callback) { var uid; async.waterfall([ - function(next) { + function (next) { plugins.fireHook('filter:register.interstitial', { userData: userData, interstitials: [] - }, function(err, data) { + }, function (err, data) { if (err) { return next(err); } @@ -113,10 +113,10 @@ function registerAndLoginUser(req, res, userData, callback) { } }); }, - function(next) { + function (next) { user.create(userData, next); }, - function(_uid, next) { + function (_uid, next) { uid = _uid; if (res.locals.processLogin) { authenticationController.doLogin(req, uid, next); @@ -124,7 +124,7 @@ function registerAndLoginUser(req, res, userData, callback) { next(); } }, - function(next) { + function (next) { user.deleteInvitationKey(userData.email); plugins.fireHook('filter:register.complete', {uid: uid, referrer: req.body.referrer || nconf.get('relative_path') + '/'}, next); } @@ -133,27 +133,27 @@ function registerAndLoginUser(req, res, userData, callback) { function addToApprovalQueue(req, userData, callback) { async.waterfall([ - function(next) { + function (next) { userData.ip = req.ip; user.addToApprovalQueue(userData, next); }, - function(next) { + function (next) { next(null, {message: '[[register:registration-added-to-queue]]'}); } ], callback); } -authenticationController.registerComplete = function(req, res, next) { +authenticationController.registerComplete = function (req, res, next) { // For the interstitials that respond, execute the callback with the form body plugins.fireHook('filter:register.interstitial', { userData: req.session.registration, interstitials: [] - }, function(err, data) { + }, function (err, data) { if (err) { return next(err); } - var callbacks = data.interstitials.reduce(function(memo, cur) { + var callbacks = data.interstitials.reduce(function (memo, cur) { if (cur.hasOwnProperty('callback') && typeof cur.callback === 'function') { memo.push(async.apply(cur.callback, req.session.registration, req.body)); } @@ -161,7 +161,7 @@ authenticationController.registerComplete = function(req, res, next) { return memo; }, []); - var done = function() { + var done = function () { delete req.session.registration; if (req.session.returnTo) { @@ -171,7 +171,7 @@ authenticationController.registerComplete = function(req, res, next) { } }; - async.parallel(callbacks, function(err) { + async.parallel(callbacks, function (err) { if (err) { req.flash('error', err.message); return res.redirect(nconf.get('relative_path') + '/register/complete'); @@ -188,14 +188,14 @@ authenticationController.registerComplete = function(req, res, next) { }); }; -authenticationController.registerAbort = function(req, res) { +authenticationController.registerAbort = function (req, res) { // End the session and redirect to home - req.session.destroy(function() { + req.session.destroy(function () { res.redirect(nconf.get('relative_path') + '/'); }); }; -authenticationController.login = function(req, res, next) { +authenticationController.login = function (req, res, next) { // Handle returnTo data if (req.body.hasOwnProperty('returnTo') && !req.session.returnTo) { // As req.body is data obtained via userland, it is untrusted, restrict to internal links only @@ -212,7 +212,7 @@ authenticationController.login = function(req, res, next) { var loginWith = meta.config.allowLoginWith || 'username-email'; if (req.body.username && utils.isEmailValid(req.body.username) && loginWith.indexOf('email') !== -1) { - user.getUsernameByEmail(req.body.username, function(err, username) { + user.getUsernameByEmail(req.body.username, function (err, username) { if (err) { return next(err); } @@ -227,7 +227,7 @@ authenticationController.login = function(req, res, next) { }; function continueLogin(req, res, next) { - passport.authenticate('local', function(err, userData, info) { + passport.authenticate('local', function (err, userData, info) { if (err) { return res.status(403).send(err.message); } @@ -255,7 +255,7 @@ function continueLogin(req, res, next) { if (passwordExpiry && passwordExpiry < Date.now()) { winston.verbose('[auth] Triggering password reset for uid ' + userData.uid + ' due to password policy'); req.session.passwordExpired = true; - user.reset.generate(userData.uid, function(err, code) { + user.reset.generate(userData.uid, function (err, code) { if (err) { return res.status(403).send(err.message); } @@ -263,7 +263,7 @@ function continueLogin(req, res, next) { res.status(200).send(nconf.get('relative_path') + '/reset/' + code); }); } else { - authenticationController.doLogin(req, userData.uid, function(err) { + authenticationController.doLogin(req, userData.uid, function (err) { if (err) { return res.status(403).send(err.message); } @@ -281,12 +281,12 @@ function continueLogin(req, res, next) { })(req, res, next); } -authenticationController.doLogin = function(req, uid, callback) { +authenticationController.doLogin = function (req, uid, callback) { if (!uid) { return callback(); } - req.login({uid: uid}, function(err) { + req.login({uid: uid}, function (err) { if (err) { return callback(err); } @@ -295,8 +295,8 @@ authenticationController.doLogin = function(req, uid, callback) { }); }; -authenticationController.onSuccessfulLogin = function(req, uid, callback) { - callback = callback || function() {}; +authenticationController.onSuccessfulLogin = function (req, uid, callback) { + callback = callback || function () {}; var uuid = utils.generateUUID(); req.session.meta = {}; @@ -326,7 +326,7 @@ authenticationController.onSuccessfulLogin = function(req, uid, callback) { function (next) { user.updateLastOnlineTime(uid, next); } - ], function(err) { + ], function (err) { if (err) { return callback(err); } @@ -335,7 +335,7 @@ authenticationController.onSuccessfulLogin = function(req, uid, callback) { }); }; -authenticationController.localLogin = function(req, username, password, next) { +authenticationController.localLogin = function (req, username, password, next) { if (!username) { return next(new Error('[[error:invalid-username]]')); } @@ -359,13 +359,13 @@ authenticationController.localLogin = function(req, username, password, next) { }, function (next) { async.parallel({ - userData: function(next) { + userData: function (next) { db.getObjectFields('user:' + uid, ['password', 'passwordExpiry'], next); }, - isAdmin: function(next) { + isAdmin: function (next) { user.isAdministrator(uid, next); }, - banned: function(next) { + banned: function (next) { user.isBanned(uid, next); } }, next); @@ -383,7 +383,7 @@ authenticationController.localLogin = function(req, username, password, next) { } if (result.banned) { // Retrieve ban reason and show error - return user.getLatestBanInfo(uid, function(err, banInfo) { + return user.getLatestBanInfo(uid, function (err, banInfo) { if (err) { next(err); } else if (banInfo.reason) { @@ -406,10 +406,10 @@ authenticationController.localLogin = function(req, username, password, next) { ], next); }; -authenticationController.logout = function(req, res, next) { +authenticationController.logout = function (req, res, next) { if (req.user && parseInt(req.user.uid, 10) > 0 && req.sessionID) { var uid = parseInt(req.user.uid, 10); - user.auth.revokeSession(req.sessionID, uid, function(err) { + user.auth.revokeSession(req.sessionID, uid, function (err) { if (err) { return next(err); } @@ -418,7 +418,7 @@ authenticationController.logout = function(req, res, next) { user.setUserField(uid, 'lastonline', Date.now() - 300000); - plugins.fireHook('static:user.loggedOut', {req: req, res: res, uid: uid}, function() { + plugins.fireHook('static:user.loggedOut', {req: req, res: res, uid: uid}, function () { res.status(200).send(''); }); }); diff --git a/src/controllers/categories.js b/src/controllers/categories.js index fa685e3705..9a18e7f1dd 100644 --- a/src/controllers/categories.js +++ b/src/controllers/categories.js @@ -10,7 +10,7 @@ var helpers = require('./helpers'); var categoriesController = {}; -categoriesController.list = function(req, res, next) { +categoriesController.list = function (req, res, next) { res.locals.metaTags = [{ name: "title", content: validator.escape(String(meta.config.title || 'NodeBB')) @@ -49,7 +49,7 @@ categoriesController.list = function(req, res, next) { categories.getRecentTopicReplies(allCategories, req.uid, next); } - ], function(err) { + ], function (err) { if (err) { return next(err); } @@ -63,7 +63,7 @@ categoriesController.list = function(req, res, next) { data.breadcrumbs = helpers.buildBreadcrumbs([{text: data.title}]); } - data.categories.forEach(function(category) { + data.categories.forEach(function (category) { if (category && Array.isArray(category.posts) && category.posts.length) { category.teaser = { url: nconf.get('relative_path') + '/topic/' + category.posts[0].topic.slug + '/' + category.posts[0].index, diff --git a/src/controllers/category.js b/src/controllers/category.js index bf76c8e09f..2a660ee63c 100644 --- a/src/controllers/category.js +++ b/src/controllers/category.js @@ -15,7 +15,7 @@ var utils = require('../../public/src/utils'); var categoryController = {}; -categoryController.get = function(req, res, callback) { +categoryController.get = function (req, res, callback) { var cid = req.params.category_id; var currentPage = parseInt(req.query.page, 10) || 1; var pageCount = 1; @@ -29,13 +29,13 @@ categoryController.get = function(req, res, callback) { async.waterfall([ function (next) { async.parallel({ - categoryData: function(next) { + categoryData: function (next) { categories.getCategoryFields(cid, ['slug', 'disabled', 'topic_count'], next); }, - privileges: function(next) { + privileges: function (next) { privileges.categories.get(cid, req.uid, next); }, - userSettings: function(next) { + userSettings: function (next) { user.getSettings(req.uid, next); } }, next); @@ -101,10 +101,10 @@ categoryController.get = function(req, res, callback) { }; async.waterfall([ - function(next) { + function (next) { user.getUidByUserslug(req.query.author, next); }, - function(uid, next) { + function (uid, next) { payload.targetUid = uid; if (uid) { payload.set = 'cid:' + cid + ':uid:' + uid + ':tids'; @@ -132,7 +132,7 @@ categoryController.get = function(req, res, callback) { url: nconf.get('relative_path') + '/category/' + categoryData.slug } ]; - helpers.buildCategoryBreadcrumbs(categoryData.parentCid, function(err, crumbs) { + helpers.buildCategoryBreadcrumbs(categoryData.parentCid, function (err, crumbs) { if (err) { return next(err); } @@ -146,7 +146,7 @@ categoryController.get = function(req, res, callback) { } var allCategories = []; categories.flattenCategories(allCategories, categoryData.children); - categories.getRecentTopicReplies(allCategories, req.uid, function(err) { + categories.getRecentTopicReplies(allCategories, req.uid, function (err) { next(err, categoryData); }); } @@ -205,7 +205,7 @@ categoryController.get = function(req, res, callback) { categoryData.title = categoryData.name; pageCount = Math.max(1, Math.ceil(categoryData.topic_count / settings.topicsPerPage)); categoryData.pagination = pagination.create(currentPage, pageCount, req.query); - categoryData.pagination.rel.forEach(function(rel) { + categoryData.pagination.rel.forEach(function (rel) { rel.href = nconf.get('url') + '/category/' + categoryData.slug + rel.href; res.locals.linkTags.push(rel); }); diff --git a/src/controllers/globalmods.js b/src/controllers/globalmods.js index a5628f5a4d..7e4fd1ffec 100644 --- a/src/controllers/globalmods.js +++ b/src/controllers/globalmods.js @@ -5,8 +5,8 @@ var adminBlacklistController = require('./admin/blacklist'); var globalModsController = {}; -globalModsController.ipBlacklist = function(req, res, next) { - user.isAdminOrGlobalMod(req.uid, function(err, isAdminOrGlobalMod) { +globalModsController.ipBlacklist = function (req, res, next) { + user.isAdminOrGlobalMod(req.uid, function (err, isAdminOrGlobalMod) { if (err || !isAdminOrGlobalMod) { return next(err); } diff --git a/src/controllers/groups.js b/src/controllers/groups.js index 55b408183a..53b7064f59 100644 --- a/src/controllers/groups.js +++ b/src/controllers/groups.js @@ -11,10 +11,10 @@ var helpers = require('./helpers'); var groupsController = {}; -groupsController.list = function(req, res, next) { +groupsController.list = function (req, res, next) { var sort = req.query.sort || 'alpha'; - groupsController.getGroupsFromSet(req.uid, sort, 0, 14, function(err, data) { + groupsController.getGroupsFromSet(req.uid, sort, 0, 14, function (err, data) { if (err) { return next(err); } @@ -24,7 +24,7 @@ groupsController.list = function(req, res, next) { }); }; -groupsController.getGroupsFromSet = function(uid, sort, start, stop, callback) { +groupsController.getGroupsFromSet = function (uid, sort, start, stop, callback) { var set = 'groups:visible:name'; if (sort === 'count') { set = 'groups:visible:memberCount'; @@ -32,7 +32,7 @@ groupsController.getGroupsFromSet = function(uid, sort, start, stop, callback) { set = 'groups:visible:createtime'; } - groups.getGroupsFromSet(set, uid, start, stop, function(err, groups) { + groups.getGroupsFromSet(set, uid, start, stop, function (err, groups) { if (err) { return callback(err); } @@ -45,13 +45,13 @@ groupsController.getGroupsFromSet = function(uid, sort, start, stop, callback) { }); }; -groupsController.details = function(req, res, callback) { +groupsController.details = function (req, res, callback) { var groupName; async.waterfall([ - function(next) { + function (next) { groups.getGroupNameByGroupSlug(req.params.slug, next); }, - function(_groupName, next) { + function (_groupName, next) { groupName = _groupName; if (!groupName) { return callback(); @@ -71,7 +71,7 @@ groupsController.details = function(req, res, callback) { async.parallel({ isMember: async.apply(groups.isMember, req.uid, groupName), isInvited: async.apply(groups.isInvited, req.uid, groupName) - }, function(err, checks) { + }, function (err, checks) { if (err || checks.isMember || checks.isInvited) { return next(err); } @@ -80,25 +80,25 @@ groupsController.details = function(req, res, callback) { }, function (next) { async.parallel({ - group: function(next) { + group: function (next) { groups.get(groupName, { uid: req.uid, truncateUserList: true, userListCount: 20 }, next); }, - posts: function(next) { + posts: function (next) { groups.getLatestMemberPosts(groupName, 10, req.uid, next); }, - isAdmin:function(next) { + isAdmin:function (next) { user.isAdministrator(req.uid, next); }, - isGlobalMod: function(next) { + isGlobalMod: function (next) { user.isGlobalModerator(req.uid, next); } }, next); } - ], function(err, results) { + ], function (err, results) { if (err) { return callback(err); } @@ -115,17 +115,17 @@ groupsController.details = function(req, res, callback) { }); }; -groupsController.members = function(req, res, next) { +groupsController.members = function (req, res, next) { var groupName; async.waterfall([ - function(next) { + function (next) { groups.getGroupNameByGroupSlug(req.params.slug, next); }, - function(_groupName, next) { + function (_groupName, next) { groupName = _groupName; user.getUsersFromSet('group:' + groupName + ':members', req.uid, 0, 49, next); }, - ], function(err, users) { + ], function (err, users) { if (err || !groupName) { return next(err); } @@ -145,13 +145,13 @@ groupsController.members = function(req, res, next) { }); }; -groupsController.uploadCover = function(req, res, next) { +groupsController.uploadCover = function (req, res, next) { var params = JSON.parse(req.body.params); groups.updateCover(req.uid, { file: req.files.files[0].path, groupName: params.groupName - }, function(err, image) { + }, function (err, image) { if (err) { return next(err); } diff --git a/src/controllers/helpers.js b/src/controllers/helpers.js index 2010fbc922..13a91aaa4c 100644 --- a/src/controllers/helpers.js +++ b/src/controllers/helpers.js @@ -11,12 +11,12 @@ var meta = require('../meta'); var helpers = {}; -helpers.notAllowed = function(req, res, error) { +helpers.notAllowed = function (req, res, error) { plugins.fireHook('filter:helpers.notAllowed', { req: req, res: res, error: error - }, function(err, data) { + }, function (err, data) { if (err) { return winston.error(err); } @@ -46,7 +46,7 @@ helpers.notAllowed = function(req, res, error) { }); }; -helpers.redirect = function(res, url) { +helpers.redirect = function (res, url) { if (res.locals.isAPI) { res.status(308).json(url); } else { @@ -54,13 +54,13 @@ helpers.redirect = function(res, url) { } }; -helpers.buildCategoryBreadcrumbs = function(cid, callback) { +helpers.buildCategoryBreadcrumbs = function (cid, callback) { var breadcrumbs = []; - async.whilst(function() { + async.whilst(function () { return parseInt(cid, 10); - }, function(next) { - categories.getCategoryFields(cid, ['name', 'slug', 'parentCid', 'disabled'], function(err, data) { + }, function (next) { + categories.getCategoryFields(cid, ['name', 'slug', 'parentCid', 'disabled'], function (err, data) { if (err) { return next(err); } @@ -75,7 +75,7 @@ helpers.buildCategoryBreadcrumbs = function(cid, callback) { cid = data.parentCid; next(); }); - }, function(err) { + }, function (err) { if (err) { return callback(err); } @@ -96,7 +96,7 @@ helpers.buildCategoryBreadcrumbs = function(cid, callback) { }); }; -helpers.buildBreadcrumbs = function(crumbs) { +helpers.buildBreadcrumbs = function (crumbs) { var breadcrumbs = [ { text: '[[global:home]]', @@ -104,7 +104,7 @@ helpers.buildBreadcrumbs = function(crumbs) { } ]; - crumbs.forEach(function(crumb) { + crumbs.forEach(function (crumb) { if (crumb) { if (crumb.url) { crumb.url = nconf.get('relative_path') + crumb.url; @@ -116,14 +116,14 @@ helpers.buildBreadcrumbs = function(crumbs) { return breadcrumbs; }; -helpers.buildTitle = function(pageTitle) { +helpers.buildTitle = function (pageTitle) { var titleLayout = meta.config.titleLayout || '{pageTitle} | {browserTitle}'; var browserTitle = validator.escape(String(meta.config.browserTitle || meta.config.title || 'NodeBB')); pageTitle = pageTitle || ''; - var title = titleLayout.replace('{pageTitle}', function() { + var title = titleLayout.replace('{pageTitle}', function () { return pageTitle; - }).replace('{browserTitle}', function() { + }).replace('{browserTitle}', function () { return browserTitle; }); return title; diff --git a/src/controllers/index.js b/src/controllers/index.js index 6e18283d5e..6f73886986 100644 --- a/src/controllers/index.js +++ b/src/controllers/index.js @@ -32,10 +32,10 @@ var Controllers = { }; -Controllers.home = function(req, res, next) { +Controllers.home = function (req, res, next) { var route = meta.config.homePageRoute || (meta.config.homePageCustom || '').replace(/^\/+/, '') || 'categories'; - user.getSettings(req.uid, function(err, settings) { + user.getSettings(req.uid, function (err, settings) { if (err) { return next(err); } @@ -72,9 +72,9 @@ Controllers.home = function(req, res, next) { }); }; -Controllers.reset = function(req, res, next) { +Controllers.reset = function (req, res, next) { if (req.params.code) { - user.reset.validate(req.params.code, function(err, valid) { + user.reset.validate(req.params.code, function (err, valid) { if (err) { return next(err); } @@ -99,7 +99,7 @@ Controllers.reset = function(req, res, next) { }; -Controllers.login = function(req, res, next) { +Controllers.login = function (req, res, next) { var data = {}; var loginStrategies = require('../routes/authentication').getLoginStrategies(); var registrationType = meta.config.registrationType || 'normal'; @@ -132,7 +132,7 @@ Controllers.login = function(req, res, next) { } } if (req.uid) { - user.getUserFields(req.uid, ['username', 'email'], function(err, user) { + user.getUserFields(req.uid, ['username', 'email'], function (err, user) { if (err) { return next(err); } @@ -146,7 +146,7 @@ Controllers.login = function(req, res, next) { }; -Controllers.register = function(req, res, next) { +Controllers.register = function (req, res, next) { var registrationType = meta.config.registrationType || 'normal'; if (registrationType === 'disabled') { @@ -159,17 +159,17 @@ Controllers.register = function(req, res, next) { } async.waterfall([ - function(next) { + function (next) { if (registrationType === 'invite-only' || registrationType === 'admin-invite-only') { user.verifyInvitation(req.query, next); } else { next(); } }, - function(next) { + function (next) { plugins.fireHook('filter:parse.post', {postData: {content: meta.config.termsOfUse || ''}}, next); } - ], function(err, termsOfUse) { + ], function (err, termsOfUse) { if (err) { return next(err); } @@ -194,7 +194,7 @@ Controllers.register = function(req, res, next) { }); }; -Controllers.registerInterstitial = function(req, res, next) { +Controllers.registerInterstitial = function (req, res, next) { if (!req.session.hasOwnProperty('registration')) { return res.redirect(nconf.get('relative_path') + '/register'); } @@ -202,7 +202,7 @@ Controllers.registerInterstitial = function(req, res, next) { plugins.fireHook('filter:register.interstitial', { userData: req.session.registration, interstitials: [] - }, function(err, data) { + }, function (err, data) { if (err) { return next(err); } @@ -211,12 +211,12 @@ Controllers.registerInterstitial = function(req, res, next) { return next(); } - var renders = data.interstitials.map(function(interstitial) { + var renders = data.interstitials.map(function (interstitial) { return async.apply(req.app.render.bind(req.app), interstitial.template, interstitial.data || {}); }); var errors = req.flash('error'); - async.parallel(renders, function(err, sections) { + async.parallel(renders, function (err, sections) { if (err) { return next(err); } @@ -230,13 +230,13 @@ Controllers.registerInterstitial = function(req, res, next) { }); }; -Controllers.compose = function(req, res, next) { +Controllers.compose = function (req, res, next) { plugins.fireHook('filter:composer.build', { req: req, res: res, next: next, templateData: {} - }, function(err, data) { + }, function (err, data) { if (err) { return next(err); } @@ -252,7 +252,7 @@ Controllers.compose = function(req, res, next) { }); }; -Controllers.confirmEmail = function(req, res) { +Controllers.confirmEmail = function (req, res) { user.email.confirm(req.params.code, function (err) { res.render('confirm', { error: err ? err.message : '', @@ -273,7 +273,7 @@ Controllers.robots = function (req, res) { } }; -Controllers.manifest = function(req, res) { +Controllers.manifest = function (req, res) { var manifest = { name: meta.config.title || 'NodeBB', start_url: nconf.get('relative_path') + '/', @@ -319,7 +319,7 @@ Controllers.manifest = function(req, res) { res.status(200).json(manifest); }; -Controllers.outgoing = function(req, res) { +Controllers.outgoing = function (req, res) { var url = req.query.url || ''; var data = { outgoing: validator.escape(String(url)), @@ -334,18 +334,18 @@ Controllers.outgoing = function(req, res) { } }; -Controllers.termsOfUse = function(req, res, next) { +Controllers.termsOfUse = function (req, res, next) { if (!meta.config.termsOfUse) { return next(); } res.render('tos', {termsOfUse: meta.config.termsOfUse}); }; -Controllers.ping = function(req, res) { +Controllers.ping = function (req, res) { res.status(200).send(req.path === '/sping' ? 'healthy' : '200'); }; -Controllers.handle404 = function(req, res) { +Controllers.handle404 = function (req, res) { var relativePath = nconf.get('relative_path'); var isLanguage = new RegExp('^' + relativePath + '/language/.*/.*.json'); var isClientScript = new RegExp('^' + relativePath + '\\/src\\/.+\\.js'); @@ -379,7 +379,7 @@ Controllers.handle404 = function(req, res) { return res.json({path: validator.escape(path.replace(/^\/api/, '')), title: '[[global:404.title]]'}); } var middleware = require('../middleware'); - middleware.buildHeader(req, res, function() { + middleware.buildHeader(req, res, function () { res.render('404', {path: validator.escape(path), title: '[[global:404.title]]'}); }); } else { @@ -387,7 +387,7 @@ Controllers.handle404 = function(req, res) { } }; -Controllers.handleURIErrors = function(err, req, res, next) { +Controllers.handleURIErrors = function (err, req, res, next) { // Handle cases where malformed URIs are passed in if (err instanceof URIError) { var tidMatch = req.path.match(/^\/topic\/(\d+)\//); @@ -405,7 +405,7 @@ Controllers.handleURIErrors = function(err, req, res, next) { }); } else { var middleware = require('../middleware'); - middleware.buildHeader(req, res, function() { + middleware.buildHeader(req, res, function () { res.render('400', { error: validator.escape(String(err.message)) }); }); } @@ -417,7 +417,7 @@ Controllers.handleURIErrors = function(err, req, res, next) { } }; -Controllers.handleErrors = function(err, req, res, next) { +Controllers.handleErrors = function (err, req, res, next) { switch (err.code) { case 'EBADCSRFTOKEN': winston.error(req.path + '\n', err.message); @@ -439,7 +439,7 @@ Controllers.handleErrors = function(err, req, res, next) { res.json({path: validator.escape(path), error: err.message}); } else { var middleware = require('../middleware'); - middleware.buildHeader(req, res, function() { + middleware.buildHeader(req, res, function () { res.render('500', { path: validator.escape(path), error: validator.escape(String(err.message)) }); }); } diff --git a/src/controllers/popular.js b/src/controllers/popular.js index 353fd9e33c..f38edd594c 100644 --- a/src/controllers/popular.js +++ b/src/controllers/popular.js @@ -17,7 +17,7 @@ var terms = { monthly: 'month' }; -popularController.get = function(req, res, next) { +popularController.get = function (req, res, next) { var term = terms[req.params.term]; @@ -39,7 +39,7 @@ popularController.get = function(req, res, next) { } } - topics.getPopular(term, req.uid, meta.config.topicsPerList, function(err, topics) { + topics.getPopular(term, req.uid, meta.config.topicsPerList, function (err, topics) { if (err) { return next(err); } diff --git a/src/controllers/posts.js b/src/controllers/posts.js index be96fa7e43..dae990e171 100644 --- a/src/controllers/posts.js +++ b/src/controllers/posts.js @@ -5,13 +5,13 @@ var helpers = require('./helpers'); var postsController = {}; -postsController.redirectToPost = function(req, res, callback) { +postsController.redirectToPost = function (req, res, callback) { var pid = parseInt(req.params.pid, 10); if (!pid) { return callback(); } - posts.generatePostPath(pid, req.uid, function(err, path) { + posts.generatePostPath(pid, req.uid, function (err, path) { if (err || !path) { return callback(err); } diff --git a/src/controllers/recent.js b/src/controllers/recent.js index 512a034512..72c0f45721 100644 --- a/src/controllers/recent.js +++ b/src/controllers/recent.js @@ -14,7 +14,7 @@ var pagination = require('../pagination'); var recentController = {}; -recentController.get = function(req, res, next) { +recentController.get = function (req, res, next) { var page = parseInt(req.query.page, 10) || 1; var pageCount = 1; var stop = 0; @@ -24,7 +24,7 @@ recentController.get = function(req, res, next) { async.waterfall([ function (next) { async.parallel({ - settings: function(next) { + settings: function (next) { user.getSettings(req.uid, next); }, tids: function (next) { @@ -46,7 +46,7 @@ recentController.get = function(req, res, next) { topics.getTopicsByTids(tids, req.uid, next); } - ], function(err, topics) { + ], function (err, topics) { if (err) { return next(err); } diff --git a/src/controllers/search.js b/src/controllers/search.js index 8c016c759c..5967cfc88e 100644 --- a/src/controllers/search.js +++ b/src/controllers/search.js @@ -13,7 +13,7 @@ var helpers = require('./helpers'); var searchController = {}; -searchController.search = function(req, res, next) { +searchController.search = function (req, res, next) { if (!plugins.hasListeners('filter:search.query')) { return next(); } @@ -47,7 +47,7 @@ searchController.search = function(req, res, next) { async.parallel({ categories: async.apply(categories.buildForSelect, req.uid), search: async.apply(search.search, data) - }, function(err, results) { + }, function (err, results) { if (err) { return next(err); } diff --git a/src/controllers/sitemap.js b/src/controllers/sitemap.js index 8ba41ede77..42b0ae1076 100644 --- a/src/controllers/sitemap.js +++ b/src/controllers/sitemap.js @@ -4,13 +4,13 @@ var sitemap = require('../sitemap'); var meta = require('../meta'); var sitemapController = {}; -sitemapController.render = function(req, res, next) { - sitemap.render(function(err, tplData) { +sitemapController.render = function (req, res, next) { + sitemap.render(function (err, tplData) { if (err) { return next(err); } - req.app.render('sitemap', tplData, function(err, xml) { + req.app.render('sitemap', tplData, function (err, xml) { if (err) { return next(err); } @@ -20,12 +20,12 @@ sitemapController.render = function(req, res, next) { }); }; -sitemapController.getPages = function(req, res, next) { +sitemapController.getPages = function (req, res, next) { if (parseInt(meta.config['feeds:disableSitemap'], 10) === 1) { return next(); } - sitemap.getPages(function(err, xml) { + sitemap.getPages(function (err, xml) { if (err) { return next(err); } @@ -34,12 +34,12 @@ sitemapController.getPages = function(req, res, next) { }); }; -sitemapController.getCategories = function(req, res, next) { +sitemapController.getCategories = function (req, res, next) { if (parseInt(meta.config['feeds:disableSitemap'], 10) === 1) { return next(); } - sitemap.getCategories(function(err, xml) { + sitemap.getCategories(function (err, xml) { if (err) { return next(err); } @@ -48,12 +48,12 @@ sitemapController.getCategories = function(req, res, next) { }); }; -sitemapController.getTopicPage = function(req, res, next) { +sitemapController.getTopicPage = function (req, res, next) { if (parseInt(meta.config['feeds:disableSitemap'], 10) === 1) { return next(); } - sitemap.getTopicPage(parseInt(req.params[0], 10), function(err, xml) { + sitemap.getTopicPage(parseInt(req.params[0], 10), function (err, xml) { if (err) { return next(err); } else if (!xml) { diff --git a/src/controllers/tags.js b/src/controllers/tags.js index ba1ec919b2..a433694220 100644 --- a/src/controllers/tags.js +++ b/src/controllers/tags.js @@ -12,7 +12,7 @@ var helpers = require('./helpers'); var tagsController = {}; -tagsController.getTag = function(req, res, next) { +tagsController.getTag = function (req, res, next) { var tag = validator.escape(String(req.params.tag)); var page = parseInt(req.query.page, 10) || 1; @@ -34,10 +34,10 @@ tagsController.getTag = function(req, res, next) { var stop = start + settings.topicsPerPage - 1; templateData.nextStart = stop + 1; async.parallel({ - topicCount: function(next) { + topicCount: function (next) { topics.getTagTopicCount(tag, next); }, - tids: function(next) { + tids: function (next) { topics.getTagTids(req.params.tag, start, stop, next); } }, next); @@ -49,7 +49,7 @@ tagsController.getTag = function(req, res, next) { topicCount = results.topicCount; topics.getTopics(results.tids, req.uid, next); } - ], function(err, topics) { + ], function (err, topics) { if (err) { return next(err); } @@ -77,8 +77,8 @@ tagsController.getTag = function(req, res, next) { }); }; -tagsController.getTags = function(req, res, next) { - topics.getTags(0, 99, function(err, tags) { +tagsController.getTags = function (req, res, next) { + topics.getTags(0, 99, function (err, tags) { if (err) { return next(err); } diff --git a/src/controllers/topics.js b/src/controllers/topics.js index 2200929ab6..c739052937 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -17,7 +17,7 @@ var utils = require('../../public/src/utils'); var topicsController = {}; -topicsController.get = function(req, res, callback) { +topicsController.get = function (req, res, callback) { var tid = req.params.topic_id; var currentPage = parseInt(req.query.page, 10) || 1; var pageCount = 1; @@ -31,13 +31,13 @@ topicsController.get = function(req, res, callback) { async.waterfall([ function (next) { async.parallel({ - privileges: function(next) { + privileges: function (next) { privileges.topics.get(tid, req.uid, next); }, - settings: function(next) { + settings: function (next) { user.getSettings(req.uid, next); }, - topic: function(next) { + topic: function (next) { topics.getTopicData(tid, next); } }, next); @@ -56,7 +56,7 @@ topicsController.get = function(req, res, callback) { if (!res.locals.isAPI && (!req.params.slug || results.topic.slug !== tid + '/' + req.params.slug) && (results.topic.slug && results.topic.slug !== tid + '/')) { var url = '/topic/' + results.topic.slug; if (req.params.post_index){ - url += '/'+req.params.post_index; + url += '/' + req.params.post_index; } if (currentPage > 1) { url += '?page=' + currentPage; @@ -139,7 +139,7 @@ topicsController.get = function(req, res, callback) { } ]; - helpers.buildCategoryBreadcrumbs(data.topicData.category.parentCid, function(err, crumbs) { + helpers.buildCategoryBreadcrumbs(data.topicData.category.parentCid, function (err, crumbs) { if (err) { return next(err); } @@ -149,7 +149,7 @@ topicsController.get = function(req, res, callback) { }, function (topicData, next) { function findPost(index) { - for(var i=0; i