From 5f43605e4ddbb185814bfee59f07e737eb5c1e76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 13 Jul 2023 19:53:26 -0400 Subject: [PATCH] move imports to top --- public/src/ajaxify.js | 122 ++++++++++++++++++++---------------------- 1 file changed, 58 insertions(+), 64 deletions(-) diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index 0971896727..be16af3e91 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -1,5 +1,8 @@ 'use strict'; +const benchpress = require('benchpressjs'); +const translator = require('./modules/translator'); +const alerts = require('./modules/alerts'); const hooks = require('./modules/hooks'); const { render } = require('./widgets'); @@ -160,9 +163,7 @@ ajaxify.widgets = { render: render }; $('#footer, #content').removeClass('hide').addClass('ajaxifying'); return renderTemplate(url, status.toString(), data.responseJSON || {}, callback); } else if (status === 401) { - require(['alerts'], function (alerts) { - alerts.error('[[global:please_log_in]]'); - }); + alerts.error('[[global:please_log_in]]'); app.previousUrl = url; window.location.href = config.relative_path + '/login'; } else if (status === 302 || status === 308) { @@ -180,53 +181,48 @@ ajaxify.widgets = { render: render }; } } } else if (textStatus !== 'abort') { - require(['alerts'], function (alerts) { - alerts.error(data.responseJSON.error); - }); + alerts.error(data.responseJSON.error); } } function renderTemplate(url, tpl_url, data, callback) { hooks.fire('action:ajaxify.loadingTemplates', {}); - require(['translator', 'benchpress'], function (translator, Benchpress) { - Benchpress.render(tpl_url, data) - .then(rendered => translator.translate(rendered)) - .then(function (translated) { - translated = translator.unescape(translated); - $('body').removeClass(previousBodyClass).addClass(data.bodyClass); - $('#content').html(translated); - - ajaxify.end(url, tpl_url); - - if (typeof callback === 'function') { - callback(); - } + benchpress.render(tpl_url, data) + .then(rendered => translator.translate(rendered)) + .then(function (translated) { + translated = translator.unescape(translated); + $('body').removeClass(previousBodyClass).addClass(data.bodyClass); + $('#content').html(translated); - $('#content, #footer').removeClass('ajaxifying'); + ajaxify.end(url, tpl_url); - // Only executed on ajaxify. Otherwise these'd be in ajaxify.end() - updateTitle(data.title); - updateTags(); - }); - }); + if (typeof callback === 'function') { + callback(); + } + + $('#content, #footer').removeClass('ajaxifying'); + + // Only executed on ajaxify. Otherwise these'd be in ajaxify.end() + updateTitle(data.title); + updateTags(); + }); } function updateTitle(title) { if (!title) { return; } - require(['translator'], function (translator) { - title = config.titleLayout.replace(/{/g, '{').replace(/}/g, '}') - .replace('{pageTitle}', function () { return title; }) - .replace('{browserTitle}', function () { return config.browserTitle; }); - - // Allow translation strings in title on ajaxify (#5927) - title = translator.unescape(title); - const data = { title: title }; - hooks.fire('action:ajaxify.updateTitle', data); - translator.translate(data.title, function (translated) { - window.document.title = $('
').html(translated).text(); - }); + + title = config.titleLayout.replace(/{/g, '{').replace(/}/g, '}') + .replace('{pageTitle}', function () { return title; }) + .replace('{browserTitle}', function () { return config.browserTitle; }); + + // Allow translation strings in title on ajaxify (#5927) + title = translator.unescape(title); + const data = { title: title }; + hooks.fire('action:ajaxify.updateTitle', data); + translator.translate(data.title, function (translated) { + window.document.title = $('
').html(translated).text(); }); } ajaxify.updateTitle = updateTitle; @@ -249,25 +245,25 @@ ajaxify.widgets = { render: render }; .forEach(function (el) { document.head.removeChild(el); }); - require(['translator'], function (translator) { - // Add new meta tags - ajaxify.data._header.tags.meta - .filter(function (tagObj) { - const name = tagObj.name || tagObj.property; - return metaWhitelist.some(function (exp) { - return !!exp.test(name); - }); - }).forEach(async function (tagObj) { - if (tagObj.content) { - tagObj.content = await translator.translate(tagObj.content); - } - const metaEl = document.createElement('meta'); - Object.keys(tagObj).forEach(function (prop) { - metaEl.setAttribute(prop, tagObj[prop]); - }); - document.head.appendChild(metaEl); + + // Add new meta tags + ajaxify.data._header.tags.meta + .filter(function (tagObj) { + const name = tagObj.name || tagObj.property; + return metaWhitelist.some(function (exp) { + return !!exp.test(name); }); - }); + }).forEach(async function (tagObj) { + if (tagObj.content) { + tagObj.content = await translator.translate(tagObj.content); + } + const metaEl = document.createElement('meta'); + Object.keys(tagObj).forEach(function (prop) { + metaEl.setAttribute(prop, tagObj[prop]); + }); + document.head.appendChild(metaEl); + }); + // Delete the old link tags Array.prototype.slice @@ -472,15 +468,13 @@ ajaxify.widgets = { render: render }; hooks.fire('action:ajaxify.cleanup', { url, tpl_url }); }; - require(['translator', 'benchpress', 'navigator'], function (translator, Benchpress) { - translator.translate('[[error:no-connection]]'); - translator.translate('[[error:socket-reconnect-failed]]'); - translator.translate(`[[global:reconnecting-message, ${config.siteTitle}]]`); - Benchpress.registerLoader(ajaxify.loadTemplate); - Benchpress.setGlobal('config', config); - Benchpress.render('500', {}); // loads and caches 500.tpl - Benchpress.render('partials/toast'); // loads and caches partials/toast - }); + translator.translate('[[error:no-connection]]'); + translator.translate('[[error:socket-reconnect-failed]]'); + translator.translate(`[[global:reconnecting-message, ${config.siteTitle}]]`); + benchpress.registerLoader(ajaxify.loadTemplate); + benchpress.setGlobal('config', config); + benchpress.render('500', {}); // loads and caches 500.tpl + benchpress.render('partials/toast'); // loads and caches partials/toast }()); $(document).ready(function () {