Compare commits

...

642 Commits
2.1.2 ... 2.2.3

Author SHA1 Message Date
82307d88f2 Release wallabag 2.2.3 2017-05-17 17:53:42 +02:00
6830d92558 Merge pull request #3125 from wallabag/prepare-222
Prepare wallabag 2.2.3
2017-05-17 17:48:51 +02:00
c0e8e6037b Prepare wallabag 2.2.3 2017-05-17 17:21:14 +02:00
afc9875f28 Merge pull request #3117 from wallabag/fix-doc
Fixed documentation URL
2017-05-17 10:40:35 +02:00
6b94ee51b8 Fixed documentation URL 2017-05-17 09:03:04 +02:00
4e88a6a651 Merge pull request #3124 from wallabag/lock-guzzle-auth
Lock guzzle-site-authenticator to avoid errors
2017-05-17 09:02:22 +02:00
8581fcae90 Lock guzzle-site-authenticator to avoid error 2017-05-16 23:34:42 +02:00
092ed4a787 Merge pull request #3123 from X-dark/master
reorder contrib strings in about page
2017-05-16 14:50:25 +02:00
8544c7e4b6 reorder contrib strings in about page
this fixes #2891
2017-05-16 14:17:13 +02:00
91ba9a5975 Merge pull request #3095 from aaa2000/api-error-on-fail-fetch-content
Create a new entry via API even when its content can't be retrieved
2017-05-10 09:38:55 +02:00
a9357a8311 Remove the created entry to avoid side effects on other tests 2017-05-09 23:19:24 +02:00
a2ae05a61c Merge pull request #3076 from wallabag/hotfix/2979
Disable negative numbers in filters
2017-05-09 13:56:44 +02:00
1b1647175d Add some tests 2017-05-09 12:12:23 +02:00
c829b06ed8 Merge pull request #3097 from wallabag/update-license
Update graby* licenses
2017-05-09 09:47:20 +02:00
9d7d549712 Update graby* licenses 2017-05-09 09:22:50 +02:00
832fbd94c0 Merge pull request #3096 from aaa2000/fix-api-entries-pagination-with-perpage
Fix API pagination is broken if perPage is custom value
2017-05-09 09:12:15 +02:00
b60a666df2 Fix API pagination is broken if perPage is custom value
Fix #2720
2017-05-08 16:27:16 +02:00
08f29ae7b6 Create a new entry via API even when its content can't be retrieved
Fix #2988
2017-05-08 14:57:25 +02:00
f2beee5185 Merge pull request #3090 from aaa2000/translate-login-page-error
Translate error message in login page
2017-05-07 14:00:41 +02:00
f3c300e485 Translate error message in login page
Fix #2933
2017-05-06 22:21:04 +02:00
6603a9d649 Merge pull request #3082 from aaa2000/fix-form-errors-display
Fix display the form errors correctly
2017-05-05 07:01:28 +02:00
ab9eb5cdb7 Fix display the form errors correctly
Use `property_path` form option to map underscored form fields
to object properties

@see https://github.com/symfony/symfony/issues/9162#issuecomment-25431148

Fix #3067
2017-05-05 00:12:16 +02:00
1267905d28 Disable negative numbers in filters 2017-05-03 11:08:56 +02:00
a7c8f54570 Merge pull request #3072 from wallabag/hotfix/3061
Small typo in documentation fix #3061
2017-05-02 15:46:45 +02:00
0f26c285d4 Small typo in documentation fix #3061 2017-05-02 11:51:23 +02:00
9579003045 Merge pull request #3066 from wallabag/ignore-tests-exported-files
Ignore tests exported files
2017-04-29 22:51:32 +02:00
d49cdfe2ef Ignore tests exported files 2017-04-29 19:41:14 +02:00
8ee18fdabc Merge pull request #3064 from gileri/master
Correct create_application en string
2017-04-29 15:43:42 +02:00
ef88b37eb5 Correct create_application en string 2017-04-29 12:30:12 +02:00
138c352cd7 Merge pull request #3052 from shtrom/fix-relative-symlinks
Make symfony-assets-install use `relative` symlinks
2017-04-25 14:15:01 +02:00
f972af3f5b Make symfony-assets-install use relative symlinks
This facilitates packaging, when installing in a different work PREFIX
than the final install location.

Signed-off-by: Olivier Mehani <shtrom@ssji.net>
2017-04-22 21:45:30 +10:00
656395fde6 Merge pull request #3023 from mart-e/epub-notice-at-the-end
Add export notice at the end of the epub
2017-04-05 10:20:19 +02:00
1b70990b01 Add export notice at the end of the epub
The text "Produced by wallabag with PHPePub" is the first page of any epub.

On ebooks reader, it is common (e.g. kobo) to use the first page as the cover of
unread books, which makes it more difficult to differentiate the books.

Move the Notices chapter at the end of the book.
2017-04-05 09:24:48 +02:00
548e608870 Merge pull request #3017 from Kdecherf/local-image-alpha
Save alpha channel when downloading PNG images
2017-03-30 14:45:24 +02:00
7a3260ae9e Save alpha channel when downloading PNG images
Fixes #2805

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-03-29 21:58:29 +02:00
90f95027a8 Merge pull request #2985 from etiess/patch-2
Update paywall.rst (more details and clear cache)
2017-03-23 13:56:55 +01:00
7423ed4766 Merge pull request #2968 from chrido/master
remove language on html tag
2017-03-13 10:56:33 +01:00
3f5f303e7f Merge pull request #2971 from etiess/patch-3
Update paywall.rst (EN) with details + clear cache
2017-03-09 15:34:40 +01:00
cee28dc6d4 remove language on html-tag 2017-03-06 21:34:50 +01:00
8c565e3b73 Merge pull request #2954 from wallabag/update-version
Changed wallabag version
2017-03-02 14:43:04 +01:00
8ef1df8157 Changed wallabag version 2017-03-02 14:42:16 +01:00
0fe64f1fdd Merge pull request #2916 from wallabag/update-changelog
Updated CHANGELOG with latest changes
2017-03-02 14:40:22 +01:00
bae1f9dfba Updated CHANGELOG with latest changes 2017-03-02 14:22:17 +01:00
6c79aaf432 Merge pull request #2950 from wallabag/fix-symlinks
Fixed symlinks issue during release creation
2017-03-02 14:16:51 +01:00
1d13376df6 Fixed symlinks issue during release creation 2017-03-01 14:17:07 +01:00
71460a8ba5 Merge pull request #2926 from qtheuret/master
Add activation of 'rewrite' mod of Apache
2017-03-01 13:32:46 +01:00
3529ce35e4 Added german and italian translation 2017-02-28 21:10:24 +01:00
29969f854c Merge pull request #2932 from wallabag/mruminski-patch-1
Update Polish translation
2017-02-25 08:28:31 +01:00
78bce602cb Update Polish translation
add missing translation
2017-02-24 18:31:35 +01:00
85b4b6e0cd Merge pull request #2931 from wallabag/php-7.1
Use wallabag/tcpdf
2017-02-24 16:23:06 +01:00
5a73f94590 Use wallabag/tcpdf
It should restore the PHP 7.1 compatibility
2017-02-24 15:05:45 +01:00
0a82d6e23c Activate 'rewrite' mod of Apache 2017-02-23 16:10:14 +01:00
a737f4b58e Ajout du mod 'rewrite' de Apache 2017-02-23 16:09:06 +01:00
5301d664d9 Update paywall.rst (EN) with details + clear cache 2017-02-23 08:54:33 +01:00
e316d4bd34 Update paywall.rst (more details and clear cache) 2017-02-22 11:49:45 +01:00
227a009da5 Merge pull request #2917 from ngosang/feature/es_translation_2
Update Spanish translation
2017-02-20 13:55:24 +01:00
ac47889928 Update Spanish translation 2017-02-20 12:21:02 +01:00
6914fdd8d8 Merge pull request #2915 from wallabag/import-drop-msg-user-null
Import: we now skip messages when user is null
2017-02-20 09:45:12 +01:00
b45b6b6707 Import: we now skip messages when user is null 2017-02-20 09:16:02 +01:00
48be826ea9 Merge pull request #2905 from nicofrand/patch-1
Alert that 2FA must be authorized in app/config/parameters.yml
2017-02-20 08:27:26 +01:00
b17cb92e9b Merge pull request #2913 from wallabag/add-wllbgit-readme
Added wallabag.it link in README
2017-02-20 08:05:58 +01:00
38fe541997 Alert that 2FA must be authorized in app/config/parameters.yml 2017-02-20 08:04:44 +01:00
bba94d7458 Merge pull request #2832 from Kdecherf/search-domain
Search by term: extend to entries url
2017-02-19 21:52:35 +01:00
b678d0f55c Added wallabag.it link in README 2017-02-18 15:04:57 +01:00
2b8f274b8a Merge pull request #2911 from wallabag/jlnostr-patch-1
Remove word repetition from german translation
2017-02-17 22:16:48 +01:00
5d858d21de Remove word repetition from german translation
see https://github.com/wallabag/wallabag/pull/2882#discussion_r101806434
2017-02-17 21:52:16 +01:00
628f9d31de Merge pull request #2908 from wallabag/move-it-documentatin
Moved 🇮🇹 documentation into it folder
2017-02-17 13:54:48 +01:00
9d8975f6b6 Moved 🇮🇹 documentation into it folder 2017-02-17 13:12:09 +01:00
2edc539581 Merge pull request #2830 from Kdecherf/striptags-title
Fix rendering of entry title in Twig views
2017-02-17 09:28:56 +01:00
2ac8e2c5b5 Merge pull request #2882 from wallabag/add-translations-doc-mobile-apps
Doc: translated mobile apps configuration in french
2017-02-17 09:28:21 +01:00
eac09b48b0 Search by term: extend to entries url
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-02-16 21:47:52 +01:00
9dd68dae77 Some changes to 🇩🇪 translation 2017-02-16 21:41:19 +01:00
aedd385e10 views: cosmetic in share links href
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-02-16 21:36:34 +01:00
6c1c433903 Merge pull request #2892 from ngosang/feature/es_translation
Update Spanish translation
2017-02-16 09:12:40 +01:00
8b42e75f68 add 🇩🇪 doc user/configuring_mobile 2017-02-15 17:13:14 +01:00
82749439ac Update Spanish translation 2017-02-15 15:41:06 +01:00
a92718dba2 Merge pull request #2875 from kgaut/patch-3
Doc - information about Apache 2.4
2017-02-14 22:14:51 +01:00
2414eb12c6 Merge pull request #2785 from matteocoder/patch-2
first_article.rst already inside articles.rst
2017-02-14 22:05:53 +01:00
f3c7e055f2 Merge pull request #2784 from matteocoder/patch-1
Doc: share.rst already integrated inside articles.rst
2017-02-14 21:37:27 +01:00
e04d656f5a first_article.rst already inside articles.rst
The file is a duplicate of a section already present in articles.rst
2017-02-14 20:57:22 +01:00
d60c38edf9 share.rst already integrated inside articles.rst
The share.rst file is just a duplicate of a section already present in another file.
2017-02-14 20:56:27 +01:00
7d1c19c021 Doc: translated mobile apps configuration in french 2017-02-14 20:45:08 +01:00
f17b89fadc Merge pull request #2878 from matteocoder/wallabag-docs-ita
Italian documentation added
2017-02-14 18:33:43 +01:00
eef47c0ead Merge pull request #2879 from matteocoder/matteocoder-patch-1
Fixed typo in "first_steps"
2017-02-14 17:16:14 +01:00
5601b4536c Italian documentation added
There are some missing links in various articles. Please let me know how I can fix this :)
2017-02-14 16:36:40 +01:00
6d1e97f564 Merge pull request #2860 from wallabag/docs-update-3rd-party-apps
docs 3rd party tools: update java wrapper, add cmd tool to add article
2017-02-14 15:40:29 +01:00
c772c473a1 docs: add 3rd party app wallabako for Kobo readers 2017-02-14 15:39:12 +01:00
0ae5297699 Doc - informations about Apache 2.4 2017-02-14 15:29:33 +01:00
5e4b9b2321 Merge pull request #2874 from kgaut/patch-2
Add informations about Apache 2.4
2017-02-14 15:11:08 +01:00
947ccd075c Add informations about Apache 2.4 2017-02-14 09:24:56 +01:00
4a953a250c Merge pull request #2869 from wallabag/log-restricted-access
Log restricted access value
2017-02-13 14:55:55 +01:00
7bf6b555f5 Log restricted access value
It might help to figure out if we have enabled it or not
2017-02-13 14:20:03 +01:00
8148675cb7 docs 3rd party tools: update java wrapper, add cmd tool to add article 2017-02-11 00:43:04 +01:00
abba55cdd6 Merge pull request #2846 from wallabag/mruminski-patch-1
fix misspells in polish translation
2017-02-06 17:29:31 +01:00
41ed68d5b0 fix misspells in polish translation 2017-02-06 15:38:33 +01:00
99cc170b0e Merge pull request #2842 from K-Phoen/update-rulerz
Update RulerZ
2017-02-06 09:20:28 +01:00
10caff9875 Merge pull request #2841 from Kdecherf/active-menu-search
Show active list in the left menu during search
2017-02-05 21:08:39 +01:00
177c5510ff Update RulerZ 2017-02-05 18:02:09 +01:00
7d9a67de14 Show active list in the left menu during search
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-02-05 15:19:52 +01:00
20da238413 Merge pull request #2788 from Zettt/master
Documentation on how to configure mobile apps to work with wallabag.it
2017-02-05 12:49:43 +01:00
664621955d Added configuration documentation for mobile apps 2017-02-05 12:48:30 +01:00
15a4d52833 Merge pull request #2839 from foxmask/master
scripts/update.sh: 18: scripts/update.sh: composer.phar: not found
2017-02-05 12:34:20 +01:00
5397d820fe Merge pull request #2838 from wallabag/Quent-in-patch-1
Update Oc version
2017-02-04 21:54:43 +01:00
6837c3989a Merge pull request #2840 from wallabag/fix-frameworkbundle
Restored correct version for framework-extra-bundle
2017-02-04 21:53:26 +01:00
7db1bdf1e4 Restored correct version for framework-extra-bundle
The bundle was fixed in latest version.
2017-02-04 18:26:16 +01:00
205c6f0c66 scripts/update.sh: 18: scripts/update.sh: composer.phar: not found
when composer.phar is not globally installed, we should add "./" in front of "composer.phar" to run it from the current folder.
2017-02-04 17:02:25 +01:00
289ce94bd8 Update Oc version
I'll be ready for next train
2017-02-04 15:21:13 +01:00
5b9cf67529 Merge pull request #2818 from Kdecherf/fix-search-bar
Fix nav-panel-search height
2017-02-03 09:04:33 +01:00
1bb7bdc8b3 Fix rendering of entry title in Twig views
This commit provides some improvements on the rendering of entry title
on entries list and entry views and refactors filter calls:
- Remove escape filter from apparent title, striptags is enough
- Move raw filter to the end of apparent title as it's ignored if not
  placed as the last filter
- Replace raw filter with e('html_attr') for title used in attributes,
  fixing possible issue and/or glitch
- Add striptags to entry.title used for link sharing to respect the
  apparent title

Fixes #2802

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-02-02 21:54:15 +01:00
8138fd390b Added minified CSS files 2017-02-02 21:48:59 +01:00
3cc0cc0ae7 Fix nav-panel-search height
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-02-02 21:48:59 +01:00
8a098044bf Merge pull request #2831 from wallabag/Quent-in-patch-1
Update of CraueConfigBundle in Occitan
2017-02-02 17:11:40 +01:00
20fa5ca02a Update of CraueConfigBundle in Occitan 2017-02-02 16:29:28 +01:00
c7d05059ca Merge pull request #2824 from wallabag/simplify-strings
Renamed Developer section to API client management
2017-02-02 15:35:22 +01:00
d3ef28c092 Freezed sensio/framework-extra-bundle version 2017-02-02 14:39:17 +01:00
f217cf48d9 Merge pull request #2826 from wallabag/jlnostr-patch-1
Translate missing strings for de-DE.
2017-02-02 09:13:21 +01:00
ab5c68facc Merge pull request #2829 from wallabag/mruminski-patch-1
Update polish strings
2017-02-02 09:12:52 +01:00
51ca217d2e Update polish strings
update missing polish strings
2017-02-01 22:29:03 +01:00
f41b085c76 Translate missing strings for de-DE. 2017-02-01 22:06:04 +01:00
74ba949d7e Update german strings. 2017-02-01 21:29:59 +01:00
013f426d10 Renamed Developer section to API client management 2017-02-01 13:23:13 +01:00
d3a8322a64 Merge pull request #2816 from wallabag/add-details-update
Added details about upgrade from 2.1.x or 2.2.0
2017-01-31 14:09:51 +01:00
1a6e0725d3 Added details about upgrade from 2.1.x or 2.2.0 2017-01-31 12:53:22 +01:00
713f35bafd Merge pull request #2812 from wallabag/prepare-221
Prepare wallabag 2.2.1 🚀
2017-01-31 11:31:45 +01:00
4021c928be Prepare wallabag 2.2.1 🚀 2017-01-31 11:06:35 +01:00
38c73f9691 Merge pull request #2809 from wallabag/fix-22-migrations
Fixed duplicate entry for share_public in craue_setting_table
2017-01-31 11:03:58 +01:00
a5cd696b22 Added check in migration about uuid field 2017-01-30 21:21:49 +01:00
7a340375c3 Fixed duplicate entry for share_public in craue_setting_table 2017-01-30 16:22:03 +01:00
ec67907420 Merge pull request #2790 from wallabag/prepare-220
Prepare wallabag 2.2.0 🚀
2017-01-27 19:03:13 +01:00
c833d576a9 Prepare wallabag 2.2.0 🚀 2017-01-27 17:28:58 +01:00
f0c5154d68 Merge pull request #2789 from wallabag/add-index-starred-archived
Added indexes on is_archived and is_starred
2017-01-27 14:46:50 +01:00
01e760691b Fixed check on index 2017-01-27 14:11:21 +01:00
b564d350b0 Added indexes on is_archived and is_starred 2017-01-27 11:44:04 +01:00
6fb06904ec Merge pull request #2416 from wallabag/2.2
wallabag 2.2.0
2017-01-27 09:34:32 +01:00
78295b99dd Merge remote-tracking branch 'origin/master' into 2.2 2017-01-26 13:32:07 +01:00
463cb376e3 Merge pull request #2646 from wallabag/explain-migrations-in-doc
Added explanations about migrations
2017-01-26 13:15:06 +01:00
012b2d453e Merge pull request #2787 from wallabag/lock-rulerz
Lock kphoen/rulerz to avoid breaking changes
2017-01-26 11:33:42 +01:00
363e2a9ce9 Lock kphoen/rulerz to avoid breaking changes 2017-01-26 11:01:25 +01:00
73eb2b4ed5 Merge pull request #2750 from wallabag/rename-uuid
Added migration to rename uuid to uid
2017-01-25 13:57:26 +01:00
6dfd1a6c78 Added migration for SQLite 2017-01-25 12:59:04 +01:00
5d916d03af Moved queries in a separate file 2017-01-25 12:34:20 +01:00
b8805fad03 Merge pull request #2774 from wallabag/cli-export
add cli export
2017-01-24 21:07:49 +01:00
3b0380f049 Fix phpcs and tests 2017-01-24 20:42:02 +01:00
605f82d9c4 Fixed typo in "first_steps"
Changed "Pimi passi" to "Primi passi
2017-01-24 08:22:18 -05:00
c8cd1660af Fixed update script 2017-01-23 14:43:00 +01:00
4acbeb9371 Added hardcoded SQL for migration to 2.2 2017-01-23 14:16:00 +01:00
b87f171233 Added information about latest migrations 2017-01-23 12:42:58 +01:00
500ae20c94 Add translation for 🇩🇪 2017-01-23 12:42:58 +01:00
80aee45fa8 Added french translation 2017-01-23 12:42:58 +01:00
c8ef0583af Added explanations about migrations 2017-01-23 12:42:58 +01:00
a607b7a9c0 add filepath test
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2017-01-22 13:19:46 +01:00
8303b037fb add cli export
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2017-01-22 12:51:14 +01:00
afaee1cc0a Merge pull request #2763 from janLo/sort-tags
Sort list of available tags
2017-01-18 15:15:19 +01:00
05fa529bcf Merge pull request #2759 from wallabag/prepare-216
Prepare wallabag 2.1.6 🚀
2017-01-18 10:24:24 +01:00
32755d5091 Order tags by slug
This adds an orderBy clause to findAllTags(). This makes the list of
tags more useful, as the tags appear in alphanumerical order instead of
somehow random.

Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
2017-01-17 19:22:20 +01:00
1ba542ce04 Prepare wallabag 2.1.6 🚀 2017-01-17 13:59:39 +01:00
9123cb3053 Merge pull request #2758 from wallabag/fix-public-sharing
Fixed possible JS injection via the title edition
2017-01-17 11:59:14 +01:00
3d9950792c Fixed possible JS injection via the title edition 2017-01-17 10:09:04 +01:00
5ed503ab28 Added migration to rename uuid to uid 2017-01-14 13:46:20 +01:00
b4d81c91de Merge pull request #2742 from wallabag/fix-og-image-false
Avoid false preview image
2017-01-10 21:25:27 +01:00
1ff2e71c1c Use latest bdunogier/guzzle-site-authenticator 2017-01-10 18:50:55 +01:00
72e634b06c Fix registration.submit test 2017-01-10 18:50:45 +01:00
3d71d40349 Avoid false preview image
If the website doesn't provide an og_image, the value will be false and so it'll be saved like that in the database.
We prefer to leave it as null instead of false.
2017-01-10 17:42:36 +01:00
e4ccd3effe Update deps 2017-01-10 17:35:17 +01:00
a4180d0b8e Merge pull request #2733 from wallabag/fix-no-matching-response
Fixed API error No matching accepted Response format could be determined
2017-01-08 10:22:31 +01:00
96e2827605 Merge pull request #2736 from lex111/patch-1
Update copyright year
2017-01-04 22:43:58 +01:00
de84b135e2 Update copyright year in COPYING.md 2017-01-05 00:06:09 +03:00
c20d9e311f Update copyright year 2017-01-04 23:57:33 +03:00
cace43dd7b Merge pull request #2735 from wallabag/remove-small-readingtime
Removed the small element on reading time
2016-12-30 15:45:19 +01:00
144f2039e4 Merge pull request #2729 from Simounet/fix/double-overlay-right-sidenav
Fix double overlay on expanded right sidenav
2016-12-30 15:01:39 +01:00
4da856ef11 Merge pull request #2728 from Simounet/fix/side-nav-scrolling
Fix right side-nav scrolling on low height window
2016-12-30 14:57:39 +01:00
70d99765c7 Removed the small element on reading time 2016-12-30 14:17:18 +01:00
ccb9e79a35 Fix double overlay on expanded right sidenav 2016-12-30 14:00:19 +01:00
bb2934d476 Fix action's icons position 2016-12-30 13:54:13 +01:00
8e2419a5cf Fix right side-nav scrolling on low height window 2016-12-30 13:50:59 +01:00
339b1e689d Merge pull request #2725 from lapineige/master
Share to Shaarli - Include tags
2016-12-30 13:50:44 +01:00
0bacc9e175 Fixed API error 'No matching accepted Response format could be determined' 2016-12-30 13:23:02 +01:00
510b02573f Merge pull request #2732 from Simounet/fix/firefox-addon-url
Firefox add-on URL updated
2016-12-30 13:18:22 +01:00
db769f6061 Firefox add-on URL updated 2016-12-30 12:01:38 +01:00
5f4667e3e8 Merge pull request #2730 from Simounet/feature/all-actions-on-mobile
Access to search, filters, export on mobile
2016-12-30 11:10:47 +01:00
af54b2c959 Merge pull request #2731 from llune/patch-2
Minor typo fix
2016-12-30 08:55:15 +01:00
9ad7475c74 Minor typo fix 2016-12-30 02:20:58 +01:00
22d0c929e3 Access to search, filters, export on mobile 2016-12-29 19:19:51 +01:00
8527238846 Merge pull request #2702 from wallabag/add-index-uuid
Added index on entry.uuid
2016-12-29 10:54:07 +01:00
7239082a5e Renamed uuid to uid 2016-12-29 10:09:44 +01:00
90f6ee4dbe Merge pull request #2724 from Simounet/fix/reading-time
Fix entry reading time
2016-12-28 18:11:01 +01:00
d5d4708fe3 Share tags to Shaarli - Material theme 2016-12-28 12:27:09 +01:00
0a0aa70098 Share tags to Shaarli - Baggy theme 2016-12-28 12:27:00 +01:00
92ba3b5c0d Merge pull request #2723 from wallabag/fix-export-tag-space
Fixed export by tags with a tag which contains space
2016-12-28 09:10:14 +01:00
6ed615ac74 Fix entry reading time 2016-12-27 22:37:42 +01:00
c8de7ab94c Fixed export by tags with a tag which contains space 2016-12-27 21:26:53 +01:00
89cd670abf Changed uuid type in database 2016-12-25 10:51:25 +01:00
8137515171 Fixed index on entry.uuid and changed uuid field type 2016-12-25 10:51:25 +01:00
af131cb513 Added index on table creation 2016-12-23 10:26:33 +01:00
74b7c0985d Added index on entry.uuid
Useful for entry sharing
2016-12-23 10:26:33 +01:00
7719346328 Merge pull request #2696 from wallabag/run-migration
Run migration on each test
2016-12-23 09:31:41 +01:00
a72f3dc308 Fix bad migration for PostreSQL
Queries weren’t executed for PostgreSQL, bad syntax.
2016-12-23 09:00:13 +01:00
cd77a7e7ef Merge pull request #2714 from Simounet/fix/entry-card-shadow
Fix the box shadow on the card entry
2016-12-20 14:52:50 +01:00
78d6c3090a Fix the box shadow on the card entry 2016-12-20 13:04:51 +01:00
3ef75cc4e3 Be consistent between migration & schema definition 2016-12-19 14:24:19 +01:00
6514f0ed37 fixup! Run migration in test, ready for MySQL 2016-12-19 10:35:25 +01:00
d44016b072 Use actual database name
We can't retrieve the environment within the migration.
And when we ran migration on Travis, database name isn't `database_name` but `test_database_name`.
Retrieve the database name from the connection is more accurate
2016-12-19 10:35:25 +01:00
3ad4061dba pocket_consumer_key can be null 2016-12-19 10:35:24 +01:00
d9efa42f66 fixup! Manually import file for PostgreSQL 2016-12-19 10:35:24 +01:00
bd8db77f5f Remove comment
"The string "--" is not permitted within comments."
2016-12-19 10:35:24 +01:00
5354485885 Add orignal DB schema 2016-12-19 10:35:24 +01:00
81915ad8df And of course it doesn't work for SQLite 2016-12-19 10:35:24 +01:00
cafb105681 Manually import file for PostgreSQL 2016-12-19 10:35:24 +01:00
a48b5d5a5a Run migration in test, ready for MySQL 2016-12-19 10:35:24 +01:00
68cb89a516 Merge pull request #2616 from mathieui/doc-https-links
Change documentation links to HTTPS
2016-12-19 10:29:18 +01:00
77e342f75d Merge pull request #2682 from wallabag/migration-config
Ensure craue_config_setting migration are ok
2016-12-18 20:32:35 +01:00
bea8d75417 Replaced quotes for Postgres 2016-12-18 13:47:25 +01:00
57e629e154 Merge pull request #2690 from wallabag/improve-rmq-config
Added QoS for RabbitMQ
2016-12-16 08:20:50 +01:00
be8033bf12 Merge pull request #2701 from wallabag/disable-outputWalkers
Removed outputWalkers for pagination
2016-12-16 07:43:01 +01:00
31fec5f363 Ensure craue_config_setting migration are ok
We now can run the migration every time, new line from `craue_config_setting` are properly checked.
2016-12-15 22:25:10 +01:00
881b0578e7 Moved RabbitMQ QoS to parameters 2016-12-15 22:23:28 +01:00
99712e5d85 Added QoS for RabbitMQ 2016-12-15 22:23:28 +01:00
5a5da36955 Removed outputWalkers for RSS and API 2016-12-15 22:22:57 +01:00
9deac0c597 Removed outputWalkers for pagination
Due to overload, we disabled output walkers (see https://github.com/whiteoctober/Pagerfanta/issues/115
2016-12-15 22:22:56 +01:00
24becc9717 Merge pull request #2667 from wallabag/upgrade-symfony-32
Upgrade to Symfony 3.2
2016-12-15 22:18:45 +01:00
6ad8aabb83 Fixed search bug 2016-12-15 21:38:16 +01:00
21e7ccef3d Fix tests & deprecation notice 2016-12-15 21:38:16 +01:00
202a66ce02 Use simple-phpunit instead of phpunit
To avoid problem with the Yaml constant
http://symfony.com/blog/how-to-solve-phpunit-issues-in-symfony-3-2-applications
2016-12-13 09:33:06 +01:00
15cc183850 Merge pull request #2699 from wallabag/remove-usertable-query
Removed user join in query builder
2016-12-13 09:08:34 +01:00
375c9e2d3e Merge pull request #2697 from wallabag/fix-list-mode
Add default value for list_mode
2016-12-12 22:54:43 +01:00
45c159b798 Removed user join in query builder 2016-12-12 22:51:29 +01:00
24879db1f7 Add default value for list_mode 2016-12-12 17:41:03 +01:00
2c1eed8051 Merge pull request #2691 from wallabag/moved-total-import-notif
Moved total messages from import
2016-12-08 19:02:30 +01:00
be2c55de4c Moved total messages from import 2016-12-08 16:46:17 +01:00
edb9feb472 Merge pull request #2689 from wallabag/change-chmod
Replaced chmod for download pictures feature
2016-12-08 15:19:33 +01:00
e044d27f82 Replaced chmod for download pictures feature 2016-12-08 13:04:15 +01:00
75ae3c8d82 Merge pull request #2688 from wallabag/fix-browsers-import
Fixed imports with is_starred and is_archived
2016-12-08 09:07:09 +01:00
bb98fede2b Fixed imports with is_starred and is_archived 2016-12-07 16:01:50 +01:00
2d4b167038 Merge pull request #2686 from wallabag/fix-redis-import
Casted maxIterations for Redis import
2016-12-06 21:04:08 +01:00
558d5199b9 Merge pull request #2680 from wallabag/taggingrule-255
Limit rule to 255
2016-12-06 21:00:24 +01:00
7dc48ef820 Casted maxIterations for Redis import
Simpleue\Worker wants an integer, we gave it a string
2016-12-06 11:44:40 +01:00
4a1f963531 Merge pull request #2679 from jcharaoui/fix-2658
Fix content from imported entried being discarded when URL goes bad
2016-12-04 19:30:11 +01:00
106bdbcd0a Add some comments 2016-12-04 11:27:49 +01:00
a2c1b94e82 Revert switch to KernelTestCase for ContentProxyTest
Define the error string manually inside the test class instead of
fetching it from app config.
2016-12-03 09:50:36 -05:00
5aa0294cca Limit rule to 255
To avoid database error
2016-12-03 11:10:39 +01:00
cd82ace70a Add missing CoreKernelTestCase class 2016-12-03 00:26:57 -05:00
dba1e0b188 Fix WallabagV1Controller test
Account for URL redirection in refreshed entry.
2016-12-03 00:14:06 -05:00
fc2b7bda53 Fix ContentProxy tests 2016-12-03 00:14:06 -05:00
3cd6da0b74 Allow fetching content on all import types
For better consistency, allow all types of imported entries to update,
which was already the case for Firefox and Chrome.
2016-12-03 00:12:20 -05:00
e858018fdd Prevent undefined index when import fetching fails 2016-12-02 22:45:04 -05:00
36e6ef52a1 Imported entries which fail to fetch get standard error body 2016-12-02 22:42:36 -05:00
29dca43236 Retain imported content if fetching fails, fixes #2658 2016-12-02 22:41:35 -05:00
1093e979ff Merge pull request #2677 from wallabag/add-wallabag_user.de.yml
add translations/wallabag_user.de.yml (fixes #2673)
2016-12-01 19:08:12 +01:00
10d85dbae3 Update wallabag_user.de.yml
Wallabag->wallabag
2016-12-01 18:23:41 +01:00
87958ce645 add translations/wallabag_user.de.yml (fixes #2673) 2016-12-01 18:03:36 +01:00
81c657fc5b Merge pull request #2676 from wallabag/update-addons
Updated addons links
2016-12-01 14:39:48 +01:00
8d064ba5a4 Updated addons links 2016-12-01 13:48:34 +01:00
075e1d75e2 Merge pull request #2674 from wallabag/fix-404img-2FA
Fixed 404 for wallabag logo in 2FA
2016-12-01 13:35:55 +01:00
68da51d2a3 Fixed 404 for wallabag logo in 2FA 2016-12-01 10:51:04 +01:00
4bd42110c6 Merge pull request #2672 from wallabag/fix-typo
Fixed typo in asynchronous documentation
2016-12-01 07:38:19 +01:00
b46e63fc0a Fixed typo in asynchronous documentation 2016-11-30 22:02:08 +01:00
f3a1b896b3 Merge pull request #2670 from wallabag/add-floating-button
Added floating button on entry view for mobile
2016-11-30 16:55:44 +01:00
6787afbe0d Added floating button on entry view for mobile 2016-11-30 16:08:02 +01:00
9abac9651f Merge pull request #2650 from wallabag/add-hascolumn
Added hasColumn() in migration to check column existence
2016-11-30 14:17:40 +01:00
067ae472cc Named index 2016-11-30 12:29:55 +01:00
65a8c6e135 Code review 2016-11-30 11:27:07 +01:00
d68e045d86 Upgrade to Symfony 3.2 2016-11-30 11:08:38 +01:00
ad51d77146 Merge pull request #2662 from wallabag/add-list-view
Add list view
2016-11-28 16:47:41 +01:00
9aa991281d Renamed view_mode by list_mode and hide excerpt 2016-11-28 16:10:21 +01:00
d79b3adbed Fixed typo 2016-11-28 14:28:35 +01:00
597755b8c7 Cleaned old migrations 2016-11-28 14:28:35 +01:00
84c6a48df4 Added dropColumn for SQLite and some enhancements 2016-11-28 14:28:35 +01:00
a4d55a9161 Replaced abortIf with skipIf 2016-11-28 14:28:35 +01:00
18d7bc3a35 Added checks on migrations 2016-11-28 14:28:35 +01:00
986cb53645 Removed my hasColumn and used the existing one in Doctrine 2016-11-28 14:28:35 +01:00
73f7eabb6e Added hasColumn() in migration to check column existence 2016-11-28 14:28:35 +01:00
56a7ce17f3 Hide article text on mobile with list mode 2016-11-28 14:27:58 +01:00
8f3ff39ca3 Added test for list view 2016-11-28 14:27:58 +01:00
9f01d0fde0 Added list view 2016-11-28 14:27:58 +01:00
34ea7be622 Merge pull request #2663 from wallabag/remove-fosuser-attributes
Removed FOSUser attributes removed in alpha4
2016-11-28 14:27:31 +01:00
07326af5e2 Added migration to remove useless fields 2016-11-28 13:25:18 +01:00
cda0662311 Removed FOSUser attributes removed in alpha4
See https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Upgrade.md\#200-alpha3-to-200-alpha4
2016-11-28 12:44:17 +01:00
6bb0866cf5 Merge pull request #2659 from akovalyov/bugfix/non-latin-characters-in-reading-time-calculation
Fix incorrect reading time calculation for entries in non-latin languages.
2016-11-28 09:23:04 +01:00
5b6888b13f Fix incorrect reading time calculation for entries in languages with
non-latin chars subset.
2016-11-28 01:15:06 +02:00
5b644798a0 Merge pull request #2654 from Kdecherf/domain-filter
Enforce lowercase on domain name filter
2016-11-27 18:35:38 +01:00
00fc2b44f4 Enforce lowercase on domain name filter
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2016-11-26 19:52:50 +01:00
ebe50a85fb Merge pull request #2622 from Kdecherf/ui-changes
Material UI Changes
2016-11-25 17:11:07 +01:00
60abe8c274 Minified CSS 2016-11-25 16:45:03 +01:00
56026217c5 Material: update size of text in article
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2016-11-25 13:49:45 +01:00
819c8f5bd4 Material: render blockquote in italic and strong in bold in article
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2016-11-25 13:39:53 +01:00
fdaa044314 Material: update style of pre in article
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2016-11-25 13:39:53 +01:00
59cfd63c23 Material: update style of ul in article
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2016-11-25 13:39:53 +01:00
858430c0d0 Material: update style of article links
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2016-11-25 13:39:53 +01:00
5ea90fa8b9 Material: increase max width of article on large screens
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2016-11-25 13:39:49 +01:00
7470a2f36a Material: prevent bold in title, update title font size
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2016-11-25 13:37:42 +01:00
5b69e03eb4 Material: change color of background, article content and titles
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2016-11-25 13:37:42 +01:00
b5e0bbeb85 Merge pull request #2642 from wallabag/fix-logout-shortcut
Fixed logout shortcut
2016-11-23 15:14:05 +01:00
66e9dde0dc Fixed logout shortcut 2016-11-23 14:40:00 +01:00
f4a9833490 Merge pull request #2620 from wallabag/fix-password-layout
Fix password layout
2016-11-23 09:53:18 +01:00
fcbf253b6b Remove empty line 2016-11-23 09:20:00 +01:00
75a4b3b23f Merge pull request #2640 from wallabag/fix-openoriginal
Fixed entry shortcuts available in list view
2016-11-23 09:06:45 +01:00
0df2a4b021 Fixed entry shortcuts available in list view 2016-11-22 21:31:21 +01:00
be2725db40 Add migration for new FOSUser version 2016-11-22 21:25:05 +01:00
ae741f998e Fix MonologBundle deprecation
The Symfony\Bundle\MonologBundle\DependencyInjection\Compiler\DebugHandlerPass class is deprecated since version 2.12 and will be removed in 3.0. Use AddDebugLogProcessorPass in FrameworkBundle instead.
2016-11-22 21:25:05 +01:00
5066c3e066 Re-use FOSUser master branch 2016-11-22 21:25:05 +01:00
4da598c5df Fix Travis 2016-11-22 21:23:58 +01:00
d7acde5cc3 Use the correct template
When resetting the password, the overriden template we used wasn’t well spelled.

And since we are using a locked version of FOSUser (on a custom commit), the translation of `resetting.check_email` is wrong in any language but english.
2016-11-22 21:23:58 +01:00
9624b3adfa These files aren’t used anymore
Translation were moved to the global one
2016-11-22 21:23:58 +01:00
7c6b7a40d1 Merge pull request #2637 from wallabag/mruminski-patch-1
Update messages.pl.yml
2016-11-22 20:02:00 +01:00
24d4b243a7 Update messages.pl.yml
translate shortcuts section to polish
2016-11-22 19:24:38 +01:00
176e0ea3ca Merge pull request #2317 from wallabag/restricted-access
Added authentication for restricted access articles
2016-11-22 19:12:53 +01:00
d51093a7d9 Added documentation and missing translations 2016-11-22 17:32:24 +01:00
d64bf7953b Added internal setting to enable/disable articles with paywall 2016-11-22 14:56:53 +01:00
40f3ea57fb Cleared CookieJar to avoid websites who use cookies for analytics 2016-11-22 14:25:51 +01:00
1d5dd2c241 Merge pull request #2612 from wallabag/add-shortcuts-help
Added help about shortcuts
2016-11-22 14:10:12 +01:00
7aab0ecf2f Added authentication for restricted access articles
Fix #438. Thank you so much @bdunogier
2016-11-22 14:01:46 +01:00
893ccad31f Translations for shortcuts help 2016-11-22 13:33:06 +01:00
c526f9e474 Added help about shortcuts 2016-11-22 13:07:42 +01:00
bb28368f69 Merge pull request #2635 from wallabag/304-reload
Return 304 when content isn't reloaded using the API
2016-11-22 11:27:55 +01:00
5cd0857e3c Return 304 when content isn't reloaded using the API
Previously it was a 400 but this is more related to a real error.
Using the API user should only know the content got reloaded or not.
If reloaded: 200 otherwise: 304.
2016-11-22 10:45:19 +01:00
944b8d6175 Merge pull request #2613 from wallabag/fix-overlap
Fix card action overlap
2016-11-22 10:27:14 +01:00
ba838dae5a Merge pull request #2614 from wallabag/api-reload
Add ability to reload entry from API
2016-11-22 09:39:43 +01:00
c72c6f43f2 Merge pull request #2632 from wallabag/mruminski-patch-1
Update messages.pl.yml
2016-11-21 20:17:33 +01:00
4bf5172585 Update messages.pl.yml
missing polish translation added
2016-11-21 18:18:52 +01:00
1f00547836 Merge pull request #2630 from ThibaudDauce/fix-black-headings
Add white-text class to card-title too
2016-11-21 17:06:55 +01:00
4f2755a61d Add white-text class to card-title too 2016-11-21 15:37:47 +01:00
eb2d613c3e Merge remote-tracking branch 'origin/master' into 2.2 2016-11-21 15:15:30 +01:00
625bb56181 Merge pull request #2624 from Rurik19/master
Fix #2056 update config.yml
2016-11-21 13:14:31 +01:00
83fed2648b Merge pull request #2625 from wallabag/prepare-215
Prepare wallabag 2.1.5
2016-11-21 09:49:34 +01:00
98253436e9 Prepare wallabag 2.1.5 🚀 2016-11-21 09:20:27 +01:00
e839f87a1c Merge pull request #2623 from wallabag/composer-php-5.5
Force composer to run as PHP 5.5.9
2016-11-21 09:01:35 +01:00
f32ff37534 Lock down PHPUnit for PHP 5.5
Since Composer defined lowest version is now PHP 5.5.9.
PHPUnit 5.0 require PHP 5.6.
2016-11-21 07:46:46 +01:00
05cdd393d8 wrong spaces 2016-11-21 11:29:09 +05:00
5e7fdfc8dd Fix #2056 update config.yml
Resolves refresh token lifetime issue
2016-11-21 11:13:40 +05:00
c396a50509 Force composer to run as PHP 5.5.9 2016-11-20 23:07:38 +01:00
a38d50e1e8 Merge pull request #2621 from wallabag/redis-password
Add ability to use Redis with password
2016-11-20 22:27:05 +01:00
59c42a4aad Add german translation 2016-11-20 20:43:05 +01:00
c1683778ab Add ability to use Redis with password 2016-11-20 20:43:04 +01:00
56da73969a Return an explicit error if reload fail 2016-11-20 16:25:13 +01:00
70584b42aa Fixing tests 2016-11-20 15:15:13 +01:00
7c05d59153 Change documentation links to HTTPS
Even though all the websites used in the commands redirect http to
https, a man in the middle can happen with the initial request,
leading to arbitrary code execution.
2016-11-20 14:51:14 +01:00
0a6f4568b5 Add ability to reload entry from API 2016-11-20 13:08:41 +01:00
5ae8788583 Merge pull request #2609 from wallabag/rss-paging
RSS paging
2016-11-20 10:17:37 +01:00
77e2898ad4 Fix card action overlap
On smaller resolution
2016-11-20 10:14:19 +01:00
16eb124e4a Add documentation about RSS paging 2016-11-20 09:50:52 +01:00
edd2472faa Fix tests 2016-11-20 09:39:26 +01:00
8670250a26 Add RSS pagination
Following https://tools.ietf.org/html/rfc5005#page-4
2016-11-20 09:39:26 +01:00
3c969d3990 Add missing translations 2016-11-20 09:39:25 +01:00
6f85bed294 Merge pull request #2543 from wallabag/search-engine
Added a simple search engine
2016-11-19 20:42:27 +01:00
995c204428 Added shortcut 2016-11-19 20:05:16 +01:00
32f455c131 Added tests 2016-11-19 20:05:16 +01:00
49b042dfdf Added translations and currentRoute parameter 2016-11-19 19:17:30 +01:00
398de40517 Added search engine in baggy theme 2016-11-19 19:17:30 +01:00
ee122a7528 Added a simple search engine
Fix #18
2016-11-19 19:17:30 +01:00
27dce581ca Messed up DE import translation 2016-11-19 15:39:02 +01:00
68003139e1 Merge remote-tracking branch 'origin/master' into 2.2
# Conflicts:
#	.editorconfig
#	docs/de/index.rst
#	docs/de/user/import.rst
#	docs/en/index.rst
#	docs/en/user/configuration.rst
#	docs/en/user/import.rst
#	docs/fr/index.rst
#	docs/fr/user/import.rst
#	src/Wallabag/CoreBundle/Command/InstallCommand.php
#	src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
#	src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig
#	web/bundles/wallabagcore/themes/baggy/css/style.min.css
#	web/bundles/wallabagcore/themes/baggy/js/baggy.min.js
#	web/bundles/wallabagcore/themes/material/css/style.min.css
#	web/bundles/wallabagcore/themes/material/js/material.min.js
2016-11-19 15:30:49 +01:00
cb1a6590c0 Merge pull request #2608 from wallabag/change-dev-version
Change version to 2.2.0-dev
2016-11-19 14:56:47 +01:00
8fdadee3a5 Change version to 2.2.0-dev 2016-11-19 14:28:25 +01:00
00b1dc0eb0 Merge pull request #2607 from wallabag/update-changelog
Updated changelog for 2.1.4
2016-11-19 14:03:18 +01:00
442dcb8ec1 Updated changelog for 2.1.4 2016-11-19 14:02:32 +01:00
bbd4ae7b56 Merge pull request #2600 from wallabag/install-assets
Install assets for shortcuts
2016-11-19 12:23:16 +01:00
4c27f14fa9 Merge pull request #2604 from wallabag/postgresql-version
wallabag can’t work on PostgreSQL <= 9.1
2016-11-19 12:00:18 +01:00
eabcd880ca Merge pull request #2605 from wallabag/update-release-process
Add .travis.yml change to RELEASE_PROCESS
2016-11-19 11:57:26 +01:00
8add306204 Merge pull request #2601 from wallabag/store-http-status
Added http_status in Entry entity
2016-11-19 11:53:41 +01:00
45277ad2bd Add .travis.yml change to RELEASE_PROCESS 2016-11-19 11:43:47 +01:00
a2261fbd70 Merge pull request #2603 from wallabag/fix-composer-no-dev
Fix clear-cache problem using —no-dev
2016-11-19 11:33:35 +01:00
cffcce0c92 Wallabag can’t work on PostgreSQL <= 9.1 2016-11-19 11:32:56 +01:00
01a47da128 Fix clear-cache problem using —no-dev
Related to :

> PHP Fatal error:  Class 'FOS\RestBundle\Serializer\JMSSerializerAdapter' not found in /Users/j0k/Sites/github/wallabag/var/cache/prod/appProdProjectContainer.php on line 9139
2016-11-19 10:45:21 +01:00
d215273c65 Check if status code is OK 2016-11-18 23:05:02 +01:00
e10e6ab34e Replace http status with a string
I don't want to have 0 if we don't fetch status code, I think it's better to have an empty string, mainly for filters
2016-11-18 15:55:16 +01:00
10b3509757 Added http_status in Entry entity 2016-11-18 15:09:21 +01:00
74216c7c74 Install assets for shortcuts 2016-11-18 14:12:26 +01:00
8853914ba4 Merge pull request #2596 from wallabag/prepare-214
Prepare wallabag 2.1.4 🚀
2016-11-18 10:24:55 +01:00
5d2971cadd Prepare wallabag 2.1.4 🚀 2016-11-18 10:00:29 +01:00
19d401b15c Merge pull request #2550 from wallabag/reorder-documentation
Reordered documentation
2016-11-18 09:28:20 +01:00
b060fbdfe7 Merge pull request #2593 from wallabag/test-clarify
Put log in the most common failure tests
2016-11-18 09:21:27 +01:00
50540682ff Undo translation of 'in english'. 2016-11-18 09:08:16 +01:00
c15d5a3af8 Merge pull request #2592 from wallabag/mruminski-patch-1
Update messages.pl.yml
2016-11-17 20:03:40 +01:00
5cc367b83a Fix tests 2016-11-17 19:58:10 +01:00
d8a35aba49 Put log in the most common failure tests
So we’ll quickly be able to see what kind of test is failing when viewing Travis
2016-11-17 19:30:50 +01:00
2bc5b74c73 Reordered documentation for German. 2016-11-17 19:22:21 +01:00
887303889b Update translation of link to german translation. 2016-11-17 19:22:19 +01:00
bb624c0269 Reordered 🇫🇷 documentation 2016-11-17 19:22:16 +01:00
2e389b0b90 Reordered documentation 2016-11-17 19:22:15 +01:00
52e01d3483 Update messages.pl.yml
translate action_mark_as_read section to polish
2016-11-17 18:52:42 +01:00
9e0a49e6ac Merge pull request #2578 from wallabag/questionmark-icon
Added help on config screen
2016-11-17 09:53:14 +01:00
66336f6571 Merge pull request #2547 from wallabag/add-option-markasread
Added a configuration to define the redirection after archiving an entry
2016-11-17 09:40:46 +01:00
c894d76e57 Added tooltips for baggy theme 2016-11-17 09:22:39 +01:00
540a9bc4a2 Added help on config screen 2016-11-17 09:22:39 +01:00
9e2440fe15 Fix migration 2016-11-17 08:05:15 +01:00
e6b133c60c CS 2016-11-16 23:10:01 +01:00
00bf45b6f2 Update unit test for Redirect 2016-11-16 23:07:34 +01:00
54fd55fda1 Tried to fix tests 2016-11-16 23:07:34 +01:00
65cd8a4a9a Added tests 2016-11-16 23:07:34 +01:00
f052f1fd57 Added constants for redirection values 2016-11-16 23:07:34 +01:00
287204cda7 Update messages.en.yml 2016-11-16 23:07:34 +01:00
f0ba37fbd5 Update messages.de.yml 2016-11-16 23:07:34 +01:00
5d52cc411b update German configuration.rst 2016-11-16 23:07:34 +01:00
a42f38d9fb Added a configuration to define the redirection after archiving an entry
Fix #496
2016-11-16 23:07:34 +01:00
e042a5d78f Merge pull request #2495 from wallabag/add-shortcuts
Added shortcuts
2016-11-16 09:35:59 +01:00
94f2057ffe Added CSS class on links 2016-11-16 09:17:12 +01:00
10a1ffae53 Fix keyboard navigation on quickstart view
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2016-11-15 22:23:50 +01:00
c930992348 fix next/prev page 2016-11-15 21:55:16 +01:00
5637a26e9a Bring navigation (with right, left and enter) on material entries page. Supports going to next and previous page !
Also better indentation for js files (changed editorconfig for them).

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2016-11-15 21:55:10 +01:00
16ef7607f4 Reorganized JS folders for shortcuts 2016-11-15 21:54:50 +01:00
af61cb80eb es6 imports
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2016-11-15 21:54:41 +01:00
f9cded7dd2 Added new shortcuts 2016-11-15 21:54:34 +01:00
49c5d0ad6e Changed FOSJSRouting format in config 2016-11-15 21:54:20 +01:00
3cc78f0679 Added shortcuts 2016-11-15 21:54:20 +01:00
d213219ec7 Merge pull request #2570 from wallabag/add-creation-date
Added creation date on entries view
2016-11-15 09:23:44 +01:00
decf651bbd Merge pull request #2587 from wallabag/user-agents
User-agents have moved to site-config
2016-11-15 09:23:26 +01:00
66fe2a3dc4 User-agents have moved to site-config
Since graby@1.5.0, user-agent can be defined in site-config, which the now recommended way
2016-11-14 14:29:13 +01:00
a8c6f29f3e Hide creation date in mobile view 2016-11-14 14:28:42 +01:00
64d080586d Merge pull request #2584 from blankoworld/master
fix #2582 - Documentation, Nginx config: disable all other PHP file from symphony
2016-11-14 14:00:24 +01:00
80302e5aaa Changed display for material theme 2016-11-14 13:58:41 +01:00
1c282b1da0 Added creation date on entries view 2016-11-14 13:57:31 +01:00
ccad5d7629 fix #2582 - Nginx config: disable all other PHP file from symphony
Regarding
https://www.nginx.com/resources/wiki/start/topics/recipes/symfony/ we
need to limit access to config.php and make_dev.php files from Nginx.
That's why we return 404 error page for these files.
2016-11-14 11:58:26 +01:00
d3511bbde9 Merge pull request #2577 from wallabag/add-tooltip-material
Added tooltips in header bar
2016-11-14 10:08:26 +01:00
d37081e50b Merge pull request #2562 from wallabag/image-bigger
Bigger image preview in case of only image content
2016-11-14 10:01:12 +01:00
cf9ee2fbd0 Added tooltips in header bar 2016-11-12 11:57:55 +01:00
8315507384 Merge pull request #2571 from wallabag/change-language-without-logout
Changed behavior when we change language
2016-11-11 18:27:04 +01:00
ece4718f63 Changed behavior when we change language
No need to disconnect to apply the language substitution
2016-11-10 20:54:20 +01:00
644b340178 Merge pull request #2566 from wallabag/add-unmarkit
Added unmark.it sharing
2016-11-09 18:19:08 +01:00
8a9604aafe Added unmark.it sharing
Fix #668
2016-11-09 18:18:49 +01:00
5cf9604004 Merge pull request #2565 from wallabag/remove-support-website
Removed support website on about page
2016-11-09 14:24:32 +01:00
1781ca3763 Removed support website on about page 2016-11-09 13:59:55 +01:00
33a66b1973 Merge pull request #2563 from wallabag/pr-template
Improve PR template
2016-11-09 09:03:10 +01:00
1e8c7fa5f9 Merge pull request #2564 from wallabag/mruminski-patch-1
Update messages.pl.yml
2016-11-09 09:02:33 +01:00
a9740448cf Update messages.pl.yml
translate Pinboard importer section to polish
2016-11-08 23:11:03 +01:00
c396ee2c63 Improve PR template 2016-11-08 22:53:30 +01:00
8d7b4f0eff Display a bigger image in case of image content
If the content is only an image, we can display a bigger preview image because we won’t have text to display.

Also, split different card view to avoid too much complexity in the entries.html.twig
2016-11-08 22:17:46 +01:00
e9490a3443 Add grunt watch task 2016-11-08 22:16:01 +01:00
7005b425e0 Remove the left margin of tag
In the entries list, the first tag below the link isn’t stick to the left. Now it is.
2016-11-08 22:15:37 +01:00
a0fb3b1b7a Merge pull request #2561 from wallabag/Rurik19-patch-2259
fix #2559
2016-11-08 18:38:37 +01:00
d99a7c2206 fix #2559 2016-11-08 22:14:32 +05:00
89e167a45a Merge pull request #2553 from wallabag/add-tagform-mobile
Added new tag form in mobile view for Material theme
2016-11-08 15:42:05 +01:00
df30af69d2 Added new tag form in mobile view for Material theme
Fix #2376
2016-11-08 14:24:00 +01:00
41c2178685 Merge pull request #2548 from wallabag/pinboard
Add Pinboard import
2016-11-08 14:19:40 +01:00
82f9a52078 docs: update german import.rst 2016-11-07 21:00:57 +01:00
40f3ab5311 Merge pull request #2555 from dkrmr/fix_update_script
Reorder variable assignation in update.sh script, fix #2554
2016-11-07 11:14:05 +01:00
a4de2351a0 Merge pull request #2556 from wallabag/replace-tokenstorage
Replaced TokenStorage with TokenStorageInterface
2016-11-07 11:13:50 +01:00
94766a8962 PHP CS 2016-11-07 10:41:11 +01:00
2fe2e411a7 Replaced TokenStorage with TokenStorageInterface 2016-11-07 10:34:49 +01:00
7d173a28c7 Reorder variable assignation in update.sh script, fix #2554 2016-11-07 09:55:03 +01:00
94060509b8 Use more explicit check 2016-11-07 08:36:52 +01:00
06283bef72 Merge pull request #2552 from wallabag/reading-time-round
Round readingtime to avoid crazy number
2016-11-06 23:32:39 +01:00
2e4efb5965 Add english doc into german one 2016-11-06 23:27:55 +01:00
56e6216485 Update messages.en.yml
Instapaper->Pinboard
2016-11-06 22:29:49 +01:00
e8e72daaa6 Update messages.de.yml 2016-11-06 22:29:08 +01:00
01ad4d6a89 Merge pull request #2551 from wallabag/remove-maintenance-bundle
Removed Maintenance bundle
2016-11-06 21:47:16 +01:00
d61b24e459 Round readingtime to avoid crazy number
Like `8.666666666667 min`
2016-11-06 21:41:32 +01:00
31151d70f2 Add doc 2016-11-06 21:23:38 +01:00
db3838545c Removed Maintenance bundle 2016-11-06 15:34:08 +01:00
e92fbdc852 Fix tests 2016-11-06 09:58:07 +01:00
24692715de Merge pull request #2546 from wallabag/update-parameters-doc
Updated default parameters.yml file in documentation
2016-11-06 09:52:09 +01:00
0c256e2e70 Updated default parameters.yml file in documentation 2016-11-06 09:11:12 +01:00
16037570bf Merge pull request #2545 from wallabag/update-doc
Update the upgrade documentation
2016-11-05 14:16:21 +01:00
bc12f08bda Update the upgrade documentation 2016-11-05 14:15:09 +01:00
9ab024b4f5 Add Pinboard import 2016-11-04 22:44:31 +01:00
b5571b52cc Merge pull request #2541 from wallabag/mruminski-patch-1
Update messages.pl.yml
2016-11-04 21:49:42 +01:00
cbdbd9d683 Merge pull request #2540 from wallabag/Quent-in-patch-1
Update of the OC version
2016-11-04 19:29:27 +01:00
ff7f551f5a Update messages.pl.yml
missing polish translation added
2016-11-04 19:26:06 +01:00
eaa0bf00a6 Update of the OC version 2016-11-04 18:13:11 +01:00
4ec9f5c334 Merge pull request #2536 from wallabag/prepare-213
Prepare wallabag 2.1.3 🚀
2016-11-04 13:32:47 +01:00
505e8acd46 Update CHANGELOG
Usage of github-changes from @lalitkapoor
2016-11-04 13:32:30 +01:00
4775fed6a7 Merge pull request #2535 from wallabag/default-sort-2.2
Use created_at as default sort
2016-11-04 09:38:03 +01:00
a3f7d8a870 Prepare wallabag 2.1.3 🚀 2016-11-04 09:10:15 +01:00
2db9142bfc Merge pull request #2460 from wallabag/ui-changes
UI Changes
2016-11-04 08:49:52 +01:00
f53f542fa5 Merge pull request #2534 from wallabag/default-sort
Use created_at as default sort
2016-11-04 08:48:42 +01:00
7e9c1d65b1 Add index into Table definition 2016-11-04 08:02:02 +01:00
1e7b04d4ea Use created_at as default sort
With index (following https://github.com/wallabag/wallabag/pull/2534)
2016-11-04 07:56:04 +01:00
ce11952447 Use created_at as default sort
Imported content use the real creation date. If we sort by id, it'll
display contents in reverse order.
2016-11-04 07:34:38 +01:00
001cc7168a Cleanup 2016-11-03 18:01:25 +01:00
864c1dd23a Fix rest controller merge 2016-11-03 17:29:16 +01:00
5a619812ca Merge remote-tracking branch 'origin/master' into 2.2 2016-11-03 16:41:29 +01:00
da41365579 Merge pull request #2180 from wallabag/download-pictures
Download pictures
2016-11-03 16:22:07 +01:00
ca08d02f2f Add warning message for import + download images
When import isn't async and downloading images is enabled, we warn the user that import can fail.
Also, added missing translations
2016-11-03 15:59:20 +01:00
816c0940d1 Merge pull request #2523 from wallabag/qrcode-android-app
Added QRCode and link to configure android application
2016-11-03 14:55:24 +01:00
32508ef07a avoid eslint warning by disabling line
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2016-11-03 14:23:09 +01:00
d56d416d9b Deal with more resolution issues
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2016-11-03 12:49:57 +01:00
3221b2e413 Fix resolution issues and 'title' issues
Also, modify editorconfig for css files.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2016-11-03 11:28:40 +01:00
84795d015b Merge pull request #2530 from wallabag/add-doc-failed-load-external-entity
Added documentation about failed to load external entity error
2016-11-02 20:07:10 +01:00
a49159e9eb Update faq.rst 2016-11-02 18:08:25 +01:00
b1057c6a5e update German faq.rst 2016-11-02 17:16:57 +01:00
cce77ebc2d update German faq.rst 2016-11-02 17:15:32 +01:00
4b5e95c0e5 Added more info about Doctrine / PHP bug 2016-11-02 17:02:48 +01:00
585fd2a4ad Added documentation about failed to load external entity error
Fix #2529
2016-11-02 16:58:20 +01:00
3be554c78f Merge pull request #2519 from Jibec/master
Translation update - French
2016-11-02 07:48:10 +01:00
e46fdf3096 CS 2016-11-02 07:26:14 +01:00
9c15470691 wallabag is full lowercase 2016-11-02 07:15:24 +01:00
1f66d79e6b Add more importer to wallabag:import command
All importer available expect Pocket which require an oAuth login.
2016-11-02 07:10:57 +01:00
7816eb622d Add entry.saved event to import & rest 2016-11-02 07:10:23 +01:00
be4f6bb4f3 Merge pull request #2528 from Kdecherf/slashdot-cookie
Force user-agent for .slashdot.org
2016-11-01 22:29:43 +01:00
22ef6f96e2 Force user-agent for .slashdot.org
Slashdot replaces actual content with a form regarding cookies when
requests originate from France. By forcing the user-agent, the warning
seems to go away.

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2016-11-01 19:51:45 +01:00
e0597476d1 Use custom event instead of Doctrine ones
This give us ability to use Entry ID to determine where to store images and it’s then more easy to remove them when we remove the entry.
2016-11-01 14:49:02 +01:00
db1d962f7b Merge pull request #2524 from lologhi/instapaper-cli-import
Add Instapaper to CLI import
2016-11-01 14:26:57 +01:00
995d909d0f Add Instapaper to CLI import 2016-11-01 18:33:32 +08:00
303b3c61a7 Translation - French - tiny typo 2016-10-31 20:16:36 +01:00
31dd328df4 Translation - French - tiny escape correction 2016-10-31 20:12:29 +01:00
337b47c216 Translation - French - tiny escape correction 2016-10-31 20:01:07 +01:00
68e0efffb8 Fixed review 2016-10-31 17:20:27 +01:00
3b81212674 Added translations and baggy part 2016-10-31 16:48:34 +01:00
e61ee56031 Added QRCode and link to configure android application 2016-10-31 16:18:52 +01:00
aedd6ca0fd Add translations & migration 2016-10-31 13:29:33 +01:00
e52ee565f7 Merge pull request #2521 from foxmask/master
fix path for  the install scripts
2016-10-31 09:56:07 +01:00
7d9abd1ab5 Merge pull request #2520 from wallabag/config
Inject parameter instead of service
2016-10-31 09:39:53 +01:00
99692e8c33 fix path for in install scripts 2016-10-30 22:46:09 +01:00
038469e73f fix path for in install scripts 2016-10-30 22:38:38 +01:00
d1495dd0a4 Ability to enable/disable downloading images
This will speed up the test suite because it won’t download everything when we add new entry…
Add a custom test with downloading image enabled
2016-10-30 21:30:45 +01:00
e1632cea0e Fix tests 2016-10-30 20:43:37 +01:00
4b3c983ab8 Inject parameter instead of service
We are injecting CraueConfig service when we only need to retrieve one or two values from it.
Instead I discovered we can directly inject a value from a service in the service definition!
2016-10-30 20:27:41 +01:00
309e13c11b Move settings before Entry
Because we need wallabag_url to be defined when we’ll insert entries
2016-10-30 20:12:34 +01:00
41ada277f0 Add instance url to the downloaded images 2016-10-30 19:50:00 +01:00
f74061f1e1 Merge pull request #2518 from wallabag/docs-dev-3rd-party-by-strubbl
docs: fix link to wallabag-stats project
2016-10-30 12:27:25 +01:00
2087e499b4 Translation update - French 2016-10-30 12:11:24 +01:00
f6aff9a7a8 Translation update - French 2016-10-30 12:10:59 +01:00
431d038aa7 Translation update - French 2016-10-30 12:10:14 +01:00
a0eddc598e Translation update - French 2016-10-30 12:09:08 +01:00
90ec78f05a docs: fix link to wallabag-stats project 2016-10-30 12:01:24 +01:00
48656e0eaa Fixing tests 2016-10-30 11:27:09 +01:00
7f55941856 Use doctrine event to download images 2016-10-30 10:48:29 +01:00
45fd7e09d7 Cleanup 2016-10-30 09:58:53 +01:00
535bfcbe80 Move related event things in Event folder 2016-10-30 09:58:39 +01:00
2a2ceceaa4 Merge pull request #2514 from wallabag/docs-dev-3rd-party-by-strubbl
docs: update 3rd party projects by Strubbl
2016-10-30 07:04:11 +01:00
a40b2b7ee4 docs: update 3rd party projects by Strubbl 2016-10-29 19:59:05 +02:00
156bf62758 CS 2016-10-29 16:25:45 +02:00
94654765cc Working 2016-10-29 16:25:45 +02:00
419214d722 Download pictures successfully
Needs to rewrite them properly (get base url)
2016-10-29 16:25:45 +02:00
4dface6670 first draft (from v1) 2016-10-29 16:25:45 +02:00
ca9858537e Merge pull request #2513 from wallabag/update-capistrano-config
Updated Capistrano configuration
2016-10-29 15:36:58 +02:00
c4b3933bae Updated Capistrano configuration 2016-10-29 14:39:07 +02:00
67b270d996 Merge pull request #2506 from wallabag/fix-export-with-tags
Fixed entries export filtered with a tag
2016-10-29 14:27:46 +02:00
794ac861cb Added test for export by filtering with tag 2016-10-29 14:03:55 +02:00
920d88599a Fixed entries export filtered with a tag
Fix #2505
2016-10-29 13:43:11 +02:00
5feef9f7a4 Merge pull request #2499 from wallabag/add-relation-client-user
Added relation between API Client and User
2016-10-29 13:20:55 +02:00
267087d969 Merge pull request #2509 from wallabag/explode-api-controller
Exploded WallabagRestController into many controllers
2016-10-29 13:20:01 +02:00
bc4564a709 Removed useless route 2016-10-28 15:24:58 +02:00
900c844861 Exploded WallabagRestController into many controllers
Fix #2503
2016-10-28 14:46:30 +02:00
f08ec5f88a Remove backquote in query 2016-10-28 11:14:14 +02:00
f24ea59ea4 Fixed migration and added tests 2016-10-28 10:55:39 +02:00
eca4d030bf Merge pull request #2508 from wallabag/fix-redis-rabbit-doc
Added the whole path to parameters.yml file
2016-10-27 16:53:57 +02:00
37da178696 Added the whole path to parameters.yml file 2016-10-27 14:46:21 +02:00
069d39dfaf Merge pull request #2507 from wallabag/add-check-makefile
Added require.sh to check if composer is installed
2016-10-27 13:55:17 +02:00
c4d9a8d6d0 Usage of composer.phar if it's found 2016-10-27 10:09:43 +02:00
9998c72533 Added require.sh to check if composer is installed 2016-10-27 09:53:09 +02:00
f3b637fbfe Merge pull request #2500 from wallabag/add-check-composer
Added a check in Makefile to see if composer is installed
2016-10-27 07:30:50 +02:00
a5d6a7d8b5 Merge pull request #2504 from wallabag/change-page-title-filter-tags
Added tag label in the page title
2016-10-26 16:09:37 +02:00
73e8df9e44 Renamed variable for page title 2016-10-26 15:49:44 +02:00
7a5043f187 Added tag label in the page title
Fix #2472
2016-10-26 13:53:23 +02:00
c68720d40e Merge pull request #2473 from pmichelazzo/master
Portuguese (Brazilian) translation
2016-10-25 11:41:24 +02:00
e8eec07ae6 Translated missed line 147 2016-10-25 07:25:08 -02:00
c5ad143e75 Added a check in Makefile to see if composer is installed
Fix #2498
2016-10-24 22:28:44 +02:00
23406ca3f1 Added relation between API Client and User
Fix #2062
2016-10-24 21:56:28 +02:00
e1d4ed2d81 Merge pull request #2493 from bmillemathias/add_link_content_fetch_problem
Add relevant links to fetch content error page
2016-10-24 21:44:22 +02:00
d36e5e20a5 Removed the email part 2016-10-24 21:01:13 +02:00
8e58be9fb6 Merge pull request #2496 from wallabag/mruminski-patch-1
Update messages.pl.yml
2016-10-24 20:19:53 +02:00
cd99bfae68 Update messages.pl.yml
translate reset section to polish
2016-10-24 19:49:33 +02:00
64a8781e45 Merge remote-tracking branch 'origin/master' into 2.2 2016-10-24 12:03:17 +02:00
9313ea9d44 Merge pull request #2401 from wallabag/reset-account
Reset account
2016-10-24 11:57:51 +02:00
f623516e10 SQLite should use utf8, not utf8mb4 2016-10-24 10:10:38 +02:00
a1c1841828 Merge pull request #1890 from wallabag/v2-api-annotation-switched
bring annotations to API
2016-10-24 10:06:12 +02:00
d1b075509d Add relevant links to fetch content error pages.
We link to the troubleshooting guide and give the mail link.
2016-10-23 15:34:52 +02:00
5ce1528953 Fix migrations 2016-10-23 12:35:57 +02:00
c64b4941d5 Merge pull request #2486 from wallabag/translate-backup-doc
Added 🇫🇷 documentation for wallabag backup
2016-10-22 22:23:15 +02:00
2ca1cc0c18 Translate backup.rst to German 2016-10-22 21:11:20 +02:00
67aa755fb5 Added 🇫🇷 documentation for wallabag backup 2016-10-22 14:16:17 +02:00
88d5d94dcb Lowercase wallabag 2016-10-22 14:05:59 +02:00
5751b41491 Add migration for MySQL utf8mb4 2016-10-22 14:01:58 +02:00
f69636c4db Merge pull request #2484 from bmillemathias/fix_2479
Document what to backup in Wallabag
2016-10-22 13:55:46 +02:00
fc79f1ffa8 Add verification check for MySQL version
Must now be >= 5.5.4
2016-10-22 13:41:03 +02:00
f7f6bfb7e9 Merge pull request #2485 from bmillemathias/fix_android_documentation
Fix missing words in Android application documentation
2016-10-22 13:31:14 +02:00
1e7807e703 Merge pull request #2456 from wallabag/use-new-pdf
use new tcpdf library version
2016-10-22 13:29:58 +02:00
89abc0b61b Add missing words in the documentation 2016-10-22 13:21:53 +02:00
b0de88f75d Use statements & update translation 2016-10-22 13:13:07 +02:00
8c61fd12b1 CS 2016-10-22 13:13:07 +02:00
ca8b49f46e Add baggy reset part 2016-10-22 13:13:07 +02:00
f71e55ac88 Avoid orphan tags 2016-10-22 13:13:07 +02:00
2f82e7f8e1 Cleanup subscriber / listener definition 2016-10-22 13:13:07 +02:00
191564b7f7 Add custom doctrine subscriber for SQLite
Since SQLite doesn’t handle cascade remove by default, we need to handle it manually.

Also some refacto
2016-10-22 13:13:07 +02:00
98efffc2a6 Fix emoji insertion in MySQL
Switch to utf8mb4 instead of utf8 because f*** MySQL
See https://github.com/doctrine/dbal/pull/851
2016-10-22 13:13:07 +02:00
206bade58a Add ability to reset some datas
- annotations
- tags
- entries
2016-10-22 13:13:06 +02:00
817724a7b8 Re-add bottom pagination
Also pager.html.twig wasn’t necessary, there weren't enough duplication to put them in a dedicated template
2016-10-22 13:09:16 +02:00
ab61dbc073 remove padding on small widths
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2016-10-22 13:08:12 +02:00
34aa06a9b9 WIP
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2016-10-22 13:08:04 +02:00
af2ff7c6da use new tcpdf library version 2016-10-22 12:52:23 +02:00
aa4741091f Add test on /api/annotations
Fix controller forward in WallabagRestController.
Update PHPDoc so it is sorted the same way as others one
Duplicate all annotations test to use both api & normal way
Also, make annotation tests independent to each other
2016-10-22 12:09:20 +02:00
3199ec4702 CS 2016-10-22 09:17:01 +02:00
fc75009de7 Document what to backup in Wallabag
Fixes issue #2479
2016-10-22 09:14:07 +02:00
d9b7768dca Added a missing namespace 2016-10-22 09:06:07 +02:00
e5edb6e127 PHP CS 2016-10-22 09:06:07 +02:00
0c271b9eb0 fix cs and phpdoc 2016-10-22 09:06:07 +02:00
b1e92f8c14 cs 2016-10-22 09:06:07 +02:00
1eea248bb0 move code 2016-10-22 09:06:07 +02:00
c7935f32d2 cs 2016-10-22 09:06:07 +02:00
351eb8d97e bring annotations to API 2016-10-22 09:06:07 +02:00
e8331dd9e7 Merge pull request #2453 from wallabag/fix-api-export
Fix API export
2016-10-21 15:22:11 +02:00
f99ddbc6f8 Merge pull request #2481 from wallabag/some-fixes
Some fixes
2016-10-21 15:15:41 +02:00
49dee2d2de Merge pull request #2482 from wallabag/avoid-bad-refresh
If reload content failed, don’t update it
2016-10-21 15:12:29 +02:00
b64d8f2c9f Update Twitter cards description 2016-10-21 10:51:20 +02:00
2cbf0d05d4 Update translation for piwik_host 2016-10-21 10:45:39 +02:00
645dc7594b Fix missing translations 2016-10-21 07:52:55 +02:00
818cbe1fee Fix Portuguese translation 2016-10-21 07:18:41 +02:00
8e53bf3aa1 Update translation 2016-10-21 00:12:53 +02:00
f6798f69c3 This test doesn’t require an internet connection 2016-10-20 23:26:16 +02:00
9095497191 Fix test 2016-10-20 23:03:37 +02:00
2297d60f10 If reload content failed, don’t update it
In case user wants a fresh version of the current one and the website isn’t available, don’t erase it with a boring message saying wallabag wasn’t able to refresh the content.
2016-10-20 22:49:46 +02:00
5453500458 Requeue depending on producer
Browser import can requeue message from `parseEntry` but we should take care of the way import are handled (depending on the producer)
2016-10-20 21:17:45 +02:00
1e3d74a9cf Avoid RabbitMQ consumer to loop
When the `parseEntry` returns null it means the entry already exists in the database. Sending `false` as return, will requeue the message which will then loop forever.
2016-10-20 21:17:03 +02:00
576d285ddf Translate date
I use a kind of hacky way to convert the user locale (defined with 2 letters, like `fr`) into a local with 5 letters (like `fr_FR`). I guess it should work on most of the case..
2016-10-20 21:16:01 +02:00
166e8cc6a9 Fix french translation 2016-10-20 21:14:46 +02:00
1cad9416c9 Update Portuguese translations 2016-10-20 21:11:10 +02:00
b669224762 Validate ALL translations files 2016-10-20 21:11:09 +02:00
a42cc6ff89 Update validators.pt.yml file
Some missed strings translated.
2016-10-20 08:57:24 +02:00
5d6cffedb1 Update Portuguese (Brazilian) translation
Adding the config.yml on the package.
2016-10-19 19:25:48 +02:00
99731f0bb1 Merge remote-tracking branch 'wallabag/master' 2016-10-18 22:48:23 +02:00
3a3c6b866b Portuguese (Brazilian) translation
This the Portuguese (Brazilian) for the Wallaby v2.
2016-10-18 20:51:31 +02:00
7180aaed45 Merge pull request #2467 from wallabag/version-213dev
Update wallabag version for master branch
2016-10-17 11:57:52 +02:00
f31361a6d9 Update wallabag version for master branch 2016-10-17 11:56:29 +02:00
fd461c25aa Merge pull request #2466 from wallabag/fix-update-doc
Removed MD5 hash in documentation
2016-10-17 11:40:03 +02:00
39c3dd30d2 Removed MD5 hash in documentation 2016-10-17 11:38:11 +02:00
5960aa1ffc CS 2016-10-15 18:00:08 +02:00
f1c3f68e90 ApiDoc & Route annotation were conflicted
The generated error was “Unable to guess how to get a Doctrine instance from the request information.”.

I haven’t checked deeper in Doctrine (I know it was coming from the DoctrineParamConverter).

Anyway, I check for FosRest possiblity to add extra format without allowing them for every route (like it was done in the first place).

I finally found a way but it then seems all request goes to the FormatListener of FosRest so I needed to add a custom rules to match all request to be sure we don’t get  a 406 error from FosRest.

Should be ok now …
2016-10-15 16:46:42 +02:00
6147736868 Merge pull request #2438 from wallabag/mruminski-patch-1
Update messages.pl.yml
2016-10-12 20:01:13 +02:00
fa100dd1e0 Update messages.pl.yml
translate delete section to polish
2016-10-12 19:32:30 +02:00
b1b561da51 Merge pull request #2372 from pmartin/api-get-entry-as-epub
API: ability to export entry in all available format (epub, pdf, etc...)
2016-10-12 14:06:33 +02:00
e4cf672ccf Merge remote-tracking branch 'origin/master' into 2.2 2016-10-11 21:01:30 +02:00
e57df5611f Merge pull request #2409 from wallabag/Quent-in-patch-1
Occitan version update
2016-10-11 18:18:29 +02:00
a9e4d6dad2 Update messages.oc.yml
I thought I had translated the Docker installation line, apparently not!
Thanks Nicolas for the other changes!
2016-10-10 20:01:25 +02:00
c26d1285ba Fixed review 2016-10-10 10:05:50 +02:00
418626e836 Merge pull request #2177 from wallabag/delete-account
Delete user
2016-10-09 21:21:03 +02:00
dd248e4561 Occitan version update
If you need to write dates in full letter you might be interessed in https://github.com/fightbulc/moment.php
It comes with lots of languages ;)
Q: where are the "previous" and "next" bouton text? Can't find them to translate them.
2016-10-09 18:24:42 +02:00
9810f30821 Remove unnecessary user serialization 2016-10-08 21:16:40 +02:00
7ac3e575f1 CS 2016-10-08 20:35:16 +02:00
a730cae384 Bonus: display driver in install command 2016-10-08 20:33:21 +02:00
3f60446756 Fix PostgreSQL query
PostgreSQL doesn’t like when we compare interger and boolean :)
2016-10-08 20:26:06 +02:00
876d77a67d Better display and description
Confirmation message isn’t required since it is written in the delete description
2016-10-08 20:25:42 +02:00
eed812afd0 Logout user before deleting it
And add a smal description
2016-10-08 19:39:12 +02:00
c3396c65ef Fix some tests 2016-10-08 14:07:13 +02:00
b840268711 Added a test to check if entries are also deleted 2016-10-08 13:27:18 +02:00
71254701b7 Changed tests 2016-10-08 13:27:18 +02:00
821bb87685 Added tests 2016-10-08 13:27:18 +02:00
bb0c78f4a6 Added check if there is only one user
Added translations and documentation
2016-10-08 13:27:18 +02:00
abb5291cd5 CS 2016-10-08 13:27:17 +02:00
e4b46f77ef work 2016-10-08 13:27:17 +02:00
3f3a60879e Add entry export in API
Export isn't available for json & xml because user can use the default
entry endpoint instead.
2016-10-08 12:59:19 +02:00
24de866534 API: getEntry can return EPUB 2016-10-08 12:05:41 +02:00
3d4b0b3064 Routing: epub format is allowed for API 2016-10-08 12:05:40 +02:00
406 changed files with 24972 additions and 5425 deletions

View File

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

View File

@ -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}]

View File

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

7
.gitignore vendored
View File

@ -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
@ -50,3 +51,7 @@ bin
app/Resources/build/
!/src/Wallabag/CoreBundle/Resources/public
/src/Wallabag/CoreBundle/Resources/public/*
# Test-generated files
admin-export.json
specialexport.json

View File

@ -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;
@ -70,9 +68,11 @@ before_install:
- if [[ $TRAVIS_REPO_SLUG = wallabag/wallabag ]]; then cp .composer-auth.json ~/.composer/auth.json; fi;
script:
- travis_wait bash composer install -o --no-interaction --no-progress --prefer-dist
- travis_wait 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 src/Wallabag/UserBundle/Resources/translations -v ; fi;
- if [[ $ASSETS = build ]]; then ./node_modules/grunt-cli/bin/grunt tests; fi;

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -7,6 +7,8 @@ require 'capistrano/setup'
# Include default deployment tasks
require 'capistrano/deploy'
require 'capistrano/composer'
require 'capistrano/file-permissions'
require 'capistrano/symfony'
# Load custom tasks from `lib/capistrano/tasks` if you have any defined

View File

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

View File

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

View File

@ -189,8 +189,11 @@ module.exports = function (grunt) {
},
stylelint: {
target: ['<%= appDir %>/themes/material/css/*.css', '<%= appDir %>/themes/baggy/css/*.css']
},
watch: {
files: ['<%= appDir %>/**/*.css', '<%= appDir %>/**/*.js'],
tasks: ['css', 'js']
}
});
grunt.registerTask(
@ -221,5 +224,7 @@ module.exports = function (grunt) {
'tests',
'Test css and js style conformity',
['eslint', 'stylelint', 'default']
)
),
grunt.loadNpmTasks('grunt-contrib-watch');
};

View File

@ -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
@ -41,6 +40,6 @@ travis: ## Make some stuff for Travis-CI
deploy: ## Deploy wallabag
@bundle exec cap staging deploy
.PHONY: help clean install update build test release travis deploy
.PHONY: help clean install update build test release travis deploy run dev
.DEFAULT_GOAL := install

View File

@ -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).
![wallabag logo](https://raw.githubusercontent.com/wallabag/logo/master/_default/typo-horizontal/png/sm/logo-typo-horizontal-black-no-bg-no-border-sm.png)
# Install wallabag
@ -22,6 +24,6 @@ make run
```
# License
Copyright © 2013-2016 Nicolas Lœuillet <nicolas@loeuillet.org>
Copyright © 2013-2017 Nicolas Lœuillet <nicolas@loeuillet.org>
This work is free. You can redistribute it and/or modify it under the
terms of the MIT License. See the COPYING file for more details.

View File

@ -9,7 +9,7 @@ During this documentation, we assume the release is `$LAST_WALLABAG_RELEASE`.
#### Files to edit
- `app/config/config.yml` (`wallabag_core.version`)
- `CHANGELOG.md` (by using this command `github_changelog_generator --no-compare-link --header-label="# Changelog" --no-issues --no-pr-wo-labels --since-tag="1.9.2"`. [github-changelog-generator is available here](https://github.com/skywinder/github-changelog-generator))
- `CHANGELOG.md` (by using this command `github-changes -o wallabag -r wallabag -k YOURGITHUBTOKEN --only-pulls --use-commit-body --title Changelog --date-format YYYY/MM/DD --between-tags 2.0.0-alpha.0...master -n 2.1.3`. [github-changes is available here](https://github.com/lalitkapoor/github-changes))
#### Create release on GitHub
@ -20,7 +20,20 @@ git checkout master
git pull origin master
git checkout -b release-$LAST_WALLABAG_RELEASE
SYMFONY_ENV=prod composer up --no-dev
git add --force composer.lock
```
- Update `.travis.yml` file and replace the composer line with this one:
```diff
script:
- - travis_wait bash composer install -o --no-interaction --no-progress --prefer-dist
+ - travis_wait composer update --no-interaction --no-progress
```
- Then continue with these commands:
```
git add --force composer.lock .travis.yml
git commit -m "Release wallabag $LAST_WALLABAG_RELEASE"
git push origin release-$LAST_WALLABAG_RELEASE
```
@ -34,7 +47,7 @@ make release master /tmp wllbg-release prod
- [Create the new release on GitHub](https://github.com/wallabag/wallabag/releases/new). You have to upload on this page the package.
- Delete the `release-$LAST_WALLABAG_RELEASE` branch and close the pull request (**DO NOT MERGE IT**).
- Update the URL shortener (used on `wllbg.org` to generate links like `http://wllbg.org/latest-v2-package` or `http://wllbg.org/latest-v2`)
- Update the URL shortener (used on `wllbg.org` to generate links like `https://wllbg.org/latest-v2-package` or `http://wllbg.org/latest-v2`)
- Update [the downloads page](https://github.com/wallabag/wallabag.org/blob/master/content/pages/download.md) on the website (MD5 sum, release date)
- Update Dockerfile https://github.com/wallabag/docker (and create a new tag)
- Update wallabag.org website (downloads, releases and new blog post)

View File

@ -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(),

View File

@ -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'");
}
}

View File

@ -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');
}
}

View File

@ -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';");
}
}

View File

@ -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')");
}
}

View 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 ...');
}
}

View 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;');
}
}

View 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);
}
}
}

View 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';");
}
}

View 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);
}
}

View 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');
}
}

View 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';");
}
}

View 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');
}
}

View 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';");
}
}

View 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]);
}
}

View 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');
}
}

View 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]);
}
}
}

View 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');
}
}
}

View 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);
}
}

View 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);
}
}

View File

@ -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
@ -23,9 +25,11 @@ export: "eksport"
import: "import"
misc: "misc"
modify_settings: "Gem ændring"
piwik_host: Hosting af din side hos Piwik
piwik_host: Hosting af din side hos Piwik (uden http:// eller https://)
piwik_site_id: ID for din side hos Piwik
piwik_enabled: Aktiver Piwik
demo_mode_enabled: "Aktiver demo-indstilling? (anvendes kun til wallabags offentlige demo)"
demo_mode_username: "Demobruger"
# share_public: Allow public url for entries
# download_images_enabled: Download images locally
# restricted_access: Enable authentication for websites with paywall

View File

@ -1,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
@ -23,9 +25,11 @@ export: "Export"
import: "Import"
misc: "Verschiedenes"
modify_settings: "Übernehmen"
piwik_host: Host deiner Webseite in Piwik
piwik_host: Host deiner Webseite in Piwik (ohne http:// oder https://)
piwik_site_id: ID deiner Webseite in Piwik
piwik_enabled: Piwik aktivieren
demo_mode_enabled: "Test-Modus aktivieren? (nur für die öffentliche wallabag-Demo genutzt)"
demo_mode_username: "Test-Benutzer"
share_public: Erlaube eine öffentliche URL für Einträge
# download_images_enabled: Download images locally
# restricted_access: Enable authentication for websites with paywall

View File

@ -1,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
@ -23,9 +25,11 @@ export: "export"
import: "import"
misc: "misc"
modify_settings: "apply"
piwik_host: Host of your website in Piwik
piwik_host: Host of your website in Piwik (without http:// ou https://)
piwik_site_id: ID of your website in Piwik
piwik_enabled: Enable Piwik
demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
demo_mode_username: "Demo user"
share_public: Allow public url for entries
download_images_enabled: Download images locally
restricted_access: Enable authentication for websites with paywall

View File

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

View File

@ -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 *شما*
@ -23,9 +25,11 @@ export: "برون‌سپاری"
import: "درون‌ریزی"
misc: "غیره"
modify_settings: "اعمال"
# piwik_host: Host of your website in Piwik
# piwik_host: Host of your website in Piwik (without http:// or https://)
# piwik_site_id: ID of your website in Piwik
# piwik_enabled: Enable Piwik
# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
# demo_mode_username: "Demo user"
# share_public: Allow public url for entries
# download_images_enabled: Download images locally
# restricted_access: Enable authentication for websites with paywall

View File

@ -1,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
@ -23,9 +25,11 @@ export: "export"
import: "import"
misc: "divers"
modify_settings: "appliquer"
piwik_host: URL de votre site dans Piwik
piwik_host: URL de votre site dans Piwik (sans http:// ou https://)
piwik_site_id: ID de votre site dans Piwik
piwik_enabled: Activer Piwik
demo_mode_enabled: "Activer le mode démo ? (utiliser uniquement pour la démo publique de wallabag)"
demo_mode_username: "Utilisateur de la démo"
share_public: Autoriser une URL publique pour les articles
download_images_enabled: Télécharger les images en local
restricted_access: Activer l'authentification pour les articles derrière un paywall

View File

@ -1,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
@ -23,9 +25,11 @@ export: "esporta"
import: "importa"
misc: "misc"
modify_settings: "applica"
piwik_host: Host del tuo sito in Piwik
piwik_host: Host del tuo sito in Piwik (senza http:// o https://)
piwik_site_id: ID del tuo sito in Piwik
piwik_enabled: Abilita Piwik
demo_mode_enabled: "Abilita modalità demo ? (usato solo per la demo pubblica di wallabag)"
demo_mode_username: "Utente Demo"
# share_public: Allow public url for entries
# download_images_enabled: Download images locally
# restricted_access: Enable authentication for websites with paywall

View File

@ -1,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
@ -23,9 +25,11 @@ export: "expòrt"
import: "impòrt"
misc: "divèrs"
modify_settings: "aplicar"
piwik_host: URL de vòstre site dins Piwik
piwik_host: URL de vòstre site dins Piwik (sense http:// o https://)
piwik_site_id: ID de vòstre site dins Piwik
piwik_enabled: Activar Piwik
demo_mode_enabled: "Activar lo mode demostracion ? (utilizar solament per la demostracion publica de wallabag)"
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

View File

@ -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"
piwik_host: Host twojej strony Piwik
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

View File

@ -0,0 +1,35 @@
# settings_changed: Configuration updated
download_pictures: Download imagens no seu servidor
carrot: Habilitar compartilhamento para o Carrot
diaspora_url: URL Diaspora, se o serviço está habilitado
export_epub: Habilita exportação para ePub
export_mobi: Habilita exportação para .mobi
export_pdf: Habilita exportação para PDF
export_csv: Habilita exportação para CSV
export_json: Habilita exportação para JSON
export_txt: Habilita exportação para TXT
export_xml: Habilita exportação para XML
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
# import_with_redis: Enable Redis to import data asynchronously
shaarli_url: URL Shaarli, se o serviço está habilitado
share_diaspora: Habilitar compartilhamento para o Diaspora
share_mail: Habilitar compartilhamento por e-mail
share_shaarli: Habilitar compartilhamento para o Shaarli
share_twitter: Habilitar compartilhamento para o Twitter
share_unmark: Habilitar compartilhamento para o Unmark.it
show_printlink: Mostrar um link para imprimir o conteúdo
wallabag_support_url: URL de Suporte do wallabag
wallabag_url: URL de *sua* instância do wallabag
entry: "artigo"
export: "exportar"
import: "importar"
misc: "misc"
modify_settings: "aplicar"
piwik_host: Host de seu website Piwik
piwik_site_id: ID de seu website Piwik
piwik_enabled: Habilitar Piwik
demo_mode_enabled: "Habilitar modo demo? (somente usado para o demo público do wallabag)"
demo_mode_username: "Usuário demo"
# share_public: Allow public url for entries
# download_images_enabled: Download images locally
# restricted_access: Enable authentication for websites with paywall

View File

@ -1,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
@ -23,9 +25,11 @@ export: "exportă"
import: "importă"
misc: "diverse"
modify_settings: "aplică"
# piwik_host: Host of your website in Piwik
# piwik_host: Host of your website in Piwik (without http:// or https://)
# piwik_site_id: ID of your website in Piwik
# piwik_enabled: Enable Piwik
# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
# demo_mode_username: "Demo user"
# share_public: Allow public url for entries
# download_images_enabled: Download images locally
# restricted_access: Enable authentication for websites with paywall

View File

@ -1,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
@ -23,9 +25,11 @@
# import: "import"
# misc: "misc"
# modify_settings: "apply"
# piwik_host: Host of your website in Piwik
# piwik_host: Host of your website in Piwik (without http:// or https://)
# piwik_site_id: ID of your website in Piwik
# piwik_enabled: Enable Piwik
# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
# demo_mode_username: "Demo user"
# share_public: Allow public url for entries
# download_images_enabled: Download images locally
# restricted_access: Enable authentication for websites with paywall

View File

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

View File

@ -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."

View File

@ -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."

View File

@ -1,2 +0,0 @@
Login: "Se connecter"
Enter your email address below and we'll send you password reset instructions.: "Renseignez votre adresse email, nous vous enverrons les instructions pour réinitialiser votre mot de passe."

View File

@ -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."

View File

@ -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."

Binary file not shown.

After

Width:  |  Height:  |  Size: 926 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

View File

@ -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" />' +

View 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'); });

View File

@ -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' });
}
}

View File

@ -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 {
@ -413,7 +409,8 @@ footer a {
margin-bottom: 2em;
}
.estimatedTime .reading-time {
.reading-time,
.created-at {
color: #999;
font-style: italic;
font-weight: normal;
@ -581,13 +578,13 @@ img.preview {
div.pagination ul {
text-align: right;
margin-bottom: 50px;
}
.nb-results {
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");

View File

@ -5,4 +5,4 @@ function extractLast(term) {
return split(term).pop();
}
export { split, extractLast };
export default { split, extractLast };

View File

@ -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');

View 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();
});
}
});

View File

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

View File

@ -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;

View File

@ -17,12 +17,11 @@
0 = Common
========================================================================== */
@font-face {
font-family: icomoon;
src: url("../fonts/IcoMoon-Free.ttf");
font-weight: normal;
font-style: normal;
}
/**
*
* Material icons
*
*/
@font-face {
font-family: 'Material Icons';
@ -62,6 +61,33 @@
font-feature-settings: 'liga';
}
/* Rules for sizing the icon. */
.material-icons.md-18 { font-size: 18px; }
.material-icons.md-24 { font-size: 24px; }
.material-icons.md-36 { font-size: 36px; }
.material-icons.md-48 { font-size: 48px; }
/* Rules for using icons as black on a light background. */
.material-icons.md-dark { color: rgba(0, 0, 0, 0.54); }
.material-icons.md-dark.md-inactive { color: rgba(0, 0, 0, 0.26); }
/* Rules for using icons as white on a dark background. */
.material-icons.md-light { color: rgba(255, 255, 255, 1); }
.material-icons.md-light.md-inactive { color: rgba(255, 255, 255, 0.3); }
/**
*
* Icomoon icons
*
*/
@font-face {
font-family: icomoon;
src: url("../fonts/IcoMoon-Free.ttf");
font-weight: normal;
font-style: normal;
}
[class^="icon-"]::before,
[class*=" icon-"]::before {
font-family: icomoon;
@ -124,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");
@ -133,7 +164,7 @@ body {
display: flex;
min-height: 100vh;
flex-direction: column;
background: #f0f0f0;
background: #fafafa;
}
body.login main {
@ -163,7 +194,6 @@ main,
.results {
height: 1em;
line-height: 30px;
}
.results .nb-results,
@ -172,6 +202,14 @@ main,
margin-bottom: 0;
}
.results .nb-results {
display: inline-flex;
}
.results a {
color: #444;
}
.pagination {
float: right;
}
@ -207,8 +245,17 @@ div.pagination ul .next.disabled {
color: #fff;
}
.page-footer .footer-copyright {
min-width: 50px;
height: auto !important;
line-height: 1em !important;
}
.page-footer .footer-copyright p {
display: inline;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
display: block;
}
.hidden {
@ -236,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;
}
@ -244,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 {
@ -282,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;
@ -305,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;
}
/* ==========================================================================
@ -376,7 +441,6 @@ nav ul a:hover {
.side-nav.fixed.right-aligned {
right: -250px;
left: auto !important;
overflow-y: visible;
}
#filters div.with-checkbox {
@ -397,13 +461,23 @@ main ul.row {
}
.data .card .card-body {
height: 22em;
height: 19em;
overflow: hidden;
}
.card .card-content .card-title {
line-height: 32px;
max-height: 64px;
.card .card-content .card-title,
.card .card-reveal .card-title {
line-height: 22.8px;
max-height: 80px;
font-size: 19px;
font-family: roberto, "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #313131;
}
.card .card-content .activator,
.card .card-reveal .activator {
cursor: pointer;
font-family: "Material Icons";
}
.card .card-content i.right,
@ -411,6 +485,18 @@ main ul.row {
margin-left: 0;
}
.card .card-content .original {
line-height: 24px;
font-size: 15px;
}
a.original {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
display: block;
}
.card .card-entry-labels {
position: absolute;
top: 10px;
@ -433,7 +519,7 @@ main ul.row {
}
.card .card-entry-labels-hidden {
margin-top: 5px;
margin: 2.5px auto;
}
.card .card-entry-labels-hidden li {
@ -450,6 +536,10 @@ main ul.row {
white-space: nowrap;
}
.card .card-entry-labels-hidden li:first-child {
margin-left: 0;
}
.card-entry-tags a,
.card-entry-labels a,
.card-tag-labels a,
@ -464,8 +554,8 @@ main ul.row {
margin-bottom: 10px;
}
.card .card-action .original {
line-height: 24px;
.card .card-action {
padding: 10px 5px 10px 15px;
}
.card .card-action ul.links {
@ -474,6 +564,18 @@ main ul.row {
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;
@ -483,6 +585,11 @@ main ul.row {
color: #fff;
}
.card .card-action .reading-time {
display: inline-flex;
vertical-align: middle;
}
.quickstart .card .card-action a,
.quickstart .card .card-action a:hover {
color: #fff !important;
@ -499,10 +606,15 @@ main ul.row {
}
.card .card-image {
height: 14em;
height: 10em;
}
.card .card-image .preview {
.card .card-fullimage {
height: 13.5em;
}
.card .card-image .preview,
.card .card-fullimage .preview {
height: 14em;
background-size: cover;
background-repeat: no-repeat;
@ -516,7 +628,55 @@ main ul.row {
#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,
@ -525,8 +685,49 @@ main ul.row {
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: 1.6em;
font-size: 2em;
margin: 2.1rem 0 0.68rem;
}
.reader-mode {
@ -565,9 +766,20 @@ main ul.row {
z-index: 9999;
}
#article aside .link {
color: #000;
#article aside .tools {
font-size: 0.8em;
display: flex;
flex-flow: row wrap;
margin: 0 auto;
}
article aside .tools li {
display: inline-flex;
vertical-align: middle;
}
#article aside .tools a {
color: #000;
text-decoration: none;
}
@ -578,10 +790,11 @@ main ul.row {
#article aside .chip {
background-color: rgba(0, 151, 167, 0.85);
color: #fff;
padding: 0 15px 0 10px;
margin: auto 2px;
}
#article aside .chip a,
#article aside .chip i {
color: #fff;
}
@ -607,8 +820,15 @@ main ul.row {
width: auto;
}
.nav-panels .action {
padding-right: 0.75rem;
}
.nav-panel-buttom {
justify-content: space-around;
}
#article {
padding: 15px;
max-width: 35em;
margin-left: auto;
margin-right: auto;
@ -644,15 +864,24 @@ main ul.row {
.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%;
}
}
@media only screen and (min-width: 993px) and (max-width: 1180px) {
@media only screen and (min-width: 1200px) and (max-width: 1650px) {
.row .col.l3 {
width: 33.33333%;
margin-left: 0;
}
}
@media only screen and (min-width: 993px) and (max-width: 1200px) {
.row .col.l1 {
width: 25%;
margin-left: 0;
@ -708,6 +937,14 @@ main ul.row {
.nb-results {
display: none;
}
main ul.row {
padding: 0;
}
.row .col {
padding: 0;
}
}
/* ==========================================================================

View File

@ -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', () => {

View 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();
});
}
});

View 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');
});
});

View File

@ -1,9 +1,4 @@
# config valid only for current version of Capistrano
lock '3.4.0'
set :log_path, "var/logs"
set :cache_path, "var/cache"
set :symfony_console_path, 'bin/console'
set :application, 'wallabag'
set :repo_url, 'git@github.com:wallabag/wallabag.git'
@ -11,8 +6,6 @@ set :repo_url, 'git@github.com:wallabag/wallabag.git'
set :ssh_user, 'framasoft_bag'
server '78.46.248.87', user: fetch(:ssh_user), roles: %w{web app db}
set :scm, :git
set :format, :pretty
set :log_level, :info
# set :log_level, :debug
@ -23,4 +16,4 @@ set :linked_files, %w{app/config/parameters.yml}
set :linked_dirs, [fetch(:log_path), "var/sessions", "web/uploads", "data"]
set :keep_releases, 3
after 'deploy:finishing', 'deploy:cleanup'
after 'deploy:updated', 'symfony:cache:clear'

View File

@ -30,7 +30,7 @@ framework:
assets: ~
wallabag_core:
version: 2.1.2
version: 2.2.3
paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
languages:
en: 'English'
@ -44,12 +44,17 @@ wallabag_core:
es: 'Español'
oc: 'Occitan'
it: 'Italiano'
pt: 'Português'
items_on_page: 12
theme: material
language: '%locale%'
rss_limit: 50
reading_speed: 1
cache_lifetime: 10
action_mark_as_read: 1
list_mode: 1
fetching_error_message: |
wallabag can't retrieve contents for this article. Please <a href="http://doc.wallabag.org/en/master/user/errors_during_fetching.html#how-can-i-help-to-fix-that">troubleshoot this issue</a>.
wallabag_user:
registration_enabled: "%fosuser_registration%"
@ -75,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
@ -112,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:
@ -126,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:
@ -182,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
@ -189,7 +220,9 @@ 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
scheb_two_factor:
trusted_computer:
@ -205,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:
@ -238,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:
@ -272,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:
@ -280,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:
@ -288,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:
@ -296,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:
@ -304,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:
@ -312,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:
@ -320,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

View File

@ -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:

View File

@ -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: {}

View File

@ -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

View File

@ -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"

View File

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

View File

@ -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 }

View File

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

View File

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

View File

@ -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
View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="wallabag" default="build">
<target name="build" depends="clean,prepare,phpunit"/>
<target name="prepare-mysql" depends="clean,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">

View File

@ -43,52 +43,53 @@
"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",
"nelmio/cors-bundle": "~1.4.0",
"friendsofsymfony/rest-bundle": "~1.4",
"jms/serializer-bundle": "~1.0",
"friendsofsymfony/rest-bundle": "~2.1",
"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": "1.0.0-beta1"
},
"require-dev": {
"doctrine/doctrine-fixtures-bundle": "~2.2",
"doctrine/data-fixtures": "~1.1.1",
"sensio/generator-bundle": "^3.0",
"phpunit/phpunit": "~5.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": "relative",
"incenteev-parameters": {
"file": "app/config/parameters.yml"
}
@ -125,7 +128,10 @@
"psr-4": { "Tests\\": "tests/" }
},
"config": {
"bin-dir": "bin"
"bin-dir": "bin",
"platform": {
"php": "5.5.9"
}
},
"minimum-stability": "dev",
"prefer-stable": true

6797
composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

25
data/sql/mysql_base.sql Normal file
View 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
View 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
View 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);

View File

@ -1,4 +1,4 @@
API DoKumentation
API Dokumentation
=================
Dank dieser Dokumentation werden wir sehen, wie wir mit der wallabag API interagieren.
@ -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,7 +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/wallabag-java>`_ 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 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.

View File

@ -0,0 +1,159 @@
Asynchrone Aufgaben
===================
Um große asynchrone Aufgaben zu starten (etwa für große Importe), können wir RabbitMQ oder Redis nutzen.
Installation von RabbitMQ für asynchrone Aufgaben
-------------------------------------------------
Voraussetzungen
^^^^^^^^^^^^^^^
Du musst RabbitMQ auf deinem Server installiert haben.
Installation
^^^^^^^^^^^^
.. code:: bash
wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
apt-key add rabbitmq-signing-key-public.asc
apt-get update
apt-get install rabbitmq-server
Konfiguration und Start
^^^^^^^^^^^^^^^^^^^^^^^
.. code:: bash
rabbitmq-plugins enable rabbitmq_management # (useful to have a web interface, available at http://localhost:15672/ (guest/guest)
rabbitmq-server -detached
RabbitMQ stoppen
^^^^^^^^^^^^^^^^
.. code:: bash
rabbitmqctl stop
RabbitMQ für wallabag konfigurieren
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Bearbeite deine ``app/config/parameters.yml``-Datei, um die RabbitMQ-Parameter zu ändern. Die Standardwerte sollten in Ordnung sein:
.. code:: yaml
rabbitmq_host: localhost
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
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In den internen Einstellungen, aktiviere RabbitMQ im Import-Abschnitt mit dem Wert 1.
Starte den RabbitMQ-Consumer
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Abhängig davon, über welchen Service du importieren möchtest, musst du den entsprechenden (oder mehrere) Cronjob aktivieren:
.. code:: bash
# für den Pocket-Import
bin/console rabbitmq:consumer -e=prod import_pocket -w
# für den Readability-Import
bin/console rabbitmq:consumer -e=prod import_readability -w
# für den Instapaper-Import
bin/console rabbitmq:consumer -e=prod import_instapaper -w
# für den wallabag v1-Import
bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w
# für den wallabag v2-Import
bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w
# für den Firefox-Import
bin/console rabbitmq:consumer -e=prod import_firefox -w
# für den Chrome-Import
bin/console rabbitmq:consumer -e=prod import_chrome -w
Redis für asynchrone Aufgaben installieren
------------------------------------------
Um große asynchrone Aufgaben zu starten (etwa für große Importe), können wir auch Redis nutzen.
Voraussetzungen
^^^^^^^^^^^^^^^
Du musst Redis auf deinem Server installiert haben.
Installation
^^^^^^^^^^^^
.. code:: bash
apt-get install redis-server
Start
^^^^^
Der Server kann bereits nach der Installation laufen, falls nicht, kannst du ihn wie folgt starten:
.. code:: bash
redis-server
Redis für wallabag konfigurieren
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Bearbeite deine ``app/config/parameters.yml``-Datei, um die Redis-Parameter zu ändern. Die Standardwerte sollten in Ordnung sein:
.. code:: yaml
redis_host: localhost
redis_port: 6379
Redis in wallabag aktivieren
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In den internen Einstellungen, aktiviere Redis im Import-Abschnitt mit dem Wert 1.
Starten des Redis-Consumer
^^^^^^^^^^^^^^^^^^^^^^^^^^
Abhängig davon, über welchen Service du importieren möchtest, musst du den entsprechenden (oder mehrere) Cronjob aktivieren:
.. code:: bash
# für den Pocket-Import
bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
# für den Readability-Import
bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
# für den Instapaper-Import
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
# für den wallabag v1-Import
bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
# für den wallabag v2-Import
bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
# für den Firefox-Import
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 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

View File

@ -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

View 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"]

View File

@ -1,81 +0,0 @@
Installiere RabbitMQ für asynchrone Aufgaben
============================================
Um asynchrone Aufgaben zu starten (nützlich z.B. für große Imports), können wir RabbitMQ nutzen.
Voraussetzungen
---------------
Du musst RabbitMQ auf deinem Server installiert haben.
Installation
~~~~~~~~~~~~
.. code:: bash
wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
apt-key add rabbitmq-signing-key-public.asc
apt-get update
apt-get install rabbitmq-server
Konfiguration und Starten
~~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: bash
rabbitmq-plugins enable rabbitmq_management # (useful to have a web interface, available at http://localhost:15672/ (guest/guest)
rabbitmq-server -detached
RabbitMQ stoppen
~~~~~~~~~~~~~~~
.. code:: bash
rabbitmqctl stop
Konfigure RabbitMQ in wallabag
------------------------------
Bearbeite die Datei ``parameters.yml``, um die RabbitMQ Konfiguration einzurichten. Die Standardkonfiguration sollte ok sein:
.. code:: yaml
rabbitmq_host: localhost
rabbitmq_port: 5672
rabbitmq_user: guest
rabbitmq_password: guest
Enable RabbitMQ in wallabag
---------------------------
In internal settings, in the **Import** section, enable RabbitMQ (with the value 1).
Starte den RabbitMQ Consumer
----------------------------
Abhängig von welchem Service du importieren möchtest, solltest du einen Cron Job aktivieren (oder mehrere, wenn du viele unterstützen willst):
.. code:: bash
# for Pocket import
bin/console rabbitmq:consumer -e=prod import_pocket -w
# for Readability import
bin/console rabbitmq:consumer -e=prod import_readability -w
# for Instapaper import
bin/console rabbitmq:consumer -e=prod import_instapaper -w
# for wallabag v1 import
bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w
# for wallabag v2 import
bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w
# for Firefox import
bin/console rabbitmq:consumer -e=prod import_firefox -w
# for Chrome import
bin/console rabbitmq:consumer -e=prod import_chrome -w

View File

@ -1,75 +0,0 @@
Installiere Redis für asynchrone Aufgaben
=========================================
Um asynchrone Aufgaben zu starten (nützlich z.B. für große Imports), können wir Redis nutzen.
Voraussetzungen
---------------
Du musst Redis auf deinem Server installiert haben.
Installation
~~~~~~~~~~~~
.. code:: bash
apt-get install redis-server
Starten
~~~~~~
Der Redis Service läuft eventuell schon direkt nach der Installation. Falls nicht kannst du ihn wie folgt starten:
.. code:: bash
redis-server
Konfigure Redis in wallabag
---------------------------
Bearbeite die Datei ``parameters.yml``, um die RabbitMQ Konfiguration einzurichten. Die Standardkonfiguration sollte ok sein:
.. code:: yaml
redis_host: localhost
redis_port: 6379
Enable Redis in wallabag
------------------------
In internal settings, in the **Import** section, enable Redis (with the value 1).
Starte den Redis Consumer
-------------------------
Abhängig von welchem Service du importieren möchtest, solltest du einen Cron Job aktivieren (oder mehrere, wenn du viele unterstützen willst):
.. code:: bash
# for Pocket import
bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
# for Readability import
bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
# for Instapaper import
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
# for wallabag v1 import
bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
# for wallabag v2 import
bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
# for Firefox import
bin/console wallabag:import:redis-worker -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
Wenn du den Import nur für ein paar Nachrichten und nicht für alle starten willst, kannst du die Nummer (im folgenden Beispiel 12) angeben. Der Redis Worker wird dann nach der 12. Nachricht stoppen:
.. code:: bash
bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12

View File

@ -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.

View File

@ -8,10 +8,6 @@ wallabag Dokumentation
**wallabag** ist eine Read-it-later Applikation: es speichert Websites,
indem es nur den Inhalt behält. Elemente wie Navigation oder Werbung werden gelöscht.
.. tip::
Diese Dokumentation ist über wallabag v2. Wenn du die Dokumentation für wallabag v1 lesen willst, `siehe dir bitte das hier an <https://github.com/wallabag/documentation>`__.
Die Hauptdokumentation für diese Applikation ist in einigen Abschnitten organisiert:
* :ref:`user-docs`
@ -28,23 +24,20 @@ Die Dokumentation ist in anderen Sprachen verfügbar :
:maxdepth: 2
:caption: Nutzerdokumentation
user/faq
user/installation
user/upgrade-2.0.x-2.1.1
user/upgrade-2.0.x-2.1.1
user/migration
user/upgrade
user/configuration
user/import
user/create_account
user/login
user/configuration
user/first_article
user/articles
user/errors_during_fetching
user/annotations
user/download_articles
user/filters
user/tags
user/configuring_mobile
user/android
user/parameters
user/backup
user/faq
.. _dev-docs:
@ -54,8 +47,7 @@ Die Dokumentation ist in anderen Sprachen verfügbar :
developer/api
developer/docker
developer/paywall
developer/documentation
developer/translate
developer/maintenance
developer/redis
developer/rabbitmq
developer/asynchronous

View File

@ -23,7 +23,7 @@ Bestätige nur diese Nachricht und du wirst zum Einstellungsbildschirm weitergel
:alt: Einstellungsbildschirm
:align: center
Trage deine Wallabagdaten ein. Du musst deine Wallabagadresse eintragen. Es ist wichtig, dass die URL nicht mit einem Schrägstrich endet. Füge auch deine Wallabagzugangsdaten in das Nutzer- und Passwortfeld ein.
Trage deine Wallabagdaten ein. Du musst deine Wallabagadresse eintragen. **Es ist wichtig, dass die URL nicht mit einem Schrägstrich endet.** Füge auch deine Wallabagzugangsdaten in das Nutzer- und Passwortfeld ein.
.. image:: ../../img/user/android_configuration_filled_in.de.png
:alt: Eingetragene Einstellungen
@ -76,8 +76,8 @@ Schließlich nach der ersten erfolgreichen Synchronisation, wird dir die Liste d
Bekannte Limitierungen
---------------------
2FA
~~~
Zwei-Faktor-Authentifizierung (2FA)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Zur Zeit unterstützt die App keine Zwei-Faktor Authentifizierung. Du solltest sie deaktivieren damit die App funktioniert.
@ -97,11 +97,6 @@ Wenn du deine Wallabaginstanz per HTTPS erreichen kannst, solltest du das so kon
Referenzen
----------
`Quellcode der Android Applikation <https://github.com/wallabag/android-app>`_
`Android Applikation auf F-Droid <https://f-droid.org/repository/browse/?fdfilter=wallabag&fdid=fr.gaulupeau.apps.InThePoche>`_
`Android Applikation auf Google Play <https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche>`_
`Support Chat auf English <https://gitter.im/wallabag/wallabag>`_
- `Quellcode der Android-App <https://github.com/wallabag/android-app>`_
- `Android-App auf F-Droid <https://f-droid.org/repository/browse/?fdfilter=wallabag&fdid=fr.gaulupeau.apps.InThePoche>`_
- `Android-App auf Google Play <https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche>`_

View File

@ -1,24 +0,0 @@
Anmerkungen
===========
In jedem Artikel, den du liest, kannst du Anmerkungen hinzufügen. Es ist einfacher mit ein paar Bilder erklärt.
Wähle den Teil des Artikels aus, den du kommentieren willst und klicke auf den Bleistift:
.. image:: ../../img/user/annotations_1.png
:alt: Wähle den Text
:align: center
Schreibe deinen Kommentar:
.. image:: ../../img/user/annotations_2.png
:alt: Schreibe deinen Kommentar
:align: center
Der Text ist nun hervorgehoben und du kannst deine Anmerkung lesen, wenn du den Mauspfeil darüber fährst.
.. image:: ../../img/user/annotations_3.png
:alt: lese deine Anmerkung
:align: center
Du kannst so viele Anmerkungen erstellen wie du möchtest.

112
docs/de/user/articles.rst Normal file
View File

@ -0,0 +1,112 @@
Artikel
=======
Speichere deinen ersten Artikel
-------------------------------
Die Hauptzweck von wallabag ist es, Artikel aus dem Web zu speichern. Es gibt viele Wege, dieses Ziel zu erreichen.
Wenn du denkst, dass ein Artikel falsch angezeigt wird, kannst du `diese Dokumentation lesen <http://doc.wallabag.org/de/master/user/errors_during_fetching.html>`_.
Über ein Bookmarklet
^^^^^^^^^^^^^^^^^^^^
Auf der ``Howto``-Seite hast du einen ``Bookmarklet``-Tab. Ziehe das ``bag it!`` in die Lesezeichenleiste deines Browsers.
Nun kannst du jedes Mal, wenn du einen Artikel speichern willst, auf den ``bag it!``-Link klicken, dann ist der Artikel gespeichert.
Der klassische Weg
^^^^^^^^^^^^^^^^^^
In der oberen Leiste deines Fensters hast du auf der rechten Seite drei Symbole. Mit dem ersten Symbole, einem Plus-Zeichen, kannst du auf einfache Weise einen neuen Artikel speichern.
.. image:: ../../img/user/topbar.png
:alt: Top bar
:align: center
Klicke darauf, um ein neues Feld anzuzeigen, füge die Artikel-URL ein und drücke Enter. Dann wird der Artikel gespeichert.
Über ein Browser-Addon
^^^^^^^^^^^^^^^^^^^^^^
Firefox
"""""""
Du kannst das `Firefox-Addon hier <https://addons.mozilla.org/firefox/addon/wallabag-v2/> herunterladen`_.
Chrome
""""""
Du kannst das `Chrome-Addon hier <https://chrome.google.com/webstore/detail/wallabagger/gbmgphmejlcoihgedabhgjdkcahacjlj?hl=fr> herunterladen`_.
Über das Smartphone
^^^^^^^^^^^^^^^^^^^
Android
"""""""
Du kannst die `Android-App hier <https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche> herunterladen`_.
Windows 10 in general
"""""""""""""""""""""
Du kannst die `Windows-App hier <https://www.microsoft.com/store/apps/9nblggh5x3p6> herunterladen`_.
Artikel herunterladen
---------------------
Du kannst jeden Artikel in verschiedenen Formaten herunterladen: ePUB, MOBI, PDF, XML, JSON, CSV.
Klicke in der Artikelansicht auf dieses Symbol in der Seitenleiste:
.. image:: ../../img/user/download_article.png
:alt: Artikel herunterladen
:align: center
Du kannst sogar eine ganze Kategorie (Ungelesen, Favoriten, Archiv) in diesen Formaten herunterladen:
Beispielsweise kannst du auf der **Ungelesen**-Ansicht auf dieses Symbol in der oberen Leiste klicken:
.. image:: ../../img/user/download_articles.png
:alt: Artikel herunterladen
:align: center
Artikel teilen
--------------
Wenn du einen Artikel liest, kannst du ihn auch teilen. Klicke dazu einfach auf den Teilen-Button:
.. image:: ../../img/user/share.png
:alt: Artikel teilen
:align: center
Nun kannst du den Artikel teilen:
- über eine öffentliche URL (es wird eine reduzierte Ansicht des Artikels zurückgegeben)
- über einen Tweet
- in deine Shaarli
- mit einem Beitrag auf Diaspora*
- an Carrot
- mit einer E-Mail
Artikel-Anmerkungen
-------------------
In jedem Artikel, den du liest, kannst du Anmerkungen hinzufügen. Es ist einfacher mit ein paar Bilder erklärt.
Wähle den Teil des Artikels aus, den du kommentieren willst und klicke auf den Bleistift:
.. image:: ../../img/user/annotations_1.png
:alt: Wähle den Text
:align: center
Schreibe deinen Kommentar:
.. image:: ../../img/user/annotations_2.png
:alt: Schreibe deinen Kommentar
:align: center
Der Text ist nun hervorgehoben und du kannst deine Anmerkung lesen, wenn du den Mauspfeil darüber fährst.
.. image:: ../../img/user/annotations_3.png
:alt: lese deine Anmerkung
:align: center
Du kannst so viele Anmerkungen erstellen wie du möchtest.

25
docs/de/user/backup.rst Normal file
View File

@ -0,0 +1,25 @@
wallabag sichern
================
Da es manchmal vorkommen kann, dass dir ein Fehler mit deiner wallabag unterläuft und du Daten verlierst oder deine wallabag auf einen anderen Server verschieben willst, ist eine Sicherung der Daten sicher ratsam.
Dieser Artikel beschreibt, was du für die Sicherung benötigst.
Grundlegende Einstellungen
--------------------------
wallabag speichert grundlegende Parameter (etwa der SMTP-Server oder das Datenbank-Backend) in der Datei `app/config/parameters.yml`.
Datenbank
---------
Da wallabag verschiedene Datenbank-Typen unterstützt, hängt der Weg der Sicherung von dem verwendeten Typ ab. Daher verweisen wir an dieser Stelle auf die entsprechenden Dokumentationen:
Hier sind einige Beispiele:
- MySQL: http://dev.mysql.com/doc/refman/5.7/en/backup-methods.html
- PostgreSQL: https://www.postgresql.org/docs/current/static/backup.html
SQLite
~~~~~~
Um die SQLite-Datenbank zu sichern, ist es lediglich notwendig, das Verzeichnis `data/db` aus dem wallabag-Installations-Ordner zu kopieren.
Bilder
------
Die Bilder, die von wallabag empfangen worden, sind unter `web/assets/images` gespeichert (der Bilder-Speicher wird in wallabag 2.2 implementiert).

View File

@ -13,8 +13,7 @@ Einstellungen
Theme
~~~~~
wallabag ist anpassbar. Du kannst dein bevorzugtes Theme hier auswählen. Du kannst
auch ein neues erstellen, ein extra Kapitel wird dem gewidmet sein. Das Standardtheme
wallabag ist anpassbar. Du kannst dein bevorzugtes Theme hier auswählen. Das Standardtheme
ist ``Material``, es ist das Theme, dass in den Dokumentationsbildschirmfotos genutzt wird.
Artikel pro Seite
@ -28,11 +27,18 @@ 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
~~~~~~~
Du kannst die Sprache von der wallabag Benutzeroberfläche ändern. Du musst die ausloggen, damit diese
Änderung Wirkung zeigt.
Du kannst die Sprache von der wallabag Benutzeroberfläche ändern.
RSS
---
@ -46,18 +52,23 @@ 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
----------------------
Du kannst deinen Namen ändern, deine E-Mail-Adresse und die Zwei-Faktor-Authentifizierung aktivieren.
Zwei-Faktor-Authentifizierung
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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.

View 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*.

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