mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	We essentially inlined the methods in the three places they were called. (imported from commit 622ee718d6dd226187f1e37ff754ee2fa635e6f2)
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Miscellaneous early setup.
 | 
						|
 | 
						|
var csrf_token;
 | 
						|
$(function () {
 | 
						|
    // Display loading indicator.  This disappears after the first
 | 
						|
    // get_events completes.
 | 
						|
    if (page_params.have_initial_messages && !page_params.needs_tutorial) {
 | 
						|
        loading.make_indicator($('#page_loading_indicator'), {text: 'Loading...'});
 | 
						|
    } else if (!page_params.needs_tutorial) {
 | 
						|
        $('#first_run_message').show();
 | 
						|
    }
 | 
						|
 | 
						|
    // 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(page_params.login_page);
 | 
						|
        }
 | 
						|
    });
 | 
						|
 | 
						|
    if (page_params.password_auth_enabled !== false) {
 | 
						|
        // zxcvbn.js is pretty big, and is only needed on password change, so load it asynchronously.
 | 
						|
        $.getScript('/static/third/zxcvbn/zxcvbn.js');
 | 
						|
    }
 | 
						|
 | 
						|
    if (typeof $ !== 'undefined') {
 | 
						|
        $.fn.expectOne = function () {
 | 
						|
            if (blueslip && this.length !== 1) {
 | 
						|
                blueslip.error("Expected one element in jQuery set, " + this.length + " found");
 | 
						|
            }
 | 
						|
            return this;
 | 
						|
        };
 | 
						|
    }
 | 
						|
 | 
						|
});
 | 
						|
 | 
						|
 |