Selaa lähdekoodia

Meilleur async pour Persona

Contribue à https://github.com/marienfressinaud/FreshRSS/issues/235
Alexandre Alapetite 12 vuotta sitten
vanhempi
commit
5e2023392e
2 muutettua tiedostoa jossa 24 lisäystä ja 9 poistoa
  1. 1 1
      app/views/javascript/main.phtml
  2. 23 8
      public/scripts/main.js

+ 1 - 1
app/views/javascript/main.phtml

@@ -26,4 +26,4 @@
 	echo ',url_freshrss="', _url ('index', 'index'), '",',
 		'url_login="', _url ('index', 'login'), '",',
 		'url_logout="', _url ('index', 'logout'), '",',
-		'current_user_mail=', $mail, ';';
+		'current_user_mail=', $mail, ";\n";

+ 23 - 8
public/scripts/main.js

@@ -279,6 +279,13 @@ function init_column_categories() {
 }
 
 function init_shortcuts() {
+	if (!(window.shortcut && window.shortcuts)) {
+		if (window.console) {
+			console.log('FreshRSS waiting for sortcut.js…');
+		}
+		window.setTimeout(init_persona, 50);
+		return;
+	}
 	// Touches de manipulation
 	shortcut.add(shortcuts.mark_read, function () {
 		// on marque comme lu ou non lu
@@ -506,6 +513,13 @@ function init_load_more() {
 
 //<persona>
 function init_persona() {
+	if (!(navigator.id)) {
+		if (window.console) {
+			console.log('FreshRSS waiting for Persona…');
+		}
+		window.setTimeout(init_persona, 100);
+		return;
+	}
 	$('a.signin').click(function() {
 		navigator.id.request();
 		return false;
@@ -562,12 +576,11 @@ function init_persona() {
 //</persona>
 
 function init_all() {
-	if (!(window.$ && window.shortcut && window.shortcuts &&
-			((!full_lazyload) || $.fn.lazyload) && navigator.id)) {
+	if (!(window.$ && window.url_freshrss && ((!full_lazyload) || $.fn.lazyload))) {
 		if (window.console) {
-			console.log('Waiting for JS…');
+			console.log('FreshRSS waiting for JS…');
 		}
-		window.setTimeout(init_all, 50);	//Wait for all js to be loaded
+		window.setTimeout(init_all, 50);
 		return;
 	}
 	$stream = $('#stream');
@@ -580,21 +593,23 @@ function init_all() {
 	init_notifications();
 	init_actualize();
 	init_load_more();
-	init_persona();
+	if (window.current_user_mail) {
+		init_persona();
+	}
 	if (window.console) {
-		console.log('Init done.');
+		console.log('FreshRSS init done.');
 	}
 }
 
 if (document.readyState && document.readyState !== 'loading') {
 	if (window.console) {
-		console.log('Immediate init…');
+		console.log('FreshRSS immediate init…');
 	}
 	init_all();
 } else if (document.addEventListener) {
 	document.addEventListener('DOMContentLoaded', function () {
 		if (window.console) {
-			console.log('Waiting for DOMContentLoaded…');
+			console.log('FreshRSS waiting for DOMContentLoaded…');
 		}
 		init_all();
 	}, false);