Commit Graph

7003 Commits

Author SHA1 Message Date
Alexandre Alapetite
17f0c56d68 Corrige erreur async shortcuts 2013-11-08 10:49:14 +01:00
Marien Fressinaud
0382f4b152 Issue #235: ajout d'une condition pour Persona
Si la connexion n'est pas paramétrée, on ne charge pas Persona
2013-11-08 10:34:27 +01:00
Marien Fressinaud
fe0e980b0c Fix issue #235: annule le cache après connexion réussie 2013-11-08 10:27:10 +01:00
Alexandre Alapetite
5e2023392e Meilleur async pour Persona
Contribue à https://github.com/marienfressinaud/FreshRSS/issues/235
2013-11-08 10:13:21 +01:00
Marien Fressinaud
144ff6fb33 Merge branch 'dev' of github.com:marienfressinaud/FreshRSS into dev 2013-11-08 09:13:54 +01:00
Marien Fressinaud
38819b61f5 Fix issue #235: Persona fonctionne de nouveau 2013-11-08 09:12:47 +01:00
Alexandre Alapetite
b56793dcb0 Réponse minimale pour Ajax
Corrige https://github.com/marienfressinaud/FreshRSS/issues/241
Je trouve que c'est plus robuste de retourner au moins une petite
réponse que rien du tout, et puis cela permettra éventuellement de
retourner quelque chose d'utile comme succès/échec.
Pas testé, mais sûrement plus efficace aussi que l'exception actuelle,
même si celle-ci n'est pas forcément affichée.
2013-11-08 08:44:39 +01:00
Marien Fressinaud
5a2a5ee374 Issue #235: refactorisation code Persona
Le code pour la connexion via Persona a été bougée dans le fichier
main.js avec le reste du code JS
Ça ne marche toujours pas sous Firefox car il essaye d'initialiser
navigator.id.watch avant que le fichier login.persona.org/include.js
ne soit chargé
L'url est correctement écrite côté serveur pour permettre à Persona
d'indiquer au site que la connexion s'est bien passée
2013-11-07 23:50:21 +01:00
Alexandre Alapetite
fb6259f375 i18n anglais correction
Rapporté par aledeg
https://github.com/marienfressinaud/FreshRSS/pull/187#issuecomment-28008107
2013-11-07 22:30:49 +01:00
Alexandre Alapetite
fa13929db9 htmlspecialchars manquants
Contribue à https://github.com/marienfressinaud/FreshRSS/issues/195
2013-11-07 21:39:39 +01:00
Alexandre Alapetite
2ce0f88d28 type="application/rss+xml" pour le lien vers le RSS
En attendant d'avoir ce lien vers le format RSS aussi dans les entêtes
HTML, voilà déjà un meilleur lien dans le corps.
Contribue à https://github.com/marienfressinaud/FreshRSS/issues/236
2013-11-07 19:51:40 +01:00
Alexandre Alapetite
3a097f8e0c Renomme fichiers selon leur classe
Corrige https://github.com/marienfressinaud/FreshRSS/issues/191
2013-11-07 19:44:36 +01:00
Alexandre Alapetite
637b557d19 Renomme /icons/
Corrige https://github.com/marienfressinaud/FreshRSS/issues/234
2013-11-07 19:28:39 +01:00
Alexandre Alapetite
316778ef47 Un morceau de tolérance XML oublié 2013-11-07 19:27:52 +01:00
Alexandre Alapetite
6464666075 Plus de tolérance pour les flux
Utilise une méthode moins stricte qui tolère des erreurs XML dans les
flux.
Le choix de l'encodage en entrée a dû être légèrement changé car
SimplePie a une stratégie d'essayer plusieurs encodages jusqu'à en
trouver un qui marche.
En étant moins strict sur les erreurs, ça marche plus souvent, et du
coup les encodages n'étaient plus bon.
À essayer avec plein de flux.
Tous mes flux passent (~150).
Devrait permettre de fermer
https://github.com/marienfressinaud/FreshRSS/issues/233
Fonctionne aussi avec des flux à encodage invalide comme
http://travaux.ovh.net/rss.php qui se déclare en "text/xml" (du coup
ASCII) mais dans le flux avec un entête XML déclarant de l'UTF-8
2013-11-07 19:18:52 +01:00
Alexandre Alapetite
ec052432c0 Contournement bug PHP 5.3.3-
Bug #51192  FILTER_VALIDATE_URL will invalidate a hostname that includes
'-'
https://bugs.php.net/bug.php?id=51192
Corrige https://github.com/marienfressinaud/FreshRSS/issues/221

Au passage, désactive la validation des URLS provenant de la base de
données et qui ont déjà été validées.
2013-11-06 23:21:14 +01:00
Alexandre Alapetite
fe78c7fff3 img alt
Quelques [img alt="✇" /] pour être valide, avec un caractère Unicode
représentant un film (assez proche d'un flux), mais peut-être qu'on
pourrait en trouver un mieux
2013-11-05 20:49:44 +01:00
Alexandre Alapetite
cc84578870 Date de modification de application.ini
Prise en compte de configuration/application.ini pour la date de
dernière modification
2013-11-05 20:27:00 +01:00
Alexandre Alapetite
0efcb40d8d Entêtes XHTML
Compatibilité XHTML dans les entêtes et déclaration langue correcte
("fr" ou "en")
2013-11-05 20:25:48 +01:00
Alexandre Alapetite
fdb2b7588e Actualize : évite d'ajouter les articles déjà connus
Dans la plupart des cas, évite d'ajouter les articles déjà présents dans
la base de données, en faisant une pré-requête (une par flux, pas une
par article).
Par exemple, si un flux RSS fournit 20 articles, alors la pré-requête
charge une liste d'exclusion de 20+2 identifiants d'articles.
Ce patch réduit considérablement le nombre de requêtes et la charge de
la base de données durant les mises à jour, et en particulier le trafic
réseau entre PHP et la base de données.
Les mises à jour sont du coup aussi plus rapides.
2013-11-05 18:37:41 +01:00
Alexandre Alapetite
fb0c0868a4 Orthographe "Il n’y a pas plus d’articles"
Par ailleurs, je trouve que l'expression n'est pas terrible avec le "pas
plus", mais je n'ai pas mieux pour l'instant
2013-11-04 23:49:19 +01:00
Alexandre Alapetite
a88963b827 Ajouts à Apache .htaccess
Ajout en particulier du support des .map (jQuery Source Map)
2013-11-04 23:34:38 +01:00
Alexandre Alapetite
a58e4203f6 Variable full_lazyload
Pour savoir s'il faut attendre le chargement async de
jquery.lazyload.min.js ou pas
2013-11-04 23:34:22 +01:00
Alexandre Alapetite
5e11093120 Détails : blancs
Suppression des blancs en fin de ligne
2013-11-04 23:34:07 +01:00
Alexandre Alapetite
4a999fb628 Améliorations chargement JS async
En particulier pour global_view.js.
Suppression d'une requête avortée dans Chrome.
2013-11-04 23:33:52 +01:00
Alexandre Alapetite
6fbb62a2fc Chargement asynchrone plus robuste
Fonctionne aussi si DOMContentLoaded est déjà consommé avant le
chargement de main.js, et permet d'attendre les autres scripts tels
jQuery si ceux-ci ne sont pas encore chargés.
2013-11-04 23:33:35 +01:00
Alexandre Alapetite
792f78e3d5 Faute de frappe dans le calcul de la date de dernière modification 2013-11-04 23:33:20 +01:00
Alexandre Alapetite
665d22be76 Mise à jour de la librairie http-conditional
Ajout d'un entête Expires qui ne devrait pas être nécessaire d'après la
spécification mais qui semble aider certains navigateurs
2013-11-04 23:33:04 +01:00
Alexandre Alapetite
123f8dd164 Encore du nettoyage CSS
Suppression des sélecteurs inutiles pour de meilleures performances
2013-11-04 23:32:47 +01:00
Alexandre Alapetite
adc9a958af Préchargement et requêtes conditionnelles HTTP/1.1
Grosse amélioration des performances en utilisant le cache HTTP :
- Implémentation de HTTP/1.1, c.a.d. If-Modified-Since, If-None-Match,
If-Unmodified-Since, If-Match... avec la librairie
http://alexandre.alapetite.fr/doc-alex/php-http-304/
- Support de HEAD (HTTP /1.0).
- Préchargement de la page suivante (avec link next prefetch) dans le
cas de pagination.
- Et nouvelle possibilité de navigation pour les navigateurs qui
supportent "next".
- La date de dernier changement est pour l'instant primitive et
correspond au dernier changement de la session PHP ou
Configuration.array.php ou application.log ou touch.txt.
- touch.txt est modifié a chaque requête UPDATE ou INSERT ou DELETE.
2013-11-04 23:32:22 +01:00
Alexandre Alapetite
231516f523 Grosse optimisation JavaScript
* Fusion de endless_mode.js dans main.js car endless_mode.js est
toujours chargé et assez petit.
* Suppression des changements de style en JavaScript lors du chargement
(genre boucle de .hide(), ou d'ajout de classe ".stick") et
implémentation en PHP + CSS à la place.
* Chargement JavaScript asynchrone (defer + async) pour de meilleurs
performances.
* Utilisation préférable des événements globaux plutôt que des
événements pour chaque élément avec jQuery.on(events, selector) pour un
chargement plus rapide et moins de mémoire utilisée.
* Optimisation manuelle du JavaScript (sélecteurs CSS plus performants,
méthodes jQuery plus appropriées, etc.).
* Désactivation de init_img() qui était coûteux, lancé à un moment où
les images ne sont de toute manière pas encore chargées, et qui
n'apporte rien car il y a déjà un img {max-width:100%} en CSS.
* JavaScript en mode strict.
* Enfin, passage du code JavaScript dans JSLint et du coup nombreuses
corrections (syntaxe, variables, méthodes dépréciées...).
* Devrait permettre de fermer
https://github.com/marienfressinaud/FreshRSS/issues/121
* Au passage, quelques simplifications CSS pour de meilleures
performances.
2013-11-04 23:31:36 +01:00
Alexandre Alapetite
b23d66ec36 Merge pull request #231 from Alkarex/patch-5
Filtrage des événements JavaScript
2013-11-04 14:17:56 -08:00
Alexandre Alapetite
6f26057095 Merge pull request #227 from Alkarex/patch-4
Hack temporaire en attendant la recherche côté base-de-données
2013-11-04 14:17:36 -08:00
Alexandre Alapetite
8852134d0a Merge pull request #226 from Alkarex/MenuForFeeds
Ajout liens vers Gestion des flux RSS
2013-11-04 14:17:23 -08:00
Alexandre Alapetite
fb07117b78 Merge pull request #224 from Alkarex/manualLazyload
LazyLoad manuel pour les articles repliés
2013-11-04 14:17:11 -08:00
Alexandre Alapetite
a4881b2a93 Merge pull request #218 from Alkarex/patch-2
Page Speed : Taille du logo
2013-11-04 14:17:00 -08:00
Alexandre Alapetite
f2c7b98cb5 Merge pull request #217 from Alkarex/patch-1
Page Speed : Compression explicite
2013-11-04 14:16:42 -08:00
Alexandre Alapetite
41aab4dac4 Merge pull request #216 from Alkarex/fixRelative
URL absolue pour token
2013-11-04 14:16:33 -08:00
Alexandre Alapetite
7cf5e8ef33 Merge pull request #215 from Alkarex/notificationsMain
Fusionne notification.js dans main.js
2013-11-04 14:16:14 -08:00
Alexandre Alapetite
aff58561e9 Merge pull request #214 from Alkarex/updateUnreads
Mise à jour automatique des nombres d'articles non lus et favoris
2013-11-04 14:15:59 -08:00
Alexandre Alapetite
cabacaff97 Merge pull request #220 from Alkarex/customItems
Options pour personnaliser les icônes de lecture
2013-11-04 14:10:14 -08:00
Marien Fressinaud
be659762cf Merge pull request #225 from Alkarex/jQuery2
jQuery 2.x
2013-11-04 14:03:28 -08:00
Alexandre Alapetite
8f7d9e12a0 Filtrage des événements JavaScript
Corrige https://github.com/marienfressinaud/FreshRSS/issues/230
2013-11-03 11:40:17 +01:00
Alexandre Alapetite
2906d8dd2e Hack temporaire en attendant la recherche côté base-de-données
Limite la recherche aux 20000 plus récents articles, en attendant https://github.com/marienfressinaud/FreshRSS/issues/204
2013-10-30 21:23:45 +01:00
Alexandre Alapetite
f2c83cbfc2 Ajout liens vers Gestion des flux RSS
Ajout de liens directs vers la Gestion des flux RSS.
Compense aussi la perte de liens non-JavaScript due à
https://github.com/marienfressinaud/FreshRSS/pull/179
2013-10-30 20:58:22 +01:00
Alexandre Alapetite
1a209f1e9b Ajoute le cas de la vue lecture 2013-10-30 11:06:38 +01:00
Alexandre Alapetite
ed50db463d jQuery 2.x
Il semble qu'il y aurait pas mal de changements à faire pour supporter
IE8 (qui ne supporte pas les sélecteurs CSS3 par exemple).
Vue l'audience probable de FreshRSS, il me semble raisonnable de
commencer à IE9, et dans ce cas jQuery 2.x est mieux (entre autres plus
léger) que la branche 1.x qui supporte IE6+
http://jquery.com/browser-support/
2013-10-29 22:32:06 +01:00
Alexandre Alapetite
84c03dda5f LazyLoad manuel pour les articles repliés
LazyLoad.js utilise énormément de CPU et ralentit considérablement le
défilement de page, en particulier lorsque le nombre d'articles
augmente.
Dans le cas des articles repliés, il n'y a en fait pas besoin du
mécanisme complexe de LazyLoad.js basé sur les événements scroll, car il
suffit de charger les images lors du dépliage es articles, et cela
allège énormément l'expérience.
2013-10-29 21:53:02 +01:00
Alexandre Alapetite
a689037825 Options pour personnaliser les icônes de lecture
Nouvelles options pour choisir d'afficher ou pas les icônes pour marquer
comme lu/non-lu, favoris, lien vers l'article, ainsi que les champs
partage, tags...
Légères simplifications CSS et PHP au passage.

(Note pour plus tard : Il serait peut-être souhaitable de simplifier le
mécanisme des options en PHP, par exemple en utilisant un tableau de
propriétés. Actuellement, il y a un attribut par option accompagné d'un
accesseur privé, un accesseur public, et idem dans le système de
chargement/écriture du fichier de configuration, ce qui fait beaucoup de
code PHP par option)
2013-10-27 22:13:58 +01:00
Alexandre Alapetite
1489a18a98 Page Speed : Taille du logo
Permet de fermer https://github.com/marienfressinaud/FreshRSS/issues/168
Alternativement (et peut-être mieux), mettre la référence au logo "icon-32.png" en CSS ainsi que ses dimensions.
2013-10-26 22:17:13 +02:00