mirror of
https://github.com/zulip/zulip.git
synced 2025-11-06 15:03:34 +00:00
If you create a spinner in a hidden element and then show the element, the spinner is placed differently than if you had created the spinner while the element was visible. This commit makes it so that we never create spinners while their parent is hidden. (imported from commit a21e68976d70fcceece30ee35f5e7cf6f9490497)
44 lines
1.6 KiB
JavaScript
44 lines
1.6 KiB
JavaScript
// Miscellaneous early setup.
|
|
// This is the first of our Javascript files to be included.
|
|
|
|
var templates = {};
|
|
var csrf_token;
|
|
$(function () {
|
|
// Display loading indicator. This disappears after the first
|
|
// get_updates completes.
|
|
if (have_initial_messages) {
|
|
util.make_spinner($('#page_loading_indicator'), 'Loading...');
|
|
}
|
|
|
|
// Compile Handlebars templates.
|
|
$.each(['message', 'subscription',
|
|
'userinfo_popover_title', 'userinfo_popover_content',
|
|
'timeinfo_popover_content', 'invite_subscription'],
|
|
function (index, name) {
|
|
templates[name] = Handlebars.compile($('#template_'+name).html());
|
|
}
|
|
);
|
|
|
|
// This requires that we used Django's {% csrf_token %} somewhere on the page.
|
|
csrf_token = $('input[name="csrfmiddlewaretoken"]').attr('value');
|
|
|
|
$.ajaxSetup({
|
|
beforeSend: function (xhr, settings) {
|
|
if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
|
|
// Only send the token to relative URLs i.e. locally.
|
|
xhr.setRequestHeader("X-CSRFToken", csrf_token);
|
|
}
|
|
}
|
|
});
|
|
|
|
// For some reason, jQuery wants this to be attached to an element.
|
|
$('body').ajaxError(function (event, xhr) {
|
|
if (xhr.status === 401) {
|
|
// We got logged out somehow, perhaps from another window or a session timeout.
|
|
// We could display an error message, but jumping right to the login page seems
|
|
// smoother and conveys the same information.
|
|
window.location.replace('/accounts/login');
|
|
}
|
|
});
|
|
});
|