Commit Graph

82 Commits

Author SHA1 Message Date
Alexandre Alapetite
8ee8a573f1 Custom labels (#2027)
* First draft of custom tags

https://github.com/FreshRSS/FreshRSS/issues/928
https://github.com/FreshRSS/FreshRSS/issues/1367

* SMALLINT to BIGINT for id_entry

And uppercase SQL types

* Fix layout for unreads

* Start UI menu

* Change menu order

* Clean database helpers

https://github.com/FreshRSS/FreshRSS/pull/2027#discussion_r217971535

* Travis rules do not understand PostgreSQL constants

Grrr

* Tag controller + UI

* Add column attributes to tags

* Use only favicon for now, for label

* Fix styling for different themes

* Constant for maximum InnoDB index length in Unicode

https://github.com/FreshRSS/FreshRSS/pull/2027#discussion_r219052200
(I would have personnally prefered keeping the readability of a real
value instead of a constant, in this case of many SQL fields)

* Use FreshRSS_Factory::createCategoryDao

* Add view of all articles containing any tag

* Fix search in tags

* Mark as read tags

* Partial auto-update unread tags

* More auto update tag unreads

* Add tag deletion

* Do not purge tagged articles

* Minor comment

* Fix SQLite and UI bug

* Google Reader API support for user tags

Add SQL check that tag names must be distinct from category names

* whitespace

* Add missing API for EasyRSS

* Compatibility SQLite

Problematic parentheses

* Add SQL DISTINCT for cases with multiple tags

* Fix for PostgreSQL

PostgreSQL needs some additional type hint to avoid "could not determine
data type of parameter $1"

http://www.postgresql-archive.org/Could-not-determine-data-type-of-parameter-1-tp2171092p2171094.html
2018-09-29 20:47:17 +02:00
Alexandre Alapetite
c9d3d78340 CSP manually refreshing feeds
https://github.com/FreshRSS/FreshRSS/issues/1075
2016-02-27 17:51:13 +01:00
Marien Fressinaud
a1faa826bf Fix french i18n for last views 2014-12-11 21:44:25 +01:00
Marien Fressinaud
6655c1b429 Improve design of actualize notification
- Remove progress bar
- Show title of updated feed
2014-08-10 15:28:54 +02:00
Marien Fressinaud
ab9d656135 Block user to click many times on the refresh button
See https://github.com/marienfressinaud/FreshRSS/issues/513
2014-07-09 20:20:17 +02:00
Marien Fressinaud
4bdabbd39f Fix theme Origine2
It should be equivalent to Origine (modulo some improvements)

See https://github.com/marienfressinaud/FreshRSS/issues/320
2014-06-03 23:41:19 +02:00
Marien Fressinaud
b77d9c60ac Use complete instead of done during feed refresh
A request can fail: in this case, the progress bar is not updated by using
"done".
See #421
2014-02-13 21:15:50 +01:00
Marien Fressinaud
178af19fb0 Add possibility to open notification in JavaScript + new message
Notifications can be opened directly in JavaScript
Class .notification is now id #notification
New message when there is no feed to refresh
See 06abbd02c2 (comments)
2014-02-13 21:01:12 +01:00
Alexandre Alapetite
7d9a813ed3 Petite simplification mise à jour JavaScript
https://github.com/marienfressinaud/FreshRSS/pull/414
2014-02-06 18:48:49 +01:00
Alexis Degrugillier
ed61f9346f Changement du rafraichissement manuel des flux
Au lieu de lancer un rafraichissement sur l'ensemble des flux, le rafraichissement se fait sur 10 flux simultanément. Quand un flux est rafraichit, il lance le rafraichissement d'un autre flux jusqu'à épuisement des flux disponibles.
2014-02-05 20:12:23 -05:00
Alexandre Alapetite
eb50ab3b61 Mot de passe + nonce serveur
Début de https://github.com/marienfressinaud/FreshRSS/issues/104
2014-01-11 16:48:10 +01:00
Alexandre Alapetite
3d876091e1 Nouveau rafraîchissement automatique du nombre d'articles non lus + session Persona
Devrait aussi résoudre
https://github.com/marienfressinaud/FreshRSS/issues/358
À tester
2014-01-09 23:17:35 +01:00
Alexandre Alapetite
b48b7939d7 JavaScript : Bug actualize quand il n'y a aucun flux
+ un peu de JSLint.
2014-01-02 19:08:21 +01:00
Alexandre Alapetite
878e96202e Grosse refactorisation pour permettre le chargement automatique des classes
C'est parti de changements pour
https://github.com/marienfressinaud/FreshRSS/issues/255 et finalement
j'ai continué la refactorisation...

Ajout de préfixes FreshRSS_ et Minz_ sur le modèle de SimplePie_.
Toutes les classes sont maintenant en chargement automatique (devrait
améliorer les performances en évitant de charger plein de classes
inutilisées, et faciliter la maintenance).
Suppression de set_include_path().
Si souhaité, certaines classes de Minz pourraient être déplacées dans un
sous-répertoire, par exemple les exceptions.

Tests et relecture nécessaires.
2013-12-15 03:30:24 +01:00
Marien Fressinaud
9d32d7fe19 Déplace le fichier main.phtml
app/views/javascript/main.phtml est déplacé vers
app/views/helpers/javascript_vars.phtml

Il reste à déplacer le fichier actualize.phtml pour se débarrasser de
javascriptController
2013-11-08 23:31:38 +01:00
Marien Fressinaud
d4f636f26a Ne charge les raccourcis que sur la page principale 2013-11-08 23:15:29 +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
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
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
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
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
c447e65c5a Chargement à la volée de actualize.phtml
Au lieu de faire une requête systématiquement à chaque action de
l'utilisateur vers actualize.phtml (qui est lourd à générer et à lire),
cette requête se fait maintenant uniquement lors de son utilisation.
2013-10-13 17:53:00 +02:00
Alexandre Alapetite
4bbe82ff01 Remplace main.phtml non-cachable par main.js cachable
Amélioration des performances en permettant la mise en cache de 10Ko de
JavaScript et en évitant une requête HTTP à chaque action de
l'utilisateur.
2013-10-13 17:11:13 +02:00
Marien Fressinaud
a09dc8a7c0 Fix défilement articles dépliés en vue globale 2013-10-07 21:50:49 +02:00
Marien Fressinaud
978a48a1d6 Fix le scroll en changeant d'article 2013-10-07 21:48:22 +02:00
Marien Fressinaud
381df3aea4 Merge branch 'patch-1' of github.com:Alkarex/FreshRSS into Alkarex-patch-1 2013-10-07 21:32:49 +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
Alexandre Alapetite
1b8b72b81d Corrige images qui ne se chargent pas avec LazyLoad
Tel qu'utilisé, LazyLoad charge les nouvelles images lors d'un scroll. Hors dans certains cas (navigation clavier ou clic souris sur un article pour l'ouvrir), aucun scroll n'est généré et du coup les images ne sont pas chargées.
Ce patch ajoute un événement scroll artificiel dans ces cas là.

Exemple de cas sans scroll: bas de liste d'articles (ex: non lus), avec des articles plus petits que la taille verticale de la fenêtre, il n'y a pas de matière pour scroller plus haut.
2013-10-07 21:26:13 +02:00
Marien Fressinaud
109c276e1d Design + suppression 2 raccourcis
Les raccourcis page suivante et précédente n'avait plus lieu d'être avec
le mode endless

Petite correction du design pour les formulaire : les labels (float left)
dépassaient des form-group
2013-10-07 20:23:19 +02:00
Alexandre Alapetite
ca9e5f0135 Corrige doublons autochargement avec navigation clavier
1) Lors de la navigation clavier, si le chargement automatique en bas de page est activé, il ne faut pas manuellement charger les nouveaux articles, sinon il y a des doublons.

2) Il faut d'abord changer d'article avant d'en charger des nouveaux.

Vite fait, et vite testé, mais semble marcher et corriger les bugs de doublons que je constatais en navigation clavier (les articles non-lus que je venais de lire se rechargeaient une 2ème fois).
2013-10-06 21:42:46 +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
aa94bdaeff Issue #125 : "suivant" charge articles suivants
Le raccourci pour passer à l'article suivant charge automatiquement les
articles suivants si on vient d'ouvrir le dernier article de la page

Il reste à rajouter une option pour les charger si on se trouve en bas
de la page
2013-08-21 14:57:22 +02:00
Marien Fressinaud
9ae0652d9f Fix issue #131 : pied d'article
Ajout de la date et du lien vers site externe au pied des articles

Modification comportement raccourci "up" : si la fenêtre est sous
l'article actif, on remonte en haut de cet article. Si la fenêtre est au
début de l'article actif ou au-dessus, on remonte en haut de l'écran
2013-08-21 14:36:18 +02:00
Marien Fressinaud
24b3b0cdfc Amélioration marquage des articles au défilement
Un petit bug faisait qu'un article marqué comme lu pouvait repasser en
non lu même en mettant le paramètre "only_not_read" à true pour la
fonction mark_read.
2013-08-18 12:12:30 +02:00
Marien Fressinaud
29873ed1ef Correction comportement JS
L'ouverture d'un article sur le site d'origine via le raccourci
fonctionne de nouveau normalement

Lorsque la connexion est paramétrée et la lecture anonyme autorisée, une
personne non connectée pouvait avoir l'impression de marquer des
articles comme (non) lus (mais ça n'était pas effectif après un
rafraichissement de la page). Les articles ne peuvent plus être marqués
désormais
2013-08-18 11:56:41 +02:00
Marien Fressinaud
4a78d880b7 Fix issues #98 #99 : marquage lors du défilement
Modification de la zone du viewport qui faisait toute la taille de
l'écran. Désormais le viewport va du haut de l'écran jusqu'à sa moitié

Modification de la zone de marquage en la réduisant : début au 3/4 de
l'article et fin 50px plus loin (ou bas de l'article si dépasse)
2013-07-26 18:03:20 +02:00
Marien Fressinaud
371434c63a Fix issues #93 et #94
Les noms de catégorie trop longs ne cassent plus les boutons dans la
colonne de gauche (ajout d'un overflow hidden)

Les articles enroulés ne bugguent plus lorsqu'on charge plus d'articles.
L'action au clic pour dérouler un article était appliqué deux fois,
désormais on "unbind" d'abord l'action avant de la réappliquer (pas très
efficace mais c'est la façon la plus simple)
2013-07-02 18:04:02 +02:00
Marien Fressinaud
9758d1d736 Amélioration du marquage au défilement
Ne marque plus que lorsqu'on s'est déplacé de plus de 50px (évite de
checker à chaque fois)
De plus, lorsque les articles sont repliés, le marquage ne marche plus
(évite donc de marquer des articles non lus)
2013-06-23 20:25:21 +02:00
Marien Fressinaud
7396b3d897 Fix #77 : articles marqués comme lus au défilement
Possibilité de marquer les articles automatiquement comme lus lors
du défilement de la page. Le marquage survient aux 3/4 de l'article
visible.
Ajout d'une option pour activer / désactiver (défaut) la fonctionnalité
et disparition de l'option de marquage au chargement de la page.
Ajout de 2 boutons pour marquer comme lu et en favori en bas des
articles
2013-06-23 17:40:05 +02:00
Marien Fressinaud
dff85f9a30 Ajout d'une barre de navigation en version mobile
Fix issue #57 : pas d'effet de slide (effet trop bling-bling) mais
ajout d'une barre de navigation permettant d'aller à l'article
suivant / précédent ou de remonter en haut de la page
2013-06-23 15:05:39 +02:00
Marien Fressinaud
36316a6d7e Implémentation des vues lecture et globale (issue #67) 2013-06-16 20:28:57 +02:00
Marien Fressinaud
e3b3fa39d8 Première version de la vue lecture (issue #67) 2013-06-15 20:14:13 +02:00
Marien Fressinaud
4bda1d75ae Possibilité de marquer un article lu / favori même si une autre action de ce type est en attente (http) + ajustement css 2013-06-15 17:54:24 +02:00
Marien Fressinaud
0ff751b443 Lazyload facultatif (issue #75 ok) 2013-06-15 11:02:58 +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
19407e1ab6 Structure pour l'internationalisation terminée (voir bug #38) : il reste à faire la traduction en anglais notamment, rajouter une option pour changer la langue, détecter la langue préférée de l'utilisateur et voir si on peut migrer facilement l'installateur aussi 2013-04-27 13:40:48 +02:00
Marien Fressinaud
5768d0fc7f Amélioration esthétique pour l'actualisation des flux 2013-04-14 19:40:29 +02:00
Marien Fressinaud
9b9543109e Fix issue #39 : actualisation de tous les flux grâce à Ajax 2013-04-13 15:27:36 +02:00