Commit Graph

46 Commits

Author SHA1 Message Date
Alexandre Alapetite
5bd52cdcb6 Mise à jour de la vue globale
* Nombre de non lus mis à jour automatiquement
* Mise à jour structure HTML
* Mise à jour design
Fusion manuelle depuis la 0.6-beta
0c96d3489b
2013-11-12 23:21:13 +01:00
Marien Fressinaud
a5240e0855 Fade out pour les notifications
Fluidifie un peu leur fermeture (le slideUp faisait disparaître la
notification avant qu'elle ne soit totalement refermée)
2013-11-12 22:51:39 +01:00
Marien Fressinaud
5fc72aa7fe Lance une actualisation des flux après import OPML
Le script d'actualisation est lancé après avoir importé les flux
automatiquement
Voir issue #196
2013-11-09 23:16:13 +01:00
Marien Fressinaud
1de8218182 Déplacement de confirm_action_script
Ce script a été intégré à main.js pour être certain que JQuery est
chargé au moment de l'initialisation

Voir commentaires commit c06aede546
2013-11-09 01:22:51 +01:00
Alexandre Alapetite
bdb69080f8 Affichage dynamique des favoris non lus
Corrige https://github.com/marienfressinaud/FreshRSS/issues/222
Il reste toujours une situation curieuse lorsqu'on a fini de lire tous
les favoris non-lus, mais à voir une autre fois
2013-11-09 00:46:43 +01:00
Marien Fressinaud
d4f636f26a Ne charge les raccourcis que sur la page principale 2013-11-08 23:15:29 +01:00
Marien Fressinaud
1b9f16771c Fix issue #208: chargement dynamique des jours
Les indications de jours (aujourd'hui, hier, à partir d'avant-hier) sont
maintenant chargés dynamiquement
2013-11-08 20:32:35 +01:00
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
38819b61f5 Fix issue #235: Persona fonctionne de nouveau 2013-11-08 09:12:47 +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
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
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
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
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
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
5c68233985 Fusionne notification.js dans main.js
notification.js était tout petit et occasionnait une requête
supplémentaire et un événement JavaScript en plus.
Proposition de fusion dans le nouveau main.js statique.
2013-10-26 17:29:53 +02:00
Alexandre Alapetite
e7dd482979 Mise à jour automatique des nombres d'articles non lus et favoris
En JavaScript, sans requête au serveur, décrémente ou incrémente le
nombre d'articles non lus ou en favoris suite à une action de
l'utilisateur.
Utilise un nouvel attribut data-unread pour stocker le nombre d'articles
non-lus et du pur CSS pour afficher cette valeur.
Nouvel attribut data-priority (pour savoir s'il faut inclure le flux ou
pas dans les nombres d'articles non lus).
Légère simplification CSS au passage (d'autres optimisations des
performances CSS seraient souhaitables en évitant les règles contenant
trop de sélecteurs universels imbriqués genre ".categories .favorites
.btn" et en évitant les changements de style en JavaScript lors du
chargement - j'essayerai de faire une proposition dans un patch séparé).
Bug connu : une catégorie finissant par une espace suivi d'un nombre
entre parenthèses comme "Exemple (2)" cause actuellement un léger bug
d'affichage dans le <title> s'il y a 0 article non lu et que
l'utilisateur en marque un comme "non lu". Il faudra une modification
pour utiliser data-unread aussi pour le <title>
2013-10-26 17:21:11 +02:00
Alexandre Alapetite
410f763198 Ajout de main.js 2013-10-13 17:55:03 +02:00
Marien Fressinaud
d9a6588580 Correction scroll vue globale
En scrollant en lisant une catégorie, en en ouvrant une autre, le scroll
se trouvait au même endroit qu'à la fin de la première catégorie
2013-10-07 23:44:14 +02:00
Marien Fressinaud
8f7a630183 Correction global view
init_stream_delegates était appelé à chaque ouverture de panel.
Un seul appel suffit (surtout si l'on veut éviter les bugs)
2013-10-07 22:30:44 +02:00
Marien Fressinaud
f4e2501e47 Ajout d'un fond noir en mode vue globale
Cache le site pour se concentrer sur la liste d'articles
2013-10-07 22:07:17 +02:00
Marien Fressinaud
3e9c3d7c43 Corrige la vue globale
On initialisait plus correctement le panel de la vue globale depuis
l'ajout de la fonction JS init_stream_delegates(). C'est corrigé :)
2013-10-07 21:31:01 +02:00
Marien Fressinaud
4a2581f00d Fix issue #171: doublon lors de l'autochargement
On n'essaye plus de charger les articles suivant s'il n'y a plus rien
après. On teste donc que le lien a#load_more existe, sinon l'url de
chargement est vidée
2013-10-06 23:00:34 +02:00
Alexandre Alapetite
abf8d739da Update LazyLoad from 1.8.4 to 1.9.0
Appears to solve some problems of images not appearing (Firefox)
2013-10-04 22:06:49 +02:00
Alexandre Alapetite
f897d64f1c jQuery updated from version 1.5.2 to 1.10.2
(checked that it is ok with jQuery Migrate Plugin)
2013-09-04 01:47:40 +02:00
Alexandre Alapetite
d9db9bae0d Speed: jQuery optimisation of init_posts()
- jQuery updated from version 1.5.2 to 1.10.2 (checked that it is ok
with jQuery Migrate Plugin)
- Put hide_posts() first to avoid flashing content during load
- Big speed optimisation of init_img()
- Use a single on() delegated event (jQuery 1.7+) instead of all
per-article click events as described on http://api.jquery.com/on/
- Moved all the per-article click events to an outside function
init_stream_delegates() that is called only once even when new articles
are dynamically added. Much lighter approach, and does not require
unbinding events and rebinding them at each dynamic load.
- Side effect: corrected the bug of favourites and read/unread that were
not properly unbound during dynamic loading.
- Corrected a JavaScript error for auto_load_more when #load_more is not
visible and therefore does not have a position() defined.
2013-09-04 01:46:49 +02:00
Marien Fressinaud
48f8401c8b Fix issue #130 : amélioration vue globale
Désormais, en cliquant sur une catégorie ou un flux, une "popup" s'ouvre
nous proposant les flux à lire directement. Les mêmes actions que la vue
normale sont alors possibles

Cela a impliqué de gros changements javascript en aval puisque les
articles n'étaient plus repérés en fonction de la fenêtre, mais en
fonction du popup (#panel)

Le code va vraiment devoir être repris pour avoir une architecture
logique (voir issue #121)
2013-08-21 19:59:56 +02:00
Marien Fressinaud
456c95d2db Fix issue #125 : "Load more" automatique
En bas de page, si l'option a été cochée (ne l'est pas par défaut), on
va charger automatiquement les articles suivants
2013-08-21 15:22:30 +02:00
Marien Fressinaud
1863153b96 Fix issue #71 : remise en place du mode endless + correction bug à l'importation OPML 2013-06-15 15:55:44 +02:00
Marien Fressinaud
1d459af046 Fix issue #75 : chargement des images en lazyload, reste à le rendre optionnel 2013-06-14 20:45:00 +02:00
Marien Fressinaud
d2f0451eb3 Fix bug #30 : lorsque articles non lus dans une catégorie, les autres catégories affichent désormais tous leurs articles 2013-03-17 12:54:41 +01:00
Marien Fressinaud
b0a9ce7990 Correction bug notification 2013-03-11 21:54:37 +01:00
Marien Fressinaud
e405af1049 Màj design + suppression endless_mode + suppression read_mode (reviendra sous une autre forme ?) 2013-03-11 20:26:22 +01:00
Marien Fressinaud
50b34fb414 Ajout mode lecture (en js par contre) fix issue #6 2012-12-08 17:37:08 +01:00
Marien Fressinaud
250c75de2a Correction design (issue #6), début correction bug #16 (à voir où ça en est) 2012-12-03 21:19:28 +01:00
Marien Fressinaud
85cc23fb4f Fix bug get_content_by_parsing() 2012-11-07 19:04:00 +01:00
Marien Fressinaud
567d19a989 Fix issue #7 : ajout du mode endless 2012-11-07 00:24:50 +01:00
Marien Fressinaud
209fb252dc Fix issue #4 : ajout des retours utilisateur 2012-11-05 21:40:58 +01:00
Marien Fressinaud
a928ebf1d0 ajout des touches de raccourcis et de tout le javascript 2012-10-22 22:11:23 +02:00