diff --git a/public/language/en-GB/admin/admin.json b/public/language/en-GB/admin/admin.json index 36f0fdde60..5d3f6ab55a 100644 --- a/public/language/en-GB/admin/admin.json +++ b/public/language/en-GB/admin/admin.json @@ -3,5 +3,9 @@ "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", "acp-title": "%1 | NodeBB Admin Control Panel", - "settings-header-contents": "Contents" + "settings-header-contents": "Contents", + "changes-saved": "Changed Saved", + "changes-saved-message": "Your changes to the NodeBB configuration have been saved.", + "changes-not-saved": "Changes Not Saved", + "changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)" } \ No newline at end of file diff --git a/public/src/admin/appearance/skins.js b/public/src/admin/appearance/skins.js index 653742bd7d..ea1336bd36 100644 --- a/public/src/admin/appearance/skins.js +++ b/public/src/admin/appearance/skins.js @@ -1,7 +1,7 @@ 'use strict'; -define('admin/appearance/skins', ['translator'], function (translator) { +define('admin/appearance/skins', ['translator', 'alerts'], function (translator, alerts) { const Skins = {}; Skins.init = function () { @@ -33,11 +33,11 @@ define('admin/appearance/skins', ['translator'], function (translator) { src: cssSrc, }, function (err) { if (err) { - return app.alertError(err.message); + return alerts.error(err); } highlightSelectedTheme(themeId); - app.alert({ + alerts.alert({ alert_id: 'admin:theme', type: 'info', title: '[[admin/appearance/skins:skin-updated]]', diff --git a/public/src/admin/appearance/themes.js b/public/src/admin/appearance/themes.js index 7a27d94c9d..be91d3ad6c 100644 --- a/public/src/admin/appearance/themes.js +++ b/public/src/admin/appearance/themes.js @@ -1,7 +1,7 @@ 'use strict'; -define('admin/appearance/themes', ['bootbox', 'translator'], function (bootbox, translator) { +define('admin/appearance/themes', ['bootbox', 'translator', 'alerts'], function (bootbox, translator, alerts) { const Themes = {}; Themes.init = function () { @@ -21,12 +21,12 @@ define('admin/appearance/themes', ['bootbox', 'translator'], function (bootbox, src: cssSrc, }, function (err) { if (err) { - return app.alertError(err.message); + return alerts.error(err); } config['theme:id'] = themeId; highlightSelectedTheme(themeId); - app.alert({ + alerts.alert({ alert_id: 'admin:theme', type: 'info', title: '[[admin/appearance/themes:theme-changed]]', @@ -50,10 +50,10 @@ define('admin/appearance/themes', ['bootbox', 'translator'], function (bootbox, id: 'nodebb-theme-persona', }, function (err) { if (err) { - return app.alertError(err.message); + return alerts.error(err); } highlightSelectedTheme('nodebb-theme-persona'); - app.alert({ + alerts.alert({ alert_id: 'admin:theme', type: 'success', title: '[[admin/appearance/themes:theme-changed]]', @@ -67,7 +67,7 @@ define('admin/appearance/themes', ['bootbox', 'translator'], function (bootbox, socket.emit('admin.themes.getInstalled', function (err, themes) { if (err) { - return app.alertError(err.message); + return alerts.error(err); } const instListEl = $('#installed_themes'); diff --git a/public/src/admin/extend/plugins.js b/public/src/admin/extend/plugins.js index 36ff1fdb1d..0914c5c3aa 100644 --- a/public/src/admin/extend/plugins.js +++ b/public/src/admin/extend/plugins.js @@ -5,8 +5,9 @@ define('admin/extend/plugins', [ 'translator', 'benchpress', 'bootbox', + 'alerts', 'jquery-ui/widgets/sortable', -], function (translator, Benchpress, bootbox) { +], function (translator, Benchpress, bootbox, alerts) { const Plugins = {}; Plugins.init = function () { const pluginsList = $('.plugins'); @@ -33,7 +34,7 @@ define('admin/extend/plugins', [ function toggleActivate() { socket.emit('admin.plugins.toggleActive', pluginID, function (err, status) { if (err) { - return app.alertError(err); + return alerts.error(err); } translator.translate(' [[admin/extend/plugins:plugin-item.' + (status.active ? 'deactivate' : 'activate') + ']]', function (buttonText) { btn.html(buttonText); @@ -47,7 +48,7 @@ define('admin/extend/plugins', [ // Toggle active state in template data pluginData.active = !pluginData.active; - app.alert({ + alerts.alert({ alert_id: 'plugin_toggled', title: '[[admin/extend/plugins:alert.' + (status.active ? 'enabled' : 'disabled') + ']]', message: '[[admin/extend/plugins:alert.' + (status.active ? 'activate-success' : 'deactivate-success') + ']]', @@ -213,11 +214,11 @@ define('admin/extend/plugins', [ socket.emit('admin.plugins.orderActivePlugins', data, function (err) { if (err) { - return app.alertError(err.message); + return alerts.error(err); } $('#order-active-plugins-modal').modal('hide'); - app.alert({ + alerts.alert({ alert_id: 'plugin_reordered', title: '[[admin/extend/plugins:alert.reorder]]', message: '[[admin/extend/plugins:alert.reorder-success]]', @@ -250,14 +251,14 @@ define('admin/extend/plugins', [ version: version, }, function (err, isActive) { if (err) { - return app.alertError(err.message); + return alerts.error(err); } const parent = btn.parents('li'); parent.find('.fa-exclamation-triangle').remove(); parent.find('.currentVersion').text(version); btn.remove(); if (isActive) { - app.alert({ + alerts.alert({ alert_id: 'plugin_upgraded', title: '[[admin/extend/plugins:alert.upgraded]]', message: '[[admin/extend/plugins:alert.upgrade-success]]', @@ -283,12 +284,12 @@ define('admin/extend/plugins', [ }, function (err, pluginData) { if (err) { btn.removeAttr('disabled'); - return app.alertError(err.message); + return alerts.error(err); } ajaxify.refresh(); - app.alert({ + alerts.alert({ alert_id: 'plugin_toggled', title: '[[admin/extend/plugins:alert.' + (pluginData.installed ? 'installed' : 'uninstalled') + ']]', message: '[[admin/extend/plugins:alert.' + (pluginData.installed ? 'install-success' : 'uninstall-success') + ']]', diff --git a/public/src/admin/extend/widgets.js b/public/src/admin/extend/widgets.js index aad32fe7e1..84bca133f5 100644 --- a/public/src/admin/extend/widgets.js +++ b/public/src/admin/extend/widgets.js @@ -3,11 +3,12 @@ define('admin/extend/widgets', [ 'bootbox', + 'alerts', 'jquery-ui/widgets/sortable', 'jquery-ui/widgets/draggable', 'jquery-ui/widgets/droppable', 'jquery-ui/widgets/datepicker', -], function (bootbox) { +], function (bootbox, alerts) { const Widgets = {}; Widgets.init = function () { @@ -126,10 +127,10 @@ define('admin/extend/widgets', [ socket.emit('admin.widgets.set', saveData, function (err) { if (err) { - app.alertError(err.message); + alerts.error(err); } - app.alert({ + alerts.alert({ alert_id: 'admin:widgets', type: 'success', title: '[[admin/extend/widgets:alert.updated]]', diff --git a/public/src/admin/manage/categories.js b/public/src/admin/manage/categories.js index 9120a52c23..7c22daa8cd 100644 --- a/public/src/admin/manage/categories.js +++ b/public/src/admin/manage/categories.js @@ -7,7 +7,8 @@ define('admin/manage/categories', [ 'api', 'Sortable', 'bootbox', -], function (translator, Benchpress, categorySelector, api, Sortable, bootbox) { + 'alerts', +], function (translator, Benchpress, categorySelector, api, Sortable, bootbox, alerts) { const Categories = {}; let newCategoryId = -1; let sortables; @@ -143,10 +144,10 @@ define('admin/manage/categories', [ Categories.create = function (payload) { api.post('/categories', payload, function (err, data) { if (err) { - return app.alertError(err.message); + return alerts.error(err); } - app.alert({ + alerts.alert({ alert_id: 'category_created', title: '[[admin/manage/categories:alert.created]]', message: '[[admin/manage/categories:alert.create-success]]', diff --git a/public/src/admin/manage/category.js b/public/src/admin/manage/category.js index 6dc849aee7..ee4db16b0a 100644 --- a/public/src/admin/manage/category.js +++ b/public/src/admin/manage/category.js @@ -7,7 +7,8 @@ define('admin/manage/category', [ 'benchpress', 'api', 'bootbox', -], function (uploader, iconSelect, categorySelector, Benchpress, api, bootbox) { + 'alerts', +], function (uploader, iconSelect, categorySelector, Benchpress, api, bootbox, alerts) { const Category = {}; let updateHash = {}; @@ -55,14 +56,14 @@ define('admin/manage/category', [ const cid = ajaxify.data.category.cid; api.put('/categories/' + cid, updateHash).then((res) => { app.flags._unsaved = false; - app.alert({ + alerts.alert({ title: 'Updated Categories', message: 'Category "' + res.name + '" was successfully updated.', type: 'success', timeout: 5000, }); updateHash = {}; - }).catch(app.alertError); + }).catch(alerts.error); return false; }); diff --git a/public/src/admin/manage/privileges.js b/public/src/admin/manage/privileges.js index 89d771a1b1..e31c2cbe44 100644 --- a/public/src/admin/manage/privileges.js +++ b/public/src/admin/manage/privileges.js @@ -4,11 +4,12 @@ define('admin/manage/privileges', [ 'api', 'autocomplete', 'bootbox', + 'alerts', 'translator', 'categorySelector', 'mousetrap', 'admin/modules/checkboxRowSelector', -], function (api, autocomplete, bootbox, translator, categorySelector, mousetrap, checkboxRowSelector) { +], function (api, autocomplete, bootbox, alerts, translator, categorySelector, mousetrap, checkboxRowSelector) { const Privileges = {}; let cid; @@ -267,7 +268,7 @@ define('admin/manage/privileges', [ autocomplete.group(inputEl, function (ev, ui) { if (ui.item.group.name === 'administrators') { - return app.alert({ + return alerts.alert({ type: 'warning', message: '[[admin/manage/privileges:alert.admin-warning]]', }); diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js index 5eb6615620..1eaa135a9e 100644 --- a/public/src/admin/manage/users.js +++ b/public/src/admin/manage/users.js @@ -1,8 +1,8 @@ 'use strict'; define('admin/manage/users', [ - 'translator', 'benchpress', 'autocomplete', 'api', 'slugify', 'bootbox', 'accounts/invite', -], function (translator, Benchpress, autocomplete, api, slugify, bootbox, AccountInvite) { + 'translator', 'benchpress', 'autocomplete', 'api', 'slugify', 'bootbox', 'alerts', 'accounts/invite', +], function (translator, Benchpress, autocomplete, api, slugify, bootbox, alerts, AccountInvite) { const Users = {}; Users.init = function () { @@ -15,8 +15,8 @@ define('admin/manage/users', [ $('.export-csv').on('click', function () { socket.once('event:export-users-csv', function () { - app.removeAlert('export-users-start'); - app.alert({ + alerts.remove('export-users-start'); + alerts.alert({ alert_id: 'export-users', type: 'success', title: '[[global:alert.success]]', @@ -29,9 +29,9 @@ define('admin/manage/users', [ }); socket.emit('admin.user.exportUsersCSV', {}, function (err) { if (err) { - return app.alertError(err); + return alerts.error(err); } - app.alert({ + alerts.alert({ alert_id: 'export-users-start', message: '[[admin/manage/users:export-users-started]]', timeout: (ajaxify.data.userCount / 5000) * 500, diff --git a/public/src/admin/modules/instance.js b/public/src/admin/modules/instance.js index 996e381229..c2da2d5653 100644 --- a/public/src/admin/modules/instance.js +++ b/public/src/admin/modules/instance.js @@ -1,15 +1,16 @@ 'use strict'; define('admin/modules/instance', [ + 'alerts', // need to preload the compiled alert template // otherwise it can be unloaded when rebuild & restart is run // the client can't fetch the template file, resulting in an error config.relative_path + '/assets/templates/alert.js', -], function () { +], function (alerts) { const instance = {}; instance.rebuildAndRestart = function (callback) { - app.alert({ + alerts.alert({ alert_id: 'instance_rebuild_and_restart', type: 'info', title: 'Rebuilding... ', @@ -17,7 +18,7 @@ define('admin/modules/instance', [ }); $(window).one('action:reconnected', function () { - app.alert({ + alerts.alert({ alert_id: 'instance_rebuild_and_restart', type: 'success', title: ' Success', @@ -31,7 +32,7 @@ define('admin/modules/instance', [ }); socket.emit('admin.reload', function () { - app.alert({ + alerts.alert({ alert_id: 'instance_rebuild_and_restart', type: 'info', title: 'Build Complete!... ', @@ -41,7 +42,7 @@ define('admin/modules/instance', [ }; instance.restart = function (callback) { - app.alert({ + alerts.alert({ alert_id: 'instance_restart', type: 'info', title: 'Restarting... ', @@ -49,7 +50,7 @@ define('admin/modules/instance', [ }); $(window).one('action:reconnected', function () { - app.alert({ + alerts.alert({ alert_id: 'instance_restart', type: 'success', title: ' Success', diff --git a/public/src/admin/settings.js b/public/src/admin/settings.js index 6b5a5c717f..cd7857f8cb 100644 --- a/public/src/admin/settings.js +++ b/public/src/admin/settings.js @@ -1,7 +1,7 @@ 'use strict'; -define('admin/settings', ['uploader', 'mousetrap', 'hooks'], function (uploader, mousetrap, hooks) { +define('admin/settings', ['uploader', 'mousetrap', 'hooks', 'alerts'], function (uploader, mousetrap, hooks, alerts) { const Settings = {}; Settings.populateTOC = function () { @@ -68,22 +68,22 @@ define('admin/settings', ['uploader', 'mousetrap', 'hooks'], function (uploader, saveFields(fields, function onFieldsSaved(err) { if (err) { - return app.alert({ + return alerts.alert({ alert_id: 'config_status', timeout: 2500, - title: 'Changes Not Saved', - message: 'NodeBB encountered a problem saving your changes. (' + err.message + ')', + title: '[[admin/admin:changes-not-saved]]', + message: `[[admin/admin:changes-not-saved-message, ${err.message}]]`, type: 'danger', }); } app.flags._unsaved = false; - app.alert({ + alerts.alert({ alert_id: 'config_status', timeout: 2500, - title: 'Changes Saved', - message: 'Your changes to the NodeBB configuration have been saved.', + title: '[[admin/admin:changes-saved]]', + message: '[[admin/admin:changes-saved-message]]', type: 'success', }); diff --git a/public/src/admin/settings/api.js b/public/src/admin/settings/api.js index 6f70813a76..a994d885a6 100644 --- a/public/src/admin/settings/api.js +++ b/public/src/admin/settings/api.js @@ -1,6 +1,6 @@ 'use strict'; -define('admin/settings/api', ['settings'], function (settings) { +define('admin/settings/api', ['settings', 'alerts'], function (settings, alerts) { const ACP = {}; ACP.init = function () { @@ -20,7 +20,7 @@ define('admin/settings/api', ['settings'], function (settings) { function saveSettings() { settings.save('core.api', $('.core-api-settings'), function () { - app.alert({ + alerts.alert({ type: 'success', alert_id: 'core.api-saved', title: 'Settings Saved', diff --git a/public/src/client/chats/messages.js b/public/src/client/chats/messages.js index 7c11c1a479..a2ce1d4c01 100644 --- a/public/src/client/chats/messages.js +++ b/public/src/client/chats/messages.js @@ -2,8 +2,8 @@ define('forum/chats/messages', [ - 'components', 'translator', 'benchpress', 'hooks', 'bootbox', 'messages', -], function (components, translator, Benchpress, hooks, bootbox, messagesModule) { + 'components', 'translator', 'benchpress', 'hooks', 'bootbox', 'alerts', 'messages', +], function (components, translator, Benchpress, hooks, bootbox, alerts, messagesModule) { const messages = {}; messages.sendMessage = function (roomId, inputEl) { @@ -35,7 +35,7 @@ define('forum/chats/messages', [ return messagesModule.showEmailConfirmWarning(err.message); } - return app.alert({ + return alerts.alert({ alert_id: 'chat_spam_error', title: '[[global:alert.error]]', message: err.message, diff --git a/public/src/client/ip-blacklist.js b/public/src/client/ip-blacklist.js index 55ddbd42d5..5fccd07a32 100644 --- a/public/src/client/ip-blacklist.js +++ b/public/src/client/ip-blacklist.js @@ -1,7 +1,7 @@ 'use strict'; -define('forum/ip-blacklist', ['Chart', 'benchpress', 'bootbox'], function (Chart, Benchpress, bootbox) { +define('forum/ip-blacklist', ['Chart', 'benchpress', 'bootbox', 'alerts'], function (Chart, Benchpress, bootbox, alerts) { const Blacklist = {}; Blacklist.init = function () { @@ -14,9 +14,9 @@ define('forum/ip-blacklist', ['Chart', 'benchpress', 'bootbox'], function (Chart $('[data-action="apply"]').on('click', function () { socket.emit('blacklist.save', blacklist.val(), function (err) { if (err) { - return app.alertError(err.message); + return alerts.error(err); } - app.alert({ + alerts.alert({ type: 'success', alert_id: 'blacklist-saved', title: '[[ip-blacklist:alerts.applied-success]]', @@ -29,7 +29,7 @@ define('forum/ip-blacklist', ['Chart', 'benchpress', 'bootbox'], function (Chart rules: blacklist.val(), }, function (err, data) { if (err) { - return app.alertError(err.message); + return alerts.error(err); } Benchpress.render('admin/partials/blacklist-validate', data).then(function (html) { diff --git a/public/src/client/topic.js b/public/src/client/topic.js index 47dfdba236..86856bb893 100644 --- a/public/src/client/topic.js +++ b/public/src/client/topic.js @@ -13,10 +13,11 @@ define('forum/topic', [ 'storage', 'hooks', 'api', + 'alerts', ], function ( infinitescroll, threadTools, postTools, events, posts, navigator, sort, - components, storage, hooks, api + components, storage, hooks, api, alerts ) { const Topic = {}; let currentUrl = ''; @@ -113,7 +114,7 @@ define('forum/topic', [ !config.usePagination || (config.usePagination && ajaxify.data.pagination.currentPage === 1) ) && ajaxify.data.postcount > ajaxify.data.bookmarkThreshold) { - app.alert({ + alerts.alert({ alert_id: 'bookmark', message: '[[topic:bookmark_instructions]]', timeout: 0, @@ -126,7 +127,7 @@ define('forum/topic', [ }, }); setTimeout(function () { - app.removeAlert('bookmark'); + alerts.remove('bookmark'); }, 10000); } } diff --git a/public/src/client/topic/fork.js b/public/src/client/topic/fork.js index ba4e220d2c..28d2573fc8 100644 --- a/public/src/client/topic/fork.js +++ b/public/src/client/topic/fork.js @@ -1,7 +1,7 @@ 'use strict'; -define('forum/topic/fork', ['components', 'postSelect'], function (components, postSelect) { +define('forum/topic/fork', ['components', 'postSelect', 'alerts'], function (components, postSelect, alerts) { const Fork = {}; let forkModal; let forkCommit; @@ -57,10 +57,10 @@ define('forum/topic/fork', ['components', 'postSelect'], function (components, p } forkCommit.removeAttr('disabled'); if (err) { - return app.alertError(err.message); + return alerts.error(err.message); } - app.alert({ + alerts.alert({ timeout: 5000, title: '[[global:alert.success]]', message: '[[topic:fork_success]]', diff --git a/public/src/client/topic/threadTools.js b/public/src/client/topic/threadTools.js index a393b00b1d..2d6790e0ba 100644 --- a/public/src/client/topic/threadTools.js +++ b/public/src/client/topic/threadTools.js @@ -9,7 +9,8 @@ define('forum/topic/threadTools', [ 'api', 'hooks', 'bootbox', -], function (components, translator, handleBack, posts, api, hooks, bootbox) { + 'alerts', +], function (components, translator, handleBack, posts, api, hooks, bootbox, alerts) { const ThreadTools = {}; ThreadTools.init = function (tid, topicContainer) { @@ -149,7 +150,7 @@ define('forum/topic/threadTools', [ setFollowState(type); - app.alert({ + alerts.alert({ alert_id: 'follow_thread', message: message, type: 'success', @@ -158,7 +159,7 @@ define('forum/topic/threadTools', [ hooks.fire('action:topics.changeWatching', { tid: tid, type: type }); }, () => { - app.alert({ + alerts.alert({ type: 'danger', alert_id: 'topic_follow', title: '[[global:please_log_in]]', diff --git a/public/src/modules/coverPhoto.js b/public/src/modules/coverPhoto.js index 7c1a1e21e6..388f0341ae 100644 --- a/public/src/modules/coverPhoto.js +++ b/public/src/modules/coverPhoto.js @@ -2,8 +2,9 @@ define('coverPhoto', [ + 'alerts', 'vendor/jquery/draggable-background/backgroundDraggable', -], function () { +], function (alerts) { const coverPhoto = { coverEl: null, saveFn: null, @@ -58,7 +59,7 @@ define('coverPhoto', [ units: 'percent', }); - app.alert({ + alerts.alert({ alert_id: 'drag_start', title: '[[modules:cover.dragging_title]]', message: '[[modules:cover.dragging_message]]', @@ -75,9 +76,9 @@ define('coverPhoto', [ coverPhoto.coverEl.backgroundDraggable('disable'); coverPhoto.coverEl.off('dragover', coverPhoto.onDragOver); coverPhoto.coverEl.off('drop', coverPhoto.onDrop); - app.alertSuccess('[[modules:cover.saved]]'); + alerts.success('[[modules:cover.saved]]'); } else { - app.alertError(err.message); + alerts.error(err); } coverPhoto.coverEl.removeClass('saving'); diff --git a/public/src/modules/messages.js b/public/src/modules/messages.js index 0c1cfe2e71..57041c9188 100644 --- a/public/src/modules/messages.js +++ b/public/src/modules/messages.js @@ -31,7 +31,7 @@ define('messages', ['bootbox', 'translator', 'storage', 'alerts'], function (boo app.removeAlert('email_confirm'); ajaxify.go('user/' + app.user.userslug + '/edit/email'); }; - app.alert(msg); + alerts.alert(msg); } else if (!app.user['email:confirmed'] && !app.user.isEmailConfirmSent) { msg.message = message || '[[error:email-not-confirmed]]'; msg.clickfn = function () { @@ -43,10 +43,10 @@ define('messages', ['bootbox', 'translator', 'storage', 'alerts'], function (boo app.alertSuccess('[[notifications:email-confirm-sent]]'); }); }; - app.alert(msg); + alerts.alert(msg); } else if (!app.user['email:confirmed'] && app.user.isEmailConfirmSent) { msg.message = '[[error:email-not-confirmed-email-sent]]'; - app.alert(msg); + alerts.alert(msg); } }; diff --git a/public/src/modules/search.js b/public/src/modules/search.js index 1249435c69..2e0ce57fb9 100644 --- a/public/src/modules/search.js +++ b/public/src/modules/search.js @@ -1,6 +1,6 @@ 'use strict'; -define('search', ['translator', 'storage', 'hooks'], function (translator, storage, hooks) { +define('search', ['translator', 'storage', 'hooks', 'alerts'], function (translator, storage, hooks, alerts) { const Search = { current: {}, }; @@ -45,7 +45,7 @@ define('search', ['translator', 'storage', 'hooks'], function (translator, stora searchButton.off('click').on('click', function (e) { if (!config.loggedIn && !app.user.privileges['search:content']) { - app.alert({ + alerts.alert({ message: '[[error:search-requires-login]]', timeout: 3000, }); diff --git a/public/src/modules/settings.js b/public/src/modules/settings.js index 0d6258c537..837b80803d 100644 --- a/public/src/modules/settings.js +++ b/public/src/modules/settings.js @@ -1,7 +1,7 @@ 'use strict'; -define('settings', ['hooks'], function (hooks) { +define('settings', ['hooks', 'alerts'], function (hooks, alerts) { const DEFAULT_PLUGINS = [ 'settings/checkbox', 'settings/number', @@ -310,17 +310,17 @@ define('settings', ['hooks'], function (hooks) { }, function (err) { if (notify) { if (err) { - app.alert({ - title: 'Settings Not Saved', + alerts.alert({ + title: '[[admin/admin:changes-not-saved]]', type: 'danger', - message: 'NodeBB failed to save the settings.', + message: `[[admin/admin/changes-not-saved-message, ${err.message}]]`, timeout: 5000, }); } else { - app.alert({ - title: 'Settings Saved', + alerts.alert({ + title: '[[admin/admin:changes-saved]]', type: 'success', - message: 'Settings have been successfully saved', + message: '[[admin/admin:changes-saved-message]]', timeout: 2500, }); } @@ -460,7 +460,7 @@ define('settings', ['hooks'], function (hooks) { } } if (notSaved.length) { - app.alert({ + alerts.alert({ title: 'Attributes Not Saved', message: "'" + (notSaved.join(', ')) + "' could not be saved. Please contact the plugin-author!", type: 'danger', @@ -554,13 +554,13 @@ define('settings', ['hooks'], function (hooks) { if (typeof callback === 'function') { callback(err); } else if (err) { - app.alert({ + alerts.alert({ title: 'Error while saving settings', type: 'error', timeout: 2500, }); } else { - app.alert({ + alerts.alert({ title: 'Settings Saved', type: 'success', timeout: 2500, diff --git a/public/src/sockets.js b/public/src/sockets.js index 5403717009..37698f1a4e 100644 --- a/public/src/sockets.js +++ b/public/src/sockets.js @@ -99,7 +99,9 @@ socket = window.socket; }); }); socket.on('event:alert', function (params) { - app.alert(params); + require(['alerts'], function (alerts) { + alerts.alert(params); + }); }); socket.on('event:deprecated_call', function (data) { console.warn('[socket.io] ', data.eventName, 'is now deprecated in favour of', data.replacement); @@ -109,15 +111,16 @@ socket = window.socket; socket.on('event:nodebb.ready', function (data) { if ((data.hostname === app.upstreamHost) && (!app.cacheBuster || app.cacheBuster !== data['cache-buster'])) { app.cacheBuster = data['cache-buster']; - - app.alert({ - alert_id: 'forum_updated', - title: '[[global:updated.title]]', - message: '[[global:updated.message]]', - clickfn: function () { - window.location.reload(); - }, - type: 'warning', + require(['alerts'], function (alerts) { + alerts.alert({ + alert_id: 'forum_updated', + title: '[[global:updated.title]]', + message: '[[global:updated.message]]', + clickfn: function () { + window.location.reload(); + }, + type: 'warning', + }); }); } });