forked from wallabag/wallabag
Compare commits
439 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 90e74c6337 | |||
| 8c565e3b73 | |||
| 8ef1df8157 | |||
| 0fe64f1fdd | |||
| bae1f9dfba | |||
| 6c79aaf432 | |||
| 1d13376df6 | |||
| 71460a8ba5 | |||
| 3529ce35e4 | |||
| 29969f854c | |||
| 78bce602cb | |||
| 85b4b6e0cd | |||
| 5a73f94590 | |||
| 0a82d6e23c | |||
| a737f4b58e | |||
| 227a009da5 | |||
| ac47889928 | |||
| 6914fdd8d8 | |||
| b45b6b6707 | |||
| 48be826ea9 | |||
| b17cb92e9b | |||
| 38fe541997 | |||
| bba94d7458 | |||
| b678d0f55c | |||
| 2b8f274b8a | |||
| 5d858d21de | |||
| 628f9d31de | |||
| 9d8975f6b6 | |||
| 2edc539581 | |||
| 2ac8e2c5b5 | |||
| eac09b48b0 | |||
| 9dd68dae77 | |||
| aedd385e10 | |||
| 6c1c433903 | |||
| 8b42e75f68 | |||
| 82749439ac | |||
| a92718dba2 | |||
| 2414eb12c6 | |||
| f3c7e055f2 | |||
| e04d656f5a | |||
| d60c38edf9 | |||
| 7d1c19c021 | |||
| f17b89fadc | |||
| eef47c0ead | |||
| 5601b4536c | |||
| 6d1e97f564 | |||
| c772c473a1 | |||
| 0ae5297699 | |||
| 5e4b9b2321 | |||
| 947ccd075c | |||
| 4a953a250c | |||
| 7bf6b555f5 | |||
| 8148675cb7 | |||
| abba55cdd6 | |||
| 41ed68d5b0 | |||
| 99cc170b0e | |||
| 10caff9875 | |||
| 177c5510ff | |||
| 7d9a67de14 | |||
| 20da238413 | |||
| 664621955d | |||
| 15a4d52833 | |||
| 5397d820fe | |||
| 6837c3989a | |||
| 7db1bdf1e4 | |||
| 205c6f0c66 | |||
| 289ce94bd8 | |||
| 5b9cf67529 | |||
| 1bb7bdc8b3 | |||
| 8138fd390b | |||
| 3cc0cc0ae7 | |||
| 8a098044bf | |||
| 20fa5ca02a | |||
| c7d05059ca | |||
| d3ef28c092 | |||
| f217cf48d9 | |||
| ab5c68facc | |||
| 51ca217d2e | |||
| f41b085c76 | |||
| 74ba949d7e | |||
| 013f426d10 | |||
| d3a8322a64 | |||
| 1a6e0725d3 | |||
| 713f35bafd | |||
| 4021c928be | |||
| 38c73f9691 | |||
| a5cd696b22 | |||
| 7a340375c3 | |||
| ec67907420 | |||
| c833d576a9 | |||
| f0c5154d68 | |||
| 01e760691b | |||
| b564d350b0 | |||
| 6fb06904ec | |||
| 78295b99dd | |||
| 463cb376e3 | |||
| 012b2d453e | |||
| 363e2a9ce9 | |||
| 73eb2b4ed5 | |||
| 6dfd1a6c78 | |||
| 5d916d03af | |||
| b8805fad03 | |||
| 3b0380f049 | |||
| 605f82d9c4 | |||
| c8cd1660af | |||
| 4acbeb9371 | |||
| b87f171233 | |||
| 500ae20c94 | |||
| 80aee45fa8 | |||
| c8ef0583af | |||
| a607b7a9c0 | |||
| 8303b037fb | |||
| afaee1cc0a | |||
| 32755d5091 | |||
| 5ed503ab28 | |||
| b4d81c91de | |||
| 1ff2e71c1c | |||
| 72e634b06c | |||
| 3d71d40349 | |||
| e4ccd3effe | |||
| a4180d0b8e | |||
| cace43dd7b | |||
| 144f2039e4 | |||
| 4da856ef11 | |||
| 70d99765c7 | |||
| ccb9e79a35 | |||
| bb2934d476 | |||
| 8e2419a5cf | |||
| 339b1e689d | |||
| 0bacc9e175 | |||
| 510b02573f | |||
| db769f6061 | |||
| 5f4667e3e8 | |||
| af54b2c959 | |||
| 9ad7475c74 | |||
| 22d0c929e3 | |||
| 8527238846 | |||
| 7239082a5e | |||
| 90f6ee4dbe | |||
| d5d4708fe3 | |||
| 0a0aa70098 | |||
| 92ba3b5c0d | |||
| 6ed615ac74 | |||
| c8de7ab94c | |||
| 89cd670abf | |||
| 8137515171 | |||
| af131cb513 | |||
| 74b7c0985d | |||
| 7719346328 | |||
| a72f3dc308 | |||
| cd77a7e7ef | |||
| 78d6c3090a | |||
| 3ef75cc4e3 | |||
| 6514f0ed37 | |||
| d44016b072 | |||
| 3ad4061dba | |||
| d9efa42f66 | |||
| bd8db77f5f | |||
| 5354485885 | |||
| 81915ad8df | |||
| cafb105681 | |||
| a48b5d5a5a | |||
| 68cb89a516 | |||
| 77e342f75d | |||
| bea8d75417 | |||
| 57e629e154 | |||
| be8033bf12 | |||
| 31fec5f363 | |||
| 881b0578e7 | |||
| 99712e5d85 | |||
| 5a5da36955 | |||
| 9deac0c597 | |||
| 24becc9717 | |||
| 6ad8aabb83 | |||
| 21e7ccef3d | |||
| 202a66ce02 | |||
| 15cc183850 | |||
| 375c9e2d3e | |||
| 45c159b798 | |||
| 24879db1f7 | |||
| 2c1eed8051 | |||
| be2c55de4c | |||
| edb9feb472 | |||
| e044d27f82 | |||
| 75ae3c8d82 | |||
| bb98fede2b | |||
| 2d4b167038 | |||
| 558d5199b9 | |||
| 7dc48ef820 | |||
| 4a1f963531 | |||
| 106bdbcd0a | |||
| a2c1b94e82 | |||
| 5aa0294cca | |||
| cd82ace70a | |||
| dba1e0b188 | |||
| fc2b7bda53 | |||
| 3cd6da0b74 | |||
| e858018fdd | |||
| 36e6ef52a1 | |||
| 29dca43236 | |||
| 1093e979ff | |||
| 10d85dbae3 | |||
| 87958ce645 | |||
| 81c657fc5b | |||
| 8d064ba5a4 | |||
| 075e1d75e2 | |||
| 68da51d2a3 | |||
| 4bd42110c6 | |||
| b46e63fc0a | |||
| f3a1b896b3 | |||
| 6787afbe0d | |||
| 9abac9651f | |||
| 067ae472cc | |||
| 65a8c6e135 | |||
| d68e045d86 | |||
| ad51d77146 | |||
| 9aa991281d | |||
| d79b3adbed | |||
| 597755b8c7 | |||
| 84c6a48df4 | |||
| a4d55a9161 | |||
| 18d7bc3a35 | |||
| 986cb53645 | |||
| 73f7eabb6e | |||
| 56a7ce17f3 | |||
| 8f3ff39ca3 | |||
| 9f01d0fde0 | |||
| 34ea7be622 | |||
| 07326af5e2 | |||
| cda0662311 | |||
| 6bb0866cf5 | |||
| 5b6888b13f | |||
| 5b644798a0 | |||
| 00fc2b44f4 | |||
| ebe50a85fb | |||
| 60abe8c274 | |||
| 56026217c5 | |||
| 819c8f5bd4 | |||
| fdaa044314 | |||
| 59cfd63c23 | |||
| 858430c0d0 | |||
| 5ea90fa8b9 | |||
| 7470a2f36a | |||
| 5b69e03eb4 | |||
| b5e0bbeb85 | |||
| 66e9dde0dc | |||
| f4a9833490 | |||
| fcbf253b6b | |||
| 75a4b3b23f | |||
| 0df2a4b021 | |||
| be2725db40 | |||
| ae741f998e | |||
| 5066c3e066 | |||
| 4da598c5df | |||
| d7acde5cc3 | |||
| 9624b3adfa | |||
| 7c6b7a40d1 | |||
| 24d4b243a7 | |||
| 176e0ea3ca | |||
| d51093a7d9 | |||
| d64bf7953b | |||
| 40f3ea57fb | |||
| 1d5dd2c241 | |||
| 7aab0ecf2f | |||
| 893ccad31f | |||
| c526f9e474 | |||
| bb28368f69 | |||
| 5cd0857e3c | |||
| 944b8d6175 | |||
| ba838dae5a | |||
| c72c6f43f2 | |||
| 4bf5172585 | |||
| 1f00547836 | |||
| 4f2755a61d | |||
| eb2d613c3e | |||
| a38d50e1e8 | |||
| 59c42a4aad | |||
| c1683778ab | |||
| 56da73969a | |||
| 70584b42aa | |||
| 7c05d59153 | |||
| 0a6f4568b5 | |||
| 5ae8788583 | |||
| 77e2898ad4 | |||
| 16eb124e4a | |||
| edd2472faa | |||
| 8670250a26 | |||
| 3c969d3990 | |||
| 6f85bed294 | |||
| 995c204428 | |||
| 32f455c131 | |||
| 49b042dfdf | |||
| 398de40517 | |||
| ee122a7528 | |||
| 27dce581ca | |||
| 68003139e1 | |||
| bbd4ae7b56 | |||
| 8add306204 | |||
| d215273c65 | |||
| e10e6ab34e | |||
| 10b3509757 | |||
| 74216c7c74 | |||
| b060fbdfe7 | |||
| c15d5a3af8 | |||
| 5cc367b83a | |||
| d8a35aba49 | |||
| 52e01d3483 | |||
| 66336f6571 | |||
| 9e2440fe15 | |||
| e6b133c60c | |||
| 00bf45b6f2 | |||
| 54fd55fda1 | |||
| 65cd8a4a9a | |||
| f052f1fd57 | |||
| 287204cda7 | |||
| f0ba37fbd5 | |||
| 5d52cc411b | |||
| a42f38d9fb | |||
| e042a5d78f | |||
| 94f2057ffe | |||
| 10a1ffae53 | |||
| c930992348 | |||
| 5637a26e9a | |||
| 16ef7607f4 | |||
| af61cb80eb | |||
| f9cded7dd2 | |||
| 49c5d0ad6e | |||
| 3cc78f0679 | |||
| 644b340178 | |||
| 8a9604aafe | |||
| 1e8c7fa5f9 | |||
| a9740448cf | |||
| 89e167a45a | |||
| df30af69d2 | |||
| 41c2178685 | |||
| 82f9a52078 | |||
| 94060509b8 | |||
| 2e4efb5965 | |||
| 56e6216485 | |||
| e8e72daaa6 | |||
| 01ad4d6a89 | |||
| 31151d70f2 | |||
| db3838545c | |||
| e92fbdc852 | |||
| 9ab024b4f5 | |||
| b5571b52cc | |||
| cbdbd9d683 | |||
| ff7f551f5a | |||
| eaa0bf00a6 | |||
| 4775fed6a7 | |||
| 7e9c1d65b1 | |||
| 1e7b04d4ea | |||
| 001cc7168a | |||
| 864c1dd23a | |||
| 5a619812ca | |||
| da41365579 | |||
| ca08d02f2f | |||
| 816c0940d1 | |||
| 32508ef07a | |||
| e46fdf3096 | |||
| 1f66d79e6b | |||
| 7816eb622d | |||
| e0597476d1 | |||
| 68e0efffb8 | |||
| 3b81212674 | |||
| e61ee56031 | |||
| aedd6ca0fd | |||
| d1495dd0a4 | |||
| 309e13c11b | |||
| 41ada277f0 | |||
| 48656e0eaa | |||
| 7f55941856 | |||
| 45fd7e09d7 | |||
| 535bfcbe80 | |||
| 156bf62758 | |||
| 94654765cc | |||
| 419214d722 | |||
| 4dface6670 | |||
| 5feef9f7a4 | |||
| f08ec5f88a | |||
| f24ea59ea4 | |||
| 23406ca3f1 | |||
| 8e58be9fb6 | |||
| cd99bfae68 | |||
| 64a8781e45 | |||
| 9313ea9d44 | |||
| f623516e10 | |||
| a1c1841828 | |||
| 5ce1528953 | |||
| 88d5d94dcb | |||
| 5751b41491 | |||
| fc79f1ffa8 | |||
| 1e7807e703 | |||
| b0de88f75d | |||
| 8c61fd12b1 | |||
| ca8b49f46e | |||
| f71e55ac88 | |||
| 2f82e7f8e1 | |||
| 191564b7f7 | |||
| 98efffc2a6 | |||
| 206bade58a | |||
| af2ff7c6da | |||
| aa4741091f | |||
| 3199ec4702 | |||
| d9b7768dca | |||
| e5edb6e127 | |||
| 0c271b9eb0 | |||
| b1e92f8c14 | |||
| 1eea248bb0 | |||
| c7935f32d2 | |||
| 351eb8d97e | |||
| e8331dd9e7 | |||
| 5960aa1ffc | |||
| f1c3f68e90 | |||
| 6147736868 | |||
| fa100dd1e0 | |||
| b1b561da51 | |||
| e4cf672ccf | |||
| e57df5611f | |||
| a9e4d6dad2 | |||
| c26d1285ba | |||
| 418626e836 | |||
| dd248e4561 | |||
| 9810f30821 | |||
| 7ac3e575f1 | |||
| a730cae384 | |||
| 3f60446756 | |||
| 876d77a67d | |||
| eed812afd0 | |||
| c3396c65ef | |||
| b840268711 | |||
| 71254701b7 | |||
| 821bb87685 | |||
| bb0c78f4a6 | |||
| abb5291cd5 | |||
| e4b46f77ef | |||
| 3f3a60879e | |||
| 24de866534 | |||
| 3d4b0b3064 |
@ -9,6 +9,6 @@ indent_size = 4
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.css]
|
||||
[*.{js,css}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
@ -2,7 +2,11 @@
|
||||
"extends": "airbnb-base",
|
||||
"parser": "babel-eslint",
|
||||
"env": {
|
||||
"browser": true
|
||||
"browser": true,
|
||||
"es6": true
|
||||
},
|
||||
"globals": {
|
||||
"Routing": true
|
||||
},
|
||||
"rules": {
|
||||
"import/no-extraneous-dependencies": ["error", {"devDependencies": true, "optionalDependencies": true, "peerDependencies": true}]
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@ -25,6 +25,8 @@ web/uploads/
|
||||
!web/bundles
|
||||
web/bundles/*
|
||||
!web/bundles/wallabagcore
|
||||
/web/assets/images/*
|
||||
!web/assets/images/.gitkeep
|
||||
|
||||
# Build
|
||||
/app/build
|
||||
@ -34,7 +36,6 @@ web/bundles/*
|
||||
/composer.phar
|
||||
|
||||
# Data for wallabag
|
||||
data/assets/*
|
||||
data/db/wallabag*.sqlite
|
||||
|
||||
# Docker container logs and data
|
||||
|
||||
@ -44,7 +44,6 @@ matrix:
|
||||
- php: 7.0
|
||||
env: CS_FIXER=run VALIDATE_TRANSLATION_FILE=run ASSETS=build DB=sqlite
|
||||
allow_failures:
|
||||
- php: 7.1
|
||||
- php: nightly
|
||||
|
||||
# exclude v1 branches
|
||||
@ -57,7 +56,6 @@ before_script:
|
||||
- if [[ ! $PHP = hhvm* ]]; then echo "memory_limit=-1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; fi;
|
||||
# xdebug isn't enable for PHP 7.1
|
||||
- if [[ ! $PHP = hhvm* ]]; then phpenv config-rm xdebug.ini || echo "xdebug not available"; fi
|
||||
- if [[ $PHP = 5.5 ]]; then composer require "phpunit/phpunit:4.*" --no-update; fi;
|
||||
- composer self-update --no-progress
|
||||
- if [[ $DB = pgsql ]]; then psql -c 'create database wallabag_test;' -U postgres; fi;
|
||||
|
||||
@ -72,9 +70,9 @@ before_install:
|
||||
script:
|
||||
- travis_wait composer update --no-interaction --no-progress
|
||||
- ant prepare-$DB
|
||||
- if [[ $VALIDATE_TRANSLATION_FILE = '' ]]; then phpunit -v ; fi;
|
||||
- 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 app/Resources/FOSUserBundle/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;
|
||||
|
||||
117
CHANGELOG.md
117
CHANGELOG.md
@ -1,6 +1,115 @@
|
||||
## Changelog
|
||||
|
||||
### 2.1.6 2017/01/17
|
||||
### 2.2.2 2017/03/02
|
||||
|
||||
- [#2950](https://github.com/wallabag/wallabag/pull/2950) Fixed symlinks issue during release creation (@nicosomb)
|
||||
- [#2832](https://github.com/wallabag/wallabag/pull/2832) Search by term: extend to entries url (@Kdecherf)
|
||||
- [#2830](https://github.com/wallabag/wallabag/pull/2830) Fixed rendering of entry title in Twig views (@Kdecherf)
|
||||
- [#2892](https://github.com/wallabag/wallabag/pull/2892) Updated spanish translation (@ngosang)
|
||||
- [#2915](https://github.com/wallabag/wallabag/pull/2915) Import: we now skip messages when user is null (@nicosomb)
|
||||
- [#2905](https://github.com/wallabag/wallabag/pull/2905) Alert that 2FA must be authorized in app/config/parameters.yml (@nicofrand)
|
||||
- [#2832](https://github.com/wallabag/wallabag/pull/2832) Search by term: extend to entries url (@Kdecherf)
|
||||
- [#2878](https://github.com/wallabag/wallabag/pull/2878) Added italian documentation (@matteocoder)
|
||||
- [#2860](https://github.com/wallabag/wallabag/pull/2860) Documentation: update java wrapper, add cmd tool to add article (@Strubbl)
|
||||
- [#2874](https://github.com/wallabag/wallabag/pull/2874) Added informations about Apache 2.4 (@kgaut)
|
||||
- [#2869](https://github.com/wallabag/wallabag/pull/2869) Added log for restricted access value (@j0k3r)
|
||||
- [#2846](https://github.com/wallabag/wallabag/pull/2846) Fixed misspells in polish translation (@mruminski)
|
||||
- [#2842](https://github.com/wallabag/wallabag/pull/2842) Update RulerZ (@K-Phoen)
|
||||
- [#2841](https://github.com/wallabag/wallabag/pull/2841) Show active list in the left menu during search (@Kdecherf)
|
||||
- [#2788](https://github.com/wallabag/wallabag/pull/2788) Documentation on how to configure mobile apps to work with wallabag (@Zettt)
|
||||
- [#2839](https://github.com/wallabag/wallabag/pull/2839) Fixed `composer.phar: not found` in update script (@foxmask)
|
||||
- [#2818](https://github.com/wallabag/wallabag/pull/2818) Fix nav-panel-search height (@Kdecherf)
|
||||
- [#2824](https://github.com/wallabag/wallabag/pull/2824) Renamed Developer section to API client management (@nicosomb)
|
||||
|
||||
### 2.2.1 2017/01/31
|
||||
|
||||
- [#2809](https://github.com/wallabag/wallabag/pull/2809) Fixed duplicate entry for share_public in craue_setting_table and added documentation about migration (@nicosomb)
|
||||
|
||||
### 2.2.0 2017/01/27
|
||||
- [#2789](https://github.com/wallabag/wallabag/pull/2789) Added indexes on is_archived and is_starred (@nicosomb)
|
||||
- [#2763](https://github.com/wallabag/wallabag/pull/2763) Sort list of available tags (@janLo)
|
||||
- [#2646](https://github.com/wallabag/wallabag/pull/2646) Added explanations about migrations (@nicosomb, @jlnostr)
|
||||
- [#2787](https://github.com/wallabag/wallabag/pull/2787) Lock kphoen/rulerz to avoid breaking changes (@j0k3r)
|
||||
- [#2750](https://github.com/wallabag/wallabag/pull/2750) Added migration to rename uuid to uid (@nicosomb)
|
||||
- [#2774](https://github.com/wallabag/wallabag/pull/2774) add cli export (@tcitworld)
|
||||
- [#2742](https://github.com/wallabag/wallabag/pull/2742) Avoid false preview image (@j0k3r)
|
||||
- [#2733](https://github.com/wallabag/wallabag/pull/2733) Fixed API error No matching accepted Response format could be determined (@nicosomb)
|
||||
- [#2735](https://github.com/wallabag/wallabag/pull/2735) Removed the small element on reading time (@nicosomb)
|
||||
- [#2729](https://github.com/wallabag/wallabag/pull/2729) Fix double overlay on expanded right sidenav (@Simounet)
|
||||
- [#2728](https://github.com/wallabag/wallabag/pull/2728) Fix right side-nav scrolling on low height window (@Simounet)
|
||||
- [#2725](https://github.com/wallabag/wallabag/pull/2725) Share to Shaarli - Include tags (@lapineige,)
|
||||
- [#2732](https://github.com/wallabag/wallabag/pull/2732) Firefox add-on URL updated (@Simounet)
|
||||
- [#2730](https://github.com/wallabag/wallabag/pull/2730) Access to search, filters, export on mobile (@Simounet)
|
||||
- [#2731](https://github.com/wallabag/wallabag/pull/2731) Minor typo fix (@llune)
|
||||
- [#2702](https://github.com/wallabag/wallabag/pull/2702) Added index on entry.uuid (@nicosomb)
|
||||
- [#2724](https://github.com/wallabag/wallabag/pull/2724) Fix entry reading time (@Simounet)
|
||||
- [#2723](https://github.com/wallabag/wallabag/pull/2723) Fixed export by tags with a tag which contains space (@nicosomb)
|
||||
- [#2696](https://github.com/wallabag/wallabag/pull/2696) Run migration on each test (@j0k3r)
|
||||
- [#2714](https://github.com/wallabag/wallabag/pull/2714) Fix the box shadow on the card entry (@Simounet)
|
||||
- [#2616](https://github.com/wallabag/wallabag/pull/2616) Change documentation links to HTTPS (@mathieui)
|
||||
- [#2682](https://github.com/wallabag/wallabag/pull/2682) Ensure craue_config_setting migration are ok (@nicosomb, @j0k3r)
|
||||
- [#2690](https://github.com/wallabag/wallabag/pull/2690) Added QoS for RabbitMQ (@nicosomb)
|
||||
- [#2701](https://github.com/wallabag/wallabag/pull/2701) Removed outputWalkers for pagination (@nicosomb)
|
||||
- [#2667](https://github.com/wallabag/wallabag/pull/2667) Upgrade to Symfony 3.2 (@nicosomb, @j0k3r)
|
||||
- [#2699](https://github.com/wallabag/wallabag/pull/2699) Removed user join in query builder (@nicosomb)
|
||||
- [#2697](https://github.com/wallabag/wallabag/pull/2697) Add default value for list_mode (@j0k3r)
|
||||
- [#2691](https://github.com/wallabag/wallabag/pull/2691) Moved total messages from import (@nicosomb)
|
||||
- [#2689](https://github.com/wallabag/wallabag/pull/2689) Replaced chmod for download pictures feature (@nicosomb)
|
||||
- [#2688](https://github.com/wallabag/wallabag/pull/2688) Fixed imports with is_starred and is_archived (@nicosomb)
|
||||
- [#2686](https://github.com/wallabag/wallabag/pull/2686) Casted maxIterations for Redis import (@nicosomb)
|
||||
- [#2680](https://github.com/wallabag/wallabag/pull/2680) Limit rule to 255 (@j0k3r)
|
||||
- [#2679](https://github.com/wallabag/wallabag/pull/2679) Fix content from imported entried being discarded when URL goes bad (@j0k3r, @jcharaoui)
|
||||
- [#2677](https://github.com/wallabag/wallabag/pull/2677) add translations/wallabag_user.de.yml (fixes #2673) (@Strubbl)
|
||||
- [#2676](https://github.com/wallabag/wallabag/pull/2676) Updated addons links (@nicosomb)
|
||||
- [#2674](https://github.com/wallabag/wallabag/pull/2674) Fixed 404 for wallabag logo in 2FA (@nicosomb)
|
||||
- [#2672](https://github.com/wallabag/wallabag/pull/2672) Fixed typo in asynchronous documentation (@nicosomb)
|
||||
- [#2670](https://github.com/wallabag/wallabag/pull/2670) Added floating button on entry view for mobile (@nicosomb)
|
||||
- [#2650](https://github.com/wallabag/wallabag/pull/2650) Added hasColumn() in migration to check column existence (@nicosomb)
|
||||
- [#2662](https://github.com/wallabag/wallabag/pull/2662) Add list view (@nicosomb)
|
||||
- [#2663](https://github.com/wallabag/wallabag/pull/2663) Removed FOSUser attributes removed in alpha4 (@nicosomb)
|
||||
- [#2659](https://github.com/wallabag/wallabag/pull/2659) Fix incorrect reading time calculation for entries in non-latin languages. (@akovalyov)
|
||||
- [#2654](https://github.com/wallabag/wallabag/pull/2654) Enforce lowercase on domain name filter (@Kdecherf)
|
||||
- [#2622](https://github.com/wallabag/wallabag/pull/2622) Material UI Changes (@nicosomb, @Kdecherf)
|
||||
- [#2642](https://github.com/wallabag/wallabag/pull/2642) Fixed logout shortcut (@nicosomb)
|
||||
- [#2620](https://github.com/wallabag/wallabag/pull/2620) Fix password layout (@j0k3r)
|
||||
- [#2640](https://github.com/wallabag/wallabag/pull/2640) Fixed entry shortcuts available in list view (@nicosomb)
|
||||
- [#2637](https://github.com/wallabag/wallabag/pull/2637) Update messages.pl.yml (@wallabag)
|
||||
- [#2317](https://github.com/wallabag/wallabag/pull/2317) Added authentication for restricted access articles (@nicosomb, @bdunogier)
|
||||
- [#2612](https://github.com/wallabag/wallabag/pull/2612) Added help about shortcuts (@nicosomb)
|
||||
- [#2635](https://github.com/wallabag/wallabag/pull/2635) Return 304 when content isn't reloaded using the API (@j0k3r)
|
||||
- [#2613](https://github.com/wallabag/wallabag/pull/2613) Fix card action overlap (@j0k3r)
|
||||
- [#2614](https://github.com/wallabag/wallabag/pull/2614) Add ability to reload entry from API (@j0k3r)
|
||||
- [#2632](https://github.com/wallabag/wallabag/pull/2632) Update messages.pl.yml (@wallabag)
|
||||
- [#2630](https://github.com/wallabag/wallabag/pull/2630) Add white-text class to card-title too (@ThibaudDauce)
|
||||
- [#2600](https://github.com/wallabag/wallabag/pull/2600) Install assets for shortcuts (@j0k3r)
|
||||
- [#2601](https://github.com/wallabag/wallabag/pull/2601) Added http_status in Entry entity (@nicosomb)
|
||||
- [#2593](https://github.com/wallabag/wallabag/pull/2593) Put log in the most common failure tests (@j0k3r)
|
||||
- [#2592](https://github.com/wallabag/wallabag/pull/2592) Update messages.pl.yml (@wallabag)
|
||||
- [#2547](https://github.com/wallabag/wallabag/pull/2547) Added a configuration to define the redirection after archiving an entry (@j0k3r, @nicosomb, @Strubbl)
|
||||
- [#2495](https://github.com/wallabag/wallabag/pull/2495) Added shortcuts (@nicosomb, @tcitworld)
|
||||
- [#2566](https://github.com/wallabag/wallabag/pull/2566) Added unmark.it sharing (@nicosomb)
|
||||
- [#2564](https://github.com/wallabag/wallabag/pull/2564) Update messages.pl.yml (@wallabag)
|
||||
- [#2553](https://github.com/wallabag/wallabag/pull/2553) Added new tag form in mobile view for Material theme (@nicosomb)
|
||||
- [#2548](https://github.com/wallabag/wallabag/pull/2548) Add Pinboard import (@Strubbl, @j0k3r)
|
||||
- [#2551](https://github.com/wallabag/wallabag/pull/2551) Removed Maintenance bundle (@nicosomb)
|
||||
- [#2541](https://github.com/wallabag/wallabag/pull/2541) Update messages.pl.yml (@wallabag)
|
||||
- [#2540](https://github.com/wallabag/wallabag/pull/2540) Update of the OC version (@Quent-in)
|
||||
- [#2535](https://github.com/wallabag/wallabag/pull/2535) Use created_at as default sort (@j0k3r)
|
||||
- [#2180](https://github.com/wallabag/wallabag/pull/2180) Download pictures (@j0k3r, @tcitworld)
|
||||
- [#2523](https://github.com/wallabag/wallabag/pull/2523) Added QRCode and link to configure android application (@tcitworld, @nicosomb)
|
||||
- [#2499](https://github.com/wallabag/wallabag/pull/2499) Added relation between API Client and User (@nicosomb)
|
||||
- [#2496](https://github.com/wallabag/wallabag/pull/2496) Update messages.pl.yml (@wallabag)
|
||||
- [#2401](https://github.com/wallabag/wallabag/pull/2401) Reset account (@j0k3r)
|
||||
- [#1890](https://github.com/wallabag/wallabag/pull/1890) bring annotations to API (@j0k3r, @nicosomb, @tcitworld)
|
||||
- [#2456](https://github.com/wallabag/wallabag/pull/2456) use new tcpdf library version (@tcitworld)
|
||||
- [#2453](https://github.com/wallabag/wallabag/pull/2453) Fix API export (@j0k3r)
|
||||
- [#2438](https://github.com/wallabag/wallabag/pull/2438) Update messages.pl.yml (@wallabag)
|
||||
- [#2372](https://github.com/wallabag/wallabag/pull/2372) API: ability to export entry in all available format (epub, pdf, etc...) (@j0k3r, @pmartin)
|
||||
- [#2409](https://github.com/wallabag/wallabag/pull/2409) Occitan version update (@Quent-in, @nicosomb)
|
||||
- [#2177](https://github.com/wallabag/wallabag/pull/2177) Delete user (@j0k3r, @nicosomb, @tcitworld)
|
||||
|
||||
### 2.1.6 2017/01/18
|
||||
- [#2759](https://github.com/wallabag/wallabag/pull/2759) Prepare wallabag 2.1.6 :rocket: (@nicosomb)
|
||||
- [#2758](https://github.com/wallabag/wallabag/pull/2758) Fixed possible JS injection via the title edition (@nicosomb)
|
||||
- [#2736](https://github.com/wallabag/wallabag/pull/2736) Update copyright year (@lex111)
|
||||
- [#2624](https://github.com/wallabag/wallabag/pull/2624) Fix #2056 update config.yml (@Rurik19)
|
||||
@ -456,8 +565,8 @@
|
||||
- [#1546](https://github.com/wallabag/wallabag/pull/1546) v2 – Ability to reload an entry (@j0k3r)
|
||||
- [#1547](https://github.com/wallabag/wallabag/pull/1547) v2 – Fix wrong if when deleting an entry (@j0k3r)
|
||||
- [#1544](https://github.com/wallabag/wallabag/pull/1544) v2 – Add custom email for 2FA (@j0k3r)
|
||||
- [#1540](https://github.com/wallabag/wallabag/pull/1540) v2 – Don't redirect to the content page after deletion (@j0k3r)
|
||||
- [#1542](https://github.com/wallabag/wallabag/pull/1542) v2 – Avoid multiple tag creation (@j0k3r)
|
||||
- [#1540](https://github.com/wallabag/wallabag/pull/1540) v2 – Don't redirect to the content page after deletion (@j0k3r)
|
||||
- [#1542](https://github.com/wallabag/wallabag/pull/1542) v2 – Avoid multiple tag creation (@j0k3r)
|
||||
- [#1488](https://github.com/wallabag/wallabag/pull/1488) Slug for tags (@wallabag)
|
||||
- [#1537](https://github.com/wallabag/wallabag/pull/1537) Updated composer.lock (@bdunogier)
|
||||
- [#1529](https://github.com/wallabag/wallabag/pull/1529) changed table name for tagging rule (@nicosomb)
|
||||
@ -488,4 +597,4 @@
|
||||
- [#1440](https://github.com/wallabag/wallabag/pull/1440) fix #1433: remove www. on entries view (@nicosomb)
|
||||
- [#1434](https://github.com/wallabag/wallabag/pull/1434) Add multiple database tests on Travis (@j0k3r)
|
||||
- [#1435](https://github.com/wallabag/wallabag/pull/1435) Enabled created user from Config (@j0k3r)
|
||||
- [#1429](https://github.com/wallabag/wallabag/pull/1429) V2 – Handle language in entry (@j0k3r)
|
||||
- [#1429](https://github.com/wallabag/wallabag/pull/1429) V2 – Handle language in entry (@j0k3r)
|
||||
|
||||
3
Makefile
3
Makefile
@ -27,8 +27,7 @@ build: ## Run grunt
|
||||
@grunt
|
||||
|
||||
test: ## Launch wallabag testsuite
|
||||
@if [ ! -d "vendor/phpunit" ]; then composer install; fi
|
||||
@ant prepare && vendor/phpunit/phpunit/phpunit -v
|
||||
@ant prepare && bin/simple-phpunit -v
|
||||
|
||||
release: ## Create a package. Need a VERSION parameter (eg: `make release VERSION=master`).
|
||||
ifndef VERSION
|
||||
|
||||
@ -8,6 +8,8 @@ Click, save and read it when you can. It extracts content so that you can read i
|
||||
|
||||
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).
|
||||
|
||||

|
||||
|
||||
# Install wallabag
|
||||
|
||||
@ -29,8 +29,9 @@ 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(),
|
||||
|
||||
@ -7,6 +7,9 @@ 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
|
||||
{
|
||||
/**
|
||||
@ -21,7 +24,7 @@ class Version20160410190541 extends AbstractMigration implements ContainerAwareI
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix') . $tableName;
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -29,13 +32,23 @@ class Version20160410190541 extends AbstractMigration implements ContainerAwareI
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
if ($this->connection->getDatabasePlatform()->getName() == 'postgresql') {
|
||||
$this->addSql('ALTER TABLE "'.$this->getTable('entry').'" ADD uuid UUID DEFAULT NULL');
|
||||
} else {
|
||||
$this->addSql('ALTER TABLE "'.$this->getTable('entry').'" ADD uuid LONGTEXT DEFAULT NULL');
|
||||
}
|
||||
$entryTable = $schema->getTable($this->getTable('entry'));
|
||||
|
||||
$this->addSql("INSERT INTO \"".$this->getTable('craue_config_setting')."\" (name, value, section) VALUES ('share_public', '1', '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')");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -43,9 +56,9 @@ class Version20160410190541 extends AbstractMigration implements ContainerAwareI
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() != 'sqlite', 'This down migration can\'t be executed on SQLite databases, because SQLite don\'t support DROP COLUMN.');
|
||||
$entryTable = $schema->getTable($this->getTable('entry'));
|
||||
$entryTable->dropColumn('uid');
|
||||
|
||||
$this->addSql('ALTER TABLE "'.$this->getTable('entry').'" DROP uuid');
|
||||
$this->addSql("DELETE FROM \"".$this->getTable('craue_config_setting')."\" WHERE name = 'share_public'");
|
||||
$this->addSql('DELETE FROM '.$this->getTable('craue_config_setting')." WHERE name = 'share_public'");
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,6 +7,9 @@ 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
|
||||
{
|
||||
/**
|
||||
@ -21,7 +24,7 @@ class Version20160812120952 extends AbstractMigration implements ContainerAwareI
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix') . $tableName;
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -29,16 +32,10 @@ class Version20160812120952 extends AbstractMigration implements ContainerAwareI
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
switch ($this->connection->getDatabasePlatform()->getName()) {
|
||||
case 'sqlite':
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name longtext DEFAULT NULL');
|
||||
break;
|
||||
case 'mysql':
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name longtext COLLATE \'utf8_unicode_ci\' DEFAULT NULL');
|
||||
break;
|
||||
case 'postgresql':
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name text DEFAULT NULL');
|
||||
}
|
||||
$clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
|
||||
$this->skipIf($clientsTable->hasColumn('name'), 'It seems that you already played this migration.');
|
||||
|
||||
$clientsTable->addColumn('name', 'blob');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -46,8 +43,7 @@ class Version20160812120952 extends AbstractMigration implements ContainerAwareI
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() == 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
|
||||
|
||||
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' DROP COLUMN name');
|
||||
$clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
|
||||
$clientsTable->dropColumn('name');
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,6 +7,9 @@ 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
|
||||
{
|
||||
/**
|
||||
@ -21,7 +24,7 @@ class Version20160911214952 extends AbstractMigration implements ContainerAwareI
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix') . $tableName;
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -29,8 +32,25 @@ class Version20160911214952 extends AbstractMigration implements ContainerAwareI
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$this->addSql('INSERT INTO "'.$this->getTable('craue_config_setting').'" (name, value, section) VALUES (\'import_with_redis\', \'0\', \'import\')');
|
||||
$this->addSql('INSERT INTO "'.$this->getTable('craue_config_setting').'" (name, value, section) VALUES (\'import_with_rabbitmq\', \'0\', \'import\')');
|
||||
$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.');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -38,5 +58,7 @@ class Version20160911214952 extends AbstractMigration implements ContainerAwareI
|
||||
*/
|
||||
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';");
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,6 +7,9 @@ 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
|
||||
{
|
||||
/**
|
||||
@ -21,7 +24,7 @@ class Version20160916201049 extends AbstractMigration implements ContainerAwareI
|
||||
|
||||
private function getTable($tableName)
|
||||
{
|
||||
return $this->container->getParameter('database_table_prefix') . $tableName;
|
||||
return $this->container->getParameter('database_table_prefix').$tableName;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -29,8 +32,12 @@ class Version20160916201049 extends AbstractMigration implements ContainerAwareI
|
||||
*/
|
||||
public function up(Schema $schema)
|
||||
{
|
||||
$this->addSql('ALTER TABLE "'.$this->getTable('config').'" ADD pocket_consumer_key VARCHAR(255) DEFAULT NULL');
|
||||
$this->addSql("DELETE FROM \"".$this->getTable('craue_config_setting')."\" WHERE name = 'pocket_consumer_key';");
|
||||
$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';");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -38,9 +45,8 @@ class Version20160916201049 extends AbstractMigration implements ContainerAwareI
|
||||
*/
|
||||
public function down(Schema $schema)
|
||||
{
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() == 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
|
||||
|
||||
$this->addSql('ALTER TABLE "'.$this->getTable('config').'" DROP pocket_consumer_key');
|
||||
$this->addSql("INSERT INTO \"".$this->getTable('craue_config_setting')."\" (name, value, section) VALUES ('pocket_consumer_key', NULL, 'import')");
|
||||
$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')");
|
||||
}
|
||||
}
|
||||
|
||||
127
app/DoctrineMigrations/Version20161001072726.php
Normal file
127
app/DoctrineMigrations/Version20161001072726.php
Normal file
@ -0,0 +1,127 @@
|
||||
<?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 ...');
|
||||
}
|
||||
}
|
||||
85
app/DoctrineMigrations/Version20161022134138.php
Normal file
85
app/DoctrineMigrations/Version20161022134138.php
Normal file
@ -0,0 +1,85 @@
|
||||
<?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;');
|
||||
}
|
||||
}
|
||||
67
app/DoctrineMigrations/Version20161024212538.php
Normal file
67
app/DoctrineMigrations/Version20161024212538.php
Normal file
@ -0,0 +1,67 @@
|
||||
<?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);
|
||||
}
|
||||
}
|
||||
}
|
||||
52
app/DoctrineMigrations/Version20161031132655.php
Normal file
52
app/DoctrineMigrations/Version20161031132655.php
Normal file
@ -0,0 +1,52 @@
|
||||
<?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';");
|
||||
}
|
||||
}
|
||||
53
app/DoctrineMigrations/Version20161104073720.php
Normal file
53
app/DoctrineMigrations/Version20161104073720.php
Normal file
@ -0,0 +1,53 @@
|
||||
<?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);
|
||||
}
|
||||
}
|
||||
56
app/DoctrineMigrations/Version20161106113822.php
Normal file
56
app/DoctrineMigrations/Version20161106113822.php
Normal file
@ -0,0 +1,56 @@
|
||||
<?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');
|
||||
}
|
||||
}
|
||||
64
app/DoctrineMigrations/Version20161117071626.php
Normal file
64
app/DoctrineMigrations/Version20161117071626.php
Normal file
@ -0,0 +1,64 @@
|
||||
<?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';");
|
||||
}
|
||||
}
|
||||
56
app/DoctrineMigrations/Version20161118134328.php
Normal file
56
app/DoctrineMigrations/Version20161118134328.php
Normal file
@ -0,0 +1,56 @@
|
||||
<?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');
|
||||
}
|
||||
}
|
||||
52
app/DoctrineMigrations/Version20161122144743.php
Normal file
52
app/DoctrineMigrations/Version20161122144743.php
Normal file
@ -0,0 +1,52 @@
|
||||
<?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';");
|
||||
}
|
||||
}
|
||||
63
app/DoctrineMigrations/Version20161122203647.php
Normal file
63
app/DoctrineMigrations/Version20161122203647.php
Normal file
@ -0,0 +1,63 @@
|
||||
<?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]);
|
||||
}
|
||||
}
|
||||
49
app/DoctrineMigrations/Version20161128084725.php
Normal file
49
app/DoctrineMigrations/Version20161128084725.php
Normal file
@ -0,0 +1,49 @@
|
||||
<?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');
|
||||
}
|
||||
}
|
||||
61
app/DoctrineMigrations/Version20161128131503.php
Normal file
61
app/DoctrineMigrations/Version20161128131503.php
Normal file
@ -0,0 +1,61 @@
|
||||
<?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]);
|
||||
}
|
||||
}
|
||||
}
|
||||
75
app/DoctrineMigrations/Version20161214094402.php
Normal file
75
app/DoctrineMigrations/Version20161214094402.php
Normal file
@ -0,0 +1,75 @@
|
||||
<?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');
|
||||
}
|
||||
}
|
||||
}
|
||||
53
app/DoctrineMigrations/Version20161214094403.php
Normal file
53
app/DoctrineMigrations/Version20161214094403.php
Normal file
@ -0,0 +1,53 @@
|
||||
<?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);
|
||||
}
|
||||
}
|
||||
56
app/DoctrineMigrations/Version20170127093841.php
Normal file
56
app/DoctrineMigrations/Version20170127093841.php
Normal file
@ -0,0 +1,56 @@
|
||||
<?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);
|
||||
}
|
||||
}
|
||||
@ -1,3 +1,4 @@
|
||||
# settings_changed: Configuration updated
|
||||
download_pictures: Download billeder på din server
|
||||
carrot: Aktiver deling til Carrot
|
||||
diaspora_url: Diaspora URL, hvis tjenesten er aktiv
|
||||
@ -15,6 +16,7 @@ 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
|
||||
@ -29,3 +31,5 @@ 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
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
# 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
|
||||
@ -15,6 +16,7 @@ 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
|
||||
@ -29,3 +31,5 @@ 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
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
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
|
||||
@ -15,6 +16,7 @@ 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
|
||||
@ -29,3 +31,5 @@ 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
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
download_pictures: Descargar imágenes
|
||||
settings_changed: Configuración actualizada
|
||||
download_pictures: Descargar imágenes en el servidor
|
||||
carrot: Activar compartir con Carrot
|
||||
diaspora_url: Diaspora URL, si el servicio está activado
|
||||
diaspora_url: URL de Diaspora, 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
|
||||
@ -8,13 +9,14 @@ 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: Enable RabbitMQ to import data asynchronously
|
||||
# import_with_redis: Enable Redis to import data asynchronously
|
||||
shaarli_url: Shaarli URL, si el servicio está activado
|
||||
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
|
||||
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
|
||||
@ -22,10 +24,12 @@ entry: "artículo"
|
||||
export: "exportar"
|
||||
import: "importar"
|
||||
misc: "misc"
|
||||
modify_settings: "modificar configuración"
|
||||
piwik_host: Host de tu website de Piwik (sin http:// o https://)
|
||||
piwik_site_id: ID de tu website de Piwik
|
||||
modify_settings: "guardar"
|
||||
piwik_host: Host de tu website en Piwik (sin http:// o https://)
|
||||
piwik_site_id: ID de tu website en Piwik
|
||||
piwik_enabled: Activar Piwik
|
||||
demo_mode_enabled: "Activar modo demo (sólo usado para la demo de wallabag)"
|
||||
demo_mode_enabled: "Activar modo demo (sólo usado en la demo pública de wallabag)"
|
||||
demo_mode_username: "Nombre de usuario demo"
|
||||
# share_public: Allow public url for entries
|
||||
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
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
# settings_changed: Configuration updated
|
||||
download_pictures: تصاویر را در کارگزار خودتان باربگیرید
|
||||
carrot: فعالسازی همرسانی به Carrot
|
||||
diaspora_url: نشانی Diaspora، اگر فعال بود
|
||||
@ -15,6 +16,7 @@ share_diaspora: فعالسازی همرسانی به Diaspora
|
||||
share_mail: فعالسازی همرسانی با ایمیل
|
||||
share_shaarli: فعالسازی همرسانی به Shaarli
|
||||
share_twitter: فعالسازی همرسانی به Twitter
|
||||
share_unmark: فعالسازی همرسانی به Unmark.it
|
||||
show_printlink: نمایش پیوندی برای چاپ مطلب
|
||||
wallabag_support_url: نشانی صفحهٔ پشتیبانی wallabag
|
||||
wallabag_url: نشانی صفحهٔ wallabag *شما*
|
||||
@ -29,3 +31,5 @@ modify_settings: "اعمال"
|
||||
# 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
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
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é
|
||||
@ -15,6 +16,7 @@ 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
|
||||
@ -29,3 +31,5 @@ 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
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
# 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
|
||||
@ -15,6 +16,7 @@ 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
|
||||
@ -29,3 +31,5 @@ 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
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
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
|
||||
@ -8,13 +9,14 @@ 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: Enable RabbitMQ to import data asynchronously
|
||||
# import_with_redis: Enable Redis to import data asynchronously
|
||||
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
|
||||
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
|
||||
@ -28,4 +30,6 @@ 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: Allow public url for entries
|
||||
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
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
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
|
||||
@ -15,6 +16,7 @@ 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
|
||||
@ -22,10 +24,12 @@ entry: "artykuł"
|
||||
export: "eksport"
|
||||
import: "import"
|
||||
misc: "różne"
|
||||
modify_settings: "zatwierdz"
|
||||
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
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
# 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
|
||||
@ -8,12 +9,14 @@ export_csv: Habilita exportação para CSV
|
||||
export_json: Habilita exportação para JSON
|
||||
export_txt: Habilita exportação para TXT
|
||||
export_xml: Habilita exportação para XML
|
||||
pocket_consumer_key: Chave de consumidor do Pocket para importar conteúdo (https://getpocket.com/developer/docs/authentication)
|
||||
# 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
|
||||
@ -27,3 +30,6 @@ 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
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
# settings_changed: Configuration updated
|
||||
download_pictures: Descarcă poze pe server
|
||||
carrot: Permite share către Carrot
|
||||
diaspora_url: Diaspora URL, dacă serviciul este permis
|
||||
@ -15,6 +16,7 @@ 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
|
||||
@ -29,3 +31,5 @@ modify_settings: "aplică"
|
||||
# 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
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
# 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
|
||||
@ -15,6 +16,7 @@
|
||||
# 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
|
||||
@ -29,3 +31,5 @@
|
||||
# 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
|
||||
|
||||
@ -1,2 +0,0 @@
|
||||
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."
|
||||
@ -1,2 +0,0 @@
|
||||
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."
|
||||
@ -1,2 +0,0 @@
|
||||
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."
|
||||
@ -1,2 +0,0 @@
|
||||
Login: "Se connecter"
|
||||
Enter your email address below and we'll send you password reset instructions.: "Renseignez votre adresse courriel, nous vous enverrons les instructions pour réinitialiser votre mot de passe."
|
||||
@ -1,2 +0,0 @@
|
||||
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."
|
||||
@ -1,2 +0,0 @@
|
||||
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."
|
||||
@ -1,2 +0,0 @@
|
||||
Login: "Login"
|
||||
Enter your email address below and we'll send you password reset instructions.: "Digite seu endereço de e-mail para enviarmos as instruções de recupeção de sua senha."
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 926 B |
BIN
app/Resources/static/themes/_global/img/list.png
Executable file
BIN
app/Resources/static/themes/_global/img/list.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 201 B |
BIN
app/Resources/static/themes/_global/img/table.png
Executable file
BIN
app/Resources/static/themes/_global/img/table.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 229 B |
@ -1,4 +1,3 @@
|
||||
|
||||
top['bookmarklet-url@wallabag.org'] =
|
||||
'<!DOCTYPE html><html><head><title>bag it!</title>' +
|
||||
'<link rel="icon" href="tpl/img/favicon.ico" />' +
|
||||
|
||||
15
app/Resources/static/themes/_global/js/shortcuts/main.js
Normal file
15
app/Resources/static/themes/_global/js/shortcuts/main.js
Normal file
@ -0,0 +1,15 @@
|
||||
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'); });
|
||||
@ -1,4 +1,9 @@
|
||||
const $ = require('jquery');
|
||||
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 {
|
||||
@ -30,7 +35,7 @@ function initFilters() {
|
||||
// no display if filters not available
|
||||
if ($('div').is('#filters')) {
|
||||
$('#button_filters').show();
|
||||
$('.button-collapse-right').sideNav({ edge: 'right' });
|
||||
$('.js-filters-action').sideNav({ edge: 'right' });
|
||||
$('#clear_form_filters').on('click', () => {
|
||||
$('#filters input').val('');
|
||||
$('#filters :checked').removeAttr('checked');
|
||||
@ -43,7 +48,7 @@ function initExport() {
|
||||
// no display if export not available
|
||||
if ($('div').is('#export')) {
|
||||
$('#button_export').show();
|
||||
$('.button-collapse-right').sideNav({ edge: 'right' });
|
||||
$('.js-export-action').sideNav({ edge: 'right' });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -297,18 +297,14 @@ h2::after {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#listmode a:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#listmode.tablemode {
|
||||
background-image: url("../img/baggy/table.png");
|
||||
background-image: url("../../_global/img/table.png");
|
||||
background-repeat: no-repeat;
|
||||
background-position: bottom;
|
||||
}
|
||||
|
||||
#listmode.listmode {
|
||||
background-image: url("../img/baggy/list.png");
|
||||
background-image: url("../../_global/img/list.png");
|
||||
background-repeat: no-repeat;
|
||||
background-position: bottom;
|
||||
}
|
||||
@ -352,9 +348,9 @@ footer a {
|
||||
letter-spacing: -5px;
|
||||
}
|
||||
|
||||
.listmode .entry {
|
||||
width: 100% !important;
|
||||
margin-left: 0 !important;
|
||||
.listmode.entry {
|
||||
width: 100%;
|
||||
height: inherit;
|
||||
}
|
||||
|
||||
.card-entry-labels {
|
||||
@ -588,6 +584,7 @@ div.pagination ul {
|
||||
text-align: left;
|
||||
font-style: italic;
|
||||
color: #999;
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
div.pagination ul > * {
|
||||
@ -620,6 +617,10 @@ div.pagination ul .current {
|
||||
background-color: #ccc;
|
||||
}
|
||||
|
||||
.hide {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
2.1 = "save a link" related styles
|
||||
========================================================================== */
|
||||
@ -936,6 +937,11 @@ a.add-to-wallabag-link-after::after {
|
||||
background-image: url("../../_global/img/icons/diaspora-icon--black.png");
|
||||
}
|
||||
|
||||
/* Unmark.it */
|
||||
.icon-image--unmark {
|
||||
background-image: url("../../_global/img/icons/unmark-icon--black.png");
|
||||
}
|
||||
|
||||
/* shaarli */
|
||||
.icon-image--shaarli {
|
||||
background-image: url("../../_global/img/icons/shaarli.png");
|
||||
|
||||
@ -5,4 +5,4 @@ function extractLast(term) {
|
||||
return split(term).pop();
|
||||
}
|
||||
|
||||
export { split, extractLast };
|
||||
export default { split, extractLast };
|
||||
|
||||
@ -1,11 +1,26 @@
|
||||
/* 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';
|
||||
|
||||
const $ = global.jquery = require('jquery');
|
||||
require('jquery.cookie');
|
||||
require('jquery-ui-browserify');
|
||||
const annotator = require('annotator');
|
||||
import toggleSaveLinkForm from './uiTools';
|
||||
|
||||
global.jquery = $;
|
||||
|
||||
$.fn.ready(() => {
|
||||
const $listmode = $('#listmode');
|
||||
|
||||
26
app/Resources/static/themes/baggy/js/shortcuts/entry.js
Normal file
26
app/Resources/static/themes/baggy/js/shortcuts/entry.js
Normal file
@ -0,0 +1,26 @@
|
||||
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();
|
||||
});
|
||||
}
|
||||
});
|
||||
7
app/Resources/static/themes/baggy/js/shortcuts/main.js
Normal file
7
app/Resources/static/themes/baggy/js/shortcuts/main.js
Normal file
@ -0,0 +1,7 @@
|
||||
$(document).ready(() => {
|
||||
Mousetrap.bind('s', () => {
|
||||
$('#search').trigger('click');
|
||||
$('#search_entry_term').focus();
|
||||
return false;
|
||||
});
|
||||
});
|
||||
@ -1,4 +1,4 @@
|
||||
const $ = require('jquery');
|
||||
import $ from 'jquery';
|
||||
|
||||
function toggleSaveLinkForm(url, event) {
|
||||
$('#add-link-result').empty();
|
||||
@ -32,4 +32,4 @@ function toggleSaveLinkForm(url, event) {
|
||||
plainUrl.focus();
|
||||
}
|
||||
|
||||
export { toggleSaveLinkForm };
|
||||
export default toggleSaveLinkForm;
|
||||
|
||||
@ -150,6 +150,11 @@
|
||||
background-image: url("../../_global/img/icons/diaspora-icon--black.png");
|
||||
}
|
||||
|
||||
/* Unmark.it */
|
||||
.icon-image--unmark {
|
||||
background-image: url("../../_global/img/icons/unmark-icon--black.png");
|
||||
}
|
||||
|
||||
/* Shaarli */
|
||||
.icon-image--shaarli {
|
||||
background-image: url("../../_global/img/icons/shaarli.png");
|
||||
@ -159,7 +164,7 @@ body {
|
||||
display: flex;
|
||||
min-height: 100vh;
|
||||
flex-direction: column;
|
||||
background: #f0f0f0;
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
body.login main {
|
||||
@ -189,7 +194,6 @@ main,
|
||||
|
||||
.results {
|
||||
height: 1em;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.results .nb-results,
|
||||
@ -198,6 +202,14 @@ main,
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.results .nb-results {
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.results a {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
float: right;
|
||||
}
|
||||
@ -271,6 +283,17 @@ nav input {
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
nav {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.nav-wrapper {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
min-height: 64px;
|
||||
}
|
||||
|
||||
.nav-wrapper .button-collapse {
|
||||
padding: 0 15px;
|
||||
}
|
||||
@ -279,8 +302,10 @@ nav input {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.nav-panels {
|
||||
overflow: hidden;
|
||||
.nav-panel-buttom {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.nav-panel-buttom li {
|
||||
@ -317,11 +342,13 @@ nav input {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.input-field.nav-panel-add label {
|
||||
.input-field.nav-panel-add label,
|
||||
.input-field.nav-panel-search label {
|
||||
left: 1rem;
|
||||
}
|
||||
|
||||
.input-field.nav-panel-add .close {
|
||||
.input-field.nav-panel-add .close,
|
||||
.input-field.nav-panel-search .close {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 1rem;
|
||||
@ -340,8 +367,11 @@ nav input {
|
||||
}
|
||||
|
||||
.input-field.nav-panel-add,
|
||||
.input-field.nav-panel-add form {
|
||||
height: 100%;
|
||||
.input-field.nav-panel-add form,
|
||||
.input-field.nav-panel-search,
|
||||
.input-field.nav-panel-search form {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
@ -411,7 +441,6 @@ nav ul a:hover {
|
||||
.side-nav.fixed.right-aligned {
|
||||
right: -250px;
|
||||
left: auto !important;
|
||||
overflow-y: visible;
|
||||
}
|
||||
|
||||
#filters div.with-checkbox {
|
||||
@ -535,6 +564,18 @@ a.original {
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
.card .card-action ul.tools li a.tool {
|
||||
margin-right: 5px !important;
|
||||
}
|
||||
|
||||
.card-stacked:hover ul.tools-list {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.card-stacked ul.tools-list {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.card .card-action a {
|
||||
color: #fff;
|
||||
margin: 0;
|
||||
@ -587,7 +628,55 @@ a.original {
|
||||
#article {
|
||||
font-size: 20px;
|
||||
margin: 0 auto;
|
||||
max-width: 40em;
|
||||
max-width: 45em;
|
||||
}
|
||||
|
||||
#article article {
|
||||
color: #424242;
|
||||
font-size: 18px;
|
||||
line-height: 1.7em;
|
||||
}
|
||||
|
||||
#article article h1,
|
||||
#article article h2,
|
||||
#article article h3,
|
||||
#article article h4,
|
||||
#article article h5,
|
||||
#article article h6 {
|
||||
color: #212121;
|
||||
}
|
||||
|
||||
#article article h1 strong,
|
||||
#article article h2 strong,
|
||||
#article article h3 strong,
|
||||
#article article h4 strong,
|
||||
#article article h5 strong,
|
||||
#article article h6 strong {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
#article article h6 {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
#article article h5 {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
#article article h4 {
|
||||
font-size: 1.9rem;
|
||||
}
|
||||
|
||||
#article article h3 {
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
#article article h2 {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
|
||||
#article article h1 {
|
||||
font-size: 2.7rem;
|
||||
}
|
||||
|
||||
#article img,
|
||||
@ -596,6 +685,46 @@ a.original {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
#article article a {
|
||||
border-bottom: 1px dotted #03a9f4;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#article article a:hover {
|
||||
border-bottom-style: solid;
|
||||
}
|
||||
|
||||
#article article ul {
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
||||
#article article ul,
|
||||
#article article ul li {
|
||||
list-style-type: disc;
|
||||
}
|
||||
|
||||
#article article blockquote {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#article article strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#article article pre {
|
||||
box-sizing: border-box;
|
||||
margin: 0 0 1.75em;
|
||||
border: #e3f2fd 1px solid;
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
font-family: monospace;
|
||||
font-size: 0.8em;
|
||||
white-space: pre;
|
||||
overflow: auto;
|
||||
background: #f5f5f5;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
#article > header > h1 {
|
||||
font-size: 2em;
|
||||
margin: 2.1rem 0 0.68rem;
|
||||
@ -691,6 +820,14 @@ article aside .tools li {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.nav-panels .action {
|
||||
padding-right: 0.75rem;
|
||||
}
|
||||
|
||||
.nav-panel-buttom {
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
#article {
|
||||
max-width: 35em;
|
||||
margin-left: auto;
|
||||
@ -727,11 +864,13 @@ article aside .tools li {
|
||||
.pagination li.next {
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 400px) {
|
||||
.nav-panel-buttom {
|
||||
float: right;
|
||||
.drag-target + .drag-target {
|
||||
height: 50%;
|
||||
}
|
||||
|
||||
.drag-target + .drag-target + .drag-target {
|
||||
top: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,10 +1,21 @@
|
||||
/* jQuery */
|
||||
import $ from 'jquery';
|
||||
|
||||
/* Annotations */
|
||||
import annotator from 'annotator';
|
||||
|
||||
/* Tools */
|
||||
import { savePercent, retrievePercent, initFilters, initExport } from '../../_global/js/tools';
|
||||
|
||||
const $ = require('jquery');
|
||||
/* 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 = $;
|
||||
require('materialize'); // eslint-disable-line
|
||||
const annotator = require('annotator');
|
||||
|
||||
$(document).ready(() => {
|
||||
// sideNav
|
||||
@ -44,7 +55,7 @@ $(document).ready(() => {
|
||||
$('.nav-panels .action').hide(100);
|
||||
$('.nav-panel-menu').addClass('hidden');
|
||||
$('.nav-panels').css('background', 'white');
|
||||
$('#searchfield').focus();
|
||||
$('#search_entry_term').focus();
|
||||
return false;
|
||||
});
|
||||
$('.close').on('click', () => {
|
||||
|
||||
26
app/Resources/static/themes/material/js/shortcuts/entry.js
Normal file
26
app/Resources/static/themes/material/js/shortcuts/entry.js
Normal file
@ -0,0 +1,26 @@
|
||||
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();
|
||||
});
|
||||
}
|
||||
});
|
||||
75
app/Resources/static/themes/material/js/shortcuts/main.js
Normal file
75
app/Resources/static/themes/material/js/shortcuts/main.js
Normal file
@ -0,0 +1,75 @@
|
||||
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');
|
||||
});
|
||||
});
|
||||
@ -30,7 +30,7 @@ framework:
|
||||
assets: ~
|
||||
|
||||
wallabag_core:
|
||||
version: 2.1.6
|
||||
version: 2.2.2
|
||||
paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
|
||||
languages:
|
||||
en: 'English'
|
||||
@ -51,6 +51,8 @@ wallabag_core:
|
||||
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>.
|
||||
|
||||
@ -78,7 +80,7 @@ doctrine:
|
||||
dbname: "%database_name%"
|
||||
user: "%database_user%"
|
||||
password: "%database_password%"
|
||||
charset: UTF8
|
||||
charset: "%database_charset%"
|
||||
path: "%database_path%"
|
||||
unix_socket: "%database_socket%"
|
||||
server_version: 5.6
|
||||
@ -115,12 +117,26 @@ 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
|
||||
json: true
|
||||
txt: true
|
||||
csv: true
|
||||
pdf: true
|
||||
epub: true
|
||||
mobi: true
|
||||
templating_formats:
|
||||
html: true
|
||||
force_redirects:
|
||||
@ -129,10 +145,21 @@ 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:
|
||||
@ -185,6 +212,7 @@ fos_user:
|
||||
from_email:
|
||||
address: "%from_email%"
|
||||
sender_name: wallabag
|
||||
|
||||
fos_oauth_server:
|
||||
db_driver: orm
|
||||
client_class: Wallabag\ApiBundle\Entity\Client
|
||||
@ -192,7 +220,7 @@ fos_oauth_server:
|
||||
refresh_token_class: Wallabag\ApiBundle\Entity\RefreshToken
|
||||
auth_code_class: Wallabag\ApiBundle\Entity\AuthCode
|
||||
service:
|
||||
user_provider: fos_user.user_manager
|
||||
user_provider: fos_user.user_provider.username_email
|
||||
options:
|
||||
refresh_token_lifetime: 1209600
|
||||
|
||||
@ -210,19 +238,9 @@ scheb_two_factor:
|
||||
mailer: wallabag_user.auth_code_mailer
|
||||
|
||||
kphoen_rulerz:
|
||||
executors:
|
||||
targets:
|
||||
doctrine: true
|
||||
|
||||
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"
|
||||
|
||||
old_sound_rabbit_mq:
|
||||
connections:
|
||||
default:
|
||||
@ -243,6 +261,11 @@ old_sound_rabbit_mq:
|
||||
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:
|
||||
@ -277,6 +300,7 @@ old_sound_rabbit_mq:
|
||||
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:
|
||||
@ -285,6 +309,7 @@ old_sound_rabbit_mq:
|
||||
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:
|
||||
@ -293,6 +318,16 @@ old_sound_rabbit_mq:
|
||||
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:
|
||||
@ -301,6 +336,7 @@ old_sound_rabbit_mq:
|
||||
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:
|
||||
@ -309,6 +345,7 @@ old_sound_rabbit_mq:
|
||||
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:
|
||||
@ -317,6 +354,7 @@ old_sound_rabbit_mq:
|
||||
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:
|
||||
@ -325,3 +363,18 @@ old_sound_rabbit_mq:
|
||||
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
|
||||
|
||||
@ -28,7 +28,7 @@ doctrine:
|
||||
dbname: "%test_database_name%"
|
||||
user: "%test_database_user%"
|
||||
password: "%test_database_password%"
|
||||
charset: UTF8
|
||||
charset: "%test_database_charset%"
|
||||
path: "%test_database_path%"
|
||||
orm:
|
||||
metadata_cache_driver:
|
||||
|
||||
@ -19,16 +19,18 @@ parameters:
|
||||
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
|
||||
@ -47,9 +49,14 @@ parameters:
|
||||
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: {}
|
||||
|
||||
@ -6,3 +6,4 @@ parameters:
|
||||
test_database_user: null
|
||||
test_database_password: null
|
||||
test_database_path: '%kernel.root_dir%/../data/db/wallabag_test.sqlite'
|
||||
test_database_charset: utf8
|
||||
|
||||
@ -17,10 +17,6 @@ wallabag_api:
|
||||
type: annotation
|
||||
prefix: /
|
||||
|
||||
wallabag_api:
|
||||
resource: "@WallabagApiBundle/Resources/config/routing.yml"
|
||||
prefix: /
|
||||
|
||||
app:
|
||||
resource: "@WallabagCoreBundle/Controller/"
|
||||
type: annotation
|
||||
@ -52,3 +48,6 @@ craue_config_settings_modify:
|
||||
path: /settings
|
||||
defaults:
|
||||
_controller: CraueConfigBundle:Settings:modify
|
||||
|
||||
fos_js_routing:
|
||||
resource: "@FOSJsRoutingBundle/Resources/config/routing/routing.xml"
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
Rest_Wallabag:
|
||||
type : rest
|
||||
resource: "@WallabagApiBundle/Resources/config/routing_rest.yml"
|
||||
|
||||
type : rest
|
||||
resource: "@WallabagApiBundle/Resources/config/routing_rest.yml"
|
||||
|
||||
@ -32,13 +32,13 @@ services:
|
||||
- { name: twig.extension }
|
||||
|
||||
wallabag.locale_listener:
|
||||
class: Wallabag\CoreBundle\EventListener\LocaleListener
|
||||
class: Wallabag\CoreBundle\Event\Listener\LocaleListener
|
||||
arguments: ["%kernel.default_locale%"]
|
||||
tags:
|
||||
- { name: kernel.event_subscriber }
|
||||
|
||||
wallabag.user_locale_listener:
|
||||
class: Wallabag\CoreBundle\EventListener\UserLocaleListener
|
||||
class: Wallabag\CoreBundle\Event\Listener\UserLocaleListener
|
||||
arguments: ["@session"]
|
||||
tags:
|
||||
- { name: kernel.event_listener, event: security.interactive_login, method: onInteractiveLogin }
|
||||
|
||||
@ -6,3 +6,4 @@ parameters:
|
||||
test_database_user: root
|
||||
test_database_password: ~
|
||||
test_database_path: ~
|
||||
test_database_charset: utf8mb4
|
||||
|
||||
@ -6,3 +6,4 @@ parameters:
|
||||
test_database_user: travis
|
||||
test_database_password: ~
|
||||
test_database_path: ~
|
||||
test_database_charset: utf8
|
||||
|
||||
@ -6,3 +6,4 @@ parameters:
|
||||
test_database_user: ~
|
||||
test_database_password: ~
|
||||
test_database_path: "%kernel.root_dir%/../data/db/wallabag_test.sqlite"
|
||||
test_database_charset: utf8
|
||||
|
||||
124
build.xml
124
build.xml
@ -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,db_mysql,prepare"/>
|
||||
<target name="prepare-sqlite" depends="clean,db_sqlite,prepare"/>
|
||||
<target name="prepare-pgsql" depends="clean,db_pgsql,prepare"/>
|
||||
<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="clean" description="Cleanup build artifacts">
|
||||
<delete dir="${basedir}/var/cache"/>
|
||||
@ -26,11 +26,48 @@
|
||||
<arg value="doctrine:schema:create"/>
|
||||
<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_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"/>
|
||||
@ -39,46 +76,91 @@
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<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>
|
||||
</target>
|
||||
|
||||
<target name="db_sqlite" description="Run test for SQLite">
|
||||
<target name="prepare_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="db_pgsql" description="Run test for PostgreSQL">
|
||||
<target name="prepare_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">
|
||||
|
||||
@ -43,13 +43,13 @@
|
||||
"ext-iconv": "*",
|
||||
"ext-tokenizer": "*",
|
||||
"ext-pdo": "*",
|
||||
"symfony/symfony": "3.1.*",
|
||||
"symfony/symfony": "3.2.*",
|
||||
"doctrine/orm": "^2.5",
|
||||
"doctrine/doctrine-bundle": "^1.6",
|
||||
"doctrine/doctrine-cache-bundle": "^1.2",
|
||||
"twig/extensions": "~1.0",
|
||||
"symfony/swiftmailer-bundle": "^2.3",
|
||||
"symfony/monolog-bundle": "^2.8",
|
||||
"symfony/monolog-bundle": "^3.0",
|
||||
"sensio/distribution-bundle": "^5.0",
|
||||
"sensio/framework-extra-bundle": "^3.0.2",
|
||||
"incenteev/composer-parameter-handler": "^2.0",
|
||||
@ -58,37 +58,38 @@
|
||||
"jms/serializer-bundle": "~1.1",
|
||||
"nelmio/api-doc-bundle": "~2.7",
|
||||
"mgargano/simplehtmldom": "~1.5",
|
||||
"tecnickcom/tcpdf": "~6.2",
|
||||
"wallabag/tcpdf": "^6.2",
|
||||
"simplepie/simplepie": "~1.3.1",
|
||||
"willdurand/hateoas-bundle": "~1.0",
|
||||
"htmlawed/htmlawed": "~1.1.19",
|
||||
"liip/theme-bundle": "~1.1",
|
||||
"lexik/form-filter-bundle": "~5.0",
|
||||
"j0k3r/graby": "~1.0",
|
||||
"friendsofsymfony/user-bundle": "dev-master#e168ed64629d034cb9cbbffb9d4350f62ef04fab as 2.0.x-dev",
|
||||
"friendsofsymfony/user-bundle": "2.0.x-dev",
|
||||
"friendsofsymfony/oauth-server-bundle": "^1.5",
|
||||
"stof/doctrine-extensions-bundle": "^1.2",
|
||||
"scheb/two-factor-bundle": "~2.0",
|
||||
"grandt/phpepub": "~4.0",
|
||||
"wallabag/php-mobi": "~1.0.0",
|
||||
"kphoen/rulerz-bundle": "~0.10",
|
||||
"kphoen/rulerz-bundle": "~0.13",
|
||||
"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"
|
||||
"javibravo/simpleue": "^1.0",
|
||||
"symfony/dom-crawler": "^3.1",
|
||||
"friendsofsymfony/jsrouting-bundle": "^1.6",
|
||||
"bdunogier/guzzle-site-authenticator": "dev-master"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/doctrine-fixtures-bundle": "~2.2",
|
||||
"doctrine/data-fixtures": "~1.1.1",
|
||||
"sensio/generator-bundle": "^3.0",
|
||||
"phpunit/phpunit": "~4.0",
|
||||
"symfony/phpunit-bridge": "^3.0",
|
||||
"friendsofphp/php-cs-fixer": "~1.9",
|
||||
"m6web/redis-mock": "^2.0"
|
||||
@ -98,6 +99,7 @@
|
||||
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
|
||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
|
||||
],
|
||||
"post-install-cmd": [
|
||||
@ -113,6 +115,7 @@
|
||||
"symfony-var-dir": "var",
|
||||
"symfony-web-dir": "web",
|
||||
"symfony-tests-dir": "tests",
|
||||
"symfony-assets-install": "symlink",
|
||||
"incenteev-parameters": {
|
||||
"file": "app/config/parameters.yml"
|
||||
}
|
||||
|
||||
1556
composer.lock
generated
1556
composer.lock
generated
File diff suppressed because it is too large
Load Diff
25
data/sql/mysql_base.sql
Normal file
25
data/sql/mysql_base.sql
Normal file
@ -0,0 +1,25 @@
|
||||
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);
|
||||
62
data/sql/pgsql_base.sql
Normal file
62
data/sql/pgsql_base.sql
Normal file
@ -0,0 +1,62 @@
|
||||
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;
|
||||
33
data/sql/sqlite_base.sql
Normal file
33
data/sql/sqlite_base.sql
Normal file
@ -0,0 +1,33 @@
|
||||
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_tagging_rule" (id INTEGER NOT NULL, config_id INTEGER DEFAULT NULL, rule VARCHAR(255) NOT NULL, tags CLOB NOT NULL, PRIMARY KEY(id), CONSTRAINT FK_2D9B3C5424DB0683 FOREIGN KEY (config_id) REFERENCES "wallabag_config" (id) NOT DEFERRABLE INITIALLY IMMEDIATE);
|
||||
CREATE INDEX IDX_2D9B3C5424DB0683 ON "wallabag_tagging_rule" (config_id);
|
||||
CREATE TABLE "wallabag_tag" (id INTEGER NOT NULL, label CLOB NOT NULL, slug VARCHAR(128) NOT NULL, PRIMARY KEY(id));
|
||||
CREATE UNIQUE INDEX UNIQ_4CA58A8C989D9B62 ON "wallabag_tag" (slug);
|
||||
CREATE TABLE "wallabag_entry" (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, title CLOB DEFAULT NULL, url CLOB DEFAULT NULL, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL, language CLOB DEFAULT NULL, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL, preview_picture CLOB DEFAULT NULL, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id), CONSTRAINT FK_F4D18282A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE);
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON "wallabag_entry" (user_id);
|
||||
CREATE TABLE wallabag_entry_tag (entry_id INTEGER NOT NULL, tag_id INTEGER NOT NULL, PRIMARY KEY(entry_id, tag_id), CONSTRAINT FK_C9F0DD7CBA364942 FOREIGN KEY (entry_id) REFERENCES "wallabag_entry" (id) NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_C9F0DD7CBAD26311 FOREIGN KEY (tag_id) REFERENCES "wallabag_tag" (id) NOT DEFERRABLE INITIALLY IMMEDIATE);
|
||||
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 INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL, rss_token VARCHAR(255) DEFAULT NULL, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, PRIMARY KEY(id), CONSTRAINT FK_87E64C53A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE);
|
||||
CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON "wallabag_config" (user_id);
|
||||
CREATE TABLE wallabag_oauth2_refresh_tokens (id INTEGER NOT NULL, client_id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, token VARCHAR(255) NOT NULL, expires_at INTEGER DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id), CONSTRAINT FK_20C9FB2419EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id) NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_20C9FB24A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE);
|
||||
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_access_tokens (id INTEGER NOT NULL, client_id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, token VARCHAR(255) NOT NULL, expires_at INTEGER DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id), CONSTRAINT FK_368A420919EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id) NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_368A4209A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE);
|
||||
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_auth_codes (id INTEGER NOT NULL, client_id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, token VARCHAR(255) NOT NULL, redirect_uri CLOB NOT NULL, expires_at INTEGER DEFAULT NULL, scope VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id), CONSTRAINT FK_EE52E3FA19EB6921 FOREIGN KEY (client_id) REFERENCES wallabag_oauth2_clients (id) NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_EE52E3FAA76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE);
|
||||
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_oauth2_clients (id INTEGER NOT NULL, random_id VARCHAR(255) NOT NULL, redirect_uris CLOB NOT NULL, secret VARCHAR(255) NOT NULL, allowed_grant_types CLOB NOT NULL, PRIMARY KEY(id));
|
||||
CREATE TABLE "wallabag_user" (id INTEGER 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 DATETIME DEFAULT NULL, locked BOOLEAN NOT NULL, expired BOOLEAN NOT NULL, expires_at DATETIME DEFAULT NULL, confirmation_token VARCHAR(255) DEFAULT NULL, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL, credentials_expired BOOLEAN NOT NULL, credentials_expire_at DATETIME DEFAULT NULL, name CLOB DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB 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);
|
||||
CREATE TABLE wallabag_annotation (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, entry_id INTEGER DEFAULT NULL, text CLOB NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, quote VARCHAR(255) NOT NULL, ranges CLOB NOT NULL, PRIMARY KEY(id), CONSTRAINT FK_A7AED006A76ED395 FOREIGN KEY (user_id) REFERENCES "wallabag_user" (id) NOT DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_A7AED006BA364942 FOREIGN KEY (entry_id) REFERENCES "wallabag_entry" (id) NOT DEFERRABLE INITIALLY IMMEDIATE);
|
||||
CREATE INDEX IDX_A7AED006A76ED395 ON wallabag_annotation (user_id);
|
||||
CREATE INDEX IDX_A7AED006BA364942 ON wallabag_annotation (entry_id);
|
||||
@ -254,7 +254,7 @@ cURL Beispiel:
|
||||
Andere Methoden
|
||||
---------------
|
||||
|
||||
Wir werden nicht für jede API Methode Beispiele schreiben.
|
||||
Wir werden nicht für jede API Methode Beispiele schreiben.
|
||||
|
||||
Wirf einen Blick in die Liste http://localhost:8000/api/doc, um alle Methode kennenzulernen.
|
||||
|
||||
@ -264,8 +264,9 @@ Drittanbieter Ressourcen
|
||||
|
||||
Einige Applikationen oder Bibliotheken nutzen unsere API. Hier ist eine nicht abschließende Aufzählung von ihnen:
|
||||
|
||||
- `Java wrapper for the wallabag API <https://github.com/Strubbl/jWallabag>`_ von Strubbl.
|
||||
- `Java wrapper for the wallabag API <https://github.com/di72nn/wallabag-api-wrapper>`_ von Dmitriy Bogdanov.
|
||||
- `.NET library for the wallabag v2 API <https://github.com/jlnostr/wallabag-api>`_ von Julian Oster.
|
||||
- `Python API for wallabag <https://github.com/foxmask/wallabag_api>`_ von FoxMaSk, für sein Projekt `Trigger Happy <https://blog.trigger-happy.eu/>`_.
|
||||
- `A plugin <https://github.com/joshp23/ttrss-to-wallabag-v2>`_ entworfen für `Tiny Tiny RSS <https://tt-rss.org/gitlab/fox/tt-rss/wikis/home>`_, das die wallabag v2 API nutzt. Von Josh Panter.
|
||||
- `Golang wrapper for the wallabag API <https://github.com/Strubbl/wallabago>`_ von Strubbl, für sein Projekt `wallabag-stats Graph <https://github.com/Strubbl/wallabag-stats>`_.
|
||||
- `Golang wrapper for the wallabag API <https://github.com/Strubbl/wallabago>`_ von Strubbl, für seine Projekte `wallabag-stats Graph <https://github.com/Strubbl/wallabag-stats>`_ und das Kommandozeilentool `wallabag-add-article <https://github.com/Strubbl/wallabag-add-article>`_.
|
||||
- Tool, um automatisiert wallabag Artikel auf den lokalen PC oder ebook reader zu laden `wallabako <https://gitlab.com/anarcat/wallabako>`_ von anarcat.
|
||||
|
||||
@ -47,6 +47,7 @@ Bearbeite deine ``app/config/parameters.yml``-Datei, um die RabbitMQ-Parameter z
|
||||
rabbitmq_port: 5672
|
||||
rabbitmq_user: guest
|
||||
rabbitmq_password: guest
|
||||
rabbitmq_prefetch_count: 10 # lesen http://www.rabbitmq.com/consumer-prefetch.html
|
||||
|
||||
RabbitMQ in wallabag aktivieren
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
@ -149,10 +150,10 @@ Abhängig davon, über welchen Service du importieren möchtest, musst du den en
|
||||
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
||||
|
||||
# für den Chrome-Import
|
||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||
bin/console wallabag:import:redis-worker -e=prod chrome -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||
|
||||
Wenn du den Import nur für einige Artikel nutzen willst, kannst du die Nummer festlegen (hier: 12) und der Consumer wird nach dem zwölften Artikel aufhören:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12
|
||||
bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12
|
||||
|
||||
@ -1,32 +0,0 @@
|
||||
Wartungsmodus
|
||||
=============
|
||||
|
||||
Wenn du längere Aufgaben auf deiner wallabag Instanz ausführen willst, kannst du den Wartungsmodus aktivieren.
|
||||
Keiner wird dann Zugang zu deiner Instanz haben.
|
||||
|
||||
Aktivieren des Wartungsmodus
|
||||
----------------------------
|
||||
|
||||
Um den Wartungsmodus zu aktivieren, führe folgendes Kommando aus:
|
||||
|
||||
::
|
||||
|
||||
bin/console lexik:maintenance:lock -e=prod --no-interaction
|
||||
|
||||
Du kannst deine IP Adresse in ``app/config/config.yml`` setzen, wenn du Zugriff zu wallabag haben willst, auch wenn der Wartungsmodus aktiv ist. Zum Beispiel:
|
||||
|
||||
::
|
||||
|
||||
lexik_maintenance:
|
||||
authorized:
|
||||
ips: ['127.0.0.1']
|
||||
|
||||
|
||||
Deaktivieren des Wartungsmodus
|
||||
------------------------
|
||||
|
||||
Um den Wartungsmodus zu deaktivieren, führe dieses Kommando aus:
|
||||
|
||||
::
|
||||
|
||||
bin/console lexik:maintenance:unlock -e=prod
|
||||
56
docs/de/developer/paywall.rst
Normal file
56
docs/de/developer/paywall.rst
Normal file
@ -0,0 +1,56 @@
|
||||
Articles behind a paywall
|
||||
=========================
|
||||
|
||||
wallabag can fetch articles from websites which use a paywall system.
|
||||
|
||||
Enable paywall authentication
|
||||
-----------------------------
|
||||
|
||||
In internal settings, in the **Article** section, enable authentication for websites with paywall (with the value 1).
|
||||
|
||||
Configure credentials in wallabag
|
||||
---------------------------------
|
||||
|
||||
Edit your ``app/config/parameters.yml`` file to edit credentials for each website with paywall. Here is an example for some french websites:
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
sites_credentials:
|
||||
mediapart.fr: {username: "myMediapartLogin", password: "mypassword"}
|
||||
arretsurimages.net: {username: "myASILogin", password: "mypassword"}
|
||||
|
||||
.. note::
|
||||
|
||||
These credentials will be shared between each user of your wallabag instance.
|
||||
|
||||
Parsing configuration files
|
||||
---------------------------
|
||||
|
||||
.. note::
|
||||
|
||||
Read `this part of the documentation <http://doc.wallabag.org/en/master/user/errors_during_fetching.html>`_ to understand the configuration files.
|
||||
|
||||
Each parsing configuration file needs to be improved by adding ``requires_login``, ``login_uri``,
|
||||
``login_username_field``, ``login_password_field`` and ``not_logged_in_xpath``.
|
||||
|
||||
Be careful, the login form must be in the page content when wallabag loads it. It's impossible for wallabag to be authenticated
|
||||
on a website where the login form is loaded after the page (by ajax for example).
|
||||
|
||||
``login_uri`` is the action URL of the form (``action`` attribute in the form).
|
||||
``login_username_field`` is the ``name`` attribute of the login field.
|
||||
``login_password_field`` is the ``name`` attribute of the password field.
|
||||
|
||||
For example:
|
||||
|
||||
.. code::
|
||||
|
||||
title://div[@id="titrage-contenu"]/h1[@class="title"]
|
||||
body: //div[@class="contenu-html"]/div[@class="page-pane"]
|
||||
|
||||
requires_login: yes
|
||||
|
||||
login_uri: http://www.arretsurimages.net/forum/login.php
|
||||
login_username_field: username
|
||||
login_password_field: password
|
||||
|
||||
not_logged_in_xpath: //body[@class="not-logged-in"]
|
||||
@ -20,7 +20,7 @@ der ISO 639-1 Code deiner Sprache ist (`siehe Wikipedia <https://en.wikipedia.or
|
||||
Andere Dateien zum Übersetzen:
|
||||
|
||||
- https://github.com/wallabag/wallabag/tree/master/app/Resources/CraueConfigBundle/translations.
|
||||
- https://github.com/wallabag/wallabag/tree/master/app/Resources/FOSUserBundle/translations.
|
||||
- https://github.com/wallabag/wallabag/tree/master/src/Wallabag/UserBundle/Resources/translations.
|
||||
|
||||
Du musst die ``THE_TRANSLATION_FILE.CODE.yml`` Dateien erstellen.
|
||||
|
||||
|
||||
@ -33,6 +33,7 @@ Die Dokumentation ist in anderen Sprachen verfügbar :
|
||||
user/errors_during_fetching
|
||||
user/filters
|
||||
user/tags
|
||||
user/configuring_mobile
|
||||
user/android
|
||||
user/parameters
|
||||
user/backup
|
||||
@ -46,7 +47,7 @@ Die Dokumentation ist in anderen Sprachen verfügbar :
|
||||
|
||||
developer/api
|
||||
developer/docker
|
||||
developer/paywall
|
||||
developer/documentation
|
||||
developer/translate
|
||||
developer/maintenance
|
||||
developer/asynchronous
|
||||
|
||||
@ -27,6 +27,14 @@ Lesegeschwindigkeit
|
||||
wallabag berechnet die Lesezeit für jeden Artikel. Du kannst hier definieren, dank dieser Liste, ob du
|
||||
ein schneller oder langsamer Leser bist. wallabag wird die Lesezeit für jeden Artikel neu berechnen.
|
||||
|
||||
Wohin möchtest du weitergeleitet werden, nach dem ein Artikel als gelesen markiert wurde?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Jedes Mal, wenn du eine Aktion ausführst (nach dem Markieren eines Artikels als gelesen oder Favorit, nach dem Löschen eines Artikels oder dem Entfernen eines Tag von einem Eintrag), kannst du weitergeleitet werden:
|
||||
|
||||
- zur Homepage
|
||||
- zur aktuellen Seite
|
||||
|
||||
Sprache
|
||||
~~~~~~~
|
||||
|
||||
@ -44,6 +52,9 @@ Jetzt hast du drei Links, einen für jeden Status: Füge sie in deinem liebsten
|
||||
|
||||
Du kannst auch definieren wie viele Artikel du in deinem RSS Feed (Standardwert: 50) haben willst.
|
||||
|
||||
There is also a pagination available for these feeds. You can add ``?page=2`` to jump to the second page.
|
||||
The pagination follow `the RFC <https://tools.ietf.org/html/rfc5005#page-4>`_ about that, which means you'll find the ``next``, ``previous`` & ``last`` page link inside the `<channel>` tag of each RSS feed.
|
||||
|
||||
Benutzer-Informationen
|
||||
----------------------
|
||||
|
||||
@ -55,7 +66,9 @@ Zwei-Faktor-Authentifizierung (2FA)
|
||||
Die Zwei-Faktor-Authentifizierung (2FA) dient dem Identitätsnachweis eines Nutzers mittels der
|
||||
Kombination zweier verschiedener und insbesondere unabhängiger Komponenten (Faktoren).
|
||||
|
||||
https://de.wikipedia.org/wiki/Zwei-Faktor-Authentifizierung
|
||||
https://de.wikipedia.org/wiki/Zwei-Faktor-Authentifizierung
|
||||
|
||||
**Warnung:** Das Aktivieren von 2FA über das Konfigurations-Interface ist nur möglich, wenn vorher in der `app/config/parameters.yml` die `twofactor_auth`-Eigenschaft auf `true` gesetzt wurde (nach der Konfiguration das Leeren des Cache mit `php bin/console cache:clear -e=prod` nicht vergessen).
|
||||
|
||||
Wenn du 2FA aktivierst, erhälst du jedes Mal, wenn du dich bei wallabag einloggen willst, einen Code per
|
||||
Mail. Du musst den Code in das folgende Formular eingeben.
|
||||
|
||||
12
docs/de/user/configuring_mobile.rst
Normal file
12
docs/de/user/configuring_mobile.rst
Normal file
@ -0,0 +1,12 @@
|
||||
Konfiguration mobiler Apps für wallabag
|
||||
=======================================
|
||||
|
||||
Schritte zum Konfigurieren der App
|
||||
----------------------------------
|
||||
|
||||
- Als Erstes erstellst du einen *neuen Client* in dem Abschnitt ``API Client Management``. Der Name deiner App ist dabei nicht so wichtig wie die ``Client-ID`` und das ``Client-Secret``. Schreib diese zwei Werte auf.
|
||||
- Wenn du eine mobile App herunterlädst, wird sie dich nach der Server-Adresse deiner wallabag-Instanz fragen. Zum Beispiel ist es ``https://app.wallabag.it`` bei wallabag.it.
|
||||
- Sie wird dich auch nach den zuvor genannten ``Client-ID`` und ``Client-Secret`` fragen. Bitte trage diese in die Textfelder ein, wenn du danach gefragt wirst.
|
||||
- Zuletzt musst du deinen ``Benutzernamen`` und ``Passwort`` bereitstellen. Diese Zugangsdaten sind die gleichen, die du zum Login bei wallabag nutzt.
|
||||
|
||||
Bitte schaue auch auf die `Android <android.html>`_ Seite und dort insbesondere den Abschnitt *Bekannte Limitierungen*.
|
||||
@ -30,6 +30,11 @@ Sprache
|
||||
wallabag (via graby) kann die Artikelsprache erkennen. Es ist einfach für dich, Artikel
|
||||
in einer bestimmten Sprache zu filtern.
|
||||
|
||||
HTTP status
|
||||
-----------
|
||||
|
||||
You can retrieve the articles by filtering by their HTTP status code: 200, 404, 500, etc.
|
||||
|
||||
Lesezeit
|
||||
--------
|
||||
|
||||
|
||||
@ -42,35 +42,50 @@ Du musst wallabag erlauben, mit deinem Pocketaccount zu interagieren.
|
||||
Deine Daten werden importiert. Datenimport kann ein sehr anspruchsvoller Prozess für deinen Server
|
||||
sein (wir müssen daran arbeiten, um diesen Import zu verbessern).
|
||||
|
||||
Readability
|
||||
-----------
|
||||
Von Readability
|
||||
----------------
|
||||
|
||||
Exportiere deine Readability-Daten
|
||||
Exportiere deine Readability Daten
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Auf der Seite Tools (`https://www.readability.com/tools/ <https://www.readability.com/tools/>`_), klicke auf "Exportiere deine Daten" in dem Abschnitt "Daten Export". Du wirst eine E-Mail empfangen, um eine JSON Datei herunterladen zu können (Datei endet aber nicht auf .json).
|
||||
|
||||
Importiere deine Daten in wallabag 2.x
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Auf der Tools-Seite (`https://www.readability.com/tools/ <https://www.readability.com/tools/>`_), klicke auf "Daten exportieren" im "Daten-Export"-Abschnitt. Du wirst eine E-Mail mit einem Downloadlink zu einer JSON-Datei erhalten, welche zugegebenermaßen nicht mit .json endet.
|
||||
Klicke auf den ``Importieren`` Link im Menü, auf ``Importiere Inhalte`` in dem Readability Abschnitt und wähle dann deine JSON Datei aus und lade sie hoch.
|
||||
|
||||
Deine Daten werden importiert. Der Datenimport can ein beanspruchender Prozess für deinen Server sein.
|
||||
|
||||
Von Pinboard
|
||||
-------------
|
||||
|
||||
Exportiere deine Pinboard Daten
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Auf der Seite Backup (`https://pinboard.in/settings/backup <https://pinboard.in/settings/backup>`_), klicke auf "JSON" in dem Abschnitt "Lesezeichen". Eine JSON Datei wird heruntergeladen (z.B. ``pinboard_export``).
|
||||
|
||||
Importiere deine Daten in wallabag 2.x
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Klicke auf den ``Importieren``-Link im Menü, auf ``Inhalte importieren`` im Readability-Abschnitt und wähle dann deine JSON-Datei aus und lade sie hoch.
|
||||
Klicke auf den ``Importieren`` Link im Menü, auf ``Importiere Inhalte`` in dem Pinboard Abschnitt und wähle dann deine JSON Datei aus und lade sie hoch.
|
||||
|
||||
Deine Daten werden dann importiert. Dies kann eine starke Belastung für den Server sein.
|
||||
Deine Daten werden importiert. Der Datenimport can ein beanspruchender Prozess für deinen Server sein.
|
||||
|
||||
Instapaper
|
||||
----------
|
||||
Von Instapaper
|
||||
---------------
|
||||
|
||||
Exportiere deine Instapaper-Daten
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Exportiere deine Instapaper Daten
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Klicke in den Einstellungen (`https://www.instapaper.com/user <https://www.instapaper.com/user>`_) auf "CSV-Datei herunterladen" im Export-Abschnitt. Eine CSV-Datei mit dem Namen ``instapaper-export.csv`` wird heruntergeladen.
|
||||
Auf der Seite Einstellungen (`https://www.instapaper.com/user <https://www.instapaper.com/user>`_), klicke auf "Download .CSV Datei" in dem Abschnitt "Export". Eine CSV Datei wird heruntergeladen (z.B. ``instapaper-export.csv``).
|
||||
|
||||
Importiere deine Daten in wallabag 2.x
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Klicke auf den ``Importieren``-Link im Menü, auf ``Inhalte importieren`` im Instapaper-Abschnitt und wähle dann deine CSV-Datei aus und lade sie hoch.
|
||||
Klicke auf den ``Importieren`` Link im Menü, auf ``Importiere Inhalte`` in dem Instapaper Abschnitt und wähle dann deine JSON Datei aus und lade sie hoch.
|
||||
|
||||
Deine Daten werden dann importiert. Dies kann eine starke Belastung für den Server sein.
|
||||
Deine Daten werden importiert. Der Datenimport can ein beanspruchender Prozess für deinen Server sein.
|
||||
|
||||
wallabag 1.x
|
||||
------------
|
||||
@ -134,4 +149,4 @@ Als Ergebnis wirst du so etwas erhalten:
|
||||
Start : 05-04-2016 11:36:07 ---
|
||||
403 imported
|
||||
0 already saved
|
||||
End : 05-04-2016 11:36:09 ---
|
||||
End : 05-04-2016 11:36:09 ---
|
||||
|
||||
@ -16,7 +16,7 @@ Composer installieren:
|
||||
|
||||
::
|
||||
|
||||
curl -s http://getcomposer.org/installer | php
|
||||
curl -s https://getcomposer.org/installer | php
|
||||
|
||||
Du kannst eine spezifische Anleitung `hier <https://getcomposer.org/doc/00-intro.md>`__ finden.
|
||||
|
||||
@ -86,7 +86,7 @@ Führe dieses Kommando aus, um das neueste Paket herunterzuladen und zu entpacke
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
Du findest die `md5 Hashsumme des neuesten Pakets auf unserer Website <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
||||
|
||||
@ -111,6 +111,12 @@ Virtualhosts
|
||||
Konfiguration von Apache
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Vergiss nicht, die *rewrite* mod von Apache zu aktivieren.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
a2enmod rewrite && systemctl reload apache2
|
||||
|
||||
Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installieren und du willst PHP als Apache Modul nutzen, dann ist hier ein vhost für wallabag:
|
||||
|
||||
::
|
||||
|
||||
@ -39,6 +39,7 @@ Wenn du nicht weißt, welchen Wert du setzen sollst, belasse es bei dem Standard
|
||||
redis_host: localhost
|
||||
redis_port: 6379
|
||||
redis_path: null
|
||||
redis_password: null
|
||||
|
||||
Bedeutung von jedem Parameter
|
||||
-----------------------------
|
||||
@ -91,3 +92,4 @@ Bedeutung von jedem Parameter
|
||||
"redis_host", "localhost", "IP oder Hostname des Zielservers (ignoriert bei Unix Schema)"
|
||||
"redis_port", "6379", "TCP/IP Port des Zielservers (ignoriert bei Unix Schema)"
|
||||
"redis_path", "null", "Pfad zur Unix Domain Socket Datei, wenn Redis Unix Domain Sockets nutzt"
|
||||
"redis_password", "null", "Kennwort, welches in der Redis-Server-Konfiguration definiert ist (Parameter `requirepass` in `redis.conf`)"
|
||||
|
||||
984
docs/de/user/query-upgrade-21-22.rst
Normal file
984
docs/de/user/query-upgrade-21-22.rst
Normal file
@ -0,0 +1,984 @@
|
||||
Migration 20161001072726
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBA364942
|
||||
ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBAD26311
|
||||
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
|
||||
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
|
||||
ALTER TABLE wallabag_annotation DROP FOREIGN KEY FK_A7AED006BA364942
|
||||
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
We didn't write down migration for ``20161001072726``.
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cba364942
|
||||
ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cbad26311
|
||||
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
|
||||
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
|
||||
ALTER TABLE wallabag_annotation DROP CONSTRAINT fk_a7aed006ba364942
|
||||
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
We didn't write down migration for ``20161001072726``.
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
This migration can only be executed safely on MySQL or PostgreSQL.
|
||||
|
||||
Migration 20161022134138
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER DATABASE wallabag CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_user CHANGE confirmation_token confirmation_token VARCHAR(180) DEFAULT NULL;
|
||||
ALTER TABLE wallabag_user CHANGE salt salt VARCHAR(180) NOT NULL;
|
||||
ALTER TABLE wallabag_user CHANGE password password VARCHAR(180) NOT NULL;
|
||||
ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER DATABASE wallabag CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
|
||||
PostgreSQL and SQLite
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
This migration only apply to MySQL.
|
||||
|
||||
Migration 20161024212538
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_oauth2_clients ADD user_id INT NOT NULL
|
||||
ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE
|
||||
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_oauth2_clients DROP FOREIGN KEY IDX_user_oauth_client
|
||||
ALTER TABLE wallabag_oauth2_clients DROP user_id
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_oauth2_clients ADD user_id INT DEFAULT NULL
|
||||
ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE
|
||||
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
|
||||
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_oauth2_clients DROP CONSTRAINT idx_user_oauth_client
|
||||
ALTER TABLE wallabag_oauth2_clients DROP user_id
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
|
||||
DROP TABLE wallabag_oauth2_clients
|
||||
CREATE TABLE wallabag_oauth2_clients (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, random_id VARCHAR(255) NOT NULL COLLATE BINARY, redirect_uris CLOB NOT NULL COLLATE BINARY, secret VARCHAR(255) NOT NULL COLLATE BINARY, allowed_grant_types CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id), CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE)
|
||||
INSERT INTO wallabag_oauth2_clients (id, random_id, redirect_uris, secret, allowed_grant_types, name) SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM __temp__wallabag_oauth2_clients
|
||||
DROP TABLE __temp__wallabag_oauth2_clients
|
||||
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_635D765EA76ED395
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
|
||||
DROP TABLE wallabag_oauth2_clients
|
||||
CREATE TABLE wallabag_oauth2_clients (id INTEGER NOT NULL, random_id VARCHAR(255) NOT NULL COLLATE BINARY, redirect_uris CLOB NOT NULL COLLATE BINARY, secret VARCHAR(255) NOT NULL COLLATE BINARY, allowed_grant_types CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_oauth2_clients (id, random_id, redirect_uris, secret, allowed_grant_types, name) SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM __temp__wallabag_oauth2_clients
|
||||
DROP TABLE __temp__wallabag_oauth2_clients
|
||||
|
||||
Migration 20161031132655
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
|
||||
|
||||
Migration 20161104073720
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_entry_created_at ON wallabag_entry
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX idx_entry_created_at
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX created_at_idx
|
||||
DROP INDEX IDX_F4D18282A76ED395
|
||||
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 wallabag_entry
|
||||
DROP TABLE wallabag_entry
|
||||
CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid 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))
|
||||
INSERT INTO wallabag_entry (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) 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
|
||||
DROP TABLE __temp__wallabag_entry
|
||||
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
||||
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_entry_created_at
|
||||
DROP INDEX IDX_F4D18282A76ED395
|
||||
DROP INDEX created_at_idx
|
||||
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 wallabag_entry
|
||||
DROP TABLE wallabag_entry
|
||||
CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid 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))
|
||||
INSERT INTO wallabag_entry (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) 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
|
||||
DROP TABLE __temp__wallabag_entry
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
||||
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
|
||||
|
||||
Migration 20161106113822
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config DROP action_mark_as_read
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config DROP action_mark_as_read
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD COLUMN action_mark_as_read INTEGER DEFAULT 0
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX UNIQ_87E64C53A76ED395
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_config AS SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM wallabag_config
|
||||
DROP TABLE wallabag_config
|
||||
CREATE TABLE wallabag_config (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL COLLATE BINARY, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL COLLATE BINARY, rss_token VARCHAR(255) DEFAULT NULL COLLATE BINARY, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, pocket_consumer_key VARCHAR(255) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_config (id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key) SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM __temp__wallabag_config
|
||||
DROP TABLE __temp__wallabag_config
|
||||
CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
|
||||
|
||||
Migration 20161117071626
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
|
||||
|
||||
Migration 20161118134328
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry DROP http_status
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry DROP http_status
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry ADD COLUMN http_status VARCHAR(3) DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX created_at_idx
|
||||
DROP INDEX IDX_F4D18282A76ED395
|
||||
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 wallabag_entry
|
||||
DROP TABLE wallabag_entry
|
||||
CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid 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))
|
||||
INSERT INTO wallabag_entry (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) 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
|
||||
DROP TABLE __temp__wallabag_entry
|
||||
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
||||
|
||||
Migration 20161122144743
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
|
||||
|
||||
Migration 20161122203647
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user DROP expired, DROP credentials_expired
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL, ADD credentials_expired SMALLINT DEFAULT NULL
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user DROP expired
|
||||
ALTER TABLE wallabag_user DROP credentials_expired
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD credentials_expired SMALLINT DEFAULT NULL
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX UNIQ_1D63E7E5C05FB297
|
||||
DROP INDEX UNIQ_1D63E7E5A0D96FBF
|
||||
DROP INDEX UNIQ_1D63E7E592FC23A8
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_user AS SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted FROM wallabag_user
|
||||
DROP TABLE wallabag_user
|
||||
CREATE TABLE wallabag_user (id INTEGER NOT NULL, username VARCHAR(180) NOT NULL COLLATE BINARY, username_canonical VARCHAR(180) NOT NULL COLLATE BINARY, email VARCHAR(180) NOT NULL COLLATE BINARY, email_canonical VARCHAR(180) NOT NULL COLLATE BINARY, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL COLLATE BINARY, password VARCHAR(255) NOT NULL COLLATE BINARY, last_login DATETIME DEFAULT NULL, locked BOOLEAN NOT NULL, expires_at DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL COLLATE BINARY, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL COLLATE BINARY, credentials_expire_at DATETIME DEFAULT NULL, name CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_user (id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted) SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted FROM __temp__wallabag_user
|
||||
DROP TABLE __temp__wallabag_user
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token)
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical)
|
||||
CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD COLUMN expired SMALLINT DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD COLUMN credentials_expired SMALLINT DEFAULT NULL
|
||||
|
||||
Migration 20161128084725
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config DROP list_mode
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config DROP list_mode
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_config ADD COLUMN list_mode INTEGER DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX UNIQ_87E64C53A76ED395
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_config AS SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM wallabag_config
|
||||
DROP TABLE wallabag_config
|
||||
CREATE TABLE wallabag_config (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL COLLATE BINARY, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL COLLATE BINARY, rss_token VARCHAR(255) DEFAULT NULL COLLATE BINARY, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, pocket_consumer_key VARCHAR(255) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_config (id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key) SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM __temp__wallabag_config
|
||||
DROP TABLE __temp__wallabag_config
|
||||
CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
|
||||
|
||||
Migration 20161128131503
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user DROP locked, DROP credentials_expire_at, DROP expires_at
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL, ADD credentials_expire_at DATETIME DEFAULT NULL, ADD expires_at DATETIME DEFAULT NULL
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user DROP locked
|
||||
ALTER TABLE wallabag_user DROP credentials_expire_at
|
||||
ALTER TABLE wallabag_user DROP expires_at
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD credentials_expire_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD expires_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_user ADD COLUMN locked SMALLINT DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD COLUMN credentials_expire_at DATETIME DEFAULT NULL
|
||||
ALTER TABLE wallabag_user ADD COLUMN expires_at DATETIME DEFAULT NULL
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX UNIQ_1D63E7E592FC23A8
|
||||
DROP INDEX UNIQ_1D63E7E5A0D96FBF
|
||||
DROP INDEX UNIQ_1D63E7E5C05FB297
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_user AS SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired FROM wallabag_user
|
||||
DROP TABLE wallabag_user
|
||||
CREATE TABLE wallabag_user (id INTEGER NOT NULL, username VARCHAR(180) NOT NULL COLLATE BINARY, username_canonical VARCHAR(180) NOT NULL COLLATE BINARY, email VARCHAR(180) NOT NULL COLLATE BINARY, email_canonical VARCHAR(180) NOT NULL COLLATE BINARY, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL COLLATE BINARY, password VARCHAR(255) NOT NULL COLLATE BINARY, last_login DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL COLLATE BINARY, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB DEFAULT NULL COLLATE BINARY, expired SMALLINT DEFAULT NULL, credentials_expired SMALLINT DEFAULT NULL, PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_user (id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired) SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired FROM __temp__wallabag_user
|
||||
DROP TABLE __temp__wallabag_user
|
||||
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)
|
||||
|
||||
Migration 20161214094402
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry CHANGE uuid uid VARCHAR(23)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry CHANGE uid uuid VARCHAR(23)
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry RENAME uuid TO uid
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
ALTER TABLE wallabag_entry RENAME uid TO uuid
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE TABLE __temp__wallabag_entry (
|
||||
id INTEGER NOT NULL,
|
||||
user_id INTEGER DEFAULT NULL,
|
||||
uid VARCHAR(23) DEFAULT NULL,
|
||||
title CLOB DEFAULT NULL,
|
||||
url CLOB DEFAULT NULL,
|
||||
is_archived BOOLEAN NOT NULL,
|
||||
is_starred BOOLEAN NOT NULL,
|
||||
content CLOB DEFAULT NULL,
|
||||
created_at DATETIME NOT NULL,
|
||||
updated_at DATETIME NOT NULL,
|
||||
mimetype CLOB DEFAULT NULL,
|
||||
language CLOB DEFAULT NULL,
|
||||
reading_time INTEGER DEFAULT NULL,
|
||||
domain_name CLOB DEFAULT NULL,
|
||||
preview_picture CLOB DEFAULT NULL,
|
||||
is_public BOOLEAN DEFAULT '0',
|
||||
http_status VARCHAR(3) DEFAULT NULL,
|
||||
PRIMARY KEY(id)
|
||||
);
|
||||
INSERT INTO __temp__wallabag_entry 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,http_status FROM wallabag_entry;
|
||||
DROP TABLE wallabag_entry;
|
||||
ALTER TABLE __temp__wallabag_entry RENAME TO wallabag_entry
|
||||
CREATE INDEX uid ON wallabag_entry (uid)
|
||||
CREATE INDEX created_at ON wallabag_entry (created_at)
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
||||
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE TABLE __temp__wallabag_entry (
|
||||
id INTEGER NOT NULL,
|
||||
user_id INTEGER DEFAULT NULL,
|
||||
uuid VARCHAR(23) DEFAULT NULL,
|
||||
title CLOB DEFAULT NULL,
|
||||
url CLOB DEFAULT NULL,
|
||||
is_archived BOOLEAN NOT NULL,
|
||||
is_starred BOOLEAN NOT NULL,
|
||||
content CLOB DEFAULT NULL,
|
||||
created_at DATETIME NOT NULL,
|
||||
updated_at DATETIME NOT NULL,
|
||||
mimetype CLOB DEFAULT NULL,
|
||||
language CLOB DEFAULT NULL,
|
||||
reading_time INTEGER DEFAULT NULL,
|
||||
domain_name CLOB DEFAULT NULL,
|
||||
preview_picture CLOB DEFAULT NULL,
|
||||
is_public BOOLEAN DEFAULT '0',
|
||||
http_status VARCHAR(3) DEFAULT NULL,
|
||||
PRIMARY KEY(id)
|
||||
);
|
||||
INSERT INTO __temp__wallabag_entry SELECT 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,http_status FROM wallabag_entry;
|
||||
DROP TABLE wallabag_entry;
|
||||
ALTER TABLE __temp__wallabag_entry RENAME TO wallabag_entry
|
||||
CREATE INDEX uid ON wallabag_entry (uid)
|
||||
CREATE INDEX created_at ON wallabag_entry (created_at)
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
||||
|
||||
Migration 20161214094403
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_entry_uid ON wallabag_entry
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX idx_entry_uid
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_F4D18282A76ED395
|
||||
DROP INDEX created_at_idx
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT 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 FROM wallabag_entry
|
||||
DROP TABLE wallabag_entry
|
||||
CREATE TABLE wallabag_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))
|
||||
INSERT INTO wallabag_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, uid, 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
|
||||
DROP TABLE __temp__wallabag_entry
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
||||
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
|
||||
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_entry_uid
|
||||
DROP INDEX created_at_idx
|
||||
DROP INDEX IDX_F4D18282A76ED395
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT 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 FROM wallabag_entry
|
||||
DROP TABLE wallabag_entry
|
||||
CREATE TABLE wallabag_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))
|
||||
INSERT INTO wallabag_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, uid, 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
|
||||
DROP TABLE __temp__wallabag_entry
|
||||
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
||||
|
||||
Migration 20170127093841
|
||||
------------------------
|
||||
|
||||
MySQL
|
||||
^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE INDEX IDX_entry_starred ON wallabag_entry (is_starred)
|
||||
CREATE INDEX IDX_entry_archived ON wallabag_entry (is_archived)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_entry_starred ON wallabag_entry
|
||||
DROP INDEX IDX_entry_archived ON wallabag_entry
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
CREATE INDEX IDX_entry_starred ON wallabag_entry (is_starred)
|
||||
CREATE INDEX IDX_entry_archived ON wallabag_entry (is_archived)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_entry_starred
|
||||
DROP INDEX IDX_entry_archived
|
||||
|
||||
SQLite
|
||||
^^^^^^
|
||||
|
||||
Migration up
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX uid
|
||||
DROP INDEX created_at
|
||||
DROP INDEX IDX_F4D18282A76ED395
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT 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, http_status FROM wallabag_entry
|
||||
DROP TABLE wallabag_entry
|
||||
CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid VARCHAR(23) 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', http_status VARCHAR(3) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_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, http_status) SELECT 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, http_status FROM __temp__wallabag_entry
|
||||
DROP TABLE __temp__wallabag_entry
|
||||
CREATE INDEX uid ON wallabag_entry (uid)
|
||||
CREATE INDEX created_at ON wallabag_entry (created_at)
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
||||
CREATE INDEX IDX_entry_starred ON wallabag_entry (is_starred)
|
||||
CREATE INDEX IDX_entry_archived ON wallabag_entry (is_archived)
|
||||
|
||||
Migration down
|
||||
""""""""""""""
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
DROP INDEX IDX_entry_archived
|
||||
DROP INDEX IDX_entry_starred
|
||||
DROP INDEX IDX_F4D18282A76ED395
|
||||
DROP INDEX created_at
|
||||
DROP INDEX uid
|
||||
CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT 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, http_status FROM wallabag_entry
|
||||
DROP TABLE wallabag_entry
|
||||
CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid VARCHAR(23) 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', http_status VARCHAR(3) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id))
|
||||
INSERT INTO wallabag_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, http_status) SELECT 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, http_status FROM __temp__wallabag_entry
|
||||
DROP TABLE __temp__wallabag_entry
|
||||
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
|
||||
CREATE INDEX created_at ON wallabag_entry (created_at)
|
||||
CREATE INDEX uid ON wallabag_entry (uid)
|
||||
@ -3,10 +3,80 @@ wallabag-Installation aktualisieren
|
||||
|
||||
Du wirst hier mehrere Wege finden, um deine wallabag zu aktualisieren:
|
||||
|
||||
- `von 2.1.x zu 2.2.x <#upgrade-von-2-1-x-zu-2-2-x>`_
|
||||
- `von 2.0.x zu 2.1.1 <#upgrade-von-2-0-x-zu-2-1-1>`_
|
||||
- `von 2.1.x zu 2.1.y <#upgrade-von-2-1-x-zu-2-1-y>`_
|
||||
- `von 1.x zu 2.x <#upgrade-von-1-x>`_
|
||||
|
||||
Upgrade von 2.1.x zu 2.2.x
|
||||
--------------------------
|
||||
|
||||
Upgrade auf einem dedizierten Webserver
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
**Von 2.1.x:**
|
||||
|
||||
::
|
||||
|
||||
make update
|
||||
php bin/console doctrine:migrations:migrate --no-interaction -e=prod
|
||||
|
||||
**Von 2.2.0:**
|
||||
|
||||
::
|
||||
|
||||
make update
|
||||
|
||||
Erklärungen über die Datenbankmigration
|
||||
"""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
Während des Updates migrieren wir die Datenbank.
|
||||
|
||||
Alle Datenbankmigrationen sind im Verzeichnis ``app/DoctrineMigrations`` gespeichert. Jede von ihnen kann einzeln ausgeführt werden:
|
||||
``bin/console doctrine:migrations:execute 20161001072726 --env=prod``.
|
||||
|
||||
Dies ist die Migrationsliste von 2.1.x auf 2.2.0:
|
||||
|
||||
* ``20161001072726``: Fremdschlüssel für das Zurücksetzen des Kontos hinzugefügt
|
||||
* ``20161022134138``: Datenbank zum ``utf8mb4``-Encoding ändern (nur für MySQL)
|
||||
* ``20161024212538``: ``user_id``-Spalte zu ``oauth2_clients`` hinzugefügt, um Benutzer davon abzuhalten, API-Clients anderer Nutzer zu löschen
|
||||
* ``20161031132655``: Interne Einstellung für das (de-)aktivieren vom Bilder-Download hinzugefügt
|
||||
* ``20161104073720``: ``created_at``-Index zur ``entry``-Tabelle hinzugefügt
|
||||
* ``20161106113822``: ``action_mark_as_read``-Feld zur ``config``-Tabelle hinzugefügt
|
||||
* ``20161117071626``: Interne Einstellung zum Teilen mit unmark.it hinzugefügt
|
||||
* ``20161118134328``: ``http_status``-Feld zur ``entry``-Tabelle hinzugefügt
|
||||
* ``20161122144743``: Interne Einstellung für das (de-)aktivieren zum Holen von Artikeln mit einer Paywall hinzugefügt
|
||||
* ``20161122203647``: ``expired``- und ``credentials_expired``-Feld aus der ``user``-Tabelle entfernt
|
||||
* ``20161128084725``: added ``list_mode`` field on ``config`` table
|
||||
* ``20161128131503``: dropped ``locked``, ``credentials_expire_at`` and ``expires_at`` fields on ``user`` table
|
||||
* ``20161214094402``: renamed ``uuid`` to ``uid`` on ``entry`` table
|
||||
* ``20161214094403``: added ``uid`` index on ``entry`` table
|
||||
* ``20170127093841``: added ``is_starred`` and ``is_archived`` indexes on ``entry`` table
|
||||
|
||||
Upgrade auf einem Shared Hosting
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Sichere deine ``app/config/parameters.yml``-Datei.
|
||||
|
||||
Lade das letzte Release von wallabag herunter:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
Du findest den `aktuellen MD5-Hash auf unserer Webseite <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
||||
|
||||
Extrahiere das Archiv in deinen wallabag-Ordner und ersetze die ``app/config/parameters.yml`` mit deiner.
|
||||
|
||||
Bitte überprüfe, dass deine ``app/config/parameters.yml`` alle notwendigen Parameter enthält. Eine Dokumentation darüber `findest du hier <http://doc.wallabag.org/de/master/user/parameters.html>`_.
|
||||
|
||||
Falls du SQLite nutzt, musst du außerdem deinen ``data/``-Ordner in die neue Installation kopieren.
|
||||
|
||||
Leere den ``var/cache``-Ordner.
|
||||
|
||||
Du musst einige SQL-Abfragen durchführen, um deine Datenbank zu aktualisieren. Wir gehen in diesem Fall davon aus, dass das Tabellenpräfix ``wallabag_`` ist.
|
||||
|
||||
`You can find all the queries here <http://doc.wallabag.org/en/master/user/query-upgrade-21-22.html>`_.
|
||||
|
||||
Upgrade von 2.0.x zu 2.1.1
|
||||
---------------------------
|
||||
|
||||
@ -60,39 +130,6 @@ Du musst einige SQL-Abfragen durchführen, um deine Datenbank zu aktualisieren.
|
||||
ALTER TABLE `wallabag_config` ADD `pocket_consumer_key` VARCHAR(255) DEFAULT NULL;
|
||||
DELETE FROM `wallabag_craue_config_setting` WHERE `name` = 'pocket_consumer_key';
|
||||
|
||||
Upgrade von 2.1.x zu 2.1.y
|
||||
-----------------------------
|
||||
|
||||
Upgrade auf einem dedizierten Webserver
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Um deine wallabag-Installation auf die letzte Version zu aktualisieren, führe den folgenden Befehl in deinem wallabag-Ordner aus:
|
||||
|
||||
::
|
||||
|
||||
make update
|
||||
|
||||
Upgrade auf einem Shared Hosting
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Sichere deine ``app/config/parameters.yml``-Datei.
|
||||
|
||||
Lade das letzte Release von wallabag herunter:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
|
||||
|
||||
Du findest den `aktuellen MD5-Hash auf unserer Webseite <https://www.wallabag.org/pages/download-wallabag.html>`_.
|
||||
|
||||
Extrahiere das Archiv in deinen wallabag-Ordner und ersetze die ``app/config/parameters.yml`` mit deiner.
|
||||
|
||||
Bitte überprüfe, dass deine ``app/config/parameters.yml`` alle notwendigen Parameter enthält. Eine Dokumentation darüber `findest du hier <http://doc.wallabag.org/de/master/user/parameters.html>`_.
|
||||
|
||||
Falls du SQLite nutzt, musst du außerdem deinen ``data/``-Ordner in die neue Installation kopieren.
|
||||
|
||||
Leere den ``var/cache``-Ordner.
|
||||
|
||||
Upgrade von 1.x
|
||||
---------------
|
||||
|
||||
@ -100,4 +137,4 @@ Es gibt kein automatisiertes Skript, um wallabag 1.x auf wallabag 2.x zu aktuali
|
||||
|
||||
- deine Daten exportieren
|
||||
- wallabag 2.x installieren (Dokumentation <http://doc.wallabag.org/en/master/user/installation.html>`_ )
|
||||
- die Daten in die neue Installation importieren (`Dokumentation <http://doc.wallabag.org/en/master/user/import.html>`_ )
|
||||
- die Daten in die neue Installation importieren (`Dokumentation <http://doc.wallabag.org/en/master/user/import.html>`_ )
|
||||
|
||||
@ -8,7 +8,7 @@ Requirements
|
||||
|
||||
* wallabag freshly (or not) installed on http://localhost:8000
|
||||
* ``httpie`` installed on your computer (`see project website <https://github.com/jkbrzt/httpie>`__). Note that you can also adapt the commands using curl or wget.
|
||||
* all the API methods are documented here http://localhost:8000/api/doc (on your instance) and `on our example instance <http://v2.wallabag.org/api/doc>`_
|
||||
* all the API methods are documented here http://localhost:8000/api/doc (on your instance) and `on our example instance <http://v2.wallabag.org/api/doc>`_
|
||||
|
||||
Creating a new API client
|
||||
-------------------------
|
||||
@ -263,8 +263,9 @@ Third party resources
|
||||
|
||||
Some applications or libraries use our API. Here is a non-exhaustive list of them:
|
||||
|
||||
- `Java wrapper for the wallabag API <https://github.com/Strubbl/jWallabag>`_ by Strubbl.
|
||||
- `Java wrapper for the wallabag API <https://github.com/di72nn/wallabag-api-wrapper>`_ by Dmitriy Bogdanov.
|
||||
- `.NET library for the wallabag v2 API <https://github.com/jlnostr/wallabag-api>`_ by Julian Oster.
|
||||
- `Python API for wallabag <https://github.com/foxmask/wallabag_api>`_ by FoxMaSk, for his project `Trigger Happy <https://blog.trigger-happy.eu/>`_.
|
||||
- `A plugin <https://github.com/joshp23/ttrss-to-wallabag-v2>`_ designed for `Tiny Tiny RSS <https://tt-rss.org/gitlab/fox/tt-rss/wikis/home>`_ that makes use of the wallabag v2 API. By Josh Panter.
|
||||
- `Golang wrapper for the wallabag API <https://github.com/Strubbl/wallabago>`_ by Strubbl, for his project `wallabag-stats graph <https://github.com/Strubbl/wallabag-stats>`_.
|
||||
- `Golang wrapper for the wallabag API <https://github.com/Strubbl/wallabago>`_ by Strubbl, for his projects `wallabag-stats graph <https://github.com/Strubbl/wallabag-stats>`_ and the command line tool `wallabag-add-article <https://github.com/Strubbl/wallabag-add-article>`_.
|
||||
- Tool to automatically download Wallabag articles into your local computer or Kobo ebook reader `wallabako <https://gitlab.com/anarcat/wallabako>`_ by anarcat.
|
||||
|
||||
@ -48,6 +48,7 @@ Edit your ``app/config/parameters.yml`` file to edit RabbitMQ configuration. The
|
||||
rabbitmq_port: 5672
|
||||
rabbitmq_user: guest
|
||||
rabbitmq_password: guest
|
||||
rabbitmq_prefetch_count: 10 # read http://www.rabbitmq.com/consumer-prefetch.html
|
||||
|
||||
Enable RabbitMQ in wallabag
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
@ -150,7 +151,7 @@ Depending on which service you want to import from you need to enable one (or ma
|
||||
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
|
||||
|
||||
# for Chrome import
|
||||
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||
bin/console wallabag:import:redis-worker -e=prod chrome -vv >> /path/to/wallabag/var/logs/redis-chrome.log
|
||||
|
||||
If you want to launch the import only for some messages and not all, you can specify this number (here 12) and the worker will stop right after the 12th message :
|
||||
|
||||
|
||||
@ -1,32 +0,0 @@
|
||||
Maintenance mode
|
||||
================
|
||||
|
||||
If you have some long tasks to do on your wallabag instance, you can enable a maintenance mode.
|
||||
Nobody will have access to your instance.
|
||||
|
||||
Enable maintenance mode
|
||||
-----------------------
|
||||
|
||||
To enable maintenance mode, execute this command:
|
||||
|
||||
::
|
||||
|
||||
bin/console lexik:maintenance:lock --no-interaction -e=prod
|
||||
|
||||
You can set your IP address in ``app/config/config.yml`` if you want to access to wallabag even if maintenance mode is enabled. For example:
|
||||
|
||||
::
|
||||
|
||||
lexik_maintenance:
|
||||
authorized:
|
||||
ips: ['127.0.0.1']
|
||||
|
||||
|
||||
Disable maintenance mode
|
||||
------------------------
|
||||
|
||||
To disable maintenance mode, execute this command:
|
||||
|
||||
::
|
||||
|
||||
bin/console lexik:maintenance:unlock -e=prod
|
||||
56
docs/en/developer/paywall.rst
Normal file
56
docs/en/developer/paywall.rst
Normal file
@ -0,0 +1,56 @@
|
||||
Articles behind a paywall
|
||||
=========================
|
||||
|
||||
wallabag can fetch articles from websites which use a paywall system.
|
||||
|
||||
Enable paywall authentication
|
||||
-----------------------------
|
||||
|
||||
In internal settings, in the **Article** section, enable authentication for websites with paywall (with the value 1).
|
||||
|
||||
Configure credentials in wallabag
|
||||
---------------------------------
|
||||
|
||||
Edit your ``app/config/parameters.yml`` file to edit credentials for each website with paywall. Here is an example for some french websites:
|
||||
|
||||
.. code:: yaml
|
||||
|
||||
sites_credentials:
|
||||
mediapart.fr: {username: "myMediapartLogin", password: "mypassword"}
|
||||
arretsurimages.net: {username: "myASILogin", password: "mypassword"}
|
||||
|
||||
.. note::
|
||||
|
||||
These credentials will be shared between each user of your wallabag instance.
|
||||
|
||||
Parsing configuration files
|
||||
---------------------------
|
||||
|
||||
.. note::
|
||||
|
||||
Read `this part of the documentation <http://doc.wallabag.org/en/master/user/errors_during_fetching.html>`_ to understand the configuration files.
|
||||
|
||||
Each parsing configuration file needs to be improved by adding ``requires_login``, ``login_uri``,
|
||||
``login_username_field``, ``login_password_field`` and ``not_logged_in_xpath``.
|
||||
|
||||
Be careful, the login form must be in the page content when wallabag loads it. It's impossible for wallabag to be authenticated
|
||||
on a website where the login form is loaded after the page (by ajax for example).
|
||||
|
||||
``login_uri`` is the action URL of the form (``action`` attribute in the form).
|
||||
``login_username_field`` is the ``name`` attribute of the login field.
|
||||
``login_password_field`` is the ``name`` attribute of the password field.
|
||||
|
||||
For example:
|
||||
|
||||
.. code::
|
||||
|
||||
title://div[@id="titrage-contenu"]/h1[@class="title"]
|
||||
body: //div[@class="contenu-html"]/div[@class="page-pane"]
|
||||
|
||||
requires_login: yes
|
||||
|
||||
login_uri: http://www.arretsurimages.net/forum/login.php
|
||||
login_username_field: username
|
||||
login_password_field: password
|
||||
|
||||
not_logged_in_xpath: //body[@class="not-logged-in"]
|
||||
@ -20,7 +20,7 @@ is the ISO 639-1 code of your language (`see wikipedia <https://en.wikipedia.org
|
||||
Other files to translate:
|
||||
|
||||
- https://github.com/wallabag/wallabag/tree/master/app/Resources/CraueConfigBundle/translations.
|
||||
- https://github.com/wallabag/wallabag/tree/master/app/Resources/FOSUserBundle/translations.
|
||||
- https://github.com/wallabag/wallabag/tree/master/src/Wallabag/UserBundle/Resources/translations.
|
||||
|
||||
You have to create ``THE_TRANSLATION_FILE.CODE.yml`` files.
|
||||
|
||||
|
||||
@ -33,6 +33,7 @@ The documentation is available in other languages:
|
||||
user/errors_during_fetching
|
||||
user/filters
|
||||
user/tags
|
||||
user/configuring_mobile
|
||||
user/android
|
||||
user/parameters
|
||||
user/backup
|
||||
@ -46,7 +47,7 @@ The documentation is available in other languages:
|
||||
|
||||
developer/api
|
||||
developer/docker
|
||||
developer/paywall
|
||||
developer/documentation
|
||||
developer/translate
|
||||
developer/maintenance
|
||||
developer/asynchronous
|
||||
|
||||
@ -26,6 +26,15 @@ Reading speed
|
||||
wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are
|
||||
a fast or a slow reader. wallabag will recalculate the reading time for each article.
|
||||
|
||||
Where do you want to be redirected after mark an article as read?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Each time you'll do some actions (after marking an article as read/favorite,
|
||||
after deleting an article, after removing a tag from an entry), you can be redirected:
|
||||
|
||||
- To the homepage
|
||||
- To the current page
|
||||
|
||||
Language
|
||||
~~~~~~~~
|
||||
|
||||
@ -43,18 +52,25 @@ Now you have three links, one for each status: add them into your favourite RSS
|
||||
|
||||
You can also define how many articles you want in each RSS feed (default value: 50).
|
||||
|
||||
There is also a pagination available for these feeds. You can add ``?page=2`` to jump to the second page.
|
||||
The pagination follow `the RFC <https://tools.ietf.org/html/rfc5005#page-4>`_ about that, which means you'll find the ``next``, ``previous`` & ``last`` page link inside the `<channel>` tag of each RSS feed.
|
||||
|
||||
User information
|
||||
----------------
|
||||
|
||||
You can change your name, your email address and enable ``Two factor authentication``.
|
||||
|
||||
If the wallabag instance has more than one enabled user, you can delete your account here. **Take care, we delete all your data**.
|
||||
|
||||
Two factor authentication (2FA)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Two-factor authentication (also known as 2FA) is a technology patented in 1984
|
||||
that provides identification of users by means of the combination of two different components.
|
||||
|
||||
https://en.wikipedia.org/wiki/Two-factor_authentication
|
||||
https://en.wikipedia.org/wiki/Two-factor_authentication
|
||||
|
||||
**Warning**: enabling 2FA from the configuration interface is only possible if it has been authorized before in `app/config/parameters.yml` by setting the *twofactor_auth* property to `true` (do not forget to run `php bin/console cache:clear -e=prod` after modification).
|
||||
|
||||
If you enable 2FA, each time you want to login to wallabag, you'll receive
|
||||
a code by email. You have to put this code on the following form.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user