Commit Graph

130 Commits

Author SHA1 Message Date
Alexandre Alapetite
0d0b8cd39b Error when feed does not exist
https://github.com/marienfressinaud/FreshRSS/issues/579
2014-08-19 21:39:45 +02:00
Alexandre Alapetite
50075bfbdc Improvement for ASC order
https://github.com/marienfressinaud/FreshRSS/issues/495
2014-08-19 20:58:18 +02:00
Alexandre Alapetite
d477373ef2 SQLite: Bug creation new users
Not tested much yet. Some MySQL parts changed a bit too to double-check.
https://github.com/marienfressinaud/FreshRSS/issues/574
2014-08-09 19:58:39 +02:00
Alexandre Alapetite
2b25aa8f68 Option to hide (or not) feeds/categories with no unread article
https://github.com/marienfressinaud/FreshRSS/issues/430
https://github.com/marienfressinaud/FreshRSS/issues/575
2014-08-09 18:46:22 +02:00
Alexandre Alapetite
65d6796e92 First bug for old articles first
https://github.com/marienfressinaud/FreshRSS/issues/495
2014-08-07 11:29:19 +02:00
Alexandre Alapetite
274c8096e3 Experimental: Removed lazyload.js and use postpone attribute instead
https://github.com/marienfressinaud/FreshRSS/issues/316
The performance of lazyload.js was not good enough, and not really
needed anyway.
This change mostly affects mainly situations when the content of
articles is shown by default, not so much when they are collapsed
Using HTML5 lazyload and postpone attributes by default on all img,
audio, iframe, video.
http://www.w3.org/TR/resource-priorities/#attr-postpone
Postpone attribute is removed by JavaScript if the user does not want
the lazyload behaviour.
In the case when users do want the lazyload behaviour, in normal view
with articles hidden, we furthermore use the data-original approach to
be sure to support current browsers.
+Corrected some bugs with enclosures, and some images not appearing
before the first scroll.
+Now faster regex processing img and iframe at once (was not practical
with lazyload.js)
2014-08-02 19:57:15 +02:00
Marien Fressinaud
4a0e5ac037 Merge pull request #548 from aledeg/more-stats
Add article repartition in stats
2014-07-29 00:07:07 +02:00
plopoyop
ad9fbf3887 Correct bug in add/remove users 2014-07-26 13:29:55 +02:00
Alexis Degrugillier
aa317eb294 Add repartition statistic support in Sqlite 2014-07-24 22:57:31 -04:00
Alexis Degrugillier
d049c1bc80 Add article repartition in stats
Add article repartition per hour, per day of week, per month for all feeds but also for individual feeds.
2014-07-24 21:57:59 -04:00
Marien Fressinaud
d5d3f6dcfa Fix bugs in import/export
- EntryDAO.php: add a missing "FreshRSS_EntryDAO::"
- Fix htmlspecialchars in opml export
2014-07-23 23:56:16 +02:00
Alexandre Alapetite
937cb4b066 Idle feeds: link to configuration page
https://github.com/marienfressinaud/FreshRSS/issues/544
2014-07-22 13:41:31 +02:00
Alexis Degrugillier
68c0a827d2 Add statistics support for Sqlite
Add statistics support for Sqlite by tweeking one query and rewrite an other. The rewrite implied a complete refactor of the MySql query as well.
Now the code is more flexible and make less queries to the database.

See #527
2014-07-18 20:35:03 -04:00
Alexandre Alapetite
3403af3050 SQL: Bug with order ASC
https://github.com/marienfressinaud/FreshRSS/issues/538
2014-07-17 11:56:15 +02:00
Marien Fressinaud
f56dd400b7 Add base-theme in p/themes
This base theme is not visible by default (no name). You can use it
to create new theme.
Fix https://github.com/marienfressinaud/FreshRSS/issues/533 (comment)
2014-07-10 17:42:42 +02:00
Alexandre Alapetite
6c83264f83 SQL: MySQL speed optimisation
Would be nice to test with other versions of MySQL too.

Comparison before/after:

mysql> EXPLAIN SELECT e.id, e.guid, e.title, e.author,
UNCOMPRESS(content_bin) AS content, e.link, e.date, e.is_read,
e.is_favorite, e.id_feed, e.tags FROM `freshrss_alex_entry` e INNER JOIN
(SELECT e1.id FROM `freshrss_alex_entry` e1 INNER JOIN
`freshrss_alex_feed` f ON e1.id_feed=f.id WHERE f.priority > 0 AND
(e1.id >= 1381615200000000 OR e1.is_read=0 OR e1.is_favorite=1 OR
(f.keep_history <> 0)) ORDER BY e1.id DESC LIMIT 31) e2 ON e2.id=e.id
ORDER BY e.id DESC;

+----+-------------+------------+--------+-------------------------------------+----------+---------+---------------+------+----------------------------------------------+
| id | select_type | table      | type   | possible_keys
| key      | key_len | ref           | rows | Extra
|

+----+-------------+------------+--------+-------------------------------------+----------+---------+---------------+------+----------------------------------------------+
|  1 | PRIMARY     | <derived2> | ALL    | NULL
| NULL     | NULL    | NULL          |   31 | Using temporary; Using
filesort              |
|  1 | PRIMARY     | e          | eq_ref | PRIMARY
| PRIMARY  | 8       | e2.id         |    1 |
|
|  2 | DERIVED     | f          | range  | PRIMARY,priority,keep_history
| priority | 1       | NULL          |  137 | Using where; Using
temporary; Using filesort |
|  2 | DERIVED     | e1         | ref    |
PRIMARY,id_feed,is_favorite,is_read | id_feed  | 2       | freshrss.f.id
|  452 | Using where                                  |

+----+-------------+------------+--------+-------------------------------------+----------+---------+---------------+------+----------------------------------------------+
4 rows in set (3.50 sec)

mysql> EXPLAIN SELECT e.id, e.guid, e.title, e.author,
UNCOMPRESS(content_bin) AS content, e.link, e.date, e.is_read,
e.is_favorite, e.id_feed, e.tags FROM `freshrss_alex_entry` e INNER JOIN
(SELECT e1.id FROM `freshrss_alex_entry` e1 INNER JOIN
`freshrss_alex_feed` f ON e1.id_feed=f.id WHERE f.priority > 0 AND e1.id
<=9000000000000000 AND (e1.id >= 1381615200000000 OR e1.is_read=0 OR
e1.is_favorite=1 OR (f.keep_history <> 0)) ORDER BY e1.id DESC LIMIT 31)
e2 ON e2.id=e.id ORDER BY e.id DESC;

+----+-------------+------------+--------+-------------------------------------+---------+---------+---------------------+-------+---------------------------------+
| id | select_type | table      | type   | possible_keys
| key     | key_len | ref                 | rows  | Extra
|

+----+-------------+------------+--------+-------------------------------------+---------+---------+---------------------+-------+---------------------------------+
|  1 | PRIMARY     | <derived2> | ALL    | NULL
| NULL    | NULL    | NULL                |    31 | Using temporary;
Using filesort |
|  1 | PRIMARY     | e          | eq_ref | PRIMARY
| PRIMARY | 8       | e2.id               |     1 |
|
|  2 | DERIVED     | e1         | range  |
PRIMARY,id_feed,is_favorite,is_read | PRIMARY | 8       | NULL
| 70084 | Using where                     |
|  2 | DERIVED     | f          | eq_ref | PRIMARY,priority,keep_history
| PRIMARY | 2       | freshrss.e1.id_feed |     1 | Using where
|

+----+-------------+------------+--------+-------------------------------------+---------+---------+---------------------+-------+---------------------------------+
4 rows in set (0.01 sec)
2014-07-10 15:49:51 +02:00
Marien Fressinaud
c1728fe0d7 Coding style header.phtml + possibility to change logo
See https://github.com/marienfressinaud/FreshRSS/issues/532
2014-07-09 19:39:21 +02:00
Alexandre Alapetite
0f842c1aea SQL: removed superfluous transactions to avoid some dead locks 2014-07-08 14:14:02 +02:00
Alexis Degrugillier
21d8c03ac9 Add a configuration parameter
Add a parameter to choose wether or not the user want to display a confirmation dialog when clicking on "mark all as read" actions.
2014-07-07 19:34:47 -04:00
Alexandre Alapetite
e358c5e2e1 SQL: SQLite syntax uniformisation
805c91da98 (diff-101042bec0ff3ac9d691b2e77fca3313R7)
2014-07-07 21:12:13 +02:00
Alexandre Alapetite
439a0e2991 SQL: improved performance for adding new articles 2014-07-07 18:25:48 +02:00
Alexandre Alapetite
3bbd0e446f Prepare statistics for SQLite
Temporarily disable 30-day statistics for SQLite
https://github.com/marienfressinaud/FreshRSS/issues/100
https://github.com/marienfressinaud/FreshRSS/issues/90
2014-07-06 11:54:00 +02:00
Alexandre Alapetite
3d3b33ea2e Bug global TTL
https://github.com/marienfressinaud/FreshRSS/issues/250
2014-07-06 10:12:37 +02:00
Alexandre Alapetite
bc8eb560af Add TTL to control feed freshness
https://github.com/marienfressinaud/FreshRSS/issues/250
2014-07-06 00:09:31 +02:00
Alexandre Alapetite
b48dc25963 Merge pull request #516 from aledeg/stats
Refactor statistics
2014-07-05 18:43:35 +02:00
Alexandre Alapetite
b8e6a3b5b2 Bug feed->hash for 301 redirections, favicons 2014-07-05 11:17:23 +02:00
Alexandre Alapetite
805c91da98 Add support for SQLite
https://github.com/marienfressinaud/FreshRSS/issues/100
Warning: MySQL has been changed too, so bugs may have been introduced
2014-07-05 01:52:41 +02:00
Alexandre Alapetite
b34f59e85a Preparation #3 for SQLite
https://github.com/marienfressinaud/FreshRSS/issues/100
2014-07-03 22:48:29 +02:00
Alexandre Alapetite
2501bb337e Preparation #2 for SQLite
https://github.com/marienfressinaud/FreshRSS/issues/100
2014-07-03 22:11:25 +02:00
Alexandre Alapetite
d6f4141086 Preparation for SQLite
https://github.com/marienfressinaud/FreshRSS/issues/100
2014-07-03 21:26:30 +02:00
Alexandre Alapetite
af9e5a408a Small correction favicon
Ensure to try the website favicon before trying the feed URL favicon
(which might be on e.g. FeedBurner with an anonymous favicon).
2014-07-03 01:28:56 +02:00
Alexandre Alapetite
3275018238 Cleaning some hash functions 2014-07-03 00:43:02 +02:00
Alexandre Alapetite
63c9c47a76 SimplePie HTTP 301 Moved Permanently
Add support for HTTP 301 Moved Permanently in SimplePie
FreshRSS will automatically update the address of a feed, only in this
case.
2014-07-01 23:30:01 +02:00
Alexis Degrugillier
60fe99344e Refactor and formatting 2014-06-15 12:13:33 -04:00
Alexis Degrugillier
181fcd9889 Refactor statistics
I made a new controller to handle statistics. The old statistics have been moved in that controller and a new action has been added to display idle feeds. I also added a menu in the left panel to navigate between the statistics pages.
See #90
2014-06-15 12:05:21 -04:00
Marien Fressinaud
09602acc5f Add two wrappers (_t() and _i())
- _t() is a wrapper for Minz_Translate::t()
- Improve coding style of Translate.php
- _i() is a wrapper for FreshRSS::icon()
- queries.phtml shows how they work
- It is a lot easier to read files with these functions :)
2014-06-15 17:49:23 +02:00
Marien Fressinaud
a7e8332809 Improve system of queries
- Coding style
- More checks server side
- Default query name is "Query n°X"
- List of queries is moved into nav_menu, in a dropdown
- Better system to remove fields in JS (to a.remove elements, give an
  attibute data-remove="id_to_remove")
- Fix a bug in lib/Mine/Request.php (htmlspecialchars_utf8 can be applied on
  arrays now)
- Few theme improvements
- Add an element .no-mobile to apply to elements which should not appear on
  mobiles

See https://github.com/marienfressinaud/FreshRSS/pull/498
2014-06-14 09:04:31 +02:00
Marien Fressinaud
2b8dc66634 Merge branch 'user-queries' of https://github.com/aledeg/FreshRSS into aledeg-user-queries
Conflicts:
	app/layout/nav_menu.phtml
2014-06-13 20:20:43 +02:00
Marien Fressinaud
b8f53b0525 Add an option to choose content width
- 4 options: thin, medium, large and no limit
- Thin is by default
2014-06-05 22:26:18 +02:00
Marien Fressinaud
e70933dfeb Update links to change view
- Dropdown menu is transformed into stick buttons
- 3 new icons (view-normal, view-global, view-reader)
- Link to access RSS is now next to these buttons (should we kept it
  here?)
2014-06-05 21:25:21 +02:00
Alexandre Alapetite
d1b31b1a61 Search order of filters
For now, process them in the same order as specified by the user
Specifying for instance `date:` first will be much faster than
specifying a free text word first.
https://github.com/marienfressinaud/FreshRSS/issues/511
2014-06-01 15:23:30 +02:00
Alexandre Alapetite
ecac55d3d3 New search system, including date: and pubdate: and combination
Now also accepts combination of #tag and intitle: and inurl: and author:
and the new date: and pubdate:
https://github.com/marienfressinaud/FreshRSS/issues/511
Each search prefix stop at the first space (we should add a possibility
to have quotes for multiple words)
So if you want two words in title, write "intitle:word1 intitle:word2"

Examples of dates:
date:2014
date:2014-02/2014-04 or date:201402/201404
date:P1W for the last week
2014-06-01 14:40:38 +02:00
Alexandre Alapetite
c3178a4f89 Add video control for podcasts
https://github.com/marienfressinaud/FreshRSS/issues/504
2014-05-14 09:07:30 +02:00
Alexandre Alapetite
7f1c305c86 Add audio control for podcasts
https://github.com/marienfressinaud/FreshRSS/issues/504
2014-05-13 22:30:24 +02:00
Alexis Degrugillier
8521c876d4 Add user queries
It's an intermediary step to remove the favorite button.
I add a button to store the current query as a favorite query. It redirects automatically to the configuration page where it is possible to name and remove user queries.
To make the queries more straigtforward, I removed the default behavior when searching for a string. This way, when we search for a string, the filter is not defaulted to all articles.
2014-05-04 17:23:53 -04:00
Alexis Degrugillier
f820f428ef Add a shortcut to access the search field 2014-04-27 11:00:25 -04:00
Alexandre Alapetite
f25783ef5d Minor syntax changes for: New toggle buttons to filter articles
See
http://programmers.stackexchange.com/questions/23852/bitwise-or-vs-adding-flags
https://github.com/marienfressinaud/FreshRSS/pull/486
https://github.com/marienfressinaud/FreshRSS/issues/376
2014-04-15 12:16:31 +02:00
Alexis Degrugillier
3a736e902c Move state constants from Configuration to Entry 2014-04-13 08:16:43 -04:00
Alexis Degrugillier
1e032608a6 Change rss icon fallback value 2014-04-13 07:39:33 -04:00
Alexis Degrugillier
cd87e2000a Revert deletion of the favorite actions 2014-04-13 07:35:17 -04:00