Commit Graph

2160 Commits

Author SHA1 Message Date
Jeremy Benoist 9a80dcf11e
Use a custom cookiejar to avoid error when the cookie is badly saved
It happens sometimes on wallabag.it, the json inside the cookie is badly saved and the json isn't valid. It generates an exception and avoid people to use the api and import contents.
To fix that, we use a dedicated `FileCookieJar`, which extends the default one from Guzzle to fix these issues.

Also updated deps
2019-07-24 10:42:20 +02:00
Jérémy Benoist 3a08e81969
Merge pull request #4058 from wallabag/feature/copy-client-info
Copy client info to clipboard
2019-07-17 17:04:14 +02:00
Doma Gergő 2d87d5cea4
Translated using Weblate (Hungarian)
Currently translated at 64.4% (311 of 483 strings)
2019-07-13 18:01:35 +02:00
Nicolas Lœuillet 879f8eaa18
Fixed typo in wallabag name 2019-07-10 09:59:07 +02:00
Jeremy Benoist df45126a14
Update translations
Remove log
2019-07-09 15:54:59 +02:00
Jeremy Benoist 66fa0c26ab
Copy client info to clipboard
From the listing page and the create summary page, you can now copy client info to the clipboard using dedicated buttons.
2019-07-09 13:46:02 +02:00
Jérémy Benoist 4f46330087
Merge pull request #4053 from wallabag/feature/manual-input-reading-speed
Add ability to manually define the reading speed
2019-07-09 11:53:20 +02:00
Jeremy Benoist 41022cb289
Add ability to manually define the reading speed
Instead of using a select, let the user decide its own speed.
2019-07-08 20:18:59 +02:00
Jeremy Benoist 34be2d5de4
Add ability to import/export tagging rules
- Add missing translations
- Add some tests
- Add `/api/taggingrule/export` API endpoint
- Add baggy theme
- Add error message when importing tagging rules failed
- Also fix all translations (I think we are good now)
2019-07-08 09:38:32 +02:00
Cenk YILDIZLI fe7756c8ec
Translated using Weblate (Turkish)
Currently translated at 100.0% (483 of 483 strings)
2019-06-28 21:01:20 +02:00
Allan Nordhøy e955a85f33
Translated using Weblate (English)
Currently translated at 99.8% (482 of 483 strings)
2019-06-24 22:01:20 +02:00
Jeremy Benoist ac5844a68e
Typo 2019-06-21 12:54:52 +02:00
Jeremy Benoist a2f4efe6d2
Use Twig 2.0
`mnapoli/piwik-twig-extension` locked Twig to the 1.10 version. The new version is compatible with Twig 2.0
2019-06-21 12:46:53 +02:00
Weblate f54401fa98
Added translation using Weblate (Persian) 2019-06-19 20:00:09 +02:00
Weblate 2343526cbf
Added translation using Weblate (Italian) 2019-06-19 20:00:06 +02:00
Weblate 14fc12b185
Added translation using Weblate (Romanian) 2019-06-19 20:00:04 +02:00
Mehrad Mahmoudian ed6601bb0f
Translated using Weblate (Persian)
Currently translated at 100.0% (6 of 6 strings)
2019-06-18 21:03:59 +02:00
Arda Kilicdagi f583cf930a
Translated using Weblate (Turkish)
Currently translated at 100.0% (483 of 483 strings)
2019-06-18 21:03:59 +02:00
Jérémy Benoist 1009b286c9
Merge pull request #3995 from wallabag/feature/config-display-login
Display login in config / user
2019-06-12 21:36:00 +02:00
Jérémy Benoist eeae34375d
Typo 2019-06-12 17:44:28 +02:00
Jeremy Benoist 871216861a
Update translations 2019-06-06 15:14:41 +02:00
Thomas Citharel 9c7997db8e
Show untagged entries count on tag list (#3993)
Show untagged entries count on tag list
2019-06-06 14:09:23 +02:00
Jeremy Benoist 35c4c80148
Display login in config / user
Just so the user can see its login
2019-06-06 13:51:25 +02:00
Jeremy Benoist 35c7819cb6
Remove link when there are no untagged articles 2019-06-06 13:34:20 +02:00
Jérémy Benoist c19845a7ae
Merge pull request #3959 from wallabag/mig-tag-collation
mysql: change collation of tag label
2019-06-06 12:03:37 +02:00
Kevin Decherf 2b04b300f8
Merge pull request #3994 from wallabag/feature/revoke-feed-token
Add ability to revoke feed token
2019-06-05 18:32:21 +02:00
Jeremy Benoist c4bf12aade
Add ability to revoke feed token 2019-06-05 17:55:13 +02:00
Jeremy Benoist 0f2d24feb4
Fix typo & CS 2019-06-05 17:09:05 +02:00
Kevin Decherf ad51743e8b
Show untagged entries count on tag list
Closes #3235

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-06-05 17:03:51 +02:00
Jeremy Benoist d010bdd44b
Add quickstart into the menu
Just in case people want to see that page again.
2019-06-05 15:51:22 +02:00
Jérémy Benoist 16e1c07553
Merge pull request #3271 from wallabag/store-resolved-url
Add `given_url` in Entry table to check if a redirected url has already added
2019-06-05 11:38:00 +02:00
Jeremy Benoist d8809f70ea
Typos 2019-06-05 10:54:43 +02:00
Jeremy Benoist 70df4c3359
Use two indexes instead of one for hashed urls
When using `OR` in a where clause, a composite index can't be used. We should use a `UNION` to take advantages of it.
Instead, create 2 indexes on each hashed urls and make 2 queries to find an url. It'll be faster than the previous solution.
2019-06-05 10:53:15 +02:00
Jeremy Benoist 7abda3ba52
Drop SimplePie
It was only used to make an absolute url when downloading images.
The deps is still there (in the `composer.lock`) because Graby use it (not for absolute but for encoding).
2019-05-29 17:05:12 +02:00
Jeremy Benoist f3bfb875e9
Use hash given url to avoid duplicate
Using hashed url we can ensure an index on them to ensure it's fast.
2019-05-29 15:56:20 +02:00
Nicolas Lœuillet b7fa51ae7d
Added given_url in entry table
- Added index on entry table for given_url field
- Fix tests:

    The previous `bit.ly` url redirected to doc.wallabag but that url doesn't exist in the fixtures.
    I used our own internal "redirector" to create a redirect to an url which exist in the fixtures.

Also, updating current migration to use the new `WallabagMigration`.
2019-05-29 13:50:59 +02:00
Jeremy Benoist 52e8d93248
Fix some Scrutinizer issues 2019-05-29 12:50:44 +02:00
Jérémy Benoist 2cbee36a01
Merge pull request #3944 from shtrom/always-hash-exists-url
Always hash exists url
2019-05-28 14:18:33 +02:00
Jeremy Benoist 6e68417f03
Fix tests after rebase 2019-05-28 12:02:17 +02:00
Jeremy Benoist b6c1e1bacc
Fix some tests 2019-05-28 11:44:20 +02:00
Jeremy Benoist a91a3150fb
CS 2019-05-28 11:42:27 +02:00
Jeremy Benoist 448d99f84e
CS 2019-05-28 11:42:27 +02:00
adev 1048c9c4a8
Configure timeout 2019-05-28 11:42:27 +02:00
adev 5f08426201
Fix because of some breaking changes of Graby 2.0 2019-05-28 11:42:27 +02:00
adev bf9ace0643
Use httplug 2019-05-28 11:40:41 +02:00
Kevin Decherf 5c0701ba41
Merge pull request #3965 from nicofrand/previewPic
Preview picture: use the 1st pic retrieved if no og:image set
2019-05-26 17:47:44 +02:00
Jeremy Benoist 629a3797bc
Remove useless methods
Also fix a phpdoc block
2019-05-24 15:46:28 +02:00
Jeremy Benoist 0132ccd2a2
Change the way to define algorithm for hashing url 2019-05-24 15:17:46 +02:00
Olivier Mehani 4a5516376b
Add Wallabag\CoreBundle\Helper\UrlHasher
Signed-off-by: Olivier Mehani <shtrom@ssji.net>
2019-05-24 15:17:46 +02:00
Olivier Mehani d5744bf0df
Delegate findByUrlAndUserId to findByHashedUrlAndUserId
Signed-off-by: Olivier Mehani <shtrom@ssji.net>
2019-05-24 15:17:46 +02:00
Olivier Mehani 31e276fc16
EntryRestController::getEntriesExistsAction: always find by hashed url
Simplify the logic from #3158 by hashing all the urls from the request,
and only doing a search by hash. This allows to get performance benefits
from the new indexed hash column even when using older clients that do
not hash the URL in the request.

Fixes: #3158, #3919

Signed-off-by: Olivier Mehani <shtrom@ssji.net>
2019-05-24 15:17:45 +02:00
Jeremy Benoist 9ca670c801
Fix Instapaper import date 2019-05-24 14:37:54 +02:00
nicofrand 423efadefc Set first picture as preview picture 2019-05-21 20:38:22 +02:00
Jérémy Benoist a2b5d67560
Merge pull request #3960 from wallabag/api-entries-2817
api/entries: add parameter detail to exclude or include content in response
2019-05-21 11:18:19 +02:00
Kevin Decherf feb239ea10 mysql: change collation of tag table
utf8mb4_unicode_ci considers that 'caché' is equal to 'cache' which
can lead to attaching incorrect tags to entries. This issue is due to
some unicode normalization done by MySQL.

utf8mb4_bin makes no unicode normalization, letting wallabag to consider
'cache' and 'caché' as two different tags.

We change the collation of the whole table as Doctrine does not support
setting a collation on a column for a specific platform (it tries to
apply utf8mb4_bin even for pgsql and sqlite).

Fixes #3302

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-05-19 23:37:49 +02:00
Kevin Decherf 2c290747cb api/entries: add parameter detail to exclude or include content in response
detail=metadata will nullify the content field of entries in order to
make smaller responses.

detail=full keeps the former behavior, it sends the content of entries.
It's the default, for backward compatibility.

Fixes #2817

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-05-18 18:11:08 +02:00
Jeremy Benoist 9f0957b831
Merge remote-tracking branch 'origin/master' into 2.4 2019-05-15 14:38:07 +02:00
Doma Gergő 9da1efd343
Translated using Weblate (Hungarian)
Currently translated at 63.8% (308 of 483 strings)
2019-05-15 02:49:40 +02:00
Jérémy Benoist a73cb8a689
Merge pull request #3922 from burkemw3/patch-5
Remove preview picture from share view page for #1875
2019-05-13 06:40:16 +02:00
Matt Burke 19822ecb31 Remove preview picture from share view page for #1875
Essentially, same as commit 038fccd for single entry views. From that commit:
> Showing the preview picture usually leads to showing a duplicate
> image, and frequently leads to showing duplicate images directly
> adjacent to each other.
2019-05-12 12:32:22 -04:00
Kevin Decherf 2dbb5b2307 Enable no-referrer on img tags, enable strict-origin-when-cross-origin by default
Fixes #3889

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-05-10 23:07:26 +02:00
Jeremy Benoist 637f0df976
Cascade delete on oauth2 table when deleting a user 2019-05-10 20:36:45 +02:00
Jeremy Benoist 844fd9fafc
Fallback to default solution if Imagick fails 2019-05-10 16:52:01 +02:00
Jeremy Benoist 9306c2a368
Use Imagick to keep GIF animation
If Imagick is available, GIF will be saved using it to keep animation.
Otherwise the previous method will be used and the animation won't be kept.
2019-05-10 15:33:36 +02:00
ssantos 45bf1d6772
Translated using Weblate (German)
Currently translated at 100.0% (6 of 6 strings)
2019-05-09 00:49:21 +02:00
ssantos bc895d71a2
Translated using Weblate (German)
Currently translated at 100.0% (483 of 483 strings)
2019-05-09 00:49:20 +02:00
ssantos e5d069f0b9
Translated using Weblate (Portuguese)
Currently translated at 100.0% (6 of 6 strings)
2019-05-06 16:49:35 +02:00
Doma Gergő a15a5e0a87
Translated using Weblate (Hungarian)
Currently translated at 60.5% (292 of 483 strings)
2019-05-02 13:49:27 +02:00
Kevin Decherf 4b5b228650 material: add metadata to list view
Add reading time and creation date to rows of list view.
Refactor styles using a sass mixin.

Fixes #3838

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-05-01 15:47:48 +02:00
Jeremy Benoist f277bc042c
Fix tests & cs & migration 2019-04-26 12:53:21 +02:00
Thomas Citharel 531c8d0a5c
Changed RSS to Atom feed and improve paging 2019-04-25 13:46:31 +02:00
Jeremy Benoist 35359bd3c6
Adding more tests to cover different scenario 2019-04-24 15:28:15 +02:00
Jeremy Benoist f45496336f
Add ability to match many domains for credentials
Instead of fetching one domain, we use the same method as in site config (to retrieve the matching file) and handle api.example.org, example.org, .org (yes the last one isn’t useful).
If one of these match, we got it and use it.
2019-04-23 22:39:31 +02:00
Louies a68fd9b61d
Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (6 of 6 strings)
2019-04-07 10:05:02 +02:00
Louies 076f1e1fcd
Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (7 of 7 strings)
2019-04-07 10:05:01 +02:00
Weblate 0eb987b583
Added translation using Weblate (Chinese (Traditional)) 2019-04-06 09:55:09 +02:00
Weblate c144e05457
Added translation using Weblate (Chinese (Traditional)) 2019-04-06 09:55:06 +02:00
Weblate 016784f535
Added translation using Weblate (Chinese (Traditional)) 2019-04-06 09:54:58 +02:00
Jérémy Benoist 76bc05ebc0
Fix ApiDoc about md5/sha1 2019-04-02 22:59:50 +02:00
Jeremy Benoist 5cc0646e66
Fix index on MySQL 2019-04-01 15:45:17 +02:00
Jeremy Benoist c579ce2306
Some cleanup
Also, do not run the hashed_url migration into a Doctrine migration
2019-04-01 14:34:20 +02:00
Jeremy Benoist 8a64566298
Use a better index for hashed_url
It'll most often be used in addition to the `user_id`.
Also, automatically generate the hash when saving the url.
Switch from `md5` to `sha1`.
2019-04-01 13:51:57 +02:00
Jeremy Benoist 9c2b2aae70
Keep url in exists endpoint
- Add migration
- Use md5 instead of sha512 (we don't need security here, just a hash)
- Update tests
2019-04-01 13:24:40 +02:00
Thomas Citharel bfe02a0b48
Hash the urls to check if they exist
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-04-01 13:24:40 +02:00
Jeremy Benoist 3620dae1e6
Merge remote-tracking branch 'origin/master' into 2.4 2019-04-01 13:16:15 +02:00
Doma Gergő db900a83ae
Translated using Weblate (Hungarian)
Currently translated at 58.2% (281 of 483 strings)
2019-03-31 18:09:28 +02:00
Yuichi MITA 1616f53ea2
Translated using Weblate (Japanese)
Currently translated at 61.5% (297 of 483 strings)
2019-03-25 16:39:11 +01:00
Doma Gergő 61106f6d80
Translated using Weblate (Hungarian)
Currently translated at 100.0% (6 of 6 strings)
2019-03-24 01:39:31 +01:00
Doma Gergő ab9a02754e
Translated using Weblate (Hungarian)
Currently translated at 57.6% (278 of 483 strings)
2019-03-24 01:39:30 +01:00
Étienne Gilli d00f5f22ca
Translated using Weblate (French)
Currently translated at 100.0% (483 of 483 strings)
2019-03-20 16:04:30 +01:00
Doma Gergő 7822a62e36
Translated using Weblate (Hungarian)
Currently translated at 100.0% (7 of 7 strings)
2019-03-20 00:46:42 +01:00
Jérémy Benoist bfd69c74e5
Merge pull request #3909 from wallabag/fix/html-not-defined
Fix PHP warning
2019-03-18 09:26:33 +01:00
Jeremy Benoist 8ca858ee73
Fix PHP warning
Looks like sometimes (usually from import) the `html` key isn’t available.
2019-03-18 06:23:41 +01:00
Kevin Decherf 41d476d7e7 epub: fix exception when articles have the same title
This commit fixes an exception occuring when exporting as epub several
articles with the same title. The chapter filename is now derived from
title and url.

Fixes #3642

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-03-17 23:36:10 +01:00
Doma Gergő 77dc50a74f
Added translation using Weblate (Hungarian) 2019-03-16 19:58:49 +01:00
Weblate a69c7fc5f1
Added translation using Weblate (Hungarian) 2019-03-16 19:58:41 +01:00
Weblate 2be507564f
Added translation using Weblate (Hungarian) 2019-03-16 19:58:38 +01:00
Arda Kilicdagi 4b1c0226f1
Translated using Weblate (Turkish)
Currently translated at 100.0% (483 of 483 strings)
2019-03-15 18:04:14 +01:00
Arda Kilicdagi fc380182d6
Translated using Weblate (Turkish)
Currently translated at 87.8% (424 of 483 strings)
2019-03-14 13:04:37 +01:00
Arda Kilicdagi 44984d2aa7
Translated using Weblate (Turkish)
Currently translated at 81.6% (394 of 483 strings)
2019-03-09 16:04:33 +01:00
Arda Kilicdagi a27b2ecc57
Translated using Weblate (Turkish)
Currently translated at 100.0% (6 of 6 strings)
2019-03-08 13:04:10 +01:00
Arda Kilicdagi acc81fa387
Translated using Weblate (Turkish)
Currently translated at 56.9% (275 of 483 strings)
2019-03-08 13:04:09 +01:00
Kevin Decherf f1f1efb5de material: wrap card actions, remove class hiding of creation date
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-03-03 19:22:32 +01:00
Jeremy Benoist 8c0ba95307
Adding more tests 2019-02-27 15:01:03 +01:00
Jeremy Benoist ea925bb112
CS 2019-02-27 14:33:26 +01:00
Thomas Citharel 3784688a88
Replace continue; with break; to avoid PHP 7.3 warnings
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-02-27 14:29:14 +01:00
Jérémy Benoist d5154ee2ae
Merge pull request #3886 from wallabag/issue-3602
epub export: fix missing cover image, only for exports of one article
2019-02-25 14:03:41 +01:00
Allan Nordhøy fdd3a2bb87
Translated using Weblate (Polish)
Currently translated at 98.8% (477 of 483 strings)
2019-02-25 02:19:16 +01:00
Allan Nordhøy 9b044c7702
Translated using Weblate (Occitan)
Currently translated at 98.8% (477 of 483 strings)
2019-02-25 02:19:15 +01:00
naofum 443a237f25
Translated using Weblate (Japanese)
Currently translated at 58.0% (280 of 483 strings)
2019-02-25 02:19:13 +01:00
Allan Nordhøy 5f9eb33f8f
Translated using Weblate (English)
Currently translated at 99.8% (482 of 483 strings)
2019-02-25 02:18:46 +01:00
naofum 3c8bd4cc33
Translated using Weblate (Japanese)
Currently translated at 100.0% (7 of 7 strings)
2019-02-24 01:54:48 +01:00
naofum 55dd64dd47
Translated using Weblate (Japanese)
Currently translated at 100.0% (6 of 6 strings)
2019-02-24 01:47:51 +01:00
naofum 53162bf4d8
Added translation using Weblate (Japanese) 2019-02-24 01:43:46 +01:00
Weblate bd0961d25f
Added translation using Weblate (Japanese) 2019-02-24 01:43:45 +01:00
Weblate 4f83b83e4a
Added translation using Weblate (Japanese) 2019-02-24 01:43:44 +01:00
Allan Nordhøy 4e4bd772d0
Translated using Weblate (Persian)
Currently translated at 53.6% (259 of 483 strings)
2019-02-23 15:25:01 +01:00
Kevin Decherf 508302042f EntryRestController: add support of expect parameter to delete action
The expect parameter enables an application to request the whole entry
or only the id when requesting its deletion.

`expects` defaults to `entry` to prevent any API breakage.

Fixes #3711

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-02-20 15:57:50 +01:00
Kevin Decherf 9a7a0e1e6b epub export: fix missing cover image, only for exports of one article
Fixes #3602

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-02-18 00:16:05 +01:00
Jeremy Benoist 44560c7767
CS 2019-02-13 14:06:57 +01:00
Jeremy Benoist 0182cdaec4
CS 2019-02-11 11:57:52 +01:00
Jeremy Benoist baa5ee2d42
Force default_protocol to generate an url input 2019-02-08 15:03:52 +01:00
Jeremy Benoist 18460b2d79
Merge remote-tracking branch 'origin/master' into 2.4 2019-02-07 18:01:15 +01:00
Jonathan Crooke 7e04bd4ca4
Fix broken 2 factor auth logo image 2019-01-31 22:14:53 +01:00
Weblate b97123c39f
Merge branch 'origin/master' into Weblate. 2019-01-28 11:34:42 +01:00
Jeremy Benoist 8d082488e9
Improve checks & add tests 2019-01-28 06:03:16 +01:00
Tristan Hill a2e60dd393
status and favourite are actually strings in the import so use == 2019-01-27 18:39:26 +01:00
Allan Nordhøy 78e24f8954
Translated using Weblate (Norwegian Bokmål)
Currently translated at 85.7% (6 of 7 strings)
2019-01-27 16:06:14 +01:00
Allan Nordhøy 1e4dd73b07
Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (6 of 6 strings)
2019-01-24 12:06:33 +01:00
Allan Nordhøy 606ab37b6a
Translated using Weblate (English)
Currently translated at 100.0% (6 of 6 strings)
2019-01-24 12:06:32 +01:00
Jeremy Benoist 4654a83b64
Hash backup codes in the database using `password_hash` 2019-01-23 14:43:39 +01:00
Jeremy Benoist c416ed485f
CS 2019-01-23 13:28:24 +01:00
Jeremy Benoist a0c5eb003f
Change the way to enable 2FA
And add a step to validate a generated code from the OTP app
2019-01-23 13:28:24 +01:00
Jeremy Benoist 4c0e747940
Remove secret from admin 2019-01-23 13:28:24 +01:00
Jeremy Benoist e073090b8d
Update translation 2019-01-23 13:28:24 +01:00
Jeremy Benoist dfd0a7bc5f
Add backup codes 2019-01-23 13:28:03 +01:00
Jeremy Benoist 6e4fc956ab
Better translations
Replace “Google Authenticator” by “Google Authenticator, Authy or FreeOTP” in all text.

Translate how to use the code / qr code.
2019-01-23 13:28:02 +01:00
Jeremy Benoist 43ccf4b178
Cleanup 2019-01-23 13:28:02 +01:00
Jeremy Benoist 2dfbe9e5fa
Fix tests 2019-01-23 13:28:02 +01:00
Jeremy Benoist a6b242a1fd
Enable OTP 2FA
- Update SchebTwoFactorBundle to version 3
- Enable Google 2fa on the bundle
- Disallow ability to use both email and google as 2fa
- Update Ocramius Proxy Manager to handle typed function & attributes (from PHP 7)
- use `$this->addFlash` shortcut instead of `$this->get('session')->getFlashBag()->add`
- update admin to be able to create/reset the 2fa
2019-01-23 13:28:02 +01:00
Jeremy Benoist acd4412080
Create a dedicated tab to reset data 2019-01-23 13:28:01 +01:00
Allan Nordhøy 7005e55f36
Translated using Weblate (Norwegian Bokmål)
Currently translated at 85.7% (6 of 7 strings)
2019-01-23 09:34:53 +01:00
Allan Nordhøy bfa267fc12
Translated using Weblate (Norwegian Bokmål)
Currently translated at 14.7% (65 of 442 strings)
2019-01-23 09:34:52 +01:00
Weblate 356f0f46a4 Added translation using Weblate (Norwegian Bokmål) 2019-01-23 09:34:29 +01:00
Weblate 61b7af80f0 Added translation using Weblate (Norwegian Bokmål) 2019-01-23 09:34:19 +01:00
Weblate 683511c32a Added translation using Weblate (Norwegian Bokmål) 2019-01-23 09:33:37 +01:00
Jeremy Benoist 8010425444
Fix third argument to Route 2019-01-22 20:42:25 +01:00
Jeremy Benoist 019e1acc49
Factorize sendResponse between Api controllers
And run newer cs fixer
2019-01-22 20:42:25 +01:00
Craig Roberts 9133bd02d1
[wallabag/wallabag#2611] Fix PHPCS lint errors 2019-01-22 20:42:25 +01:00
Craig Roberts b32057980e
Fixes [wallabag/wallabag#2611] Add a basic Search REST endpoint
- Adds a new `search` key to `src/Wallabag/ApiBundle/Resources/config/routing_rest.yml`
- Reuses the `getBuilderForSearchByUser` method from the EntryRepository
- Supports, `term`, `page`, and `perPage` query parameters
- Some very basic tests
2019-01-22 20:42:24 +01:00
Jeremy Benoist fe5850d6e2
Update icon to `casino` 2019-01-22 17:05:21 +01:00
Jeremy Benoist 091bafeb4c
Handle no random result found 2019-01-19 22:30:50 +01:00
Jeremy Benoist 2491c50b6b
Fix status from Instapaper
That status was used as `http_status` in ContentProxy->stockEntry
2019-01-19 22:24:52 +01:00
Jeremy Benoist 50f35f0db2
Move icon into the top menu bar
Change the way to select a random entry:
- select all ids from the given user (with filters)
- choose randomly one in php
- find that entry
2019-01-19 22:24:10 +01:00
Jeremy Benoist 9a57653aec
Redirect to the current view instead of homepage 2019-01-19 21:10:16 +01:00
Jeremy Benoist 90a0d086a8
Better icon 2019-01-19 21:10:16 +01:00
Jeremy Benoist 062fad434a
Better random function 2019-01-19 21:09:33 +01:00
Jeremy Benoist 0447a75b06
Use only one method to randomize
Instead of one per type, one for all is ok.
2019-01-19 21:09:33 +01:00
Jeremy Benoist f85d220c19
Fix tests 2019-01-19 21:09:33 +01:00
Nicolas Lœuillet 09ef25c3c3
Added random feature 2019-01-19 21:09:32 +01:00
Jeremy Benoist 1e0d8ad7b7
Enable PHPStan
- Fix error for level 0 & 1 (level 7 has 699 errors...)
- Add `updated_at` to site_credential (so the `timestamps()` method applies correctly)
2019-01-18 15:25:50 +01:00
Jeremy Benoist 293730656d Add dedicated email for site config issue
Instead of sending an email to the devs, it now creates an issue on GitHub using a zap from zapier.
2019-01-18 11:15:23 +01:00
Jeremy Benoist 3bd65991ad
Add a new endpoint to retrieve information from the wallabag instance
Useful for api client which required some information.
We might add more inside them in the future.

The endpoint /api/version should be avoided now as it contains not so much information rather the version.
2019-01-15 10:17:11 +01:00
Jeremy Benoist 3afc87426d
CS 2019-01-15 09:49:22 +01:00
Jeremy Benoist 5419a8368e
Merge remote-tracking branch 'origin/master' into 2.4 2019-01-15 09:41:18 +01:00
Jeremy Benoist 78e3fafa3f
Avoid error when a bad `order` parameter is given
Only allowed parameter are asc & desc
2019-01-14 17:01:21 +01:00
Jérémy Benoist 3625833b2c
Merge pull request #3826 from wallabag/epub-toc
Rework of EPUB/PDF exports
2019-01-11 13:34:38 +01:00
Jérémy Benoist 03663530ed
Merge pull request #3831 from wallabag/fix/api-bad-client-id
Cast client id to avoid PG error
2019-01-10 17:03:03 +01:00
Eloi Coutant bb8ad42b27
Update entries.html.twig
Should fix https://github.com/wallabag/wallabag/issues/3832
2019-01-10 04:25:51 +01:00
Eloi Coutant d4466a37fe
Update entries.html.twig
Should fix https://github.com/wallabag/wallabag/issues/3832
2019-01-10 04:23:08 +01:00
Jeremy Benoist 3a2d4cf9fd
Cast client id to avoid PG error
If someone send a malformated client_id when trying to authenticate using the API we got a 500 if wallabag use postgres because the request send a string instead of an integer.
2019-01-09 23:31:14 +01:00
Kevin Decherf 5e1f27767b EntriesExport: avoid else on $authors
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-09 16:26:19 +01:00
Kevin Decherf dac93644e8 EntriesExport: sanitize filename and fix tests
Filename will now only use a-zA-Z0-9-' and space.

Fixes remaining filename issue on #3811

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-08 15:13:35 +01:00
Kevin Decherf ad5ef8bca0 EntriesExport/pdf: move notice to the end, add metadata cover
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-07 23:36:41 +01:00
Kevin Decherf af83d05ce2 Add translations
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-07 23:06:02 +01:00
Kevin Decherf 4944703edc EntriesExport/epub: add metadata to each entry's cover
Add metadata to the cover of each entry:

- Publishers
- Estimated reading time
- Date of creation ("Added on")
- Address (URL)

Related to #2821

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-07 21:44:14 +01:00
Kevin Decherf f810834623 EntriesExport: change authors and title when not single entry export
Change '{method} authors' (which gives 'Tag_entries authors' when
exporting a tag) to 'Various authors'.

When exporting a tag (tag_entries), change the title from 'Tag_entries
articles' to 'Tag {tag} articles'.

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-07 21:44:14 +01:00
Kevin Decherf 30cf72bf55 EntriesExport/epub: revert c779373f, move exportinfo to the end of the book
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-07 21:43:16 +01:00
Kevin Decherf edd1825b58 EntriesExport/epub: use sha1 sums for filenames, fix and rename title chapters
This commit renames entry chapters file using a sha1 sum of their title
for simplicity. Also we fix the 'Title' chapter duplicate issue by using
the hash of the related entry and the suffix '_title'.

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-07 21:41:12 +01:00
Kevin Decherf 063d5e7bda EntriesExport/epub: remove TOC page
This change only remove the rendered page of the TOC at the end of the
book, the TOC remains available to readers.

Fixes #3603

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-07 21:11:05 +01:00
Kevin Decherf 5de17117a1
Merge pull request #3827 from wallabag/epub-quote
EntriesExport/epub: replace epub identifier with unique urn
2019-01-07 11:59:38 +01:00
Jérémy Benoist d2aec7096d
Merge pull request #3820 from lizyn/bugfix/incorrect-calculation-of-CJK-characters-in-reading-time-estimation
Fix incorrect reading time calculation for entries with CJK characters
2019-01-07 10:17:29 +01:00
Kevin Decherf bf22266a62 EntriesExport/epub: replace epub identifier with unique urn
We replace the title used as the unique identifier of the epub file with
a urn following the format:

  urn:wallabag:{sha1("wallabagUrl:listOfEntryIdsSeparatedByComma")}

This format is repeatable: it always gives the same uid for the same
list of entries.

Fixes #3811

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-06 23:29:32 +01:00
lizyn 7f8630b91c Counting two characters together as a word in CJK 2019-01-06 01:21:13 +08:00
Jeremy Benoist 35983eb9bb
Improve reading time tests 2019-01-04 11:23:33 +01:00
Jérémy Benoist 8f5c4b083c
Merge pull request #3816 from wallabag/validate-import-entry
Validate imported entry to avoid error on import
2019-01-04 11:06:53 +01:00
Jeremy Benoist 9f8f188d92
Validate imported entry to avoid error on import
We got some imports with a missing `url` field generating some errors while trying to retrieve an existing entry with that url.
Introducing the `validateEntry` allow us to dismiss a message when it doesn't have an url (or other missing stuff in the future)
2019-01-03 09:42:06 +01:00
Kevin Decherf 2a0e0a47d8 TagRestController: rewrite delete actions to only retrieve tags related to the user
Fixes #3815

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-12-30 01:34:49 +01:00
Kevin Decherf 6708bf238d TagRepository: refactor query builder for queries by userId
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-12-30 01:34:44 +01:00
Kevin Decherf bafb9744c8 fixtures: refactor EntryData, TagData, add a new tag
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-12-29 19:22:05 +01:00
lizyn 5becf260fa fix incorrect reading time calculation for entries with CJK characters 2018-12-25 15:31:44 +08:00
Mateusz Rumiński e014fa0395
Update messages.pl.yml
Add missing translation
2018-12-02 18:14:21 +01:00
Jeremy Benoist 877787e5fe
Fix utf8mb4 on vendor tables
When creating the schema for test these tables use default length for
string: 255. Which fail when using utf8mb4.

> Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

Also move the `setKeepStaticConnections` in before and after class to
avoid:

> SAVEPOINT DOCTRINE2_SAVEPOINT_2 does not exist

See https://github.com/dmaicher/doctrine-test-bundle#troubleshooting
2018-11-28 22:04:55 +01:00
Jeremy Benoist b13b2ef052
CS 2018-11-28 22:04:55 +01:00
Jeremy Benoist 1b6b77f029
Remove custom Postgres class
Because PG > 10 is now supported by DBAL >= 2.6.0
2018-11-28 22:04:54 +01:00
Jeremy Benoist db9b6d8d0d
Update fixtures 2018-11-28 22:04:54 +01:00
Jeremy Benoist 6fc95673df
Cleanup 2018-11-28 22:04:54 +01:00
Kevin Decherf 72efc8ceeb
Merge pull request #3782 from wallabag/issue-3779
material: fix missing thumbnail on list view
2018-11-26 18:45:12 +01:00
Jérémy Benoist 6f2287da69
Merge pull request #3784 from giuppi/master
Fix Android app login issue
2018-11-26 13:57:16 +01:00
Jérémy Benoist 8896f0f988
Merge pull request #3765 from burkemw3/patch-2
Remove preview picture from single entry view page for #1875
2018-11-26 13:51:00 +01:00
giuppi b34b489cfd
Fix Android app login issue
class and alt tags must be in the correct order for the android app to recognize the wallabag server
2018-11-25 16:07:08 +01:00
Kevin Decherf e5de9917fd material: fix missing thumbnail on list view
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-11-25 15:00:08 +01:00
Jeremy Benoist 0f159f8fc1
Fix RulerZBundle
People should really follow semver and provide UPGRADE file when they
provide a library ...
2018-11-25 10:08:45 +01:00
Jeremy Benoist b878be4cc9
Merge remote-tracking branch 'origin/master' into 2.4
# Conflicts:
#	web/wallassets/baggy.js
#	web/wallassets/manifest.json
#	web/wallassets/material.css
#	web/wallassets/material.js
2018-11-25 09:58:18 +01:00
Matt Burke 038fccd244 Remove preview picture from single entry view page for #1875
Showing the preview picture usually leads to showing a duplicate
image, and frequently leads to showing duplicate images directly
adjacent to each other.
2018-11-24 19:29:58 -05:00
Simounet 2daae77094 Card no preview replaced by wallabag logo 2018-11-21 18:51:44 +01:00
Eloi Coutant 060f3ce34c
Update messages.en.yml 2018-11-16 14:16:38 +01:00
Eloi Coutant ccc3b0a531
Update messages.fr.yml 2018-11-16 01:45:16 +01:00
Eloi Coutant 0ddfb2956c
Update messages.fr.yml
Modification pour éclaircir le sens de l'option
2018-11-16 01:37:53 +01:00
Matt Burke a22b8043b4 Add rel=noopener to target=_blank links
From https://developers.google.com/web/tools/lighthouse/audits/noopener:
- new pages will run in separate processes, avoiding any performance
  intermingling impacts
- new pages won't have access to current page's window object via JavaScript
2018-11-07 20:34:54 -05:00
Kevin Decherf 3a69628007
Merge pull request #3764 from shtrom/fix-matches-notmatches-language
Fix documentation wording for matches/notmatches tagging rules
2018-11-01 12:04:55 +01:00
Olivier Mehani 3f0dd0f0bc
fixup! fixup! Fix documentation wording for matches/notmatches tagging rules 2018-11-01 19:40:17 +11:00
Olivier Mehani da7b8e256f
fixup! Fix documentation wording for matches/notmatches tagging rules 2018-11-01 19:26:06 +11:00
Olivier Mehani 0452e869ec
Fix documentation wording for matches/notmatches tagging rules
Signed-off-by: Olivier Mehani <shtrom@ssji.net>
2018-10-31 19:56:48 +11:00
Kevin Decherf 1b220426e2 phpcs
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-10-24 22:33:32 +02:00
Kevin Decherf 6059967951 updateOriginUrl: remove 'query string' case from ignore list
Two urls with a different query string may refer to two different pages
so keep them both.

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-10-24 22:27:27 +02:00
Kevin Decherf 44e63667d9 updateOriginUrl: add comment blocks for the parse_url diff check
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-10-24 22:13:03 +02:00
Kevin Decherf 5ba5e22a09 updateOriginUrl: rewrite some if, resolving feedbacks from PR
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-10-24 21:54:09 +02:00
Kevin Decherf b49c87acf1 ignoreOriginUrl: add initial support of ignore lists
Add the ability to specify hosts and patterns lists to ignore the given
entry url and replace it with the fetched content url without touching
to origin_url.

This initial support should be reworked in the following months to move
the hardcoded ignore lists in the database.

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-10-22 23:42:09 +02:00
Kevin Decherf fc040c749d updateOriginUrl: add behavior when diff is fragment and query
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-10-22 23:08:58 +02:00
Kevin Decherf e07fadea76 Refactor updateOriginUrl to include new behaviors behaviors
- Leave origin_url unchanged if difference is an ending slash
- Leave origin_url unchanged if difference is scheme
- Ignore (noop) if difference is query string or fragment

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-10-22 23:01:16 +02:00
Kevin Decherf 781864b954 ContentProxy: swap entry url to origin_url and set new url according to graby content
Closes #3529

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-10-21 16:15:31 +02:00
Kevin Decherf 4a81360efc ContentProxy: fix a corner case when entry.url is empty in updateEntry
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-10-21 16:13:20 +02:00
Jérémy Benoist 0658ce4f11
Merge pull request #3745 from burkemw3/patch-3
Add placeholder image to card-based gallery entries page
2018-10-16 07:45:22 +00:00
Matt Burke cefbe6a87f Add placeholder image to card-based gallery entries page for #3651
I referenced https://css-tricks.com/using-svg/ for using the SVG icon.
The icon has a black foreground and white background, which doesn't
look very good as a placeholder. So, using the background-image style
to show the svg and the inversion filter to make it white on gray.

With the image always present, there isn't much difference between
the with and without image preview templates, so I merged them.

Tested on Chrome, Firefox, and Safari on OSX.
2018-10-15 23:59:39 -04:00
Jérémy Benoist e673b54f70
Merge pull request #3574 from shulard/feature/rename-tags
Allow to rename tags from the web interface.
2018-10-15 08:32:59 +00:00
Jérémy Benoist fbdc665487
Merge pull request #3606 from mritzmann/master
add manifest.json for android pwa
2018-10-15 08:30:26 +00:00
Jeremy Benoist 4d4147b228
Ensure language is valid
- Do not override locale if user has choosen a locale from the login screen.
- Add some tests about locale url
2018-10-13 09:39:00 +02:00
Nicolas Lœuillet be417ef236
Added possibility to change locale from login/register pages 2018-10-13 09:39:00 +02:00
Matt Burke d73bfdbddb
Show tags on non-image gallery preview card
Tags and images aren't coupled, so they shouldn't be coupled in
the UI, either. This also makes the titles and source domains show
up consistently for image and non-image entry cards.
2018-10-11 19:47:48 -04:00
Jeremy Benoist 115de64e5b
Jump to Symfony 3.4
Thanks to the BC compatibility, almost nothing have to be changed.
All changes are related to new bundle version of:
- SensioFrameworkExtraBundle
- DoctrineFixturesBundle
2018-10-04 14:11:57 +02:00
Stéphane HULARD 559f708cae
Add translations about latest Tag changes.
Add new translations in each language file.
2018-09-25 10:18:08 +02:00
Stéphane HULARD 9b0aef9171
Update tag list template to allow renaming.
* Add a form on each tag to handle rename action.
* Add JavaScript to handle action on the corresponding page inside the global index.js file.
* Add support for the 2 active themes : material / baggy

The form solution is cleaner than an Ajax one because it let the browser validate input data and make the POST easier without the need to handle JSON response.
2018-09-25 10:18:08 +02:00
Stéphane HULARD b846c1e4d0
Add RenameForm as tag list view parameters.
This will help handling the CSRF protection token and use symfony HTML generation layer.
Also a FormView instance is generated for each tag because we need to render a form for each tag and FormView are not reusable.
2018-09-25 10:18:08 +02:00
Stéphane HULARD be326a22f9
Create a new Tag action to rename tags.
The current tag is removed from all the current logged user entries. Then the new one is created and attached.
2018-09-25 10:18:08 +02:00
Stéphane HULARD a664a1d876
Rename Tag : Add a new FormType 2018-09-25 10:18:08 +02:00
Tobi823 83f1c3274f Run php-cs-fixer for fixing coding standard issues 2018-09-23 22:20:43 +02:00
Tobi823 7a65c2017b Override the value of the given parameter ($title) with the (hopefully)
correct (to UTF-8) converted PDF title
2018-09-21 13:23:39 +02:00
Tobi823 c01d953292 Add tests for logic
Try to translate the title of a PDF from UTF-8 (then UTF-16BE, then WINDOWS-1252) to UTF-8
2018-09-21 13:15:00 +02:00
Tobi823 f80f16dfc8 Try to detect the character encoding in PDFs and try to translate
the title from the PDF to UTF-8
2018-09-21 13:15:00 +02:00
Tobi823 8648f0c005 Remove type declaration for PHP 5 compatibility 2018-09-21 13:15:00 +02:00
Tobi823 d76a5a6d60 Bugfix: Sanitize the title of a saved webpage from invalid UTF-8 characters 2018-09-21 13:15:00 +02:00
Jeremy Benoist 9007fe0062
Sort archive page by archived at 2018-09-21 11:18:29 +02:00
Sébastien Viande 7c0d682687
Code Style 2018-09-21 10:33:33 +02:00
Sébastien Viande 0e70e81227
Entry: add sort parameter archived 2018-09-21 10:33:33 +02:00
Sébastien Viande 7975395d10
Entry: add archived_at property and updateArchived method 2018-09-21 10:33:33 +02:00
Jeremy Benoist 17476f4d8d
Add missing parameters
Parameters weren’t passed to the sub function.
2018-09-07 13:56:14 +02:00
Kevin Decherf b8115ff46b php-cs-fixer
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-09-05 18:44:08 +02:00
Kevin Decherf 0636697289 EntryRepository: refactor getBuilderForUntaggedByUser
Improve SQL performance by replacing size(e.tags) with a left join and a
null condition

Move the QueryBuilder logic into getRawBuilderForUntaggedByUser

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-09-05 18:44:08 +02:00
Kevin Decherf b7c5fda512 EntryRepository: refactor getBuilderByUser
We refactor getBuilderByUser to separate QueryBuilder getter and the
orderBy(). The previous code of getBuilderByUser() has been moved to
getSortedQueryBuilderByUser(). getBuildByUser() now returns a
QueryBuilder without the call to orderBy().

A new method named sortQueryBuilder() returns a given QueryBuilder with
an orderBy() call using given sort parameters.

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-09-05 18:44:08 +02:00