Commit Graph

392 Commits

Author SHA1 Message Date
maTh
5177a17c9f sidebar and subscription management (#4474) 2022-07-31 13:20:48 +02:00
Alexandre Alapetite
509c8cae63 Dynamic OPML (#4407)
* Dynamic OPML draft
#fix https://github.com/FreshRSS/FreshRSS/issues/4191

* Export dynamic OPML
http://opml.org/spec2.opml#1629043127000

* Restart with simpler approach

* Minor revert

* Export dynamic OPML also for single feeds

* Special category type for importing dynamic OPML

* Parameter for excludeMutedFeeds

* Details

* More draft

* i18n

* Fix update

* Draft manual import working

* Working manual refresh

* Draft automatic update

* Working Web refresh + fixes

* Import/export dynamic OPML settings

* Annoying numerous lines in SQL logs

* Fix minor JavaScript error

* Fix auto adding new columns

* Add require

* Add missing 🗲

* Missing space

* Disable adding new feeds to dynamic categories

* Link from import

* i18n typo

* Improve theme icon function

* Fix pink-dark
2022-07-04 09:53:26 +02:00
Alexandre Alapetite
dcc77ee343 Initial support for PHP 8.2 (#4421)
* Initial support for PHP 8.2
Using dev image `freshrss/freshrss:latest` https://github.com/FreshRSS/FreshRSS/pull/4420

* Deprecated string interpolation
2022-06-19 20:10:13 +02:00
Alexandre Alapetite
ec11da4e84 Safer htmlspecialchars_utf8 (#4411)
* Safer htmlspecialchars_utf8
#fix https://github.com/FreshRSS/FreshRSS/issues/4410

* Undefined variable
2022-06-11 22:14:46 +02:00
Alexandre Alapetite
f85c510ed4 New search engine (#4378)
* New possibility to invoke user queries from a search expression
From the search field: `S:"My query"`.
Can be combined with other filters such as `S:"My query" date:P3d` as long as the user queries do not contain `OR`.
A use-case is to have an RSS filter with a stable address or an external API call with the ability to update the user query.

* Draft of parenthesis logic

* More draft

* Working parenthesis (a OR b) (c OR d)

* Working (A) OR (B)

* Support nested parentheses + unit tests + documentation

* search:MySearch and S:3
2022-06-02 08:41:08 +02:00
maTh
98f9409155 Improved: Feed config: title, website url, feed url (#4258)
* do not display "website" in dropdown menu, when it is empty

* feed name and URL required. input type = url

* Update app/views/helpers/feed/update.phtml

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update app/views/helpers/feed/update.phtml

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* fix spaces and tabs

* use classes indead of ID

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2022-05-30 10:51:47 +02:00
Alexandre Alapetite
f89819bd64 Custom logo HTML (#4369)
* Custom logo HTML
Add option for custom HTML logo/title in the main Web UI view.
Can potentially be different per user.
#fix https://github.com/FreshRSS/FreshRSS/pull/3830/files#r850472247

* logo_html in main config
With new `./data/config.custom.php` to provide custom values before install

* Docker documentation

* whitespace

* Auto relax CSP to allow images for HTML logo

* Documentation
2022-05-23 14:03:19 +02:00
Alexandre Alapetite
20eba951f7 Fix bug in user query 4360 (#4371)
Fix bug when taking advantage of https://github.com/FreshRSS/FreshRSS/pull/4360
At one place, the raw URL parameter was accessed instead of being reconstructed
2022-05-17 22:46:08 +02:00
Alexandre Alapetite
ffd1061850 User query automatic reconstruct of URL (#4360)
* User query automatic reconstruct of URL
(Invisible through the Web UI, only when working with configuration files manually)
Avoid the requirement of storing user queries with duplicated information (parsed parameters AND the resulting URL):

Before:
```
[
	'name' => 'Hello',
	'search' => 'Hello OR World',
	'state' => '3',
	'url' => './?search=Hello+OR+World&amp;state=3',
]
```

After:

```
[
	'name' => 'Hello',
	'search' => 'Hello OR World',
	'state' => '3',
]
```

* Fix test
2022-05-15 21:53:13 +02:00
maTh
807ea755e0 fix preview (#4291)
* fix

* Update extra.js

* reorga the scripts

* Update extra.js

* Several fixes
https://github.com/FreshRSS/FreshRSS/pull/4291#issuecomment-1125472321

* More fixes

* Cleaning

* fix pr 4291

* Reorganise some script functions

* Remove unused popup-txt
And associated function openPopupWithMessage

* Fix archiving categories
https://github.com/FreshRSS/FreshRSS/pull/4291#issuecomment-1126924602

* Fix stats
https://github.com/FreshRSS/FreshRSS/pull/4291#issuecomment-1126983134

* Fix direct subscription
E.g. http://localhost/i/?c=subscription&id=735

* Fix subscription add
https://github.com/FreshRSS/FreshRSS/pull/4291#issuecomment-1126991621

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2022-05-15 21:52:52 +02:00
Alexandre Alapetite
0cde4e898f Automatic simplification of layout for many feeds (#4357)
* Refactor OPML export categories
Simplify code to comply with types hints.
And renamed a property to plural.

* Automatic simplification of layout for many feeds
New advanced property to automatically simplify the layout when there are many (1k+)  feeds so that FreshRSS works out of the box with 20k+ feeds scenarios https://github.com/FreshRSS/FreshRSS/pull/4347

Merge https://github.com/FreshRSS/FreshRSS/pull/4356 first.
2022-05-15 13:47:31 +02:00
Alexandre Alapetite
9d1930d9ad Allow many (20k+) feeds (#4347)
* Allow many (20k+) feeds
Fix errors such as `SQL error listWhereRaw: ERROR: value "42926" is out of range for type smallint`
Start of UI performance improvements accordingly.
2022-05-09 15:59:21 +02:00
maTh
c9d0d20ef6 Fix: article footer + improve: labeling (#4306)
* icon = open dropdown

* label icon

* added: link to edit labels

* dropdown-menu label: padding and hover

* improve input row

* CSS

* Update main.js

* Update main.js

* Update main.js

* fix

* make addItem button selectable via tabbing

* Fixed theme: Ansum

* tags menu: use the new icon

* Fixed theme: Flat design

make the manage button visible

* fixed Theme: Mapco

* Fixed theme: Pafat
2022-04-18 22:05:12 +02:00
Alexandre Alapetite
0698c8a0b2 Do not render irrelevant HTML for Ajax calls (#4310)
#fix https://github.com/FreshRSS/FreshRSS/issues/4309
2022-04-11 22:55:29 +02:00
maTh
4191f9859e Improved: dropdown close area (#4293)
* fix Ansum theme: close X in white

* fix Mapco theme: close X in white

* move the dropdown-close outside of the list

* CSS

* bring flux elemt behind the grey background

* Update main.js
2022-04-11 22:54:19 +02:00
maTh
7d00ad8ed7 Improve: manage feed in view within a slider (#4226)
* it works

* small improvements

* Update slider.js

* fixed JS syntax

* slider.js included in main.js

* fix syntax

* delete including of slider.js

* Update extra.js
2022-03-22 23:09:50 +01:00
maTh
6650d1d29e Improved: log page (#4204)
* first draft

* wip

* Theme Ansum

* Update logs_pagination.phtml

* Theme Mapco

* Update adark.css

* Update BlueLagoon.css

* Update dark.css

* Update screwdriver.css

* Theme Swage

* Update app/views/helpers/logs_pagination.phtml

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

* Update app/views/helpers/logs_pagination.phtml

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

* Update template.css

* Update logs_pagination.phtml

* Update logs_pagination.phtml

* Update logs_pagination.phtml

* RTL CSS

* Update dark.rtl.css

* Update swage.css

* fix CLI findings

* Indentation fixed

* icons improved

* CSS: centered icons

* i18n

* pipline test fixes

* Update conf.php

* Update gen.php

* Update app/i18n/fr/conf.php

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2022-03-14 23:04:17 +01:00
Alexandre Alapetite
1fe66ad020 Implement Web scraping "HTML + XPath" (#4220)
* More PHP type hints for Fever
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/4201
Related to https://github.com/FreshRSS/FreshRSS/issues/4200

* Detail

* Draft

* Progress

* More draft

* Fix thumbnail PHP type hint
https://github.com/FreshRSS/FreshRSS/issues/4215

* More types

* A bit more

* Refactor FreshRSS_Entry::fromArray

* Progress

* Starts to work

* Categories

* Fonctional

* Layout update

* Fix relative URLs

* Cache system

* Forgotten files

* Remove a debug line

* Automatic form validation of XPath expressions

* data-leave-validation

* Fix reload action

* Simpler examples

* Fix column type for PostgreSQL

* Enforce HTTP encoding

* Readme

* Fix get full content

* target="_blank"

* gitignore

* htmlspecialchars_utf8

* Implement HTML <base>
And fix/revert `xml:base` support in SimplePie e49c578817

* SimplePie upstream PR merged
https://github.com/simplepie/simplepie/pull/723
2022-02-28 20:22:43 +01:00
maTh
926ce8ff5f Improved: icons in same color (#4212)
* delete white plus icon

* delete unused icons

* Themes

* Update flat.css

* minimized XML of SVG icons

* RTL CSS fix

* Update ansum.css

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2022-02-21 19:21:12 +01:00
Alexandre Alapetite
8808fb4545 Fix keep state after favourites tags (#4178)
* Fix keep state after favourites tags
#fix https://github.com/FreshRSS/FreshRSS/issues/4124 regression

* Optimisation
2022-01-29 14:19:16 +01:00
maTh
cf433d4d79 Fixed: wrong dropdown triangle of labels category (#4174)
* Update aside_feed.phtml

* Solution could be so simple
2022-01-27 00:43:46 +01:00
maTh
d2b6fe099a Improvement: menu icons (#4004)
* default icons

* icons Flat theme

* icons Swage theme

* icon gets bright when hover: Ansum theme

* icon gets bright when hover: Blue lagoon theme

* icon gets bright when hover: Origine/Origine Compact theme

* compressed SVG

* Better formated SVG/XML files

* Update bookmark-tag.svg
2022-01-12 23:04:59 +01:00
maTh
f8c5df28ab delete the no-mobile css class (#4128) 2022-01-07 00:35:58 +01:00
Alexandre Alapetite
77e9877316 Add PHPStan (#4021)
* Add PHPStan
#fix https://github.com/FreshRSS/FreshRSS/issues/4016
https://phpstan.org/

```sh
composer run-script phpstan
```

* More fixes

* Fix global variables

* Add .phtml

* Fix merge
https://github.com/FreshRSS/FreshRSS/pull/4090

* Fix more warnings

* Fix view errors and enable in CI

* ReturnTypeWillChange

* Dynamic view type

* Fix Minz static/self bug
2021-12-31 17:00:51 +01:00
maTh
5cac8cce74 Improve: Aside slider: close slider when click on the outside of slider (#4061)
* CSS + PHTML

* give some grey background

* fixed whitespace

* fixed RTL

* close area just for mobile view
2021-12-31 13:17:38 +01:00
maTh
f27b25d9a6 fix (#4065) 2021-12-31 13:16:35 +01:00
maTh
a54aa19dc7 Fix: double main tags (#4014)
* replace div with main

* include the slider into main

* format source

* add close icon for the extension slider

* replace div with main

* Update shortcut.phtml

* fixed the nits
2021-12-03 00:57:32 +01:00
maTh
392861b7c3 Switch category - remember status filter (#3986)
* url parameter

* fixed phpcs

* rename variables
2021-11-24 09:10:23 +01:00
maTh
1ae5a5af14 Improve mobile view: access to the config menu (#3881)
* wip

* improve the header

* Fix theme "Adark"

* fixed theme: Ansum

* Fixed theme: BlueLagoon

* fixed Ansum after PR comment of Frenzie

* Fixed theme: Dark

* fixed theme: Flat

* fixed theme: Mapco

* fixed theme: Origine compact

* fixed theme: Pafat

* fixed theme: Screwdriver

* fixed theme: Swage

* hide the close button in wide view

* fixed base/template RTL

* fixed SCSS of theme Swage

* stylelint fix

* fixed theme Swage

* make fix-all

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-11-12 08:57:36 +01:00
proletarius101
d3be01a1da Add pwa (#3890)
* Don't use Chrome or indeed Firefox on Android

Would close #1963. But I will not finish this PR because the idea that every single website on the internet should have to do this is absolutely ridiculous.

* add pwa manifest

Add a pwa manifest as defined in https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Installable_PWAs
- creates shortcuts without the browser frame
- has a splash screen
- has an independent view stack than the browser one

* update manifest as per pwabuilder.com

* add 32x32 and 48x48 icon config

* enhance manifest spec compliance

* change as per suggestions

* Update app/layout/layout.phtml

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* fix mobile icon padding

* remove screen auto rotation

* change theme color to white

* Move meta
(Should not be in the referrer condition)

* JSON HTTP cache

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-10-24 17:28:40 +02:00
maTh
da4f0dea1f add button to open nav panel (#3879) 2021-10-23 13:53:22 +02:00
maTh
14e5d89e34 Improve conf menu (#3880)
* i18n: "account" added

* reordered menu + add logout in the left nav menu

* Update app/i18n/fr/gen.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-10-14 13:28:19 +02:00
maTh
dfc89831d4 Headline structure improvement (Part 2) (#3851)
* Update about.phtml

* Update queries.phtml

* Update query.phtml

* Update configure.phtml

* Update profile.phtml

* Update simple.phtml

* update app\views\helpers\category\update.phtml
2021-09-18 12:52:17 +02:00
maTh
e5e9a417da Menu: move stats into subscription management (#3803)
* add stats menu into subscription management menu
* delete stats menu entry from dropdown menu
* Delete aside_stats.phtml
* Update aside_subscription.phtml
2021-09-12 11:50:00 +02:00
maTh
9712e4d888 Headline structure improvement (#3830)
* header: h1 deleted - full logo included

* template: config - display

* WIP

* shortcut configs. added fieldset. do not display the border by default

* system.phtml

* subscription: add feed or category

* wip

* wip

* Update bookmarklet.phtml

* Update archiving.phtml

* Update queries.phtml

* Update profile.phtml

* Update manage.phtml

* auth+update

* Update template.rtl.css

* fixed FreshRSS logo (Theme: Mapco)

* Update mapco.rtl.css

* Update _layout.scss

* fixed FreshRSS logo (theme: Dark)

* fix: FreshRSS logo (Theme: BlueLagoon)

* fix: FreshRSS logo (Theme: Ansum)

* fixed: FreshRSS logo (Theme: Alternative Dark)

* fix: FreshRSS logo (Theme: Pafat)

* fix: FreshRSS logo (Theme: Screwdriver)

* fix: FreshRSS logo (theme: Swage)

* Minor lint

* little fix: FreshRSS logo (Theme: Origine)

* Fix: FreshRSS logo (Theme: Origine Compact)

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-09-11 18:22:26 +02:00
maTh
595979d97f Add navigation to about page (#3804)
* add navigation to about page

* empty headline in aside navigation

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-09-02 09:18:20 +02:00
maTh
802409be90 main + nav (#3747) 2021-08-15 23:34:09 +02:00
maTh
ab0285b0aa Add HTML5 tags (#3651)
* use HTML5 tags #3643

added some HTML5 tags: header, main, nav

* <main> into <div>

as dicussed in the PR.
Todo: check side effects (f.e. threepaneview extension)

* fixed whitespace with tabs

* fixed more whitespaces with tabs

it was not my fault, but I fixed it

* added empty lines as wished

* Update app/views/index/global.phtml

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update app/views/index/global.phtml

* Update app/views/index/global.phtml

* Update app/views/index/global.phtml

* Update app/views/index/global.phtml

* Update app/views/index/global.phtml

* Update app/views/index/global.phtml

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2021-07-21 22:42:04 +02:00
Alexandre Alapetite
947e918f05 Travis: Enforce phpcs line length + whitespace (#3488)
* Update Travis line length

* Also check whitespace in CSS files

* Fix line length ext.php

* More syntax, string templates

* Fix exclude-pattern

* Test JS files as well
2021-02-28 12:26:24 +01:00
Alexis Degrugillier
449fee7a2c "Show all" option on labels (#3472)
It uses the favorite option to keep a similar experience through out the application and also to limit the number of options.

See #3263
2021-02-26 23:31:01 +01:00
Alexis Degrugillier
5daee165dc Change confusing naming for label (#3446)
Before, labels were referred to as tag which was confusing since
tags are content generated (retrieved from the feed) and label
are user generated.
Now, labels are properly named in their management page.

See #3444
2021-02-14 20:56:10 +01:00
Clemens Neubauer
b1285466f2 fix layout changes since new hook nav_menu (#3362)
* fix layout if no hooks `nav_menu` are active

* Update app/layout/nav_menu.phtml

oh thx

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-01-12 20:30:32 +01:00
Alexis Degrugillier
85cbfcedb5 Update user query feature (#3338)
* Change user query wording

There was some misunderstanding in the use of the user query feature,
probably because of the wording. I've change it to make it more obvious.

* Fix feedback when a query is bookmarked

Before, the displayed query name was not the one intended. Now, the name is the one of the current bookmark

* Document user queries

I've added a few words on how to use the user queries because it seems there was some misunderstanding. See #3219
2021-01-07 21:47:39 +01:00
Clemens Neubauer
ef458992c1 two new hooks (#3342)
* add two new hooks

I develop a new extension and i need 2 new hooks for it

* update EN documentation

* Correct typing errors

* Update app/views/helpers/javascript_vars.phtml

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-01-07 21:45:48 +01:00
Prashant Tholia
6f23999c7b Remember open categories (#3185)
* feature(normal) - Remember opened categories in the left menu

Session storage based implementation to remember opened categories in left menu

Issue Ref: #2248

* lib_phpQuery updates

* Updates covering feedback points and functionality fixes

* Feedback updates

* Revert "lib_phpQuery updates"

This reverts commit dcd23b9418.

* First review

Change variable name to "remember" instead of "open".
Start using localStorage instead of sessionStorage.
Simplify code.

* Simplify remember categories init function

Replace 'session' with 'local' in function names and comment

Set open categories CSS as same as when category is opened in 'active' unfold mode

* Remove URLSearchParams check in remember categories init function

* Delete open categories on login and logout

* JSHint check fix

* Second review

* Make new mode the default for new users
* Always open active category
* Reduce / simplify code

* i18n French

* Revert default value

Wait a bit more for this decision / change

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-11-02 12:03:16 +01:00
Alexandre Alapetite
191cda42e6 Misc. minor
Whitespace...
2020-10-11 10:59:43 +02:00
Frans de Jonge
a23a7f2dbb [lang] Tags management → tag management (#3125)
* [lang] Tags management → tag management

Cf. <https://github.com/FreshRSS/FreshRSS/pull/3121#issuecomment-662922474>.

* Move tag management underneath subscription management
2020-07-23 12:15:46 +02:00
Alexis Degrugillier
909fdaca31 Add tag management page (#3121)
The new page allows to create, delete and rename tags.

See #3058
2020-07-23 11:31:38 +02:00
Alexis Degrugillier
d4554fa087 Change add feed action (#3027)
* Docker Alpine 3.12 (#3025)

https://alpinelinux.org/posts/Alpine-3.12.0-released.html
With PHP 7.3.18 (from 7.3.17) (and Apache 2.4.43 unchanged).
No other significant change spotted

* Ensure feed attributes are used before load

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-06-05 10:09:31 +02:00
Alexandre Alapetite
39df5a8041 Revert FOUC fix (#2991)
Revert https://github.com/FreshRSS/FreshRSS/pull/2913
I have not seen any difference with/without this fix, and it might be
due to the fact that is is blocked by CSP.
At least in Chrome, it generates CSP warnings.
If it should be re-introduced, see warning suggestions:

> Refused to execute inline script because it violates the following
Content Security Policy directive: "default-src 'self'". Either the
'unsafe-inline' keyword, a hash
('sha256-gcoEgwf1rABkUXPaVY2M1RH34tUHWGDn9nAAn/kGYUE='), or a nonce
('nonce-...') is required to enable inline execution. Note also that
'script-src' was not explicitly set, so 'default-src' is used as a
fallback.
2020-05-21 20:55:28 +02:00