[enh] Prevent infinite pacman when API is not responding.

This commit is contained in:
opi 2014-10-01 16:11:28 +02:00
parent 299ee0179c
commit ceea61ccb4
4 changed files with 30 additions and 4 deletions

View file

@ -29,7 +29,7 @@
<div id="slideBack" style="display: none;"></div>
<div id="main" role="main">
<a class="slide" href="#/login">
<a class="slide" href="#/">
<span class="ajax-loader" data-y19n="loading">loading…</span>
</a>
</div>

View file

@ -48,6 +48,7 @@ app = Sammy('#main', function (sam) {
// Initialize storage
var store = new Sammy.Store({name: 'storage', type: storageType});
var loaded = false;
var isInstalledTry = 3;
/**
* Helpers
@ -396,15 +397,38 @@ app = Sammy('#main', function (sam) {
}
}, 500);
}
c.checkInstall(function(isInstalled) {
if (isInstalled) {
domain = window.location.hostname;
$('div.loader').remove();
c.view('login', { 'domain': domain });
} else if (typeof isInstalled === 'undefined') {
setTimeout(function() {
c.redirect('#/');
}, 5000);
if (isInstalledTry > 0) {
isInstalledTry--;
loaded = false; // Show pacman
setTimeout(function() {
c.redirect('#/');
}, 5000);
}
else {
// Reset count
isInstalledTry = 3;
// API is not responding after 3 try
$( document ).ajaxError(function( event, request, settings ) {
// Display error if status != 200.
// .ajaxError fire even with status code 200 because json is sometimes not valid.
if (request.status !== 200) c.flash('fail', y18n.t('api_not_responding', [request.status+' '+request.statusText] ));
// Unbind directly
$(document).off('ajaxError');
});
// Remove pacman
loaded = true;
$('div.loader').remove();
}
} else {
$('div.loader').remove();
c.redirect('#/postinstall');

View file

@ -56,6 +56,7 @@
"warning_first_user" : "You probably need to <a href='#/users/create' class='alert-link'>create a user</a> first.",
"unknown_action" : "Unknown action %s",
"unknown_argument" : "Unknown argument : %s",
"api_not_responding" : "API is not responding (Error : %s)",
"confirm_delete" : "Are you sure you want to delete %s ?",
"confirm_change_maindomain" : "Are you sure you want to change the main domain ?",

View file

@ -55,6 +55,7 @@
"warning_first_user" : "Vous devez probablement d'abord <a href='#/users/create' class='alert-link'>créer un utilisateur</a>.",
"unknown_action" : "Action %s inconnue",
"unknown_argument" : "Argument inconnu : %s",
"api_not_responding" : "l'API ne répond pas (Erreur : %s)",
"confirm_delete" : "Êtes-vous sur de vouloir supprimer %s ?",
"confirm_change_maindomain" : "Êtes-vous sur de vouloir changer le domaine principal ?",