move imports to top

isekai-main
Barış Soner Uşaklı 2 years ago
parent 840792ae35
commit 5f43605e4d

@ -1,5 +1,8 @@
'use strict'; 'use strict';
const benchpress = require('benchpressjs');
const translator = require('./modules/translator');
const alerts = require('./modules/alerts');
const hooks = require('./modules/hooks'); const hooks = require('./modules/hooks');
const { render } = require('./widgets'); const { render } = require('./widgets');
@ -160,9 +163,7 @@ ajaxify.widgets = { render: render };
$('#footer, #content').removeClass('hide').addClass('ajaxifying'); $('#footer, #content').removeClass('hide').addClass('ajaxifying');
return renderTemplate(url, status.toString(), data.responseJSON || {}, callback); return renderTemplate(url, status.toString(), data.responseJSON || {}, callback);
} else if (status === 401) { } else if (status === 401) {
require(['alerts'], function (alerts) { alerts.error('[[global:please_log_in]]');
alerts.error('[[global:please_log_in]]');
});
app.previousUrl = url; app.previousUrl = url;
window.location.href = config.relative_path + '/login'; window.location.href = config.relative_path + '/login';
} else if (status === 302 || status === 308) { } else if (status === 302 || status === 308) {
@ -180,53 +181,48 @@ ajaxify.widgets = { render: render };
} }
} }
} else if (textStatus !== 'abort') { } 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) { function renderTemplate(url, tpl_url, data, callback) {
hooks.fire('action:ajaxify.loadingTemplates', {}); hooks.fire('action:ajaxify.loadingTemplates', {});
require(['translator', 'benchpress'], function (translator, Benchpress) { benchpress.render(tpl_url, data)
Benchpress.render(tpl_url, data) .then(rendered => translator.translate(rendered))
.then(rendered => translator.translate(rendered)) .then(function (translated) {
.then(function (translated) { translated = translator.unescape(translated);
translated = translator.unescape(translated); $('body').removeClass(previousBodyClass).addClass(data.bodyClass);
$('body').removeClass(previousBodyClass).addClass(data.bodyClass); $('#content').html(translated);
$('#content').html(translated);
ajaxify.end(url, tpl_url);
if (typeof callback === 'function') {
callback();
}
$('#content, #footer').removeClass('ajaxifying'); ajaxify.end(url, tpl_url);
// Only executed on ajaxify. Otherwise these'd be in ajaxify.end() if (typeof callback === 'function') {
updateTitle(data.title); callback();
updateTags(); }
});
}); $('#content, #footer').removeClass('ajaxifying');
// Only executed on ajaxify. Otherwise these'd be in ajaxify.end()
updateTitle(data.title);
updateTags();
});
} }
function updateTitle(title) { function updateTitle(title) {
if (!title) { if (!title) {
return; return;
} }
require(['translator'], function (translator) {
title = config.titleLayout.replace(/{/g, '{').replace(/}/g, '}') title = config.titleLayout.replace(/{/g, '{').replace(/}/g, '}')
.replace('{pageTitle}', function () { return title; }) .replace('{pageTitle}', function () { return title; })
.replace('{browserTitle}', function () { return config.browserTitle; }); .replace('{browserTitle}', function () { return config.browserTitle; });
// Allow translation strings in title on ajaxify (#5927) // Allow translation strings in title on ajaxify (#5927)
title = translator.unescape(title); title = translator.unescape(title);
const data = { title: title }; const data = { title: title };
hooks.fire('action:ajaxify.updateTitle', data); hooks.fire('action:ajaxify.updateTitle', data);
translator.translate(data.title, function (translated) { translator.translate(data.title, function (translated) {
window.document.title = $('<div></div>').html(translated).text(); window.document.title = $('<div></div>').html(translated).text();
});
}); });
} }
ajaxify.updateTitle = updateTitle; ajaxify.updateTitle = updateTitle;
@ -249,25 +245,25 @@ ajaxify.widgets = { render: render };
.forEach(function (el) { .forEach(function (el) {
document.head.removeChild(el); document.head.removeChild(el);
}); });
require(['translator'], function (translator) {
// Add new meta tags // Add new meta tags
ajaxify.data._header.tags.meta ajaxify.data._header.tags.meta
.filter(function (tagObj) { .filter(function (tagObj) {
const name = tagObj.name || tagObj.property; const name = tagObj.name || tagObj.property;
return metaWhitelist.some(function (exp) { return metaWhitelist.some(function (exp) {
return !!exp.test(name); 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);
}); });
}); }).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 // Delete the old link tags
Array.prototype.slice Array.prototype.slice
@ -472,15 +468,13 @@ ajaxify.widgets = { render: render };
hooks.fire('action:ajaxify.cleanup', { url, tpl_url }); hooks.fire('action:ajaxify.cleanup', { url, tpl_url });
}; };
require(['translator', 'benchpress', 'navigator'], function (translator, Benchpress) { translator.translate('[[error:no-connection]]');
translator.translate('[[error:no-connection]]'); translator.translate('[[error:socket-reconnect-failed]]');
translator.translate('[[error:socket-reconnect-failed]]'); translator.translate(`[[global:reconnecting-message, ${config.siteTitle}]]`);
translator.translate(`[[global:reconnecting-message, ${config.siteTitle}]]`); benchpress.registerLoader(ajaxify.loadTemplate);
Benchpress.registerLoader(ajaxify.loadTemplate); benchpress.setGlobal('config', config);
Benchpress.setGlobal('config', config); benchpress.render('500', {}); // loads and caches 500.tpl
Benchpress.render('500', {}); // loads and caches 500.tpl benchpress.render('partials/toast'); // loads and caches partials/toast
Benchpress.render('partials/toast'); // loads and caches partials/toast
});
}()); }());
$(document).ready(function () { $(document).ready(function () {

Loading…
Cancel
Save