Compare commits

..

1 Commits
2.2.3 ... 2.0.8

Author SHA1 Message Date
345a373dc8 Release wallabag 2.0.8 2016-09-07 15:06:48 +02:00
650 changed files with 24745 additions and 161437 deletions

View File

@ -8,7 +8,3 @@ indent_style = space
indent_size = 4
trim_trailing_whitespace = true
insert_final_newline = true
[*.{js,css}]
indent_style = space
indent_size = 2

View File

@ -1,14 +0,0 @@
{
"extends": "airbnb-base",
"parser": "babel-eslint",
"env": {
"browser": true,
"es6": true
},
"globals": {
"Routing": true
},
"rules": {
"import/no-extraneous-dependencies": ["error", {"devDependencies": true, "optionalDependencies": true, "peerDependencies": true}]
}
}

View File

@ -1,5 +1,3 @@
: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.

View File

@ -1,16 +1,11 @@
| Q | A
| ------------- | ---
| Bug fix? | yes/no
| New feature? | yes/no
| BC breaks? | yes/no
| Deprecations? | yes/no
| Tests pass? | yes/no
| Documentation | yes/no
| Translation | yes/no
| Fixed tickets | #...
| Bug fix? | yes|no
| New feature? | yes|no
| BC breaks? | yes|no
| Deprecations? | yes|no
| Tests pass? | yes|no
| Documentation | yes|no
| Translation | yes|no
| Fixed tickets | comma-separated list of tickets fixed by the PR, if any
| License | MIT
<!--
- Please fill in this template according to the PR you're about to submit.
- Replace this comment by a description of what your PR is solving.
-->

20
.gitignore vendored
View File

@ -21,12 +21,8 @@
/vendor/
# Assets and user uploads
web/uploads/
!web/bundles
web/bundles/*
!web/bundles/wallabagcore
/web/assets/images/*
!web/assets/images/.gitkeep
/web/bundles/
/web/uploads/
# Build
/app/build
@ -36,6 +32,7 @@ web/bundles/*
/composer.phar
# Data for wallabag
data/assets/*
data/db/wallabag*.sqlite
# Docker container logs and data
@ -44,14 +41,3 @@ docker/data/
# To avoid crazy stuff on some PR, we must manually FORCE ADD IT on each new release
composer.lock
# assets stuff
node_modules/
bin
app/Resources/build/
!/src/Wallabag/CoreBundle/Resources/public
/src/Wallabag/CoreBundle/Resources/public/*
# Test-generated files
admin-export.json
specialexport.json

View File

@ -1,3 +0,0 @@
{
"extends": "stylelint-config-standard"
}

View File

@ -1,9 +1,5 @@
language: php
services:
- rabbitmq
- redis
# faster builds on docker-container setup
sudo: false
@ -19,9 +15,6 @@ cache:
directories:
- vendor
- $HOME/.composer/cache
- node_modules
- $HOME/.cache/bower
- $HOME/.npm
php:
- 5.5
@ -30,9 +23,6 @@ php:
- 7.1
- nightly
node_js:
- "5"
env:
- DB=mysql
- DB=pgsql
@ -41,9 +31,30 @@ env:
matrix:
fast_finish: true
include:
# driver for PostgreSQL currently unsupported by HHVM, requires 3rd party dependency
- php: hhvm-3.12
sudo: required
dist: trusty
group: edge
env: DB=mysql
addons:
apt:
packages:
- mysql-server-5.6
- mysql-client-core-5.6
- mysql-client-5.6
services:
- mysql
- php: hhvm-3.12
sudo: required
dist: trusty
group: edge
env: DB=sqlite
- php: 7.0
env: CS_FIXER=run VALIDATE_TRANSLATION_FILE=run ASSETS=build DB=sqlite
env: CS_FIXER=run VALIDATE_TRANSLATION_FILE=run DB=sqlite
allow_failures:
- php: hhvm-3.12
- php: 7.1
- php: nightly
# exclude v1 branches
@ -57,12 +68,7 @@ before_script:
# xdebug isn't enable for PHP 7.1
- if [[ ! $PHP = hhvm* ]]; then phpenv config-rm xdebug.ini || echo "xdebug not available"; fi
- composer self-update --no-progress
- if [[ $DB = pgsql ]]; then psql -c 'create database wallabag_test;' -U postgres; fi;
install:
- 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;
- if [[ "$DB" = "pgsql" ]]; then psql -c 'create database wallabag_test;' -U postgres; fi;
before_install:
- if [[ $TRAVIS_REPO_SLUG = wallabag/wallabag ]]; then cp .composer-auth.json ~/.composer/auth.json; fi;
@ -70,9 +76,6 @@ before_install:
script:
- travis_wait composer update --no-interaction --no-progress
- ant prepare-$DB
- if [[ $VALIDATE_TRANSLATION_FILE = '' ]]; then ./bin/simple-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 src/Wallabag/UserBundle/Resources/translations -v ; fi;
- if [[ $ASSETS = build ]]; then ./node_modules/grunt-cli/bin/grunt tests; fi;
- phpunit -v
- 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;

View File

@ -1,650 +1,193 @@
# Changelog
## [2.2.3](https://github.com/wallabag/wallabag/tree/2.2.3) (2017-05-17)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.2.2...2.2.3)
- Lock guzzle-site-authenticator to avoid errors [\#3124](https://github.com/wallabag/wallabag/pull/3124) ([j0k3r](https://github.com/j0k3r))
- reorder contrib strings in about page [\#3123](https://github.com/wallabag/wallabag/pull/3123) ([X-dark](https://github.com/X-dark))
- Fixed documentation URL [\#3117](https://github.com/wallabag/wallabag/pull/3117) ([nicosomb](https://github.com/nicosomb))
- Update graby\* licenses [\#3097](https://github.com/wallabag/wallabag/pull/3097) ([j0k3r](https://github.com/j0k3r))
- Fix API pagination is broken if perPage is custom value [\#3096](https://github.com/wallabag/wallabag/pull/3096) ([aaa2000](https://github.com/aaa2000))
- Create a new entry via API even when its content can't be retrieved [\#3095](https://github.com/wallabag/wallabag/pull/3095) ([aaa2000](https://github.com/aaa2000))
- Translate error message in login page [\#3090](https://github.com/wallabag/wallabag/pull/3090) ([aaa2000](https://github.com/aaa2000))
- Fix display the form errors correctly [\#3082](https://github.com/wallabag/wallabag/pull/3082) ([aaa2000](https://github.com/aaa2000))
- Disable negative numbers in filters [\#3076](https://github.com/wallabag/wallabag/pull/3076) ([bourvill](https://github.com/bourvill))
- Small typo in documentation fix \#3061 [\#3072](https://github.com/wallabag/wallabag/pull/3072) ([bourvill](https://github.com/bourvill))
- Ignore tests exported files [\#3066](https://github.com/wallabag/wallabag/pull/3066) ([tcitworld](https://github.com/tcitworld))
- Correct create\_application en string [\#3064](https://github.com/wallabag/wallabag/pull/3064) ([gileri](https://github.com/gileri))
- Make symfony-assets-install use `relative` symlinks [\#3052](https://github.com/wallabag/wallabag/pull/3052) ([shtrom](https://github.com/shtrom))
- Add export notice at the end of the epub [\#3023](https://github.com/wallabag/wallabag/pull/3023) ([mart-e](https://github.com/mart-e))
- Save alpha channel when downloading PNG images [\#3017](https://github.com/wallabag/wallabag/pull/3017) ([Kdecherf](https://github.com/Kdecherf))
- Update paywall.rst \(more details and clear cache\) [\#2985](https://github.com/wallabag/wallabag/pull/2985) ([etiess](https://github.com/etiess))
- Update paywall.rst \(EN\) with details + clear cache [\#2971](https://github.com/wallabag/wallabag/pull/2971) ([j0k3r](https://github.com/j0k3r))
- remove language on html tag [\#2968](https://github.com/wallabag/wallabag/pull/2968) ([chrido](https://github.com/chrido))
## [2.2.2](https://github.com/wallabag/wallabag/tree/2.2.2) (2017-03-02)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.2.1...2.2.2)
- Changed wallabag version [\#2954](https://github.com/wallabag/wallabag/pull/2954) ([nicosomb](https://github.com/nicosomb))
- Update Polish translation [\#2932](https://github.com/wallabag/wallabag/pull/2932) ([mruminski](https://github.com/mruminski))
- Update Spanish translation [\#2917](https://github.com/wallabag/wallabag/pull/2917) ([ngosang](https://github.com/ngosang))
- Remove word repetition from german translation [\#2911](https://github.com/wallabag/wallabag/pull/2911) ([jlnostr](https://github.com/jlnostr))
- Italian documentation added [\#2878](https://github.com/wallabag/wallabag/pull/2878) ([matteocoder](https://github.com/matteocoder))
- Add informations about Apache 2.4 [\#2874](https://github.com/wallabag/wallabag/pull/2874) ([kgaut](https://github.com/kgaut))
- Fixed symlinks issue during release creation [\#2950](https://github.com/wallabag/wallabag/pull/2950) ([nicosomb](https://github.com/nicosomb))
- Use wallabag/tcpdf [\#2931](https://github.com/wallabag/wallabag/pull/2931) ([j0k3r](https://github.com/j0k3r))
- Add activation of 'rewrite' mod of Apache [\#2926](https://github.com/wallabag/wallabag/pull/2926) ([qtheuret](https://github.com/qtheuret))
- Updated CHANGELOG with latest changes [\#2916](https://github.com/wallabag/wallabag/pull/2916) ([nicosomb](https://github.com/nicosomb))
- Import: we now skip messages when user is null [\#2915](https://github.com/wallabag/wallabag/pull/2915) ([nicosomb](https://github.com/nicosomb))
- Added wallabag.it link in README [\#2913](https://github.com/wallabag/wallabag/pull/2913) ([nicosomb](https://github.com/nicosomb))
- Moved :it: documentation into it folder [\#2908](https://github.com/wallabag/wallabag/pull/2908) ([nicosomb](https://github.com/nicosomb))
- Alert that 2FA must be authorized in app/config/parameters.yml [\#2905](https://github.com/wallabag/wallabag/pull/2905) ([nicofrand](https://github.com/nicofrand))
- Update Spanish translation [\#2892](https://github.com/wallabag/wallabag/pull/2892) ([ngosang](https://github.com/ngosang))
- Doc: translated mobile apps configuration in french [\#2882](https://github.com/wallabag/wallabag/pull/2882) ([nicosomb](https://github.com/nicosomb))
- Fixed typo in "first\_steps" [\#2879](https://github.com/wallabag/wallabag/pull/2879) ([matteocoder](https://github.com/matteocoder))
- Doc - information about Apache 2.4 [\#2875](https://github.com/wallabag/wallabag/pull/2875) ([kgaut](https://github.com/kgaut))
- Log restricted access value [\#2869](https://github.com/wallabag/wallabag/pull/2869) ([j0k3r](https://github.com/j0k3r))
- docs 3rd party tools: update java wrapper, add cmd tool to add article [\#2860](https://github.com/wallabag/wallabag/pull/2860) ([Strubbl](https://github.com/Strubbl))
- fix misspells in polish translation [\#2846](https://github.com/wallabag/wallabag/pull/2846) ([mruminski](https://github.com/mruminski))
- Update RulerZ [\#2842](https://github.com/wallabag/wallabag/pull/2842) ([K-Phoen](https://github.com/K-Phoen))
- Show active list in the left menu during search [\#2841](https://github.com/wallabag/wallabag/pull/2841) ([Kdecherf](https://github.com/Kdecherf))
- Restored correct version for framework-extra-bundle [\#2840](https://github.com/wallabag/wallabag/pull/2840) ([nicosomb](https://github.com/nicosomb))
- scripts/update.sh: 18: scripts/update.sh: composer.phar: not found [\#2839](https://github.com/wallabag/wallabag/pull/2839) ([foxmask](https://github.com/foxmask))
- Update Oc version [\#2838](https://github.com/wallabag/wallabag/pull/2838) ([Quent-in](https://github.com/Quent-in))
- Search by term: extend to entries url [\#2832](https://github.com/wallabag/wallabag/pull/2832) ([Kdecherf](https://github.com/Kdecherf))
- Update of CraueConfigBundle in Occitan [\#2831](https://github.com/wallabag/wallabag/pull/2831) ([Quent-in](https://github.com/Quent-in))
- Fix rendering of entry title in Twig views [\#2830](https://github.com/wallabag/wallabag/pull/2830) ([Kdecherf](https://github.com/Kdecherf))
- Translate missing strings for de-DE. [\#2826](https://github.com/wallabag/wallabag/pull/2826) ([jlnostr](https://github.com/jlnostr))
- Renamed Developer section to API client management [\#2824](https://github.com/wallabag/wallabag/pull/2824) ([nicosomb](https://github.com/nicosomb))
- Fix nav-panel-search height [\#2818](https://github.com/wallabag/wallabag/pull/2818) ([Kdecherf](https://github.com/Kdecherf))
- Added details about upgrade from 2.1.x or 2.2.0 [\#2816](https://github.com/wallabag/wallabag/pull/2816) ([nicosomb](https://github.com/nicosomb))
- Documentation on how to configure mobile apps to work with wallabag.it [\#2788](https://github.com/wallabag/wallabag/pull/2788) ([Zettt](https://github.com/Zettt))
- first\_article.rst already inside articles.rst [\#2785](https://github.com/wallabag/wallabag/pull/2785) ([matteocoder](https://github.com/matteocoder))
- share.rst already integrated inside articles.rst [\#2784](https://github.com/wallabag/wallabag/pull/2784) ([matteocoder](https://github.com/matteocoder))
## [2.2.1](https://github.com/wallabag/wallabag/tree/2.2.1) (2017-01-31)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.2.0...2.2.1)
- Prepare wallabag 2.2.1 :rocket: [\#2812](https://github.com/wallabag/wallabag/pull/2812) ([nicosomb](https://github.com/nicosomb))
- Fixed duplicate entry for share\_public in craue\_setting\_table [\#2809](https://github.com/wallabag/wallabag/pull/2809) ([nicosomb](https://github.com/nicosomb))
## [2.2.0](https://github.com/wallabag/wallabag/tree/2.2.0) (2017-01-28)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.1.6.1...2.2.0)
- Prepare wallabag 2.2.0 🚀 [\#2790](https://github.com/wallabag/wallabag/pull/2790) ([nicosomb](https://github.com/nicosomb))
- Added indexes on is\_archived and is\_starred [\#2789](https://github.com/wallabag/wallabag/pull/2789) ([nicosomb](https://github.com/nicosomb))
- Fix \#2056 update config.yml [\#2624](https://github.com/wallabag/wallabag/pull/2624) ([Rurik19](https://github.com/Rurik19))
- Change version to 2.2.0-dev [\#2608](https://github.com/wallabag/wallabag/pull/2608) ([nicosomb](https://github.com/nicosomb))
- wallabag 2.2.0 [\#2416](https://github.com/wallabag/wallabag/pull/2416) ([j0k3r](https://github.com/j0k3r))
## [2.1.6.1](https://github.com/wallabag/wallabag/tree/2.1.6.1) (2017-01-23)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.1.6...2.1.6.1)
## [2.1.6](https://github.com/wallabag/wallabag/tree/2.1.6) (2017-01-18)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.1.5...2.1.6)
- Update copyright year [\#2736](https://github.com/wallabag/wallabag/pull/2736) ([lex111](https://github.com/lex111))
- Prepare wallabag 2.1.6 :rocket: [\#2759](https://github.com/wallabag/wallabag/pull/2759) ([nicosomb](https://github.com/nicosomb))
- Fixed possible JS injection via the title edition [\#2758](https://github.com/wallabag/wallabag/pull/2758) ([nicosomb](https://github.com/nicosomb))
## [2.1.5](https://github.com/wallabag/wallabag/tree/2.1.5) (2016-11-21)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.1.4...2.1.5)
- Prepare wallabag 2.1.5 [\#2625](https://github.com/wallabag/wallabag/pull/2625) ([nicosomb](https://github.com/nicosomb))
- Force composer to run as PHP 5.5.9 [\#2623](https://github.com/wallabag/wallabag/pull/2623) ([j0k3r](https://github.com/j0k3r))
## [2.1.4](https://github.com/wallabag/wallabag/tree/2.1.4) (2016-11-19)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.1.3...2.1.4)
- Updated changelog for 2.1.4 [\#2607](https://github.com/wallabag/wallabag/pull/2607) ([nicosomb](https://github.com/nicosomb))
- Add .travis.yml change to RELEASE\_PROCESS [\#2605](https://github.com/wallabag/wallabag/pull/2605) ([j0k3r](https://github.com/j0k3r))
- wallabag cant work on PostgreSQL \<= 9.1 [\#2604](https://github.com/wallabag/wallabag/pull/2604) ([j0k3r](https://github.com/j0k3r))
- Fix clear-cache problem using —no-dev [\#2603](https://github.com/wallabag/wallabag/pull/2603) ([j0k3r](https://github.com/j0k3r))
- Prepare wallabag 2.1.4 :rocket: [\#2596](https://github.com/wallabag/wallabag/pull/2596) ([nicosomb](https://github.com/nicosomb))
- User-agents have moved to site-config [\#2587](https://github.com/wallabag/wallabag/pull/2587) ([j0k3r](https://github.com/j0k3r))
- fix \#2582 - Documentation, Nginx config: disable all other PHP file from symphony [\#2584](https://github.com/wallabag/wallabag/pull/2584) ([blankoworld](https://github.com/blankoworld))
- Added help on config screen [\#2578](https://github.com/wallabag/wallabag/pull/2578) ([nicosomb](https://github.com/nicosomb))
- Added tooltips in header bar [\#2577](https://github.com/wallabag/wallabag/pull/2577) ([nicosomb](https://github.com/nicosomb))
- Changed behavior when we change language [\#2571](https://github.com/wallabag/wallabag/pull/2571) ([nicosomb](https://github.com/nicosomb))
- Added creation date on entries view [\#2570](https://github.com/wallabag/wallabag/pull/2570) ([nicosomb](https://github.com/nicosomb))
- Removed support website on about page [\#2565](https://github.com/wallabag/wallabag/pull/2565) ([nicosomb](https://github.com/nicosomb))
- Improve PR template [\#2563](https://github.com/wallabag/wallabag/pull/2563) ([j0k3r](https://github.com/j0k3r))
- Bigger image preview in case of only image content [\#2562](https://github.com/wallabag/wallabag/pull/2562) ([j0k3r](https://github.com/j0k3r))
- Improve tags list on small screen [\#2561](https://github.com/wallabag/wallabag/pull/2561) ([Rurik19](https://github.com/Rurik19))
- Replaced TokenStorage with TokenStorageInterface [\#2556](https://github.com/wallabag/wallabag/pull/2556) ([nicosomb](https://github.com/nicosomb))
- Reorder variable assignation in update.sh script, fix \#2554 [\#2555](https://github.com/wallabag/wallabag/pull/2555) ([dkrmr](https://github.com/dkrmr))
- Round readingtime to avoid crazy number [\#2552](https://github.com/wallabag/wallabag/pull/2552) ([j0k3r](https://github.com/j0k3r))
- Reordered documentation [\#2550](https://github.com/wallabag/wallabag/pull/2550) ([nicosomb](https://github.com/nicosomb))
- Updated default parameters.yml file in documentation [\#2546](https://github.com/wallabag/wallabag/pull/2546) ([nicosomb](https://github.com/nicosomb))
- Update the upgrade documentation [\#2545](https://github.com/wallabag/wallabag/pull/2545) ([nicosomb](https://github.com/nicosomb))
## [2.1.3](https://github.com/wallabag/wallabag/tree/2.1.3) (2016-11-04)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.1.2...2.1.3)
- Force user-agent for .slashdot.org [\#2528](https://github.com/wallabag/wallabag/pull/2528) ([Kdecherf](https://github.com/Kdecherf))
- Translation update - French [\#2519](https://github.com/wallabag/wallabag/pull/2519) ([Jibec](https://github.com/Jibec))
- docs: fix link to wallabag-stats project [\#2518](https://github.com/wallabag/wallabag/pull/2518) ([Strubbl](https://github.com/Strubbl))
- docs: update 3rd party projects by Strubbl [\#2514](https://github.com/wallabag/wallabag/pull/2514) ([Strubbl](https://github.com/Strubbl))
- Fix missing words in Android application documentation [\#2485](https://github.com/wallabag/wallabag/pull/2485) ([bmillemathias](https://github.com/bmillemathias))
- Removed MD5 hash in documentation [\#2466](https://github.com/wallabag/wallabag/pull/2466) ([nicosomb](https://github.com/nicosomb))
- Prepare wallabag 2.1.3 :rocket: [\#2536](https://github.com/wallabag/wallabag/pull/2536) ([nicosomb](https://github.com/nicosomb))
- Use created\_at as default sort [\#2534](https://github.com/wallabag/wallabag/pull/2534) ([j0k3r](https://github.com/j0k3r))
- Added documentation about failed to load external entity error [\#2530](https://github.com/wallabag/wallabag/pull/2530) ([nicosomb](https://github.com/nicosomb))
- Add Instapaper to CLI import [\#2524](https://github.com/wallabag/wallabag/pull/2524) ([lologhi](https://github.com/lologhi))
- fix path for the install scripts [\#2521](https://github.com/wallabag/wallabag/pull/2521) ([foxmask](https://github.com/foxmask))
- Inject parameter instead of service [\#2520](https://github.com/wallabag/wallabag/pull/2520) ([j0k3r](https://github.com/j0k3r))
- Updated Capistrano configuration [\#2513](https://github.com/wallabag/wallabag/pull/2513) ([nicosomb](https://github.com/nicosomb))
- Exploded WallabagRestController into many controllers [\#2509](https://github.com/wallabag/wallabag/pull/2509) ([nicosomb](https://github.com/nicosomb))
- Added the whole path to parameters.yml file [\#2508](https://github.com/wallabag/wallabag/pull/2508) ([nicosomb](https://github.com/nicosomb))
- Added require.sh to check if composer is installed [\#2507](https://github.com/wallabag/wallabag/pull/2507) ([nicosomb](https://github.com/nicosomb))
- Fixed entries export filtered with a tag [\#2506](https://github.com/wallabag/wallabag/pull/2506) ([nicosomb](https://github.com/nicosomb))
- Added tag label in the page title [\#2504](https://github.com/wallabag/wallabag/pull/2504) ([nicosomb](https://github.com/nicosomb))
- Added a check in Makefile to see if composer is installed [\#2500](https://github.com/wallabag/wallabag/pull/2500) ([nicosomb](https://github.com/nicosomb))
- Add relevant links to fetch content error page [\#2493](https://github.com/wallabag/wallabag/pull/2493) ([bmillemathias](https://github.com/bmillemathias))
- Added :fr: documentation for wallabag backup [\#2486](https://github.com/wallabag/wallabag/pull/2486) ([nicosomb](https://github.com/nicosomb))
- Document what to backup in Wallabag [\#2484](https://github.com/wallabag/wallabag/pull/2484) ([bmillemathias](https://github.com/bmillemathias))
- If reload content failed, dont update it [\#2482](https://github.com/wallabag/wallabag/pull/2482) ([j0k3r](https://github.com/j0k3r))
- Some fixes [\#2481](https://github.com/wallabag/wallabag/pull/2481) ([j0k3r](https://github.com/j0k3r))
- Portuguese \(Brazilian\) translation [\#2473](https://github.com/wallabag/wallabag/pull/2473) ([pmichelazzo](https://github.com/pmichelazzo))
- Update wallabag version for master branch [\#2467](https://github.com/wallabag/wallabag/pull/2467) ([nicosomb](https://github.com/nicosomb))
- UI Changes [\#2460](https://github.com/wallabag/wallabag/pull/2460) ([tcitworld](https://github.com/tcitworld))
## [2.1.2](https://github.com/wallabag/wallabag/tree/2.1.2) (2016-10-17)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.1.1...2.1.2)
- German: improve existing and add missing translation [\#2459](https://github.com/wallabag/wallabag/pull/2459) ([Strubbl](https://github.com/Strubbl))
- add link to German documentation in about page [\#2457](https://github.com/wallabag/wallabag/pull/2457) ([Strubbl](https://github.com/Strubbl))
- Bring make dev [\#2451](https://github.com/wallabag/wallabag/pull/2451) ([tcitworld](https://github.com/tcitworld))
- Update ISSUE\_TEMPLATE.md [\#2432](https://github.com/wallabag/wallabag/pull/2432) ([j0k3r](https://github.com/j0k3r))
- Define a dev version for the master [\#2417](https://github.com/wallabag/wallabag/pull/2417) ([j0k3r](https://github.com/j0k3r))
- try to reduce assets build npm connection failing by updating nodejs [\#2375](https://github.com/wallabag/wallabag/pull/2375) ([tcitworld](https://github.com/tcitworld))
- Fixed hardcoded title for internal settings [\#2464](https://github.com/wallabag/wallabag/pull/2464) ([nicosomb](https://github.com/nicosomb))
- Fix tabs on material [\#2455](https://github.com/wallabag/wallabag/pull/2455) ([tcitworld](https://github.com/tcitworld))
- Fix baggy display on small screens [\#2454](https://github.com/wallabag/wallabag/pull/2454) ([tcitworld](https://github.com/tcitworld))
- Prepare wallabag 2.1.2 :rocket: [\#2452](https://github.com/wallabag/wallabag/pull/2452) ([nicosomb](https://github.com/nicosomb))
- View improvements [\#2450](https://github.com/wallabag/wallabag/pull/2450) ([nicosomb](https://github.com/nicosomb))
- Fixed french and german doc homepages [\#2447](https://github.com/wallabag/wallabag/pull/2447) ([nicosomb](https://github.com/nicosomb))
- Added information about tagging rules in documentation [\#2446](https://github.com/wallabag/wallabag/pull/2446) ([nicosomb](https://github.com/nicosomb))
- Mention example instance in docs [\#2444](https://github.com/wallabag/wallabag/pull/2444) ([Kaligule](https://github.com/Kaligule))
- Minor fixes in the english documentation [\#2439](https://github.com/wallabag/wallabag/pull/2439) ([zertrin](https://github.com/zertrin))
- Added french documentation for upgrade [\#2435](https://github.com/wallabag/wallabag/pull/2435) ([nicosomb](https://github.com/nicosomb))
- Added french documentation for parameters.yml [\#2434](https://github.com/wallabag/wallabag/pull/2434) ([nicosomb](https://github.com/nicosomb))
- Lock deps for FOSUser [\#2429](https://github.com/wallabag/wallabag/pull/2429) ([j0k3r](https://github.com/j0k3r))
- Fix links on english documentation homepage [\#2426](https://github.com/wallabag/wallabag/pull/2426) ([nicosomb](https://github.com/nicosomb))
- Fixed display for note in installation page [\#2422](https://github.com/wallabag/wallabag/pull/2422) ([nicosomb](https://github.com/nicosomb))
- Avoid error when Redis isn't here in tests [\#2420](https://github.com/wallabag/wallabag/pull/2420) ([j0k3r](https://github.com/j0k3r))
- Fixed Twitter Cards by adding a description tag [\#2419](https://github.com/wallabag/wallabag/pull/2419) ([nicosomb](https://github.com/nicosomb))
- Added support of Twitter Cards for public articles [\#2418](https://github.com/wallabag/wallabag/pull/2418) ([nicosomb](https://github.com/nicosomb))
- Remove automatic closing of the window from bookmarklet [\#2414](https://github.com/wallabag/wallabag/pull/2414) ([szafranek](https://github.com/szafranek))
- When a sub command fail, display error message [\#2413](https://github.com/wallabag/wallabag/pull/2413) ([j0k3r](https://github.com/j0k3r))
- Fix PostgreSQL migrations [\#2412](https://github.com/wallabag/wallabag/pull/2412) ([j0k3r](https://github.com/j0k3r))
- Fix entities definition [\#2411](https://github.com/wallabag/wallabag/pull/2411) ([j0k3r](https://github.com/j0k3r))
- Optimize tag list display [\#2410](https://github.com/wallabag/wallabag/pull/2410) ([j0k3r](https://github.com/j0k3r))
- Show number of annotations instead of nbAnnotations placeholder [\#2406](https://github.com/wallabag/wallabag/pull/2406) ([szafranek](https://github.com/szafranek))
- Fix few invalid HTML tags [\#2405](https://github.com/wallabag/wallabag/pull/2405) ([szafranek](https://github.com/szafranek))
- Cleaned up documentation for installation process [\#2403](https://github.com/wallabag/wallabag/pull/2403) ([nicosomb](https://github.com/nicosomb))
- Removed 1.x stuff in CHANGELOG [\#2402](https://github.com/wallabag/wallabag/pull/2402) ([nicosomb](https://github.com/nicosomb))
- Set env to prod in documentation [\#2400](https://github.com/wallabag/wallabag/pull/2400) ([j0k3r](https://github.com/j0k3r))
- Use default locale for user config [\#2399](https://github.com/wallabag/wallabag/pull/2399) ([j0k3r](https://github.com/j0k3r))
- Ensure orphan tag are remove in API [\#2397](https://github.com/wallabag/wallabag/pull/2397) ([j0k3r](https://github.com/j0k3r))
- Update messages.pl.yml [\#2396](https://github.com/wallabag/wallabag/pull/2396) ([mruminski](https://github.com/mruminski))
- Add ability to use socket [\#2395](https://github.com/wallabag/wallabag/pull/2395) ([j0k3r](https://github.com/j0k3r))
- Ability to check multiple urls in API [\#2393](https://github.com/wallabag/wallabag/pull/2393) ([j0k3r](https://github.com/j0k3r))
- Added default picture if preview picture is null [\#2389](https://github.com/wallabag/wallabag/pull/2389) ([nicosomb](https://github.com/nicosomb))
- Fixed two-factor checkbox display in user admin panel [\#2388](https://github.com/wallabag/wallabag/pull/2388) ([nicosomb](https://github.com/nicosomb))
- Changed Changelog by using github-changelog-generator from @skywinder [\#2386](https://github.com/wallabag/wallabag/pull/2386) ([nicosomb](https://github.com/nicosomb))
- Added documentation about siteconfig fix [\#2385](https://github.com/wallabag/wallabag/pull/2385) ([nicosomb](https://github.com/nicosomb))
- Added OpenGraph support for public articles [\#2383](https://github.com/wallabag/wallabag/pull/2383) ([nicosomb](https://github.com/nicosomb))
- Fix exists API call [\#2377](https://github.com/wallabag/wallabag/pull/2377) ([tcitworld](https://github.com/tcitworld))
- Clickable tags [\#2374](https://github.com/wallabag/wallabag/pull/2374) ([tcitworld](https://github.com/tcitworld))
- Remove mouf/nodejs-installer from composer [\#2363](https://github.com/wallabag/wallabag/pull/2363) ([j0k3r](https://github.com/j0k3r))
- Changed relation between API client and refresh token [\#2351](https://github.com/wallabag/wallabag/pull/2351) ([nicosomb](https://github.com/nicosomb))
- Fix relations export for Entry [\#2332](https://github.com/wallabag/wallabag/pull/2332) ([j0k3r](https://github.com/j0k3r))
## [2.1.1](https://github.com/wallabag/wallabag/tree/2.1.1) (2016-10-04)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.1.0...2.1.1)
- Create config even if user is disabled [\#2359](https://github.com/wallabag/wallabag/pull/2359) ([j0k3r](https://github.com/j0k3r))
- Add php-bcmath extension to requirements [\#2354](https://github.com/wallabag/wallabag/pull/2354) ([Zayon](https://github.com/Zayon))
- Basically, fix everything [\#2353](https://github.com/wallabag/wallabag/pull/2353) ([tcitworld](https://github.com/tcitworld))
- Prepare wallabag 2.1.1 [\#2349](https://github.com/wallabag/wallabag/pull/2349) ([nicosomb](https://github.com/nicosomb))
- Update messages.pl.yml [\#2341](https://github.com/wallabag/wallabag/pull/2341) ([mruminski](https://github.com/mruminski))
- small improvement for german translation [\#2340](https://github.com/wallabag/wallabag/pull/2340) ([Strubbl](https://github.com/Strubbl))
- Fix for 2.1 installation [\#2338](https://github.com/wallabag/wallabag/pull/2338) ([j0k3r](https://github.com/j0k3r))
## [2.1.0](https://github.com/wallabag/wallabag/tree/2.1.0) (2016-10-03)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.0.8...2.1.0)
- Docker : install PHP 'gd' extension [\#2319](https://github.com/wallabag/wallabag/pull/2319) ([pmartin](https://github.com/pmartin))
- Fix issue \#2296: epub export with special chars in the title. [\#2297](https://github.com/wallabag/wallabag/pull/2297) ([egilli](https://github.com/egilli))
- Remove error message when creating ePub versions [\#2330](https://github.com/wallabag/wallabag/pull/2330) ([pmichelazzo](https://github.com/pmichelazzo))
- wallabag 2.1 [\#1999](https://github.com/wallabag/wallabag/pull/1999) ([nicosomb](https://github.com/nicosomb))
## [2.0.8](https://github.com/wallabag/wallabag/tree/2.0.8) (2016-09-07)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.0.7...2.0.8)
- Allow failure for PHP 7.1 [\#2236](https://github.com/wallabag/wallabag/pull/2236) ([j0k3r](https://github.com/j0k3r))
- Prepare wallabag 2.0.8 [\#2271](https://github.com/wallabag/wallabag/pull/2271) ([nicosomb](https://github.com/nicosomb))
- Add a check for the database connection [\#2262](https://github.com/wallabag/wallabag/pull/2262) ([j0k3r](https://github.com/j0k3r))
- Fix issue \#1991: correction of the height field to add articles [\#2241](https://github.com/wallabag/wallabag/pull/2241) ([modos189](https://github.com/modos189))
- V2 improve view [\#2238](https://github.com/wallabag/wallabag/pull/2238) ([modos189](https://github.com/modos189))
- Add configuration for german documentation [\#2235](https://github.com/wallabag/wallabag/pull/2235) ([nicosomb](https://github.com/nicosomb))
- Fixes mailto link in documentation [\#2234](https://github.com/wallabag/wallabag/pull/2234) ([cstuder](https://github.com/cstuder))
- Cut entries title in card view: continued [\#2230](https://github.com/wallabag/wallabag/pull/2230) ([modos189](https://github.com/modos189))
## [2.0.7](https://github.com/wallabag/wallabag/tree/2.0.7) (2016-08-22)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.0.6...2.0.7)
- Prepare wallabag 2.0.7 [\#2226](https://github.com/wallabag/wallabag/pull/2226) ([nicosomb](https://github.com/nicosomb))
- Avoid breaking import when fetching fail [\#2224](https://github.com/wallabag/wallabag/pull/2224) ([j0k3r](https://github.com/j0k3r))
- Added creation date and reading time on article view [\#2222](https://github.com/wallabag/wallabag/pull/2222) ([nicosomb](https://github.com/nicosomb))
- Replaced favorite word/icon with star one [\#2221](https://github.com/wallabag/wallabag/pull/2221) ([nicosomb](https://github.com/nicosomb))
- Enable PATCH method for CORS in API part [\#2220](https://github.com/wallabag/wallabag/pull/2220) ([Rurik19](https://github.com/Rurik19))
- Enable CORS headers for OAUTH part [\#2216](https://github.com/wallabag/wallabag/pull/2216) ([Rurik19](https://github.com/Rurik19))
- Run tests on an uptodate HHVM [\#2134](https://github.com/wallabag/wallabag/pull/2134) ([j0k3r](https://github.com/j0k3r))
- Fix form user display when 2FA is disabled [\#2095](https://github.com/wallabag/wallabag/pull/2095) ([nicosomb](https://github.com/nicosomb))
## [2.0.6](https://github.com/wallabag/wallabag/tree/2.0.6) (2016-08-10)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.0.5...2.0.6)
- Run PHP 7.1 on Travis [\#2048](https://github.com/wallabag/wallabag/pull/2048) ([j0k3r](https://github.com/j0k3r))
- Prepare release 2.0.6 [\#2212](https://github.com/wallabag/wallabag/pull/2212) ([nicosomb](https://github.com/nicosomb))
- Fixed typo in entry:notice:entry\_saved [\#2200](https://github.com/wallabag/wallabag/pull/2200) ([charno6](https://github.com/charno6))
- Handling socials links into a config file [\#2199](https://github.com/wallabag/wallabag/pull/2199) ([Simounet](https://github.com/Simounet))
- FIX image inside a figure element max-width [\#2198](https://github.com/wallabag/wallabag/pull/2198) ([Simounet](https://github.com/Simounet))
- Remove binary from repo [\#2195](https://github.com/wallabag/wallabag/pull/2195) ([j0k3r](https://github.com/j0k3r))
- Fixed spelling Artúclos --\> Artículos [\#2194](https://github.com/wallabag/wallabag/pull/2194) ([benages](https://github.com/benages))
- Fix 3rd-Party Apps links \(Chrome & Firefox\) [\#2185](https://github.com/wallabag/wallabag/pull/2185) ([tcitworld](https://github.com/tcitworld))
- Change the way to login user in tests [\#2172](https://github.com/wallabag/wallabag/pull/2172) ([j0k3r](https://github.com/j0k3r))
- Fix a few french translations typos [\#2165](https://github.com/wallabag/wallabag/pull/2165) ([tcitworld](https://github.com/tcitworld))
- Update symlink to php-cs-fixer [\#2160](https://github.com/wallabag/wallabag/pull/2160) ([j0k3r](https://github.com/j0k3r))
- Handle only upper or only lower reading filter [\#2157](https://github.com/wallabag/wallabag/pull/2157) ([j0k3r](https://github.com/j0k3r))
- Try to find bad redirection after delete [\#2156](https://github.com/wallabag/wallabag/pull/2156) ([j0k3r](https://github.com/j0k3r))
- Use friendsofphp instead of fabpot [\#2155](https://github.com/wallabag/wallabag/pull/2155) ([j0k3r](https://github.com/j0k3r))
- translate documentation to German [\#2148](https://github.com/wallabag/wallabag/pull/2148) ([Strubbl](https://github.com/Strubbl))
- Corrected Regex for lighttpd rewrite [\#2145](https://github.com/wallabag/wallabag/pull/2145) ([even-allmighty](https://github.com/even-allmighty))
- Jump to Symfony 3.1 [\#2132](https://github.com/wallabag/wallabag/pull/2132) ([j0k3r](https://github.com/j0k3r))
## [2.0.5](https://github.com/wallabag/wallabag/tree/2.0.5) (2016-05-31)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.0.4...2.0.5)
All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
## [2.0.8] - 2016-09-07
- Improve English translation [\#2109](https://github.com/wallabag/wallabag/pull/2109) ([Poorchop](https://github.com/Poorchop))
- Update api.rst [\#2044](https://github.com/wallabag/wallabag/pull/2044) ([joshp23](https://github.com/joshp23))
- new details in the doc about the rights access again;\) [\#2038](https://github.com/wallabag/wallabag/pull/2038) ([foxmask](https://github.com/foxmask))
- Fix the deletion of Tags/Entries relation when delete an entry [\#2122](https://github.com/wallabag/wallabag/pull/2122) ([nicosomb](https://github.com/nicosomb))
- Prepare wallabag 2.0.5 [\#2118](https://github.com/wallabag/wallabag/pull/2118) ([nicosomb](https://github.com/nicosomb))
- Docs proposal [\#2112](https://github.com/wallabag/wallabag/pull/2112) ([Poorchop](https://github.com/Poorchop))
- add screenshots of android docu in English [\#2111](https://github.com/wallabag/wallabag/pull/2111) ([Strubbl](https://github.com/Strubbl))
- CS [\#2098](https://github.com/wallabag/wallabag/pull/2098) ([j0k3r](https://github.com/j0k3r))
- Fix image path in 2-factor authentification email [\#2097](https://github.com/wallabag/wallabag/pull/2097) ([bmillemathias](https://github.com/bmillemathias))
- Update CONTRIBUTING file [\#2094](https://github.com/wallabag/wallabag/pull/2094) ([nicosomb](https://github.com/nicosomb))
- Replace vertical dots in material theme with horizontal dots [\#2093](https://github.com/wallabag/wallabag/pull/2093) ([nicosomb](https://github.com/nicosomb))
- Starred and Archived clears if article is already exists [\#2092](https://github.com/wallabag/wallabag/pull/2092) ([Rurik19](https://github.com/Rurik19))
- Do not specify language in Firefox addon link [\#2069](https://github.com/wallabag/wallabag/pull/2069) ([merwan](https://github.com/merwan))
- Added information about permissions on data/ [\#2068](https://github.com/wallabag/wallabag/pull/2068) ([mariovor](https://github.com/mariovor))
- Update CraueConfigBundle.it.yml [\#2054](https://github.com/wallabag/wallabag/pull/2054) ([jamiroconca](https://github.com/jamiroconca))
- Add unread filter to entries pages [\#2052](https://github.com/wallabag/wallabag/pull/2052) ([danbartram](https://github.com/danbartram))
- Update api.rst [\#2049](https://github.com/wallabag/wallabag/pull/2049) ([joshp23](https://github.com/joshp23))
### Added
## [2.0.4](https://github.com/wallabag/wallabag/tree/2.0.4) (2016-05-07)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.0.3...2.0.4)
- [#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)
- Prepare wallabag 2.0.4 [\#2035](https://github.com/wallabag/wallabag/pull/2035) ([nicosomb](https://github.com/nicosomb))
- Change Travis/Scrutinizer pictures in README [\#2029](https://github.com/wallabag/wallabag/pull/2029) ([nicosomb](https://github.com/nicosomb))
- Docu for android app [\#2028](https://github.com/wallabag/wallabag/pull/2028) ([Strubbl](https://github.com/Strubbl))
- Update messages.it.yml [\#2024](https://github.com/wallabag/wallabag/pull/2024) ([jamiroconca](https://github.com/jamiroconca))
- Fix translation for validators [\#2023](https://github.com/wallabag/wallabag/pull/2023) ([nicosomb](https://github.com/nicosomb))
- Fix pagination bar on small devices [\#2022](https://github.com/wallabag/wallabag/pull/2022) ([nicosomb](https://github.com/nicosomb))
- Fix number of entries in tag/list [\#2020](https://github.com/wallabag/wallabag/pull/2020) ([nicosomb](https://github.com/nicosomb))
- Create CraueConfigBundle.it.yml [\#2019](https://github.com/wallabag/wallabag/pull/2019) ([jamiroconca](https://github.com/jamiroconca))
- Update config.yml, add italian as available language [\#2018](https://github.com/wallabag/wallabag/pull/2018) ([jamiroconca](https://github.com/jamiroconca))
- Create messages.it.yml [\#2017](https://github.com/wallabag/wallabag/pull/2017) ([jamiroconca](https://github.com/jamiroconca))
- Update documentation [\#2016](https://github.com/wallabag/wallabag/pull/2016) ([nicosomb](https://github.com/nicosomb))
- Fix tags listing [\#2013](https://github.com/wallabag/wallabag/pull/2013) ([nicosomb](https://github.com/nicosomb))
- integrate upgrade.rst [\#2012](https://github.com/wallabag/wallabag/pull/2012) ([biva](https://github.com/biva))
- upgrade.rst \(Creation of an upgrade page in the documentation\) [\#2011](https://github.com/wallabag/wallabag/pull/2011) ([biva](https://github.com/biva))
- Set the title via POST /api/entries [\#2010](https://github.com/wallabag/wallabag/pull/2010) ([nicosomb](https://github.com/nicosomb))
- Fix reading speed not defined when user was created via config page [\#2005](https://github.com/wallabag/wallabag/pull/2005) ([nicosomb](https://github.com/nicosomb))
- Fix old branch name urls [\#2001](https://github.com/wallabag/wallabag/pull/2001) ([tcitworld](https://github.com/tcitworld))
- Update CraueConfigBundle.es.yml [\#1992](https://github.com/wallabag/wallabag/pull/1992) ([jami7](https://github.com/jami7))
- Rights access to the folders of the project [\#1985](https://github.com/wallabag/wallabag/pull/1985) ([foxmask](https://github.com/foxmask))
- Es translation [\#1977](https://github.com/wallabag/wallabag/pull/1977) ([j0k3r](https://github.com/j0k3r))
- Fix filter reading time [\#1976](https://github.com/wallabag/wallabag/pull/1976) ([nicosomb](https://github.com/nicosomb))
- Fix typos in API documentation [\#1970](https://github.com/wallabag/wallabag/pull/1970) ([nicosomb](https://github.com/nicosomb))
- Create 3rd Resources chapter in API documentation [\#1969](https://github.com/wallabag/wallabag/pull/1969) ([nicosomb](https://github.com/nicosomb))
- Add FAQ page in documentation [\#1967](https://github.com/wallabag/wallabag/pull/1967) ([nicosomb](https://github.com/nicosomb))
### Fixed
## [2.0.3](https://github.com/wallabag/wallabag/tree/2.0.3) (2016-04-22)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.0.2...2.0.3)
- [#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
- Prepare release 2.0.3 [\#1965](https://github.com/wallabag/wallabag/pull/1965) ([nicosomb](https://github.com/nicosomb))
- Update API documentation with cURL examples [\#1962](https://github.com/wallabag/wallabag/pull/1962) ([nicosomb](https://github.com/nicosomb))
- [#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)
## [2.0.2](https://github.com/wallabag/wallabag/tree/2.0.2) (2016-04-21)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.9.2...2.0.2)
### Changed
- [#2221](https://github.com/wallabag/wallabag/pull/2221) Replaced favorite word/icon with star one (Nicolas Lœuillet)
### Fixed
- Fix translation for Go to your account button after subscription [\#1957](https://github.com/wallabag/wallabag/pull/1957) ([nicosomb](https://github.com/nicosomb))
- Update links in documentation [\#1954](https://github.com/wallabag/wallabag/pull/1954) ([nicosomb](https://github.com/nicosomb))
- Actualisation des liens morts \(Documentation de traduction\) [\#1953](https://github.com/wallabag/wallabag/pull/1953) ([maxi62330](https://github.com/maxi62330))
- Prepare release 2.0.2 [\#1948](https://github.com/wallabag/wallabag/pull/1948) ([nicosomb](https://github.com/nicosomb))
- Added some curl examples [\#1945](https://github.com/wallabag/wallabag/pull/1945) ([ddeimeke](https://github.com/ddeimeke))
- Update Travis configuration with branches renaming [\#1944](https://github.com/wallabag/wallabag/pull/1944) ([nicosomb](https://github.com/nicosomb))
- Optimize import [\#1942](https://github.com/wallabag/wallabag/pull/1942) ([nicosomb](https://github.com/nicosomb))
- [#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)
## [1.9.2](https://github.com/wallabag/wallabag/tree/1.9.2) (2016-04-18)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.0.1...1.9.2)
## [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)
- \[Do Not Merge\] Wallabag 1.9.2 [\#1814](https://github.com/wallabag/wallabag/pull/1814) ([tcitworld](https://github.com/tcitworld))
### Fixed
## [2.0.1](https://github.com/wallabag/wallabag/tree/2.0.1) (2016-04-11)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.0.0...2.0.1)
- [#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.0](https://github.com/wallabag/wallabag/tree/2.0.0) (2016-04-03)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.0.0-beta.2...2.0.0)
## [2.0.5] - 2016-05-31
## [2.0.0-beta.2](https://github.com/wallabag/wallabag/tree/2.0.0-beta.2) (2016-03-12)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.0.0-beta.1...2.0.0-beta.2)
### Added
## [2.0.0-beta.1](https://github.com/wallabag/wallabag/tree/2.0.0-beta.1) (2016-03-01)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.0.0-alpha.2...2.0.0-beta.1)
- [#2052](https://github.com/wallabag/wallabag/pull/2052) Add unread filter to entries pages (Dan Bartram)
## [2.0.0-alpha.2](https://github.com/wallabag/wallabag/tree/2.0.0-alpha.2) (2016-01-22)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.0.0-alpha.1...2.0.0-alpha.2)
### Changed
## [2.0.0-alpha.1](https://github.com/wallabag/wallabag/tree/2.0.0-alpha.1) (2016-01-07)
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.0.0-alpha.0...2.0.0-alpha.1)
- [#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)
## [2.0.0-alpha.0](https://github.com/wallabag/wallabag/tree/2.0.0-alpha.0) (2015-09-14)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.9.1-b...2.0.0-alpha.0)
### 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
- Update CONTRIBUTING.md [\#1415](https://github.com/wallabag/wallabag/pull/1415) ([sridharrajs](https://github.com/sridharrajs))
### Added
## [1.9.1-b](https://github.com/wallabag/wallabag/tree/1.9.1-b) (2015-08-04)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.9.1...1.9.1-b)
- [#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)
- 1.9.1-b [\#1274](https://github.com/wallabag/wallabag/pull/1274) ([nicosomb](https://github.com/nicosomb))
### Fixed
## [1.9.1](https://github.com/wallabag/wallabag/tree/1.9.1) (2015-08-03)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.9.1beta3...1.9.1)
- [#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
- Revert "fix link to save your first article" [\#1248](https://github.com/wallabag/wallabag/pull/1248) ([tcitworld](https://github.com/tcitworld))
- fix link to save your first article [\#1247](https://github.com/wallabag/wallabag/pull/1247) ([axelsimon](https://github.com/axelsimon))
- 1.9.1 [\#1267](https://github.com/wallabag/wallabag/pull/1267) ([nicosomb](https://github.com/nicosomb))
- [#1962](https://github.com/wallabag/wallabag/pull/1962) cURL examples in documentation about API (Dirk Deimeke)
## [1.9.1beta3](https://github.com/wallabag/wallabag/tree/1.9.1beta3) (2015-06-06)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.9.1beta2...1.9.1beta3)
### Fixed
## [1.9.1beta2](https://github.com/wallabag/wallabag/tree/1.9.1beta2) (2015-05-09)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.9.1beta1...1.9.1beta2)
- Forgot `composer.lock` file in 2.0.2 release so some users may encounter `Fatal error: Out of memory` error during installation
## [1.9.1beta1](https://github.com/wallabag/wallabag/tree/1.9.1beta1) (2015-04-08)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.9.1alpha2...1.9.1beta1)
## [2.0.2] - 2016-04-21
## [1.9.1alpha2](https://github.com/wallabag/wallabag/tree/1.9.1alpha2) (2015-04-07)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.9.1alpha1...1.9.1alpha2)
### Added
## [1.9.1alpha1](https://github.com/wallabag/wallabag/tree/1.9.1alpha1) (2015-03-08)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.9...1.9.1alpha1)
- [#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)
## [1.9](https://github.com/wallabag/wallabag/tree/1.9) (2015-02-18)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.9RC1...1.9)
### 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
- Version 1.9.0 [\#1081](https://github.com/wallabag/wallabag/pull/1081) ([tcitworld](https://github.com/tcitworld))
- [#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)
## [1.9RC1](https://github.com/wallabag/wallabag/tree/1.9RC1) (2015-02-16)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.9beta2...1.9RC1)
## [2.0.1] - 2016-04-11
### Added
## [1.9beta2](https://github.com/wallabag/wallabag/tree/1.9beta2) (2015-02-15)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.9beta...1.9beta2)
- [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)
## [1.9beta](https://github.com/wallabag/wallabag/tree/1.9beta) (2015-02-14)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.8.1old...1.9beta)
### 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
- Revert "Update german localisation." [\#1030](https://github.com/wallabag/wallabag/pull/1030) ([tcitworld](https://github.com/tcitworld))
- Update german localisation. [\#1028](https://github.com/wallabag/wallabag/pull/1028) ([jlnostr](https://github.com/jlnostr))
- Fixed \#993: add wallabag to packagist [\#1004](https://github.com/wallabag/wallabag/pull/1004) ([nicosomb](https://github.com/nicosomb))
- Update fr\_FR.utf8.po [\#986](https://github.com/wallabag/wallabag/pull/986) ([goofy-bz](https://github.com/goofy-bz))
- Make call to FTRSS silent to avoid warnings which can break import [\#974](https://github.com/wallabag/wallabag/pull/974) ([jbfavre](https://github.com/jbfavre))
## [1.8.1old](https://github.com/wallabag/wallabag/tree/1.8.1old) (2014-11-16)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.8.1bis...1.8.1old)
## [1.8.1bis](https://github.com/wallabag/wallabag/tree/1.8.1bis) (2014-11-16)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.8.1b...1.8.1bis)
## [1.8.1b](https://github.com/wallabag/wallabag/tree/1.8.1b) (2014-11-16)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.8.1...1.8.1b)
- 1.8.1b [\#933](https://github.com/wallabag/wallabag/pull/933) ([tcitworld](https://github.com/tcitworld))
## [1.8.1](https://github.com/wallabag/wallabag/tree/1.8.1) (2014-11-15)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.8.0...1.8.1)
- 1.8.1 [\#932](https://github.com/wallabag/wallabag/pull/932) ([nicosomb](https://github.com/nicosomb))
## [1.8.0](https://github.com/wallabag/wallabag/tree/1.8.0) (2014-10-10)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.7.2...1.8.0)
- 1.8.0 [\#863](https://github.com/wallabag/wallabag/pull/863) ([nicosomb](https://github.com/nicosomb))
## [1.7.2](https://github.com/wallabag/wallabag/tree/1.7.2) (2014-07-24)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.7.1...1.7.2)
- security fix [\#791](https://github.com/wallabag/wallabag/pull/791) ([mariroz](https://github.com/mariroz))
## [1.7.1](https://github.com/wallabag/wallabag/tree/1.7.1) (2014-07-15)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.7.0...1.7.1)
- 1.7.1 [\#761](https://github.com/wallabag/wallabag/pull/761) ([nicosomb](https://github.com/nicosomb))
## [1.7.0](https://github.com/wallabag/wallabag/tree/1.7.0) (2014-05-29)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.6.1b...1.7.0)
- 1.7, call me "Premium version" [\#712](https://github.com/wallabag/wallabag/pull/712) ([nicosomb](https://github.com/nicosomb))
## [1.6.1b](https://github.com/wallabag/wallabag/tree/1.6.1b) (2014-04-11)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.6.1...1.6.1b)
- 1.6.1 [\#634](https://github.com/wallabag/wallabag/pull/634) ([nicosomb](https://github.com/nicosomb))
## [1.6.1](https://github.com/wallabag/wallabag/tree/1.6.1) (2014-04-03)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.6.0...1.6.1)
## [1.6.0](https://github.com/wallabag/wallabag/tree/1.6.0) (2014-04-03)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.5.2...1.6.0)
- wallabag 1.6.0 [\#595](https://github.com/wallabag/wallabag/pull/595) ([nicosomb](https://github.com/nicosomb))
## [1.5.2](https://github.com/wallabag/wallabag/tree/1.5.2) (2014-02-21)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.5.1.1...1.5.2)
- 1.5.2 [\#481](https://github.com/wallabag/wallabag/pull/481) ([nicosomb](https://github.com/nicosomb))
- version number 1.5.1 [\#469](https://github.com/wallabag/wallabag/pull/469) ([nicosomb](https://github.com/nicosomb))
## [1.5.1.1](https://github.com/wallabag/wallabag/tree/1.5.1.1) (2014-02-19)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.5.1...1.5.1.1)
## [1.5.1](https://github.com/wallabag/wallabag/tree/1.5.1) (2014-02-19)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.5.0...1.5.1)
- 1.5.1 [\#468](https://github.com/wallabag/wallabag/pull/468) ([nicosomb](https://github.com/nicosomb))
## [1.5.0](https://github.com/wallabag/wallabag/tree/1.5.0) (2014-02-13)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.4.0...1.5.0)
- 1.5.0 [\#450](https://github.com/wallabag/wallabag/pull/450) ([nicosomb](https://github.com/nicosomb))
## [1.4.0](https://github.com/wallabag/wallabag/tree/1.4.0) (2014-02-03)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.3.1...1.4.0)
- changelog 1.4 [\#427](https://github.com/wallabag/wallabag/pull/427) ([nicosomb](https://github.com/nicosomb))
## [1.3.1](https://github.com/wallabag/wallabag/tree/1.3.1) (2014-01-07)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.3.0...1.3.1)
- poche 1.3.1 [\#387](https://github.com/wallabag/wallabag/pull/387) ([nicosomb](https://github.com/nicosomb))
## [1.3.0](https://github.com/wallabag/wallabag/tree/1.3.0) (2013-12-23)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.2.0...1.3.0)
- poche 1.3.0 [\#363](https://github.com/wallabag/wallabag/pull/363) ([nicosomb](https://github.com/nicosomb))
- 1.2.0 [\#326](https://github.com/wallabag/wallabag/pull/326) ([nicosomb](https://github.com/nicosomb))
## [1.2.0](https://github.com/wallabag/wallabag/tree/1.2.0) (2013-11-25)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.1.0...1.2.0)
- 1.1.0 [\#289](https://github.com/wallabag/wallabag/pull/289) ([nicosomb](https://github.com/nicosomb))
## [1.1.0](https://github.com/wallabag/wallabag/tree/1.1.0) (2013-10-25)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.0.0...1.1.0)
- merge 1.0.0 [\#256](https://github.com/wallabag/wallabag/pull/256) ([nicosomb](https://github.com/nicosomb))
## [1.0.0](https://github.com/wallabag/wallabag/tree/1.0.0) (2013-10-03)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.0-beta5.2...1.0.0)
## [1.0-beta5.2](https://github.com/wallabag/wallabag/tree/1.0-beta5.2) (2013-09-20)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.0-beta5.1...1.0-beta5.2)
## [1.0-beta5.1](https://github.com/wallabag/wallabag/tree/1.0-beta5.1) (2013-09-20)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.0-beta5...1.0-beta5.1)
## [1.0-beta5](https://github.com/wallabag/wallabag/tree/1.0-beta5) (2013-09-20)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.0-beta4...1.0-beta5)
- beta5 [\#226](https://github.com/wallabag/wallabag/pull/226) ([nicosomb](https://github.com/nicosomb))
- beta4 [\#181](https://github.com/wallabag/wallabag/pull/181) ([nicosomb](https://github.com/nicosomb))
## [1.0-beta4](https://github.com/wallabag/wallabag/tree/1.0-beta4) (2013-08-25)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.0-beta3...1.0-beta4)
## [1.0-beta3](https://github.com/wallabag/wallabag/tree/1.0-beta3) (2013-08-17)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.0-beta2...1.0-beta3)
- beta3 [\#141](https://github.com/wallabag/wallabag/pull/141) ([nicosomb](https://github.com/nicosomb))
- merge with beta2 [\#132](https://github.com/wallabag/wallabag/pull/132) ([nicosomb](https://github.com/nicosomb))
## [1.0-beta2](https://github.com/wallabag/wallabag/tree/1.0-beta2) (2013-08-11)
[Full Changelog](https://github.com/wallabag/wallabag/compare/1.0-beta1...1.0-beta2)
- merge dev into master [\#109](https://github.com/wallabag/wallabag/pull/109) ([nicosomb](https://github.com/nicosomb))
## [1.0-beta1](https://github.com/wallabag/wallabag/tree/1.0-beta1) (2013-08-07)
[Full Changelog](https://github.com/wallabag/wallabag/compare/0.3...1.0-beta1)
## [0.3](https://github.com/wallabag/wallabag/tree/0.3) (2013-07-31)
[Full Changelog](https://github.com/wallabag/wallabag/compare/0.2.1...0.3)
- v0.2.1 [\#74](https://github.com/wallabag/wallabag/pull/74) ([nicosomb](https://github.com/nicosomb))
## [0.2.1](https://github.com/wallabag/wallabag/tree/0.2.1) (2013-04-23)
[Full Changelog](https://github.com/wallabag/wallabag/compare/0.2...0.2.1)
- tag 0.2 [\#67](https://github.com/wallabag/wallabag/pull/67) ([nicosomb](https://github.com/nicosomb))
## [0.2](https://github.com/wallabag/wallabag/tree/0.2) (2013-04-21)
[Full Changelog](https://github.com/wallabag/wallabag/compare/0.11...0.2)
## [0.11](https://github.com/wallabag/wallabag/tree/0.11) (2013-04-19)
[Full Changelog](https://github.com/wallabag/wallabag/compare/0.1...0.11)
## [0.1](https://github.com/wallabag/wallabag/tree/0.1) (2013-04-19)
- Ajout conf nginx pour la protection de la bdd [\#50](https://github.com/wallabag/wallabag/pull/50) ([Gregoire-M](https://github.com/Gregoire-M))
- Modifications css [\#19](https://github.com/wallabag/wallabag/pull/19) ([tmos](https://github.com/tmos))
- Some fixes and improvements [\#5](https://github.com/wallabag/wallabag/pull/5) ([fatihorhan](https://github.com/fatihorhan))
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
- [#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

View File

@ -1,4 +1,4 @@
Copyright (c) 2013-2017 Nicolas Lœuillet
Copyright (c) 2013-2016 Nicolas Lœuillet
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -7,8 +7,6 @@ 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

View File

@ -1,6 +1,5 @@
source "https://rubygems.org"
gem 'capistrano', '~> 3.4'
gem 'capistrano-composer'
gem 'capistrano-symfony', '~> 1.0.0.rc1'
gem 'capistrano-file-permissions'
gem 'capistrano-composer', '~> 0.0.3'

View File

@ -29,9 +29,8 @@ PLATFORMS
DEPENDENCIES
capistrano (~> 3.4)
capistrano-composer
capistrano-file-permissions
capistrano-composer (~> 0.0.3)
capistrano-symfony (~> 1.0.0.rc1)
BUNDLED WITH
1.13.5
1.11.2

View File

@ -1,230 +0,0 @@
module.exports = function (grunt) {
require('load-grunt-tasks')(grunt);
grunt.initConfig({
appDir: 'app/Resources/static',
buildDir: 'app/Resources/build',
modulesDir: 'node_modules',
releaseDir: 'web/bundles/wallabagcore',
postcss: {
material: {
options: {
processors: [
require('pixrem')(),
require('autoprefixer')({ browsers: 'last 2 versions' }),
require('cssnano')(),
],
},
src: '<%= buildDir %>/material.css',
dest: '<%= releaseDir %>/themes/material/css/style.min.css',
},
baggy: {
options: {
processors: [
require('pixrem')(),
require('autoprefixer')({ browsers: 'last 2 versions' }),
require('cssnano')(),
],
},
src: '<%= buildDir %>/baggy.css',
dest: '<%= releaseDir %>/themes/baggy/css/style.min.css',
},
},
concat: {
options: {
separator: ';',
},
cssMaterial: {
src: [
'node_modules/materialize-css/bin/materialize.css',
'<%= appDir %>/themes/material/css/*.css',
],
dest: '<%= buildDir %>/material.css',
},
cssBaggy: {
src: [
'<%= appDir %>/themes/baggy/css/*.css',
],
dest: '<%= buildDir %>/baggy.css',
},
},
browserify: {
dist: {
files: {
'<%= buildDir %>/material.browser.js': ['<%= appDir %>/themes/material/js/init.js'],
'<%= buildDir %>/baggy.browser.js': ['<%= appDir %>/themes/baggy/js/init.js']
}
},
options: {
sourceType: "module",
transform: [
["babelify", {
presets: ["es2015"]
}], ["browserify-shim", {
"jquery": {
"exports": "$"
},
"materialize": "materialize",
"jquery-ui": {
"depends": "jquery",
"exports": null
}
}]
],
browserifyOptions: {
browser: {
"jQuery": "./node_modules/jquery/dist/jquery.js",
"jquery.tinydot": "./node_modules/jquery.tinydot/src/jquery.tinydot.js",
"jquery.ui": "./node_modules/jquery-ui-browserify/dist/jquery-ui.js"
}
}
}
},
uglify: {
material: {
files: {
'<%= releaseDir %>/themes/material/js/material.min.js':
['<%= buildDir %>/material.browser.js'],
}
},
baggy: {
files: {
'<%= releaseDir %>/themes/baggy/js/baggy.min.js':
['<%= buildDir %>/baggy.browser.js'],
}
},
},
copy: {
pickerjs: {
expand: true,
cwd: '<%= modulesDir %>/pickadate/lib',
src: 'picker.js',
dest: '<%= buildDir %>',
},
annotator: {
expand: true,
cwd: '<%= modulesDir %>/annotator/pkg',
src: 'annotator.min.js',
dest: '<%= buildDir %>/themes/_global/js/',
},
baggyfonts: {
files: [
{
expand: true,
cwd: '<%= modulesDir %>/icomoon-free-npm/Font',
src: 'IcoMoon-Free.ttf',
dest: '<%= releaseDir %>/themes/baggy/fonts/',
},
{
expand: true,
cwd: '<%= modulesDir %>/ptsans-npm-webfont/fonts',
src: 'ptsansbold.woff',
dest: '<%= releaseDir %>/themes/baggy/fonts/',
},
{
expand: true,
cwd: '<%= modulesDir %>/material-design-icons-iconfont/dist/fonts/',
src: ['MaterialIcons-Regular.eot', 'MaterialIcons-Regular.woff2', 'MaterialIcons-Regular.woff', 'MaterialIcons-Regular.ttf'],
dest: '<%= releaseDir %>/themes/baggy/fonts/',
},
],
},
materialfonts: {
files: [
{
expand: true,
overwrite: true,
cwd: '<%= modulesDir %>/icomoon-free-npm/Font',
src: 'IcoMoon-Free.ttf',
dest: '<%= releaseDir %>/themes/material/fonts',
},
{
expand: true,
overwrite: true,
cwd: '<%= modulesDir %>/roboto-fontface/fonts/Roboto',
src: '*',
dest: '<%= releaseDir %>/themes/material/font/roboto',
},
{
expand: true,
overwrite: true,
cwd: '<%= modulesDir %>/material-design-icons-iconfont/dist/fonts/',
src: ['MaterialIcons-Regular.eot', 'MaterialIcons-Regular.woff2', 'MaterialIcons-Regular.woff', 'MaterialIcons-Regular.ttf'],
dest: '<%= releaseDir %>/themes/material/fonts/',
},
],
},
},
symlink: {
pics: {
files: [
{
expand: true,
overwrite: true,
cwd: '<%= appDir %>/themes/_global/',
src: 'img',
dest: '<%= releaseDir %>/themes/_global/',
},
],
},
},
clean: {
css: {
src: ['<%= buildDir %>/**/*.css'],
},
js: {
src: ['<%= buildDir %>/**/*.js', '<%= buildDir %>/**/*.map'],
},
all: {
src: ['./<%= buildDir %>'],
},
release: {
src: ['./<%= releaseDir %>/*'],
}
},
eslint: {
target: ['<%= appDir %>/themes/material/js/init.js', '<%= appDir %>/themes/baggy/js/init.js']
},
stylelint: {
target: ['<%= appDir %>/themes/material/css/*.css', '<%= appDir %>/themes/baggy/css/*.css']
},
watch: {
files: ['<%= appDir %>/**/*.css', '<%= appDir %>/**/*.js'],
tasks: ['css', 'js']
}
});
grunt.registerTask(
'fonts',
'Install fonts',
['copy:baggyfonts', 'copy:materialfonts']
);
grunt.registerTask(
'js',
'Build and install js files',
['clean:js', 'copy:pickerjs', 'browserify', 'uglify']
);
grunt.registerTask(
'default',
'Build and install everything',
['clean', 'copy:pickerjs', 'concat', 'browserify', 'uglify', 'postcss', 'copy', 'symlink']
);
grunt.registerTask(
'css',
'Compiles the stylesheets.',
['clean:css', 'concat:cssMaterial', 'concat:cssBaggy', 'postcss']
);
grunt.registerTask(
'tests',
'Test css and js style conformity',
['eslint', 'stylelint', 'default']
),
grunt.loadNpmTasks('grunt-contrib-watch');
};

View File

@ -1,45 +0,0 @@
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
@ant prepare && bin/simple-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

View File

@ -6,24 +6,23 @@
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 information on our website: [wallabag.org](https://wallabag.org).
If you do not have your own server, consider [the wallabag.it hosting solution](https://wallabag.it).
![wallabag logo](https://raw.githubusercontent.com/wallabag/logo/master/_default/typo-horizontal/png/sm/logo-typo-horizontal-black-no-bg-no-border-sm.png)
More informations 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).
Then you can install wallabag by executing the following commands:
```
git clone https://github.com/wallabag/wallabag.git
cd wallabag && make install
make run
git clone https://github.com/wallabag/wallabag.git
cd wallabag
git checkout 2.0.8
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console wallabag:install --env=prod
php bin/console server:run --env=prod
```
# License
Copyright © 2013-2017 Nicolas Lœuillet <nicolas@loeuillet.org>
## 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.

View File

@ -1,58 +1,47 @@
## 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 `$LAST_WALLABAG_RELEASE`.
During this documentation, we assume the release is `release-2.0.0-beta.1`.
#### Files to edit
- `app/config/config.yml` (`wallabag_core.version`)
- `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))
- `README.md` (`composer create-project` command)
- `docs/en/user/installation.rst` and its translations (`composer create-project` command)
#### Create release on GitHub
- Run these commands to create the tag:
```
git checkout master
git pull origin master
git checkout -b release-$LAST_WALLABAG_RELEASE
SYMFONY_ENV=prod composer up --no-dev
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
```
- Update `.travis.yml` file and replace the composer line with this one:
```diff
script:
- - travis_wait bash composer install -o --no-interaction --no-progress --prefer-dist
+ - travis_wait composer update --no-interaction --no-progress
```
- Then continue with these commands:
- 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:
```
git add --force composer.lock .travis.yml
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 $LAST_WALLABAG_RELEASE`. This pull request is used to launch builds on Travis-CI.
- Run these command to create the package:
```
make release master /tmp wllbg-release prod
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
```
- [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-$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 `https://wllbg.org/latest-v2-package` or `http://wllbg.org/latest-v2`)
- Delete the `release-2.0.0-beta.1` 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)
- 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:!
- 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,

View File

@ -13,6 +13,7 @@ class AppKernel extends Kernel
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new FOS\RestBundle\FOSRestBundle(),
@ -29,9 +30,8 @@ class AppKernel extends Kernel
new KPhoen\RulerZBundle\KPhoenRulerZBundle(),
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
new Craue\ConfigBundle\CraueConfigBundle(),
new Lexik\Bundle\MaintenanceBundle\LexikMaintenanceBundle(),
new WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle(),
new FOS\JsRoutingBundle\FOSJsRoutingBundle(),
new BD\GuzzleSiteAuthenticatorBundle\BDGuzzleSiteAuthenticatorBundle(),
// wallabag bundles
new Wallabag\CoreBundle\WallabagCoreBundle(),
@ -39,7 +39,6 @@ class AppKernel extends Kernel
new Wallabag\UserBundle\WallabagUserBundle(),
new Wallabag\ImportBundle\WallabagImportBundle(),
new Wallabag\AnnotationBundle\WallabagAnnotationBundle(),
new OldSound\RabbitMqBundle\OldSoundRabbitMqBundle(),
];
if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {

View File

@ -1,64 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Added foreign keys for account resetting
*/
class Version20160410190541 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$this->skipIf($entryTable->hasColumn('uid') || $entryTable->hasColumn('uuid'), 'It seems that you already played this migration.');
$entryTable->addColumn('uid', 'string', [
'notnull' => false,
'length' => 23,
]);
$sharePublic = $this->container
->get('doctrine.orm.default_entity_manager')
->getConnection()
->fetchArray('SELECT * FROM '.$this->getTable('craue_config_setting')." WHERE name = 'share_public'");
if (false === $sharePublic) {
$this->addSql('INSERT INTO '.$this->getTable('craue_config_setting')." (name, value, section) VALUES ('share_public', '1', 'entry')");
}
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$entryTable->dropColumn('uid');
$this->addSql('DELETE FROM '.$this->getTable('craue_config_setting')." WHERE name = 'share_public'");
}
}

View File

@ -1,49 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Added name field on wallabag_oauth2_clients
*/
class Version20160812120952 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
$this->skipIf($clientsTable->hasColumn('name'), 'It seems that you already played this migration.');
$clientsTable->addColumn('name', 'blob');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
$clientsTable->dropColumn('name');
}
}

View File

@ -1,64 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Added settings for RabbitMQ and Redis imports
*/
class Version20160911214952 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$redis = $this->container
->get('doctrine.orm.default_entity_manager')
->getConnection()
->fetchArray('SELECT * FROM '.$this->getTable('craue_config_setting')." WHERE name = 'import_with_redis'");
if (false === $redis) {
$this->addSql('INSERT INTO '.$this->getTable('craue_config_setting')." (name, value, section) VALUES ('import_with_redis', 0, 'import')");
}
$rabbitmq = $this->container
->get('doctrine.orm.default_entity_manager')
->getConnection()
->fetchArray('SELECT * FROM '.$this->getTable('craue_config_setting')." WHERE name = 'import_with_rabbitmq'");
if (false === $rabbitmq) {
$this->addSql('INSERT INTO '.$this->getTable('craue_config_setting')." (name, value, section) VALUES ('import_with_rabbitmq', 0, 'import')");
}
$this->skipIf(false !== $rabbitmq && false !== $redis, 'It seems that you already played this migration.');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('DELETE FROM '.$this->getTable('craue_config_setting')." WHERE name = 'import_with_redis';");
$this->addSql('DELETE FROM '.$this->getTable('craue_config_setting')." WHERE name = 'import_with_rabbitmq';");
}
}

View File

@ -1,52 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Added pocket_consumer_key field on wallabag_config
*/
class Version20160916201049 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$configTable = $schema->getTable($this->getTable('config'));
$this->skipIf($configTable->hasColumn('pocket_consumer_key'), 'It seems that you already played this migration.');
$configTable->addColumn('pocket_consumer_key', 'string', ['notnull' => false]);
$this->addSql('DELETE FROM '.$this->getTable('craue_config_setting')." WHERE name = 'pocket_consumer_key';");
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$configTable = $schema->getTable($this->getTable('config'));
$configTable->dropColumn('pocket_consumer_key');
$this->addSql('INSERT INTO '.$this->getTable('craue_config_setting')." (name, value, section) VALUES ('pocket_consumer_key', NULL, 'import')");
}
}

View File

@ -1,127 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Doctrine\DBAL\Migrations\SkipMigrationException;
/**
* Added pocket_consumer_key field on wallabag_config
*/
class Version20161001072726 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->skipIf($this->connection->getDatabasePlatform()->getName() == 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
// remove all FK from entry_tag
switch ($this->connection->getDatabasePlatform()->getName()) {
case 'mysql':
$query = $this->connection->query("
SELECT CONSTRAINT_NAME
FROM information_schema.key_column_usage
WHERE TABLE_NAME = '".$this->getTable('entry_tag')."' AND CONSTRAINT_NAME LIKE 'FK_%'
AND TABLE_SCHEMA = '".$this->connection->getDatabase()."'"
);
$query->execute();
foreach ($query->fetchAll() as $fk) {
$this->addSql('ALTER TABLE '.$this->getTable('entry_tag').' DROP FOREIGN KEY '.$fk['CONSTRAINT_NAME']);
}
break;
case 'postgresql':
// http://dba.stackexchange.com/questions/36979/retrieving-all-pk-and-fk
$query = $this->connection->query("
SELECT conrelid::regclass AS table_from
,conname
,pg_get_constraintdef(c.oid)
FROM pg_constraint c
JOIN pg_namespace n ON n.oid = c.connamespace
WHERE contype = 'f'
AND conrelid::regclass::text = '".$this->getTable('entry_tag')."'
AND n.nspname = 'public';"
);
$query->execute();
foreach ($query->fetchAll() as $fk) {
$this->addSql('ALTER TABLE '.$this->getTable('entry_tag').' DROP CONSTRAINT '.$fk['conname']);
}
break;
}
$this->addSql('ALTER TABLE '.$this->getTable('entry_tag').' ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES '.$this->getTable('entry').' (id) ON DELETE CASCADE');
$this->addSql('ALTER TABLE '.$this->getTable('entry_tag').' ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES '.$this->getTable('tag').' (id) ON DELETE CASCADE');
// remove entry FK from annotation
switch ($this->connection->getDatabasePlatform()->getName()) {
case 'mysql':
$query = $this->connection->query("
SELECT CONSTRAINT_NAME
FROM information_schema.key_column_usage
WHERE TABLE_NAME = '".$this->getTable('annotation')."'
AND CONSTRAINT_NAME LIKE 'FK_%'
AND COLUMN_NAME = 'entry_id'
AND TABLE_SCHEMA = '".$this->connection->getDatabase()."'"
);
$query->execute();
foreach ($query->fetchAll() as $fk) {
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' DROP FOREIGN KEY '.$fk['CONSTRAINT_NAME']);
}
break;
case 'postgresql':
// http://dba.stackexchange.com/questions/36979/retrieving-all-pk-and-fk
$query = $this->connection->query("
SELECT conrelid::regclass AS table_from
,conname
,pg_get_constraintdef(c.oid)
FROM pg_constraint c
JOIN pg_namespace n ON n.oid = c.connamespace
WHERE contype = 'f'
AND conrelid::regclass::text = '".$this->getTable('annotation')."'
AND n.nspname = 'public'
AND pg_get_constraintdef(c.oid) LIKE '%entry_id%';"
);
$query->execute();
foreach ($query->fetchAll() as $fk) {
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' DROP CONSTRAINT '.$fk['conname']);
}
break;
}
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES '.$this->getTable('entry').' (id) ON DELETE CASCADE');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
throw new SkipMigrationException('Too complex ...');
}
}

View File

@ -1,85 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Converted database to utf8mb4 encoding (for MySQL only)
*/
class Version20161022134138 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->skipIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'This migration only apply to MySQL');
$this->addSql('ALTER DATABASE '.$this->connection->getParams()['dbname'].' CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;');
// convert field length for utf8mb4
// http://stackoverflow.com/a/31474509/569101
$this->addSql('ALTER TABLE '.$this->getTable('user').' CHANGE confirmation_token confirmation_token VARCHAR(180) DEFAULT NULL;');
$this->addSql('ALTER TABLE '.$this->getTable('user').' CHANGE salt salt VARCHAR(180) NOT NULL;');
$this->addSql('ALTER TABLE '.$this->getTable('user').' CHANGE password password VARCHAR(180) NOT NULL;');
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('entry').' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('tag').' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('user').' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' CHANGE `text` `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' CHANGE `quote` `quote` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('entry').' CHANGE `title` `title` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('entry').' CHANGE `content` `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('tag').' CHANGE `label` `label` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('user').' CHANGE `name` `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->skipIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'This migration only apply to MySQL');
$this->addSql('ALTER DATABASE '.$this->connection->getParams()['dbname'].' CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('entry').' CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('tag').' CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('user').' CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' CHANGE `text` `text` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('annotation').' CHANGE `quote` `quote` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('entry').' CHANGE `title` `title` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('entry').' CHANGE `content` `content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('tag').' CHANGE `label` `label` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
$this->addSql('ALTER TABLE '.$this->getTable('user').' CHANGE `name` `name` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;');
}
}

View File

@ -1,67 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Added user_id column on oauth2_clients to prevent users to delete API clients from other users
*/
class Version20161024212538 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
private $constraintName = 'IDX_user_oauth_client';
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
$this->skipIf($clientsTable->hasColumn('user_id'), 'It seems that you already played this migration.');
$clientsTable->addColumn('user_id', 'integer', ['notnull' => false]);
$clientsTable->addForeignKeyConstraint(
$this->getTable('user'),
['user_id'],
['id'],
['onDelete' => 'CASCADE'],
$this->constraintName
);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
$this->skipIf(!$clientsTable->hasColumn('user_id'), 'It seems that you already played this migration.');
$clientsTable->dropColumn('user_id', 'integer');
if ($this->connection->getDatabasePlatform()->getName() != 'sqlite') {
$clientsTable->removeForeignKey($this->constraintName);
}
}
}

View File

@ -1,52 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Added the internal setting to enable/disable downloading pictures
*/
class Version20161031132655 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$images = $this->container
->get('doctrine.orm.default_entity_manager')
->getConnection()
->fetchArray('SELECT * FROM '.$this->getTable('craue_config_setting')." WHERE name = 'download_images_enabled'");
$this->skipIf(false !== $images, 'It seems that you already played this migration.');
$this->addSql('INSERT INTO '.$this->getTable('craue_config_setting')." (name, value, section) VALUES ('download_images_enabled', 0, 'misc')");
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('DELETE FROM '.$this->getTable('craue_config_setting')." WHERE name = 'download_images_enabled';");
}
}

View File

@ -1,53 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Added created_at index on entry table
*/
class Version20161104073720 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
private $indexName = 'IDX_entry_created_at';
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$this->skipIf($entryTable->hasIndex($this->indexName), 'It seems that you already played this migration.');
$entryTable->addIndex(['created_at'], $this->indexName);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$this->skipIf(false === $entryTable->hasIndex($this->indexName), 'It seems that you already played this migration.');
$entryTable->dropIndex($this->indexName);
}
}

View File

@ -1,56 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Added action_mark_as_read field on config table
*/
class Version20161106113822 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$configTable = $schema->getTable($this->getTable('config'));
$this->skipIf($configTable->hasColumn('action_mark_as_read'), 'It seems that you already played this migration.');
$configTable->addColumn('action_mark_as_read', 'integer', [
'default' => 0,
'notnull' => false,
]);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$configTable = $schema->getTable($this->getTable('config'));
$this->skipIf(!$configTable->hasColumn('action_mark_as_read'), 'It seems that you already played this migration.');
$configTable->dropColumn('action_mark_as_read');
}
}

View File

@ -1,64 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Added the internal setting to share articles to unmark.it
*/
class Version20161117071626 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$share = $this->container
->get('doctrine.orm.default_entity_manager')
->getConnection()
->fetchArray('SELECT * FROM '.$this->getTable('craue_config_setting')." WHERE name = 'share_unmark'");
if (false === $share) {
$this->addSql('INSERT INTO '.$this->getTable('craue_config_setting')." (name, value, section) VALUES ('share_unmark', 0, 'entry')");
}
$unmark = $this->container
->get('doctrine.orm.default_entity_manager')
->getConnection()
->fetchArray('SELECT * FROM '.$this->getTable('craue_config_setting')." WHERE name = 'unmark_url'");
if (false === $unmark) {
$this->addSql('INSERT INTO '.$this->getTable('craue_config_setting')." (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')");
}
$this->skipIf(false !== $share && false !== $unmark, 'It seems that you already played this migration.');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('DELETE FROM '.$this->getTable('craue_config_setting')." WHERE name = 'share_unmark';");
$this->addSql('DELETE FROM '.$this->getTable('craue_config_setting')." WHERE name = 'unmark_url';");
}
}

View File

@ -1,56 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Add http_status in `entry_table`.
*/
class Version20161118134328 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$this->skipIf($entryTable->hasColumn('http_status'), 'It seems that you already played this migration.');
$entryTable->addColumn('http_status', 'string', [
'length' => 3,
'notnull' => false,
]);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$this->skipIf(!$entryTable->hasColumn('http_status'), 'It seems that you already played this migration.');
$entryTable->dropColumn('http_status');
}
}

View File

@ -1,52 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Add the restricted_access internal setting for articles with paywall.
*/
class Version20161122144743 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$access = $this->container
->get('doctrine.orm.default_entity_manager')
->getConnection()
->fetchArray('SELECT * FROM '.$this->getTable('craue_config_setting')." WHERE name = 'restricted_access'");
$this->skipIf(false !== $access, 'It seems that you already played this migration.');
$this->addSql('INSERT INTO '.$this->getTable('craue_config_setting')." (name, value, section) VALUES ('restricted_access', 0, 'entry')");
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$this->addSql('DELETE FROM '.$this->getTable('craue_config_setting')." WHERE name = 'restricted_access';");
}
}

View File

@ -1,63 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Methods and properties removed from `FOS\UserBundle\Model\User`.
*
* - `$expired`
* - `$credentialsExpired`
* - `setExpired()` (use `setExpiresAt(\DateTime::now()` instead)
* - `setCredentialsExpired()` (use `setCredentialsExpireAt(\DateTime::now()` instead)
*
* You need to drop the fields `expired` and `credentials_expired` from your database
* schema, because they aren't mapped anymore.
*/
class Version20161122203647 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$userTable = $schema->getTable($this->getTable('user'));
$this->skipIf(false === $userTable->hasColumn('expired') || false === $userTable->hasColumn('credentials_expired'), 'It seems that you already played this migration.');
$userTable->dropColumn('expired');
$userTable->dropColumn('credentials_expired');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$userTable = $schema->getTable($this->getTable('user'));
$this->skipIf(true === $userTable->hasColumn('expired') || true === $userTable->hasColumn('credentials_expired'), 'It seems that you already played this migration.');
$userTable->addColumn('expired', 'smallint', ['notnull' => false]);
$userTable->addColumn('credentials_expired', 'smallint', ['notnull' => false]);
}
}

View File

@ -1,49 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Added list_mode in user config.
*/
class Version20161128084725 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$configTable = $schema->getTable($this->getTable('config'));
$this->skipIf($configTable->hasColumn('list_mode'), 'It seems that you already played this migration.');
$configTable->addColumn('list_mode', 'integer', ['notnull' => false]);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$configTable = $schema->getTable($this->getTable('config'));
$configTable->dropColumn('list_mode');
}
}

View File

@ -1,61 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Removed locked, credentials_expire_at and expires_at.
*/
class Version20161128131503 extends AbstractMigration implements ContainerAwareInterface
{
private $fields = [
'locked' => 'smallint',
'credentials_expire_at' => 'datetime',
'expires_at' => 'datetime',
];
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$userTable = $schema->getTable($this->getTable('user'));
foreach ($this->fields as $field => $type) {
$this->skipIf(!$userTable->hasColumn($field), 'It seems that you already played this migration.');
$userTable->dropColumn($field);
}
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$userTable = $schema->getTable($this->getTable('user'));
foreach ($this->fields as $field => $type) {
$this->skipIf($userTable->hasColumn($field), 'It seems that you already played this migration.');
$userTable->addColumn($field, $type, ['notnull' => false]);
}
}
}

View File

@ -1,75 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Renamed uuid to uid in entry table
*/
class Version20161214094402 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$this->skipIf($entryTable->hasColumn('uid'), 'It seems that you already played this migration.');
switch ($this->connection->getDatabasePlatform()->getName()) {
case 'sqlite':
$this->addSql('CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM '.$this->getTable('entry'));
$this->addSql('DROP TABLE '.$this->getTable('entry'));
$this->addSql('CREATE TABLE '.$this->getTable('entry').' (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT "0", PRIMARY KEY(id));');
$this->addSql('INSERT INTO '.$this->getTable('entry').' (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry;');
$this->addSql('DROP TABLE __temp__wallabag_entry');
break;
case 'mysql':
$this->addSql('ALTER TABLE '.$this->getTable('entry').' CHANGE uuid uid VARCHAR(23)');
break;
case 'postgresql':
$this->addSql('ALTER TABLE '.$this->getTable('entry').' RENAME uuid TO uid');
}
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$this->skipIf($entryTable->hasColumn('uuid'), 'It seems that you already played this migration.');
switch ($this->connection->getDatabasePlatform()->getName()) {
case 'sqlite':
throw new SkipMigrationException('Too complex ...');
break;
case 'mysql':
$this->addSql('ALTER TABLE '.$this->getTable('entry').' CHANGE uid uuid VARCHAR(23)');
break;
case 'postgresql':
$this->addSql('ALTER TABLE '.$this->getTable('entry').' RENAME uid TO uuid');
}
}
}

View File

@ -1,53 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Added index on wallabag_entry.uid
*/
class Version20161214094403 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
private $indexName = 'IDX_entry_uid';
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$this->skipIf($entryTable->hasIndex($this->indexName), 'It seems that you already played this migration.');
$entryTable->addIndex(['uid'], $this->indexName);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$this->skipIf(false === $entryTable->hasIndex($this->indexName), 'It seems that you already played this migration.');
$entryTable->dropIndex($this->indexName);
}
}

View File

@ -1,56 +0,0 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Added indexes on wallabag_entry.is_starred and wallabag_entry.is_archived
*/
class Version20170127093841 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
private $indexStarredName = 'IDX_entry_starred';
private $indexArchivedName = 'IDX_entry_archived';
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix').$tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$this->skipIf($entryTable->hasIndex($this->indexStarredName) && $entryTable->hasIndex($this->indexArchivedName), 'It seems that you already played this migration.');
$entryTable->addIndex(['is_starred'], $this->indexStarredName);
$entryTable->addIndex(['is_archived'], $this->indexArchivedName);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$this->skipIf(false === $entryTable->hasIndex($this->indexStarredName) && false === $entryTable->hasIndex($this->indexArchivedName), 'It seems that you already played this migration.');
$entryTable->dropIndex($this->indexStarredName);
$entryTable->dropIndex($this->indexArchivedName);
}
}

View File

@ -1,4 +1,3 @@
# settings_changed: Configuration updated
download_pictures: Download billeder på din server
carrot: Aktiver deling til Carrot
diaspora_url: Diaspora URL, hvis tjenesten er aktiv
@ -9,14 +8,12 @@ export_csv: Aktiver eksport til CSV
export_json: Aktiver eksport til JSON
export_txt: Aktiver eksport til TXT
export_xml: Aktiver eksport til XML
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
# import_with_redis: Enable Redis to import data asynchronously
pocket_consumer_key: Brugers nøgle til Pocket for at importere materialer (https://getpocket.com/developer/docs/authentication)
shaarli_url: Shaarli-URL, hvis tjenesten er aktiv
share_diaspora: Aktiver deling til Diaspora
share_mail: Aktiver deling med email
share_shaarli: Aktiver deling gennem Shaarli
share_twitter: Aktiver deling gennem Twitter
share_unmark: Aktiver deling gennem Unmark.it
show_printlink: Vis et link til print-indhold
wallabag_support_url: Support-URL for wallabag
wallabag_url: URL for *sin* wallabag-installation
@ -25,11 +22,8 @@ export: "eksport"
import: "import"
misc: "misc"
modify_settings: "Gem ændring"
piwik_host: Hosting af din side hos Piwik (uden http:// eller https://)
piwik_host: Hosting af din side hos Piwik
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)"
demo_mode_username: "Demobruger"
# share_public: Allow public url for entries
# download_images_enabled: Download images locally
# restricted_access: Enable authentication for websites with paywall

View File

@ -1,22 +1,19 @@
# settings_changed: Configuration updated
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: Aktiviere RabbitMQ, um Artikel asynchron zu importieren
import_with_redis: Aktiviere Redis, um Artikel asynchron zu importieren
pocket_consumer_key: Consumer-Key für Pocket, um Inhalte zu importieren (https://getpocket.com/developer/docs/authentication)
shaarli_url: Shaarli-URL, sofern der Service aktiviert ist
share_diaspora: Teilen zu Diaspora aktiveren
share_mail: Teilen via E-Mail aktiveren
share_shaarli: Teilen zu Shaarli aktiveren
share_twitter: Teilen zu Twitter aktiveren
share_unmark: Teilen zu Unmark.it aktiveren
show_printlink: Link anzeigen, um den Inhalt auszudrucken
wallabag_support_url: Support-URL für wallabag
wallabag_url: URL von *deiner* wallabag-Instanz
@ -25,11 +22,8 @@ export: "Export"
import: "Import"
misc: "Verschiedenes"
modify_settings: "Übernehmen"
piwik_host: Host deiner Webseite in Piwik (ohne http:// oder https://)
piwik_host: Host deiner Webseite in Piwik
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: Erlaube eine öffentliche URL für Einträge
# download_images_enabled: Download images locally
# restricted_access: Enable authentication for websites with paywall

View File

@ -1,4 +1,3 @@
settings_changed: Configuration updated
download_pictures: Download pictures on your server
carrot: Enable share to Carrot
diaspora_url: Diaspora URL, if the service is enabled
@ -9,14 +8,12 @@ export_csv: Enable CSV export
export_json: Enable JSON export
export_txt: Enable TXT export
export_xml: Enable XML export
import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
import_with_redis: Enable Redis to import data asynchronously
pocket_consumer_key: Consumer key for Pocket to import contents (https://getpocket.com/developer/docs/authentication)
shaarli_url: Shaarli URL, if the service is enabled
share_diaspora: Enable share to Diaspora
share_mail: Enable share by email
share_shaarli: Enable share to Shaarli
share_twitter: Enable share to Twitter
share_unmark: Enable share to Unmark.it
show_printlink: Display a link to print content
wallabag_support_url: Support URL for wallabag
wallabag_url: URL of *your* wallabag instance
@ -25,11 +22,8 @@ export: "export"
import: "import"
misc: "misc"
modify_settings: "apply"
piwik_host: Host of your website in Piwik (without http:// ou https://)
piwik_host: Host of your website in Piwik
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)"
demo_mode_username: "Demo user"
share_public: Allow public url for entries
download_images_enabled: Download images locally
restricted_access: Enable authentication for websites with paywall

View File

@ -1,7 +1,6 @@
settings_changed: Configuración actualizada
download_pictures: Descargar imágenes en el servidor
download_pictures: Descargar imágenes
carrot: Activar compartir con Carrot
diaspora_url: URL de Diaspora, si el servicio está activado
diaspora_url: Diaspora URL, si el servicio está activado
export_epub: Activar exportación a ePub
export_mobi: Activar exportación a .mobi
export_pdf: Activar exportación a PDF
@ -9,14 +8,12 @@ export_csv: Activar exportación a CSV
export_json: Activar exportación a JSON
export_txt: Activar exportación a TXT
export_xml: Activar exportación a XML
import_with_rabbitmq: Activar RabbitMQ para importar datos de forma asíncrona
import_with_redis: Activar Redis para importar datos de forma asíncrona
shaarli_url: URL de Shaarli, si el servicio está activado
pocket_consumer_key: Consumer key for Pocket to import contents (https://getpocket.com/developer/docs/authentication)
shaarli_url: Shaarli URL, si el servicio está activado
share_diaspora: Activar compartir con Diaspora
share_mail: Activar compartir con Email
share_mail: Activar compartir con email
share_shaarli: Activar compartir con Shaarli
share_twitter: Activar compartir con Twitter
share_unmark: Activar compartir con Unmark.it
show_printlink: Mostrar un enlace para imprimir contenido
wallabag_support_url: URL de soporte de wallabag
wallabag_url: URL de *tu* instancia de wallabag
@ -24,12 +21,9 @@ entry: "artículo"
export: "exportar"
import: "importar"
misc: "misc"
modify_settings: "guardar"
piwik_host: Host de tu website en Piwik (sin http:// o https://)
piwik_site_id: ID de tu website en Piwik
modify_settings: "modificar configuración"
piwik_host: Host de tu website de Piwik
piwik_site_id: ID de tu website de Piwik
piwik_enabled: Activar Piwik
demo_mode_enabled: "Activar modo demo (sólo usado en la demo pública de wallabag)"
demo_mode_enabled: "Activar modo demo (sólo usado para la demo de wallabag)"
demo_mode_username: "Nombre de usuario demo"
share_public: Permitir URL pública para los artículos
download_images_enabled: Descargar imágenes localmente
restricted_access: Activar autenticación para websites con paywall

View File

@ -1,4 +1,3 @@
# settings_changed: Configuration updated
download_pictures: تصاویر را در کارگزار خودتان باربگیرید
carrot: فعال‌سازی هم‌رسانی به Carrot
diaspora_url: نشانی Diaspora، اگر فعال بود
@ -9,14 +8,12 @@ export_csv: فعال‌سازی برون‌سپاری به CSV
export_json: فعال‌سازی برون‌سپاری به JSON
export_txt: فعال‌سازی برون‌سپاری به TXT
export_xml: فعال‌سازی برون‌سپاری به XML
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
# import_with_redis: Enable Redis to import data asynchronously
pocket_consumer_key: کلید کاربری Pocket برای درون‌ریزی مطالب (https://getpocket.com/developer/docs/authentication)
shaarli_url: نشانی Shaarli، اگر فعال بود
share_diaspora: فعال‌سازی هم‌رسانی به Diaspora
share_mail: فعال‌سازی هم‌رسانی با ایمیل
share_shaarli: فعال‌سازی هم‌رسانی به Shaarli
share_twitter: فعال‌سازی هم‌رسانی به Twitter
share_unmark: فعال‌سازی هم‌رسانی به Unmark.it
show_printlink: نمایش پیوندی برای چاپ مطلب
wallabag_support_url: نشانی صفحهٔ پشتیبانی wallabag
wallabag_url: نشانی صفحهٔ wallabag *شما*
@ -25,11 +22,3 @@ export: "برون‌سپاری"
import: "درون‌ریزی"
misc: "غیره"
modify_settings: "اعمال"
# 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)"
# demo_mode_username: "Demo user"
# share_public: Allow public url for entries
# download_images_enabled: Download images locally
# restricted_access: Enable authentication for websites with paywall

View File

@ -1,4 +1,3 @@
settings_changed: Configuration mise à jour
download_pictures: Télécharger les images sur le serveur
carrot: Activer le partage vers Carrot
diaspora_url: URL de Diaspora, si le service Diaspora est activé
@ -9,14 +8,12 @@ export_csv: Activer l'export CSV
export_json: Activer l'export JSON
export_txt: Activer l'export TXT
export_xml: Activer l'export XML
import_with_rabbitmq: Activer RabbitMQ pour gérer les imports de façon asynchrone
import_with_redis: Activer Redis pour gérer les imports de façon asynchrone
pocket_consumer_key: Clé d'authentification Pocket pour importer les données (https://getpocket.com/developer/docs/authentication)
shaarli_url: URL de Shaarli, si le service Shaarli est activé
share_diaspora: Activer le partage vers Diaspora
share_mail: Activer le partage par email
share_shaarli: Activer le partage vers Shaarli
share_twitter: Activer le partage vers Twitter
share_unmark: Activer le partage vers Unmark.it
show_printlink: Afficher un lien pour imprimer
wallabag_support_url: URL de support de wallabag
wallabag_url: URL de *votre* instance de wallabag
@ -25,11 +22,8 @@ export: "export"
import: "import"
misc: "divers"
modify_settings: "appliquer"
piwik_host: URL de votre site dans Piwik (sans http:// ou https://)
piwik_host: URL de votre site dans Piwik
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)"
demo_mode_username: "Utilisateur de la démo"
share_public: Autoriser une URL publique pour les articles
download_images_enabled: Télécharger les images en local
restricted_access: Activer l'authentification pour les articles derrière un paywall

View File

@ -1,4 +1,3 @@
# settings_changed: Configuration updated
download_pictures: Scarica le immagini sul tuo server
carrot: Abilita la condivisione con Carrot
diaspora_url: Diaspora URL, se il servizio è abilitato
@ -9,14 +8,12 @@ export_csv: Abilita esportazione CSV
export_json: Abilita esportazione JSON
export_txt: Abilita esportazione TXT
export_xml: Abilita esportazione XML
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
# import_with_redis: Enable Redis to import data asynchronously
pocket_consumer_key: Consumer key per Pocket per importare i contenuti (https://getpocket.com/developer/docs/authentication)
shaarli_url: Shaarli URL, se il servizio è abilitato
share_diaspora: Abilita la condivisione con Diaspora
share_mail: Abilita la condivisione per email
share_shaarli: Abilita la condivisione con Shaarli
share_twitter: Abilita la condivisione con Twitter
share_unmark: Abilita la condivisione con Unmark.it
show_printlink: Mostra un collegamento per stampare il contenuto
wallabag_support_url: URL di supporto per wallabag
wallabag_url: URL della *tua* installazione di wallabag
@ -25,11 +22,8 @@ export: "esporta"
import: "importa"
misc: "misc"
modify_settings: "applica"
piwik_host: Host del tuo sito in Piwik (senza http:// o https://)
piwik_host: Host del tuo sito in Piwik
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)"
demo_mode_username: "Utente Demo"
# share_public: Allow public url for entries
# download_images_enabled: Download images locally
# restricted_access: Enable authentication for websites with paywall

View File

@ -1,4 +1,3 @@
settings_changed: Configuracion mesa a jorn
download_pictures: Telecargar los imatges sul servidor
carrot: Activar lo partatge cap a Carrot
diaspora_url: URL de Diaspora, se lo servici Diaspora es activat
@ -9,14 +8,12 @@ export_csv: Activar l'expòrt CSV
export_json: Activar l'expòrt JSON
export_txt: Activar l'expòrt TXT
export_xml: Activar l'expòrt XML
import_with_rabbitmq: Activar Enable RabbitMQ per importar de donadas de manièra asincròna
import_with_redis: Activar Redis per importar de donadas de manièra asincròna
pocket_consumer_key: Clau d'autentificacion Pocket per importar las donadas (https://getpocket.com/developer/docs/authentication)
shaarli_url: URL de Shaarli, se lo servici Shaarli es activat
share_diaspora: Activar lo partatge cap a Diaspora
share_mail: Activar lo partatge per corrièl
share_shaarli: Activar lo partatge cap a Shaarli
share_twitter: Activar lo partatge cap a Twitter
share_unmark: Activar lo partatge cap a Unmark.it
show_printlink: Afichar un ligam per imprimir
wallabag_support_url: URL d'assisténcia de wallabag
wallabag_url: URL de *vòstra* instància de wallabag
@ -25,11 +22,8 @@ export: "expòrt"
import: "impòrt"
misc: "divèrs"
modify_settings: "aplicar"
piwik_host: URL de vòstre site dins Piwik (sense http:// o https://)
piwik_host: URL de vòstre site dins Piwik
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)"
demo_mode_username: "Utilizaire de la demostracion"
share_public: Autorizar una URL publica pels articles
download_images_enabled: Telecargar los imatges en local
restricted_access: Activar l'autenticacion pels sites amb peatge

View File

@ -1,4 +1,3 @@
settings_changed: Konfiguracja zaktualizowana
download_pictures: Pobierz obrazy na swój serwer
carrot: Włącz udostępnianie dla Carrot
diaspora_url: Adres URL Diaspora, jeżeli usługa jest włączona
@ -9,14 +8,12 @@ export_csv: Włącz eksport do CSV
export_json: Włącz eksport do JSON
export_txt: Włącz eksport do TXT
export_xml: Włącz eksport do XML
import_with_rabbitmq: Włącz RabbitMQ dla asynchronicznego importu danych
import_with_redis: Włącz Redis dla asynchronicznego importu danych
pocket_consumer_key: Klucz klienta Pocket do importu zawartości (https://getpocket.com/developer/docs/authentication)
shaarli_url: Adress URL Shaarli, jeżeli usługa jest włączona
share_diaspora: Włącz udostępnianie dla Diaspora
share_mail: Włącz udostępnianie przez email
share_shaarli: Włącz udostępnianie dla Shaarli
share_twitter: Włącz udostępnianie dla Twitter
share_unmark: Włącz udostępnianie dla Unmark.it
show_printlink: Pokaż link do wydrukowania zawartości
wallabag_support_url: Adres URL wsparcia dla wallabag
wallabag_url: Adres *twojej* instacji wallabag
@ -24,12 +21,4 @@ entry: "artykuł"
export: "eksport"
import: "import"
misc: "różne"
modify_settings: "zatwierdź"
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)"
demo_mode_username: "Użytkownik Demonstracyjny"
share_public: Zezwalaj na publiczny adres url dla wpisow
download_images_enabled: Pobierz obrazy lokalnie
restricted_access: Włącz autoryzację dla stron z paywallem
modify_settings: "zatwierdz"

View File

@ -1,35 +0,0 @@
# settings_changed: Configuration updated
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
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
# import_with_redis: Enable Redis to import data asynchronously
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
share_unmark: Habilitar compartilhamento para o Unmark.it
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"
# share_public: Allow public url for entries
# download_images_enabled: Download images locally
# restricted_access: Enable authentication for websites with paywall

View File

@ -1,4 +1,3 @@
# settings_changed: Configuration updated
download_pictures: Descarcă poze pe server
carrot: Permite share către Carrot
diaspora_url: Diaspora URL, dacă serviciul este permis
@ -9,14 +8,12 @@ export_csv: Permite exportare CSV
export_json: Permite exportare JSON
export_txt: Permite exportare TXT
export_xml: Permite exportare XML
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
# import_with_redis: Enable Redis to import data asynchronously
pocket_consumer_key: Cheie consumator pentru importarea contentului din Pocket (https://getpocket.com/developer/docs/authentication)
shaarli_url: Shaarli URL, dacă serviciul este permis
share_diaspora: Permite share către Diaspora
share_mail: Permite share prin email
share_shaarli: Permite share către Shaarli
share_twitter: Permite share către Twitter
share_unmark: Permite share către Unmark.it
show_printlink: Afișează un link pentru a printa content-ul
wallabag_support_url: URL-ul de suport pentru wallabag
wallabag_url: URL-ul instanței tale wallabag
@ -25,11 +22,3 @@ export: "exportă"
import: "importă"
misc: "diverse"
modify_settings: "aplică"
# 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)"
# demo_mode_username: "Demo user"
# share_public: Allow public url for entries
# download_images_enabled: Download images locally
# restricted_access: Enable authentication for websites with paywall

View File

@ -1,35 +0,0 @@
# settings_changed: Configuration updated
# download_pictures: Download pictures on your server
# carrot: Enable share to Carrot
# diaspora_url: Diaspora URL, if the service is enabled
# export_epub: Enable ePub export
# export_mobi: Enable .mobi export
# export_pdf: Enable PDF export
# export_csv: Enable CSV export
# export_json: Enable JSON export
# export_txt: Enable TXT export
# export_xml: Enable XML export
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
# import_with_redis: Enable Redis to import data asynchronously
# shaarli_url: Shaarli URL, if the service is enabled
# share_diaspora: Enable share to Diaspora
# share_mail: Enable share by email
# share_shaarli: Enable share to Shaarli
# share_twitter: Enable share to Twitter
# share_unmark: Enable share to Unmark.it
# show_printlink: Display a link to print content
# wallabag_support_url: Support URL for wallabag
# wallabag_url: URL of *your* wallabag instance
# entry: "article"
# export: "export"
# import: "import"
# misc: "misc"
# modify_settings: "apply"
# 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)"
# demo_mode_username: "Demo user"
# share_public: Allow public url for entries
# download_images_enabled: Download images locally
# restricted_access: Enable authentication for websites with paywall

View File

@ -1,6 +1,6 @@
{% extends "WallabagCoreBundle::layout.html.twig" %}
{% block title %}{{ 'menu.left.internal_settings'|trans }}{% endblock %}
{% block title %}{% trans %}internal settings{% endtrans %}{% 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 s12 m6 l3"><a href="#set-{{ section }}">{{ section | trans({}, 'CraueConfigBundle') }}</a></li>
<li class="tab col s3"><a href="#set-{{ section }}">{{ section | trans({}, 'CraueConfigBundle') }}</a></li>
{% endfor %}
</ul>
</div>

View File

@ -0,0 +1,2 @@
Login: "Log ind"
Enter your email address below and we'll send you password reset instructions.: "Indtast din emailadresse nedenfor, så sender vi dig instrukser til at nulstille din adgangskode."

View File

@ -0,0 +1,2 @@
Login: "Anmelden"
Enter your email address below and we'll send you password reset instructions.: "Tippe deine E-Mail-Adresse unten ein und wir senden dir die Anweisungen, wie du dein Kennwort zurücksetzen kannst."

View File

@ -0,0 +1,2 @@
Login: "Logearse"
Enter your email address below and we'll send you password reset instructions.: "Introduzca su dirección de email y le enviaremos las instrucciones para resetear su contraseña."

View File

@ -0,0 +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."

View File

@ -0,0 +1,2 @@
Login: "Se connectar"
Enter your email address below and we'll send you password reset instructions.: "Picatz vòstra adreça de corrièl çai-jos, vos mandarem las instruccions per reïnicializar vòstre senhal."

View File

@ -0,0 +1,2 @@
Login: "Logowanie"
Enter your email address below and we'll send you password reset instructions.: "Wpisz poniżej swój adres email, abyśmy mogli wysłać ci instrukcję resetowania hasła."

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 926 B

View File

@ -1,5 +0,0 @@
top['bookmarklet-url@wallabag.org'] =
'<!DOCTYPE html><html><head><title>bag it!</title>' +
'<link rel="icon" href="tpl/img/favicon.ico" />' +
'</head><body><script>window.onload=function(){window.setTimeout' +
'(function(){history.back();},250);};</script></body></html>';

View File

@ -1,15 +0,0 @@
import Mousetrap from 'mousetrap';
/** Shortcuts **/
/* Go to */
Mousetrap.bind('g u', () => { window.location.href = Routing.generate('homepage'); });
Mousetrap.bind('g s', () => { window.location.href = Routing.generate('starred'); });
Mousetrap.bind('g r', () => { window.location.href = Routing.generate('archive'); });
Mousetrap.bind('g a', () => { window.location.href = Routing.generate('all'); });
Mousetrap.bind('g t', () => { window.location.href = Routing.generate('tag'); });
Mousetrap.bind('g c', () => { window.location.href = Routing.generate('config'); });
Mousetrap.bind('g i', () => { window.location.href = Routing.generate('import'); });
Mousetrap.bind('g d', () => { window.location.href = Routing.generate('developer'); });
Mousetrap.bind('?', () => { window.location.href = Routing.generate('howto'); });
Mousetrap.bind('g l', () => { window.location.href = Routing.generate('fos_user_security_logout'); });

View File

@ -1,55 +0,0 @@
import $ from 'jquery';
import './shortcuts/main';
import './shortcuts/entry';
/* Allows inline call qr-code call */
import jrQrcode from 'jr-qrcode'; // eslint-disable-line
function supportsLocalStorage() {
try {
return 'localStorage' in window && window.localStorage !== null;
} catch (e) {
return false;
}
}
function savePercent(id, percent) {
if (!supportsLocalStorage()) { return false; }
localStorage[`wallabag.article.${id}.percent`] = percent;
return true;
}
function retrievePercent(id) {
if (!supportsLocalStorage()) { return false; }
const bheight = $(document).height();
const percent = localStorage[`wallabag.article.${id}.percent`];
const scroll = bheight * percent;
$('html,body').animate({ scrollTop: scroll }, 'fast');
return true;
}
function initFilters() {
// no display if filters not available
if ($('div').is('#filters')) {
$('#button_filters').show();
$('.js-filters-action').sideNav({ edge: 'right' });
$('#clear_form_filters').on('click', () => {
$('#filters input').val('');
$('#filters :checked').removeAttr('checked');
return false;
});
}
}
function initExport() {
// no display if export not available
if ($('div').is('#export')) {
$('#button_export').show();
$('.js-export-action').sideNav({ edge: 'right' });
}
}
export { savePercent, retrievePercent, initFilters, initExport };

View File

@ -1,6 +0,0 @@
@font-face {
font-family: "PT Sans";
font-style: normal;
font-weight: 700;
src: local("PT Sans Bold"), local("PTSans-Bold"), url("../fonts/ptsansbold.woff") format("woff");
}

View File

@ -1,19 +0,0 @@
.messages.error.install {
border: 1px solid #c42608;
color: #c00 !important;
background: #fff0ef;
text-align: left;
}
.messages.notice.install {
border: 1px solid #ebcd41;
color: #000;
background: #fffcd3;
text-align: left;
}
.messages.success.install {
border: 1px solid #6dc70c;
background: #e0fbcc !important;
text-align: left;
}

View File

@ -1,66 +0,0 @@
@media print {
/* ### Layout ### */
body {
font-family: Serif;
background-color: #fff;
}
@page {
margin: 1cm;
}
img {
max-width: 100% !important;
}
/* ### Content ### */
/* Hide useless blocks */
body > header,
#article_toolbar,
#links,
#sort,
body > footer,
.top_link,
div.tools,
header div,
.messages,
.entrie + .results,
#article .mbm a,
#article-informations {
display: none !important;
}
article {
border: none !important;
}
/* Add URL after links */
.vieworiginal a::after {
content: " (" attr(href) ")";
}
/* Add explanation after abbr */
abbr[title]::after {
content: " (" attr(title) ")";
}
/* Change border on current pager item */
.pagination span.current {
border-style: dashed;
}
#main {
width: 100%;
padding: 0;
margin: 0;
margin-left: 0;
padding-right: 0;
padding-bottom: 0;
}
#article {
width: 100%;
}
}

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 307 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 B

View File

@ -1,8 +0,0 @@
function split(val) {
return val.split(/,\s*/);
}
function extractLast(term) {
return split(term).pop();
}
export default { split, extractLast };

View File

@ -1,329 +0,0 @@
/* jQuery */
import $ from 'jquery';
/* eslint-disable no-unused-vars */
/* jquery has default scope */
import cookie from 'jquery.cookie';
import ui from 'jquery-ui-browserify';
/* eslint-enable no-unused-vars */
/* Annotations */
import annotator from 'annotator';
/* Shortcuts */
import './shortcuts/main';
import './shortcuts/entry';
import '../../_global/js/shortcuts/main';
import '../../_global/js/shortcuts/entry';
/* Tools */
import { savePercent, retrievePercent } from '../../_global/js/tools';
import toggleSaveLinkForm from './uiTools';
global.jquery = $;
$.fn.ready(() => {
const $listmode = $('#listmode');
const $listentries = $('#list-entries');
/* ==========================================================================
Menu
========================================================================== */
$('#menu').click(() => {
$('#links').toggleClass('menu--open');
const content = $('#content');
if (content.hasClass('opacity03')) {
content.removeClass('opacity03');
}
});
/* ==========================================================================
List mode or Table Mode
========================================================================== */
$listmode.click(() => {
if ($.cookie('listmode') === 1) {
// Cookie
$.removeCookie('listmode');
$listentries.removeClass('listmode');
$listmode.removeClass('tablemode');
$listmode.addClass('listmode');
} else {
// Cookie
$.cookie('listmode', 1, { expires: 365 });
$listentries.addClass('listmode');
$listmode.removeClass('listmode');
$listmode.addClass('tablemode');
}
});
/* ==========================================================================
Cookie listmode
========================================================================== */
if ($.cookie('listmode') === 1) {
$listentries.addClass('listmode');
$listmode.removeClass('listmode');
$listmode.addClass('tablemode');
}
/* ==========================================================================
Add tag panel
========================================================================== */
$('#nav-btn-add-tag').on('click', () => {
$('.nav-panel-add-tag').toggle(100);
$('.nav-panel-menu').addClass('hidden');
$('#tag_label').focus();
return false;
});
/**
* Filters & Export
*/
// no display if filters not available
if ($('div').is('#filters')) {
$('#button_filters').show();
$('#clear_form_filters').on('click', () => {
$('#filters input').val('');
$('#filters :checked').removeAttr('checked');
return false;
});
}
/* ==========================================================================
Annotations & Remember position
========================================================================== */
if ($('article').length) {
const app = new annotator.App();
app.include(annotator.ui.main, {
element: document.querySelector('article'),
});
const x = JSON.parse($('#annotationroutes').html());
app.include(annotator.storage.http, x);
app.start().then(() => {
app.annotations.load({ entry: x.entryId });
});
$(window).scroll(() => {
const scrollTop = $(window).scrollTop();
const docHeight = $(document).height();
const scrollPercent = (scrollTop) / (docHeight);
const scrollPercentRounded = Math.round(scrollPercent * 100) / 100;
savePercent(x.entryId, scrollPercentRounded);
});
retrievePercent(x.entryId);
$(window).resize(() => {
retrievePercent(x.entryId);
});
}
/**
* Close window after adding entry if popup
*/
const currentUrl = window.location.href;
if (currentUrl.match('&closewin=true')) {
window.close();
}
/**
* Tags autocomplete
*/
/**
* Not working on v2
*
$('#value').bind('keydown', (event) => {
if (event.keyCode === $.ui.keyCode.TAB && $(this).data('ui-autocomplete').menu.active) {
event.preventDefault();
}
}).autocomplete({
source: function source(request, response) {
$.getJSON('./?view=tags', {
term: extractLast(request.term),
//id: $(':hidden#entry_id').val()
}, response);
},
search: function search() {
// custom minLength
const term = extractLast(this.value);
return term.length >= 1;
},
focus: function focus() {
// prevent value inserted on focus
return false;
},
select: function select(event, ui) {
const terms = split(this.value);
// remove the current input
terms.pop();
// add the selected item
terms.push(ui.item.value);
// add placeholder to get the comma-and-space at the end
terms.push('');
this.value = terms.join(', ');
return false;
},
});
*/
//---------------------------------------------------------------------------
// Close the message box when the user clicks the close icon
//---------------------------------------------------------------------------
$('a.closeMessage').on('click', () => {
$(this).parents('div.messages').slideUp(300, () => { $(this).remove(); });
return false;
});
$('#search-form').hide();
$('#bagit-form').hide();
$('#filters').hide();
$('#download-form').hide();
//---------------------------------------------------------------------------
// Toggle the 'Search' popup in the sidebar
//---------------------------------------------------------------------------
function toggleSearch() {
$('#search-form').toggle();
$('#search').toggleClass('current');
$('#search').toggleClass('active-current');
$('#search-arrow').toggleClass('arrow-down');
if ($('#search').hasClass('current')) {
$('#content').addClass('opacity03');
} else {
$('#content').removeClass('opacity03');
}
}
//---------------------------------------------------------------------------
// Toggle the 'Filter' popup on entries list
//---------------------------------------------------------------------------
function toggleFilter() {
$('#filters').toggle();
}
//---------------------------------------------------------------------------
// Toggle the 'Download' popup on entries list
//---------------------------------------------------------------------------
function toggleDownload() {
$('#download-form').toggle();
}
//---------------------------------------------------------------------------
// Toggle the 'Save a Link' popup in the sidebar
//---------------------------------------------------------------------------
function toggleBagit() {
$('#bagit-form').toggle();
$('#bagit').toggleClass('current');
$('#bagit').toggleClass('active-current');
$('#bagit-arrow').toggleClass('arrow-down');
if ($('#bagit').hasClass('current')) {
$('#content').addClass('opacity03');
} else {
$('#content').removeClass('opacity03');
}
}
//---------------------------------------------------------------------------
// Close all #links popups in the sidebar
//---------------------------------------------------------------------------
function closePopups() {
$('#links .messages').hide();
$('#links > li > a').removeClass('active-current');
$('#links > li > a').removeClass('current');
$('[id$=-arrow]').removeClass('arrow-down');
$('#content').removeClass('opacity03');
}
$('#search').click(() => {
closePopups();
toggleSearch();
$('#searchfield').focus();
});
$('.filter-btn').click(() => {
closePopups();
toggleFilter();
});
$('.download-btn').click(() => {
closePopups();
toggleDownload();
});
$('#bagit').click(() => {
closePopups();
toggleBagit();
$('#plainurl').focus();
});
$('#search-form-close').click(() => {
toggleSearch();
});
$('#filter-form-close').click(() => {
toggleFilter();
});
$('#download-form-close').click(() => {
toggleDownload();
});
$('#bagit-form-close').click(() => {
toggleBagit();
});
const $bagitFormForm = $('#bagit-form-form');
/* ==========================================================================
bag it link and close button
========================================================================== */
// send 'bag it link' form request via ajax
$bagitFormForm.submit((event) => {
$('body').css('cursor', 'wait');
$('#add-link-result').empty();
$.ajax({
type: $bagitFormForm.attr('method'),
url: $bagitFormForm.attr('action'),
data: $bagitFormForm.serialize(),
success: function success() {
$('#add-link-result').html('Done!');
$('#plainurl').val('');
$('#plainurl').blur('');
$('body').css('cursor', 'auto');
},
error: function error() {
$('#add-link-result').html('Failed!');
$('body').css('cursor', 'auto');
},
});
event.preventDefault();
});
/* ==========================================================================
Process all links inside an article
========================================================================== */
$('article a[href^="http"]').after(
() => `<a href="${$(this).attr('href')}" class="add-to-wallabag-link-after" ` +
'alt="add to wallabag" title="add to wallabag"></a>'
);
$('.add-to-wallabag-link-after').click((event) => {
toggleSaveLinkForm($(this).attr('href'), event);
event.preventDefault();
});
});

View File

@ -1,26 +0,0 @@
import Mousetrap from 'mousetrap';
import $ from 'jquery';
$(document).ready(() => {
if ($('#article').length > 0) {
/* Article view */
Mousetrap.bind('o', () => {
$('div#article_toolbar ul.links a.original')[0].click();
});
/* mark as favorite */
Mousetrap.bind('f', () => {
$('div#article_toolbar ul.links a.favorite')[0].click();
});
/* mark as read */
Mousetrap.bind('a', () => {
$('div#article_toolbar ul.links a.markasread')[0].click();
});
/* delete */
Mousetrap.bind('del', () => {
$('div#article_toolbar ul.links a.delete')[0].click();
});
}
});

View File

@ -1,7 +0,0 @@
$(document).ready(() => {
Mousetrap.bind('s', () => {
$('#search').trigger('click');
$('#search_entry_term').focus();
return false;
});
});

View File

@ -1,35 +0,0 @@
import $ from 'jquery';
function toggleSaveLinkForm(url, event) {
$('#add-link-result').empty();
const $bagit = $('#bagit');
const $bagitForm = $('#bagit-form');
$bagit.toggleClass('active-current');
// only if bag-it link is not presented on page
if ($bagit.length === 0) {
if (event !== 'undefined' && event) {
$bagitForm.css({ position: 'absolute', top: event.pageY, left: event.pageX - 200 });
} else {
$bagitForm.css({ position: 'relative', top: 'auto', left: 'auto' });
}
}
const searchForm = $('#search-form');
const plainUrl = $('#plainurl');
if (searchForm.length !== 0) {
$('#search').removeClass('current');
$('#search-arrow').removeClass('arrow-down');
searchForm.hide();
}
$bagitForm.toggle();
$('#content').toggleClass('opacity03');
if (url !== 'undefined' && url) {
plainUrl.val(url);
}
plainUrl.focus();
}
export default toggleSaveLinkForm;

File diff suppressed because it is too large Load Diff

View File

@ -1,77 +0,0 @@
@media print {
/* ### Layout ### */
body {
font-family: Serif;
background-color: #fff;
}
@page {
margin: 1cm;
}
img {
max-width: 100% !important;
}
/* ### Content ### */
/* Hide useless blocks */
body > header,
#article_toolbar,
#links,
#sort,
body > footer,
.top_link,
div.tools,
header div,
.messages,
.entry + .results,
#slide-out,
.progress,
.hide-on-large-only,
#article > aside,
#article .mbm a {
display: none !important;
}
main {
padding-left: 0 !important;
}
#article {
margin: inherit !important;
}
article {
border: none !important;
}
/* Add URL after links */
.vieworiginal a::after {
content: " (" attr(href) ")";
}
/* Add explanation after abbr */
abbr[title]::after {
content: " (" attr(title) ")";
}
/* Change border on current pager item */
.pagination span.current {
border-style: dashed;
}
#main {
width: 100%;
padding: 0;
margin: 0;
margin-left: 0;
padding-right: 0;
padding-bottom: 0;
}
#article {
width: 100%;
}
}

View File

@ -1,110 +0,0 @@
/* jQuery */
import $ from 'jquery';
/* Annotations */
import annotator from 'annotator';
/* Tools */
import { savePercent, retrievePercent, initFilters, initExport } from '../../_global/js/tools';
/* Import shortcuts */
import './shortcuts/main';
import './shortcuts/entry';
import '../../_global/js/shortcuts/main';
import '../../_global/js/shortcuts/entry';
require('materialize'); // eslint-disable-line
global.jQuery = $;
$(document).ready(() => {
// sideNav
$('.button-collapse').sideNav();
$('select').material_select();
$('.collapsible').collapsible({
accordion: false,
});
$('.datepicker').pickadate({
selectMonths: true,
selectYears: 15,
formatSubmit: 'dd/mm/yyyy',
hiddenName: true,
format: 'dd/mm/yyyy',
});
initFilters();
initExport();
$('#nav-btn-add-tag').on('click', () => {
$('.nav-panel-add-tag').toggle(100);
$('.nav-panel-menu').addClass('hidden');
$('#tag_label').focus();
return false;
});
$('#nav-btn-add').on('click', () => {
$('.nav-panel-buttom').hide(100);
$('.nav-panel-add').show(100);
$('.nav-panels .action').hide(100);
$('.nav-panel-menu').addClass('hidden');
$('.nav-panels').css('background', 'white');
$('#entry_url').focus();
return false;
});
$('#nav-btn-search').on('click', () => {
$('.nav-panel-buttom').hide(100);
$('.nav-panel-search').show(100);
$('.nav-panels .action').hide(100);
$('.nav-panel-menu').addClass('hidden');
$('.nav-panels').css('background', 'white');
$('#search_entry_term').focus();
return false;
});
$('.close').on('click', () => {
$('.nav-panel-add').hide(100);
$('.nav-panel-search').hide(100);
$('.nav-panel-buttom').show(100);
$('.nav-panels .action').show(100);
$('.nav-panel-menu').removeClass('hidden');
$('.nav-panels').css('background', 'transparent');
return false;
});
$(window).scroll(() => {
const s = $(window).scrollTop();
const d = $(document).height();
const c = $(window).height();
const scrollPercent = (s / (d - c)) * 100;
$('.progress .determinate').css('width', `${scrollPercent}%`);
});
/* ==========================================================================
Annotations & Remember position
========================================================================== */
if ($('article').length) {
const app = new annotator.App();
const x = JSON.parse($('#annotationroutes').html());
app.include(annotator.ui.main, {
element: document.querySelector('article'),
});
app.include(annotator.storage.http, x);
app.start().then(() => {
app.annotations.load({ entry: x.entryId });
});
$(window).scroll(() => {
const scrollTop = $(window).scrollTop();
const docHeight = $(document).height();
const scrollPercent = (scrollTop) / (docHeight);
const scrollPercentRounded = Math.round(scrollPercent * 100) / 100;
savePercent(x.entryId, scrollPercentRounded);
});
retrievePercent(x.entryId);
$(window).resize(() => {
retrievePercent(x.entryId);
});
}
});

View File

@ -1,26 +0,0 @@
import Mousetrap from 'mousetrap';
import $ from 'jquery';
$(document).ready(() => {
if ($('#article').length > 0) {
/* open original article */
Mousetrap.bind('o', () => {
$('ul.side-nav a.original i')[0].click();
});
/* mark as favorite */
Mousetrap.bind('f', () => {
$('ul.side-nav a.favorite i')[0].click();
});
/* mark as read */
Mousetrap.bind('a', () => {
$('ul.side-nav a.markasread i')[0].click();
});
/* delete */
Mousetrap.bind('del', () => {
$('ul.side-nav a.delete i')[0].click();
});
}
});

View File

@ -1,75 +0,0 @@
import Mousetrap from 'mousetrap';
import $ from 'jquery';
function toggleFocus(cardToToogleFocus) {
if (cardToToogleFocus) {
$(cardToToogleFocus).toggleClass('z-depth-4');
}
}
$(document).ready(() => {
const cards = $('#content').find('.card');
const cardNumber = cards.length;
let cardIndex = 0;
/* If we come from next page */
if (window.location.hash === '#prev') {
cardIndex = cardNumber - 1;
}
let card = cards[cardIndex];
const pagination = $('.pagination');
/* Show nothing on quickstart */
if ($('#content > div.quickstart').length > 0) {
return;
}
/* Focus current card */
toggleFocus(card);
/* Actions */
Mousetrap.bind('g n', () => {
$('#nav-btn-add').trigger('click');
return false;
});
Mousetrap.bind('s', () => {
$('#nav-btn-search').trigger('click');
return false;
});
Mousetrap.bind('esc', () => {
$('.close').trigger('click');
});
/* Select right card. If there's a next page, go to next page */
Mousetrap.bind('right', () => {
if (cardIndex >= 0 && cardIndex < cardNumber - 1) {
toggleFocus(card);
cardIndex += 1;
card = cards[cardIndex];
toggleFocus(card);
return;
}
if (pagination.length > 0 && pagination.find('li.next:not(.disabled)').length > 0 && cardIndex === cardNumber - 1) {
window.location.href = window.location.origin + $(pagination).find('li.next a').attr('href');
}
});
/* Select previous card. If there's a previous page, go to next page */
Mousetrap.bind('left', () => {
if (cardIndex > 0 && cardIndex < cardNumber) {
toggleFocus(card);
cardIndex -= 1;
card = cards[cardIndex];
toggleFocus(card);
return;
}
if (pagination.length > 0 && $(pagination).find('li.prev:not(.disabled)').length > 0 && cardIndex === 0) {
window.location.href = `${window.location.origin + $(pagination).find('li.prev a').attr('href')}#prev`;
}
});
Mousetrap.bind('enter', () => {
window.location.href = window.location.origin + $(card).find('span.card-title a').attr('href');
});
});

View File

@ -1,4 +1,9 @@
# 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'
@ -6,6 +11,8 @@ 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
@ -16,4 +23,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:updated', 'symfony:cache:clear'
after 'deploy:finishing', 'deploy:cleanup'

View File

@ -30,7 +30,7 @@ framework:
assets: ~
wallabag_core:
version: 2.2.3
version: 2.0.8
paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
languages:
en: 'English'
@ -44,23 +44,14 @@ wallabag_core:
es: 'Español'
oc: 'Occitan'
it: 'Italiano'
pt: 'Português'
items_on_page: 12
theme: material
language: '%locale%'
language: en
rss_limit: 50
reading_speed: 1
cache_lifetime: 10
action_mark_as_read: 1
list_mode: 1
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%"
wallabag_import:
allow_mimetypes: ['application/octet-stream', 'application/json', 'text/plain', 'text/csv']
allow_mimetypes: ['application/octet-stream', 'application/json', 'text/plain']
resource_dir: "%kernel.root_dir%/../web/uploads/import"
# Twig Configuration
@ -69,7 +60,19 @@ twig:
strict_variables: "%kernel.debug%"
form_themes:
- "LexikFormFilterBundle:Form:form_div_layout.html.twig"
exception_controller: wallabag_core.exception_controller:showAction
# Assetic Configuration
assetic:
debug: "%kernel.debug%"
use_controller: false
bundles: [ ]
#java: /usr/bin/java
filters:
cssrewrite: ~
#closure:
# jar: "%kernel.root_dir%/Resources/java/compiler.jar"
#yui_css:
# jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
# Doctrine Configuration
doctrine:
@ -80,9 +83,8 @@ doctrine:
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: "%database_charset%"
charset: UTF8
path: "%database_path%"
unix_socket: "%database_socket%"
server_version: 5.6
orm:
@ -117,26 +119,12 @@ swiftmailer:
fos_rest:
param_fetcher_listener: true
body_listener: true
format_listener: true
view:
mime_types:
csv:
- 'text/csv'
- 'text/plain'
pdf:
- 'application/pdf'
epub:
- 'application/epub+zip'
mobi:
- 'application/x-mobipocket-ebook'
view_response_listener: 'force'
formats:
xml: true
json: true
txt: true
csv: true
pdf: true
epub: true
mobi: true
json : true
templating_formats:
html: true
force_redirects:
@ -145,21 +133,10 @@ fos_rest:
default_engine: twig
routing_loader:
default_format: json
format_listener:
enabled: true
rules:
- { path: "^/api/entries/([0-9]+)/export.(.*)", priorities: ['epub', 'mobi', 'pdf', 'txt', 'csv'], fallback_format: json, prefer_extension: false }
- { path: "^/api", priorities: ['json', 'xml'], fallback_format: json, prefer_extension: false }
- { path: "^/annotations", priorities: ['json', 'xml'], fallback_format: json, prefer_extension: false }
# for an unknown reason, EACH REQUEST goes to FOS\RestBundle\EventListener\FormatListener
# so we need to add custom rule for custom api export but also for all other routes of the application...
- { path: '^/', priorities: ['text/html', '*/*'], fallback_format: html, prefer_extension: false }
nelmio_api_doc:
sandbox:
enabled: false
cache:
enabled: true
name: wallabag API documentation
nelmio_cors:
@ -212,7 +189,6 @@ fos_user:
from_email:
address: "%from_email%"
sender_name: wallabag
fos_oauth_server:
db_driver: orm
client_class: Wallabag\ApiBundle\Entity\Client
@ -220,9 +196,7 @@ fos_oauth_server:
refresh_token_class: Wallabag\ApiBundle\Entity\RefreshToken
auth_code_class: Wallabag\ApiBundle\Entity\AuthCode
service:
user_provider: fos_user.user_provider.username_email
options:
refresh_token_lifetime: 1209600
user_provider: fos_user.user_manager
scheb_two_factor:
trusted_computer:
@ -238,143 +212,15 @@ scheb_two_factor:
mailer: wallabag_user.auth_code_mailer
kphoen_rulerz:
targets:
executors:
doctrine: true
old_sound_rabbit_mq:
connections:
default:
host: "%rabbitmq_host%"
port: "%rabbitmq_port%"
user: "%rabbitmq_user%"
password: "%rabbitmq_password%"
vhost: /
lazy: true
producers:
import_pocket:
connection: default
exchange_options:
name: 'wallabag.import.pocket'
type: topic
import_readability:
connection: default
exchange_options:
name: 'wallabag.import.readability'
type: topic
import_pinboard:
connection: default
exchange_options:
name: 'wallabag.import.pinboard'
type: topic
import_instapaper:
connection: default
exchange_options:
name: 'wallabag.import.instapaper'
type: topic
import_wallabag_v1:
connection: default
exchange_options:
name: 'wallabag.import.wallabag_v1'
type: topic
import_wallabag_v2:
connection: default
exchange_options:
name: 'wallabag.import.wallabag_v2'
type: topic
import_firefox:
connection: default
exchange_options:
name: 'wallabag.import.firefox'
type: topic
import_chrome:
connection: default
exchange_options:
name: 'wallabag.import.chrome'
type: topic
consumers:
import_pocket:
connection: default
exchange_options:
name: 'wallabag.import.pocket'
type: topic
queue_options:
name: 'wallabag.import.pocket'
callback: wallabag_import.consumer.amqp.pocket
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
import_readability:
connection: default
exchange_options:
name: 'wallabag.import.readability'
type: topic
queue_options:
name: 'wallabag.import.readability'
callback: wallabag_import.consumer.amqp.readability
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
import_instapaper:
connection: default
exchange_options:
name: 'wallabag.import.instapaper'
type: topic
queue_options:
name: 'wallabag.import.instapaper'
callback: wallabag_import.consumer.amqp.instapaper
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
import_pinboard:
connection: default
exchange_options:
name: 'wallabag.import.pinboard'
type: topic
queue_options:
name: 'wallabag.import.pinboard'
callback: wallabag_import.consumer.amqp.pinboard
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
import_wallabag_v1:
connection: default
exchange_options:
name: 'wallabag.import.wallabag_v1'
type: topic
queue_options:
name: 'wallabag.import.wallabag_v1'
callback: wallabag_import.consumer.amqp.wallabag_v1
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
import_wallabag_v2:
connection: default
exchange_options:
name: 'wallabag.import.wallabag_v2'
type: topic
queue_options:
name: 'wallabag.import.wallabag_v2'
callback: wallabag_import.consumer.amqp.wallabag_v2
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
import_firefox:
connection: default
exchange_options:
name: 'wallabag.import.firefox'
type: topic
queue_options:
name: 'wallabag.import.firefox'
callback: wallabag_import.consumer.amqp.firefox
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
import_chrome:
connection: default
exchange_options:
name: 'wallabag.import.chrome'
type: topic
queue_options:
name: 'wallabag.import.chrome'
callback: wallabag_import.consumer.amqp.chrome
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
fos_js_routing:
routes_to_expose:
- homepage
- starred
- archive
- all
- tag
- config
- import
- developer
- howto
- fos_user_security_logout
- new
lexik_maintenance:
authorized:
ips: ['127.0.0.1']
driver:
ttl: 3600
class: 'Lexik\Bundle\MaintenanceBundle\Drivers\DatabaseDriver'
response:
code: 503
status: "wallabag Service Temporarily Unavailable"

View File

@ -35,16 +35,11 @@ monolog:
VERBOSITY_DEBUG: DEBUG
channels: [doctrine]
assetic:
use_controller: true
swiftmailer:
# see http://mailcatcher.me/
transport: smtp
host: 'localhost'
port: 1025
# If you want to use cache for queries used in WallabagExtension
# Uncomment the following lines
#doctrine:
# orm:
# metadata_cache_driver: apcu
# result_cache_driver: apcu
# query_cache_driver: apcu

View File

@ -28,7 +28,7 @@ doctrine:
dbname: "%test_database_name%"
user: "%test_database_user%"
password: "%test_database_password%"
charset: "%test_database_charset%"
charset: UTF8
path: "%test_database_path%"
orm:
metadata_cache_driver:

View File

@ -18,45 +18,22 @@ parameters:
database_password: ~
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
database_table_prefix: wallabag_
database_socket: null
# with MySQL, use "utf8mb4" if you got problem with content with emojis
database_charset: utf8
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: ~
mailer_password: ~
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: ~
mailer_password: ~
locale: en
locale: en
# A secret key that's used to generate certain security-related tokens
secret: ovmpmAWXRCabNlMgzlzFXDYmCFfzGv
secret: ovmpmAWXRCabNlMgzlzFXDYmCFfzGv
# two factor stuff
twofactor_auth: true
twofactor_sender: no-reply@wallabag.org
# fosuser stuff
fosuser_registration: true
fosuser_confirmation: true
from_email: no-reply@wallabag.org
rss_limit: 50
# RabbitMQ processing
rabbitmq_host: localhost
rabbitmq_port: 5672
rabbitmq_user: guest
rabbitmq_password: guest
rabbitmq_prefetch_count: 10
# Redis processing
redis_scheme: tcp
redis_host: localhost
redis_port: 6379
redis_path: null
redis_password: null
# sites credentials
sites_credentials: {}

View File

@ -5,5 +5,4 @@ parameters:
test_database_name: null
test_database_user: null
test_database_password: null
test_database_path: '%kernel.root_dir%/../data/db/wallabag_test.sqlite'
test_database_charset: utf8
test_database_path: '%kernel.root_dir%/../data/db/wallabag_testYO.sqlite'

View File

@ -7,14 +7,8 @@ wallabag_import:
type: annotation
prefix: /import
wallabag_user:
resource: "@WallabagUserBundle/Controller/"
type: annotation
prefix: /users
wallabag_api:
resource: "@WallabagApiBundle/Controller/"
type: annotation
resource: "@WallabagApiBundle/Resources/config/routing.yml"
prefix: /
app:
@ -48,6 +42,3 @@ craue_config_settings_modify:
path: /settings
defaults:
_controller: CraueConfigBundle:Settings:modify
fos_js_routing:
resource: "@FOSJsRoutingBundle/Resources/config/routing/routing.xml"

View File

@ -1,3 +1,4 @@
Rest_Wallabag:
type : rest
resource: "@WallabagApiBundle/Resources/config/routing_rest.yml"
type : rest
resource: "@WallabagApiBundle/Resources/config/routing_rest.yml"

View File

@ -60,8 +60,6 @@ security:
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: /(unread|starred|archive).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/share, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/settings, roles: ROLE_SUPER_ADMIN }
- { path: ^/annotations, roles: ROLE_USER }
- { path: ^/users, roles: ROLE_SUPER_ADMIN }
- { path: ^/, roles: ROLE_USER }

View File

@ -16,12 +16,6 @@ services:
wallabag.twig_extension:
class: Wallabag\CoreBundle\Twig\WallabagExtension
public: false
arguments:
- "@wallabag_core.entry_repository"
- "@wallabag_core.tag_repository"
- "@security.token_storage"
- "%wallabag_core.cache_lifetime%"
- "@translator"
tags:
- { name: twig.extension }
@ -32,13 +26,13 @@ services:
- { name: twig.extension }
wallabag.locale_listener:
class: Wallabag\CoreBundle\Event\Listener\LocaleListener
class: Wallabag\CoreBundle\EventListener\LocaleListener
arguments: ["%kernel.default_locale%"]
tags:
- { name: kernel.event_subscriber }
wallabag.user_locale_listener:
class: Wallabag\CoreBundle\Event\Listener\UserLocaleListener
class: Wallabag\CoreBundle\EventListener\UserLocaleListener
arguments: ["@session"]
tags:
- { name: kernel.event_listener, event: security.interactive_login, method: onInteractiveLogin }

View File

@ -6,4 +6,3 @@ parameters:
test_database_user: root
test_database_password: ~
test_database_path: ~
test_database_charset: utf8mb4

View File

@ -6,4 +6,3 @@ parameters:
test_database_user: travis
test_database_password: ~
test_database_path: ~
test_database_charset: utf8

View File

@ -5,5 +5,4 @@ parameters:
test_database_name: ~
test_database_user: ~
test_database_password: ~
test_database_path: "%kernel.root_dir%/../data/db/wallabag_test.sqlite"
test_database_charset: utf8
test_database_path: "%kernel.root_dir%/../data/db/wallabag_testHU.sqlite"

View File

@ -22,6 +22,7 @@ echo '> Checking Symfony requirements:'.PHP_EOL.' ';
$messages = array();
foreach ($symfonyRequirements->getRequirements() as $req) {
/** @var $req Requirement */
if ($helpText = get_error_message($req, $lineSize)) {
echo_style('red', 'E');
$messages['error'][] = $helpText;
@ -120,14 +121,10 @@ function echo_block($style, $title, $message)
echo PHP_EOL.PHP_EOL;
echo_style($style, str_repeat(' ', $width));
echo PHP_EOL;
echo_style($style, str_pad(' ['.$title.']', $width, ' ', STR_PAD_RIGHT));
echo PHP_EOL;
echo_style($style, $message);
echo PHP_EOL;
echo_style($style, str_repeat(' ', $width));
echo PHP_EOL;
echo_style($style, str_repeat(' ', $width).PHP_EOL);
echo_style($style, str_pad(' ['.$title.']', $width, ' ', STR_PAD_RIGHT).PHP_EOL);
echo_style($style, str_pad($message, $width, ' ', STR_PAD_RIGHT).PHP_EOL);
echo_style($style, str_repeat(' ', $width).PHP_EOL);
}
function has_color_support()

110
build.xml
View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="wallabag" default="build">
<target name="build" depends="clean,prepare,phpunit"/>
<target name="prepare-mysql" depends="clean,prepare_mysql"/>
<target name="prepare-sqlite" depends="clean,prepare_sqlite"/>
<target name="prepare-pgsql" depends="clean,prepare_pgsql"/>
<target name="prepare-mysql" depends="clean,db_mysql,prepare"/>
<target name="prepare-sqlite" depends="clean,db_sqlite,prepare"/>
<target name="prepare-pgsql" depends="clean,db_pgsql,prepare"/>
<target name="clean" description="Cleanup build artifacts">
<delete dir="${basedir}/var/cache"/>
@ -26,6 +26,11 @@
<arg value="doctrine:schema:create"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="cache:clear"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:fixtures:load"/>
@ -34,133 +39,46 @@
</exec>
</target>
<target name="prepare_mysql" description="Run test for MySQL">
<target name="db_mysql" description="Run test for MySQL">
<delete dir="${basedir}/app/config/parameters.yml"/>
<exec executable="cp">
<arg value="${basedir}/app/config/tests/parameters_test.mysql.yml"/>
<arg value="${basedir}/app/config/parameters_test.yml"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="cache:clear"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:database:drop"/>
<arg value="--force"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:database:create"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:database:import"/>
<arg value="data/sql/mysql_base.sql"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:migrations:migrate"/>
<arg value="--no-interaction"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:fixtures:load"/>
<arg value="--no-interaction"/>
<arg value="--env=test"/>
</exec>
</target>
<target name="prepare_sqlite" description="Run test for SQLite">
<target name="db_sqlite" description="Run test for SQLite">
<delete dir="${basedir}/app/config/parameters.yml"/>
<exec executable="cp">
<arg value="${basedir}/app/config/tests/parameters_test.sqlite.yml"/>
<arg value="${basedir}/app/config/parameters_test.yml"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="cache:clear"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:database:drop"/>
<arg value="--force"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:database:create"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:schema:create"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:migrations:migrate"/>
<arg value="--no-interaction"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:fixtures:load"/>
<arg value="--no-interaction"/>
<arg value="--env=test"/>
</exec>
</target>
<target name="prepare_pgsql" description="Run test for PostgreSQL">
<target name="db_pgsql" description="Run test for PostgreSQL">
<delete dir="${basedir}/app/config/parameters.yml"/>
<exec executable="cp">
<arg value="${basedir}/app/config/tests/parameters_test.pgsql.yml"/>
<arg value="${basedir}/app/config/parameters_test.yml"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="cache:clear"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:database:drop"/>
<arg value="--force"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:database:create"/>
<arg value="--env=test"/>
</exec>
<exec executable="psql">
<arg value="-h"/>
<arg value="localhost"/>
<arg value="-d"/>
<arg value="wallabag_test"/>
<arg value="-U"/>
<arg value="travis"/>
<arg value="-f"/>
<arg value="data/sql/pgsql_base.sql"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:migrations:migrate"/>
<arg value="--no-interaction"/>
<arg value="--env=test"/>
</exec>
<exec executable="php">
<arg value="${basedir}/bin/console"/>
<arg value="doctrine:fixtures:load"/>
<arg value="--no-interaction"/>
<arg value="--env=test"/>
</exec>
</target>
<target name="phpunit" description="Run unit tests with PHPUnit + HTML Coverage">

View File

@ -43,56 +43,53 @@
"ext-iconv": "*",
"ext-tokenizer": "*",
"ext-pdo": "*",
"symfony/symfony": "3.2.*",
"symfony/symfony": "3.1.*",
"doctrine/orm": "^2.5",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/doctrine-cache-bundle": "^1.2",
"twig/extensions": "~1.0",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "^2.3",
"symfony/monolog-bundle": "^3.0",
"symfony/monolog-bundle": "^2.8",
"sensio/distribution-bundle": "^5.0",
"sensio/framework-extra-bundle": "^3.0.2",
"incenteev/composer-parameter-handler": "^2.0",
"nelmio/cors-bundle": "~1.4.0",
"friendsofsymfony/rest-bundle": "~2.1",
"jms/serializer-bundle": "~1.1",
"friendsofsymfony/rest-bundle": "~1.4",
"jms/serializer-bundle": "~1.0",
"nelmio/api-doc-bundle": "~2.7",
"mgargano/simplehtmldom": "~1.5",
"wallabag/tcpdf": "^6.2",
"tecnickcom/tcpdf": "~6.2",
"simplepie/simplepie": "~1.3.1",
"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.x-dev",
"friendsofsymfony/user-bundle": "~2.0@dev",
"friendsofsymfony/oauth-server-bundle": "^1.5",
"stof/doctrine-extensions-bundle": "^1.2",
"stof/doctrine-extensions-bundle": "^1.2@dev",
"scheb/two-factor-bundle": "~2.0",
"grandt/phpepub": "~4.0",
"wallabag/php-mobi": "~1.0.0",
"kphoen/rulerz-bundle": "~0.13",
"kphoen/rulerz-bundle": "~0.10",
"guzzlehttp/guzzle": "^5.3.1",
"doctrine/doctrine-migrations-bundle": "^1.0",
"paragonie/random_compat": "~1.0",
"craue/config-bundle": "~1.4",
"mnapoli/piwik-twig-extension": "^1.0",
"lexik/maintenance-bundle": "~2.1",
"ocramius/proxy-manager": "1.*",
"white-october/pagerfanta-bundle": "^1.0",
"php-amqplib/rabbitmq-bundle": "^1.8",
"predis/predis": "^1.0",
"javibravo/simpleue": "^1.0",
"symfony/dom-crawler": "^3.1",
"friendsofsymfony/jsrouting-bundle": "^1.6",
"bdunogier/guzzle-site-authenticator": "1.0.0-beta1"
"white-october/pagerfanta-bundle": "^1.0"
},
"require-dev": {
"doctrine/doctrine-fixtures-bundle": "~2.2",
"doctrine/data-fixtures": "~1.1.1",
"sensio/generator-bundle": "^3.0",
"phpunit/phpunit": "~4.4",
"symfony/phpunit-bridge": "^3.0",
"friendsofphp/php-cs-fixer": "~1.9",
"m6web/redis-mock": "^2.0"
"friendsofphp/php-cs-fixer": "~1.9"
},
"scripts": {
"post-cmd": [
@ -100,7 +97,8 @@
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
],
"post-install-cmd": [
"@post-cmd"
@ -128,10 +126,7 @@
"psr-4": { "Tests\\": "tests/" }
},
"config": {
"bin-dir": "bin",
"platform": {
"php": "5.5.9"
}
"bin-dir": "bin"
},
"minimum-stability": "dev",
"prefer-stable": true

2904
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,25 +0,0 @@
CREATE TABLE wallabag_craue_config_setting (name VARCHAR(255) NOT NULL, value VARCHAR(255) DEFAULT NULL, section VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_5D9649505E237E06 (name), PRIMARY KEY(name)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE `wallabag_entry` (id INT AUTO_INCREMENT NOT NULL, user_id INT DEFAULT NULL, title LONGTEXT DEFAULT NULL, url LONGTEXT DEFAULT NULL, is_archived TINYINT(1) NOT NULL, is_starred TINYINT(1) NOT NULL, content LONGTEXT DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype LONGTEXT DEFAULT NULL, language LONGTEXT DEFAULT NULL, reading_time INT DEFAULT NULL, domain_name LONGTEXT DEFAULT NULL, preview_picture LONGTEXT DEFAULT NULL, is_public TINYINT(1) DEFAULT '0', INDEX IDX_F4D18282A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE wallabag_entry_tag (entry_id INT NOT NULL, tag_id INT NOT NULL, INDEX IDX_C9F0DD7CBA364942 (entry_id), INDEX IDX_C9F0DD7CBAD26311 (tag_id), PRIMARY KEY(entry_id, tag_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE `wallabag_config` (id INT AUTO_INCREMENT NOT NULL, user_id INT DEFAULT NULL, theme VARCHAR(255) NOT NULL, items_per_page INT NOT NULL, language VARCHAR(255) NOT NULL, rss_token VARCHAR(255) DEFAULT NULL, rss_limit INT DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, UNIQUE INDEX UNIQ_87E64C53A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE `wallabag_tagging_rule` (id INT AUTO_INCREMENT NOT NULL, config_id INT DEFAULT NULL, rule VARCHAR(255) NOT NULL, tags LONGTEXT NOT NULL COMMENT '(DC2Type:simple_array)', INDEX IDX_2D9B3C5424DB0683 (config_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE `wallabag_tag` (id INT AUTO_INCREMENT NOT NULL, `label` LONGTEXT NOT NULL, slug VARCHAR(128) NOT NULL, UNIQUE INDEX UNIQ_4CA58A8C989D9B62 (slug), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE wallabag_oauth2_clients (id INT AUTO_INCREMENT NOT NULL, random_id VARCHAR(255) NOT NULL, redirect_uris LONGTEXT NOT NULL COMMENT '(DC2Type:array)', secret VARCHAR(255) NOT NULL, allowed_grant_types LONGTEXT NOT NULL COMMENT '(DC2Type:array)', PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE wallabag_oauth2_access_tokens (id INT AUTO_INCREMENT NOT NULL, client_id INT NOT NULL, user_id INT DEFAULT NULL, token VARCHAR(255) NOT NULL, expires_at INT DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_368A42095F37A13B (token), INDEX IDX_368A420919EB6921 (client_id), INDEX IDX_368A4209A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE wallabag_oauth2_refresh_tokens (id INT AUTO_INCREMENT NOT NULL, client_id INT NOT NULL, user_id INT DEFAULT NULL, token VARCHAR(255) NOT NULL, expires_at INT DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_20C9FB245F37A13B (token), INDEX IDX_20C9FB2419EB6921 (client_id), INDEX IDX_20C9FB24A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE wallabag_oauth2_auth_codes (id INT AUTO_INCREMENT NOT NULL, client_id INT NOT NULL, user_id INT DEFAULT NULL, token VARCHAR(255) NOT NULL, redirect_uri LONGTEXT NOT NULL, expires_at INT DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_EE52E3FA5F37A13B (token), INDEX IDX_EE52E3FA19EB6921 (client_id), INDEX IDX_EE52E3FAA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE `wallabag_user` (id INT AUTO_INCREMENT NOT NULL, username VARCHAR(180) NOT NULL, username_canonical VARCHAR(180) NOT NULL, email VARCHAR(180) NOT NULL, email_canonical VARCHAR(180) NOT NULL, enabled TINYINT(1) NOT NULL, salt VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, last_login DATETIME DEFAULT NULL, locked TINYINT(1) NOT NULL, expired TINYINT(1) NOT NULL, expires_at DATETIME DEFAULT NULL, confirmation_token VARCHAR(255) DEFAULT NULL, password_requested_at DATETIME DEFAULT NULL, roles LONGTEXT NOT NULL COMMENT '(DC2Type:array)', credentials_expired TINYINT(1) NOT NULL, credentials_expire_at DATETIME DEFAULT NULL, name LONGTEXT DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INT DEFAULT NULL, twoFactorAuthentication TINYINT(1) NOT NULL, trusted LONGTEXT DEFAULT NULL COMMENT '(DC2Type:json_array)', UNIQUE INDEX UNIQ_1D63E7E592FC23A8 (username_canonical), UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF (email_canonical), UNIQUE INDEX UNIQ_1D63E7E5C05FB297 (confirmation_token), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE wallabag_annotation (id INT AUTO_INCREMENT NOT NULL, user_id INT DEFAULT NULL, entry_id INT DEFAULT NULL, text LONGTEXT NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, quote VARCHAR(255) NOT NULL, ranges LONGTEXT NOT NULL COMMENT '(DC2Type:array)', INDEX IDX_A7AED006A76ED395 (user_id), INDEX IDX_A7AED006BA364942 (entry_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
ALTER TABLE `wallabag_entry` ADD CONSTRAINT FK_F4D18282A76ED395 FOREIGN KEY (user_id) REFERENCES `wallabag_user` (id);
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_C9F0DD7CBA364942 FOREIGN KEY (entry_id) REFERENCES `wallabag_entry` (id);
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_C9F0DD7CBAD26311 FOREIGN KEY (tag_id) REFERENCES `wallabag_tag` (id);
ALTER TABLE `wallabag_config` ADD CONSTRAINT FK_87E64C53A76ED395 FOREIGN KEY (user_id) REFERENCES `wallabag_user` (id);
ALTER TABLE `wallabag_tagging_rule` ADD CONSTRAINT FK_2D9B3C5424DB0683 FOREIGN KEY (config_id) REFERENCES `wallabag_config` (id);
ALTER TABLE wallabag_oauth2_access_tokens ADD CONSTRAINT FK_368A420919EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id);
ALTER TABLE wallabag_oauth2_access_tokens ADD CONSTRAINT FK_368A4209A76ED395 FOREIGN KEY (user_id) REFERENCES `wallabag_user` (id);
ALTER TABLE wallabag_oauth2_refresh_tokens ADD CONSTRAINT FK_20C9FB2419EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id);
ALTER TABLE wallabag_oauth2_refresh_tokens ADD CONSTRAINT FK_20C9FB24A76ED395 FOREIGN KEY (user_id) REFERENCES `wallabag_user` (id);
ALTER TABLE wallabag_oauth2_auth_codes ADD CONSTRAINT FK_EE52E3FA19EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id);
ALTER TABLE wallabag_oauth2_auth_codes ADD CONSTRAINT FK_EE52E3FAA76ED395 FOREIGN KEY (user_id) REFERENCES `wallabag_user` (id);
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_A7AED006A76ED395 FOREIGN KEY (user_id) REFERENCES `wallabag_user` (id);
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_A7AED006BA364942 FOREIGN KEY (entry_id) REFERENCES `wallabag_entry` (id);

View File

@ -1,62 +0,0 @@
CREATE TABLE wallabag_craue_config_setting (name VARCHAR(255) NOT NULL, value VARCHAR(255) DEFAULT NULL, section VARCHAR(255) DEFAULT NULL, PRIMARY KEY(name));
CREATE UNIQUE INDEX UNIQ_5D9649505E237E06 ON wallabag_craue_config_setting (name);
CREATE TABLE "wallabag_entry" (id INT NOT NULL, user_id INT DEFAULT NULL, title TEXT DEFAULT NULL, url TEXT DEFAULT NULL, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content TEXT DEFAULT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, mimetype TEXT DEFAULT NULL, language TEXT DEFAULT NULL, reading_time INT DEFAULT NULL, domain_name TEXT DEFAULT NULL, preview_picture TEXT DEFAULT NULL, is_public BOOLEAN DEFAULT 'false', PRIMARY KEY(id));
CREATE INDEX IDX_F4D18282A76ED395 ON "wallabag_entry" (user_id);
CREATE TABLE wallabag_entry_tag (entry_id INT NOT NULL, tag_id INT NOT NULL, PRIMARY KEY(entry_id, tag_id));
CREATE INDEX IDX_C9F0DD7CBA364942 ON wallabag_entry_tag (entry_id);
CREATE INDEX IDX_C9F0DD7CBAD26311 ON wallabag_entry_tag (tag_id);
CREATE TABLE "wallabag_config" (id INT NOT NULL, user_id INT DEFAULT NULL, theme VARCHAR(255) NOT NULL, items_per_page INT NOT NULL, language VARCHAR(255) NOT NULL, rss_token VARCHAR(255) DEFAULT NULL, rss_limit INT DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, PRIMARY KEY(id));
CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON "wallabag_config" (user_id);
CREATE TABLE "wallabag_tagging_rule" (id INT NOT NULL, config_id INT DEFAULT NULL, rule VARCHAR(255) NOT NULL, tags TEXT NOT NULL, PRIMARY KEY(id));
CREATE INDEX IDX_2D9B3C5424DB0683 ON "wallabag_tagging_rule" (config_id);
COMMENT ON COLUMN "wallabag_tagging_rule".tags IS '(DC2Type:simple_array)';
CREATE TABLE "wallabag_tag" (id INT NOT NULL, label TEXT NOT NULL, slug VARCHAR(128) NOT NULL, PRIMARY KEY(id));
CREATE UNIQUE INDEX UNIQ_4CA58A8C989D9B62 ON "wallabag_tag" (slug);
CREATE TABLE wallabag_oauth2_clients (id INT NOT NULL, random_id VARCHAR(255) NOT NULL, redirect_uris TEXT NOT NULL, secret VARCHAR(255) NOT NULL, allowed_grant_types TEXT NOT NULL, PRIMARY KEY(id));
COMMENT ON COLUMN wallabag_oauth2_clients.redirect_uris IS '(DC2Type:array)';
COMMENT ON COLUMN wallabag_oauth2_clients.allowed_grant_types IS '(DC2Type:array)';
CREATE TABLE wallabag_oauth2_access_tokens (id INT NOT NULL, client_id INT NOT NULL, user_id INT DEFAULT NULL, token VARCHAR(255) NOT NULL, expires_at INT DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id));
CREATE UNIQUE INDEX UNIQ_368A42095F37A13B ON wallabag_oauth2_access_tokens (token);
CREATE INDEX IDX_368A420919EB6921 ON wallabag_oauth2_access_tokens (client_id);
CREATE INDEX IDX_368A4209A76ED395 ON wallabag_oauth2_access_tokens (user_id);
CREATE TABLE wallabag_oauth2_refresh_tokens (id INT NOT NULL, client_id INT NOT NULL, user_id INT DEFAULT NULL, token VARCHAR(255) NOT NULL, expires_at INT DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id));
CREATE UNIQUE INDEX UNIQ_20C9FB245F37A13B ON wallabag_oauth2_refresh_tokens (token);
CREATE INDEX IDX_20C9FB2419EB6921 ON wallabag_oauth2_refresh_tokens (client_id);
CREATE INDEX IDX_20C9FB24A76ED395 ON wallabag_oauth2_refresh_tokens (user_id);
CREATE TABLE wallabag_oauth2_auth_codes (id INT NOT NULL, client_id INT NOT NULL, user_id INT DEFAULT NULL, token VARCHAR(255) NOT NULL, redirect_uri TEXT NOT NULL, expires_at INT DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id));
CREATE UNIQUE INDEX UNIQ_EE52E3FA5F37A13B ON wallabag_oauth2_auth_codes (token);
CREATE INDEX IDX_EE52E3FA19EB6921 ON wallabag_oauth2_auth_codes (client_id);
CREATE INDEX IDX_EE52E3FAA76ED395 ON wallabag_oauth2_auth_codes (user_id);
CREATE TABLE "wallabag_user" (id INT NOT NULL, username VARCHAR(180) NOT NULL, username_canonical VARCHAR(180) NOT NULL, email VARCHAR(180) NOT NULL, email_canonical VARCHAR(180) NOT NULL, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, last_login TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, locked BOOLEAN NOT NULL, expired BOOLEAN NOT NULL, expires_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, confirmation_token VARCHAR(255) DEFAULT NULL, password_requested_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, roles TEXT NOT NULL, credentials_expired BOOLEAN NOT NULL, credentials_expire_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, name TEXT DEFAULT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, authCode INT DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted TEXT DEFAULT NULL, PRIMARY KEY(id));
CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON "wallabag_user" (username_canonical);
CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON "wallabag_user" (email_canonical);
CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON "wallabag_user" (confirmation_token);
COMMENT ON COLUMN "wallabag_user".roles IS '(DC2Type:array)';
COMMENT ON COLUMN "wallabag_user".trusted IS '(DC2Type:json_array)';
CREATE TABLE wallabag_annotation (id INT NOT NULL, user_id INT DEFAULT NULL, entry_id INT DEFAULT NULL, text TEXT NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, updated_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, quote VARCHAR(255) NOT NULL, ranges TEXT NOT NULL, PRIMARY KEY(id));
CREATE INDEX IDX_A7AED006A76ED395 ON wallabag_annotation (user_id);
CREATE INDEX IDX_A7AED006BA364942 ON wallabag_annotation (entry_id);
COMMENT ON COLUMN wallabag_annotation.ranges IS '(DC2Type:array)';
CREATE SEQUENCE "entry_id_seq" INCREMENT BY 1 MINVALUE 1 START 1;
CREATE SEQUENCE "config_id_seq" INCREMENT BY 1 MINVALUE 1 START 1;
CREATE SEQUENCE "tagging_rule_id_seq" INCREMENT BY 1 MINVALUE 1 START 1;
CREATE SEQUENCE "tag_id_seq" INCREMENT BY 1 MINVALUE 1 START 1;
CREATE SEQUENCE oauth2_clients_id_seq INCREMENT BY 1 MINVALUE 1 START 1;
CREATE SEQUENCE oauth2_access_tokens_id_seq INCREMENT BY 1 MINVALUE 1 START 1;
CREATE SEQUENCE oauth2_refresh_tokens_id_seq INCREMENT BY 1 MINVALUE 1 START 1;
CREATE SEQUENCE oauth2_auth_codes_id_seq INCREMENT BY 1 MINVALUE 1 START 1;
CREATE SEQUENCE "user_id_seq" INCREMENT BY 1 MINVALUE 1 START 1;
CREATE SEQUENCE annotation_id_seq INCREMENT BY 1 MINVALUE 1 START 1;
ALTER TABLE "wallabag_entry" ADD CONSTRAINT FK_F4D18282A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_C9F0DD7CBA364942 FOREIGN KEY (entry_id) REFERENCES "wallabag_entry" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_C9F0DD7CBAD26311 FOREIGN KEY (tag_id) REFERENCES "wallabag_tag" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE "wallabag_config" ADD CONSTRAINT FK_87E64C53A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE "wallabag_tagging_rule" ADD CONSTRAINT FK_2D9B3C5424DB0683 FOREIGN KEY (config_id) REFERENCES "wallabag_config" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE wallabag_oauth2_access_tokens ADD CONSTRAINT FK_368A420919EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE wallabag_oauth2_access_tokens ADD CONSTRAINT FK_368A4209A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE wallabag_oauth2_refresh_tokens ADD CONSTRAINT FK_20C9FB2419EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE wallabag_oauth2_refresh_tokens ADD CONSTRAINT FK_20C9FB24A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE wallabag_oauth2_auth_codes ADD CONSTRAINT FK_EE52E3FA19EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE wallabag_oauth2_auth_codes ADD CONSTRAINT FK_EE52E3FAA76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_A7AED006A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_A7AED006BA364942 FOREIGN KEY (entry_id) REFERENCES "wallabag_entry" (id) NOT DEFERRABLE INITIALLY IMMEDIATE;

Some files were not shown because too many files have changed in this diff Show More