forked from wallabag/wallabag
Compare commits
237 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b6a3e571b2 | |||
| fbffcdad7c | |||
| 4ec9f5c334 | |||
| 505e8acd46 | |||
| a3f7d8a870 | |||
| 2db9142bfc | |||
| f53f542fa5 | |||
| ce11952447 | |||
| d56d416d9b | |||
| 3221b2e413 | |||
| 84795d015b | |||
| a49159e9eb | |||
| b1057c6a5e | |||
| cce77ebc2d | |||
| 4b5e95c0e5 | |||
| 585fd2a4ad | |||
| 3be554c78f | |||
| 9c15470691 | |||
| be4f6bb4f3 | |||
| 22ef6f96e2 | |||
| db1d962f7b | |||
| 995d909d0f | |||
| 303b3c61a7 | |||
| 31dd328df4 | |||
| 337b47c216 | |||
| e52ee565f7 | |||
| 7d9abd1ab5 | |||
| 99692e8c33 | |||
| 038469e73f | |||
| e1632cea0e | |||
| 4b3c983ab8 | |||
| f74061f1e1 | |||
| 2087e499b4 | |||
| f6aff9a7a8 | |||
| 431d038aa7 | |||
| a0eddc598e | |||
| 90ec78f05a | |||
| 2a2ceceaa4 | |||
| a40b2b7ee4 | |||
| ca9858537e | |||
| c4b3933bae | |||
| 67b270d996 | |||
| 794ac861cb | |||
| 920d88599a | |||
| 267087d969 | |||
| bc4564a709 | |||
| 900c844861 | |||
| eca4d030bf | |||
| 37da178696 | |||
| 069d39dfaf | |||
| c4d9a8d6d0 | |||
| 9998c72533 | |||
| f3b637fbfe | |||
| a5d6a7d8b5 | |||
| 73e8df9e44 | |||
| 7a5043f187 | |||
| c68720d40e | |||
| e8eec07ae6 | |||
| c5ad143e75 | |||
| e1d4ed2d81 | |||
| d36e5e20a5 | |||
| d1b075509d | |||
| c64b4941d5 | |||
| 2ca1cc0c18 | |||
| 67aa755fb5 | |||
| f69636c4db | |||
| f7f6bfb7e9 | |||
| 89abc0b61b | |||
| 817724a7b8 | |||
| ab61dbc073 | |||
| 34aa06a9b9 | |||
| fc75009de7 | |||
| f99ddbc6f8 | |||
| 49dee2d2de | |||
| b64d8f2c9f | |||
| 2cbf0d05d4 | |||
| 645dc7594b | |||
| 818cbe1fee | |||
| 8e53bf3aa1 | |||
| f6798f69c3 | |||
| 9095497191 | |||
| 2297d60f10 | |||
| 5453500458 | |||
| 1e3d74a9cf | |||
| 576d285ddf | |||
| 166e8cc6a9 | |||
| 1cad9416c9 | |||
| b669224762 | |||
| a42cc6ff89 | |||
| 5d6cffedb1 | |||
| 99731f0bb1 | |||
| 3a3c6b866b | |||
| 7180aaed45 | |||
| f31361a6d9 | |||
| fd461c25aa | |||
| 39c3dd30d2 | |||
| 1172622a07 | |||
| d4e9ce5807 | |||
| fd54f236f4 | |||
| 545748bad1 | |||
| ef22711605 | |||
| 72ec79a5d6 | |||
| 5e469b91d9 | |||
| 692f9388cb | |||
| 3fb409ffc6 | |||
| 97512ec4bc | |||
| dda6398a40 | |||
| 5bd7acd50d | |||
| f69ab83a5a | |||
| d9a30ef301 | |||
| d32e1c424a | |||
| 05c009bb85 | |||
| 8ecfdd7f8a | |||
| 08f5a5b6bd | |||
| f48a6f3a54 | |||
| 38dc91be8e | |||
| 76f2123def | |||
| 7131f94274 | |||
| f878902e6a | |||
| 2752053f99 | |||
| 7b9b9ca7f8 | |||
| 68b8e75f94 | |||
| 8edb250caa | |||
| 311285f585 | |||
| 7880838943 | |||
| eb7d1b4b30 | |||
| bf8e088033 | |||
| 83634bab22 | |||
| 8b28151e14 | |||
| e65c27587b | |||
| a25377cb4c | |||
| 17064d3c54 | |||
| f68e351018 | |||
| 75a1506c27 | |||
| b09cafbb3f | |||
| 18470d7c6a | |||
| da8ecdfa17 | |||
| 7ffa48a11c | |||
| dbe94e73a9 | |||
| a0a4ce3135 | |||
| 9bed0ea236 | |||
| c8976118d4 | |||
| 7e72b371ba | |||
| 7dacf35845 | |||
| 36ef9e2730 | |||
| bccf7a70bc | |||
| e40bed3607 | |||
| c99d90455b | |||
| a2f42d8eaa | |||
| fa4c39b37c | |||
| c15f083896 | |||
| 0ff674a952 | |||
| 020c723e28 | |||
| 035513b025 | |||
| 3e761063e2 | |||
| ed11d7f731 | |||
| 6b1317a627 | |||
| eb54d338e8 | |||
| fb8835cc8f | |||
| 7c1ce28342 | |||
| 7c1225347d | |||
| 84e3c36e02 | |||
| edc8bc0b2f | |||
| 3175e33012 | |||
| 2a5ff7f554 | |||
| 8eeefc658c | |||
| e93c9dc4ab | |||
| d8a9209cfc | |||
| 39a19bdf47 | |||
| 02edf0707f | |||
| 4e7863c6aa | |||
| 4c79c51f99 | |||
| 47508f004f | |||
| 26490a8794 | |||
| 46aeaab8ff | |||
| 8dc4cd0f25 | |||
| d8507addbb | |||
| e084778030 | |||
| 28bb48905a | |||
| b4fcd60e7f | |||
| 4d318f3755 | |||
| e39aec3e38 | |||
| d451bcb3d0 | |||
| 90c766b96b | |||
| c5e4293efd | |||
| 5112b3556b | |||
| 5334381509 | |||
| 7c256ffabe | |||
| 7eff4736a1 | |||
| 32d103f702 | |||
| 951ad27fe4 | |||
| 93a95c09bf | |||
| 4ad6f5878a | |||
| e07c25a1ad | |||
| d9b0673dbb | |||
| af4ce9e069 | |||
| ba69216853 | |||
| dd32c89ed6 | |||
| ee32248f43 | |||
| ac8cf632bb | |||
| 3049afe190 | |||
| f271dd4b76 | |||
| aa8a58b5a0 | |||
| 6d204f5382 | |||
| f0abc22d09 | |||
| 233a1081ea | |||
| 20bf78b935 | |||
| 499ba4cb2f | |||
| aa88d2494b | |||
| 3b1bf6343d | |||
| 4e5d219663 | |||
| d5c45d5288 | |||
| fba816c43b | |||
| 5e7786f3c4 | |||
| 9cfea18a5d | |||
| e17373b659 | |||
| c8d2dcdafe | |||
| baf0ffa7df | |||
| 21d82c3c5d | |||
| bf71a734f6 | |||
| d0d196ffb3 | |||
| f0d52417fb | |||
| 74e1f7433a | |||
| 6c8806cadc | |||
| b0458874c8 | |||
| 9d127b3b93 | |||
| 0b174d69d7 | |||
| 046f33e21b | |||
| 145d69fe5d | |||
| 5d39243068 | |||
| 3c00779dc3 | |||
| 15f1352ef8 | |||
| 2fb9caeb2d | |||
| 1b1cb553be | |||
| 645c0d5bce | |||
| 837247dea4 | |||
| b0da721a52 |
@ -8,3 +8,7 @@ indent_style = space
|
||||
indent_size = 4
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.css]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
2
.github/ISSUE_TEMPLATE.md
vendored
2
.github/ISSUE_TEMPLATE.md
vendored
@ -1,3 +1,5 @@
|
||||
:warning: If your issue is about an error during fetching a link, please read: http://doc.wallabag.org/en/master/user/errors_during_fetching.html#how-can-i-help-to-fix-that
|
||||
|
||||
### Issue details
|
||||
|
||||
Please provide issue details here.
|
||||
|
||||
@ -62,7 +62,7 @@ before_script:
|
||||
- if [[ $DB = pgsql ]]; then psql -c 'create database wallabag_test;' -U postgres; fi;
|
||||
|
||||
install:
|
||||
- if [[ $ASSETS = build ]]; then source ~/.nvm/nvm.sh && nvm install 5.0; fi;
|
||||
- if [[ $ASSETS = build ]]; then source ~/.nvm/nvm.sh && nvm install 6.7; fi;
|
||||
- if [[ $ASSETS = build ]]; then npm install -g npm@latest; fi;
|
||||
- if [[ $ASSETS = build ]]; then npm install; fi;
|
||||
|
||||
@ -70,9 +70,11 @@ before_install:
|
||||
- if [[ $TRAVIS_REPO_SLUG = wallabag/wallabag ]]; then cp .composer-auth.json ~/.composer/auth.json; fi;
|
||||
|
||||
script:
|
||||
- travis_wait bash composer install -o --no-interaction --no-progress --prefer-dist
|
||||
- travis_wait bash composer update --no-interaction --no-progress
|
||||
- ant prepare-$DB
|
||||
- if [[ $VALIDATE_TRANSLATION_FILE = '' ]]; then phpunit -v ; fi;
|
||||
- if [[ $CS_FIXER = run ]]; then php bin/php-cs-fixer fix src/ --verbose --dry-run ; fi;
|
||||
- if [[ $VALIDATE_TRANSLATION_FILE = run ]]; then php bin/console lint:yaml src/Wallabag/CoreBundle/Resources/translations -v ; fi;
|
||||
- if [[ $VALIDATE_TRANSLATION_FILE = run ]]; then php bin/console lint:yaml app/Resources/CraueConfigBundle/translations -v ; fi;
|
||||
- if [[ $VALIDATE_TRANSLATION_FILE = run ]]; then php bin/console lint:yaml app/Resources/FOSUserBundle/translations -v ; fi;
|
||||
- if [[ $ASSETS = build ]]; then ./node_modules/grunt-cli/bin/grunt tests; fi;
|
||||
|
||||
718
CHANGELOG.md
718
CHANGELOG.md
@ -1,261 +1,457 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
## [2.1.1] - 2016-10-04
|
||||
|
||||
### Changed
|
||||
|
||||
- [#2340](https://github.com/wallabag/wallabag/pull/2340) Updated german translation (Strubbl)
|
||||
- [#2341](https://github.com/wallabag/wallabag/pull/2341) Updated polish translation (Mateusz Rumiński)
|
||||
- [#2354](https://github.com/wallabag/wallabag/pull/2354) Add php-bcmath extension to requirements (Godinez Pablo)
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#2338](https://github.com/wallabag/wallabag/pull/2338) Fixed 2.1 installation (Jeremy Benoist)
|
||||
- [#2345](https://github.com/wallabag/wallabag/issues/2345) Fixed 2.0.x update (Jeremy Benoist)
|
||||
- [#2353](https://github.com/wallabag/wallabag/pull/2353) Fixed assets problem (Thomas Citharel)
|
||||
- [#2359](https://github.com/wallabag/wallabag/pull/2359) Create config even if user is disabled (Jeremy Benoist)
|
||||
|
||||
## [2.1.0] - 2016-10-03
|
||||
|
||||
### Added
|
||||
|
||||
- [#1990](https://github.com/wallabag/wallabag/pull/1990) Added command line import for wallabag files (Nicolas Lœuillet)
|
||||
- [#2142](https://github.com/wallabag/wallabag/pull/2142) Manage assets through npm (Thomas Citharel)
|
||||
- [#2174](https://github.com/wallabag/wallabag/pull/2174) Added filter for tags on API (Thomas Citharel)
|
||||
- [#2176](https://github.com/wallabag/wallabag/pull/2176) Added `since` parameter in API (Thomas Citharel)
|
||||
- [#2170](https://github.com/wallabag/wallabag/pull/2170), [#2183](https://github.com/wallabag/wallabag/pull/2183) Added tags on entries view (Thomas Citharel)
|
||||
- [#2186](https://github.com/wallabag/wallabag/pull/2186) Added option to disable registration (Thomas Citharel)
|
||||
- [#1904](https://github.com/wallabag/wallabag/pull/1904) Share entry with a public URL (Nicolas Lœuillet)
|
||||
- [#2243](https://github.com/wallabag/wallabag/pull/2243) Added list of untagged articles (Nicolas Lœuillet)
|
||||
- [#2255](https://github.com/wallabag/wallabag/pull/2255) Added Readability import (Jeremy Benoist)
|
||||
- [#2002](https://github.com/wallabag/wallabag/pull/2002) Added articles counter in sidebar (Nicolas Lœuillet)
|
||||
- [#2275](https://github.com/wallabag/wallabag/pull/2275) Added date from entries in export (Jeremy Benoist)
|
||||
- [#2266](https://github.com/wallabag/wallabag/pull/2266) Added tags counter in sidebar (Nicolas Lœuillet)
|
||||
- [#1941](https://github.com/wallabag/wallabag/pull/1941) Added asynchronous import (Jeremy Benoist, Nicolas Lœuillet)
|
||||
- [#2192](https://github.com/wallabag/wallabag/pull/2192) Added Firefox / Chrome bookmarks import (Thomas Citharel)
|
||||
- [#2310](https://github.com/wallabag/wallabag/pull/2310) Added Instapaper import (Jeremy Benoist)
|
||||
- [#2322](https://github.com/wallabag/wallabag/pull/2322) Added customized errors templates (Jeremy Benoist)
|
||||
- [#2323](https://github.com/wallabag/wallabag/pull/2323) Added simple stats in footer (Jeremy Benoist)
|
||||
- [#2324](https://github.com/wallabag/wallabag/pull/2324) Added ability to edit a tagging rule (Jeremy Benoist)
|
||||
- [#2325](https://github.com/wallabag/wallabag/pull/2325) Added an `exists` endpoint in API (Jeremy Benoist)
|
||||
|
||||
### Changed
|
||||
|
||||
- [#2170](https://github.com/wallabag/wallabag/pull/2170) Entry titles are now smaller on entry view (Thomas Citharel)
|
||||
- [#2245](https://github.com/wallabag/wallabag/pull/2245) Changed where page title is displayed (Nicolas Lœuillet)
|
||||
- [#2274](https://github.com/wallabag/wallabag/pull/2274) Re use JsonResponse in API (Jeremy Benoist)
|
||||
- [#2257](https://github.com/wallabag/wallabag/pull/2257) Use created date for imported content (Jeremy Benoist)
|
||||
- [#2326](https://github.com/wallabag/wallabag/pull/2326) Quickstart layout (Nicolas Lœuillet)
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#2328](https://github.com/wallabag/wallabag/pull/2328) Fixed duplicate URL with accents (Jeremy Benoist)
|
||||
- [#2319](https://github.com/wallabag/wallabag/pull/2319) Fixed `gd` extension missing in Dockerfile (Pascal Martin)
|
||||
- [#2313](https://github.com/wallabag/wallabag/pull/2313) Fixed long loading on Firefox (Nicolas Lœuillet)
|
||||
- [#2320](https://github.com/wallabag/wallabag/pull/2320) Fixed user config which wasn't created in some cases (Jeremy Benoist)
|
||||
- [#2301](https://github.com/wallabag/wallabag/pull/2301) Fixed feeds not syncing on android application (Thomas Citharel)
|
||||
- [#2308](https://github.com/wallabag/wallabag/pull/2308) Fixed duplicate tags on import (Jeremy Benoist)
|
||||
- [#2297](https://github.com/wallabag/wallabag/pull/2297) Fixed epub export with special characters in title (morhelluin)
|
||||
- [#2292](https://github.com/wallabag/wallabag/pull/2292) Fixed label for mark as read link in entry view (Nicolas Lœuillet)
|
||||
- [#2260](https://github.com/wallabag/wallabag/pull/2260) Fixed different font-size for labels in config screen (Nicolas Lœuillet)
|
||||
- [#2242](https://github.com/wallabag/wallabag/pull/2242) Fixed print / article views (Nicolas Lœuillet)
|
||||
- [#2328](https://github.com/wallabag/wallabag/pull/2328) Avoid duplicate url with accents (Jeremy Benoist)
|
||||
- [#2330](https://github.com/wallabag/wallabag/pull/2330) Remove error message when creating ePub versions (Paulino Michelazzo)
|
||||
- [#2331](https://github.com/wallabag/wallabag/pull/2331) Fix parameters in API links (Jeremy Benoist)
|
||||
|
||||
### Removed
|
||||
|
||||
- [#2318](https://github.com/wallabag/wallabag/pull/2318) Removed duplicated templates files (Nicolas Lœuillet)
|
||||
- [#2287](https://github.com/wallabag/wallabag/pull/2287) Useless area in footer for material theme (Nicolas Lœuillet)
|
||||
|
||||
## [2.0.8] - 2016-09-07
|
||||
|
||||
### Added
|
||||
|
||||
- [#2262](https://github.com/wallabag/wallabag/pull/2262) Added a check for the database connection during installation (Jeremy Benoist)
|
||||
- [#2235](https://github.com/wallabag/wallabag/pull/2235) Added configuration for german documentation website, [available here](http://doc.wallabag.org/de/latest/) (Nicolas Lœuillet)
|
||||
|
||||
### Changed
|
||||
|
||||
- [graby](https://github.com/j0k3r/graby/releases/tag/1.4.3) Update Graby version, which now handles ZIP files (Jeremy Benoist)
|
||||
- [#2230](https://github.com/wallabag/wallabag/pull/2230) Changed title display in card view (Danilow Alexandr)
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#2234](https://github.com/wallabag/wallabag/pull/2234) Fixed mailto link in documentation (Christian Studer)
|
||||
- [#2241](https://github.com/wallabag/wallabag/pull/2241) Fixed the height of the "Add new article" field in Chrome (Danilow Alexandr)
|
||||
- [#2238](https://github.com/wallabag/wallabag/pull/2238) Fixed login page in Qupzilla (Danilow Alexandr)
|
||||
|
||||
## [2.0.7] - 2016-08-22
|
||||
|
||||
### Added
|
||||
|
||||
- [#2222](https://github.com/wallabag/wallabag/pull/2222) Added creation date and reading time on article view (Nicolas Lœuillet)
|
||||
- [#2134](https://github.com/wallabag/wallabag/pull/2134) Run tests on an uptodate HHVM (Jeremy Benoist)
|
||||
|
||||
### Changed
|
||||
|
||||
- [#2221](https://github.com/wallabag/wallabag/pull/2221) Replaced favorite word/icon with star one (Nicolas Lœuillet)
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#2224](https://github.com/wallabag/wallabag/pull/2224) Avoid breaking import when fetching fail (Jeremy Benoist)
|
||||
- [#2216](https://github.com/wallabag/wallabag/pull/2216), [#2220](https://github.com/wallabag/wallabag/pull/2220) Enable CORS headers for OAUTH part (Rurik19)
|
||||
- [#2095](https://github.com/wallabag/wallabag/pull/2095) Fix form user display when 2FA is disabled (Nicolas Lœuillet)
|
||||
|
||||
## [2.0.6] - 2016-08-10
|
||||
|
||||
### Changed
|
||||
|
||||
- [#2199](https://github.com/wallabag/wallabag/pull/2199) Handling socials links into a config file (Simon Alberny)
|
||||
- [#2172](https://github.com/wallabag/wallabag/pull/2172) Change the way to login user in tests (Jeremy Benoist)
|
||||
- [#2155](https://github.com/wallabag/wallabag/pull/2155) Use friendsofphp instead of fabpot for PHP CS Fixer (Jeremy Benoist)
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#2200](https://github.com/wallabag/wallabag/pull/2200) Fixed typo in entry:notice:entry_saved (charno6)
|
||||
- [#2185](https://github.com/wallabag/wallabag/pull/2185) Fix 3rd-Party Apps links (Chrome & Firefox) (Thomas Citharel)
|
||||
- [#2165](https://github.com/wallabag/wallabag/pull/2165) Fix a few french translations typos (Thomas Citharel)
|
||||
- [#2157](https://github.com/wallabag/wallabag/pull/2157) Handle only upper or only lower reading filter (Jeremy Benoist)
|
||||
- [#2156](https://github.com/wallabag/wallabag/pull/2156) Try to find bad redirection after delete (Jeremy Benoist)
|
||||
|
||||
## [2.0.5] - 2016-05-31
|
||||
|
||||
### Added
|
||||
|
||||
- [#2052](https://github.com/wallabag/wallabag/pull/2052) Add unread filter to entries pages (Dan Bartram)
|
||||
|
||||
### Changed
|
||||
|
||||
- [#2093](https://github.com/wallabag/wallabag/pull/2093) Replace vertical dots in material theme with horizontal dots (Nicolas Lœuillet)
|
||||
- [#2054](https://github.com/wallabag/wallabag/pull/2054) Update italian translation (Daniele Conca)
|
||||
- [#2068](https://github.com/wallabag/wallabag/pull/2068), [#2049](https://github.com/wallabag/wallabag/pull/2049) Update documentation (Josh Panter, Mario Vormstein)
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#2122](https://github.com/wallabag/wallabag/pull/2122) Fix the deletion of Tags/Entries relation when delete an entry (Jeremy Benoist, Nicolas Lœuillet)
|
||||
- [#2095](https://github.com/wallabag/wallabag/pull/2095) Fix form user display when 2FA is disabled (Nicolas Lœuillet)
|
||||
- [#2092](https://github.com/wallabag/wallabag/pull/2092) API: Starred and archived clears if article is already exists (Rurik19)
|
||||
- [#2097](https://github.com/wallabag/wallabag/issues/2097) Fix image path in 2-factor authentification email (Baptiste Mille-Mathias)
|
||||
- [#2069](https://github.com/wallabag/wallabag/pull/2069) Do not specify language in Firefox addon link (Merouane Atig)
|
||||
|
||||
## [2.0.4] - 2016-05-07
|
||||
|
||||
### Added
|
||||
|
||||
- [#2016](https://github.com/wallabag/wallabag/pull/2016) Big updates in [our documentation](http://doc.wallabag.org/en/master/) (Nicolas Lœuillet)
|
||||
- [#2028](https://github.com/wallabag/wallabag/pull/2028) Documentation about android application (Strubbl)
|
||||
- [#2019](https://github.com/wallabag/wallabag/pull/2019) Italian translation (Daniele Conca)
|
||||
- [#2011](https://github.com/wallabag/wallabag/pull/2011) Documentation about wallabag upgrade (biva)
|
||||
- [#1985](https://github.com/wallabag/wallabag/pull/1985) Documentation about rights access (FoxMaSk)
|
||||
- [#1969](https://github.com/wallabag/wallabag/pull/1969) Third resources for API in documentation (Nicolas Lœuillet)
|
||||
- [#1967](https://github.com/wallabag/wallabag/pull/1967) FAQ page in documentation (Nicolas Lœuillet)
|
||||
|
||||
### Changed
|
||||
|
||||
- [#1977](https://github.com/wallabag/wallabag/pull/1977) Spanish documentation (jami7)
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#2023](https://github.com/wallabag/wallabag/pull/2023) Fix translation for validators (Nicolas Lœuillet)
|
||||
- [#2020](https://github.com/wallabag/wallabag/pull/2020) Fix number of entries in tag/list (Nicolas Lœuillet)
|
||||
- [#2022](https://github.com/wallabag/wallabag/pull/2022) Fix pagination bar on small devices (Nicolas Lœuillet)
|
||||
- [#2013](https://github.com/wallabag/wallabag/pull/2013) Fix tag listing (Nicolas Lœuillet)
|
||||
- [#1976](https://github.com/wallabag/wallabag/pull/1976) Fix filter reading time (Nicolas Lœuillet)
|
||||
- [#2005](https://github.com/wallabag/wallabag/pull/2005) Fix reading speed not defined when user was created via config page (Nicolas Lœuillet)
|
||||
- [#2010](https://github.com/wallabag/wallabag/pull/2010) Set the title via POST /api/entries (Nicolas Lœuillet)
|
||||
|
||||
## [2.0.3] - 2016-04-22
|
||||
|
||||
### Added
|
||||
|
||||
- [#1962](https://github.com/wallabag/wallabag/pull/1962) cURL examples in documentation about API (Dirk Deimeke)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Forgot `composer.lock` file in 2.0.2 release so some users may encounter `Fatal error: Out of memory` error during installation
|
||||
|
||||
## [2.0.2] - 2016-04-21
|
||||
|
||||
### Added
|
||||
|
||||
- [#1945](https://github.com/wallabag/wallabag/pull/1945) cURL examples in documentation about API (Dirk Deimeke)
|
||||
- [#1911](https://github.com/wallabag/wallabag/pull/1911) Add title hover on entry titles (Thomas Citharel)
|
||||
|
||||
### Changed
|
||||
|
||||
- [#1944](https://github.com/wallabag/wallabag/pull/1944), [#1953](https://github.com/wallabag/wallabag/pull/1953), [#1954](https://github.com/wallabag/wallabag/pull/1954) Due to branches renaming, update documentation and configuration (maxi62330, Nicolas Lœuillet)
|
||||
- [#1942](https://github.com/wallabag/wallabag/pull/1942) Optimize import (Nicolas Lœuillet)
|
||||
- [#1935](https://github.com/wallabag/wallabag/pull/1935) Update spanish translation (jami7)
|
||||
- [#1929](https://github.com/wallabag/wallabag/pull/1929) Change guid and link in RSS feeds to give original entry URL (Nicolas Lœuillet)
|
||||
- [#1918](https://github.com/wallabag/wallabag/pull/1918) Improve pagination when user has lot of entries (Nicolas Lœuillet)
|
||||
- [#1916](https://github.com/wallabag/wallabag/pull/1916) Change PHP arrays and move test parameters in a separated file (Jeremy Benoist)
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#1957](https://github.com/wallabag/wallabag/pull/1957) Fix translation for `Go to your account` button (Nicolas Lœuillet)
|
||||
- [#1925](https://github.com/wallabag/wallabag/pull/1925) Redirect to homepage if refered is null (Nicolas Lœuillet)
|
||||
- [#1912](https://github.com/wallabag/wallabag/pull/1912) Fix 500 Internal Server Error -> "Setting piwik_enabled couldn't be found" (Jeremy Benoist)
|
||||
|
||||
## [2.0.1] - 2016-04-11
|
||||
### Added
|
||||
|
||||
- [Documentation about importing large file](http://doc.wallabag.org/en/v2/user/installation.html#installing-on-nginx) into nginx. (Nicolas Lœuillet)
|
||||
- [Documentation about wallabag API](http://doc.wallabag.org/en/v2/developer/api.html) (Nicolas Lœuillet)
|
||||
- [#1861](https://github.com/wallabag/wallabag/pull/1861) Round estimated time and add reading speed for Baggy (Nicolas Lœuillet)
|
||||
- [Documentation about wallabag v1 CLI import](http://doc.wallabag.org/en/v2/user/migration.html#import-via-command-line-interface-cli) (Nicolas Lœuillet)
|
||||
- [Add migrate link](http://doc.wallabag.org/en/v2/user/migration.html) in documentation (Nicolas Lœuillet)
|
||||
|
||||
### Changed
|
||||
|
||||
- [#1823](https://github.com/wallabag/wallabag/pull/1823) Persian translation (Masoud Abkenar)
|
||||
- [#1901](https://github.com/wallabag/wallabag/pull/1901) Spanish translation (Jeremy Benoist)
|
||||
- [#1879](https://github.com/wallabag/wallabag/pull/1879) Move tag form in Material theme (Nicolas Lœuillet)
|
||||
|
||||
### Fixed
|
||||
|
||||
- [#1903](https://github.com/wallabag/wallabag/pull/1903) Force server version to avoid connection error (Jeremy Benoist)
|
||||
- [#1887](https://github.com/wallabag/wallabag/pull/1887) Fix duplicate article when added via the bookmarklet (Nicolas Lœuillet)
|
||||
- [#1895](https://github.com/wallabag/wallabag/pull/1895) API: All the entries are fetched via GET /api/entries (Nicolas Lœuillet)
|
||||
- [#1898](https://github.com/wallabag/wallabag/pull/1898) Fix estimated reading time in material view #1893 (Nicolas Lœuillet)
|
||||
- [#1896](https://github.com/wallabag/wallabag/pull/1896) remove download_picture setting and manage show_printlink in material theme #1867 (Nicolas Lœuillet)
|
||||
- [#1894](https://github.com/wallabag/wallabag/pull/1894) Fix documentation link in developer page (Nicolas Lœuillet)
|
||||
- [#1891](https://github.com/wallabag/wallabag/pull/1891) Fix typo on configuration page (Nicolas Lœuillet)
|
||||
- [#1884](https://github.com/wallabag/wallabag/pull/1884) Change the installation method in issue template (Nicolas Lœuillet)
|
||||
- [#1844](https://github.com/wallabag/wallabag/pull/1844) Lock ocramius/proxy-manager (Jeremy Benoist)
|
||||
- [#1840](https://github.com/wallabag/wallabag/pull/1840) Fix Archive page title translation (Nicolas Lœuillet)
|
||||
- [#1801](https://github.com/wallabag/wallabag/pull/1804) Force user-agent for iansommerville.com (Jeremy Benoist)
|
||||
|
||||
### Removed
|
||||
|
||||
- [#1900](https://github.com/wallabag/wallabag/pull/1900) Remove empty portugese documentation (Nicolas Lœuillet)
|
||||
- [#1868](https://github.com/wallabag/wallabag/pull/1868) Remove keyboard shortcut and add tagging rule panel in baggy (Nicolas Lœuillet)
|
||||
- [#1824](https://github.com/wallabag/wallabag/pull/1824) Remove SMTP configuration environment overrides (Mathieu Bruyen)
|
||||
|
||||
## [2.0.0] - 2016-04-03
|
||||
### Added
|
||||
|
||||
* save an article, read it, favorite it, archive it. (Hopefully)
|
||||
* annotations: In each article you read, you can write annotations. ([read the doc](http://doc.wallabag.org/en/v2/user/annotations.html))
|
||||
* filter entries by reading time, domain name, creation date, status, etc.
|
||||
* assign tags to entries
|
||||
* edit article titles
|
||||
* a REST API ([you can have a look to the documentation](http://v2.wallabag.org/api/doc))
|
||||
* authorization via oAuth2
|
||||
* a new default theme, called `material`
|
||||
* RSS feeds (with ability to limit number of articles)
|
||||
* create a new account from the config page (for super admin only)
|
||||
* recover passwords from login page (you have to fill your email on config page)
|
||||
* picture preview, if available, is displayed for each entry
|
||||
* Public registration
|
||||
* migration from wallabag v1/v2 (based on JSON export) ([read the doc](http://doc.wallabag.org/en/v2/user/import.html))
|
||||
* migration from Pocket (it works, but we need to implement asynchronous import: if you have too many articles, it can fail) ([read the doc](http://doc.wallabag.org/en/v2/user/import.html))
|
||||
* exports in many formats (PDF, JSON, EPUB, MOBI, XML, CSV and TXT).
|
||||
* 2-Factor authentication via email ([read the doc](http://doc.wallabag.org/en/v2/user/configuration.html#two-factor-authentication))
|
||||
* Tagging rule: create a rule to automatically assign tags to entries! ([read the doc](http://doc.wallabag.org/en/v2/user/configuration.html#tagging-rules))
|
||||
* Occitan, German, French, Turkish, Persian, Romanian, Polish, Danish, Spanish and English translations
|
||||
* Quickstart for beginners (when you don't have any entries)
|
||||
* Internal settings for administrator (the account created during installation)
|
||||
* For 3rd apps developers, a developer page is available to create API token
|
||||
## Changelog
|
||||
|
||||
### 2.1.3 2016/11/04
|
||||
- [#2460](https://github.com/wallabag/wallabag/pull/2460) UI Changes (@tcitworld, @j0k3r)
|
||||
- [#2534](https://github.com/wallabag/wallabag/pull/2534) Use created_at as default sort (@j0k3r)
|
||||
- [#2530](https://github.com/wallabag/wallabag/pull/2530) Added documentation about failed to load external entity error (@j0k3r, @Strubbl, @nicosomb)
|
||||
- [#2519](https://github.com/wallabag/wallabag/pull/2519) Translation update - French (@j0k3r, @Jibec)
|
||||
- [#2528](https://github.com/wallabag/wallabag/pull/2528) Force user-agent for .slashdot.org (@Kdecherf)
|
||||
- [#2524](https://github.com/wallabag/wallabag/pull/2524) Add Instapaper to CLI import (@lologhi)
|
||||
- [#2521](https://github.com/wallabag/wallabag/pull/2521) fix path for the install scripts (@foxmask)
|
||||
- [#2520](https://github.com/wallabag/wallabag/pull/2520) Inject parameter instead of service (@j0k3r)
|
||||
- [#2518](https://github.com/wallabag/wallabag/pull/2518) docs: fix link to wallabag-stats project (@Strubbl)
|
||||
- [#2514](https://github.com/wallabag/wallabag/pull/2514) docs: update 3rd party projects by Strubbl (@Strubbl)
|
||||
- [#2513](https://github.com/wallabag/wallabag/pull/2513) Updated Capistrano configuration (@nicosomb)
|
||||
- [#2506](https://github.com/wallabag/wallabag/pull/2506) Fixed entries export filtered with a tag (@nicosomb)
|
||||
- [#2509](https://github.com/wallabag/wallabag/pull/2509) Exploded WallabagRestController into many controllers (@nicosomb)
|
||||
- [#2508](https://github.com/wallabag/wallabag/pull/2508) Added the whole path to parameters.yml file (@nicosomb)
|
||||
- [#2507](https://github.com/wallabag/wallabag/pull/2507) Added require.sh to check if composer is installed (@nicosomb)
|
||||
- [#2500](https://github.com/wallabag/wallabag/pull/2500) Added a check in Makefile to see if composer is installed (@nicosomb)
|
||||
- [#2504](https://github.com/wallabag/wallabag/pull/2504) Added tag label in the page title (@nicosomb)
|
||||
- [#2473](https://github.com/wallabag/wallabag/pull/2473) Portuguese (Brazilian) translation (@pmichelazzo, @j0k3r, @nicosomb, @Quent-in, @danbartram, @even-allmighty, @Strubbl, @tcitworld, @benages, @Simounet, @charno6, @Rurik19, @bmillemathias, @cstuder, @egilli, @pmartin)
|
||||
- [#2493](https://github.com/wallabag/wallabag/pull/2493) Add relevant links to fetch content error page (@nicosomb, @bmillemathias)
|
||||
- [#2486](https://github.com/wallabag/wallabag/pull/2486) Added :fr: documentation for wallabag backup (@jlnostr, @nicosomb)
|
||||
- [#2484](https://github.com/wallabag/wallabag/pull/2484) Document what to backup in Wallabag (@bmillemathias)
|
||||
- [#2485](https://github.com/wallabag/wallabag/pull/2485) Fix missing words in Android application documentation (@bmillemathias)
|
||||
- [#2481](https://github.com/wallabag/wallabag/pull/2481) Some fixes (@j0k3r)
|
||||
- [#2482](https://github.com/wallabag/wallabag/pull/2482) If reload content failed, don’t update it (@j0k3r)
|
||||
- [#2467](https://github.com/wallabag/wallabag/pull/2467) Update wallabag version for master branch (@nicosomb)
|
||||
- [#2466](https://github.com/wallabag/wallabag/pull/2466) Removed MD5 hash in documentation (@nicosomb)
|
||||
|
||||
### 2.1.2 2016/10/17
|
||||
- [#2452](https://github.com/wallabag/wallabag/pull/2452) Prepare wallabag 2.1.2 :rocket: (@nicosomb)
|
||||
- [#2464](https://github.com/wallabag/wallabag/pull/2464) Fixed hardcoded title for internal settings (@nicosomb)
|
||||
- [#2455](https://github.com/wallabag/wallabag/pull/2455) Fix tabs on material (@tcitworld)
|
||||
- [#2454](https://github.com/wallabag/wallabag/pull/2454) Fix baggy display on small screens (@tcitworld)
|
||||
- [#2459](https://github.com/wallabag/wallabag/pull/2459) German: improve existing and add missing translation (@Strubbl)
|
||||
- [#2457](https://github.com/wallabag/wallabag/pull/2457) add link to German documentation in about page (@Strubbl)
|
||||
- [#2451](https://github.com/wallabag/wallabag/pull/2451) Bring make dev (@tcitworld)
|
||||
- [#2450](https://github.com/wallabag/wallabag/pull/2450) View improvements (@tcitworld)
|
||||
- [#2412](https://github.com/wallabag/wallabag/pull/2412) Fix PostgreSQL migrations (@j0k3r)
|
||||
- [#2446](https://github.com/wallabag/wallabag/pull/2446) Added information about tagging rules in documentation (@Strubbl, @nicosomb)
|
||||
- [#2447](https://github.com/wallabag/wallabag/pull/2447) Fixed french and german doc homepages (@nicosomb)
|
||||
- [#2444](https://github.com/wallabag/wallabag/pull/2444) Mention example instance in docs (@Kaligule)
|
||||
- [#1](https://github.com/wallabag/wallabag/pull/1) Mention example instance (@Kaligule)
|
||||
- [#2435](https://github.com/wallabag/wallabag/pull/2435) Added french documentation for upgrade (@nicosomb, @Strubbl)
|
||||
- [#2434](https://github.com/wallabag/wallabag/pull/2434) Added french documentation for parameters.yml (@Strubbl, @nicosomb)
|
||||
- [#2439](https://github.com/wallabag/wallabag/pull/2439) Minor fixes in the english documentation (@zertrin)
|
||||
- [#2432](https://github.com/wallabag/wallabag/pull/2432) Update ISSUE_TEMPLATE.md (@j0k3r)
|
||||
- [#2429](https://github.com/wallabag/wallabag/pull/2429) Lock deps for FOSUser (@j0k3r)
|
||||
- [#2422](https://github.com/wallabag/wallabag/pull/2422) Fixed display for note in installation page (@nicosomb)
|
||||
- [#2426](https://github.com/wallabag/wallabag/pull/2426) Fix links on english documentation homepage (@nicosomb)
|
||||
- [#2420](https://github.com/wallabag/wallabag/pull/2420) Avoid error when Redis isn't here in tests (@j0k3r)
|
||||
- [#2403](https://github.com/wallabag/wallabag/pull/2403) Cleaned up documentation for installation process (@nicosomb, @j0k3r, @Strubbl)
|
||||
- [#2419](https://github.com/wallabag/wallabag/pull/2419) Fixed Twitter Cards by adding a description tag (@nicosomb)
|
||||
- [#2418](https://github.com/wallabag/wallabag/pull/2418) Added support of Twitter Cards for public articles (@nicosomb)
|
||||
- [#2417](https://github.com/wallabag/wallabag/pull/2417) Define a dev version for the master (@j0k3r)
|
||||
- [#2411](https://github.com/wallabag/wallabag/pull/2411) Fix entities definition (@j0k3r)
|
||||
- [#2414](https://github.com/wallabag/wallabag/pull/2414) Remove automatic closing of the window from bookmarklet (@szafranek)
|
||||
- [#2413](https://github.com/wallabag/wallabag/pull/2413) When a sub command fail, display error message (@j0k3r)
|
||||
- [#2410](https://github.com/wallabag/wallabag/pull/2410) Optimize tag list display (@j0k3r)
|
||||
- [#2406](https://github.com/wallabag/wallabag/pull/2406) Show number of annotations instead of nbAnnotations placeholder (@szafranek)
|
||||
- [#2405](https://github.com/wallabag/wallabag/pull/2405) Fix few invalid HTML tags (@szafranek)
|
||||
- [#2402](https://github.com/wallabag/wallabag/pull/2402) Removed 1.x stuff in CHANGELOG (@nicosomb)
|
||||
- [#2351](https://github.com/wallabag/wallabag/pull/2351) Changed relation between API client and refresh token (@j0k3r, @nicosomb)
|
||||
- [#2393](https://github.com/wallabag/wallabag/pull/2393) Ability to check multiple urls in API (@j0k3r)
|
||||
- [#2397](https://github.com/wallabag/wallabag/pull/2397) Ensure orphan tag are remove in API (@j0k3r)
|
||||
- [#2399](https://github.com/wallabag/wallabag/pull/2399) Use default locale for user config (@j0k3r)
|
||||
- [#2400](https://github.com/wallabag/wallabag/pull/2400) Set env to prod in documentation (@j0k3r)
|
||||
- [#2396](https://github.com/wallabag/wallabag/pull/2396) Update messages.pl.yml (@mruminski)
|
||||
- [#2395](https://github.com/wallabag/wallabag/pull/2395) Add ability to use socket (@j0k3r)
|
||||
- [#2386](https://github.com/wallabag/wallabag/pull/2386) Changed Changelog by using github-changelog-generator from @skywinder (@nicosomb)
|
||||
- [#2389](https://github.com/wallabag/wallabag/pull/2389) Added default picture if preview picture is null (@nicosomb)
|
||||
- [#2388](https://github.com/wallabag/wallabag/pull/2388) Fixed two-factor checkbox display in user admin panel (@nicosomb)
|
||||
- [#2385](https://github.com/wallabag/wallabag/pull/2385) Added documentation about siteconfig fix (@nicosomb)
|
||||
- [#2383](https://github.com/wallabag/wallabag/pull/2383) Added OpenGraph support for public articles (@nicosomb)
|
||||
- [#2332](https://github.com/wallabag/wallabag/pull/2332) Fix relations export for Entry (@j0k3r)
|
||||
- [#2377](https://github.com/wallabag/wallabag/pull/2377) Fix exists API call (@j0k3r, @tcitworld)
|
||||
- [#2374](https://github.com/wallabag/wallabag/pull/2374) Clickable tags (@tcitworld)
|
||||
- [#2375](https://github.com/wallabag/wallabag/pull/2375) try to reduce assets build npm connection failing by updating nodejs (@tcitworld)
|
||||
- [#2363](https://github.com/wallabag/wallabag/pull/2363) Remove mouf/nodejs-installer from composer (@j0k3r)
|
||||
|
||||
### 2.1.1 2016/10/04
|
||||
- [#2349](https://github.com/wallabag/wallabag/pull/2349) Prepare wallabag 2.1.1 (@nicosomb, @j0k3r)
|
||||
- [#2353](https://github.com/wallabag/wallabag/pull/2353) Basically, fix everything (@tcitworld, @nicosomb, @j0k3r)
|
||||
- [#2359](https://github.com/wallabag/wallabag/pull/2359) Create config even if user is disabled (@j0k3r)
|
||||
- [#2354](https://github.com/wallabag/wallabag/pull/2354) Add php-bcmath extension to requirements (@Zayon)
|
||||
- [#2341](https://github.com/wallabag/wallabag/pull/2341) Update messages.pl.yml (@mruminski)
|
||||
- [#2340](https://github.com/wallabag/wallabag/pull/2340) small improvement for german translation (@Strubbl)
|
||||
- [#2338](https://github.com/wallabag/wallabag/pull/2338) Fix for 2.1 installation (@j0k3r)
|
||||
|
||||
### 2.1.0 2016/10/03
|
||||
- [#2334](https://github.com/wallabag/wallabag/pull/2334) Prepare wallabag 2.1.0 :rocket: (@nicosomb)
|
||||
- [#2335](https://github.com/wallabag/wallabag/pull/2335) Fixed CSS for quickstart links (@nicosomb)
|
||||
- [#2333](https://github.com/wallabag/wallabag/pull/2333) for 2.1, translate all strings to German, which haven't been translated yet (@j0k3r, @nicosomb, @jlnostr, @Strubbl)
|
||||
- [#2314](https://github.com/wallabag/wallabag/pull/2314) Assets work (@tcitworld)
|
||||
- [#2331](https://github.com/wallabag/wallabag/pull/2331) Fix parameters in API _links (@j0k3r)
|
||||
- [#2327](https://github.com/wallabag/wallabag/pull/2327) Add users management UI (@j0k3r)
|
||||
- [#2330](https://github.com/wallabag/wallabag/pull/2330) Remove error message when creating ePub versions (@pmichelazzo)
|
||||
- [#2325](https://github.com/wallabag/wallabag/pull/2325) Add an exists endpoint in API (@j0k3r)
|
||||
- [#2328](https://github.com/wallabag/wallabag/pull/2328) Avoid duplicate url with accents (@j0k3r)
|
||||
- [#2326](https://github.com/wallabag/wallabag/pull/2326) Changed quickstart layout (@j0k3r, @nicosomb)
|
||||
- [#2324](https://github.com/wallabag/wallabag/pull/2324) Add ability to edit a tagging rule (@j0k3r)
|
||||
- [#2323](https://github.com/wallabag/wallabag/pull/2323) Add simple stats in footer (@j0k3r)
|
||||
- [#2329](https://github.com/wallabag/wallabag/pull/2329) Occitan version update (@j0k3r, @Quent-in)
|
||||
- [#2322](https://github.com/wallabag/wallabag/pull/2322) Customize errors templates (@j0k3r)
|
||||
- [#2320](https://github.com/wallabag/wallabag/pull/2320) Create user config in one place. (@j0k3r)
|
||||
- [#2319](https://github.com/wallabag/wallabag/pull/2319) Docker : install PHP 'gd' extension (@pmartin)
|
||||
- [#2318](https://github.com/wallabag/wallabag/pull/2318) Removed duplicated templates files (@nicosomb)
|
||||
- [#2315](https://github.com/wallabag/wallabag/pull/2315) Fixes about upgrade (@nicosomb, @Strubbl, @jlnostr)
|
||||
- [#2316](https://github.com/wallabag/wallabag/pull/2316) Update messages.pl.yml (@mruminski)
|
||||
- [#2313](https://github.com/wallabag/wallabag/pull/2313) Remove CSS class who caused long loading on Firefox (@nicosomb)
|
||||
- [#2309](https://github.com/wallabag/wallabag/pull/2309) Update messages.pl.yml (@mruminski)
|
||||
- [#2192](https://github.com/wallabag/wallabag/pull/2192) Import Firefox & Chrome bookmarks into wallabag (@nicosomb, @j0k3r, @tcitworld)
|
||||
- [#2308](https://github.com/wallabag/wallabag/pull/2308) Fix duplicate tags on import (@j0k3r)
|
||||
- [#2306](https://github.com/wallabag/wallabag/pull/2306) Some checks about Redis & RabbitMQ (@j0k3r)
|
||||
- [#2301](https://github.com/wallabag/wallabag/pull/2301) fix feeds not syncing on android app (@tcitworld, @nicosomb, @Quent-in, @j0k3r, @danbartram, @even-allmighty, @Strubbl, @benages, @Simounet, @charno6, @Rurik19, @bmillemathias, @cstuder, @egilli)
|
||||
- [#2239](https://github.com/wallabag/wallabag/pull/2239) Update documentation with new features for 2.1 (@nicosomb)
|
||||
- [#2299](https://github.com/wallabag/wallabag/pull/2299) polish version (@mruminski)
|
||||
- [#2297](https://github.com/wallabag/wallabag/pull/2297) Fix issue #2296: epub export with special chars in the title. (@egilli)
|
||||
- [#1941](https://github.com/wallabag/wallabag/pull/1941) Use asynchronous jobs for imports (@j0k3r, @nicosomb)
|
||||
- [#2292](https://github.com/wallabag/wallabag/pull/2292) Fixed label for mark as read link in entry view (@nicosomb)
|
||||
- [#2291](https://github.com/wallabag/wallabag/pull/2291) Add links to translations in documentation homepage (@nicosomb)
|
||||
- [#2287](https://github.com/wallabag/wallabag/pull/2287) Remove footer part (@nicosomb)
|
||||
- [#2290](https://github.com/wallabag/wallabag/pull/2290) Update messages.oc.yml (@Quent-in)
|
||||
- [#2279](https://github.com/wallabag/wallabag/pull/2279) Check if asset is enable instead of opposite (@j0k3r)
|
||||
- [#2275](https://github.com/wallabag/wallabag/pull/2275) Export dates from entries (@j0k3r)
|
||||
- [#2274](https://github.com/wallabag/wallabag/pull/2274) Re-use JsonResponse (@j0k3r)
|
||||
|
||||
### 2.0.8 2016/09/07
|
||||
- [#2271](https://github.com/wallabag/wallabag/pull/2271) Prepare wallabag 2.0.8 (@nicosomb)
|
||||
- [#2266](https://github.com/wallabag/wallabag/pull/2266) Added tags counter in sidebar (material theme) (@nicosomb)
|
||||
- [#2267](https://github.com/wallabag/wallabag/pull/2267) Occitan updated (@Quent-in)
|
||||
- [#2263](https://github.com/wallabag/wallabag/pull/2263) Instead of selecting the whole data, just count it (@j0k3r)
|
||||
- [#2002](https://github.com/wallabag/wallabag/pull/2002) Feature display items number (@nicosomb)
|
||||
- [#2262](https://github.com/wallabag/wallabag/pull/2262) Add a check for the database connection (@j0k3r)
|
||||
- [#2260](https://github.com/wallabag/wallabag/pull/2260) Fixed different font-size for labels in config screen (@nicosomb)
|
||||
- [#2252](https://github.com/wallabag/wallabag/pull/2252) Fixed last merge who caused CSS/JS bugs (@j0k3r, @nicosomb)
|
||||
- [#2242](https://github.com/wallabag/wallabag/pull/2242) Fix print / article views (@nicosomb)
|
||||
- [#2258](https://github.com/wallabag/wallabag/pull/2258) Update messages.pl.yml (@mruminski)
|
||||
- [#2255](https://github.com/wallabag/wallabag/pull/2255) Add Readability import (@nicosomb, @j0k3r)
|
||||
- [#2243](https://github.com/wallabag/wallabag/pull/2243) Add untagged entries (@j0k3r, @nicosomb)
|
||||
- [#2245](https://github.com/wallabag/wallabag/pull/2245) Changed where page title is displayed (@nicosomb)
|
||||
- [#2240](https://github.com/wallabag/wallabag/pull/2240) Add icon for public share link (@nicosomb)
|
||||
- [#2241](https://github.com/wallabag/wallabag/pull/2241) Fix issue #1991: correction of the height field to add articles (@modos189)
|
||||
- [#2238](https://github.com/wallabag/wallabag/pull/2238) V2 improve view (@modos189)
|
||||
- [#2237](https://github.com/wallabag/wallabag/pull/2237) Add original link in public view of the article (@nicosomb)
|
||||
- [#1904](https://github.com/wallabag/wallabag/pull/1904) Share entry with a public URL (@j0k3r, @nicosomb)
|
||||
- [#2236](https://github.com/wallabag/wallabag/pull/2236) Allow failure for PHP 7.1 (@j0k3r)
|
||||
- [#2186](https://github.com/wallabag/wallabag/pull/2186) Add option to disable registration (@nicosomb, @j0k3r, @tcitworld)
|
||||
- [#2234](https://github.com/wallabag/wallabag/pull/2234) Fixes mailto link in documentation (@cstuder)
|
||||
- [#2235](https://github.com/wallabag/wallabag/pull/2235) Add configuration for german documentation (@nicosomb)
|
||||
- [#2230](https://github.com/wallabag/wallabag/pull/2230) Cut entries title in card view: continued (@bmillemathias)
|
||||
- [#2218](https://github.com/wallabag/wallabag/pull/2218) Delete tag or tags by label (@j0k3r, @tcitworld, @nicosomb)
|
||||
|
||||
### 2.0.7 2016/08/22
|
||||
- [#2226](https://github.com/wallabag/wallabag/pull/2226) Prepare wallabag 2.0.7 (@nicosomb)
|
||||
- [#2222](https://github.com/wallabag/wallabag/pull/2222) Added creation date and reading time on article view (@j0k3r, @nicosomb)
|
||||
- [#2221](https://github.com/wallabag/wallabag/pull/2221) Replaced favorite word/icon with star one (@nicosomb)
|
||||
- [#2224](https://github.com/wallabag/wallabag/pull/2224) Avoid breaking import when fetching fail (@j0k3r)
|
||||
- [#2220](https://github.com/wallabag/wallabag/pull/2220) Enable PATCH method for CORS in API part (@Rurik19)
|
||||
- [#2134](https://github.com/wallabag/wallabag/pull/2134) Run tests on an uptodate HHVM (@j0k3r)
|
||||
- [#2095](https://github.com/wallabag/wallabag/pull/2095) Fix form user display when 2FA is disabled (@j0k3r, @nicosomb)
|
||||
- [#2216](https://github.com/wallabag/wallabag/pull/2216) Enable CORS headers for OAUTH part (@Rurik19)
|
||||
|
||||
### 2.0.6 2016/08/10
|
||||
- [#2212](https://github.com/wallabag/wallabag/pull/2212) Prepare release 2.0.6 (@nicosomb)
|
||||
- [#2202](https://github.com/wallabag/wallabag/pull/2202) add some missing phpdoc parameters (@tcitworld)
|
||||
- [#2200](https://github.com/wallabag/wallabag/pull/2200) Fixed typo in entry:notice:entry_saved (@charno6)
|
||||
- [#2199](https://github.com/wallabag/wallabag/pull/2199) Handling socials links into a config file (@Simounet)
|
||||
- [#2198](https://github.com/wallabag/wallabag/pull/2198) FIX image inside a figure element max-width (@Simounet)
|
||||
- [#2195](https://github.com/wallabag/wallabag/pull/2195) Remove binary from repo (@j0k3r)
|
||||
- [#2048](https://github.com/wallabag/wallabag/pull/2048) Run PHP 7.1 on Travis (@j0k3r)
|
||||
- [#2194](https://github.com/wallabag/wallabag/pull/2194) Fixed spelling Artúclos --> Artículos (@benages)
|
||||
- [#2183](https://github.com/wallabag/wallabag/pull/2183) Bring tags on entries view to baggy (@tcitworld)
|
||||
- [#2185](https://github.com/wallabag/wallabag/pull/2185) Fix 3rd-Party Apps links (Chrome & Firefox) (@tcitworld)
|
||||
- [#2174](https://github.com/wallabag/wallabag/pull/2174) Add filter for tags on API (@tcitworld)
|
||||
- [#2176](https://github.com/wallabag/wallabag/pull/2176) Add since parameter (@tcitworld)
|
||||
- [#2170](https://github.com/wallabag/wallabag/pull/2170) Add tags on entries view and minor ui fixes (@tcitworld)
|
||||
- [#2172](https://github.com/wallabag/wallabag/pull/2172) Change the way to login user in tests (@j0k3r)
|
||||
- [#2169](https://github.com/wallabag/wallabag/pull/2169) fix font paths (@tcitworld)
|
||||
- [#2168](https://github.com/wallabag/wallabag/pull/2168) Add modules when NodeJS versions are too low. (@tcitworld)
|
||||
- [#2157](https://github.com/wallabag/wallabag/pull/2157) Handle only upper or only lower reading filter (@j0k3r)
|
||||
- [#2165](https://github.com/wallabag/wallabag/pull/2165) Fix a few french translations typos (@tcitworld)
|
||||
- [#2142](https://github.com/wallabag/wallabag/pull/2142) Manage assets through npm (@tcitworld)
|
||||
- [#2132](https://github.com/wallabag/wallabag/pull/2132) Jump to Symfony 3.1 (@j0k3r)
|
||||
- [#2160](https://github.com/wallabag/wallabag/pull/2160) Update symlink to php-cs-fixer (@j0k3r)
|
||||
- [#2155](https://github.com/wallabag/wallabag/pull/2155) Use friendsofphp instead of fabpot (@j0k3r)
|
||||
- [#2156](https://github.com/wallabag/wallabag/pull/2156) Try to find bad redirection after delete (@j0k3r)
|
||||
- [#2148](https://github.com/wallabag/wallabag/pull/2148) translate documentation to German (@Strubbl)
|
||||
- [#2145](https://github.com/wallabag/wallabag/pull/2145) Corrected Regex for lighttpd rewrite (@even-allmighty)
|
||||
|
||||
### 2.0.5 2016/05/31
|
||||
- [#2118](https://github.com/wallabag/wallabag/pull/2118) Prepare wallabag 2.0.5 (@nicosomb)
|
||||
- [#2122](https://github.com/wallabag/wallabag/pull/2122) Fix the deletion of Tags/Entries relation when delete an entry (@j0k3r, @nicosomb)
|
||||
- [#2052](https://github.com/wallabag/wallabag/pull/2052) Add unread filter to entries pages (@danbartram)
|
||||
- [#2112](https://github.com/wallabag/wallabag/pull/2112) Docs proposal (@Poorchop)
|
||||
- [#2111](https://github.com/wallabag/wallabag/pull/2111) add screenshots of android docu in English (@Strubbl)
|
||||
- [#2109](https://github.com/wallabag/wallabag/pull/2109) Improve English translation (@Poorchop)
|
||||
- [#2097](https://github.com/wallabag/wallabag/pull/2097) Fix image path in 2-factor authentification email (@bmillemathias)
|
||||
- [#2098](https://github.com/wallabag/wallabag/pull/2098) CS (@j0k3r)
|
||||
- [#2092](https://github.com/wallabag/wallabag/pull/2092) Starred and Archived clears if article is already exists (@Rurik19)
|
||||
- [#2093](https://github.com/wallabag/wallabag/pull/2093) Replace vertical dots in material theme with horizontal dots (@nicosomb)
|
||||
- [#2094](https://github.com/wallabag/wallabag/pull/2094) Update CONTRIBUTING file (@nicosomb)
|
||||
- [#2069](https://github.com/wallabag/wallabag/pull/2069) Do not specify language in Firefox addon link (@merwan)
|
||||
- [#2068](https://github.com/wallabag/wallabag/pull/2068) Added information about permissions on data/ (@mariovor)
|
||||
- [#2054](https://github.com/wallabag/wallabag/pull/2054) Update CraueConfigBundle.it.yml (@jamiroconca)
|
||||
- [#2049](https://github.com/wallabag/wallabag/pull/2049) Update api.rst (@joshp23)
|
||||
- [#2044](https://github.com/wallabag/wallabag/pull/2044) Update api.rst (@joshp23)
|
||||
- [#2038](https://github.com/wallabag/wallabag/pull/2038) new details in the doc about the rights access again;) (@foxmask)
|
||||
|
||||
### 2.0.4 2016/05/07
|
||||
- [#2035](https://github.com/wallabag/wallabag/pull/2035) Prepare wallabag 2.0.4 (@nicosomb)
|
||||
- [#2023](https://github.com/wallabag/wallabag/pull/2023) Fix translation for validators (@nicosomb)
|
||||
- [#2016](https://github.com/wallabag/wallabag/pull/2016) Update documentation (@nicosomb)
|
||||
- [#2020](https://github.com/wallabag/wallabag/pull/2020) Fix number of entries in tag/list (@nicosomb)
|
||||
- [#2024](https://github.com/wallabag/wallabag/pull/2024) Update messages.it.yml (@jamiroconca)
|
||||
- [#2029](https://github.com/wallabag/wallabag/pull/2029) Change Travis/Scrutinizer pictures in README (@nicosomb)
|
||||
- [#2028](https://github.com/wallabag/wallabag/pull/2028) Docu for android app (@Strubbl)
|
||||
- [#2022](https://github.com/wallabag/wallabag/pull/2022) Fix pagination bar on small devices (@nicosomb)
|
||||
- [#2017](https://github.com/wallabag/wallabag/pull/2017) Create messages.it.yml (@jamiroconca)
|
||||
- [#2018](https://github.com/wallabag/wallabag/pull/2018) Update config.yml, add italian as available language (@jamiroconca)
|
||||
- [#2019](https://github.com/wallabag/wallabag/pull/2019) Create CraueConfigBundle.it.yml (@jamiroconca)
|
||||
- [#2013](https://github.com/wallabag/wallabag/pull/2013) Fix tags listing (@nicosomb)
|
||||
- [#1976](https://github.com/wallabag/wallabag/pull/1976) Fix filter reading time (@nicosomb)
|
||||
- [#2005](https://github.com/wallabag/wallabag/pull/2005) Fix reading speed not defined when user was created via config page (@nicosomb)
|
||||
- [#2012](https://github.com/wallabag/wallabag/pull/2012) integrate upgrade.rst (@biva)
|
||||
- [#2011](https://github.com/wallabag/wallabag/pull/2011) upgrade.rst (Creation of an upgrade page in the documentation) (@biva)
|
||||
- [#2010](https://github.com/wallabag/wallabag/pull/2010) Set the title via POST /api/entries (@nicosomb)
|
||||
- [#2001](https://github.com/wallabag/wallabag/pull/2001) Fix old branch name urls (@tcitworld)
|
||||
- [#1992](https://github.com/wallabag/wallabag/pull/1992) Update CraueConfigBundle.es.yml (@jami7)
|
||||
- [#1985](https://github.com/wallabag/wallabag/pull/1985) Rights access to the folders of the project (@foxmask)
|
||||
- [#1977](https://github.com/wallabag/wallabag/pull/1977) Es translation (@j0k3r, @jami7)
|
||||
- [#1970](https://github.com/wallabag/wallabag/pull/1970) Fix typos in API documentation (@nicosomb)
|
||||
- [#1969](https://github.com/wallabag/wallabag/pull/1969) Create 3rd Resources chapter in API documentation (@nicosomb)
|
||||
- [#1967](https://github.com/wallabag/wallabag/pull/1967) Add FAQ page in documentation (@nicosomb)
|
||||
|
||||
### 2.0.3 2016/04/22
|
||||
- [#1965](https://github.com/wallabag/wallabag/pull/1965) Prepare release 2.0.3 (@nicosomb)
|
||||
- [#1962](https://github.com/wallabag/wallabag/pull/1962) Update API documentation with cURL examples (@nicosomb)
|
||||
|
||||
### 2.0.2 2016/04/21
|
||||
- [#1948](https://github.com/wallabag/wallabag/pull/1948) Prepare release 2.0.2 (@nicosomb)
|
||||
- [#1957](https://github.com/wallabag/wallabag/pull/1957) Fix translation for Go to your account button after subscription (@nicosomb)
|
||||
- [#1945](https://github.com/wallabag/wallabag/pull/1945) Added some curl examples (@ddeimeke)
|
||||
- [#1954](https://github.com/wallabag/wallabag/pull/1954) Update links in documentation (@nicosomb)
|
||||
- [#1953](https://github.com/wallabag/wallabag/pull/1953) Actualisation des liens morts (Documentation de traduction) (@maxi62330)
|
||||
- [#1942](https://github.com/wallabag/wallabag/pull/1942) Optimize import (@nicosomb)
|
||||
- [#1944](https://github.com/wallabag/wallabag/pull/1944) Update Travis configuration with branches renaming (@nicosomb)
|
||||
|
||||
### 1.9.2 2016/04/18
|
||||
- [#1938](https://github.com/wallabag/wallabag/pull/1938) Display pagination only if we have more than one page (@nicosomb)
|
||||
- [#1935](https://github.com/wallabag/wallabag/pull/1935) Update messages.es.yml (@jami7)
|
||||
- [#1933](https://github.com/wallabag/wallabag/pull/1933) Hide pagination if we only have one entry to display (@nicosomb)
|
||||
- [#1925](https://github.com/wallabag/wallabag/pull/1925) Redirect to homepage if referer is null (@nicosomb)
|
||||
- [#1929](https://github.com/wallabag/wallabag/pull/1929) Change guid and link in RSS feeds to give original entry URL (@nicosomb)
|
||||
- [#1916](https://github.com/wallabag/wallabag/pull/1916) Convert array + phpDoc (@j0k3r)
|
||||
- [#1918](https://github.com/wallabag/wallabag/pull/1918) Improve pagination when user has lot of entries (@nicosomb)
|
||||
- [#1919](https://github.com/wallabag/wallabag/pull/1919) Remove useless dependancy (@nicosomb)
|
||||
- [#1911](https://github.com/wallabag/wallabag/pull/1911) add title hover on entry titles (@tcitworld)
|
||||
- [#1915](https://github.com/wallabag/wallabag/pull/1915) Fix doc links (@j0k3r)
|
||||
|
||||
### 2.0.1 2016/04/11
|
||||
- [#1912](https://github.com/wallabag/wallabag/pull/1912) Move setup config outside setupAdmin (@j0k3r)
|
||||
- [#1909](https://github.com/wallabag/wallabag/pull/1909) Prepare release 2.0.1 (@nicosomb)
|
||||
- [#1902](https://github.com/wallabag/wallabag/pull/1902) Add changelog (@nicosomb)
|
||||
- [#1823](https://github.com/wallabag/wallabag/pull/1823) Translation fa (@j0k3r, @mabkenar)
|
||||
- [#1903](https://github.com/wallabag/wallabag/pull/1903) Force server version to avoid connexion error (@j0k3r)
|
||||
- [#1901](https://github.com/wallabag/wallabag/pull/1901) Update Spanish translation (@j0k3r, @jami7)
|
||||
- [#1887](https://github.com/wallabag/wallabag/pull/1887) Fix duplicate article when added via the bookmarklet (@nicosomb)
|
||||
- [#1895](https://github.com/wallabag/wallabag/pull/1895) All the entries are fetched via GET /api/entries (@nicosomb)
|
||||
- [#1900](https://github.com/wallabag/wallabag/pull/1900) Remove empty portugese documentation (@nicosomb)
|
||||
- [#1899](https://github.com/wallabag/wallabag/pull/1899) Add documentation about importing large file into nginx (@nicosomb)
|
||||
- [#1898](https://github.com/wallabag/wallabag/pull/1898) Fix estimated reading time in material view (@nicosomb)
|
||||
- [#1896](https://github.com/wallabag/wallabag/pull/1896) Fix internal settings (@nicosomb)
|
||||
- [#1894](https://github.com/wallabag/wallabag/pull/1894) Fix documentation link in developer page (@nicosomb)
|
||||
- [#1891](https://github.com/wallabag/wallabag/pull/1891) Fix typo on configuration page (@nicosomb)
|
||||
- [#1824](https://github.com/wallabag/wallabag/pull/1824) Remove SMTP configuration environment overrides (@nicosomb)
|
||||
- [#1879](https://github.com/wallabag/wallabag/pull/1879) Move tag form in Material theme (@nicosomb)
|
||||
- [#1884](https://github.com/wallabag/wallabag/pull/1884) Change the installation method in issue template (@nicosomb)
|
||||
- [#1804](https://github.com/wallabag/wallabag/pull/1804) Force user-agent for iansommerville.com (@j0k3r)
|
||||
- [#1868](https://github.com/wallabag/wallabag/pull/1868) Remove keyboard shortcut and add tagging rule panel in baggy (@nicosomb)
|
||||
- [#1862](https://github.com/wallabag/wallabag/pull/1862) Add production environment for CLI import (@nicosomb)
|
||||
- [#1861](https://github.com/wallabag/wallabag/pull/1861) Round estimated time and add reading speed for Baggy (@nicosomb)
|
||||
- [#1856](https://github.com/wallabag/wallabag/pull/1856) Documentation about wallabag v1 CLI import (@nicosomb)
|
||||
- [#1840](https://github.com/wallabag/wallabag/pull/1840) Fix Archive page title translation (@nicosomb)
|
||||
|
||||
### 2.0.0 2016/04/03
|
||||
- [#1835](https://github.com/wallabag/wallabag/pull/1835) :rocket: Prepare v2.0.0 :birthday: (@nicosomb)
|
||||
- [#1838](https://github.com/wallabag/wallabag/pull/1838) Hide search buttons (@nicosomb)
|
||||
- [#1832](https://github.com/wallabag/wallabag/pull/1832) Check selected PDO driver on install (@j0k3r)
|
||||
- [#3](https://github.com/wallabag/wallabag/pull/3) Fix simple quote (@j0k3r)
|
||||
- [#1822](https://github.com/wallabag/wallabag/pull/1822) Update messages.es.yml (@jami7)
|
||||
- [#1820](https://github.com/wallabag/wallabag/pull/1820) Refacto wallabag import (@j0k3r)
|
||||
- [#1821](https://github.com/wallabag/wallabag/pull/1821) Update messages.es.yml (@jami7)
|
||||
- [#1805](https://github.com/wallabag/wallabag/pull/1805) Fix #1768 Split tags with commas from UI (@j0k3r)
|
||||
- [#1819](https://github.com/wallabag/wallabag/pull/1819) Some cleanup (@j0k3r)
|
||||
- [#1818](https://github.com/wallabag/wallabag/pull/1818) add migration docs (@tcitworld)
|
||||
- [#1817](https://github.com/wallabag/wallabag/pull/1817) Correct translation (@mruminski)
|
||||
- [#1813](https://github.com/wallabag/wallabag/pull/1813) [v2] German translation (@wallabag)
|
||||
- [#1807](https://github.com/wallabag/wallabag/pull/1807) fix typo diaspora* share (@nikaro)
|
||||
- [#1806](https://github.com/wallabag/wallabag/pull/1806) Translate flash message in baggy theme (@nicosomb)
|
||||
- [#1774](https://github.com/wallabag/wallabag/pull/1774) Switch to keys in translated files (@j0k3r)
|
||||
- [#1767](https://github.com/wallabag/wallabag/pull/1767) Setting for reading time (@nicosomb)
|
||||
- [#1799](https://github.com/wallabag/wallabag/pull/1799) fix tabs display on mobile view (@tcitworld)
|
||||
- [#1791](https://github.com/wallabag/wallabag/pull/1791) fix api properties and typo (@tcitworld)
|
||||
- [#1797](https://github.com/wallabag/wallabag/pull/1797) Don't add entry through API if it already exists (@tcitworld)
|
||||
- [#1792](https://github.com/wallabag/wallabag/pull/1792) add tests on user in API responses (@tcitworld)
|
||||
- [#1786](https://github.com/wallabag/wallabag/pull/1786) API shows just what needed for user (@tcitworld)
|
||||
- [#1784](https://github.com/wallabag/wallabag/pull/1784) add refresh-token grant-type (@tcitworld)
|
||||
|
||||
### 2.0.0-beta.2 2016/03/12
|
||||
- [#1775](https://github.com/wallabag/wallabag/pull/1775) Some fixes (@j0k3r)
|
||||
- [#1776](https://github.com/wallabag/wallabag/pull/1776) clarify that wllbg is compatible php 7 (@tcitworld)
|
||||
- [#1763](https://github.com/wallabag/wallabag/pull/1763) Prepare files for 2.0.0-beta.2 (@nicosomb)
|
||||
- [#1771](https://github.com/wallabag/wallabag/pull/1771) Docker timezone (@DjayDev)
|
||||
- [#1766](https://github.com/wallabag/wallabag/pull/1766) Fix #1756: Added 'wallabag' in page title (@nicosomb)
|
||||
- [#1762](https://github.com/wallabag/wallabag/pull/1762) Change documentation links in quickstart (@nicosomb)
|
||||
- [#1761](https://github.com/wallabag/wallabag/pull/1761) V2 api version (@tcitworld, @ZeddZull)
|
||||
- [#1675](https://github.com/wallabag/wallabag/pull/1675) Ability to create new client for the API (@j0k3r, @nicosomb, @tcitworld)
|
||||
- [#1750](https://github.com/wallabag/wallabag/pull/1750) Documentation about filters / Quickstart changes (@nicosomb)
|
||||
- [#1670](https://github.com/wallabag/wallabag/pull/1670) Mark all imported articles as read (@j0k3r, @tcitworld)
|
||||
- [#1754](https://github.com/wallabag/wallabag/pull/1754) Add starred & archive properties to API (@j0k3r, @tcitworld)
|
||||
- [#1753](https://github.com/wallabag/wallabag/pull/1753) Doc: fix typo in php-hash ext name (@Horgix)
|
||||
- [#1745](https://github.com/wallabag/wallabag/pull/1745) V2 spanish translation (@benages)
|
||||
- [#1743](https://github.com/wallabag/wallabag/pull/1743) Releasing documentation (@nicosomb)
|
||||
- [#1615](https://github.com/wallabag/wallabag/pull/1615) Added RELEASE_PROCESS document (@bdunogier)
|
||||
- [#1740](https://github.com/wallabag/wallabag/pull/1740) minor typofix again (@goofy-bz)
|
||||
- [#1742](https://github.com/wallabag/wallabag/pull/1742) Add the way to install (package or composer) (@nicosomb)
|
||||
|
||||
### 2.0.0-beta.1 2016/03/01
|
||||
- [#1738](https://github.com/wallabag/wallabag/pull/1738) Prepare wallabag for first beta :rocket: (@nicosomb)
|
||||
- [#1739](https://github.com/wallabag/wallabag/pull/1739) minor typofix + missing quotes (@goofy-bz)
|
||||
- [#1736](https://github.com/wallabag/wallabag/pull/1736) Update Capistrano libraries with last versions (@nicosomb)
|
||||
- [#1734](https://github.com/wallabag/wallabag/pull/1734) Remove extra definition (@j0k3r)
|
||||
- [#1732](https://github.com/wallabag/wallabag/pull/1732) Adding Danish translations to Wallabag v2 (@mjjzf)
|
||||
- [#1731](https://github.com/wallabag/wallabag/pull/1731) Fix: #1703: authentication for PR by external contributors (@nicosomb)
|
||||
- [#1653](https://github.com/wallabag/wallabag/pull/1653) V2 annotator comments (@nicosomb, @tcitworld)
|
||||
- [#1728](https://github.com/wallabag/wallabag/pull/1728) Fix #1717: Change remove tag icon in entry view with material theme (@wallabag)
|
||||
- [#1723](https://github.com/wallabag/wallabag/pull/1723) Make English welcome message more natural (@shtrom)
|
||||
- [#1712](https://github.com/wallabag/wallabag/pull/1712) Fix #1711: Update CONTRIBUTING file (@nicosomb)
|
||||
- [#1716](https://github.com/wallabag/wallabag/pull/1716) Fix #1603: Enhance requirements in InstallCommand (@j0k3r, @tcitworld)
|
||||
- [#1710](https://github.com/wallabag/wallabag/pull/1710) Fix #811: Display a human message when graby fails to fetch articles (@nicosomb)
|
||||
- [#1715](https://github.com/wallabag/wallabag/pull/1715) Fix #1694 #1669 #1684: Add contributors and 3rd party libraries (@wallabag)
|
||||
- [#1714](https://github.com/wallabag/wallabag/pull/1714) Change wording for create a new user (@j0k3r)
|
||||
- [#1683](https://github.com/wallabag/wallabag/pull/1683) Demonstration mode to prevent password changes (@j0k3r)
|
||||
- [#1701](https://github.com/wallabag/wallabag/pull/1701) Fix #1351: add maintenance mode (@j0k3r)
|
||||
- [#1709](https://github.com/wallabag/wallabag/pull/1709) Fix #1708: typos in french documentation (@wallabag)
|
||||
- [#1702](https://github.com/wallabag/wallabag/pull/1702) Added Piwik implementation (@j0k3r)
|
||||
- [#1707](https://github.com/wallabag/wallabag/pull/1707) typo in french documentation (@nicosomb)
|
||||
- [#1706](https://github.com/wallabag/wallabag/pull/1706) Documentation for wallabag installation (@tcitworld, @nicosomb)
|
||||
- [#1705](https://github.com/wallabag/wallabag/pull/1705) French translation for documentation (@nicosomb)
|
||||
- [#1699](https://github.com/wallabag/wallabag/pull/1699) Move assignTagsToEntry in ContentProxy helper (@j0k3r)
|
||||
- [#1700](https://github.com/wallabag/wallabag/pull/1700) Fix #1551 - Redirect to the last page when current page is out of range (@delyriand)
|
||||
- [#1693](https://github.com/wallabag/wallabag/pull/1693) Fix #1691 create ISSUE_TEMPLATE and PULL_REQUEST_TEMPLATE (@wallabag)
|
||||
- [#1696](https://github.com/wallabag/wallabag/pull/1696) Add some missing french translations (@wallabag)
|
||||
- [#1688](https://github.com/wallabag/wallabag/pull/1688) Create messages.pl.yml (@mruminski)
|
||||
- [#1690](https://github.com/wallabag/wallabag/pull/1690) translate estimated time minutes (@tcitworld)
|
||||
- [#1689](https://github.com/wallabag/wallabag/pull/1689) Create validators.pl.yml (@mruminski)
|
||||
- [#1686](https://github.com/wallabag/wallabag/pull/1686) Polish translation (@mruminski)
|
||||
- [#1687](https://github.com/wallabag/wallabag/pull/1687) Translated another two files into romanian. (@0wnrepo)
|
||||
- [#1681](https://github.com/wallabag/wallabag/pull/1681) two more Persian translated files (@mabkenar)
|
||||
- [#1679](https://github.com/wallabag/wallabag/pull/1679) Documentation about translation (@wallabag)
|
||||
- [#1680](https://github.com/wallabag/wallabag/pull/1680) Update Capistrano configuration for symfony3 (@wallabag)
|
||||
- [#1678](https://github.com/wallabag/wallabag/pull/1678) Translation file for the 'Romanian' language. Also recognised by ro_RO. Known in romanian as "Română". (@0wnrepo)
|
||||
- [#1676](https://github.com/wallabag/wallabag/pull/1676) Translation for Persian (@mabkenar)
|
||||
- [#1668](https://github.com/wallabag/wallabag/pull/1668) Few updates (@j0k3r)
|
||||
- [#1672](https://github.com/wallabag/wallabag/pull/1672) improve baggy theme (add new tag panel) (@tcitworld)
|
||||
- [#1671](https://github.com/wallabag/wallabag/pull/1671) display pictures properly (@tcitworld)
|
||||
- [#1658](https://github.com/wallabag/wallabag/pull/1658) import tags from v1 (#1657) (@tcitworld)
|
||||
- [#1656](https://github.com/wallabag/wallabag/pull/1656) fix labels on new user prompt (@tcitworld)
|
||||
- [#1654](https://github.com/wallabag/wallabag/pull/1654) fix #1636 (@tcitworld)
|
||||
- [#1663](https://github.com/wallabag/wallabag/pull/1663) remove tag from entry #1377 (@tcitworld)
|
||||
- [#1665](https://github.com/wallabag/wallabag/pull/1665) lots of diverse translation stuff & some typos (@tcitworld)
|
||||
- [#1666](https://github.com/wallabag/wallabag/pull/1666) reimport v1 entries if they were not fetched (@tcitworld)
|
||||
- [#1659](https://github.com/wallabag/wallabag/pull/1659) Update README.md with the environment parameters (@0wnrepo)
|
||||
- [#1651](https://github.com/wallabag/wallabag/pull/1651) Test if some keys are missing in v2 import (@wallabag)
|
||||
- [#1650](https://github.com/wallabag/wallabag/pull/1650) Exported entries were added twice in export file (@wallabag)
|
||||
- [#1652](https://github.com/wallabag/wallabag/pull/1652) User created via wallabag:install is now a SUPER_ADMIN :crown: (@wallabag)
|
||||
- [#1648](https://github.com/wallabag/wallabag/pull/1648) Fix project version in installation command (@lologhi)
|
||||
- [#1647](https://github.com/wallabag/wallabag/pull/1647) Force prod env on project creation (@j0k3r)
|
||||
- [#1633](https://github.com/wallabag/wallabag/pull/1633) Exporttxt (@j0k3r, @tcitworld)
|
||||
- [#1642](https://github.com/wallabag/wallabag/pull/1642) Unescape content for Material card (@j0k3r)
|
||||
- [#1644](https://github.com/wallabag/wallabag/pull/1644) Fix #1622: parameter for FosUser confirmation (@wallabag)
|
||||
- [#1645](https://github.com/wallabag/wallabag/pull/1645) Fix #1643: fix the way to load the HTML template in 2factor auth (@wallabag)
|
||||
- [#1612](https://github.com/wallabag/wallabag/pull/1612) Settings page (@j0k3r)
|
||||
- [#1641](https://github.com/wallabag/wallabag/pull/1641) Update import.rst to fix a doc typo (@nicosomb)
|
||||
- [#1601](https://github.com/wallabag/wallabag/pull/1601) [#1590] Add JSON import from wallabag v2 (@wallabag)
|
||||
- [#1605](https://github.com/wallabag/wallabag/pull/1605) [#1604] First draft to fix SensioLabsInsight report (@wallabag)
|
||||
- [#1639](https://github.com/wallabag/wallabag/pull/1639) Fix #1635: change database name for test environments (mysql/pgsql) (@wallabag)
|
||||
- [#1630](https://github.com/wallabag/wallabag/pull/1630) Add @GitterHQ badge on README (@nicosomb)
|
||||
- [#1629](https://github.com/wallabag/wallabag/pull/1629) fix #1620 and introduce new parameters to export (@tcitworld)
|
||||
- [#1628](https://github.com/wallabag/wallabag/pull/1628) Add Turkish translation (@ogunkarakus)
|
||||
- [#1625](https://github.com/wallabag/wallabag/pull/1625) [#1621] Add default address for FosUser (@nicosomb)
|
||||
- [#1619](https://github.com/wallabag/wallabag/pull/1619) Move public assets for themes (@j0k3r)
|
||||
- [#1618](https://github.com/wallabag/wallabag/pull/1618) Updated version in README (@wallabag)
|
||||
|
||||
### 2.0.0-alpha.2 2016/01/22
|
||||
- [#1614](https://github.com/wallabag/wallabag/pull/1614) Few fixes (@j0k3r)
|
||||
- [#1565](https://github.com/wallabag/wallabag/pull/1565) Use HTML email for 2FA (@j0k3r)
|
||||
- [#1610](https://github.com/wallabag/wallabag/pull/1610) Disable xdebug all the time (@j0k3r)
|
||||
- [#1606](https://github.com/wallabag/wallabag/pull/1606) Remove tag relation when removing an entry (@j0k3r)
|
||||
- [#1607](https://github.com/wallabag/wallabag/pull/1607) Ignore composer.lock (@j0k3r)
|
||||
- [#1599](https://github.com/wallabag/wallabag/pull/1599) Add configuration for portuguese documentation (@wallabag)
|
||||
- [#1594](https://github.com/wallabag/wallabag/pull/1594) Create index.rst (@araujo0205)
|
||||
- [#1587](https://github.com/wallabag/wallabag/pull/1587) Use translator interface instead of final class (@j0k3r)
|
||||
- [#1584](https://github.com/wallabag/wallabag/pull/1584) some cleanup (@wallabag)
|
||||
- [#1564](https://github.com/wallabag/wallabag/pull/1564) Remove Flattr references (@wallabag)
|
||||
- [#1583](https://github.com/wallabag/wallabag/pull/1583) Fix `findOneByUrl` side effect in tests (@j0k3r)
|
||||
- [#1524](https://github.com/wallabag/wallabag/pull/1524) Upgrade to Symfony 3.0 (@j0k3r)
|
||||
- [#1560](https://github.com/wallabag/wallabag/pull/1560) Fix #1501 Quickstart for beginners (@nicosomb)
|
||||
- [#1574](https://github.com/wallabag/wallabag/pull/1574) Fix typo and set version in the README (@jjanvier)
|
||||
- [#1561](https://github.com/wallabag/wallabag/pull/1561) Add basic docker-compose configuration (@FabienM)
|
||||
- [#1563](https://github.com/wallabag/wallabag/pull/1563) #1394 Fixed 'mark as read' and 'mark as unread' links (@nicosomb)
|
||||
- [#1562](https://github.com/wallabag/wallabag/pull/1562) add import link on baggy theme (@nicosomb)
|
||||
- [#1558](https://github.com/wallabag/wallabag/pull/1558) [v2] documentation cleaning (@wallabag)
|
||||
- [#1559](https://github.com/wallabag/wallabag/pull/1559) Installation & configuration of Doctrine Migrations (@j0k3r)
|
||||
|
||||
### 2.0.0-alpha.1 2016/01/07
|
||||
- [#1493](https://github.com/wallabag/wallabag/pull/1493) v2 – 1st draft for Pocket import via API & Wallabag v1 import (@nicosomb, @j0k3r)
|
||||
- [#1553](https://github.com/wallabag/wallabag/pull/1553) Hide export button if we are not on entries list (@nicosomb)
|
||||
- [#1545](https://github.com/wallabag/wallabag/pull/1545) v2 – Remove user reference in tag (@j0k3r)
|
||||
- [#1546](https://github.com/wallabag/wallabag/pull/1546) v2 – Ability to reload an entry (@j0k3r)
|
||||
- [#1547](https://github.com/wallabag/wallabag/pull/1547) v2 – Fix wrong if when deleting an entry (@j0k3r)
|
||||
- [#1544](https://github.com/wallabag/wallabag/pull/1544) v2 – Add custom email for 2FA (@j0k3r)
|
||||
- [#1540](https://github.com/wallabag/wallabag/pull/1540) v2 – Don't redirect to the content page after deletion (@j0k3r)
|
||||
- [#1542](https://github.com/wallabag/wallabag/pull/1542) v2 – Avoid multiple tag creation (@j0k3r)
|
||||
- [#1488](https://github.com/wallabag/wallabag/pull/1488) Slug for tags (@wallabag)
|
||||
- [#1537](https://github.com/wallabag/wallabag/pull/1537) Updated composer.lock (@bdunogier)
|
||||
- [#1529](https://github.com/wallabag/wallabag/pull/1529) changed table name for tagging rule (@nicosomb)
|
||||
- [#1478](https://github.com/wallabag/wallabag/pull/1478) Rule based tags (@K-Phoen)
|
||||
- [#1523](https://github.com/wallabag/wallabag/pull/1523) Typo (@tcitworld)
|
||||
- [#1518](https://github.com/wallabag/wallabag/pull/1518) Set SMTP from environment variables (@mathbruyen)
|
||||
- [#1422](https://github.com/wallabag/wallabag/pull/1422) V2 – Export entries (@j0k3r, @tcitworld)
|
||||
- [#1500](https://github.com/wallabag/wallabag/pull/1500) Fix quote strategy for reserved keyword in Postgres (@j0k3r)
|
||||
- [#1510](https://github.com/wallabag/wallabag/pull/1510) v2 – Fix some deprecated for Symfony3 (@j0k3r)
|
||||
- [#1505](https://github.com/wallabag/wallabag/pull/1505) Add graby log (@j0k3r)
|
||||
- [#1495](https://github.com/wallabag/wallabag/pull/1495) add docs (@wallabag)
|
||||
- [#1496](https://github.com/wallabag/wallabag/pull/1496) fix #1005 V2 redirect after deletion (@wallabag)
|
||||
- [#1491](https://github.com/wallabag/wallabag/pull/1491) Add german translation. (@jlnostr)
|
||||
- [#1446](https://github.com/wallabag/wallabag/pull/1446) [WIP] language selection on config screen (@j0k3r, @nicosomb)
|
||||
- [#1484](https://github.com/wallabag/wallabag/pull/1484) 2factor authentication via email (@wallabag)
|
||||
- [#1475](https://github.com/wallabag/wallabag/pull/1475) V2 material (@modos189)
|
||||
- [#1472](https://github.com/wallabag/wallabag/pull/1472) fix #1470: clean material theme (@wallabag)
|
||||
- [#1471](https://github.com/wallabag/wallabag/pull/1471) implement bookmarklet (@wallabag)
|
||||
- [#1468](https://github.com/wallabag/wallabag/pull/1468) fix bug on detect active theme (@wallabag)
|
||||
- [#1464](https://github.com/wallabag/wallabag/pull/1464) fix type hint for User (@wallabag)
|
||||
- [#1436](https://github.com/wallabag/wallabag/pull/1436) Public registration & oAuth2 \o/ (@j0k3r, @nicosomb)
|
||||
- [#1461](https://github.com/wallabag/wallabag/pull/1461) fix #1433: add test for removeWww Twig Extension (@wallabag)
|
||||
- [#1459](https://github.com/wallabag/wallabag/pull/1459) fix #1457 & update materialize (@tcitworld)
|
||||
- [#1447](https://github.com/wallabag/wallabag/pull/1447) typo (@tcitworld)
|
||||
- [#1441](https://github.com/wallabag/wallabag/pull/1441) Add french translation (@nicosomb)
|
||||
- [#1437](https://github.com/wallabag/wallabag/pull/1437) some cleanup on material theme (@nicosomb)
|
||||
- [#1439](https://github.com/wallabag/wallabag/pull/1439) fix Capistrano configuration (@nicosomb)
|
||||
- [#1440](https://github.com/wallabag/wallabag/pull/1440) fix #1433: remove www. on entries view (@nicosomb)
|
||||
- [#1434](https://github.com/wallabag/wallabag/pull/1434) Add multiple database tests on Travis (@j0k3r)
|
||||
- [#1435](https://github.com/wallabag/wallabag/pull/1435) Enabled created user from Config (@j0k3r)
|
||||
- [#1429](https://github.com/wallabag/wallabag/pull/1429) V2 – Handle language in entry (@j0k3r)
|
||||
2
Capfile
2
Capfile
@ -7,6 +7,8 @@ require 'capistrano/setup'
|
||||
# Include default deployment tasks
|
||||
require 'capistrano/deploy'
|
||||
|
||||
require 'capistrano/composer'
|
||||
require 'capistrano/file-permissions'
|
||||
require 'capistrano/symfony'
|
||||
|
||||
# Load custom tasks from `lib/capistrano/tasks` if you have any defined
|
||||
|
||||
3
Gemfile
3
Gemfile
@ -1,5 +1,6 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem 'capistrano', '~> 3.4'
|
||||
gem 'capistrano-composer'
|
||||
gem 'capistrano-symfony', '~> 1.0.0.rc1'
|
||||
gem 'capistrano-composer', '~> 0.0.3'
|
||||
gem 'capistrano-file-permissions'
|
||||
|
||||
@ -29,8 +29,9 @@ PLATFORMS
|
||||
|
||||
DEPENDENCIES
|
||||
capistrano (~> 3.4)
|
||||
capistrano-composer (~> 0.0.3)
|
||||
capistrano-composer
|
||||
capistrano-file-permissions
|
||||
capistrano-symfony (~> 1.0.0.rc1)
|
||||
|
||||
BUNDLED WITH
|
||||
1.11.2
|
||||
1.13.5
|
||||
|
||||
18
Gruntfile.js
18
Gruntfile.js
@ -10,10 +10,6 @@ module.exports = function (grunt) {
|
||||
postcss: {
|
||||
material: {
|
||||
options: {
|
||||
map: {
|
||||
inline: false,
|
||||
},
|
||||
|
||||
processors: [
|
||||
require('pixrem')(),
|
||||
require('autoprefixer')({ browsers: 'last 2 versions' }),
|
||||
@ -25,10 +21,6 @@ module.exports = function (grunt) {
|
||||
},
|
||||
baggy: {
|
||||
options: {
|
||||
map: {
|
||||
inline: false,
|
||||
},
|
||||
|
||||
processors: [
|
||||
require('pixrem')(),
|
||||
require('autoprefixer')({ browsers: 'last 2 versions' }),
|
||||
@ -95,19 +87,13 @@ module.exports = function (grunt) {
|
||||
files: {
|
||||
'<%= releaseDir %>/themes/material/js/material.min.js':
|
||||
['<%= buildDir %>/material.browser.js'],
|
||||
},
|
||||
options: {
|
||||
sourceMap: true,
|
||||
},
|
||||
}
|
||||
},
|
||||
baggy: {
|
||||
files: {
|
||||
'<%= releaseDir %>/themes/baggy/js/baggy.min.js':
|
||||
['<%= buildDir %>/baggy.browser.js'],
|
||||
},
|
||||
options: {
|
||||
sourceMap: true,
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
copy: {
|
||||
|
||||
46
Makefile
Executable file
46
Makefile
Executable file
@ -0,0 +1,46 @@
|
||||
TMP_FOLDER=/tmp
|
||||
RELEASE_FOLDER=wllbg-release
|
||||
|
||||
ifndef ENV
|
||||
ENV=prod
|
||||
endif
|
||||
|
||||
help: ## Display this help menu
|
||||
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
||||
|
||||
clean: ## Clear the application cache
|
||||
@rm -rf var/cache/*
|
||||
|
||||
install: ## Install wallabag with the latest version
|
||||
@sh scripts/install.sh $(ENV)
|
||||
|
||||
update: ## Update the wallabag installation to the latest version
|
||||
@sh scripts/update.sh $(ENV)
|
||||
|
||||
dev: ## Install the latest dev version
|
||||
@sh scripts/dev.sh
|
||||
|
||||
run: ## Run the wallabag built-in server
|
||||
@php bin/console server:run --env=$(ENV)
|
||||
|
||||
build: ## Run grunt
|
||||
@grunt
|
||||
|
||||
test: ## Launch wallabag testsuite
|
||||
@if [ ! -d "vendor/phpunit" ]; then composer install; fi
|
||||
@ant prepare && vendor/phpunit/phpunit/phpunit -v
|
||||
|
||||
release: ## Create a package. Need a VERSION parameter (eg: `make release VERSION=master`).
|
||||
ifndef VERSION
|
||||
$(error VERSION is not set)
|
||||
endif
|
||||
@sh scripts/release.sh $(VERSION) $(TMP_FOLDER) $(RELEASE_FOLDER) $(ENV)
|
||||
|
||||
travis: ## Make some stuff for Travis-CI
|
||||
|
||||
deploy: ## Deploy wallabag
|
||||
@bundle exec cap staging deploy
|
||||
|
||||
.PHONY: help clean install update build test release travis deploy run dev
|
||||
|
||||
.DEFAULT_GOAL := install
|
||||
17
README.md
17
README.md
@ -6,23 +6,22 @@
|
||||
wallabag is a self hostable application allowing you to not miss any content anymore.
|
||||
Click, save and read it when you can. It extracts content so that you can read it when you have time.
|
||||
|
||||
More informations on our website: [wallabag.org](https://wallabag.org)
|
||||
More information on our website: [wallabag.org](https://wallabag.org).
|
||||
|
||||

|
||||
|
||||
# Install wallabag
|
||||
Please read [the documentation to see the wallabag requirements](http://doc.wallabag.org/en/master/user/installation.html#requirements).
|
||||
|
||||
If you don't have it yet, please [install composer](https://getcomposer.org/download/) or be sure to use Composer 1.2 (`composer selfupdate` can help you about that). Read [our documentation](http://doc.wallabag.org) to have more information about installation.
|
||||
Then you can install wallabag by executing the following commands:
|
||||
|
||||
```
|
||||
git clone https://github.com/wallabag/wallabag.git
|
||||
cd wallabag
|
||||
git checkout 2.1.1
|
||||
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||
php bin/console wallabag:install --env=prod
|
||||
php bin/console server:run --env=prod
|
||||
git clone https://github.com/wallabag/wallabag.git
|
||||
cd wallabag && make install
|
||||
make run
|
||||
```
|
||||
|
||||
## License
|
||||
# License
|
||||
Copyright © 2013-2016 Nicolas Lœuillet <nicolas@loeuillet.org>
|
||||
This work is free. You can redistribute it and/or modify it under the
|
||||
terms of the MIT License. See the COPYING file for more details.
|
||||
|
||||
@ -1,47 +1,45 @@
|
||||
## Definition
|
||||
|
||||
A release is mostly a git tag of http://github.com/wallabag/wallabag, following [semantic versioning](http://semver.org).
|
||||
The last release at the time of writing is 2.0.0-alpha.2, from the v2 branch.
|
||||
|
||||
### Steps to release
|
||||
|
||||
During this documentation, we assume the release is `release-2.0.0-beta.1`.
|
||||
During this documentation, we assume the release is `$LAST_WALLABAG_RELEASE`.
|
||||
|
||||
#### Files to edit
|
||||
|
||||
- `app/config/config.yml` (`wallabag_core.version`)
|
||||
- `README.md` (`composer create-project` command)
|
||||
- `docs/en/user/installation.rst` and its translations (`composer create-project` command)
|
||||
- `CHANGELOG.md` (by using this command `github-changes -o wallabag -r wallabag -k YOURGITHUBTOKEN --only-pulls --use-commit-body --title Changelog --date-format YYYY/MM/DD --between-tags 2.0.0-alpha.0...master -n 2.1.3`. [github-changes is available here](https://github.com/lalitkapoor/github-changes))
|
||||
|
||||
#### Create release on GitHub
|
||||
|
||||
- Run these commands to create the tag:
|
||||
|
||||
```
|
||||
git checkout v2
|
||||
git pull origin v2
|
||||
git checkout -b release-2.0.0-beta.1
|
||||
SYMFONY_ENV=prod composer up --no-dev
|
||||
git add --force composer.lock
|
||||
git add README.md
|
||||
git commit -m "Release wallabag 2.0.0-beta.1"
|
||||
git push origin release-2.0.0-beta.1
|
||||
git checkout master
|
||||
git pull origin master
|
||||
git checkout -b release-$LAST_WALLABAG_RELEASE
|
||||
SYMFONY_ENV=prod composer up --no-dev
|
||||
git add --force composer.lock
|
||||
git commit -m "Release wallabag $LAST_WALLABAG_RELEASE"
|
||||
git push origin release-$LAST_WALLABAG_RELEASE
|
||||
```
|
||||
|
||||
- Create a new pull request with this title `DON'T MERGE Release wallabag 2.0.0-beta.1`. This pull request is used to launch builds on Travis-CI.
|
||||
- Run these commands to create the package:
|
||||
- Create a new pull request with this title `DON'T MERGE Release wallabag $LAST_WALLABAG_RELEASE`. This pull request is used to launch builds on Travis-CI.
|
||||
- Run these command to create the package:
|
||||
|
||||
```
|
||||
git clone git@github.com:wallabag/wallabag.git -b release-2.0.0-beta.1 release-2.0.0-beta.1
|
||||
SYMFONY_ENV=prod composer up -d=release-2.0.0-beta.1 --no-dev
|
||||
tar czf wallabag-release-2.0.0-beta.1.tar.gz --exclude="var/*" --exclude=".git" release-2.0.0-beta.1
|
||||
make release master /tmp wllbg-release prod
|
||||
```
|
||||
|
||||
- [Create the new release on GitHub](https://github.com/wallabag/wallabag/releases/new). You have to upload on this page the package.
|
||||
- Delete the `release-2.0.0-beta.1` branch and close the pull request (**DO NOT MERGE IT**).
|
||||
- Delete the `release-$LAST_WALLABAG_RELEASE` branch and close the pull request (**DO NOT MERGE IT**).
|
||||
- Update the URL shortener (used on `wllbg.org` to generate links like `http://wllbg.org/latest-v2-package` or `http://wllbg.org/latest-v2`)
|
||||
- Update [the downloads page](https://github.com/wallabag/wallabag.org/blob/master/content/pages/download.md) on the website (MD5 sum, release date)
|
||||
- Drink a beer!
|
||||
- Update Dockerfile https://github.com/wallabag/docker (and create a new tag)
|
||||
- Update wallabag.org website (downloads, releases and new blog post)
|
||||
- Put the next patch version suffixed with `-dev` in `app/config/config.yml` (`wallabag_core.version`)
|
||||
- Drink a :beer:!
|
||||
|
||||
### `composer.lock`
|
||||
A release tag must contain a `composer.lock` file. It sets which dependencies were available at the time a release was done,
|
||||
|
||||
@ -29,8 +29,13 @@ class Version20160410190541 extends AbstractMigration implements ContainerAwareI
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$this->addSql('ALTER TABLE `'.$this->getTable('entry').'` ADD `uuid` LONGTEXT DEFAULT NULL');
|
||||
$this->addSql("INSERT INTO `".$this->getTable('craue_config_setting')."` (`name`, `value`, `section`) VALUES ('share_public', '1', 'entry')");
|
||||
if ($this->connection->getDatabasePlatform()->getName() == 'postgresql') {
|
||||
$this->addSql('ALTER TABLE "'.$this->getTable('entry').'" ADD uuid UUID DEFAULT NULL');
|
||||
} else {
|
||||
$this->addSql('ALTER TABLE "'.$this->getTable('entry').'" ADD uuid LONGTEXT DEFAULT NULL');
|
||||
}
|
||||
|
||||
$this->addSql("INSERT INTO \"".$this->getTable('craue_config_setting')."\" (name, value, section) VALUES ('share_public', '1', 'entry')");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -40,7 +45,7 @@ class Version20160410190541 extends AbstractMigration implements ContainerAwareI
|
||||
{
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() != 'sqlite', 'This down migration can\'t be executed on SQLite databases, because SQLite don\'t support DROP COLUMN.');
|
||||
|
||||
$this->addSql('ALTER TABLE `'.$this->getTable('entry').'` DROP `uuid`');
|
||||
$this->addSql("DELETE FROM `".$this->getTable('craue_config_setting')."` WHERE `name` = 'share_public'");
|
||||
$this->addSql('ALTER TABLE "'.$this->getTable('entry').'" DROP uuid');
|
||||
$this->addSql("DELETE FROM \"".$this->getTable('craue_config_setting')."\" WHERE name = 'share_public'");
|
||||
}
|
||||
}
|
||||
|
||||
@ -29,10 +29,15 @@ class Version20160812120952 extends AbstractMigration implements ContainerAwareI
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
if ($this->connection->getDatabasePlatform()->getName() == 'sqlite') {
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name longtext DEFAULT NULL');
|
||||
} else {
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name longtext COLLATE \'utf8_unicode_ci\' DEFAULT NULL');
|
||||
switch ($this->connection->getDatabasePlatform()->getName()) {
|
||||
case 'sqlite':
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name longtext DEFAULT NULL');
|
||||
break;
|
||||
case 'mysql':
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name longtext COLLATE \'utf8_unicode_ci\' DEFAULT NULL');
|
||||
break;
|
||||
case 'postgresql':
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name text DEFAULT NULL');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -29,8 +29,8 @@ class Version20160911214952 extends AbstractMigration implements ContainerAwareI
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$this->addSql('INSERT INTO `'.$this->getTable('craue_config_setting').'` (`name`, `value`, `section`) VALUES (\'import_with_redis\', \'0\', \'import\')');
|
||||
$this->addSql('INSERT INTO `'.$this->getTable('craue_config_setting').'` (`name`, `value`, `section`) VALUES (\'import_with_rabbitmq\', \'0\', \'import\')');
|
||||
$this->addSql('INSERT INTO "'.$this->getTable('craue_config_setting').'" (name, value, section) VALUES (\'import_with_redis\', \'0\', \'import\')');
|
||||
$this->addSql('INSERT INTO "'.$this->getTable('craue_config_setting').'" (name, value, section) VALUES (\'import_with_rabbitmq\', \'0\', \'import\')');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -29,8 +29,8 @@ class Version20160916201049 extends AbstractMigration implements ContainerAwareI
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('config').' ADD pocket_consumer_key VARCHAR(255) DEFAULT NULL');
|
||||
$this->addSql("DELETE FROM `".$this->getTable('craue_config_setting')."` WHERE `name` = 'pocket_consumer_key';");
|
||||
$this->addSql('ALTER TABLE "'.$this->getTable('config').'" ADD pocket_consumer_key VARCHAR(255) DEFAULT NULL');
|
||||
$this->addSql("DELETE FROM \"".$this->getTable('craue_config_setting')."\" WHERE name = 'pocket_consumer_key';");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -40,7 +40,7 @@ class Version20160916201049 extends AbstractMigration implements ContainerAwareI
|
||||
{
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() == 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
|
||||
|
||||
$this->addSql('ALTER TABLE `'.$this->getTable('config').'` DROP pocket_consumer_key');
|
||||
$this->addSql("INSERT INTO `".$this->getTable('craue_config_setting')."` (`name`, `value`, `section`) VALUES ('pocket_consumer_key', NULL, 'import')");
|
||||
$this->addSql('ALTER TABLE "'.$this->getTable('config').'" DROP pocket_consumer_key');
|
||||
$this->addSql("INSERT INTO \"".$this->getTable('craue_config_setting')."\" (name, value, section) VALUES ('pocket_consumer_key', NULL, 'import')");
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,7 +23,7 @@ export: "eksport"
|
||||
import: "import"
|
||||
misc: "misc"
|
||||
modify_settings: "Gem ændring"
|
||||
piwik_host: Hosting af din side hos Piwik
|
||||
piwik_host: Hosting af din side hos Piwik (uden http:// eller https://)
|
||||
piwik_site_id: ID for din side hos Piwik
|
||||
piwik_enabled: Aktiver Piwik
|
||||
demo_mode_enabled: "Aktiver demo-indstilling? (anvendes kun til wallabags offentlige demo)"
|
||||
|
||||
@ -2,14 +2,14 @@ download_pictures: Bilder auf den Server herunterladen
|
||||
carrot: Teilen zu Carrot aktivieren
|
||||
diaspora_url: Diaspora-URL, sofern der Service aktiviert ist
|
||||
export_epub: ePUB-Export aktivieren
|
||||
export_mobi: .mobi-Export aktivieren
|
||||
export_mobi: mobi-Export aktivieren
|
||||
export_pdf: PDF-Export aktivieren
|
||||
export_csv: CSV-Export aktivieren
|
||||
export_json: JSON-Export aktivieren
|
||||
export_txt: TXT-Export aktivieren
|
||||
export_xml: XML-Export aktivieren
|
||||
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
|
||||
# import_with_redis: Enable Redis to import data asynchronously
|
||||
import_with_rabbitmq: Aktiviere RabbitMQ, um Artikel asynchron zu importieren
|
||||
import_with_redis: Aktiviere Redis, um Artikel asynchron zu importieren
|
||||
shaarli_url: Shaarli-URL, sofern der Service aktiviert ist
|
||||
share_diaspora: Teilen zu Diaspora aktiveren
|
||||
share_mail: Teilen via E-Mail aktiveren
|
||||
@ -23,9 +23,9 @@ export: "Export"
|
||||
import: "Import"
|
||||
misc: "Verschiedenes"
|
||||
modify_settings: "Übernehmen"
|
||||
piwik_host: Host deiner Webseite in Piwik
|
||||
piwik_host: Host deiner Webseite in Piwik (ohne http:// oder https://)
|
||||
piwik_site_id: ID deiner Webseite in Piwik
|
||||
piwik_enabled: Piwik aktivieren
|
||||
demo_mode_enabled: "Test-Modus aktivieren? (nur für die öffentliche wallabag-Demo genutzt)"
|
||||
demo_mode_username: "Test-Benutzer"
|
||||
# share_public: Allow public url for entries
|
||||
share_public: Erlaube eine öffentliche URL für Einträge
|
||||
|
||||
@ -23,7 +23,7 @@ export: "export"
|
||||
import: "import"
|
||||
misc: "misc"
|
||||
modify_settings: "apply"
|
||||
piwik_host: Host of your website in Piwik
|
||||
piwik_host: Host of your website in Piwik (without http:// ou https://)
|
||||
piwik_site_id: ID of your website in Piwik
|
||||
piwik_enabled: Enable Piwik
|
||||
demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
|
||||
|
||||
@ -23,7 +23,7 @@ export: "exportar"
|
||||
import: "importar"
|
||||
misc: "misc"
|
||||
modify_settings: "modificar configuración"
|
||||
piwik_host: Host de tu website de Piwik
|
||||
piwik_host: Host de tu website de Piwik (sin http:// o https://)
|
||||
piwik_site_id: ID de tu website de Piwik
|
||||
piwik_enabled: Activar Piwik
|
||||
demo_mode_enabled: "Activar modo demo (sólo usado para la demo de wallabag)"
|
||||
|
||||
@ -23,7 +23,7 @@ export: "برونسپاری"
|
||||
import: "درونریزی"
|
||||
misc: "غیره"
|
||||
modify_settings: "اعمال"
|
||||
# piwik_host: Host of your website in Piwik
|
||||
# piwik_host: Host of your website in Piwik (without http:// or https://)
|
||||
# piwik_site_id: ID of your website in Piwik
|
||||
# piwik_enabled: Enable Piwik
|
||||
# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
|
||||
|
||||
@ -23,7 +23,7 @@ export: "export"
|
||||
import: "import"
|
||||
misc: "divers"
|
||||
modify_settings: "appliquer"
|
||||
piwik_host: URL de votre site dans Piwik
|
||||
piwik_host: URL de votre site dans Piwik (sans http:// ou https://)
|
||||
piwik_site_id: ID de votre site dans Piwik
|
||||
piwik_enabled: Activer Piwik
|
||||
demo_mode_enabled: "Activer le mode démo ? (utiliser uniquement pour la démo publique de wallabag)"
|
||||
|
||||
@ -23,7 +23,7 @@ export: "esporta"
|
||||
import: "importa"
|
||||
misc: "misc"
|
||||
modify_settings: "applica"
|
||||
piwik_host: Host del tuo sito in Piwik
|
||||
piwik_host: Host del tuo sito in Piwik (senza http:// o https://)
|
||||
piwik_site_id: ID del tuo sito in Piwik
|
||||
piwik_enabled: Abilita Piwik
|
||||
demo_mode_enabled: "Abilita modalità demo ? (usato solo per la demo pubblica di wallabag)"
|
||||
|
||||
@ -23,7 +23,7 @@ export: "expòrt"
|
||||
import: "impòrt"
|
||||
misc: "divèrs"
|
||||
modify_settings: "aplicar"
|
||||
piwik_host: URL de vòstre site dins Piwik
|
||||
piwik_host: URL de vòstre site dins Piwik (sense http:// o https://)
|
||||
piwik_site_id: ID de vòstre site dins Piwik
|
||||
piwik_enabled: Activar Piwik
|
||||
demo_mode_enabled: "Activar lo mode demostracion ? (utilizar solament per la demostracion publica de wallabag)"
|
||||
|
||||
@ -23,7 +23,7 @@ export: "eksport"
|
||||
import: "import"
|
||||
misc: "różne"
|
||||
modify_settings: "zatwierdz"
|
||||
piwik_host: Host twojej strony Piwik
|
||||
piwik_host: Host twojej strony Piwik (bez http:// lub https://)
|
||||
piwik_site_id: ID twojej strony Piwik
|
||||
piwik_enabled: Włacz Piwik
|
||||
demo_mode_enabled: "Włacz tryb demo? (używany wyłącznie dla publicznej demonstracji Wallabag)"
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
download_pictures: Download imagens no seu servidor
|
||||
carrot: Habilitar compartilhamento para o Carrot
|
||||
diaspora_url: URL Diaspora, se o serviço está habilitado
|
||||
export_epub: Habilita exportação para ePub
|
||||
export_mobi: Habilita exportação para .mobi
|
||||
export_pdf: Habilita exportação para PDF
|
||||
export_csv: Habilita exportação para CSV
|
||||
export_json: Habilita exportação para JSON
|
||||
export_txt: Habilita exportação para TXT
|
||||
export_xml: Habilita exportação para XML
|
||||
pocket_consumer_key: Chave de consumidor do Pocket para importar conteúdo (https://getpocket.com/developer/docs/authentication)
|
||||
shaarli_url: URL Shaarli, se o serviço está habilitado
|
||||
share_diaspora: Habilitar compartilhamento para o Diaspora
|
||||
share_mail: Habilitar compartilhamento por e-mail
|
||||
share_shaarli: Habilitar compartilhamento para o Shaarli
|
||||
share_twitter: Habilitar compartilhamento para o Twitter
|
||||
show_printlink: Mostrar um link para imprimir o conteúdo
|
||||
wallabag_support_url: URL de Suporte do wallabag
|
||||
wallabag_url: URL de *sua* instância do wallabag
|
||||
entry: "artigo"
|
||||
export: "exportar"
|
||||
import: "importar"
|
||||
misc: "misc"
|
||||
modify_settings: "aplicar"
|
||||
piwik_host: Host de seu website Piwik
|
||||
piwik_site_id: ID de seu website Piwik
|
||||
piwik_enabled: Habilitar Piwik
|
||||
demo_mode_enabled: "Habilitar modo demo? (somente usado para o demo público do wallabag)"
|
||||
demo_mode_username: "Usuário demo"
|
||||
@ -23,7 +23,7 @@ export: "exportă"
|
||||
import: "importă"
|
||||
misc: "diverse"
|
||||
modify_settings: "aplică"
|
||||
# piwik_host: Host of your website in Piwik
|
||||
# piwik_host: Host of your website in Piwik (without http:// or https://)
|
||||
# piwik_site_id: ID of your website in Piwik
|
||||
# piwik_enabled: Enable Piwik
|
||||
# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
# import: "import"
|
||||
# misc: "misc"
|
||||
# modify_settings: "apply"
|
||||
# piwik_host: Host of your website in Piwik
|
||||
# piwik_host: Host of your website in Piwik (without http:// or https://)
|
||||
# piwik_site_id: ID of your website in Piwik
|
||||
# piwik_enabled: Enable Piwik
|
||||
# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{% extends "WallabagCoreBundle::layout.html.twig" %}
|
||||
|
||||
{% block title %}{% trans %}internal settings{% endtrans %}{% endblock %}
|
||||
{% block title %}{{ 'menu.left.internal_settings'|trans }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
@ -13,7 +13,7 @@
|
||||
<div class="div_tabs col s12">
|
||||
<ul class="tabs">
|
||||
{% for section in sections | craue_sortSections %}
|
||||
<li class="tab col s3"><a href="#set-{{ section }}">{{ section | trans({}, 'CraueConfigBundle') }}</a></li>
|
||||
<li class="tab col s12 m6 l3"><a href="#set-{{ section }}">{{ section | trans({}, 'CraueConfigBundle') }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
Login: "Se connecter"
|
||||
Enter your email address below and we'll send you password reset instructions.: "Renseignez votre adresse email, nous vous enverrons les instructions pour réinitialiser votre mot de passe."
|
||||
Enter your email address below and we'll send you password reset instructions.: "Renseignez votre adresse courriel, nous vous enverrons les instructions pour réinitialiser votre mot de passe."
|
||||
|
||||
@ -0,0 +1,2 @@
|
||||
Login: "Login"
|
||||
Enter your email address below and we'll send you password reset instructions.: "Digite seu endereço de e-mail para enviarmos as instruções de recupeção de sua senha."
|
||||
@ -383,9 +383,11 @@ footer a {
|
||||
max-height: 2em;
|
||||
overflow-y: hidden;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.card-entry-tags li {
|
||||
.card-entry-tags li,
|
||||
.card-entry-tags span {
|
||||
display: inline-block;
|
||||
margin: 0 5px;
|
||||
padding: 5px 12px;
|
||||
@ -394,9 +396,19 @@ footer a {
|
||||
max-height: 2em;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.card-entry-tags a,
|
||||
.card-entry-labels a {
|
||||
text-decoration: none;
|
||||
font-weight: normal;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.nav-panel-add-tag {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.list-entries + .results {
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
@ -509,6 +521,7 @@ img.preview {
|
||||
color: #666;
|
||||
font-size: 0.9em;
|
||||
line-height: 1.7;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.entry h2 a::first-letter {
|
||||
@ -568,7 +581,6 @@ img.preview {
|
||||
|
||||
div.pagination ul {
|
||||
text-align: right;
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
.nb-results {
|
||||
@ -1021,6 +1033,7 @@ blockquote {
|
||||
|
||||
#article_toolbar li {
|
||||
display: inline-block;
|
||||
margin: 3px auto;
|
||||
}
|
||||
|
||||
#article_toolbar a {
|
||||
@ -1178,6 +1191,14 @@ pre code {
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-height: 770px) {
|
||||
.menu.users,
|
||||
.menu.internal,
|
||||
.menu.developer {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 500px) {
|
||||
.entry {
|
||||
width: 100%;
|
||||
|
||||
@ -17,12 +17,11 @@
|
||||
0 = Common
|
||||
========================================================================== */
|
||||
|
||||
@font-face {
|
||||
font-family: icomoon;
|
||||
src: url("../fonts/IcoMoon-Free.ttf");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
/**
|
||||
*
|
||||
* Material icons
|
||||
*
|
||||
*/
|
||||
|
||||
@font-face {
|
||||
font-family: 'Material Icons';
|
||||
@ -62,6 +61,33 @@
|
||||
font-feature-settings: 'liga';
|
||||
}
|
||||
|
||||
/* Rules for sizing the icon. */
|
||||
.material-icons.md-18 { font-size: 18px; }
|
||||
.material-icons.md-24 { font-size: 24px; }
|
||||
.material-icons.md-36 { font-size: 36px; }
|
||||
.material-icons.md-48 { font-size: 48px; }
|
||||
|
||||
/* Rules for using icons as black on a light background. */
|
||||
.material-icons.md-dark { color: rgba(0, 0, 0, 0.54); }
|
||||
.material-icons.md-dark.md-inactive { color: rgba(0, 0, 0, 0.26); }
|
||||
|
||||
/* Rules for using icons as white on a dark background. */
|
||||
.material-icons.md-light { color: rgba(255, 255, 255, 1); }
|
||||
.material-icons.md-light.md-inactive { color: rgba(255, 255, 255, 0.3); }
|
||||
|
||||
/**
|
||||
*
|
||||
* Icomoon icons
|
||||
*
|
||||
*/
|
||||
|
||||
@font-face {
|
||||
font-family: icomoon;
|
||||
src: url("../fonts/IcoMoon-Free.ttf");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
[class^="icon-"]::before,
|
||||
[class*=" icon-"]::before {
|
||||
font-family: icomoon;
|
||||
@ -207,8 +233,17 @@ div.pagination ul .next.disabled {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.page-footer .footer-copyright {
|
||||
min-width: 50px;
|
||||
height: auto !important;
|
||||
line-height: 1em !important;
|
||||
}
|
||||
|
||||
.page-footer .footer-copyright p {
|
||||
display: inline;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
@ -360,6 +395,10 @@ span.numberItems {
|
||||
float: right;
|
||||
}
|
||||
|
||||
nav ul a:hover {
|
||||
background-color: initial;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
* 3 = Filters slider
|
||||
* ========================================================================== */
|
||||
@ -393,13 +432,23 @@ main ul.row {
|
||||
}
|
||||
|
||||
.data .card .card-body {
|
||||
height: 22em;
|
||||
height: 19em;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.card .card-content .card-title {
|
||||
line-height: 32px;
|
||||
max-height: 64px;
|
||||
.card .card-content .card-title,
|
||||
.card .card-reveal .card-title {
|
||||
line-height: 22.8px;
|
||||
max-height: 80px;
|
||||
font-size: 19px;
|
||||
font-family: roberto, "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
color: #313131;
|
||||
}
|
||||
|
||||
.card .card-content .activator,
|
||||
.card .card-reveal .activator {
|
||||
cursor: pointer;
|
||||
font-family: "Material Icons";
|
||||
}
|
||||
|
||||
.card .card-content i.right,
|
||||
@ -407,6 +456,18 @@ main ul.row {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.card .card-content .original {
|
||||
line-height: 24px;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
a.original {
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.card .card-entry-labels {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
@ -414,9 +475,10 @@ main ul.row {
|
||||
max-width: 50%;
|
||||
}
|
||||
|
||||
.card .card-entry-labels li {
|
||||
.card .card-entry-labels li,
|
||||
.card-tag-labels li {
|
||||
margin: 10px 10px 10px auto;
|
||||
padding: 5px 12px 5px 16px;
|
||||
padding: 5px 12px 5px 16px !important;
|
||||
background-color: rgba(0, 151, 167, 0.85);
|
||||
border-radius: 0 3px 3px 0;
|
||||
color: #fff;
|
||||
@ -428,7 +490,7 @@ main ul.row {
|
||||
}
|
||||
|
||||
.card .card-entry-labels-hidden {
|
||||
margin-top: 5px;
|
||||
margin: 2.5px auto;
|
||||
}
|
||||
|
||||
.card .card-entry-labels-hidden li {
|
||||
@ -445,12 +507,22 @@ main ul.row {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.card-entry-tags a,
|
||||
.card-entry-labels a,
|
||||
.card-tag-labels a,
|
||||
.card-entry-labels-hidden a,
|
||||
#list .chip a {
|
||||
text-decoration: none;
|
||||
font-weight: normal;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.card .card-content .estimatedTime {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.card .card-action .original {
|
||||
line-height: 24px;
|
||||
.card .card-action {
|
||||
padding: 10px 5px 10px 15px;
|
||||
}
|
||||
|
||||
.card .card-action ul.links {
|
||||
@ -468,6 +540,11 @@ main ul.row {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.card .card-action .reading-time {
|
||||
display: inline-flex;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.quickstart .card .card-action a,
|
||||
.quickstart .card .card-action a:hover {
|
||||
color: #fff !important;
|
||||
@ -484,7 +561,7 @@ main ul.row {
|
||||
}
|
||||
|
||||
.card .card-image {
|
||||
height: 14em;
|
||||
height: 10em;
|
||||
}
|
||||
|
||||
.card .card-image .preview {
|
||||
@ -512,6 +589,7 @@ main ul.row {
|
||||
|
||||
#article > header > h1 {
|
||||
font-size: 2em;
|
||||
margin: 2.1rem 0 0.68rem;
|
||||
}
|
||||
|
||||
.reader-mode {
|
||||
@ -550,9 +628,21 @@ main ul.row {
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
#article aside .link {
|
||||
color: #000;
|
||||
#article aside .tools {
|
||||
font-size: 0.8em;
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#article aside .tools li {
|
||||
display: inline-flex;
|
||||
vertical-align: middle;
|
||||
margin: auto 10px;
|
||||
}
|
||||
|
||||
#article aside .tools a {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@ -563,10 +653,11 @@ main ul.row {
|
||||
|
||||
#article aside .chip {
|
||||
background-color: rgba(0, 151, 167, 0.85);
|
||||
color: #fff;
|
||||
padding: 0 15px 0 10px;
|
||||
margin: auto 2px;
|
||||
}
|
||||
|
||||
#article aside .chip a,
|
||||
#article aside .chip i {
|
||||
color: #fff;
|
||||
}
|
||||
@ -592,6 +683,17 @@ main ul.row {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
#article {
|
||||
max-width: 35em;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#article > header > h1 {
|
||||
font-size: 1.33em;
|
||||
}
|
||||
|
||||
.reader-mode {
|
||||
width: 240px !important;
|
||||
}
|
||||
@ -625,7 +727,14 @@ main ul.row {
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 993px) and (max-width: 1180px) {
|
||||
@media only screen and (min-width: 1200px) and (max-width: 1650px) {
|
||||
.row .col.l3 {
|
||||
width: 33.33333%;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 993px) and (max-width: 1200px) {
|
||||
.row .col.l1 {
|
||||
width: 25%;
|
||||
margin-left: 0;
|
||||
@ -681,6 +790,14 @@ main ul.row {
|
||||
.nb-results {
|
||||
display: none;
|
||||
}
|
||||
|
||||
main ul.row {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.row .col {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
@ -749,3 +866,7 @@ div.settings div.file-field div {
|
||||
.input-field label.active {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
nav .input-field input {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@ -1,9 +1,4 @@
|
||||
# config valid only for current version of Capistrano
|
||||
lock '3.4.0'
|
||||
|
||||
set :log_path, "var/logs"
|
||||
set :cache_path, "var/cache"
|
||||
set :symfony_console_path, 'bin/console'
|
||||
|
||||
set :application, 'wallabag'
|
||||
set :repo_url, 'git@github.com:wallabag/wallabag.git'
|
||||
@ -11,8 +6,6 @@ set :repo_url, 'git@github.com:wallabag/wallabag.git'
|
||||
set :ssh_user, 'framasoft_bag'
|
||||
server '78.46.248.87', user: fetch(:ssh_user), roles: %w{web app db}
|
||||
|
||||
set :scm, :git
|
||||
|
||||
set :format, :pretty
|
||||
set :log_level, :info
|
||||
# set :log_level, :debug
|
||||
@ -23,4 +16,4 @@ set :linked_files, %w{app/config/parameters.yml}
|
||||
set :linked_dirs, [fetch(:log_path), "var/sessions", "web/uploads", "data"]
|
||||
set :keep_releases, 3
|
||||
|
||||
after 'deploy:finishing', 'deploy:cleanup'
|
||||
after 'deploy:updated', 'symfony:cache:clear'
|
||||
|
||||
@ -30,7 +30,7 @@ framework:
|
||||
assets: ~
|
||||
|
||||
wallabag_core:
|
||||
version: 2.1.1
|
||||
version: 2.1.3
|
||||
paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
|
||||
languages:
|
||||
en: 'English'
|
||||
@ -44,12 +44,15 @@ wallabag_core:
|
||||
es: 'Español'
|
||||
oc: 'Occitan'
|
||||
it: 'Italiano'
|
||||
pt: 'Português'
|
||||
items_on_page: 12
|
||||
theme: material
|
||||
language: en
|
||||
language: '%locale%'
|
||||
rss_limit: 50
|
||||
reading_speed: 1
|
||||
cache_lifetime: 10
|
||||
fetching_error_message: |
|
||||
wallabag can't retrieve contents for this article. Please <a href="http://doc.wallabag.org/en/master/user/errors_during_fetching.html#how-can-i-help-to-fix-that">troubleshoot this issue</a>.
|
||||
|
||||
wallabag_user:
|
||||
registration_enabled: "%fosuser_registration%"
|
||||
@ -77,6 +80,7 @@ doctrine:
|
||||
password: "%database_password%"
|
||||
charset: UTF8
|
||||
path: "%database_path%"
|
||||
unix_socket: "%database_socket%"
|
||||
server_version: 5.6
|
||||
|
||||
orm:
|
||||
|
||||
@ -18,6 +18,7 @@ parameters:
|
||||
database_password: ~
|
||||
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
|
||||
database_table_prefix: wallabag_
|
||||
database_socket: null
|
||||
|
||||
mailer_transport: smtp
|
||||
mailer_host: 127.0.0.1
|
||||
@ -48,5 +49,7 @@ parameters:
|
||||
rabbitmq_password: guest
|
||||
|
||||
# Redis processing
|
||||
redis_scheme: tcp
|
||||
redis_host: localhost
|
||||
redis_port: 6379
|
||||
redis_path: null
|
||||
|
||||
@ -12,6 +12,11 @@ wallabag_user:
|
||||
type: annotation
|
||||
prefix: /users
|
||||
|
||||
wallabag_api:
|
||||
resource: "@WallabagApiBundle/Controller/"
|
||||
type: annotation
|
||||
prefix: /
|
||||
|
||||
wallabag_api:
|
||||
resource: "@WallabagApiBundle/Resources/config/routing.yml"
|
||||
prefix: /
|
||||
|
||||
@ -63,12 +63,11 @@
|
||||
"willdurand/hateoas-bundle": "~1.0",
|
||||
"htmlawed/htmlawed": "~1.1.19",
|
||||
"liip/theme-bundle": "~1.1",
|
||||
"pagerfanta/pagerfanta": "~1.0.3",
|
||||
"lexik/form-filter-bundle": "~5.0",
|
||||
"j0k3r/graby": "~1.0",
|
||||
"friendsofsymfony/user-bundle": "~2.0@dev",
|
||||
"friendsofsymfony/user-bundle": "dev-master#e168ed64629d034cb9cbbffb9d4350f62ef04fab as 2.0.x-dev",
|
||||
"friendsofsymfony/oauth-server-bundle": "^1.5",
|
||||
"stof/doctrine-extensions-bundle": "^1.2@dev",
|
||||
"stof/doctrine-extensions-bundle": "^1.2",
|
||||
"scheb/two-factor-bundle": "~2.0",
|
||||
"grandt/phpepub": "~4.0",
|
||||
"wallabag/php-mobi": "~1.0.0",
|
||||
@ -81,7 +80,6 @@
|
||||
"lexik/maintenance-bundle": "~2.1",
|
||||
"ocramius/proxy-manager": "1.*",
|
||||
"white-october/pagerfanta-bundle": "^1.0",
|
||||
"mouf/nodejs-installer": "~1.0",
|
||||
"php-amqplib/rabbitmq-bundle": "^1.8",
|
||||
"predis/predis": "^1.0",
|
||||
"javibravo/simpleue": "^1.0"
|
||||
@ -100,8 +98,7 @@
|
||||
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
|
||||
],
|
||||
"post-install-cmd": [
|
||||
"@post-cmd"
|
||||
|
||||
7769
composer.lock
generated
Normal file
7769
composer.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -264,7 +264,8 @@ Drittanbieter Ressourcen
|
||||
|
||||
Einige Applikationen oder Bibliotheken nutzen unsere API. Hier ist eine nicht abschließende Aufzählung von ihnen:
|
||||
|
||||
- `Java wrapper for the wallabag API <https://github.com/Strubbl/wallabag-java>`_ von Strubbl.
|
||||
- `Java wrapper for the wallabag API <https://github.com/Strubbl/jWallabag>`_ von Strubbl.
|
||||
- `.NET library for the wallabag v2 API <https://github.com/jlnostr/wallabag-api>`_ von Julian Oster.
|
||||
- `Python API for wallabag <https://github.com/foxmask/wallabag_api>`_ von FoxMaSk, für sein Projekt `Trigger Happy <https://blog.trigger-happy.eu/>`_.
|
||||
- `A plugin <https://github.com/joshp23/ttrss-to-wallabag-v2>`_ entworfen für `Tiny Tiny RSS <https://tt-rss.org/gitlab/fox/tt-rss/wikis/home>`_, das die wallabag v2 API nutzt. Von Josh Panter.
|
||||
- `Golang wrapper for the wallabag API <https://github.com/Strubbl/wallabago>`_ von Strubbl, für sein Projekt `wallabag-stats Graph <https://github.com/Strubbl/wallabag-stats>`_.
|
||||
|
||||
@ -11,7 +11,7 @@ Um den Wartungsmodus zu aktivieren, führe folgendes Kommando aus:
|
||||
|
||||
::
|
||||
|
||||
bin/console lexik:maintenance:lock --no-interaction
|
||||
bin/console lexik:maintenance:lock -e=prod --no-interaction
|
||||
|
||||
Du kannst deine IP Adresse in ``app/config/config.yml`` setzen, wenn du Zugriff zu wallabag haben willst, auch wenn der Wartungsmodus aktiv ist. Zum Beispiel:
|
||||
|
||||
@ -29,4 +29,4 @@ Um den Wartungsmodus zu deaktivieren, führe dieses Kommando aus:
|
||||
|
||||
::
|
||||
|
||||
bin/console lexik:maintenance:unlock
|
||||
bin/console lexik:maintenance:unlock -e=prod
|
||||
|
||||
@ -37,7 +37,7 @@ RabbitMQ stoppen
|
||||
Konfigure RabbitMQ in wallabag
|
||||
------------------------------
|
||||
|
||||
Bearbeite die Datei ``parameters.yml``, um die RabbitMQ Konfiguration einzurichten. Die Standardkonfiguration sollte ok sein:
|
||||
Bearbeite die Datei ``app/config/parameters.yml``, um die RabbitMQ Konfiguration einzurichten. Die Standardkonfiguration sollte ok sein:
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
@ -46,6 +46,10 @@ Bearbeite die Datei ``parameters.yml``, um die RabbitMQ Konfiguration einzuricht
|
||||
rabbitmq_user: guest
|
||||
rabbitmq_password: guest
|
||||
|
||||
Enable RabbitMQ in wallabag
|
||||
---------------------------
|
||||
|
||||
In internal settings, in the **Import** section, enable RabbitMQ (with the value 1).
|
||||
|
||||
Starte den RabbitMQ Consumer
|
||||
----------------------------
|
||||
@ -55,23 +59,23 @@ Abhängig von welchem Service du importieren möchtest, solltest du einen Cron J
|
||||
.. code:: bash
|
||||
|
||||
# for Pocket import
|
||||
bin/console rabbitmq:consumer import_pocket -w
|
||||
bin/console rabbitmq:consumer -e=prod import_pocket -w
|
||||
|
||||
# for Readability import
|
||||
bin/console rabbitmq:consumer import_readability -w
|
||||
bin/console rabbitmq:consumer -e=prod import_readability -w
|
||||
|
||||
# for Instapaper import
|
||||
bin/console rabbitmq:consumer import_instapaper -w
|
||||
bin/console rabbitmq:consumer -e=prod import_instapaper -w
|
||||
|
||||
# for wallabag v1 import
|
||||
bin/console rabbitmq:consumer import_wallabag_v1 -w
|
||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w
|
||||
|
||||
# for wallabag v2 import
|
||||
bin/console rabbitmq:consumer import_wallabag_v2 -w
|
||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w
|
||||
|
||||
# for Firefox import
|
||||
bin/console rabbitmq:consumer import_firefox -w
|
||||
bin/console rabbitmq:consumer -e=prod import_firefox -w
|
||||
|
||||
# for Chrome import
|
||||
bin/console rabbitmq:consumer import_chrome -w
|
||||
bin/console rabbitmq:consumer -e=prod import_chrome -w
|
||||
|
||||
|
||||
@ -28,13 +28,17 @@ Der Redis Service läuft eventuell schon direkt nach der Installation. Falls nic
|
||||
Konfigure Redis in wallabag
|
||||
---------------------------
|
||||
|
||||
Bearbeite die Datei ``parameters.yml``, um die RabbitMQ Konfiguration einzurichten. Die Standardkonfiguration sollte ok sein:
|
||||
Bearbeite die Datei ``app/config/parameters.yml``, um die RabbitMQ Konfiguration einzurichten. Die Standardkonfiguration sollte ok sein:
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
redis_host: localhost
|
||||
redis_port: 6379
|
||||
|
||||
Enable Redis in wallabag
|
||||
------------------------
|
||||
|
||||
In internal settings, in the **Import** section, enable Redis (with the value 1).
|
||||
|
||||
Starte den Redis Consumer
|
||||
-------------------------
|
||||
@ -44,28 +48,28 @@ Abhängig von welchem Service du importieren möchtest, solltest du einen Cron J
|
||||
.. code:: bash
|
||||
|
||||
# for Pocket import
|
||||
bin/console wallabag:import:redis-worker pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
|
||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
|
||||
|
||||
# for Readability import
|
||||
bin/console wallabag:import:redis-worker readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
|
||||
bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
|
||||
|
||||
# for Instapaper import
|
||||
bin/console wallabag:import:redis-worker instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
|
||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
|
||||
|
||||
# for wallabag v1 import
|
||||
bin/console wallabag:import:redis-worker wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
|
||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
|
||||
|
||||
# for wallabag v2 import
|
||||
bin/console wallabag:import:redis-worker wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
|
||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
|
||||
|
||||
# for Firefox import
|
||||
bin/console wallabag:import:redis-worker firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
||||
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
||||
|
||||
# for Chrome import
|
||||
bin/console wallabag:import:redis-worker instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||
|
||||
Wenn du den Import nur für ein paar Nachrichten und nicht für alle starten willst, kannst du die Nummer (im folgenden Beispiel 12) angeben. Der Redis Worker wird dann nach der 12. Nachricht stoppen:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
bin/console wallabag:import:redis-worker pocket -vv --maxIterations=12
|
||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12
|
||||
|
||||
10
docs/de/developer/testsuite.rst
Normal file
10
docs/de/developer/testsuite.rst
Normal file
@ -0,0 +1,10 @@
|
||||
Testsuite
|
||||
=========
|
||||
|
||||
To ensure wallabag development quality, we wrote tests with `PHPUnit <https://phpunit.de>`_.
|
||||
|
||||
If you contribute to the project (by translating the application, by fixing bugs or by adding a new feature), please write your own tests.
|
||||
|
||||
To launch wallabag testsuite, you need to install `ant <http://ant.apache.org>`_.
|
||||
|
||||
Then, execute this command ``make test``.
|
||||
@ -30,8 +30,8 @@ Die Dokumentation ist in anderen Sprachen verfügbar :
|
||||
|
||||
user/faq
|
||||
user/installation
|
||||
user/upgrade-2.0.x-2.1.y
|
||||
user/upgrade-2.0.x-2.0.y
|
||||
user/upgrade-2.0.x-2.1.1
|
||||
user/upgrade-2.0.x-2.1.1
|
||||
user/migration
|
||||
user/import
|
||||
user/create_account
|
||||
@ -44,6 +44,8 @@ Die Dokumentation ist in anderen Sprachen verfügbar :
|
||||
user/filters
|
||||
user/tags
|
||||
user/android
|
||||
user/parameters
|
||||
user/backup
|
||||
|
||||
.. _dev-docs:
|
||||
|
||||
|
||||
25
docs/de/user/backup.rst
Normal file
25
docs/de/user/backup.rst
Normal file
@ -0,0 +1,25 @@
|
||||
wallabag sichern
|
||||
================
|
||||
Da es manchmal vorkommen kann, dass dir ein Fehler mit deiner wallabag unterläuft und du Daten verlierst oder deine wallabag auf einen anderen Server verschieben willst, ist eine Sicherung der Daten sicher ratsam.
|
||||
Dieser Artikel beschreibt, was du für die Sicherung benötigst.
|
||||
|
||||
Grundlegende Einstellungen
|
||||
--------------------------
|
||||
wallabag speichert grundlegende Parameter (etwa der SMTP-Server oder das Datenbank-Backend) in der Datei `app/config/parameters.yml`.
|
||||
|
||||
Datenbank
|
||||
---------
|
||||
Da wallabag verschiedene Datenbank-Typen unterstützt, hängt der Weg der Sicherung von dem verwendeten Typ ab. Daher verweisen wir an dieser Stelle auf die entsprechenden Dokumentationen:
|
||||
|
||||
Hier sind einige Beispiele:
|
||||
|
||||
- MySQL: http://dev.mysql.com/doc/refman/5.7/en/backup-methods.html
|
||||
- PostgreSQL: https://www.postgresql.org/docs/current/static/backup.html
|
||||
|
||||
SQLite
|
||||
~~~~~~
|
||||
Um die SQLite-Datenbank zu sichern, ist es lediglich notwendig, das Verzeichnis `data/db` aus dem wallabag-Installations-Ordner zu kopieren.
|
||||
|
||||
Bilder
|
||||
------
|
||||
Die Bilder, die von wallabag empfangen worden, sind unter `data/assets/images` gespeichert (der Bilder-Speicher wird in wallabag 2.2 implementiert).
|
||||
@ -102,7 +102,7 @@ Wenn *readingTime >= 5 AND domainName = "github.com"*, dann tagge als *lange zu
|
||||
Welche Variablen und Operatoren kann ich zum Regeln schreiben nutzen?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Die folgenden Variabel und Operatoren können genutzt werden, um Tagging-Regeln zu erstellen:
|
||||
Die folgenden Variablen und Operatoren können genutzt werden, um Tagging-Regeln zu erstellen (sei vorsichtig, denn bei einigen Werten musst du Anführungszeichen hinzufügen, z.B. ``language = "de"``):
|
||||
|
||||
=========== ============================================== ======== ==========
|
||||
Variable Bedeutung Operator Bedeutung
|
||||
|
||||
@ -43,3 +43,10 @@ Ich habe mein Passwort vergessen
|
||||
|
||||
Du kannst dein Passwort zurücksetzen, indem du auf den Link ``Kennwort vergessen?`` auf der Loginseite klickst. Fülle dann das Formular mit deiner E-Mail-Adresse oder deinem Nutzernamen aus
|
||||
und du wirst eine E-Mail zum Passwort zurücksetzen erhalten.
|
||||
|
||||
Ich erhalte den Fehler ``failed to load external entity``, wenn ich wallabag installiere
|
||||
----------------------------------------------------------------------------------------
|
||||
|
||||
Wie `hier <https://github.com/wallabag/wallabag/issues/2529>`_ beschrieben, bearbeite bitte deine Datei ``web/app.php`` und füge ihr diese Zeile ``libxml_disable_entity_loader(false);`` in Zeile 5 hinzu.
|
||||
|
||||
Dies ist ein Doctrine / PHP Fehler - nichts, woran wir etwas ändern können.
|
||||
|
||||
@ -6,6 +6,20 @@ Voraussetzungen
|
||||
|
||||
wallabag ist kompatibel mit PHP >= 5.5, inkl. PHP 7.
|
||||
|
||||
.. note::
|
||||
|
||||
To install wallabag easily, we create a ``Makefile``, so you need to have the ``make`` tool.
|
||||
|
||||
wallabag nutzt eine große Anzahl an Bibliotheken, um zu funktionieren. Diese Bibliotheken müssen mit einem Tool namens Composer installiert werden. Du musst es installieren sofern du es bisher noch nicht gemacht hast.
|
||||
|
||||
Composer installieren:
|
||||
|
||||
::
|
||||
|
||||
curl -s http://getcomposer.org/installer | php
|
||||
|
||||
Du kannst eine spezifische Anleitung `hier <https://getcomposer.org/doc/00-intro.md>`__ finden.
|
||||
|
||||
Du benötigst die folgenden Extensions damit wallabag funktioniert. Einige von diesen sind vielleicht schon in deiner Version von PHP aktiviert, somit musst du eventuell
|
||||
nicht alle folgenden Pakete installieren.
|
||||
|
||||
@ -39,33 +53,20 @@ Installation
|
||||
Auf einem dedizierten Webserver (empfohlener Weg)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
wallabag nutzt eine große Anzahl an Bibliotheken, um zu funktionieren. Diese Bibliotheken müssen mit einem Tool namens Composer installiert werden. Du musst es installieren sofern du es bisher noch nicht gemacht hast.
|
||||
|
||||
Composer installieren:
|
||||
|
||||
::
|
||||
|
||||
curl -s http://getcomposer.org/installer | php
|
||||
|
||||
Du kannst eine spezifische Anleitung `hier <https://getcomposer.org/doc/00-intro.md>`__ finden.
|
||||
|
||||
Um wallabag selbst zu installieren, musst du die folgenden Kommandos ausführen:
|
||||
|
||||
::
|
||||
|
||||
git clone https://github.com/wallabag/wallabag.git
|
||||
cd wallabag
|
||||
git checkout 2.1.1 --force
|
||||
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||
php bin/console wallabag:install --env=prod
|
||||
cd wallabag && make install
|
||||
|
||||
Um PHPs eingebauten Server zu starten und zu testen, ob alles korrekt installiert wurde, kannst du folgendes Kommando ausführen:
|
||||
|
||||
::
|
||||
|
||||
php bin/console server:run --env=prod
|
||||
make run
|
||||
|
||||
Und wallabag unter http://deineserverip:8000 erreichen
|
||||
und wallabag unter http://deineserverip:8000 erreichen.
|
||||
|
||||
.. tip::
|
||||
|
||||
@ -87,18 +88,18 @@ Führe dieses Kommando aus, um das neueste Paket herunterzuladen und zu entpacke
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
(md5 hash: ``6c33520e29cc754b687f9cee0398dede``)
|
||||
Du findest die `md5 Hashsumme des neuesten Pakets auf unserer Website <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
||||
|
||||
Jetzt lese die Dokumentation, um einen Virtualhost zu erstellen, dann greife auf dein wallabag zu.
|
||||
Jetzt lies die Dokumentation, um einen Virtualhost zu erstellen, dann greife auf dein wallabag zu.
|
||||
Wenn du die Datenbankkonfiguration eingestellt hast, MySQL oder PostgreSQL zu nutzen, musst du einen Nutzer über das folgende Kommando erstellen ``php bin/console wallabag:install --env=prod``.
|
||||
|
||||
Installation mit Docker
|
||||
------------------------
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Wir stellen ein Docker Image zu Verfügung, um wallabag einfach zu installieren. Schaue in unser Repository in unserem `Docker Hub <https://hub.docker.com/r/wallabag/wallabag/>`__, um mehr Informationen zu erhalten.
|
||||
|
||||
Kommando, um den Container zu starten
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -108,7 +109,7 @@ Virtualhosts
|
||||
------------
|
||||
|
||||
Konfiguration von Apache
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installieren und du willst PHP als Apache Modul nutzen, dann ist hier ein vhost für wallabag:
|
||||
|
||||
@ -190,15 +191,14 @@ Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installie
|
||||
access_log /var/log/nginx/wallabag_access.log;
|
||||
}
|
||||
|
||||
Nach dem neuladen oder neustarten von nginx, solltest du nun wallabag unter http://domain.tld erreichen.
|
||||
Nach dem Neuladen oder Neustarten von nginx solltest du nun wallabag unter http://domain.tld erreichen.
|
||||
|
||||
.. tip::
|
||||
|
||||
When you want to import large file into wallabag, you need to add this line in your nginx configuration ``client_max_body_size XM; # allows file uploads up to X megabytes``.
|
||||
Wenn du eine große Datei in wallabag importieren willst, solltest du diese Zeile zu deiner nginx Konfiguration hinzufügen ``client_max_body_size XM; # allows file uploads up to X megabytes``.
|
||||
|
||||
Konfiguration von lighttpd
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installieren, dann ist hier ein Rezept für wallabag (bearbeite deine ``lighttpd.conf`` und füge die Konfiguration dort ein):
|
||||
|
||||
|
||||
50
docs/de/user/parameters.rst
Normal file
50
docs/de/user/parameters.rst
Normal file
@ -0,0 +1,50 @@
|
||||
Was bedeuten die Parameter?
|
||||
===========================
|
||||
.. csv-table:: Datenbankparameter
|
||||
:header: "Name", "Standardwert", "Beschreibung"
|
||||
|
||||
"database_driver", "pdo_sqlite", "Sollte pdo_sqlite oder pdo_mysql oder pdo_pgsql sein"
|
||||
"database_host", "127.0.0.1", "Hostadresse deiner Datenbank (normalerweise localhost oder 127.0.0.1)"
|
||||
"database_port", "~", "Port deiner Datenbank (Du kannst ``~`` stehen lassen, um den Standardport zu nutzen)"
|
||||
"database_name", "symfony", "Benenne deine Datenbank"
|
||||
"database_user", "root", "Benutzer, der Schreibrecht in der Datenbank hat"
|
||||
"database_password", "~", "Passwort des Benutzers"
|
||||
"database_path", "``""%kernel.root_dir%/../data/db/wallabag.sqlite""``", "nur für SQLite, definiere, wo die Datenbankdatei abgelegt werden soll. Lass den Parameter leer für andere Datenbanktypen."
|
||||
"database_table_prefix", "wallabag_", "alle wallabag Tabellen erhalten diesen Präfix im Namen. Du kannst einen ``_`` dafür im Präfix nutzen, um das zu verdeutlichen."
|
||||
"database_socket", "null", "Wenn deine Datenbank einen Socket statt TCP nutzt, schreibe hier den Pfad zum Socket hin (andere Verbindungsparameter werden dann ignoriert."
|
||||
|
||||
.. csv-table:: Konfiguration, um mit wallabag E-Mails senden zu können
|
||||
:header: "Name", "Standardwert", "Beschreibung"
|
||||
|
||||
"mailer_transport", "smtp", "Die exakte Transportmethode, um E-Mails zuzustellen. Gültige Werte sind: smtp, gmail, mail, sendmail, null (was das Mailen deaktivert)"
|
||||
"mailer_host", "127.0.0.1", "Der Host, zu dem sich verbunden wird, wenn SMTP als Transport genutzt wird."
|
||||
"mailer_user", "~", "Der Benutzername, wenn SMTP als Transport genutzt wird."
|
||||
"mailer_password", "~", "Das Passwort, wenn SMTP als Transport genutzt wird."
|
||||
|
||||
.. csv-table:: Andere wallabag Optionen
|
||||
:header: "Name", "Standardwert", "Beschreibung"
|
||||
|
||||
"locale", "en", "Standardsprache deiner wallabag Instanz (wie z.B. en, fr, es, etc.)"
|
||||
"secret", "ovmpmAWXRCabNlMgzlzFXDYmCFfzGv", "Dieser String sollte einzigartig für deine Applikation sein und er wird genutzt, um sicherheitsrelevanten Operationen mehr Entropie hinzuzufügen."
|
||||
"twofactor_auth", "true", "true, um Zwei-Faktor-Authentifizierung zu aktivieren"
|
||||
"twofactor_sender", "no-reply@wallabag.org", "E-Mail-Adresse des Senders der Mails mit dem Code für die Zwei-Faktor-Authentifizierung"
|
||||
"fosuser_registration", "true", "true, um die Registrierung für jedermann zu aktivieren"
|
||||
"fosuser_confirmation", "true", "true, um eine Bestätigungsmail für jede Registrierung zu senden"
|
||||
"from_email", "no-reply@wallabag.org", "E-Mail-Adresse, die im Absenderfeld jeder Mail genutzt wird"
|
||||
"rss_limit", "50", "Artikellimit für RSS Feeds"
|
||||
|
||||
.. csv-table:: RabbitMQ Konfiguration
|
||||
:header: "Name", "Standardwert", "Beschreibung"
|
||||
|
||||
"rabbitmq_host", "localhost", "Host deines RabbitMQ"
|
||||
"rabbitmq_port", "5672", "Port deines RabbitMQ"
|
||||
"rabbitmq_user", "guest", "Benutzer, der die Queue lesen kann"
|
||||
"rabbitmq_password", "guest", "Passwort dieses Benutzers"
|
||||
|
||||
.. csv-table:: Redis Konfiguration
|
||||
:header: "Name", "Standardwert", "Beschreibung"
|
||||
|
||||
"redis_scheme", "tcp", "Bestimmt das Protokoll, dass genutzt wird, um mit Redis zu kommunizieren. Gültige Werte sind: tcp, unix, http"
|
||||
"redis_host", "localhost", "IP oder Hostname des Zielservers (ignoriert bei Unix Schema)"
|
||||
"redis_port", "6379", "TCP/IP Port des Zielservers (ignoriert bei Unix Schema)"
|
||||
"redis_path", "null", "Pfad zur Unix Domain Socket Datei, wenn Redis Unix Domain Sockets nutzt"
|
||||
@ -1,5 +1,5 @@
|
||||
Wallabag updaten
|
||||
================
|
||||
Wallabag von 2.0.x auf 2.1.1 updaten
|
||||
====================================
|
||||
|
||||
.. warning::
|
||||
Wenn du den Import von Pocket durch das Hinzufügen des Consumer Key in den internen Einstellungen konfiguriert hast, fertige bitte ein Backup deines Keys an, bevor du auf das neue Release migrierst: Du wirst den Key nach dem Update in der Konfiguration erneut eintragen müssen.
|
||||
@ -30,23 +30,43 @@ Lade das neueste Release von wallabag herunter:
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
(md5 hash: ``6c33520e29cc754b687f9cee0398dede``)
|
||||
(2.1.1 md5 Hashsumme: ``9584a3b60a2b2a4de87f536548caac93``)
|
||||
|
||||
Entpacke das Archiv in deinen wallabag-Ordner und ersetze ``app/config/parameters.yml`` mit deiner Datei.
|
||||
|
||||
Bitte beachte, dass wir in dieser Version neue Parameter hinzugefügt haben. Du musst die Datei ``app/config/parameters.yml`` bearbeiten und die folgenden Zeilen hinzufügen (ersetze die Werte mit deiner Konfiguration):
|
||||
|
||||
.. code-block:: bash
|
||||
.. code-block:: yml
|
||||
|
||||
# RabbitMQ processing
|
||||
rabbitmq_host: localhost
|
||||
rabbitmq_port: 5672
|
||||
rabbitmq_user: guest
|
||||
rabbitmq_password: guest
|
||||
parameters:
|
||||
database_driver: pdo_sqlite
|
||||
database_host: 127.0.0.1
|
||||
database_port: null
|
||||
database_name: symfony
|
||||
database_user: root
|
||||
database_password: null
|
||||
database_path: '%kernel.root_dir%/../data/db/wallabag.sqlite'
|
||||
database_table_prefix: wallabag_
|
||||
mailer_transport: smtp
|
||||
mailer_host: 127.0.0.1
|
||||
mailer_user: null
|
||||
mailer_password: null
|
||||
locale: en
|
||||
secret: ovmpmAWXRCabNlMgzlzFXDYmCFfzGv
|
||||
twofactor_auth: true
|
||||
twofactor_sender: no-reply@wallabag.org
|
||||
fosuser_registration: true
|
||||
fosuser_confirmation: true
|
||||
from_email: no-reply@wallabag.org
|
||||
rss_limit: 50
|
||||
rabbitmq_host: localhost
|
||||
rabbitmq_port: 5672
|
||||
rabbitmq_user: guest
|
||||
rabbitmq_password: guest
|
||||
redis_host: localhost
|
||||
redis_port: 6379
|
||||
|
||||
# Redis processing
|
||||
redis_host: localhost
|
||||
redis_port: 6379
|
||||
Du kannst `hier eine Dokumentation über die Parameter finden <http://doc.wallabag.org/en/master/user/parameters.html>`_.
|
||||
|
||||
Wenn du SQLite nutzt, musst auch das ``data/`` Verzeichnis in die neue Installation kopieren.
|
||||
|
||||
@ -1,17 +1,17 @@
|
||||
Wallabag updaten 2.0.x -> 2.1.x
|
||||
===============================
|
||||
Wallabag von 2.1.x auf 2.1.y updaten
|
||||
====================================
|
||||
|
||||
Update auf einem dedizierten Webserver
|
||||
--------------------------------------
|
||||
|
||||
Das neueste Release ist auf https://www.wallabag.org/pages/download-wallabag.html veröffentlicht. Um deine wallabag Installation auf die neueste Version upzudaten, führe die folgenden Kommandos in deinem wallabag Ordner aus (ersetze ``2.0.8`` mit der neuesten Releasenummer):
|
||||
Das neueste Release ist auf https://www.wallabag.org/pages/download-wallabag.html veröffentlicht. Um deine wallabag Installation auf die neueste Version upzudaten, führe die folgenden Kommandos in deinem wallabag Ordner aus (ersetze ``2.1.3`` mit der neuesten Releasenummer):
|
||||
|
||||
::
|
||||
|
||||
rm -rf var/cache/*
|
||||
git fetch origin
|
||||
git fetch --tags
|
||||
git checkout 2.0.8
|
||||
git checkout 2.1.3 --force
|
||||
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||
php bin/console cache:clear --env=prod
|
||||
|
||||
@ -26,7 +26,7 @@ Lade das neueste Release von wallabag herunter:
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
(md5 hash: ``4f84c725d1d6e3345eae0a406115e5ff``)
|
||||
Du findest die `md5 Hashsumme des neuesten Pakets auf unserer Website <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
||||
|
||||
Entpacke das Archiv in deinen wallabag Ordner und ersetze ``app/config/parameters.yml`` mit deiner Datei.
|
||||
|
||||
@ -8,7 +8,7 @@ Requirements
|
||||
|
||||
* wallabag freshly (or not) installed on http://localhost:8000
|
||||
* ``httpie`` installed on your computer (`see project website <https://github.com/jkbrzt/httpie>`__). Note that you can also adapt the commands using curl or wget.
|
||||
* all the API methods are documented here http://localhost:8000/api/doc
|
||||
* all the API methods are documented here http://localhost:8000/api/doc (on your instance) and `on our example instance <http://v2.wallabag.org/api/doc>`_
|
||||
|
||||
Creating a new API client
|
||||
-------------------------
|
||||
@ -263,7 +263,8 @@ Third party resources
|
||||
|
||||
Some applications or libraries use our API. Here is a non-exhaustive list of them:
|
||||
|
||||
- `Java wrapper for the wallabag API <https://github.com/Strubbl/wallabag-java>`_ by Strubbl.
|
||||
- `Java wrapper for the wallabag API <https://github.com/Strubbl/jWallabag>`_ by Strubbl.
|
||||
- `.NET library for the wallabag v2 API <https://github.com/jlnostr/wallabag-api>`_ by Julian Oster.
|
||||
- `Python API for wallabag <https://github.com/foxmask/wallabag_api>`_ by FoxMaSk, for his project `Trigger Happy <https://blog.trigger-happy.eu/>`_.
|
||||
- `A plugin <https://github.com/joshp23/ttrss-to-wallabag-v2>`_ designed for `Tiny Tiny RSS <https://tt-rss.org/gitlab/fox/tt-rss/wikis/home>`_ that makes use of the wallabag v2 API. By Josh Panter.
|
||||
- `Golang wrapper for the wallabag API <https://github.com/Strubbl/wallabago>`_ by Strubbl, for his project `wallabag-stats graph <https://github.com/Strubbl/wallabag-stats>`_.
|
||||
|
||||
@ -11,7 +11,7 @@ To enable maintenance mode, execute this command:
|
||||
|
||||
::
|
||||
|
||||
bin/console lexik:maintenance:lock --no-interaction
|
||||
bin/console lexik:maintenance:lock --no-interaction -e=prod
|
||||
|
||||
You can set your IP address in ``app/config/config.yml`` if you want to access to wallabag even if maintenance mode is enabled. For example:
|
||||
|
||||
@ -29,4 +29,4 @@ To disable maintenance mode, execute this command:
|
||||
|
||||
::
|
||||
|
||||
bin/console lexik:maintenance:unlock
|
||||
bin/console lexik:maintenance:unlock -e=prod
|
||||
|
||||
@ -37,7 +37,7 @@ Stop RabbitMQ
|
||||
Configure RabbitMQ in wallabag
|
||||
------------------------------
|
||||
|
||||
Edit your ``parameters.yml`` file to edit RabbitMQ configuration. The default one should be ok:
|
||||
Edit your ``app/config/parameters.yml`` file to edit RabbitMQ configuration. The default one should be ok:
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
@ -46,6 +46,10 @@ Edit your ``parameters.yml`` file to edit RabbitMQ configuration. The default on
|
||||
rabbitmq_user: guest
|
||||
rabbitmq_password: guest
|
||||
|
||||
Enable RabbitMQ in wallabag
|
||||
---------------------------
|
||||
|
||||
In internal settings, in the **Import** section, enable RabbitMQ (with the value 1).
|
||||
|
||||
Launch RabbitMQ consumer
|
||||
------------------------
|
||||
@ -55,22 +59,22 @@ Depending on which service you want to import from you need to enable one (or ma
|
||||
.. code:: bash
|
||||
|
||||
# for Pocket import
|
||||
bin/console rabbitmq:consumer import_pocket -w
|
||||
bin/console rabbitmq:consumer -e=prod import_pocket -w
|
||||
|
||||
# for Readability import
|
||||
bin/console rabbitmq:consumer import_readability -w
|
||||
bin/console rabbitmq:consumer -e=prod import_readability -w
|
||||
|
||||
# for Instapaper import
|
||||
bin/console rabbitmq:consumer import_instapaper -w
|
||||
bin/console rabbitmq:consumer -e=prod import_instapaper -w
|
||||
|
||||
# for wallabag v1 import
|
||||
bin/console rabbitmq:consumer import_wallabag_v1 -w
|
||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w
|
||||
|
||||
# for wallabag v2 import
|
||||
bin/console rabbitmq:consumer import_wallabag_v2 -w
|
||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w
|
||||
|
||||
# for Firefox import
|
||||
bin/console rabbitmq:consumer import_firefox -w
|
||||
bin/console rabbitmq:consumer -e=prod import_firefox -w
|
||||
|
||||
# for Chrome import
|
||||
bin/console rabbitmq:consumer import_chrome -w
|
||||
bin/console rabbitmq:consumer -e=prod import_chrome -w
|
||||
|
||||
@ -28,13 +28,17 @@ The server might be already running after installing, if not you can launch it u
|
||||
Configure Redis in wallabag
|
||||
---------------------------
|
||||
|
||||
Edit your ``parameters.yml`` file to edit Redis configuration. The default one should be ok:
|
||||
Edit your ``app/config/parameters.yml`` file to edit Redis configuration. The default one should be ok:
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
redis_host: localhost
|
||||
redis_port: 6379
|
||||
|
||||
Enable Redis in wallabag
|
||||
------------------------
|
||||
|
||||
In internal settings, in the **Import** section, enable Redis (with the value 1).
|
||||
|
||||
Launch Redis consumer
|
||||
---------------------
|
||||
@ -44,28 +48,28 @@ Depending on which service you want to import from you need to enable one (or ma
|
||||
.. code:: bash
|
||||
|
||||
# for Pocket import
|
||||
bin/console wallabag:import:redis-worker pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
|
||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
|
||||
|
||||
# for Readability import
|
||||
bin/console wallabag:import:redis-worker readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
|
||||
bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
|
||||
|
||||
# for Instapaper import
|
||||
bin/console wallabag:import:redis-worker instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
|
||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
|
||||
|
||||
# for wallabag v1 import
|
||||
bin/console wallabag:import:redis-worker wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
|
||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
|
||||
|
||||
# for wallabag v2 import
|
||||
bin/console wallabag:import:redis-worker wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
|
||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
|
||||
|
||||
# for Firefox import
|
||||
bin/console wallabag:import:redis-worker firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
||||
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
||||
|
||||
# for Chrome import
|
||||
bin/console wallabag:import:redis-worker instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||
|
||||
If you want to launch the import only for some messages and not all, you can specify this number (here 12) and the worker will stop right after the 12th message :
|
||||
|
||||
.. code:: bash
|
||||
|
||||
bin/console wallabag:import:redis-worker pocket -vv --maxIterations=12
|
||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12
|
||||
|
||||
10
docs/en/developer/testsuite.rst
Normal file
10
docs/en/developer/testsuite.rst
Normal file
@ -0,0 +1,10 @@
|
||||
Testsuite
|
||||
=========
|
||||
|
||||
To ensure wallabag development quality, we wrote tests with `PHPUnit <https://phpunit.de>`_.
|
||||
|
||||
If you contribute to the project (by translating the application, by fixing bugs or by adding a new feature), please write your own tests.
|
||||
|
||||
To launch wallabag testsuite, you need to install `ant <http://ant.apache.org>`_.
|
||||
|
||||
Then, execute this command ``make test``.
|
||||
@ -30,8 +30,8 @@ The documentation is available in other languages:
|
||||
|
||||
user/faq
|
||||
user/installation
|
||||
user/upgrade-2.0.x-2.1.y
|
||||
user/upgrade-2.0.x-2.0.y
|
||||
user/upgrade-2.0.x-2.1.1
|
||||
user/upgrade-2.1.x-2.1.y
|
||||
user/migration
|
||||
user/import
|
||||
user/create_account
|
||||
@ -45,6 +45,8 @@ The documentation is available in other languages:
|
||||
user/filters
|
||||
user/tags
|
||||
user/android
|
||||
user/parameters
|
||||
user/backup
|
||||
|
||||
.. _dev-docs:
|
||||
|
||||
|
||||
@ -29,13 +29,13 @@ Fill in your wallabag data. You need to enter your wallabag address. It is impor
|
||||
:alt: Filled in settings
|
||||
:align: center
|
||||
|
||||
After you have filled in your data, push the button Connection test and wait for the test to finish.
|
||||
After you have filled in your data, push the button Connection test and wait for the test to finish.
|
||||
|
||||
.. image:: ../../img/user/android_configuration_connection_test.en.png
|
||||
:alt: Connection test with your wallabag data
|
||||
:align: center
|
||||
|
||||
The connection test shall finish with success. If not, you need to fix this first until you proceed.
|
||||
The connection test should finish with success. If not, you need to fix this first until you proceed.
|
||||
|
||||
.. image:: ../../img/user/android_configuration_connection_test_success.en.png
|
||||
:alt: Connection test successful
|
||||
@ -65,27 +65,27 @@ After hitting the save button, you get the following screen. The app proposes to
|
||||
:alt: Settings saved the first time
|
||||
:align: center
|
||||
|
||||
Finally after the syncronisation finished successfully, you are presented the list of unread articles.
|
||||
Finally after the synchronisation finished successfully, you are presented to the list of unread articles.
|
||||
|
||||
.. image:: ../../img/user/android_unread_feed_synced.en.png
|
||||
:alt: Filled article list cause feeds successfully syncronized
|
||||
:alt: Filled article list cause feeds successfully synchronized
|
||||
:align: center
|
||||
|
||||
|
||||
|
||||
Known limitations
|
||||
----
|
||||
-----------------
|
||||
|
||||
2FA
|
||||
~~~
|
||||
|
||||
Currently the does not support two-factor authentication. You should disable that to get the app working.
|
||||
Currently the Android application does not support two-factor authentication. You should disable that to get the application working.
|
||||
|
||||
|
||||
Limited amount of articles with wallabag v2
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
In your wallabag web instance you can configure how many items are part of the RSS feed. This option did not exist in wallabag v1, where all articles were part of the feed. So if you set the amount of articles being displayed greater than the number of items being content of your RSS feed, you will only see the number of items in your RSS feed.
|
||||
In your wallabag web instance you can configure how many items are part of the RSS feed. This option did not exist in wallabag v1, where all articles were part of the feed. So if you set the amount of articles being displayed greater than the number of items being content of your RSS feed, you will only see the number of items in your RSS feed.
|
||||
|
||||
|
||||
SSL/TLS encryption
|
||||
|
||||
25
docs/en/user/backup.rst
Normal file
25
docs/en/user/backup.rst
Normal file
@ -0,0 +1,25 @@
|
||||
Backup wallabag
|
||||
===============
|
||||
Because sometimes you may do a mistake with your wallabag and lose data or in case you need to move your wallabag to another server you want to backup your data.
|
||||
This articles describes what you need to backup.
|
||||
|
||||
Basic settings
|
||||
--------------
|
||||
wallabag stores some basic parameters (like SMTP server or database backend) in the file `app/config/parameters.yml`.
|
||||
|
||||
Database
|
||||
--------
|
||||
As wallabag supports different kinds of database, the way to perform the backup depends on the database you use, so you need to refer to the vendor documentation.
|
||||
|
||||
Here's some examples:
|
||||
|
||||
- MySQL: http://dev.mysql.com/doc/refman/5.7/en/backup-methods.html
|
||||
- PostgreSQL: https://www.postgresql.org/docs/current/static/backup.html
|
||||
|
||||
SQLite
|
||||
~~~~~~
|
||||
To backup the SQLite database, you just need to copy the directory `data/db` from the wallabag application directory.
|
||||
|
||||
Images
|
||||
------
|
||||
The images retrieved by wallabag are stored under `data/assets/images` (the images storage will be implemented in wallabag 2.2).
|
||||
@ -100,7 +100,7 @@ if *« readingTime >= 5 AND domainName = "github.com" »* then tag as *« long r
|
||||
Which variables and operators can I use to write rules?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The following variables and operators can be used to create tagging rules:
|
||||
The following variables and operators can be used to create tagging rules (be careful, for some values, you need to add quotes, for example ``language = "en"``):
|
||||
|
||||
=========== ============================================== ======== ==========
|
||||
Variable Meaning Operator Meaning
|
||||
|
||||
@ -12,9 +12,21 @@ There may be several reasons:
|
||||
How can I help to fix that?
|
||||
---------------------------
|
||||
|
||||
- `by sending us an email with the article's URL <mailto:hello@wallabag.org>`_
|
||||
- by trying to fix this article by yourself :) by creating a file for the article.
|
||||
You can use `this tool <http://siteconfig.fivefilters.org/>`__.
|
||||
You can `sending us an email with the article's URL <mailto:hello@wallabag.org>`_.
|
||||
|
||||
Or you can also try to fix this problem by yourself (so we can be focused on improving wallabag internally instead of writing siteconfig :) ).
|
||||
|
||||
You can try to see if it works here: `http://f43.me/feed/test <http://f43.me/feed/test>`_ (it uses almost the same system as wallabag to retrieve content).
|
||||
|
||||
If it works here and not on wallabag, it means there is something internally in wallabag that breaks the parser (hard to fix: please open an issue about it).
|
||||
|
||||
If it doesn't works, try to extract a site config using: `http://siteconfig.fivefilters.org/ <http://siteconfig.fivefilters.org/>`_ (select which part of the content is actually the content). You can `read this documentation before <http://help.fivefilters.org/customer/en/portal/articles/223153-site-patterns>`_.
|
||||
|
||||
You can test it on **f43.me** website: click on **Want to try a custom siteconfig?** and put the generated file from siteconfig.fivefilters.org.
|
||||
|
||||
Repeat until you have something ok.
|
||||
|
||||
Then you can submit a pull request to `https://github.com/fivefilters/ftr-site-config <https://github.com/fivefilters/ftr-site-config>`_ which is the global repo for siteconfig files.
|
||||
|
||||
How can I try to re-fetch this article?
|
||||
---------------------------------------
|
||||
|
||||
@ -46,3 +46,10 @@ I forgot my password
|
||||
You can reset your password by clicking on ``Forgot your password?`` link,
|
||||
on the login page. Then, fill the form with your email address or your username,
|
||||
you'll receive an email to reset your password.
|
||||
|
||||
I've got the ``failed to load external entity`` error when I try to install wallabag
|
||||
------------------------------------------------------------------------------------
|
||||
|
||||
As described `here <https://github.com/wallabag/wallabag/issues/2529>`_, please edit your ``web/app.php`` file and add this line: ``libxml_disable_entity_loader(false);`` on line 5.
|
||||
|
||||
This is a Doctrine / PHP bug, nothing we can do about it.
|
||||
|
||||
@ -35,7 +35,7 @@ From Readability
|
||||
Export your Readability data
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
On the tools (`https://www.readability.com/tools/<https://www.readability.com/tools/>`_) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact).
|
||||
On the tools (`https://www.readability.com/tools/ <https://www.readability.com/tools/>`_) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact).
|
||||
|
||||
Import your data into wallabag 2.x
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -51,7 +51,7 @@ From Instapaper
|
||||
Export your Instapaper data
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
On the settings (`https://www.instapaper.com/user<https://www.instapaper.com/user>`_) page, click on "Download .CSV file" in the "Export" section. A CSV file will be downloaded (like ``instapaper-export.csv``).
|
||||
On the settings (`https://www.instapaper.com/user <https://www.instapaper.com/user>`_) page, click on "Download .CSV file" in the "Export" section. A CSV file will be downloaded (like ``instapaper-export.csv``).
|
||||
|
||||
Import your data into wallabag 2.x
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@ -6,7 +6,21 @@ Requirements
|
||||
|
||||
wallabag is compatible with PHP >= 5.5, including PHP 7.
|
||||
|
||||
You'll need the following extensions for wallabag to work. Some of these may already activated in your version of PHP, so you may not have to install all corresponding packages.
|
||||
.. note::
|
||||
|
||||
To install wallabag easily, we provide a ``Makefile``, so you need to have the ``make`` tool.
|
||||
|
||||
wallabag uses a large number of PHP libraries in order to function. These libraries must be installed with a tool called Composer. You need to install it if you have not already done so and be sure to use the 1.2 version (if you already have Composer, run a ``composer selfupdate``).
|
||||
|
||||
Install Composer:
|
||||
|
||||
::
|
||||
|
||||
curl -s http://getcomposer.org/installer | php
|
||||
|
||||
You can find specific instructions `here <https://getcomposer.org/doc/00-intro.md>`__.
|
||||
|
||||
You'll also need the following extensions for wallabag to work. Some of these may already activated in your version of PHP, so you may not have to install all corresponding packages.
|
||||
|
||||
- php-session
|
||||
- php-ctype
|
||||
@ -38,31 +52,18 @@ Installation
|
||||
On a dedicated web server (recommended way)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
wallabag uses a large number of PHP libraries in order to function. These libraries must be installed with a tool called Composer. You need to install it if you have not already done so and be sure to use the 1.2 version (if you already have Composer, run a ``composer selfupdate``).
|
||||
|
||||
Install Composer:
|
||||
|
||||
::
|
||||
|
||||
curl -s http://getcomposer.org/installer | php
|
||||
|
||||
You can find specific instructions `here <https://getcomposer.org/doc/00-intro.md>`__.
|
||||
|
||||
To install wallabag itself, you must run the following commands:
|
||||
|
||||
::
|
||||
|
||||
git clone https://github.com/wallabag/wallabag.git
|
||||
cd wallabag
|
||||
git checkout 2.1.1 --force
|
||||
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||
php bin/console wallabag:install --env=prod
|
||||
cd wallabag && make install
|
||||
|
||||
To start PHP's build-in server and test if everything did install correctly, you can do:
|
||||
|
||||
::
|
||||
|
||||
php bin/console server:run --env=prod
|
||||
make run
|
||||
|
||||
And access wallabag at http://yourserverip:8000
|
||||
|
||||
@ -86,18 +87,18 @@ Execute this command to download and extract the latest package:
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
(md5 hash of the 2.1.0 package: ``6c33520e29cc754b687f9cee0398dede``)
|
||||
You will find the `md5 hash of the latest package on our website <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
||||
|
||||
Now, read the following documentation to create your virtual host, then access your wallabag.
|
||||
If you changed the database configuration to use MySQL or PostgreSQL, you need to create a user via this command ``php bin/console wallabag:install --env=prod``.
|
||||
|
||||
Installation with Docker
|
||||
------------------------
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
We provide you a Docker image to install wallabag easily. Have a look to our repository on `Docker Hub <https://hub.docker.com/r/wallabag/wallabag/>`__ to have more information.
|
||||
We provide you a Docker image to install wallabag easily. Have a look at our repository on `Docker Hub <https://hub.docker.com/r/wallabag/wallabag/>`__ for more information.
|
||||
|
||||
Command to launch container
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -193,12 +194,12 @@ After reloading or restarting nginx, you should now be able to access wallabag a
|
||||
|
||||
.. tip::
|
||||
|
||||
When you want to import large file into wallabag, you need to add this line in your nginx configuration ``client_max_body_size XM; # allows file uploads up to X megabytes``.
|
||||
When you want to import large files into wallabag, you need to add this line in your nginx configuration ``client_max_body_size XM; # allows file uploads up to X megabytes``.
|
||||
|
||||
Configuration on lighttpd
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Assuming you install wallabag in the /var/www/wallabag folder, here's the recipe for wallabag (edit your ``lighttpd.conf`` file and paste this configuration into it):
|
||||
Assuming you install wallabag in the ``/var/www/wallabag`` folder, here's the recipe for wallabag (edit your ``lighttpd.conf`` file and paste this configuration into it):
|
||||
|
||||
::
|
||||
|
||||
@ -239,16 +240,16 @@ Rights access to the folders of the project
|
||||
Test environment
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
When we just want to test wallabag, we just run the command ``php bin/console server:run --env=prod`` to start our wallabag instance and everything will go smoothly because the user who started the project can access to the current folder naturally, without any problem.
|
||||
When we just want to test wallabag, we just run the command ``make run`` to start our wallabag instance and everything will go smoothly because the user who started the project can access to the current folder naturally, without any problem.
|
||||
|
||||
Production environment
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
As soon as we use Apache or Nginx to access to our wallabag instance, and not from the command ``php bin/console server:run --env=prod`` to start it, we should take care to grant the good rights on the good folders to keep safe all the folders of the project.
|
||||
As soon as we use Apache or Nginx to access to our wallabag instance, and not from the command ``make run`` to start it, we should take care to grant the good rights on the good folders to keep safe all the folders of the project.
|
||||
|
||||
To do so, the folder name, known as ``DocumentRoot`` (for apache) or ``root`` (for Nginx), has to be absolutely accessible by the Apache/Nginx user. Its name is generally ``www-data``, ``apache`` or ``nobody`` (depending on linux system used).
|
||||
|
||||
So the folder ``/var/www/wallabag/web`` has to be accessible by this last one. But this could be not enough if we just care about this folder, because we could meet a blank page or get an error 500 when trying to access to the homepage of the project.
|
||||
So the folder ``/var/www/wallabag/web`` has to be accessible by this last one. But this may not be enough if we just care about this folder, because we could meet a blank page or get an error 500 when trying to access to the homepage of the project.
|
||||
|
||||
This is due to the fact that we will need to grant the same rights access on the folder ``/var/www/wallabag/var`` like those we gave on the folder ``/var/www/wallabag/web``. Thus, we fix this problem with the following command:
|
||||
|
||||
|
||||
50
docs/en/user/parameters.rst
Normal file
50
docs/en/user/parameters.rst
Normal file
@ -0,0 +1,50 @@
|
||||
What is the meaning of the parameters?
|
||||
======================================
|
||||
.. csv-table:: Database parameters
|
||||
:header: "name", "default", "description"
|
||||
|
||||
"database_driver", "pdo_sqlite", "Should be pdo_sqlite or pdo_mysql or pdo_pgsql"
|
||||
"database_host", "127.0.0.1", "host of your database (usually localhost or 127.0.0.1)"
|
||||
"database_port", "~", "port of your database (you can leave ``~`` to use the default one)"
|
||||
"database_name", "symfony", "name of your database"
|
||||
"database_user", "root", "user that can write to this database"
|
||||
"database_password", "~", "password of that user"
|
||||
"database_path", "``""%kernel.root_dir%/../data/db/wallabag.sqlite""``", "only for SQLite, define where to put the database file. Leave it empty for other database"
|
||||
"database_table_prefix", "wallabag_", "all wallabag's tables will be prefixed with that string. You can include a ``_`` for clarity"
|
||||
"database_socket", "null", "If your database is using a socket instead of tcp, put the path of the socket (other connection parameters will then be ignored)"
|
||||
|
||||
.. csv-table:: Configuration to send emails from wallabag
|
||||
:header: "name", "default", "description"
|
||||
|
||||
"mailer_transport", "smtp", "The exact transport method to use to deliver emails. Valid values are: smtp, gmail, mail, sendmail, null (which will disable the mailer)"
|
||||
"mailer_host", "127.0.0.1", "The host to connect to when using smtp as the transport."
|
||||
"mailer_user", "~", "The username when using smtp as the transport."
|
||||
"mailer_password", "~", "The password when using smtp as the transport."
|
||||
|
||||
.. csv-table:: Other wallabag's option
|
||||
:header: "name", "default", "description"
|
||||
|
||||
"locale", "en", "Default language of your wallabag instance (like en, fr, es, etc.)"
|
||||
"secret", "ovmpmAWXRCabNlMgzlzFXDYmCFfzGv", "This is a string that should be unique to your application and it's commonly used to add more entropy to security related operations."
|
||||
"twofactor_auth", "true", "true to enable Two factor authentication"
|
||||
"twofactor_sender", "no-reply@wallabag.org", "email of the email sender to receive the two factor code"
|
||||
"fosuser_registration", "true", "true to enable public registration"
|
||||
"fosuser_confirmation", "true", "true to send a confirmation by email for each registration"
|
||||
"from_email", "no-reply@wallabag.org", "email address used in From: field in each email"
|
||||
"rss_limit", "50", "limit for RSS feeds"
|
||||
|
||||
.. csv-table:: RabbitMQ configuration
|
||||
:header: "name", "default", "description"
|
||||
|
||||
"rabbitmq_host", "localhost", "Host of your RabbitMQ"
|
||||
"rabbitmq_port", "5672", "Port of your RabbitMQ"
|
||||
"rabbitmq_user", "guest", "User that can read queues"
|
||||
"rabbitmq_password", "guest", "Password of that user"
|
||||
|
||||
.. csv-table:: Redis configuration
|
||||
:header: "name", "default", "description"
|
||||
|
||||
"redis_scheme", "tcp", "Specifies the protocol used to communicate with an instance of Redis. Valid values are: tcp, unix, http"
|
||||
"redis_host", "localhost", "IP or hostname of the target server (ignored for unix scheme)"
|
||||
"redis_port", "6379", "TCP/IP port of the target server (ignored for unix scheme)"
|
||||
"redis_path", "null", "Path of the UNIX domain socket file used when connecting to Redis using UNIX domain sockets"
|
||||
84
docs/en/user/upgrade-2.0.x-2.1.1.rst
Normal file
84
docs/en/user/upgrade-2.0.x-2.1.1.rst
Normal file
@ -0,0 +1,84 @@
|
||||
Upgrade from 2.0.x to 2.1.1
|
||||
===========================
|
||||
|
||||
.. warning::
|
||||
|
||||
Before this migration, if you configured the Pocket import by adding your consumer key in Internal settings, please do a backup of it: you'll have to add it into the Config page after the upgrade.
|
||||
|
||||
Upgrade on a dedicated web server
|
||||
---------------------------------
|
||||
|
||||
::
|
||||
|
||||
rm -rf var/cache/*
|
||||
git fetch origin
|
||||
git fetch --tags
|
||||
git checkout 2.1.1 --force
|
||||
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||
php bin/console doctrine:migrations:migrate --env=prod
|
||||
php bin/console cache:clear --env=prod
|
||||
|
||||
Upgrade on a shared hosting
|
||||
---------------------------
|
||||
|
||||
Backup your ``app/config/parameters.yml`` file.
|
||||
|
||||
Download the last release of wallabag:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
wget http://framabag.org/wallabag-release-2.1.1.tar.gz && tar xvf wallabag-release-2.1.1.tar.gz
|
||||
|
||||
(md5 hash of the 2.1.1 package: ``9584a3b60a2b2a4de87f536548caac93``)
|
||||
|
||||
Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours.
|
||||
|
||||
Please check that your ``app/config/parameters.yml`` contains all the required parameters. Here is a default ``parameters.yml`` file. If you don't know which parameter you need to set, please leave the default one.
|
||||
|
||||
.. code-block:: yml
|
||||
|
||||
parameters:
|
||||
database_driver: pdo_sqlite
|
||||
database_host: 127.0.0.1
|
||||
database_port: null
|
||||
database_name: symfony
|
||||
database_user: root
|
||||
database_password: null
|
||||
database_path: '%kernel.root_dir%/../data/db/wallabag.sqlite'
|
||||
database_table_prefix: wallabag_
|
||||
mailer_transport: smtp
|
||||
mailer_host: 127.0.0.1
|
||||
mailer_user: null
|
||||
mailer_password: null
|
||||
locale: en
|
||||
secret: ovmpmAWXRCabNlMgzlzFXDYmCFfzGv
|
||||
twofactor_auth: true
|
||||
twofactor_sender: no-reply@wallabag.org
|
||||
fosuser_registration: true
|
||||
fosuser_confirmation: true
|
||||
from_email: no-reply@wallabag.org
|
||||
rss_limit: 50
|
||||
rabbitmq_host: localhost
|
||||
rabbitmq_port: 5672
|
||||
rabbitmq_user: guest
|
||||
rabbitmq_password: guest
|
||||
redis_host: localhost
|
||||
redis_port: 6379
|
||||
|
||||
You can find `here a documentation about parameters <http://doc.wallabag.org/en/master/user/parameters.html>`_.
|
||||
|
||||
If you use SQLite, you must also copy your ``data/`` folder inside the new installation.
|
||||
|
||||
Empty ``var/cache`` folder.
|
||||
|
||||
You must run some SQL queries to upgrade your database. We assume that the table prefix is ``wallabag_`` and the database server is a MySQL one:
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL;
|
||||
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('share_public', '1', 'entry');
|
||||
ALTER TABLE `wallabag_oauth2_clients` ADD name longtext COLLATE 'utf8_unicode_ci' DEFAULT NULL;
|
||||
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_redis', '0', 'import');
|
||||
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_rabbitmq', '0', 'import');
|
||||
ALTER TABLE `wallabag_config` ADD `pocket_consumer_key` VARCHAR(255) DEFAULT NULL;
|
||||
DELETE FROM `wallabag_craue_config_setting` WHERE `name` = 'pocket_consumer_key';
|
||||
@ -1,65 +0,0 @@
|
||||
Upgrading from 2.0.x to 2.1.y
|
||||
=============================
|
||||
|
||||
.. warning::
|
||||
Before this migration, if you configured the Pocket import by adding your consumer key in Internal settings, please do a backup of it: you'll have to add it into the Config page after the upgrade.
|
||||
|
||||
Upgrade on a dedicated web server
|
||||
---------------------------------
|
||||
|
||||
The last release is published on https://www.wallabag.org/pages/download-wallabag.html. In order to upgrade your wallabag installation and get the last version, run the following commands in you wallabag folder (replace ``2.1.1`` by the last release number):
|
||||
|
||||
::
|
||||
|
||||
rm -rf var/cache/*
|
||||
git fetch origin
|
||||
git fetch --tags
|
||||
git checkout 2.1.1 --force
|
||||
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||
php bin/console doctrine:migrations:migrate --env=prod
|
||||
php bin/console cache:clear --env=prod
|
||||
|
||||
Upgrade on a shared hosting
|
||||
---------------------------
|
||||
|
||||
Backup your ``app/config/parameters.yml`` file.
|
||||
|
||||
Download the last release of wallabag:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
(md5 hash of the 2.1.0 package: ``6c33520e29cc754b687f9cee0398dede``)
|
||||
|
||||
Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours.
|
||||
|
||||
Please note that we added new parameters in this version. You have to edit ``app/config/parameters.yml`` by adding these lines (replace with your configuration) :
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# RabbitMQ processing
|
||||
rabbitmq_host: localhost
|
||||
rabbitmq_port: 5672
|
||||
rabbitmq_user: guest
|
||||
rabbitmq_password: guest
|
||||
|
||||
# Redis processing
|
||||
redis_host: localhost
|
||||
redis_port: 6379
|
||||
|
||||
If you use SQLite, you must also copy your ``data/`` folder inside the new installation.
|
||||
|
||||
Empty ``var/cache`` folder.
|
||||
|
||||
You must run some SQL queries to upgrade your database. We assume that the table prefix is ``wallabag_`` and the database server is a MySQL one:
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL;
|
||||
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('share_public', '1', 'entry');
|
||||
ALTER TABLE `wallabag_oauth2_clients` ADD name longtext COLLATE 'utf8_unicode_ci' DEFAULT NULL;
|
||||
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_redis', '0', 'import');
|
||||
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_rabbitmq', '0', 'import');
|
||||
ALTER TABLE `wallabag_config` ADD `pocket_consumer_key` VARCHAR(255) DEFAULT NULL;
|
||||
DELETE FROM `wallabag_craue_config_setting` WHERE `name` = 'pocket_consumer_key';
|
||||
@ -1,17 +1,17 @@
|
||||
Upgrade from 2.0.x to 2.0.y
|
||||
===========================
|
||||
Upgrading from 2.1.x to 2.1.y
|
||||
=============================
|
||||
|
||||
Upgrade on a dedicated web server
|
||||
---------------------------------
|
||||
|
||||
The last release is published on https://www.wallabag.org/pages/download-wallabag.html. In order to upgrade your wallabag installation and get the last version, run the following commands in you wallabag folder (replace ``2.0.8`` by the last release number):
|
||||
The last release is published on https://www.wallabag.org/pages/download-wallabag.html. In order to upgrade your wallabag installation and get the last version, run the following commands in you wallabag folder (replace ``2.1.3`` by the last release number):
|
||||
|
||||
::
|
||||
|
||||
rm -rf var/cache/*
|
||||
git fetch origin
|
||||
git fetch --tags
|
||||
git checkout 2.0.8
|
||||
git checkout 2.1.3 --force
|
||||
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||
php bin/console cache:clear --env=prod
|
||||
|
||||
@ -26,7 +26,7 @@ Download the last release of wallabag:
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
(md5 hash of the 2.0.8 package: ``4f84c725d1d6e3345eae0a406115e5ff``)
|
||||
You will find the `md5 hash of the latest package on our website <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
||||
|
||||
Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours.
|
||||
|
||||
@ -263,7 +263,8 @@ Ressources tierces
|
||||
|
||||
Certaines applications ou bibliothèques utilisent notre API. En voici une liste non exhaustive :
|
||||
|
||||
- `Java wrapper for the wallabag API <https://github.com/Strubbl/wallabag-java>`_ par Strubbl.
|
||||
- `Java wrapper for the wallabag API <https://github.com/Strubbl/jWallabag>`_ par Strubbl.
|
||||
- `.NET library for the wallabag v2 API <https://github.com/jlnostr/wallabag-api>`_ par Julian Oster.
|
||||
- `Python API for wallabag <https://github.com/foxmask/wallabag_api>`_ par FoxMaSk, pour son projet `Trigger Happy <https://blog.trigger-happy.eu/>`_.
|
||||
- `Un plugin <https://github.com/joshp23/ttrss-to-wallabag-v2>`_ conçu pour `Tiny Tiny RSS <https://tt-rss.org/gitlab/fox/tt-rss/wikis/home>`_ qui utilise l'API wallabag v2. Par Josh Panter.
|
||||
- `Golang wrapper for the wallabag API <https://github.com/Strubbl/wallabago>`_ par Strubbl, pour son projet `wallabag-stats graphe <https://github.com/Strubbl/wallabag-stats>`_.
|
||||
|
||||
@ -11,7 +11,7 @@ Pour activer le mode maintenance, exécutez cette commande :
|
||||
|
||||
::
|
||||
|
||||
bin/console lexik:maintenance:lock --no-interaction
|
||||
bin/console lexik:maintenance:lock --no-interaction -e=prod
|
||||
|
||||
Vous pouvez spécifier votre adresse IP dans ``app/config/config.yml`` si vous souhaitez accéder à wallabag même si
|
||||
le mode maintenance est activé. Par exemple :
|
||||
@ -30,4 +30,4 @@ Pour désactiver le mode maintenance, exécutez cette commande :
|
||||
|
||||
::
|
||||
|
||||
bin/console lexik:maintenance:unlock
|
||||
bin/console lexik:maintenance:unlock -e=prod
|
||||
|
||||
@ -37,7 +37,7 @@ Arrêter RabbitMQ
|
||||
Configurer RabbitMQ dans wallabag
|
||||
---------------------------------
|
||||
|
||||
Modifiez votre fichier ``parameters.yml`` pour éditer la configuration RabbitMQ. Celle par défaut devrait convenir :
|
||||
Modifiez votre fichier ``app/config/parameters.yml`` pour éditer la configuration RabbitMQ. Celle par défaut devrait convenir :
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
@ -46,6 +46,10 @@ Modifiez votre fichier ``parameters.yml`` pour éditer la configuration RabbitMQ
|
||||
rabbitmq_user: guest
|
||||
rabbitmq_password: guest
|
||||
|
||||
Activer RabbitMQ dans wallabag
|
||||
------------------------------
|
||||
|
||||
Dans les paramètres internes, section **Import**, activez RabbitMQ (avec la valeur 1).
|
||||
|
||||
Démarrer les clients RabbitMQ
|
||||
-----------------------------
|
||||
@ -55,22 +59,22 @@ En fonction du service dont vous souhaitez importer vos données, vous devez act
|
||||
.. code:: bash
|
||||
|
||||
# for Pocket import
|
||||
bin/console rabbitmq:consumer import_pocket -w
|
||||
bin/console rabbitmq:consumer -e=prod import_pocket -w
|
||||
|
||||
# for Readability import
|
||||
bin/console rabbitmq:consumer import_readability -w
|
||||
bin/console rabbitmq:consumer -e=prod import_readability -w
|
||||
|
||||
# for Instapaper import
|
||||
bin/console rabbitmq:consumer import_instapaper -w
|
||||
bin/console rabbitmq:consumer -e=prod import_instapaper -w
|
||||
|
||||
# for wallabag v1 import
|
||||
bin/console rabbitmq:consumer import_wallabag_v1 -w
|
||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w
|
||||
|
||||
# for wallabag v2 import
|
||||
bin/console rabbitmq:consumer import_wallabag_v2 -w
|
||||
bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w
|
||||
|
||||
# for Firefox import
|
||||
bin/console rabbitmq:consumer import_firefox -w
|
||||
bin/console rabbitmq:consumer -e=prod import_firefox -w
|
||||
|
||||
# for Chrome import
|
||||
bin/console rabbitmq:consumer import_chrome -w
|
||||
bin/console rabbitmq:consumer -e=prod import_chrome -w
|
||||
|
||||
@ -28,13 +28,17 @@ Le serveur devrait déjà être démarré après l'installation. Si ce n'est pas
|
||||
Configurer Redis dans wallabag
|
||||
-------------------------------
|
||||
|
||||
Modifiez votre fichier ``parameters.yml`` pour éditer la configuration Redis. Celle par défaut devrait convenir :
|
||||
Modifiez votre fichier ``app/config/parameters.yml`` pour éditer la configuration Redis. Celle par défaut devrait convenir :
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
redis_host: localhost
|
||||
redis_port: 6379
|
||||
|
||||
Activer Redis dans wallabag
|
||||
---------------------------
|
||||
|
||||
Dans les paramètres internes, section **Import**, activez Redis (avec la valeur 1).
|
||||
|
||||
Démarrer les clients Redis
|
||||
--------------------------
|
||||
@ -44,28 +48,28 @@ En fonction du service dont vous souhaitez importer vos données, vous devez act
|
||||
.. code:: bash
|
||||
|
||||
# for Pocket import
|
||||
bin/console wallabag:import:redis-worker pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
|
||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
|
||||
|
||||
# for Readability import
|
||||
bin/console wallabag:import:redis-worker readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
|
||||
bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
|
||||
|
||||
# for Instapaper import
|
||||
bin/console wallabag:import:redis-worker instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
|
||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
|
||||
|
||||
# for wallabag v1 import
|
||||
bin/console wallabag:import:redis-worker wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
|
||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
|
||||
|
||||
# for wallabag v2 import
|
||||
bin/console wallabag:import:redis-worker wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
|
||||
bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
|
||||
|
||||
# for Firefox import
|
||||
bin/console wallabag:import:redis-worker firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
||||
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
||||
|
||||
# for Chrome import
|
||||
bin/console wallabag:import:redis-worker instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||
|
||||
Si vous souhaitez démarrer l'import pour quelques messages uniquement, vous pouvez spécifier cette valeur en paramètre (ici 12) et le client va s'arrêter après le 12ème message :
|
||||
|
||||
.. code:: bash
|
||||
|
||||
bin/console wallabag:import:redis-worker pocket -vv --maxIterations=12
|
||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12
|
||||
|
||||
10
docs/fr/developer/testsuite.rst
Normal file
10
docs/fr/developer/testsuite.rst
Normal file
@ -0,0 +1,10 @@
|
||||
Suite de tests
|
||||
==============
|
||||
|
||||
Pour assurer la qualité du développement de wallabag, nous avons écrit des tests avec `PHPUnit <https://phpunit.de>`_.
|
||||
|
||||
Si vous contribuez au projet (en traduisant l'application, en corrigeant des bugs ou en ajoutant une nouvelle fonctionnalité), merci d'écrire vos propres tests.
|
||||
|
||||
Pour lancer la suite de tests de wallabag, vous devez installer `ant <http://ant.apache.org>`_.
|
||||
|
||||
Ensuite, exécutez la commande ``make test``.
|
||||
@ -31,8 +31,8 @@ La documentation est disponible dans d'autres langues :
|
||||
|
||||
user/faq
|
||||
user/installation
|
||||
user/upgrade-2.0.x-2.1.y
|
||||
user/upgrade-2.0.x-2.0.y
|
||||
user/upgrade-2.0.x-2.1.1
|
||||
user/upgrade-2.0.x-2.1.1
|
||||
user/migration
|
||||
user/import
|
||||
user/create_account
|
||||
@ -45,6 +45,8 @@ La documentation est disponible dans d'autres langues :
|
||||
user/share
|
||||
user/filters
|
||||
user/tags
|
||||
user/parameters
|
||||
user/backup
|
||||
|
||||
.. _dev-docs:
|
||||
|
||||
|
||||
26
docs/fr/user/backup.rst
Normal file
26
docs/fr/user/backup.rst
Normal file
@ -0,0 +1,26 @@
|
||||
Sauvegarde de wallabag
|
||||
======================
|
||||
|
||||
Parce que des fois vous faites des erreurs avec votre installation de wallabag et vous perdez des données ou parce que vous souhaitez migrer votre installation sur un autre serveur, vous souhaitez faire une sauvegarde de vos données.
|
||||
Cette documentation décrit ce que vous devez sauvegarder.
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
wallabag stocke quelques paramètres (comme la configuration SMTP ou les infos de bases de données) dans le fichier `app/config/parameters.yml`.
|
||||
|
||||
Base de données
|
||||
---------------
|
||||
Comme wallabag supporte différentes sortes de bases de données, la manière de sauvegarder dépend du type de base de données que vous utilisez, donc vous devez vous en référez à la documentation correspondante.
|
||||
|
||||
Quelques exemples :
|
||||
|
||||
- MySQL: http://dev.mysql.com/doc/refman/5.7/en/backup-methods.html
|
||||
- PostgreSQL: https://www.postgresql.org/docs/current/static/backup.html
|
||||
|
||||
SQLite
|
||||
~~~~~~
|
||||
Pour sauvegarder une base SQLite, vous devez juste copier le répertoire `data/db` de votre installation wallabag.
|
||||
|
||||
Images
|
||||
------
|
||||
Les images sauvegardées par wallabag sont stockées dans `data/assets/images` (le stockage des images sera implémenté dans wallabag 2.2).
|
||||
@ -102,7 +102,7 @@ if *« readingTime >= 5 AND domainName = "github.com" »* then tag as *« long r
|
||||
Quels variables et opérateurs puis-je utiliser pour écrire mes règles ?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Les variables et opérateurs suivants peuvent être utilisés lors de la création de vos règles :
|
||||
Les variables et opérateurs suivants peuvent être utilisés lors de la création de vos règles (attention, pour certaines valeurs, vous devez ajouter des guillemets, par exemple ``language = "en"``) :
|
||||
|
||||
=========== ============================================== ========== ==========
|
||||
Variable Sens Opérateur Sens
|
||||
|
||||
@ -12,9 +12,21 @@ Il peut y avoir plusieurs raisons :
|
||||
Comment puis-je aider pour réparer ça ?
|
||||
---------------------------------------
|
||||
|
||||
- `en nous envoyant un email avec l'URL de l'article <mailto:hello@wallabag.org>`_
|
||||
- en essayant de réparer cet article par vous-même :) en créant un fichier pour l'article.
|
||||
Vous pouvez utiliser `cet outil <http://siteconfig.fivefilters.org/>`__.
|
||||
Vous pouvez `nous envoyer un email avec l'URL de l'article <mailto:hello@wallabag.org>`_.
|
||||
|
||||
Ou vous pouvez aussi essayer de résoudre ce problème vous même (comme ça, nous restons concentrés pour améliorer wallabag au lieu d'écrire ces fichiers de configuration :) ).
|
||||
|
||||
Vous pouvez essayer de voir si ça fonctionne ici : `http://f43.me/feed/test <http://f43.me/feed/test>`_ (ce site utilise principalement la même manière de fonctionner que wallabag pour récupérer les articles).
|
||||
|
||||
Si ça fonctionne ici et pas sur wallabag, c'est qu'il y a un souci avec wallabag qui casse le parser (difficile à résoudre : merci d'ouvrir un nouveau ticket à ce sujet).
|
||||
|
||||
Si ça ne fonctionne pas, vous pouvez essayer de créer un fichier de configuration en utilisant : `http://siteconfig.fivefilters.org/ <http://siteconfig.fivefilters.org/>`_ (sélectionnez les parties du contenu qui correspondent à ce que vous souhaitez garder). Vous pouvez `lire cette documentation avant <http://help.fivefilters.org/customer/en/portal/articles/223153-site-patterns>`_.
|
||||
|
||||
Vous pouvez tester ce fichier sur le site **f43.me** : cliquez sur **Want to try a custom siteconfig?** et insérez le fichier généré depuis siteconfig.fivefilters.org.
|
||||
|
||||
Répétez cette opération jusqu'à avoir quelque chose qui vous convienne.
|
||||
|
||||
Ensuite, vous pouvez créer une pull request ici `https://github.com/fivefilters/ftr-site-config <https://github.com/fivefilters/ftr-site-config>`_, qui est le projet principal pour stocker les fichiers de configuration.
|
||||
|
||||
Comment puis-je réessayer de récupérer le contenu ?
|
||||
---------------------------------------------------
|
||||
|
||||
@ -33,3 +33,10 @@ J'ai oublié mon mot de passe
|
||||
Vous pouvez réinitialiser votre mot de passe en cliquant sur ``Mot de passe oublié ?``,
|
||||
sur la page de connexion. Ensuite, renseignez votre adresse email ou votre nom d'utilisateur,
|
||||
un email vous sera envoyé.
|
||||
|
||||
J'ai l'erreur ``failed to load external entity`` quand j'essaie d'installer wallabag
|
||||
------------------------------------------------------------------------------------
|
||||
|
||||
Comme décrit `ici <https://github.com/wallabag/wallabag/issues/2529>`_, modifiez le fichier ``web/app.php`` et ajoutez la ligne ``libxml_disable_entity_loader(false);`` à la ligne 5.
|
||||
|
||||
C'est un bug lié à PHP et Doctrine, nous ne pouvons rien faire de notre côté.
|
||||
|
||||
@ -36,7 +36,7 @@ Depuis Readability
|
||||
Exportez vos données de Readability
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Sur la page des outils (`https://www.readability.com/tools/<https://www.readability.com/tools/>`_), cliquez sur "Export your data" dans la section "Data Export". Vous allez recevoir un email avec un lien pour télécharger le json.
|
||||
Sur la page des outils (`https://www.readability.com/tools/ <https://www.readability.com/tools/>`_), cliquez sur "Export your data" dans la section "Data Export". Vous allez recevoir un email avec un lien pour télécharger le json.
|
||||
|
||||
Importez vos données dans wallabag 2.x
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -52,7 +52,7 @@ Depuis Instapaper
|
||||
Exportez vos données de Instapaper
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Sur la page des paramètres (`https://www.instapaper.com/user<https://www.instapaper.com/user>`_), cliquez sur "Download .CSV file" dans la section "Export". Un fichier CSV se téléchargera (``instapaper-export.csv``).
|
||||
Sur la page des paramètres (`https://www.instapaper.com/user <https://www.instapaper.com/user>`_), cliquez sur "Download .CSV file" dans la section "Export". Un fichier CSV se téléchargera (``instapaper-export.csv``).
|
||||
|
||||
Importez vos données dans wallabag 2.x
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@ -6,6 +6,20 @@ Pré-requis
|
||||
|
||||
wallabag est compatible avec PHP >= 5.5, PHP 7 inclus.
|
||||
|
||||
.. note::
|
||||
|
||||
Pour installer wallabag facilement, nous avons créé un ``Makefile``, vous avez donc besoin d'avoir installé l'outil ``make``.
|
||||
|
||||
wallabag utilise un grand nombre de bibliothèques PHP pour fonctionner. Ces bibliothèques doivent être installées à l'aide d'un outil nommé Composer. Vous devez l'installer si ce n'est déjà fait et vous assurer que vous utilisez bien la version 1.2 (si vous avez déjà Composer, faite un ``composer selfupdate``).
|
||||
|
||||
Installation de Composer :
|
||||
|
||||
::
|
||||
|
||||
curl -s http://getcomposer.org/installer | php
|
||||
|
||||
Vous pouvez trouver des instructions spécifiques `ici (en anglais) <https://getcomposer.org/doc/00-intro.md>`__.
|
||||
|
||||
Vous aurez besoin des extensions suivantes pour que wallabag fonctionne. Il est possible que certaines de ces extensions soient déjà activées dans votre version de PHP, donc vous n'avez pas forcément besoin d'installer tous les paquets correspondants.
|
||||
|
||||
- php-session
|
||||
@ -36,36 +50,23 @@ Installation
|
||||
Sur un serveur dédié (méthode conseillée)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
wallabag utilise un grand nombre de bibliothèques PHP pour fonctionner. Ces bibliothèques doivent être installées à l'aide d'un outil nommé Composer. Vous devez l'installer si ce n'est déjà fait et vous assurer que vous utilisez bien la version 1.2 (si vous avez déjà Composer, faite un ``composer selfupdate``).
|
||||
|
||||
Installation de Composer :
|
||||
|
||||
::
|
||||
|
||||
curl -s http://getcomposer.org/installer | php
|
||||
|
||||
Vous pouvez trouver des instructions spécifiques `ici (en anglais) <https://getcomposer.org/doc/00-intro.md>`__.
|
||||
|
||||
Pour installer wallabag, vous devez exécuter ces commandes :
|
||||
|
||||
::
|
||||
|
||||
git clone https://github.com/wallabag/wallabag.git
|
||||
cd wallabag
|
||||
git checkout 2.1.1 --force
|
||||
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||
php bin/console wallabag:install --env=prod
|
||||
cd wallabag && make install
|
||||
|
||||
Pour démarrer le serveur interne à php et vérifier que tout s'est installé correctement, vous pouvez exécuter :
|
||||
|
||||
::
|
||||
|
||||
php bin/console server:run --env=prod
|
||||
make run
|
||||
|
||||
Et accéder wallabag à l'adresse http://lipdevotreserveur:8000
|
||||
|
||||
.. tip::
|
||||
Pour définir des paramètres via des variables d'environnement, vous pouvez les spécifier avec le préfixe ``SYMFONY__``. Par exemple, ``SYMFONY__DATABASE_DRIVER``. Vous pouvez lire `documentation Symfony <http://symfony.com/doc/current/cookbook/configuration/external_parameters.html>`__ pour en savoir plus.
|
||||
Pour définir des paramètres via des variables d'environnement, vous pouvez les spécifier avec le préfixe ``SYMFONY__``. Par exemple, ``SYMFONY__DATABASE_DRIVER``. Vous pouvez lire la `documentation Symfony <http://symfony.com/doc/current/cookbook/configuration/external_parameters.html>`__ pour en savoir plus.
|
||||
|
||||
Sur un serveur mutualisé
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -83,18 +84,18 @@ Exécutez cette commande pour télécharger et décompresser l'archive :
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
(hash md5 de l'archive 2.1.0 : ``6c33520e29cc754b687f9cee0398dede``)
|
||||
Vous trouverez `le hash md5 du dernier package sur notre site <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
||||
|
||||
Maintenant, lisez la documentation ci-dessous pour crééer un virtual host. Accédez ensuite à votre installation de wallabag.
|
||||
Si vous avez changé la configuration pour modifier le type de stockage (MySQL ou PostgreSQL), vous devrez vous créer un utilisateur via la commande ``php bin/console wallabag:install --env=prod``.
|
||||
|
||||
Installation avec Docker
|
||||
------------------------
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Nous vous proposons une image Docker pour installer wallabag facilement. Allez voir du côté de `Docker Hub <https://hub.docker.com/r/wallabag/wallabag/>`__ pour plus d'informations.
|
||||
|
||||
Commande pour démarrer le containeur
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
|
||||
50
docs/fr/user/parameters.rst
Normal file
50
docs/fr/user/parameters.rst
Normal file
@ -0,0 +1,50 @@
|
||||
À quoi servent les paramètres ?
|
||||
===============================
|
||||
.. csv-table:: Paramètres de base de données
|
||||
:header: "name", "default", "description"
|
||||
|
||||
"database_driver", "pdo_sqlite", "Doit être pdo_sqlite ou pdo_mysql ou pdo_pgsql"
|
||||
"database_host", "127.0.0.1", "Hôte de votre base de données (généralement localhost ou 127.0.0.1)"
|
||||
"database_port", "~", "Port de votre base de données (vous pouvez laisser ``~`` pour utiliser celui par défaut)"
|
||||
"database_name", "symfony", "Nom de votre base de données"
|
||||
"database_user", "root", "Utilisateur de votre base de données"
|
||||
"database_password", "~", "Mot de passe de cet utilisateur"
|
||||
"database_path", "``""%kernel.root_dir%/../data/db/wallabag.sqlite""``", "Uniquement pour SQLite. Chemin du fichier de base de données. Laissez vide pour les autres bases de données."
|
||||
"database_table_prefix", "wallabag_", "Toutes les tables de wallabag seront préfixées par cette chaine. Vous pouvez ajouter un ``_`` pour plus de clarté"
|
||||
"database_socket", "null", "Si votre base de données utilise un socket plutôt que tcp, spécifiez le chemin du socket (les autres paramètres de connexion seront alors ignorés)"
|
||||
|
||||
.. csv-table:: Configuration pour envoyer des emails depuis wallabag
|
||||
:header: "name", "default", "description"
|
||||
|
||||
"mailer_transport", "smtp", "Méthode de transport exacte utilisée pour envoyer des emails. Les valeurs correctes sont : smtp, gmail, mail, sendmail, null (ce qui désactivera l'envoi des emails)"
|
||||
"mailer_host", "127.0.0.1", "Hôte sur lequel se connecter quand on utilise smtp comme transport."
|
||||
"mailer_user", "~", "Utilisateur smtp."
|
||||
"mailer_password", "~", "Mot de passe de cet utilisateur."
|
||||
|
||||
.. csv-table:: Autres options de wallabag
|
||||
:header: "name", "default", "description"
|
||||
|
||||
"locale", "en", "Langue par défaut de votre instance wallabag (comme en, fr, es, etc.)"
|
||||
"secret", "ovmpmAWXRCabNlMgzlzFXDYmCFfzGv", "C'est une chaine qui doit être unique à votre application et qui est couramment utilisée pour ajouter plus d'entropie aux opérations relatives à la sécurité."
|
||||
"twofactor_auth", "true", "true pour activer l'authentification à deux facteurs"
|
||||
"twofactor_sender", "no-reply@wallabag.org", "Email de l'expéditeur du code de l'authentification à deux facteurs"
|
||||
"fosuser_registration", "true", "true pour activer l'inscription publique"
|
||||
"fosuser_confirmation", "true", "true pour envoyer un email de confirmation pour chaque création de compte"
|
||||
"from_email", "no-reply@wallabag.org", "Email de l'expéditeur pour chaque email envoyé"
|
||||
"rss_limit", "50", "Limite pour les flux RSS"
|
||||
|
||||
.. csv-table:: Configuration RabbitMQ
|
||||
:header: "name", "default", "description"
|
||||
|
||||
"rabbitmq_host", "localhost", "Hôte de votre instance RabbitMQ"
|
||||
"rabbitmq_port", "5672", "Port de votre instance RabbitMQ"
|
||||
"rabbitmq_user", "guest", "Utilisateur de votre instance RabbitMQ"
|
||||
"rabbitmq_password", "guest", "Mot de passe de cet utilisateur"
|
||||
|
||||
.. csv-table:: Configuration Redis
|
||||
:header: "name", "default", "description"
|
||||
|
||||
"redis_scheme", "tcp", "Définit le protocole utilisé pour commuiquer avec l'instance Redis. Les valeurs correctes sont : tcp, unix, http"
|
||||
"redis_host", "localhost", "IP ou hôte du serveur cible (ignoré pour un schéma unix)"
|
||||
"redis_port", "6379", "Port TCP/IP du serveur cible (ignoré pour un schéma unix)"
|
||||
"redis_path", "null", "Chemin du fichier de socket du domaine UNIX utilisé quand on se connecte à Redis en utilisant les sockets du domaine UNIX"
|
||||
@ -1,4 +1,4 @@
|
||||
Mettre à jour de la 2.0.x à la 2.1.y
|
||||
Mettre à jour de la 2.0.x à la 2.1.1
|
||||
====================================
|
||||
|
||||
.. warning::
|
||||
@ -7,8 +7,6 @@ Avant cette migration, si vous aviez configuré l'import depuis Pocket en ajouta
|
||||
Mise à jour sur un serveur dédié
|
||||
--------------------------------
|
||||
|
||||
La dernière version de wallabag est publiée à cette adresse : https://www.wallabag.org/pages/download-wallabag.html. Pour mettre à jour votre installation de wallabag, exécutez les commandes suivantes dans votre répertoire d'installation (remplacez ``2.1.1`` par le numéro de la dernière version) :
|
||||
|
||||
::
|
||||
|
||||
rm -rf var/cache/*
|
||||
@ -28,25 +26,45 @@ Téléchargez la dernière version de wallabag :
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
wget http://framabag.org/wallabag-release-2.1.1.tar.gz && tar xvf wallabag-release-2.1.1.tar.gz
|
||||
|
||||
(hash md5 de l'archive 2.1.0 : ``6c33520e29cc754b687f9cee0398dede``)
|
||||
(hash md5 de l'archive 2.1.1 : ``9584a3b60a2b2a4de87f536548caac93``)
|
||||
|
||||
Décompressez l'archive dans votre répertoire d'installation et remplacez le fichier ``app/config/parameters.yml`` avec le votre.
|
||||
|
||||
Nous avons ajouté de nouveaux paramètres dans cette nouvelle version. Vous devez donc éditer le fichier ``app/config/parameters.yml`` en ajoutant ces lignes (et en remplaçant par votre configuration) :
|
||||
Vérifiez que votre fichier ``app/config/parameters.yml`` contient tous les paramètres requis. Voici un fichier ``parameters.yml`` par défaut. Si vous ne savez pas quelle valeur mettre à un paramètre, laissez la valeur par défaut.
|
||||
|
||||
.. code-block:: bash
|
||||
.. code-block:: yml
|
||||
|
||||
# RabbitMQ processing
|
||||
rabbitmq_host: localhost
|
||||
rabbitmq_port: 5672
|
||||
rabbitmq_user: guest
|
||||
rabbitmq_password: guest
|
||||
parameters:
|
||||
database_driver: pdo_sqlite
|
||||
database_host: 127.0.0.1
|
||||
database_port: null
|
||||
database_name: symfony
|
||||
database_user: root
|
||||
database_password: null
|
||||
database_path: '%kernel.root_dir%/../data/db/wallabag.sqlite'
|
||||
database_table_prefix: wallabag_
|
||||
mailer_transport: smtp
|
||||
mailer_host: 127.0.0.1
|
||||
mailer_user: null
|
||||
mailer_password: null
|
||||
locale: en
|
||||
secret: ovmpmAWXRCabNlMgzlzFXDYmCFfzGv
|
||||
twofactor_auth: true
|
||||
twofactor_sender: no-reply@wallabag.org
|
||||
fosuser_registration: true
|
||||
fosuser_confirmation: true
|
||||
from_email: no-reply@wallabag.org
|
||||
rss_limit: 50
|
||||
rabbitmq_host: localhost
|
||||
rabbitmq_port: 5672
|
||||
rabbitmq_user: guest
|
||||
rabbitmq_password: guest
|
||||
redis_host: localhost
|
||||
redis_port: 6379
|
||||
|
||||
# Redis processing
|
||||
redis_host: localhost
|
||||
redis_port: 6379
|
||||
Vous trouverez `ici une documentation détaillée concernant les paramètres <http://doc.wallabag.org/fr/master/user/parameters.html>`_.
|
||||
|
||||
Si vous utilisez SQLite, vous devez également conserver le contenu du répertoire ``data/``.
|
||||
|
||||
@ -1,17 +1,17 @@
|
||||
Mettre à jour de la 2.0.x à la 2.0.y
|
||||
Mettre à jour de la 2.1.x à la 2.1.y
|
||||
====================================
|
||||
|
||||
Mise à jour sur un serveur dédié
|
||||
--------------------------------
|
||||
|
||||
La dernière version de wallabag est publiée à cette adresse : https://www.wallabag.org/pages/download-wallabag.html. Pour mettre à jour votre installation de wallabag, exécutez les commandes suivantes dans votre répertoire d'installation (remplacez ``2.0.8`` par le numéro de la dernière version) :
|
||||
La dernière version de wallabag est publiée à cette adresse : https://www.wallabag.org/pages/download-wallabag.html. Pour mettre à jour votre installation de wallabag, exécutez les commandes suivantes dans votre répertoire d'installation (remplacez ``2.1.3`` par le numéro de la dernière version) :
|
||||
|
||||
::
|
||||
|
||||
rm -rf var/cache/*
|
||||
git fetch origin
|
||||
git fetch --tags
|
||||
git checkout 2.0.8
|
||||
git checkout 2.1.3 --force
|
||||
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||
php bin/console cache:clear --env=prod
|
||||
|
||||
@ -26,7 +26,7 @@ Téléchargez la dernière version de wallabag :
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
(hash md5 de l'archive 2.0.8 : ``4f84c725d1d6e3345eae0a406115e5ff``)
|
||||
Vous trouverez `le hash md5 du dernier package sur notre site <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
||||
|
||||
Décompressez l'archive dans votre répertoire d'installation et remplacez le fichier ``app/config/parameters.yml`` avec le votre.
|
||||
|
||||
13
scripts/dev.sh
Normal file
13
scripts/dev.sh
Normal file
@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
# You can execute this file to install wallabag dev environment
|
||||
# eg: `sh dev.sh`
|
||||
|
||||
COMPOSER_COMMAND='composer'
|
||||
|
||||
DIR="${BASH_SOURCE}"
|
||||
if [ ! -d "$DIR" ]; then DIR="$PWD/scripts"; fi
|
||||
. "$DIR/require.sh"
|
||||
|
||||
$COMPOSER_COMMAND install
|
||||
php bin/console wallabag:install
|
||||
php bin/console server:run
|
||||
16
scripts/install.sh
Normal file
16
scripts/install.sh
Normal file
@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
# You can execute this file to install wallabag
|
||||
# eg: `sh install.sh prod`
|
||||
|
||||
COMPOSER_COMMAND='composer'
|
||||
|
||||
DIR="${BASH_SOURCE}"
|
||||
if [ ! -d "$DIR" ]; then DIR="$PWD/scripts"; fi
|
||||
. "$DIR/require.sh"
|
||||
|
||||
ENV=$1
|
||||
TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
|
||||
|
||||
git checkout $TAG
|
||||
SYMFONY_ENV=$ENV $COMPOSER_COMMAND install --no-dev -o --prefer-dist
|
||||
php bin/console wallabag:install --env=$ENV
|
||||
19
scripts/release.sh
Normal file
19
scripts/release.sh
Normal file
@ -0,0 +1,19 @@
|
||||
#! /usr/bin/env bash
|
||||
# You can execute this file to create a new package for wallabag
|
||||
# eg: `sh release.sh master /tmp wllbg-release prod`
|
||||
|
||||
VERSION=$1
|
||||
TMP_FOLDER=$2
|
||||
RELEASE_FOLDER=$3
|
||||
ENV=$4
|
||||
|
||||
rm -rf $TMP_FOLDER/$RELEASE_FOLDER
|
||||
mkdir $TMP_FOLDER/$RELEASE_FOLDER
|
||||
git clone git@github.com:wallabag/wallabag.git -b $VERSION $TMP_FOLDER/$RELEASE_FOLDER/$VERSION
|
||||
cd $TMP_FOLDER/$RELEASE_FOLDER/$VERSION && SYMFONY_ENV=$ENV composer up -n --no-dev
|
||||
cd $TMP_FOLDER/$RELEASE_FOLDER/$VERSION && php bin/console wallabag:install --env=$ENV
|
||||
cd $TMP_FOLDER/$RELEASE_FOLDER && tar czf wallabag-$VERSION.tar.gz --exclude="var/cache/*" --exclude="var/logs/*" --exclude="var/sessions/*" --exclude=".git" $VERSION
|
||||
echo "MD5 checksum of the package for wallabag $VERSION"
|
||||
md5 $TMP_FOLDER/$RELEASE_FOLDER/wallabag-$VERSION.tar.gz
|
||||
scp $TMP_FOLDER/$RELEASE_FOLDER/wallabag-$VERSION.tar.gz framasoft_bag@78.46.248.87:/var/www/framabag.org/web
|
||||
rm -rf $TMP_FOLDER/$RELEASE_FOLDER
|
||||
9
scripts/require.sh
Normal file
9
scripts/require.sh
Normal file
@ -0,0 +1,9 @@
|
||||
#! /usr/bin/env bash
|
||||
# File used to check dependencies
|
||||
|
||||
if [ ! -f composer.phar ]; then
|
||||
echo "composer.phar not found, we'll see if composer is installed globally."
|
||||
command -v composer >/dev/null 2>&1 || { echo >&2 "wallabag requires composer but it's not installed (see http://doc.wallabag.org/en/master/user/installation.html). Aborting."; exit 1; }
|
||||
else
|
||||
COMPOSER_COMMAND='composer.phar'
|
||||
fi
|
||||
19
scripts/update.sh
Normal file
19
scripts/update.sh
Normal file
@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
# You can execute this file to update wallabag
|
||||
# eg: `sh update.sh prod`
|
||||
|
||||
COMPOSER_COMMAND='composer'
|
||||
|
||||
DIR="${BASH_SOURCE}"
|
||||
if [ ! -d "$DIR" ]; then DIR="$PWD/scripts"; fi
|
||||
. "$DIR/require.sh"
|
||||
|
||||
ENV=$1
|
||||
TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
|
||||
|
||||
rm -rf var/cache/*
|
||||
git fetch origin
|
||||
git fetch --tags
|
||||
git checkout $TAG --force
|
||||
SYMFONY_ENV=$ENV $COMPOSER_COMMAND install --no-dev -o --prefer-dist
|
||||
php bin/console cache:clear --env=$ENV
|
||||
@ -7,6 +7,7 @@ use JMS\Serializer\Annotation\ExclusionPolicy;
|
||||
use JMS\Serializer\Annotation\Exclude;
|
||||
use JMS\Serializer\Annotation\VirtualProperty;
|
||||
use JMS\Serializer\Annotation\SerializedName;
|
||||
use JMS\Serializer\Annotation\Groups;
|
||||
use Wallabag\UserBundle\Entity\User;
|
||||
use Wallabag\CoreBundle\Entity\Entry;
|
||||
|
||||
@ -33,6 +34,8 @@ class Annotation
|
||||
* @var string
|
||||
*
|
||||
* @ORM\Column(name="text", type="text")
|
||||
*
|
||||
* @Groups({"entries_for_user", "export_all"})
|
||||
*/
|
||||
private $text;
|
||||
|
||||
@ -54,6 +57,8 @@ class Annotation
|
||||
* @var string
|
||||
*
|
||||
* @ORM\Column(name="quote", type="string")
|
||||
*
|
||||
* @Groups({"entries_for_user", "export_all"})
|
||||
*/
|
||||
private $quote;
|
||||
|
||||
@ -61,6 +66,8 @@ class Annotation
|
||||
* @var array
|
||||
*
|
||||
* @ORM\Column(name="ranges", type="array")
|
||||
*
|
||||
* @Groups({"entries_for_user", "export_all"})
|
||||
*/
|
||||
private $ranges;
|
||||
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace Wallabag\CoreBundle\Controller;
|
||||
namespace Wallabag\ApiBundle\Controller;
|
||||
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Wallabag\ApiBundle\Entity\Client;
|
||||
use Wallabag\CoreBundle\Form\Type\ClientType;
|
||||
use Wallabag\ApiBundle\Form\Type\ClientType;
|
||||
|
||||
class DeveloperController extends Controller
|
||||
{
|
||||
367
src/Wallabag/ApiBundle/Controller/EntryRestController.php
Normal file
367
src/Wallabag/ApiBundle/Controller/EntryRestController.php
Normal file
@ -0,0 +1,367 @@
|
||||
<?php
|
||||
|
||||
namespace Wallabag\ApiBundle\Controller;
|
||||
|
||||
use Hateoas\Configuration\Route;
|
||||
use Hateoas\Representation\Factory\PagerfantaFactory;
|
||||
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Wallabag\CoreBundle\Entity\Entry;
|
||||
use Wallabag\CoreBundle\Entity\Tag;
|
||||
|
||||
class EntryRestController extends WallabagRestController
|
||||
{
|
||||
/**
|
||||
* Check if an entry exist by url.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* parameters={
|
||||
* {"name"="url", "dataType"="string", "required"=true, "format"="An url", "description"="Url to check if it exists"},
|
||||
* {"name"="urls", "dataType"="string", "required"=false, "format"="An array of urls (?urls[]=http...&urls[]=http...)", "description"="Urls (as an array) to check if it exists"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function getEntriesExistsAction(Request $request)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
|
||||
$urls = $request->query->get('urls', []);
|
||||
|
||||
// handle multiple urls first
|
||||
if (!empty($urls)) {
|
||||
$results = [];
|
||||
foreach ($urls as $url) {
|
||||
$res = $this->getDoctrine()
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findByUrlAndUserId($url, $this->getUser()->getId());
|
||||
|
||||
$results[$url] = false === $res ? false : true;
|
||||
}
|
||||
|
||||
$json = $this->get('serializer')->serialize($results, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
// let's see if it is a simple url?
|
||||
$url = $request->query->get('url', '');
|
||||
|
||||
if (empty($url)) {
|
||||
throw $this->createAccessDeniedException('URL is empty?, logged user id: '.$this->getUser()->getId());
|
||||
}
|
||||
|
||||
$res = $this->getDoctrine()
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findByUrlAndUserId($url, $this->getUser()->getId());
|
||||
|
||||
$exists = false === $res ? false : true;
|
||||
|
||||
$json = $this->get('serializer')->serialize(['exists' => $exists], 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve all entries. It could be filtered by many options.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* parameters={
|
||||
* {"name"="archive", "dataType"="integer", "required"=false, "format"="1 or 0, all entries by default", "description"="filter by archived status."},
|
||||
* {"name"="starred", "dataType"="integer", "required"=false, "format"="1 or 0, all entries by default", "description"="filter by starred status."},
|
||||
* {"name"="sort", "dataType"="string", "required"=false, "format"="'created' or 'updated', default 'created'", "description"="sort entries by date."},
|
||||
* {"name"="order", "dataType"="string", "required"=false, "format"="'asc' or 'desc', default 'desc'", "description"="order of sort."},
|
||||
* {"name"="page", "dataType"="integer", "required"=false, "format"="default '1'", "description"="what page you want."},
|
||||
* {"name"="perPage", "dataType"="integer", "required"=false, "format"="default'30'", "description"="results per page."},
|
||||
* {"name"="tags", "dataType"="string", "required"=false, "format"="api,rest", "description"="a list of tags url encoded. Will returns entries that matches ALL tags."},
|
||||
* {"name"="since", "dataType"="integer", "required"=false, "format"="default '0'", "description"="The timestamp since when you want entries updated."},
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function getEntriesAction(Request $request)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
|
||||
$isArchived = (null === $request->query->get('archive')) ? null : (bool) $request->query->get('archive');
|
||||
$isStarred = (null === $request->query->get('starred')) ? null : (bool) $request->query->get('starred');
|
||||
$sort = $request->query->get('sort', 'created');
|
||||
$order = $request->query->get('order', 'desc');
|
||||
$page = (int) $request->query->get('page', 1);
|
||||
$perPage = (int) $request->query->get('perPage', 30);
|
||||
$tags = $request->query->get('tags', '');
|
||||
$since = $request->query->get('since', 0);
|
||||
|
||||
$pager = $this->getDoctrine()
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findEntries($this->getUser()->getId(), $isArchived, $isStarred, $sort, $order, $since, $tags);
|
||||
|
||||
$pager->setCurrentPage($page);
|
||||
$pager->setMaxPerPage($perPage);
|
||||
|
||||
$pagerfantaFactory = new PagerfantaFactory('page', 'perPage');
|
||||
$paginatedCollection = $pagerfantaFactory->createRepresentation(
|
||||
$pager,
|
||||
new Route(
|
||||
'api_get_entries',
|
||||
[
|
||||
'archive' => $isArchived,
|
||||
'starred' => $isStarred,
|
||||
'sort' => $sort,
|
||||
'order' => $order,
|
||||
'page' => $page,
|
||||
'perPage' => $perPage,
|
||||
'tags' => $tags,
|
||||
'since' => $since,
|
||||
],
|
||||
UrlGeneratorInterface::ABSOLUTE_URL
|
||||
)
|
||||
);
|
||||
|
||||
$json = $this->get('serializer')->serialize($paginatedCollection, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve a single entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="entry", "dataType"="integer", "requirement"="\w+", "description"="The entry ID"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function getEntryAction(Entry $entry)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
$this->validateUserAccess($entry->getUser()->getId());
|
||||
|
||||
$json = $this->get('serializer')->serialize($entry, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* parameters={
|
||||
* {"name"="url", "dataType"="string", "required"=true, "format"="http://www.test.com/article.html", "description"="Url for the entry."},
|
||||
* {"name"="title", "dataType"="string", "required"=false, "description"="Optional, we'll get the title from the page."},
|
||||
* {"name"="tags", "dataType"="string", "required"=false, "format"="tag1,tag2,tag3", "description"="a comma-separated list of tags."},
|
||||
* {"name"="starred", "dataType"="integer", "required"=false, "format"="1 or 0", "description"="entry already starred"},
|
||||
* {"name"="archive", "dataType"="integer", "required"=false, "format"="1 or 0", "description"="entry already archived"},
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function postEntriesAction(Request $request)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
|
||||
$url = $request->request->get('url');
|
||||
$title = $request->request->get('title');
|
||||
$isArchived = $request->request->get('archive');
|
||||
$isStarred = $request->request->get('starred');
|
||||
|
||||
$entry = $this->get('wallabag_core.entry_repository')->findByUrlAndUserId($url, $this->getUser()->getId());
|
||||
|
||||
if (false === $entry) {
|
||||
$entry = $this->get('wallabag_core.content_proxy')->updateEntry(
|
||||
new Entry($this->getUser()),
|
||||
$url
|
||||
);
|
||||
}
|
||||
|
||||
if (!is_null($title)) {
|
||||
$entry->setTitle($title);
|
||||
}
|
||||
|
||||
$tags = $request->request->get('tags', '');
|
||||
if (!empty($tags)) {
|
||||
$this->get('wallabag_core.content_proxy')->assignTagsToEntry($entry, $tags);
|
||||
}
|
||||
|
||||
if (!is_null($isStarred)) {
|
||||
$entry->setStarred((bool) $isStarred);
|
||||
}
|
||||
|
||||
if (!is_null($isArchived)) {
|
||||
$entry->setArchived((bool) $isArchived);
|
||||
}
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$em->persist($entry);
|
||||
|
||||
$em->flush();
|
||||
|
||||
$json = $this->get('serializer')->serialize($entry, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Change several properties of an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="entry", "dataType"="integer", "requirement"="\w+", "description"="The entry ID"}
|
||||
* },
|
||||
* parameters={
|
||||
* {"name"="title", "dataType"="string", "required"=false},
|
||||
* {"name"="tags", "dataType"="string", "required"=false, "format"="tag1,tag2,tag3", "description"="a comma-separated list of tags."},
|
||||
* {"name"="archive", "dataType"="integer", "required"=false, "format"="1 or 0", "description"="archived the entry."},
|
||||
* {"name"="starred", "dataType"="integer", "required"=false, "format"="1 or 0", "description"="starred the entry."},
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function patchEntriesAction(Entry $entry, Request $request)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
$this->validateUserAccess($entry->getUser()->getId());
|
||||
|
||||
$title = $request->request->get('title');
|
||||
$isArchived = $request->request->get('archive');
|
||||
$isStarred = $request->request->get('starred');
|
||||
|
||||
if (!is_null($title)) {
|
||||
$entry->setTitle($title);
|
||||
}
|
||||
|
||||
if (!is_null($isArchived)) {
|
||||
$entry->setArchived((bool) $isArchived);
|
||||
}
|
||||
|
||||
if (!is_null($isStarred)) {
|
||||
$entry->setStarred((bool) $isStarred);
|
||||
}
|
||||
|
||||
$tags = $request->request->get('tags', '');
|
||||
if (!empty($tags)) {
|
||||
$this->get('wallabag_core.content_proxy')->assignTagsToEntry($entry, $tags);
|
||||
}
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$em->flush();
|
||||
|
||||
$json = $this->get('serializer')->serialize($entry, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete **permanently** an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="entry", "dataType"="integer", "requirement"="\w+", "description"="The entry ID"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function deleteEntriesAction(Entry $entry)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
$this->validateUserAccess($entry->getUser()->getId());
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$em->remove($entry);
|
||||
$em->flush();
|
||||
|
||||
$json = $this->get('serializer')->serialize($entry, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve all tags for an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="entry", "dataType"="integer", "requirement"="\w+", "description"="The entry ID"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function getEntriesTagsAction(Entry $entry)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
$this->validateUserAccess($entry->getUser()->getId());
|
||||
|
||||
$json = $this->get('serializer')->serialize($entry->getTags(), 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add one or more tags to an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="entry", "dataType"="integer", "requirement"="\w+", "description"="The entry ID"}
|
||||
* },
|
||||
* parameters={
|
||||
* {"name"="tags", "dataType"="string", "required"=false, "format"="tag1,tag2,tag3", "description"="a comma-separated list of tags."},
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function postEntriesTagsAction(Request $request, Entry $entry)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
$this->validateUserAccess($entry->getUser()->getId());
|
||||
|
||||
$tags = $request->request->get('tags', '');
|
||||
if (!empty($tags)) {
|
||||
$this->get('wallabag_core.content_proxy')->assignTagsToEntry($entry, $tags);
|
||||
}
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$em->persist($entry);
|
||||
$em->flush();
|
||||
|
||||
$json = $this->get('serializer')->serialize($entry, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Permanently remove one tag for an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="tag", "dataType"="integer", "requirement"="\w+", "description"="The tag ID"},
|
||||
* {"name"="entry", "dataType"="integer", "requirement"="\w+", "description"="The entry ID"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function deleteEntriesTagsAction(Entry $entry, Tag $tag)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
$this->validateUserAccess($entry->getUser()->getId());
|
||||
|
||||
$entry->removeTag($tag);
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$em->persist($entry);
|
||||
$em->flush();
|
||||
|
||||
$json = $this->get('serializer')->serialize($entry, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
}
|
||||
171
src/Wallabag/ApiBundle/Controller/TagRestController.php
Normal file
171
src/Wallabag/ApiBundle/Controller/TagRestController.php
Normal file
@ -0,0 +1,171 @@
|
||||
<?php
|
||||
|
||||
namespace Wallabag\ApiBundle\Controller;
|
||||
|
||||
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Wallabag\CoreBundle\Entity\Entry;
|
||||
use Wallabag\CoreBundle\Entity\Tag;
|
||||
|
||||
class TagRestController extends WallabagRestController
|
||||
{
|
||||
/**
|
||||
* Retrieve all tags.
|
||||
*
|
||||
* @ApiDoc()
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function getTagsAction()
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
|
||||
$tags = $this->getDoctrine()
|
||||
->getRepository('WallabagCoreBundle:Tag')
|
||||
->findAllTags($this->getUser()->getId());
|
||||
|
||||
$json = $this->get('serializer')->serialize($tags, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Permanently remove one tag from **every** entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="tag", "dataType"="string", "required"=true, "requirement"="\w+", "description"="Tag as a string"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function deleteTagLabelAction(Request $request)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
$label = $request->request->get('tag', '');
|
||||
|
||||
$tag = $this->getDoctrine()->getRepository('WallabagCoreBundle:Tag')->findOneByLabel($label);
|
||||
|
||||
if (empty($tag)) {
|
||||
throw $this->createNotFoundException('Tag not found');
|
||||
}
|
||||
|
||||
$this->getDoctrine()
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->removeTag($this->getUser()->getId(), $tag);
|
||||
|
||||
$this->cleanOrphanTag($tag);
|
||||
|
||||
$json = $this->get('serializer')->serialize($tag, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Permanently remove some tags from **every** entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="tags", "dataType"="string", "required"=true, "format"="tag1,tag2", "description"="Tags as strings (comma splitted)"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function deleteTagsLabelAction(Request $request)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
|
||||
$tagsLabels = $request->request->get('tags', '');
|
||||
|
||||
$tags = [];
|
||||
|
||||
foreach (explode(',', $tagsLabels) as $tagLabel) {
|
||||
$tagEntity = $this->getDoctrine()->getRepository('WallabagCoreBundle:Tag')->findOneByLabel($tagLabel);
|
||||
|
||||
if (!empty($tagEntity)) {
|
||||
$tags[] = $tagEntity;
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($tags)) {
|
||||
throw $this->createNotFoundException('Tags not found');
|
||||
}
|
||||
|
||||
$this->getDoctrine()
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->removeTags($this->getUser()->getId(), $tags);
|
||||
|
||||
$this->cleanOrphanTag($tags);
|
||||
|
||||
$json = $this->get('serializer')->serialize($tags, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Permanently remove one tag from **every** entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="tag", "dataType"="integer", "requirement"="\w+", "description"="The tag"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function deleteTagAction(Tag $tag)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
|
||||
$this->getDoctrine()
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->removeTag($this->getUser()->getId(), $tag);
|
||||
|
||||
$this->cleanOrphanTag($tag);
|
||||
|
||||
$json = $this->get('serializer')->serialize($tag, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve version number.
|
||||
*
|
||||
* @ApiDoc()
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function getVersionAction()
|
||||
{
|
||||
$version = $this->container->getParameter('wallabag_core.version');
|
||||
|
||||
$json = $this->get('serializer')->serialize($version, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove orphan tag in case no entries are associated to it.
|
||||
*
|
||||
* @param Tag|array $tags
|
||||
*/
|
||||
private function cleanOrphanTag($tags)
|
||||
{
|
||||
if (!is_array($tags)) {
|
||||
$tags = [$tags];
|
||||
}
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
foreach ($tags as $tag) {
|
||||
if (count($tag->getEntries()) === 0) {
|
||||
$em->remove($tag);
|
||||
}
|
||||
}
|
||||
|
||||
$em->flush();
|
||||
}
|
||||
}
|
||||
@ -3,495 +3,25 @@
|
||||
namespace Wallabag\ApiBundle\Controller;
|
||||
|
||||
use FOS\RestBundle\Controller\FOSRestController;
|
||||
use Hateoas\Configuration\Route;
|
||||
use Hateoas\Representation\Factory\PagerfantaFactory;
|
||||
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
|
||||
use Wallabag\CoreBundle\Entity\Entry;
|
||||
use Wallabag\CoreBundle\Entity\Tag;
|
||||
|
||||
class WallabagRestController extends FOSRestController
|
||||
{
|
||||
private function validateAuthentication()
|
||||
protected function validateAuthentication()
|
||||
{
|
||||
if (false === $this->get('security.authorization_checker')->isGranted('IS_AUTHENTICATED_FULLY')) {
|
||||
throw new AccessDeniedException();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if an entry exist by url.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* parameters={
|
||||
* {"name"="url", "dataType"="string", "required"=true, "format"="An url", "description"="Url to check if it exists"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function getEntriesExistsAction(Request $request)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
|
||||
$url = $request->query->get('url', '');
|
||||
|
||||
if (empty($url)) {
|
||||
throw $this->createAccessDeniedException('URL is empty?, logged user id: '.$user->getId());
|
||||
}
|
||||
|
||||
$res = $this->getDoctrine()
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findByUrlAndUserId($url, $this->getUser()->getId());
|
||||
|
||||
$exists = false === $res ? false : true;
|
||||
|
||||
$json = $this->get('serializer')->serialize(['exists' => $exists], 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve all entries. It could be filtered by many options.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* parameters={
|
||||
* {"name"="archive", "dataType"="integer", "required"=false, "format"="1 or 0, all entries by default", "description"="filter by archived status."},
|
||||
* {"name"="starred", "dataType"="integer", "required"=false, "format"="1 or 0, all entries by default", "description"="filter by starred status."},
|
||||
* {"name"="sort", "dataType"="string", "required"=false, "format"="'created' or 'updated', default 'created'", "description"="sort entries by date."},
|
||||
* {"name"="order", "dataType"="string", "required"=false, "format"="'asc' or 'desc', default 'desc'", "description"="order of sort."},
|
||||
* {"name"="page", "dataType"="integer", "required"=false, "format"="default '1'", "description"="what page you want."},
|
||||
* {"name"="perPage", "dataType"="integer", "required"=false, "format"="default'30'", "description"="results per page."},
|
||||
* {"name"="tags", "dataType"="string", "required"=false, "format"="api,rest", "description"="a list of tags url encoded. Will returns entries that matches ALL tags."},
|
||||
* {"name"="since", "dataType"="integer", "required"=false, "format"="default '0'", "description"="The timestamp since when you want entries updated."},
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function getEntriesAction(Request $request)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
|
||||
$isArchived = (null === $request->query->get('archive')) ? null : (bool) $request->query->get('archive');
|
||||
$isStarred = (null === $request->query->get('starred')) ? null : (bool) $request->query->get('starred');
|
||||
$sort = $request->query->get('sort', 'created');
|
||||
$order = $request->query->get('order', 'desc');
|
||||
$page = (int) $request->query->get('page', 1);
|
||||
$perPage = (int) $request->query->get('perPage', 30);
|
||||
$tags = $request->query->get('tags', '');
|
||||
$since = $request->query->get('since', 0);
|
||||
|
||||
$pager = $this->getDoctrine()
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->findEntries($this->getUser()->getId(), $isArchived, $isStarred, $sort, $order, $since, $tags);
|
||||
|
||||
$pager->setCurrentPage($page);
|
||||
$pager->setMaxPerPage($perPage);
|
||||
|
||||
$pagerfantaFactory = new PagerfantaFactory('page', 'perPage');
|
||||
$paginatedCollection = $pagerfantaFactory->createRepresentation(
|
||||
$pager,
|
||||
new Route(
|
||||
'api_get_entries',
|
||||
[
|
||||
'archive' => $isArchived,
|
||||
'starred' => $isStarred,
|
||||
'sort' => $sort,
|
||||
'order' => $order,
|
||||
'page' => $page,
|
||||
'perPage' => $perPage,
|
||||
'tags' => $tags,
|
||||
'since' => $since,
|
||||
],
|
||||
UrlGeneratorInterface::ABSOLUTE_URL
|
||||
)
|
||||
);
|
||||
|
||||
$json = $this->get('serializer')->serialize($paginatedCollection, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve a single entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="entry", "dataType"="integer", "requirement"="\w+", "description"="The entry ID"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function getEntryAction(Entry $entry)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
$this->validateUserAccess($entry->getUser()->getId());
|
||||
|
||||
$json = $this->get('serializer')->serialize($entry, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* parameters={
|
||||
* {"name"="url", "dataType"="string", "required"=true, "format"="http://www.test.com/article.html", "description"="Url for the entry."},
|
||||
* {"name"="title", "dataType"="string", "required"=false, "description"="Optional, we'll get the title from the page."},
|
||||
* {"name"="tags", "dataType"="string", "required"=false, "format"="tag1,tag2,tag3", "description"="a comma-separated list of tags."},
|
||||
* {"name"="starred", "dataType"="integer", "required"=false, "format"="1 or 0", "description"="entry already starred"},
|
||||
* {"name"="archive", "dataType"="integer", "required"=false, "format"="1 or 0", "description"="entry already archived"},
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function postEntriesAction(Request $request)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
|
||||
$url = $request->request->get('url');
|
||||
$title = $request->request->get('title');
|
||||
$isArchived = $request->request->get('archive');
|
||||
$isStarred = $request->request->get('starred');
|
||||
|
||||
$entry = $this->get('wallabag_core.entry_repository')->findByUrlAndUserId($url, $this->getUser()->getId());
|
||||
|
||||
if (false === $entry) {
|
||||
$entry = $this->get('wallabag_core.content_proxy')->updateEntry(
|
||||
new Entry($this->getUser()),
|
||||
$url
|
||||
);
|
||||
}
|
||||
|
||||
if (!is_null($title)) {
|
||||
$entry->setTitle($title);
|
||||
}
|
||||
|
||||
$tags = $request->request->get('tags', '');
|
||||
if (!empty($tags)) {
|
||||
$this->get('wallabag_core.content_proxy')->assignTagsToEntry($entry, $tags);
|
||||
}
|
||||
|
||||
if (!is_null($isStarred)) {
|
||||
$entry->setStarred((bool) $isStarred);
|
||||
}
|
||||
|
||||
if (!is_null($isArchived)) {
|
||||
$entry->setArchived((bool) $isArchived);
|
||||
}
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$em->persist($entry);
|
||||
|
||||
$em->flush();
|
||||
|
||||
$json = $this->get('serializer')->serialize($entry, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Change several properties of an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="entry", "dataType"="integer", "requirement"="\w+", "description"="The entry ID"}
|
||||
* },
|
||||
* parameters={
|
||||
* {"name"="title", "dataType"="string", "required"=false},
|
||||
* {"name"="tags", "dataType"="string", "required"=false, "format"="tag1,tag2,tag3", "description"="a comma-separated list of tags."},
|
||||
* {"name"="archive", "dataType"="integer", "required"=false, "format"="1 or 0", "description"="archived the entry."},
|
||||
* {"name"="starred", "dataType"="integer", "required"=false, "format"="1 or 0", "description"="starred the entry."},
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function patchEntriesAction(Entry $entry, Request $request)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
$this->validateUserAccess($entry->getUser()->getId());
|
||||
|
||||
$title = $request->request->get('title');
|
||||
$isArchived = $request->request->get('archive');
|
||||
$isStarred = $request->request->get('starred');
|
||||
|
||||
if (!is_null($title)) {
|
||||
$entry->setTitle($title);
|
||||
}
|
||||
|
||||
if (!is_null($isArchived)) {
|
||||
$entry->setArchived((bool) $isArchived);
|
||||
}
|
||||
|
||||
if (!is_null($isStarred)) {
|
||||
$entry->setStarred((bool) $isStarred);
|
||||
}
|
||||
|
||||
$tags = $request->request->get('tags', '');
|
||||
if (!empty($tags)) {
|
||||
$this->get('wallabag_core.content_proxy')->assignTagsToEntry($entry, $tags);
|
||||
}
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$em->flush();
|
||||
|
||||
$json = $this->get('serializer')->serialize($entry, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete **permanently** an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="entry", "dataType"="integer", "requirement"="\w+", "description"="The entry ID"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function deleteEntriesAction(Entry $entry)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
$this->validateUserAccess($entry->getUser()->getId());
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$em->remove($entry);
|
||||
$em->flush();
|
||||
|
||||
$json = $this->get('serializer')->serialize($entry, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve all tags for an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="entry", "dataType"="integer", "requirement"="\w+", "description"="The entry ID"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function getEntriesTagsAction(Entry $entry)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
$this->validateUserAccess($entry->getUser()->getId());
|
||||
|
||||
$json = $this->get('serializer')->serialize($entry->getTags(), 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add one or more tags to an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="entry", "dataType"="integer", "requirement"="\w+", "description"="The entry ID"}
|
||||
* },
|
||||
* parameters={
|
||||
* {"name"="tags", "dataType"="string", "required"=false, "format"="tag1,tag2,tag3", "description"="a comma-separated list of tags."},
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function postEntriesTagsAction(Request $request, Entry $entry)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
$this->validateUserAccess($entry->getUser()->getId());
|
||||
|
||||
$tags = $request->request->get('tags', '');
|
||||
if (!empty($tags)) {
|
||||
$this->get('wallabag_core.content_proxy')->assignTagsToEntry($entry, $tags);
|
||||
}
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$em->persist($entry);
|
||||
$em->flush();
|
||||
|
||||
$json = $this->get('serializer')->serialize($entry, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Permanently remove one tag for an entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="tag", "dataType"="integer", "requirement"="\w+", "description"="The tag ID"},
|
||||
* {"name"="entry", "dataType"="integer", "requirement"="\w+", "description"="The entry ID"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function deleteEntriesTagsAction(Entry $entry, Tag $tag)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
$this->validateUserAccess($entry->getUser()->getId());
|
||||
|
||||
$entry->removeTag($tag);
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$em->persist($entry);
|
||||
$em->flush();
|
||||
|
||||
$json = $this->get('serializer')->serialize($entry, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve all tags.
|
||||
*
|
||||
* @ApiDoc()
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function getTagsAction()
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
|
||||
$tags = $this->getDoctrine()
|
||||
->getRepository('WallabagCoreBundle:Tag')
|
||||
->findAllTagsWithEntries($this->getUser()->getId());
|
||||
|
||||
$json = $this->get('serializer')->serialize($tags, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Permanently remove one tag from **every** entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="tag", "dataType"="string", "required"=true, "requirement"="\w+", "description"="Tag as a string"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function deleteTagLabelAction(Request $request)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
$label = $request->request->get('tag', '');
|
||||
|
||||
$tag = $this->getDoctrine()->getRepository('WallabagCoreBundle:Tag')->findOneByLabel($label);
|
||||
|
||||
if (empty($tag)) {
|
||||
throw $this->createNotFoundException('Tag not found');
|
||||
}
|
||||
|
||||
$this->getDoctrine()
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->removeTag($this->getUser()->getId(), $tag);
|
||||
|
||||
$json = $this->get('serializer')->serialize($tag, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Permanently remove some tags from **every** entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="tags", "dataType"="string", "required"=true, "format"="tag1,tag2", "description"="Tags as strings (comma splitted)"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function deleteTagsLabelAction(Request $request)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
|
||||
$tagsLabels = $request->request->get('tags', '');
|
||||
|
||||
$tags = [];
|
||||
|
||||
foreach (explode(',', $tagsLabels) as $tagLabel) {
|
||||
$tagEntity = $this->getDoctrine()->getRepository('WallabagCoreBundle:Tag')->findOneByLabel($tagLabel);
|
||||
|
||||
if (!empty($tagEntity)) {
|
||||
$tags[] = $tagEntity;
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($tags)) {
|
||||
throw $this->createNotFoundException('Tags not found');
|
||||
}
|
||||
|
||||
$this->getDoctrine()
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->removeTags($this->getUser()->getId(), $tags);
|
||||
|
||||
$json = $this->get('serializer')->serialize($tags, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Permanently remove one tag from **every** entry.
|
||||
*
|
||||
* @ApiDoc(
|
||||
* requirements={
|
||||
* {"name"="tag", "dataType"="integer", "requirement"="\w+", "description"="The tag"}
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function deleteTagAction(Tag $tag)
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
|
||||
$this->getDoctrine()
|
||||
->getRepository('WallabagCoreBundle:Entry')
|
||||
->removeTag($this->getUser()->getId(), $tag);
|
||||
|
||||
$json = $this->get('serializer')->serialize($tag, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve version number.
|
||||
*
|
||||
* @ApiDoc()
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function getVersionAction()
|
||||
{
|
||||
$version = $this->container->getParameter('wallabag_core.version');
|
||||
|
||||
$json = $this->get('serializer')->serialize($version, 'json');
|
||||
|
||||
return (new JsonResponse())->setJson($json);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate that the first id is equal to the second one.
|
||||
* If not, throw exception. It means a user try to access information from an other user.
|
||||
*
|
||||
* @param int $requestUserId User id from the requested source
|
||||
*/
|
||||
private function validateUserAccess($requestUserId)
|
||||
protected function validateUserAccess($requestUserId)
|
||||
{
|
||||
$user = $this->get('security.token_storage')->getToken()->getUser();
|
||||
if ($requestUserId != $user->getId()) {
|
||||
|
||||
@ -19,7 +19,7 @@ class AccessToken extends BaseAccessToken
|
||||
protected $id;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="Client")
|
||||
* @ORM\ManyToOne(targetEntity="Client", inversedBy="accessTokens")
|
||||
* @ORM\JoinColumn(nullable=false)
|
||||
*/
|
||||
protected $client;
|
||||
|
||||
@ -25,6 +25,16 @@ class Client extends BaseClient
|
||||
*/
|
||||
protected $name;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="RefreshToken", mappedBy="client", cascade={"remove"})
|
||||
*/
|
||||
protected $refreshTokens;
|
||||
|
||||
/**
|
||||
* @ORM\OneToMany(targetEntity="AccessToken", mappedBy="client", cascade={"remove"})
|
||||
*/
|
||||
protected $accessTokens;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
@ -19,7 +19,7 @@ class RefreshToken extends BaseRefreshToken
|
||||
protected $id;
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="Client")
|
||||
* @ORM\ManyToOne(targetEntity="Client", inversedBy="refreshTokens")
|
||||
* @ORM\JoinColumn(nullable=false)
|
||||
*/
|
||||
protected $client;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace Wallabag\CoreBundle\Form\Type;
|
||||
namespace Wallabag\ApiBundle\Form\Type;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\CallbackTransformer;
|
||||
@ -1,4 +1,9 @@
|
||||
entries:
|
||||
type: rest
|
||||
resource: "WallabagApiBundle:WallabagRest"
|
||||
resource: "WallabagApiBundle:EntryRest"
|
||||
name_prefix: api_
|
||||
|
||||
tags:
|
||||
type: rest
|
||||
resource: "WallabagApiBundle:TagRest"
|
||||
name_prefix: api_
|
||||
|
||||
@ -9,7 +9,7 @@ use Symfony\Component\Console\Helper\Table;
|
||||
use Symfony\Component\Console\Input\ArrayInput;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Output\NullOutput;
|
||||
use Symfony\Component\Console\Output\BufferedOutput;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Question\ConfirmationQuestion;
|
||||
use Symfony\Component\Console\Question\Question;
|
||||
@ -97,7 +97,8 @@ class InstallCommand extends ContainerAwareCommand
|
||||
try {
|
||||
$this->getContainer()->get('doctrine')->getManager()->getConnection()->connect();
|
||||
} catch (\Exception $e) {
|
||||
if (false === strpos($e->getMessage(), 'Unknown database')) {
|
||||
if (false === strpos($e->getMessage(), 'Unknown database')
|
||||
&& false === strpos($e->getMessage(), 'database "'.$this->getContainer()->getParameter('database_name').'" does not exist')) {
|
||||
$fulfilled = false;
|
||||
$status = '<error>ERROR!</error>';
|
||||
$help = 'Can\'t connect to the database: '.$e->getMessage();
|
||||
@ -363,7 +364,7 @@ class InstallCommand extends ContainerAwareCommand
|
||||
],
|
||||
[
|
||||
'name' => 'piwik_host',
|
||||
'value' => 'http://v2.wallabag.org',
|
||||
'value' => 'v2.wallabag.org',
|
||||
'section' => 'analytics',
|
||||
],
|
||||
[
|
||||
@ -420,16 +421,18 @@ class InstallCommand extends ContainerAwareCommand
|
||||
}
|
||||
|
||||
$this->getApplication()->setAutoExit(false);
|
||||
$exitCode = $this->getApplication()->run(new ArrayInput($parameters), new NullOutput());
|
||||
|
||||
$output = new BufferedOutput();
|
||||
$exitCode = $this->getApplication()->run(new ArrayInput($parameters), $output);
|
||||
|
||||
if (0 !== $exitCode) {
|
||||
$this->getApplication()->setAutoExit(true);
|
||||
|
||||
$errorMessage = sprintf('The command "%s" terminated with an error code: %u.', $command, $exitCode);
|
||||
$this->defaultOutput->writeln("<error>$errorMessage</error>");
|
||||
$exception = new \Exception($errorMessage, $exitCode);
|
||||
$this->defaultOutput->writeln('');
|
||||
$this->defaultOutput->writeln('<error>The command "'.$command.'" generates some errors: </error>');
|
||||
$this->defaultOutput->writeln($output->fetch());
|
||||
|
||||
throw $exception;
|
||||
die();
|
||||
}
|
||||
|
||||
// PDO does not always close the connection after Doctrine commands.
|
||||
|
||||
@ -34,10 +34,13 @@ class TagAllCommand extends ContainerAwareCommand
|
||||
}
|
||||
$tagger = $this->getContainer()->get('wallabag_core.rule_based_tagger');
|
||||
|
||||
$output->write(sprintf('Tagging entries for user « <info>%s</info> »... ', $user->getUserName()));
|
||||
$output->write(sprintf('Tagging entries for user « <comment>%s</comment> »... ', $user->getUserName()));
|
||||
|
||||
$entries = $tagger->tagAllForUser($user);
|
||||
|
||||
$output->writeln('<info>Done.</info>');
|
||||
$output->write(sprintf('Persist entries ... ', $user->getUserName()));
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
foreach ($entries as $entry) {
|
||||
$em->persist($entry);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user