Compare commits

...

378 Commits
2.0.6 ... 2.1.1

Author SHA1 Message Date
4c212ca7d9 Release wallabag 2.1.1 2016-10-04 17:18:29 +02:00
c36f5adce2 Merge pull request #2349 from wallabag/prepare-211
Prepare wallabag 2.1.1
2016-10-04 17:13:57 +02:00
933c6f3155 Update CHANGELOG.md 2016-10-04 17:13:16 +02:00
8ebb214ec4 Typo 2016-10-04 17:12:45 +02:00
954b6a36a3 Update CHANGELOG 2016-10-04 17:11:26 +02:00
5958597ba6 Prepare wallabag 2.1.1 2016-10-04 17:08:34 +02:00
57386125ab Merge pull request #2353 from wallabag/assets-fix
Basically, fix everything
2016-10-04 16:26:50 +02:00
c10adc1f76 typo and build on test 2016-10-04 15:59:56 +02:00
6cb364a2c1 use airbnb base rules and update eslint 2016-10-04 15:30:05 +02:00
f733d8aaa3 Fix icon position 2016-10-04 15:12:48 +02:00
3e85e91159 Fixed calendar icon position with baggy theme 2016-10-04 15:00:47 +02:00
0c7f1ba796 Fixed icon position in share menu 2016-10-04 14:58:06 +02:00
46d78f87d9 fix icons 2016-10-04 14:48:22 +02:00
f2ab290f0f Merge pull request #2359 from wallabag/user-config
Create config even if user is disabled
2016-10-04 13:35:13 +02:00
9f7d154e34 Add eslint & stylelint tests (fix a few things) and move dependencies to dev 2016-10-04 12:14:28 +02:00
9a6ac0b47a 👋 HHVM 2016-10-04 11:20:58 +02:00
755ff9e835 Create config even if user is disabled
When a user register itself AND the wallabag instance is configured to send a confirmation email, the user is disabled when the listener (which create the config) receive the event.
There were a check (don't know why) if the user is enabled we create the config. But the user is disabled when confirmation email is actived.
2016-10-04 10:42:46 +02:00
f440e28281 Update doc
Merge VALIDATE_TRANSLATION_FILE & ASSET build (less build on Travis)
2016-10-04 10:31:03 +02:00
ca8f9bdc15 Fix font & Travis
Grunt now copy fonts instead of symlink (node_modules won't exist for the end user)
2016-10-04 10:10:40 +02:00
f0b2d57154 Merge pull request #2354 from Zayon/master
Add php-bcmath extension to requirements
2016-10-04 08:41:17 +02:00
9f3a1cd20c shaarli instead of Diaspora 2016-10-04 07:26:18 +02:00
10f51f429d Update .travis.yml 2016-10-04 07:25:05 +02:00
96a99d4375 Fix grunt path 2016-10-04 01:00:14 +02:00
f7265b4b9d Add php-bcmath extension to requirements
Fix issue #2342
2016-10-03 23:29:21 +02:00
5759c9aac1 remove install scripts and tweak travis 2016-10-03 23:21:02 +02:00
a494c33ef7 Basically, fix everything
* Remove install.sh
* Assets are now provided
* Icons font issues are fixed
2016-10-03 23:08:26 +02:00
a3cc0dd0bf Add missing env in install.sh
Fix https://github.com/wallabag/wallabag/issues/2345
2016-10-03 18:13:40 +02:00
aafb3321b7 Merge pull request #2341 from mruminski/master
Update messages.pl.yml
2016-10-03 16:44:19 +02:00
b054bc27e6 Merge pull request #2340 from wallabag/improve-ger-transl
small improvement for german translation
2016-10-03 16:23:16 +02:00
1c634fe437 improve German translation 2016-10-03 15:52:27 +02:00
24add95e9e Merge pull request #2338 from wallabag/install-2.1
Fix for 2.1 installation
2016-10-03 15:33:08 +02:00
0113e2af1f Update messages.pl.yml
add missing and update existing translation
2016-10-03 15:05:21 +02:00
88d8125a5f Ensure cache is clear before upgrading
If we changed some namespace / classes, we need to refresh the cache before anything else.
2016-10-03 14:44:16 +02:00
4ac780eb21 Use install_dev.sh for Travis
Add `--no-dev` to `composer install` for prod env
2016-10-03 14:35:42 +02:00
8fdb5e5766 Re-add wallabag:install 2016-10-03 14:21:49 +02:00
9d3603147b Update md5 hash for wallabag 2.1.0 2016-10-03 11:16:35 +02:00
8c3c69fb9c Merge pull request #2334 from wallabag/prepare-21
Prepare wallabag 2.1.0 🚀
2016-10-03 10:42:14 +02:00
83c26bdf26 Merge pull request #2335 from wallabag/fix-quickstart-css
Fixed CSS for quickstart links
2016-10-03 10:29:41 +02:00
0f70abd695 Fixed CSS for quickstart links 2016-10-03 10:27:01 +02:00
7d002c333d Merge pull request #2333 from wallabag/translation-german-for-2.1
for 2.1, translate all strings to German, which haven't been translated yet
2016-10-03 09:25:51 +02:00
12f7fd004a Prepare wallabag 2.1.0 🚀 2016-10-03 09:16:57 +02:00
ab809de184 Merge pull request #2314 from wallabag/assets
Assets work
2016-10-03 09:09:45 +02:00
c30af946e7 Update messages.de.yml 2016-10-03 09:08:42 +02:00
553f863c3c Fixed typos 2016-10-03 09:05:40 +02:00
beee26f6d5 Better translation for the weird sentence 2016-10-02 22:50:27 +02:00
a878581410 Improve the german translation a bit
Just some little mistakes, good work so far :)
2016-10-02 22:32:23 +02:00
df9c080f8c translate all strings to German, which haven't been translated yet 2016-10-02 21:41:21 +02:00
dfbbf0e18a Merge pull request #2331 from wallabag/api-links
Fix parameters in API _links
2016-10-02 17:48:16 +02:00
77557d289b Merge remote-tracking branch 'origin/master' into 2.1 2016-10-02 17:37:41 +02:00
c3f8b428dd Fix parameters in API _links
We forgot to pass them to the factory
2016-10-02 15:41:08 +02:00
1dc3bee6b9 Merge pull request #2327 from wallabag/user-management
Add users management UI
2016-10-02 15:00:02 +02:00
c21f2924f3 Merge pull request #2330 from pmichelazzo/master
Remove error message when creating ePub versions
2016-10-02 14:56:18 +02:00
ccc7faec09 Disabled delete button for the logged user
To avoid some bad things to happen…
2016-10-02 13:29:57 +02:00
18b8dc0e99 Merge pull request #2325 from wallabag/api-entries-exists
Add an exists endpoint in API
2016-10-02 13:17:23 +02:00
ffcd91ec6c Remove error message when creating ePub versions
Trying to create a ePub version, the first page shows a message of a
“missing >”. This change solve this problem (and, for sure, in any
download version that’s use HTML).
2016-10-02 13:16:12 +02:00
92395680b6 Merge pull request #2328 from wallabag/avoid-duplicate-url
Avoid duplicate url with accents
2016-10-02 13:14:16 +02:00
eb4142e0af Remove NewUser test from Config 2016-10-02 11:09:28 +02:00
03141f9b95 Cleanup & add link on baggy menu 2016-10-02 11:08:53 +02:00
152fcccd44 Add users management UI
- remove the “add a user” from the config page
- add a CRUD on user
- fix some missing translations (+ bad indentation)
2016-10-02 11:08:53 +02:00
52c1fc7449 Merge pull request #2326 from wallabag/update-quickstart
Changed quickstart layout
2016-10-02 11:06:03 +02:00
6e5e27ab07 Merge pull request #2324 from wallabag/edit-tagging-rule
Add ability to edit a tagging rule
2016-10-02 11:05:10 +02:00
bfb3ae01da Merge pull request #2323 from wallabag/footer-stats
Add simple stats in footer
2016-10-02 11:04:49 +02:00
ae394b4078 Merge pull request #2329 from wallabag/Quent-in-patch-1
Occitan version update
2016-10-02 11:04:10 +02:00
a4df48916d Fix OC typos
+ remove extra sentence
2016-10-02 09:57:48 +02:00
24ad330be6 Update test 2016-10-02 01:47:10 +02:00
3583cadf6f CS 2016-10-02 01:43:50 +02:00
d6d3fb6e4c Remove additional entry
After the test is done, cleanup what we’ve done
2016-10-02 01:42:21 +02:00
1bcfeb0f4a Occitan version update
to be ready for the future of Wallabag :)
2016-10-01 18:23:37 +02:00
0d61b6015f Fixed french translation 2016-10-01 18:15:59 +02:00
2455472e26 CS 2016-10-01 18:05:25 +02:00
19ca0b2f35 Avoid duplicate url with accents 2016-10-01 18:00:11 +02:00
7d72cce4c7 Changed translations 2016-10-01 17:29:04 +02:00
55551e332c Add test when url doesn’t exist 2016-10-01 17:26:36 +02:00
8799bde00d Introduce validateRuleAction 2016-10-01 17:24:24 +02:00
6273fefd5d Add an exists endpoint in API
It should allow third party to check if an url was already saved by a user
2016-10-01 17:15:28 +02:00
a44d2613c7 Changed quickstart layout 2016-10-01 17:13:53 +02:00
bf3dc999e7 Add ability to edit a tagging rule 2016-10-01 16:52:05 +02:00
c4bf7af96f Merge pull request #2322 from wallabag/v2-404
Customize errors templates
2016-10-01 16:35:48 +02:00
1264029cd4 Add simple stats in footer 2016-10-01 16:03:50 +02:00
db5541e7a1 Merge pull request #2320 from wallabag/user-config
Create user config in one place.
2016-10-01 15:51:37 +02:00
40e219622a Customize errors templates
All error goes to the same template which only display the error message and the status code.
2016-10-01 14:58:48 +02:00
fb7354c4a4 Fix bad template name
When a user register, the template displayed saying it should now check its email was misspelled.
Resulting in displaying the default one (with margin issue).
2016-09-30 21:02:44 +02:00
ca17abce2d Create user config in one place
Using a listener, user config is now created when a user:

- is created from the command line
- register (with or without email confirmation)
- is created from the config panel
2016-09-30 21:01:36 +02:00
114c55c0a6 Merge remote-tracking branch 'origin/master' into 2.1 2016-09-30 13:27:19 +02:00
00d3f2a383 Merge pull request #2319 from pmartin/docker-php-gd-extension
Docker : install PHP 'gd' extension
2016-09-30 13:25:23 +02:00
ecdefb11f7 Add PHP 'gd' extension to docker
The gd extension is required to export entries as EPUB.
2016-09-30 12:29:37 +02:00
56f0150e2a Fix doc: 'bin/console' instead of 'app/console' 2016-09-30 12:29:22 +02:00
555ed552ca Merge pull request #2318 from wallabag/refactor-templates
Removed duplicated templates files
2016-09-30 10:21:33 +02:00
2ff9991a1d Removed duplicated templates files 2016-09-30 09:38:08 +02:00
49f25d6ee8 remove bower dependency from npm 2016-09-29 13:17:19 +02:00
fb479be3a0 Merge pull request #2315 from wallabag/fixes-about-upgrade
Fixes about upgrade
2016-09-29 11:35:47 +02:00
2d8af6fc7f Added french documentation about Redis and RabbitMQ 2016-09-29 11:01:15 +02:00
c59e628afe Added links to async config in german doc 2016-09-29 10:43:53 +02:00
00283a3b0a add German redis.rst 2016-09-29 10:41:07 +02:00
080cb52fac add German rabbitmq.rst 2016-09-29 10:36:19 +02:00
b4118f66ff remove bower 2016-09-29 09:20:37 +02:00
0471e905b8 fonts & ligatures 2016-09-29 09:18:46 +02:00
37b63c170d Merge pull request #2316 from mruminski/2.1
Update messages.pl.yml
2016-09-29 07:20:23 +02:00
02384d22ef Update messages.pl.yml
add missing translation for Instapaper importer
2016-09-29 01:04:06 +02:00
8f234d0156 remove autocomplete and bring fonts through npm 2016-09-28 18:59:15 +02:00
ff5be9720b Added links to async config in french doc 2016-09-28 16:37:36 +02:00
cb0096df41 Added links to async config in english doc 2016-09-28 16:37:02 +02:00
fc487c4eb1 Remove .idea stuff 2016-09-28 15:42:09 +02:00
34e4c12604 Little improvements to the german translation 2016-09-28 13:52:06 +02:00
ff1f55c2a0 update German upgrade-2.0.x-2.1.y.rst 2016-09-28 12:26:29 +02:00
9866d39431 Fixed review 2016-09-28 11:59:35 +02:00
eef8aeec8f Reordered upgrade documentation 2016-09-28 11:13:20 +02:00
c146f6940a Assets work
* ES6 all the things !

* ESLint checks everything

* CSS fixes (use stylelint)

* Fix #2231
2016-09-28 10:30:18 +02:00
084fb0d303 Some fixes about upgrade from 2.0.x -> 2.1.0 2016-09-28 10:04:36 +02:00
92fa168344 Merge pull request #2313 from wallabag/fix-long-loading
Remove CSS class who caused long loading on Firefox
2016-09-27 21:58:06 +02:00
1ed965beb9 Remove CSS class who caused long loading on Firefox
Fix #2302 #2281
2016-09-27 20:52:30 +02:00
a9e92b6609 Add Instapaper translations 2016-09-27 20:27:08 +02:00
a7dda1f2bf Add Instapaper docs 2016-09-27 20:27:08 +02:00
c7ea9b41f3 Add controller test for Instapaper 2016-09-27 20:27:08 +02:00
ff1a5362f7 Add Instapaper import
Also update ImportController with latest import (chrome, firefox & instapaper).
2016-09-27 20:27:08 +02:00
55345331c4 Merge pull request #2309 from mruminski/2.1
Update messages.pl.yml
2016-09-27 08:00:58 +02:00
20762cd1ab Update messages.pl.yml
add missing translation for Firefox and Chrome imports
2016-09-27 00:58:44 +02:00
d6de23a100 Merge pull request #2192 from wallabag/import-browser-bookmarks
Import Firefox & Chrome bookmarks into wallabag
2016-09-26 14:47:02 +02:00
fefef9d41b Added tags for Firefox import 2016-09-26 13:40:10 +02:00
990adfb34c Move prepareEntry to dedicated place
Yeah first try was ugly, now each part are in the dedicated place.
Also, the date is hardly truncated to 10 chars because Firefox date are 16 chars long and Chrome are 17 chars long. So instead of divised them by a huge number, I prefer to truncate them.
2016-09-26 07:30:02 +02:00
12d93e6896 Update Firefox file
With real data, the previous looks more than a Chrome converted file.
Also, fix date conversion (hope so).
2016-09-25 22:24:07 +02:00
7e98ad9626 Merge pull request #2308 from wallabag/tags-duplicate
Fix duplicate tags on import
2016-09-25 16:11:06 +02:00
27acc6ddb8 Fix bad date format in Browser import 2016-09-25 15:32:02 +02:00
f0fd82d039 Fix bad parameter for tests 2016-09-25 14:21:12 +02:00
bd206a84d8 Fixed tests by removing clear() 2016-09-25 12:29:19 +02:00
64b1229b2d fix tests 2016-09-25 12:29:19 +02:00
2c61db30b7 cs & fixes 2016-09-25 12:29:19 +02:00
59201088b4 bring chrome and firefox as separate imports 2016-09-25 12:29:18 +02:00
f7c55b3812 Added tests for Chrome bookmarks import 2016-09-25 12:29:18 +02:00
06d13ddfbc Indentation and renamed fixtures file 2016-09-25 12:28:55 +02:00
efe659ab84 Add Chrome path for Mac OS 2016-09-25 12:28:55 +02:00
ae669126e7 Import Firefox & Chrome bookmarks into wallabag 2016-09-25 12:28:54 +02:00
289875836a Fix tag count for PostgreSQL 2016-09-25 12:23:44 +02:00
82fc3290d4 CS 2016-09-25 12:03:49 +02:00
401135852c Use scheduled entity insertions to avoid tag duplicate
Using `getScheduledEntityInsertions()` we can retrieve not yet flushed but already persisted entities and then avoid tags duplication on import.
2016-09-25 12:03:49 +02:00
faa86e06ba Fix tags count in menu
Move enable cache for Tag in the Entity because function `find*` should return result and not a Query
2016-09-25 12:03:49 +02:00
9d7dd6b0d2 Merge pull request #2306 from wallabag/redis-rabbit-check
Some checks about Redis & RabbitMQ
2016-09-25 11:36:59 +02:00
0e0102b6fc Avoid failing test for user who didn’t install Redis 2016-09-24 19:57:59 +02:00
13a522dfbd Display a message when async import won’t work
Mostly if Redis or RabbitMQ isn’t installed / launched.
I guess it’ll avoid some issues.
2016-09-24 19:56:15 +02:00
e10f3b1e91 Disable deprecation that fail test 2016-09-24 19:55:23 +02:00
637aa17e6b Merge pull request #2301 from wallabag/fix-rss-feeds
fix feeds not syncing on android app
2016-09-22 07:51:05 +02:00
389d55f86b fix feeds not syncing on android app 2016-09-21 19:51:19 +02:00
32e95760f5 Merge pull request #2239 from wallabag/documentation-2.1
Update documentation with new features for 2.1
2016-09-20 14:29:16 +02:00
5074e7d4fa Merge pull request #2299 from mruminski/2.1
polish version
2016-09-20 08:33:27 +02:00
b6fc1f2007 Update CraueConfigBundle.pl.yml
fix misspell
2016-09-19 23:16:37 +02:00
1223c0811d Update CraueConfigBundle.pl.yml
add missing translation
2016-09-19 23:02:50 +02:00
a94108f574 Update messages.pl.yml
add missing translation
2016-09-19 22:53:02 +02:00
267b9d62dc Update wallabag_user.pl.yml
add missing "
2016-09-19 22:37:03 +02:00
a00bed8b59 polish version
create wallabag_user.pl.yml file
2016-09-19 20:42:55 +02:00
e406a94ab6 Fixed version in documentation 2016-09-19 15:23:04 +02:00
ce0a32229a Fix wallabag version in documentation 2016-09-19 15:22:05 +02:00
8fed8d1bac Add documentation about article sharing 2016-09-19 15:20:46 +02:00
05d2d62f12 Update generated files from Symfony 2016-09-19 11:35:35 +02:00
d7b4b2c72c Merge remote-tracking branch 'origin/master' into 2.1 2016-09-19 11:23:07 +02:00
f9feca5c64 Merge pull request #2297 from morhelluin/epub-export-special-chars
Fix issue #2296: epub export with special chars in the title.
2016-09-19 11:18:17 +02:00
da18a4682f Merge pull request #1941 from wallabag/v2-asynchronous-jobs
Use asynchronous jobs for imports
2016-09-19 07:15:40 +02:00
45d94a98f7 Fix issue #2296: epub export with + in the title. 2016-09-18 14:43:54 +02:00
59b97fae99 Avoid losing entry when fetching fail
Instead of just say “Failed to save entry” we’ll save the entry at all cost and try to fetch content. If fetching content failed, the entry will still be saved at least, but without content.
2016-09-17 07:40:56 +02:00
fbb319f064 Missing some migrations
and CS
2016-09-16 22:58:33 +02:00
ebe0787e09 Moved Pocket token to user config 2016-09-16 22:22:25 +02:00
4fc998245c Only display message in queue for admin
Instead of for EVERYONE
2016-09-16 20:08:07 +02:00
0ed8ce55b5 Merge pull request #2292 from wallabag/fix-markasread-label
Fixed label for mark as read link in entry view
2016-09-16 08:50:07 +02:00
458beef0a9 Fixed label for mark as read link in entry view
Fix #2286
2016-09-15 15:32:01 +02:00
760419cd43 Merge pull request #2291 from wallabag/add-links-doc-homepage
Add links to translations in documentation homepage
2016-09-15 15:20:37 +02:00
78d5da87fa Add links to translations in documentation homepage 2016-09-15 14:58:14 +02:00
c6b68dc1df Merge pull request #2287 from wallabag/remove-footer
Remove footer part
2016-09-15 14:21:21 +02:00
e77cde4531 Remove FooterController 2016-09-15 11:11:24 +02:00
5b382b9ffb Merge pull request #2290 from wallabag/Quent-in-patch-1
Update messages.oc.yml
2016-09-15 09:27:08 +02:00
15b1917142 Update messages.oc.yml
L44 : vosautres, general form
vosaltres : local and catalan form
vosaultres : doesnt exist ^^
2016-09-14 17:54:09 +02:00
ac87e0db2a AMPQ -> AMQP 2016-09-14 10:18:02 +02:00
a622fbc444 Fix typo 2016-09-14 09:10:13 +02:00
d4e366f6eb Add missing translations 2016-09-13 22:38:05 +02:00
47d7c682a4 Add more “real” tests 2016-09-13 22:27:27 +02:00
c80cc01afa Change flash message for queued articles 2016-09-13 21:09:05 +02:00
e01a3c98d6 Display how many messages are queue
- update the docker-composer to add Redis
- add migrations
2016-09-13 20:32:52 +02:00
d49c88f15a Remove footer part 2016-09-13 20:31:06 +02:00
5d002e9bdf Update import.worker.enabled translation 2016-09-12 09:07:53 +02:00
886d479734 Fix tests 2016-09-11 23:57:27 +02:00
ebf5e5087d Add tests on ImportCommand 2016-09-11 22:15:31 +02:00
03e078d060 Update docs about worker 2016-09-11 22:15:31 +02:00
015c7a8359 Add more tests
And ability to define how many messages can be hanle by the redis worker before stopping (usefull for tests)
2016-09-11 22:15:31 +02:00
7d862f83b9 Re-facto EntryConsumer
Using an abstract method allow to share code but also can be used it we add a new broker in the future
2016-09-11 22:15:31 +02:00
dc69e25f97 Display a message when async is enabled 2016-09-11 22:15:28 +02:00
7230e4c39f Enable Redis on Travis
Add generated files from `composer up`
Add more articles for Readability tests
2016-09-11 21:58:57 +02:00
b3437d58ae Enable Redis async import
- using javibravo/simpleue
- internal config value are now `import_with_redis` & `import_with_rabbit` which are more clear
- if both option are enable rabbit will be choosen
- services imports related to async are now splitted into 2 files: `redis.yml` & `rabbit.yml`
-
2016-09-11 21:58:56 +02:00
7f7531171f Retrieve created date from Pocket 2016-09-11 21:58:56 +02:00
13470c3596 Add test for RabbitMQ
Also update Symfony deps
2016-09-11 21:58:56 +02:00
8664069e1a Fix DateTime & clear() 2016-09-11 21:58:55 +02:00
6d65c0a8b0 Add ability to define created_at for all import
At the moment only Readability & wallabag v2 import allow created_at import.
Pocket removed `time_added` field from their API v2 to v3...
And wallabag v1 doesn't export that value.
2016-09-11 21:58:55 +02:00
3aca0a9f00 CS 2016-09-11 21:58:55 +02:00
3849a9f323 Some cleanup & refactor 2016-09-11 21:58:55 +02:00
02f6489572 Retrieve all items from Pocket
5000 by 5000.
Also, retrieve newest item first.
2016-09-11 21:58:31 +02:00
c98db1b653 Convert other imports to Rabbit 2016-09-11 21:58:31 +02:00
ef75e1220e Send every imported item to the queue
Instead of queing real Entry to process, we queue all the item to import from Pocket in a raw format.
Then, the worker retrieve that information, find / create the entry and save it.
2016-09-11 21:57:46 +02:00
87c9995b6c Update docker-composer with RabbitMQ configuration 2016-09-11 21:57:09 +02:00
40d2a29443 Replace RabbitMQ injection with CraueConfiguration 2016-09-11 21:57:09 +02:00
e31ee20dd7 Add RabbitMQ service for Travis CI 2016-09-11 21:57:09 +02:00
56c778b415 1st draft for rabbitMQ 2016-09-11 21:57:09 +02:00
59758d8fe5 Merge pull request #2279 from wallabag/cleanup-travis
Check if asset is enable instead of opposite
2016-09-11 18:48:36 +02:00
88e88016b9 Clearing entities in the loop fail on Postgres
It looks like when you clear entities on Postgres some references are lost and tags are not saved :-/
2016-09-11 16:30:01 +02:00
58fadbc9df Fix error on EntityManager clear
Introduced in the recent 2.5.5 release.
Also updated deps.
2016-09-11 15:53:16 +02:00
04d5c60216 Update install.sh
Since $ASSETS can be empty now and only be “build”.
2016-09-11 12:52:42 +02:00
40c47f7023 Check if asset is enable instead of opposite
Instead of defining ASSETS all the time, just define it when we want to
use it
Might give us more clearer build
2016-09-09 21:30:14 +02:00
c078d18372 Merge pull request #2275 from wallabag/export-dates
Export dates from entries
2016-09-08 18:33:09 +02:00
9401696fe4 Export dates from entries 2016-09-08 16:49:21 +02:00
5fc79381bb Merge pull request #2274 from wallabag/json-response-created-at
Re-use JsonResponse
2016-09-08 12:28:46 +02:00
60faee002c Re-user JsonResponse
Since Symfony 3.1 we can define the json of a JsonResonse using `->setJson()`
2016-09-08 12:03:38 +02:00
a707643ef1 Update md5 checksum for 2.0.8 in documentation 2016-09-07 15:40:15 +02:00
48a692c143 Merge pull request #2271 from wallabag/prepare-208
Prepare wallabag 2.0.8
2016-09-07 14:53:29 +02:00
5bdec0195f Prepare wallabag 2.0.8 2016-09-07 14:27:32 +02:00
94d1dae4ef Update install documentation 2016-09-06 13:43:53 +02:00
6f23289e72 Merge pull request #2266 from wallabag/add-tags-counter
Added tags counter in sidebar (material theme)
2016-09-05 22:20:27 +02:00
e5b090960b Merge pull request #2267 from wallabag/Quent-in-patch-1
Occitan  updated
2016-09-05 19:49:23 +02:00
fee8f2312e Occitan updated
Line 347, I'm not sure about what I wrote to avoid and end of string started with "
I had to use the simple ' in the sentence.
Let me know if it was okay like so.
2016-09-05 18:55:53 +02:00
5173fd1c3d Returned 0 instead of returning empty array for Twig Extension 2016-09-05 14:17:44 +02:00
a1d22ea7d0 Remove useless variable 2016-09-05 10:23:40 +02:00
13d9f7c96c Switched enableCache visibility to private 2016-09-04 21:06:52 +02:00
429d86f388 Added tags counter in sidebar (material theme) 2016-09-04 20:53:28 +02:00
c3b53188d7 Merge pull request #2263 from wallabag/speed-up-count
Instead of selecting the whole data, just count it
2016-09-04 20:07:45 +02:00
234ad94453 CS 2016-09-03 19:26:23 +02:00
59ddb9ae99 Remove Twig globals
Twig Global function are called globally. This means even on a query to the api.

Using a function we can decide when we want to call it.

Also, remove previous `COUNT(e.id)` since it doesn't work on PostgreSQL ...
2016-09-03 19:09:28 +02:00
543da3e0b7 Instead of selecting the whole data, just count it
Instead of performing a complex select (to retrieve all data for entry, etc...) just select the counter and retrieve it.

Down from ~50ms to ~30ms on the unread page (with 500 items)
2016-09-03 18:11:07 +02:00
8f8654913c Merge pull request #2002 from wallabag/feature-display-itemsNumber
Feature display items number
2016-09-03 16:13:08 +02:00
b3f4a11a81 Store cache lifetime in config 2016-09-03 14:02:50 +02:00
2b9c5097d4 Merge pull request #2262 from wallabag/install-check-db-connection
Add a check for the database connection
2016-09-03 13:34:13 +02:00
5070644a12 CS 2016-09-03 11:45:59 +02:00
f62c3faf88 Update test
If the database isn't found when checking for the connection it means, we can connect to the server.
The InstallCommand will create the database later.

Also, when checking for the SQLite connection, Doctrine creates the file (so the database). That's why the test is skipped for SQLite.
2016-09-03 10:34:27 +02:00
001a7bad66 Add a check for the database connection
Checking for the driver isn't enough.
We are now checking if we can etablish a connection to the database before trying to do anything.
By displaying the error from the Exception (in case of error) we hope to reduce issues overload about people getting error with the database
2016-09-03 09:24:34 +02:00
9972ab467a Merge pull request #2260 from wallabag/fix-config-fontsize
Fixed different font-size for labels in config screen
2016-09-02 11:17:47 +02:00
b1e0a586e8 Fixed different font-size for labels in config screen
Fix #1788
2016-09-02 10:53:22 +02:00
336262e6ee Merge pull request #2252 from wallabag/fix-last-merge
Fixed last merge who caused CSS/JS bugs
2016-09-02 10:27:41 +02:00
a8d5aa1c44 Add tinydot to material concat 2016-09-02 10:21:10 +02:00
33adf8dc91 Merge pull request #2242 from wallabag/fix-minor-css
Fix print / article views
2016-09-01 22:23:45 +02:00
8bde9d0efe Merge pull request #2258 from mruminski/2.1
Update messages.pl.yml
2016-09-01 20:26:23 +02:00
0b0233b1ec Enable cache for queries 2016-09-01 20:20:12 +02:00
3a6c252104 Update messages.pl.yml
add missing polish translations
2016-09-01 19:42:26 +02:00
be20e6f009 CSS indentation 2016-09-01 19:18:39 +02:00
bd8c13e8b0 Merge pull request #2255 from wallabag/readability
Add Readability import
2016-09-01 14:18:48 +02:00
dc9d76b490 Added documentation for Readability migration 2016-09-01 13:40:00 +02:00
209ec7cedd Add Readability to Quickstart page 2016-09-01 13:39:55 +02:00
a1a1077059 Add tests on ReadabilityImport 2016-09-01 13:39:41 +02:00
ca2a43ae7d Add missing translations 2016-09-01 13:39:37 +02:00
ca15aaac18 Fix import count tests 2016-09-01 09:36:11 +02:00
03e3753f6b Add Readability import
Based on the JSON export instead of the API (which will be shutting down by the September 30, 2016)
2016-09-01 08:00:30 +02:00
a374ac0fd3 Fixed last merge who caused CSS/JS bugs 2016-08-30 13:52:28 +02:00
cdd3010b47 Merge remote-tracking branch 'origin/master' into 2.1 2016-08-28 16:15:27 +02:00
13d44ca766 Merge pull request #2243 from wallabag/feature-untagged-entries
Add untagged entries
2016-08-28 15:56:16 +02:00
0184e09a66 Add missing translations 2016-08-28 15:37:22 +02:00
d5d1612153 Add tests for untagged entries 2016-08-28 14:44:00 +02:00
b6520f0b15 Add untagged entries
Fix #1631
2016-08-28 14:44:00 +02:00
8635ab1cd1 Merge pull request #2245 from wallabag/change-page-title
Changed where page title is displayed
2016-08-28 14:33:46 +02:00
985f5f9d05 Occitan version
Occitan translation, I hope I properly put it where it has to be.
If there reminds other textes to translate, please let me know!
2016-08-27 12:24:18 +02:00
74d68fbf25 Changed where page title is displayed 2016-08-26 21:26:21 +02:00
add0e14cff Fixed print view for baggy theme 2016-08-26 21:20:02 +02:00
52ef497099 Fix print / article views 2016-08-26 14:35:43 +02:00
c4da9d1cd8 Merge pull request #2240 from wallabag/add-icon-public-share
Add icon for public share link
2016-08-26 12:14:36 +02:00
f7de67e26f Merge pull request #2241 from modos189/v2-issue-1991
Fix issue #1991: correction of the height field to add articles
2016-08-26 07:26:42 +02:00
ceebf13fe8 Fix issue #1991: correction of the height field to add articles 2016-08-26 01:13:35 +03:00
8e06720ff3 Add icon for public share link 2016-08-25 16:19:21 +02:00
bf0d9ef534 Merge pull request #2238 from modos189/v2-improve-view
V2 improve view
2016-08-25 15:55:30 +02:00
aad350a5a2 Merge pull request #2237 from wallabag/add-original-url-public-entry
Add original link in public view of the article
2016-08-25 15:39:15 +02:00
0a512eaf57 Remove text about original URL in public view 2016-08-25 15:32:38 +02:00
538587855a A new version of the plugin tinydot with update on window resize 2016-08-25 16:22:47 +03:00
5aba43d92c Changes in the login form:
* The alignment of the login form centered in WebKit
* Indent after the reference password recovery
2016-08-25 16:09:55 +03:00
9415bc992e Add original link in public view of the article 2016-08-25 14:39:33 +02:00
60e7220406 Merge pull request #1904 from wallabag/feature-public-mode
Share entry with a public URL
2016-08-25 09:30:51 +02:00
eddda878a0 Update test
and some cleanup
2016-08-24 22:29:36 +02:00
b1afef30dc Handle share_entry
- share_entry needs to be in the migration too
- and it needs a translation
2016-08-24 21:56:02 +02:00
ad9304cd7e Handle table prefix in migration
and fix migration for name field in oauth table
2016-08-24 21:38:26 +02:00
c6d77eaf51 Merge pull request #2236 from wallabag/allow-failure-php-7.1
Allow failure for PHP 7.1
2016-08-24 11:39:17 +02:00
a1ab7d1d32 Merge pull request #2186 from wallabag/addRegistration
Add option to disable registration
2016-08-24 11:13:00 +02:00
ddb49dd931 Allow failure for PHP 7.1
Got tired of `EE/home/travis/build.sh: line 45:  4445 Segmentation fault      (core dumped) phpunit -v` using PHP 7.1.0beta3
2016-08-24 10:49:43 +02:00
8541b3c4fd Add simple test 2016-08-24 10:28:43 +02:00
a5684f6a23 Merge pull request #2234 from cstuder/patch-1
Fixes mailto link in documentation
2016-08-24 09:11:14 +02:00
cc654b427f Merge pull request #2235 from wallabag/german-doc-config
Add configuration for german documentation
2016-08-24 09:10:55 +02:00
78b3c31d70 Change annotation for uuid field 2016-08-24 09:07:49 +02:00
18545173a6 Add configuration for german documentation 2016-08-24 08:53:20 +02:00
cdf405ad8f Fixes mailto link in german translation 2016-08-24 08:43:38 +02:00
cdfeea0a96 Fixes mailto link in french translation 2016-08-24 08:43:17 +02:00
cf967401b0 Fixes mailto link 2016-08-24 08:22:35 +02:00
2f9927404d Merge pull request #2230 from modos189/issue_2055
Cut entries title in card view: continued
2016-08-23 17:24:46 +02:00
3e860ff1ce Change links on baggy theme 2016-08-23 16:55:49 +02:00
f1be7af446 Change share entry behavior 2016-08-23 16:49:21 +02:00
3377c938f8 Add translations 2016-08-23 16:49:21 +02:00
9a5231e8c4 Improve migration 2016-08-23 16:49:21 +02:00
a7e2218e25 Add test and fix migration 2016-08-23 16:49:21 +02:00
222e09f140 Add Cache on Share Action 2016-08-23 16:49:21 +02:00
d0545b6bd6 Add migration 2016-08-23 16:49:21 +02:00
f3d0cb9106 Share entry with a public URL 2016-08-23 16:49:21 +02:00
28388e15c3 Replacement plugin dotdotdot (6.7 KB) on my tinydot (315 bytes) 2016-08-23 12:58:35 +03:00
1bee9e0760 Merge pull request #2218 from wallabag/api-delete-tags-1982
Delete tag or tags by label
2016-08-23 11:51:13 +02:00
f997ae6afb Implement Twig_Extension_GlobalsInterface to remove deprecation 2016-08-23 07:47:55 +02:00
8315130a75 Display entries number for each category 2016-08-23 07:47:55 +02:00
ee4442f42a CS 2016-08-23 07:40:36 +02:00
7149aa5781 Proper parameter name, simplify logic & phpdoc 2016-08-23 07:40:36 +02:00
de3d716ae4 Add option to disable registration 2016-08-23 07:40:36 +02:00
97e7ad4dc7 Remove duplicate pager on baggy 2016-08-23 07:36:43 +02:00
a0e1eafc35 Add some tests
Also, retrieve tag from the request instead of the query (which will be the same but it's more easy to test).

Moved down `deleteTagAction` because it conflicted with the new action:

  api_delete_tag => /api/tags/{tag}.{_format}
  api_delete_tags_label => /api/tags/label.{_format}

And finally, throw exception when a tag is not found before removing it.
2016-08-23 07:26:58 +02:00
9bf83f1fb8 CS 2016-08-23 07:26:58 +02:00
4da01f492b Delete tag or tags by label
Tests not included
2016-08-23 07:26:58 +02:00
e71cef0bb8 Fix typos in field name 2016-08-23 07:26:58 +02:00
119914e65d added name on client 2016-08-23 07:26:58 +02:00
267e8d6361 Add tests for tag list routes 2016-08-23 07:26:18 +02:00
371bcca0f6 Translations and baggy view for tags 2016-08-23 07:26:18 +02:00
891456ba9a Links on each tag in Tags view 2016-08-23 07:24:42 +02:00
d5de909bbc Update SymfonyRequirements 2016-08-23 07:24:00 +02:00
79efca1e6f Merge remote-tracking branch 'origin/master' into 2.1 2016-08-22 23:03:16 +02:00
474b086656 Simplify the initialization of the plugin dotdotdot 2016-08-22 23:59:20 +03:00
e32aea53ab Added the jquery library dotdotdot ( http://dotdotdot.frebsite.nl/ ) that allows you to clip a text on the second line and fixed cut entries title in card view 2016-08-22 23:34:44 +03:00
9c545fe028 Added name on client
- Fix typos in field name
- Added migration for name field in API client table

Manually cherry-picked from PR
https://github.com/wallabag/wallabag/pull/2171
2016-08-22 20:18:27 +02:00
db4d63fc1a Upgrade PHPUnit to version 5
- Fix deprecated getMock
- Use PHPUnit 4 for PHP 5.5 build

Manually cherry-picked from PR
https://github.com/wallabag/wallabag/pull/2201
2016-08-22 20:16:50 +02:00
80bb0b7344 Merge pull request #2226 from wallabag/prepare-207
Prepare wallabag 2.0.7
2016-08-22 10:40:24 +02:00
5068544e10 Prepare wallabag 2.0.7 2016-08-22 10:08:21 +02:00
c649d43381 Merge pull request #2222 from wallabag/add-date-on-article-view
Added creation date and reading time on article view
2016-08-22 09:40:21 +02:00
d35ba2c3d6 Display text on baggy
Instead of using icons (which aren't available) display real text for reading time & creation date
2016-08-21 22:22:34 +02:00
4e4e8e9899 Merge pull request #2221 from wallabag/replace-favorite-star
Replaced favorite word/icon with star one
2016-08-21 22:11:20 +02:00
8642f14220 Merge pull request #2224 from wallabag/avoid-exception-import
Avoid breaking import when fetching fail
2016-08-20 14:31:32 +02:00
19d9efab32 Avoid breaking import when fetching fail
graby will throw an Exception in some case (like a bad url, a restricted url or a secured pdf).

Import doesn't handle that case and break the whole import.
With that commit the import isn't stopped but the entry is just skipped.

Also, as a  bonus, I've added extra test on WallabagImportV2 when the json is empty.
2016-08-20 01:17:26 +02:00
e7732deb1f Changed code indentation 2016-08-18 15:37:44 +02:00
eecd7e406d Fixed some translations 2016-08-18 15:30:28 +02:00
4e1be104ab Added creation date and reading time on article view
Fix #2034
2016-08-18 15:23:19 +02:00
519ba0b5e7 Replaced favorite word/icon with star one
Fix #2041
2016-08-18 14:27:17 +02:00
e408d7e895 Merge pull request #2220 from Rurik19/master
Enable PATCH method for CORS in API part
2016-08-18 11:56:02 +02:00
41c9eecfa7 Enable PATCH method for CORS in API part 2016-08-18 14:30:32 +05:00
b762ab3cce Merge pull request #2134 from wallabag/hhvm
Run tests on an uptodate HHVM
2016-08-17 18:00:17 +02:00
fc41abb990 Run tests on an uptodate HHVM
Using some tricks from symfony/symfony
2016-08-17 16:41:36 +02:00
782390a80e Merge pull request #2095 from wallabag/fix-2auth-form
Fix form user display when 2FA is disabled
2016-08-17 15:17:07 +02:00
0cecfa2536 CS 2016-08-17 14:36:20 +02:00
6dfac457d8 Fix tests
Ensure tests after the InstallCommand test will have a clean database.
Previous attempt failed because of a foreign key

Also, nightly on Travis seems to target PHP 7.2-dev, so I put 7.1 in requirement and moved nightly in allowed failures.
And it seems xdebug isn't shipped with PHP 7.1, so I added a workaround to avoid build to fail when trying to remove xdebug.ini file.
2016-08-17 14:34:39 +02:00
9a5c5c330e Disable autobranch & commit 2016-08-17 12:31:16 +02:00
7dbedfc8a3 Enable Zappr 2016-08-17 12:29:47 +02:00
e49c62fac8 Fix form user display for baggy theme 2016-08-17 11:41:46 +02:00
8f5e220327 Fix form user display when 2FA is disabled 2016-08-17 11:41:46 +02:00
2e16a90339 Merge pull request #2216 from Rurik19/master
Enable CORS headers for OAUTH part
2016-08-16 14:22:43 +02:00
848c2e1b97 Enable CORS headers for OAUTH part 2016-08-12 13:01:53 +05:00
00acc0d006 Changed URL for scrutinizer in README 2016-08-11 20:57:06 +02:00
b10a422e1f Merge pull request #2202 from wallabag/fix-phpdoc
add some missing phpdoc parameters
2016-07-24 11:49:21 +02:00
8cb869ea95 add some missing phpdoc parameters 2016-07-24 11:47:03 +02:00
0faeabefa7 Merge remote-tracking branch 'origin/master' into 2.1 2016-07-20 12:02:02 +02:00
2bb138ef6d Merge pull request #2183 from wallabag/tags-entries-view-baggy
Bring tags on entries view to baggy
2016-07-18 15:17:33 +02:00
1d4d9aaf29 Bring tags on entries view to baggy
Also, a couple of UI improvement and CSS fixing
2016-07-01 13:59:30 +02:00
9dbd3e9302 Merge pull request #2174 from wallabag/api-filter-tags
Add filter for tags on API
2016-07-01 10:35:45 +02:00
4f0558a0d4 fix merge issue 2016-06-29 20:52:37 +02:00
28803f106b Add filter for tags on API 2016-06-29 09:55:57 +02:00
a314b920bf Merge pull request #2176 from wallabag/add-since-parameter
Add since parameter
2016-06-29 09:34:39 +02:00
e43c78abd9 CS 2016-06-25 23:19:21 +02:00
e5fb89e5d3 Add since parameter 2016-06-25 21:05:50 +02:00
33e2aec18b Merge pull request #2170 from wallabag/addTagsOnEntriesView
Add tags on entries view and minor ui fixes
2016-06-24 14:23:38 +02:00
eef833d644 uniformize tags on article view too 2016-06-24 12:07:45 +02:00
e7aed21b33 add line to other languages 2016-06-24 11:45:42 +02:00
b1c9b78203 Merge pull request #2169 from wallabag/fix-fonts
fix font paths
2016-06-24 09:20:52 +02:00
a15022db96 minor ui fixes 2016-06-23 23:13:25 +02:00
91826e3ca2 fix typo on icons 2016-06-23 22:51:09 +02:00
25dc07d3c9 Add tags on entries view
Should be tested on old browsers
2016-06-23 22:50:39 +02:00
dafc5cf993 fix font paths 2016-06-23 22:10:12 +02:00
20218495a7 Merge pull request #2168 from wallabag/fix-npm-dep-old-nodejs
Add modules when NodeJS versions are too low.
2016-06-23 15:09:57 +02:00
9ccb96cfe2 Add modules when NodeJS versions are too low.
And eventually one required anyway.
2016-06-23 14:34:59 +02:00
f49d9ca383 Merge branch 'master' into 2.1 2016-06-23 11:47:46 +02:00
49e2854d5c Merge pull request #2142 from wallabag/v2-use-npm
Manage assets through npm
2016-06-23 09:25:01 +02:00
4eaaa27bb5 Update symlink to php-cs-fixer 2016-06-23 09:15:50 +02:00
4e411208cc Try to find bad redirection after delete
Instead of checking for the whole absolute url, we just check with the relative url.
If the referer ends with the relative url of the deleted entry, don't redirect to the referer.
2016-06-23 09:15:50 +02:00
11493858a7 Use friendsofphp instead of fabpot
The fabpot's one is now depreacted
2016-06-23 09:15:50 +02:00
3247b90776 translate documentation to German 2016-06-23 09:15:50 +02:00
afbe800be2 Corrected Regex for lighttpd rewrite 2016-06-23 09:15:50 +02:00
eae86d3403 Prepare wallabag 2.0.5 2016-06-23 09:15:50 +02:00
e42b13bcff Change ManyToMany between entry & tag
Following https://gist.github.com/Ocramius/3121916

Be sure to remove the related entity when removing an entity.

Let say you have Entry -> EntryTag -> Tag.
If you remove the entry:

 - before that commit, the EntryTag will stay (at least using SQLite).
 - with that commit, the related entity is removed
2016-06-23 09:15:50 +02:00
6334f2cac1 Display a message when saving an entry failed
When saving an entry fail because of database error we previously just returned `false`.
Now we got an error in the log and the displayed notice to the user is updated too.
2016-06-23 09:15:50 +02:00
f06f840c9d Move fixtures to the right place 2016-06-23 09:15:50 +02:00
af95c09c80 Fix the deletion of Tags/Entries relation when delete an entry
Fix #2121
2016-06-23 09:15:50 +02:00
26ed851f52 Add unread filter test to EntryControllerTest
Add a new test to the EntryControllerTest collection which checks that
only entries which have not been archived (and are treated as "unread")
are retrieved.
2016-06-23 09:15:50 +02:00
710f8e69d7 Add unread filter to entries pages
Add the ability to filter for unread pages in the filters menu.
2016-06-23 09:15:50 +02:00
496cfdc017 trailing comma 2016-06-09 20:08:57 +02:00
2e24d12027 remove block added twice 2016-06-09 19:07:41 +02:00
0743287f95 clean & lint stuff 2016-06-09 19:02:38 +02:00
5ecdfcd041 manage assets through npm
first draft

remote assetic totally

work

nearly there

use at least nodejs > 0.12

use proper version of grunt

bump nodejs version for travis

update npm

workaround for materialize

install node 5.0

add grunt-cli

baggy theme & cache node modules

cache bower & npm

make travis build assets on php7 only

exclude installing node & npm if not needed & use bash

clean & try to make icomoon work on baggy

ready

config for travis

rebase

make travis work

more travis work

impove travis & update deps

add missing pixrem deps

add module through oddly lost

ui updates

install latest nodejs

add install_dev.sh, link local binaries for npm/bower/grunt

ui improvements (mostly baggy)

fix travis build

no need to install on travis

Add unread filter to entries pages

Add the ability to filter for unread pages in the filters menu.

Add unread filter test to EntryControllerTest

Add a new test to the EntryControllerTest collection which checks that
only entries which have not been archived (and are treated as "unread")
are retrieved.

Improve English translation

Update FAQ

-Fix grammar
-Add notes about MTA, firewall, and SELinux

Update installation instructions

-Fix grammar
-Add SELinux section

add screenshots of android docu in English

Fix the deletion of Tags/Entries relation when delete an entry
Fix #2121

Move fixtures to the right place

Display a message when saving an entry failed

When saving an entry fail because of database error we previously just returned `false`.
Now we got an error in the log and the displayed notice to the user is updated too.

Change ManyToMany between entry & tag

Following https://gist.github.com/Ocramius/3121916

Be sure to remove the related entity when removing an entity.

Let say you have Entry -> EntryTag -> Tag.
If you remove the entry:

 - before that commit, the EntryTag will stay (at least using SQLite).
 - with that commit, the related entity is removed

Prepare wallabag 2.0.5

enforce older materialize version
2016-06-09 17:12:51 +02:00
235026e2c7 Enhance option in command 2016-05-27 09:43:49 +02:00
3fad6c74fe Add CLI import for wallabag v2 files 2016-05-27 09:43:48 +02:00
4b2774f8db Don't cut entries title in card view
Stop cutting titles arbitrary at caracter 42.
2016-05-21 10:39:49 +02:00
443 changed files with 151309 additions and 19689 deletions

10
.eslintrc.json Normal file
View File

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

13
.gitignore vendored
View File

@ -21,8 +21,10 @@
/vendor/
# Assets and user uploads
/web/bundles/
/web/uploads/
web/uploads/
!web/bundles
web/bundles/*
!web/bundles/wallabagcore
# Build
/app/build
@ -41,3 +43,10 @@ docker/data/
# To avoid crazy stuff on some PR, we must manually FORCE ADD IT on each new release
composer.lock
# assets stuff
node_modules/
bin
app/Resources/build/
!/src/Wallabag/CoreBundle/Resources/public
/src/Wallabag/CoreBundle/Resources/public/*

3
.stylelintrc Normal file
View File

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

View File

@ -1,5 +1,9 @@
language: php
services:
- rabbitmq
- redis
# faster builds on docker-container setup
sudo: false
@ -15,13 +19,19 @@ cache:
directories:
- vendor
- $HOME/.composer/cache
- node_modules
- $HOME/.cache/bower
- $HOME/.npm
php:
- 5.5
- 5.6
- 7.0
- 7.1
- nightly
- hhvm
node_js:
- "5"
env:
- DB=mysql
@ -32,12 +42,10 @@ matrix:
fast_finish: true
include:
- php: 7.0
env: CS_FIXER=run VALIDATE_TRANSLATION_FILE=run DB=sqlite
exclude:
- php: hhvm
env: DB=pgsql # driver for PostgreSQL currently unsupported by HHVM, requires 3rd party dependency
env: CS_FIXER=run VALIDATE_TRANSLATION_FILE=run ASSETS=build DB=sqlite
allow_failures:
- php: hhvm
- php: 7.1
- php: nightly
# exclude v1 branches
branches:
@ -45,17 +53,26 @@ branches:
- legacy
before_script:
- if [[ $TRAVIS_PHP_VERSION != hhvm ]]; then echo "memory_limit=-1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; fi;
- if [[ $TRAVIS_PHP_VERSION != hhvm ]]; then phpenv config-rm xdebug.ini; fi;
- PHP=$TRAVIS_PHP_VERSION
- 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;
- if [[ $DB = pgsql ]]; then psql -c 'create database wallabag_test;' -U postgres; fi;
install:
- if [[ $ASSETS = build ]]; then source ~/.nvm/nvm.sh && nvm install 5.0; fi;
- if [[ $ASSETS = build ]]; then npm install -g npm@latest; fi;
- if [[ $ASSETS = build ]]; then npm install; fi;
before_install:
- if [[ $TRAVIS_REPO_SLUG = wallabag/wallabag ]]; then cp .composer-auth.json ~/.composer/auth.json; fi;
script:
- travis_wait composer install --no-interaction --no-progress --prefer-dist -o
- travis_wait bash composer update --no-interaction --no-progress
- ant prepare-$DB
- phpunit -v
- if [ "$CS_FIXER" = "run" ]; then php bin/php-cs-fixer fix src/ --verbose --dry-run ; fi;
- if [ "$VALIDATE_TRANSLATION_FILE" = "run" ]; then php bin/console lint:yaml src/Wallabag/CoreBundle/Resources/translations -v ; fi;
- if [[ $VALIDATE_TRANSLATION_FILE = '' ]]; then phpunit -v ; fi;
- if [[ $CS_FIXER = run ]]; then php bin/php-cs-fixer fix src/ --verbose --dry-run ; fi;
- if [[ $VALIDATE_TRANSLATION_FILE = run ]]; then php bin/console lint:yaml src/Wallabag/CoreBundle/Resources/translations -v ; fi;
- if [[ $ASSETS = build ]]; then ./node_modules/grunt-cli/bin/grunt tests; fi;

26
.zappr.yaml Normal file
View File

@ -0,0 +1,26 @@
# see https://zappr.opensource.zalan.do/
autobranch: false
commit: false
approvals:
minimum: 1
ignore: pr_opener
pattern: "^(:\\+1:|👍)$"
veto:
pattern: "^(:\\-1:|👎)$"
from:
orgs:
- wallabag
collaborators: true
specification:
title:
minimum-length:
enabled: true
length: 8
body:
minimum-length:
enabled: true
length: 8
contains-url: false
contains-issue-number: false
template:
differs-from-body: true

View File

@ -2,6 +2,109 @@
All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
## [2.1.1] - 2016-10-04
### Changed
- [#2340](https://github.com/wallabag/wallabag/pull/2340) Updated german translation (Strubbl)
- [#2341](https://github.com/wallabag/wallabag/pull/2341) Updated polish translation (Mateusz Rumiński)
- [#2354](https://github.com/wallabag/wallabag/pull/2354) Add php-bcmath extension to requirements (Godinez Pablo)
### Fixed
- [#2338](https://github.com/wallabag/wallabag/pull/2338) Fixed 2.1 installation (Jeremy Benoist)
- [#2345](https://github.com/wallabag/wallabag/issues/2345) Fixed 2.0.x update (Jeremy Benoist)
- [#2353](https://github.com/wallabag/wallabag/pull/2353) Fixed assets problem (Thomas Citharel)
- [#2359](https://github.com/wallabag/wallabag/pull/2359) Create config even if user is disabled (Jeremy Benoist)
## [2.1.0] - 2016-10-03
### Added
- [#1990](https://github.com/wallabag/wallabag/pull/1990) Added command line import for wallabag files (Nicolas Lœuillet)
- [#2142](https://github.com/wallabag/wallabag/pull/2142) Manage assets through npm (Thomas Citharel)
- [#2174](https://github.com/wallabag/wallabag/pull/2174) Added filter for tags on API (Thomas Citharel)
- [#2176](https://github.com/wallabag/wallabag/pull/2176) Added `since` parameter in API (Thomas Citharel)
- [#2170](https://github.com/wallabag/wallabag/pull/2170), [#2183](https://github.com/wallabag/wallabag/pull/2183) Added tags on entries view (Thomas Citharel)
- [#2186](https://github.com/wallabag/wallabag/pull/2186) Added option to disable registration (Thomas Citharel)
- [#1904](https://github.com/wallabag/wallabag/pull/1904) Share entry with a public URL (Nicolas Lœuillet)
- [#2243](https://github.com/wallabag/wallabag/pull/2243) Added list of untagged articles (Nicolas Lœuillet)
- [#2255](https://github.com/wallabag/wallabag/pull/2255) Added Readability import (Jeremy Benoist)
- [#2002](https://github.com/wallabag/wallabag/pull/2002) Added articles counter in sidebar (Nicolas Lœuillet)
- [#2275](https://github.com/wallabag/wallabag/pull/2275) Added date from entries in export (Jeremy Benoist)
- [#2266](https://github.com/wallabag/wallabag/pull/2266) Added tags counter in sidebar (Nicolas Lœuillet)
- [#1941](https://github.com/wallabag/wallabag/pull/1941) Added asynchronous import (Jeremy Benoist, Nicolas Lœuillet)
- [#2192](https://github.com/wallabag/wallabag/pull/2192) Added Firefox / Chrome bookmarks import (Thomas Citharel)
- [#2310](https://github.com/wallabag/wallabag/pull/2310) Added Instapaper import (Jeremy Benoist)
- [#2322](https://github.com/wallabag/wallabag/pull/2322) Added customized errors templates (Jeremy Benoist)
- [#2323](https://github.com/wallabag/wallabag/pull/2323) Added simple stats in footer (Jeremy Benoist)
- [#2324](https://github.com/wallabag/wallabag/pull/2324) Added ability to edit a tagging rule (Jeremy Benoist)
- [#2325](https://github.com/wallabag/wallabag/pull/2325) Added an `exists` endpoint in API (Jeremy Benoist)
### Changed
- [#2170](https://github.com/wallabag/wallabag/pull/2170) Entry titles are now smaller on entry view (Thomas Citharel)
- [#2245](https://github.com/wallabag/wallabag/pull/2245) Changed where page title is displayed (Nicolas Lœuillet)
- [#2274](https://github.com/wallabag/wallabag/pull/2274) Re use JsonResponse in API (Jeremy Benoist)
- [#2257](https://github.com/wallabag/wallabag/pull/2257) Use created date for imported content (Jeremy Benoist)
- [#2326](https://github.com/wallabag/wallabag/pull/2326) Quickstart layout (Nicolas Lœuillet)
### Fixed
- [#2328](https://github.com/wallabag/wallabag/pull/2328) Fixed duplicate URL with accents (Jeremy Benoist)
- [#2319](https://github.com/wallabag/wallabag/pull/2319) Fixed `gd` extension missing in Dockerfile (Pascal Martin)
- [#2313](https://github.com/wallabag/wallabag/pull/2313) Fixed long loading on Firefox (Nicolas Lœuillet)
- [#2320](https://github.com/wallabag/wallabag/pull/2320) Fixed user config which wasn't created in some cases (Jeremy Benoist)
- [#2301](https://github.com/wallabag/wallabag/pull/2301) Fixed feeds not syncing on android application (Thomas Citharel)
- [#2308](https://github.com/wallabag/wallabag/pull/2308) Fixed duplicate tags on import (Jeremy Benoist)
- [#2297](https://github.com/wallabag/wallabag/pull/2297) Fixed epub export with special characters in title (morhelluin)
- [#2292](https://github.com/wallabag/wallabag/pull/2292) Fixed label for mark as read link in entry view (Nicolas Lœuillet)
- [#2260](https://github.com/wallabag/wallabag/pull/2260) Fixed different font-size for labels in config screen (Nicolas Lœuillet)
- [#2242](https://github.com/wallabag/wallabag/pull/2242) Fixed print / article views (Nicolas Lœuillet)
- [#2328](https://github.com/wallabag/wallabag/pull/2328) Avoid duplicate url with accents (Jeremy Benoist)
- [#2330](https://github.com/wallabag/wallabag/pull/2330) Remove error message when creating ePub versions (Paulino Michelazzo)
- [#2331](https://github.com/wallabag/wallabag/pull/2331) Fix parameters in API links (Jeremy Benoist)
### Removed
- [#2318](https://github.com/wallabag/wallabag/pull/2318) Removed duplicated templates files (Nicolas Lœuillet)
- [#2287](https://github.com/wallabag/wallabag/pull/2287) Useless area in footer for material theme (Nicolas Lœuillet)
## [2.0.8] - 2016-09-07
### Added
- [#2262](https://github.com/wallabag/wallabag/pull/2262) Added a check for the database connection during installation (Jeremy Benoist)
- [#2235](https://github.com/wallabag/wallabag/pull/2235) Added configuration for german documentation website, [available here](http://doc.wallabag.org/de/latest/) (Nicolas Lœuillet)
### Changed
- [graby](https://github.com/j0k3r/graby/releases/tag/1.4.3) Update Graby version, which now handles ZIP files (Jeremy Benoist)
- [#2230](https://github.com/wallabag/wallabag/pull/2230) Changed title display in card view (Danilow Alexandr)
### Fixed
- [#2234](https://github.com/wallabag/wallabag/pull/2234) Fixed mailto link in documentation (Christian Studer)
- [#2241](https://github.com/wallabag/wallabag/pull/2241) Fixed the height of the "Add new article" field in Chrome (Danilow Alexandr)
- [#2238](https://github.com/wallabag/wallabag/pull/2238) Fixed login page in Qupzilla (Danilow Alexandr)
## [2.0.7] - 2016-08-22
### Added
- [#2222](https://github.com/wallabag/wallabag/pull/2222) Added creation date and reading time on article view (Nicolas Lœuillet)
- [#2134](https://github.com/wallabag/wallabag/pull/2134) Run tests on an uptodate HHVM (Jeremy Benoist)
### Changed
- [#2221](https://github.com/wallabag/wallabag/pull/2221) Replaced favorite word/icon with star one (Nicolas Lœuillet)
### Fixed
- [#2224](https://github.com/wallabag/wallabag/pull/2224) Avoid breaking import when fetching fail (Jeremy Benoist)
- [#2216](https://github.com/wallabag/wallabag/pull/2216), [#2220](https://github.com/wallabag/wallabag/pull/2220) Enable CORS headers for OAUTH part (Rurik19)
- [#2095](https://github.com/wallabag/wallabag/pull/2095) Fix form user display when 2FA is disabled (Nicolas Lœuillet)
## [2.0.6] - 2016-08-10
### Changed

239
Gruntfile.js Normal file
View File

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

View File

@ -1,5 +1,5 @@
[![Build Status](https://api.travis-ci.org/wallabag/wallabag.svg?branch=master)](https://travis-ci.org/wallabag/wallabag)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/wallabag/wallabag/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/wallabag/wallabag/?branch=v2)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/wallabag/wallabag/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/wallabag/wallabag/?branch=master)
[![Gitter](https://badges.gitter.im/gitterHQ/gitter.svg)](https://gitter.im/wallabag/wallabag)
# What is wallabag?
@ -10,13 +10,13 @@ More informations on our website: [wallabag.org](https://wallabag.org)
# Install wallabag
If you don't have it yet, please [install composer](https://getcomposer.org/download/) or be sure to use Composer 1.2 (`composer selfupdate` can help you about that).
If you don't have it yet, please [install composer](https://getcomposer.org/download/) or be sure to use Composer 1.2 (`composer selfupdate` can help you about that). Read [our documentation](http://doc.wallabag.org) to have more information about installation.
Then you can install wallabag by executing the following commands:
```
git clone https://github.com/wallabag/wallabag.git
cd wallabag
git checkout 2.0.6
git checkout 2.1.1
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console wallabag:install --env=prod
php bin/console server:run --env=prod

View File

@ -13,7 +13,6 @@ class AppKernel extends Kernel
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new FOS\RestBundle\FOSRestBundle(),
@ -39,6 +38,7 @@ class AppKernel extends Kernel
new Wallabag\UserBundle\WallabagUserBundle(),
new Wallabag\ImportBundle\WallabagImportBundle(),
new Wallabag\AnnotationBundle\WallabagAnnotationBundle(),
new OldSound\RabbitMqBundle\OldSoundRabbitMqBundle(),
];
if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {

View File

@ -0,0 +1,46 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class Version20160410190541 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix') . $tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$this->addSql('ALTER TABLE `'.$this->getTable('entry').'` ADD `uuid` LONGTEXT DEFAULT NULL');
$this->addSql("INSERT INTO `".$this->getTable('craue_config_setting')."` (`name`, `value`, `section`) VALUES ('share_public', '1', 'entry')");
}
/**
* @param Schema $schema
*/
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.');
$this->addSql('ALTER TABLE `'.$this->getTable('entry').'` DROP `uuid`');
$this->addSql("DELETE FROM `".$this->getTable('craue_config_setting')."` WHERE `name` = 'share_public'");
}
}

View File

@ -0,0 +1,48 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class Version20160812120952 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix') . $tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
if ($this->connection->getDatabasePlatform()->getName() == 'sqlite') {
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name longtext DEFAULT NULL');
} else {
$this->addSql('ALTER TABLE '.$this->getTable('oauth2_clients').' ADD name longtext COLLATE \'utf8_unicode_ci\' DEFAULT NULL');
}
}
/**
* @param Schema $schema
*/
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');
}
}

View File

@ -0,0 +1,42 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class Version20160911214952 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix') . $tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$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\')');
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
}
}

View File

@ -0,0 +1,46 @@
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class Version20160916201049 extends AbstractMigration implements ContainerAwareInterface
{
/**
* @var ContainerInterface
*/
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
private function getTable($tableName)
{
return $this->container->getParameter('database_table_prefix') . $tableName;
}
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$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';");
}
/**
* @param Schema $schema
*/
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')");
}
}

View File

@ -8,7 +8,8 @@ export_csv: Aktiver eksport til CSV
export_json: Aktiver eksport til JSON
export_txt: Aktiver eksport til TXT
export_xml: Aktiver eksport til XML
pocket_consumer_key: Brugers nøgle til Pocket for at importere materialer (https://getpocket.com/developer/docs/authentication)
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
# import_with_redis: Enable Redis to import data asynchronously
shaarli_url: Shaarli-URL, hvis tjenesten er aktiv
share_diaspora: Aktiver deling til Diaspora
share_mail: Aktiver deling med email
@ -27,3 +28,4 @@ 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

View File

@ -8,7 +8,8 @@ export_csv: CSV-Export aktivieren
export_json: JSON-Export aktivieren
export_txt: TXT-Export aktivieren
export_xml: XML-Export aktivieren
pocket_consumer_key: Consumer-Key für Pocket, um Inhalte zu importieren (https://getpocket.com/developer/docs/authentication)
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
# import_with_redis: Enable Redis to import data asynchronously
shaarli_url: Shaarli-URL, sofern der Service aktiviert ist
share_diaspora: Teilen zu Diaspora aktiveren
share_mail: Teilen via E-Mail aktiveren
@ -27,3 +28,4 @@ piwik_site_id: ID deiner Webseite in Piwik
piwik_enabled: Piwik aktivieren
demo_mode_enabled: "Test-Modus aktivieren? (nur für die öffentliche wallabag-Demo genutzt)"
demo_mode_username: "Test-Benutzer"
# share_public: Allow public url for entries

View File

@ -8,7 +8,8 @@ export_csv: Enable CSV export
export_json: Enable JSON export
export_txt: Enable TXT export
export_xml: Enable XML export
pocket_consumer_key: Consumer key for Pocket to import contents (https://getpocket.com/developer/docs/authentication)
import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
import_with_redis: Enable Redis to import data asynchronously
shaarli_url: Shaarli URL, if the service is enabled
share_diaspora: Enable share to Diaspora
share_mail: Enable share by email
@ -27,3 +28,4 @@ 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

View File

@ -8,7 +8,8 @@ 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
pocket_consumer_key: Consumer key for Pocket to import contents (https://getpocket.com/developer/docs/authentication)
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
# import_with_redis: Enable Redis to import data asynchronously
shaarli_url: Shaarli URL, si el servicio está activado
share_diaspora: Activar compartir con Diaspora
share_mail: Activar compartir con email
@ -27,3 +28,4 @@ piwik_site_id: ID de tu website de Piwik
piwik_enabled: Activar Piwik
demo_mode_enabled: "Activar modo demo (sólo usado para la demo de wallabag)"
demo_mode_username: "Nombre de usuario demo"
# share_public: Allow public url for entries

View File

@ -8,7 +8,8 @@ export_csv: فعال‌سازی برون‌سپاری به CSV
export_json: فعال‌سازی برون‌سپاری به JSON
export_txt: فعال‌سازی برون‌سپاری به TXT
export_xml: فعال‌سازی برون‌سپاری به XML
pocket_consumer_key: کلید کاربری Pocket برای درون‌ریزی مطالب (https://getpocket.com/developer/docs/authentication)
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
# import_with_redis: Enable Redis to import data asynchronously
shaarli_url: نشانی Shaarli، اگر فعال بود
share_diaspora: فعال‌سازی هم‌رسانی به Diaspora
share_mail: فعال‌سازی هم‌رسانی با ایمیل
@ -22,3 +23,9 @@ export: "برون‌سپاری"
import: "درون‌ریزی"
misc: "غیره"
modify_settings: "اعمال"
# piwik_host: Host of your website in Piwik
# piwik_site_id: ID of your website in Piwik
# piwik_enabled: Enable Piwik
# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
# demo_mode_username: "Demo user"
# share_public: Allow public url for entries

View File

@ -8,7 +8,8 @@ export_csv: Activer l'export CSV
export_json: Activer l'export JSON
export_txt: Activer l'export TXT
export_xml: Activer l'export XML
pocket_consumer_key: Clé d'authentification Pocket pour importer les données (https://getpocket.com/developer/docs/authentication)
import_with_rabbitmq: Activer RabbitMQ pour gérer les imports de façon asynchrone
import_with_redis: Activer Redis pour gérer les imports de façon asynchrone
shaarli_url: URL de Shaarli, si le service Shaarli est activé
share_diaspora: Activer le partage vers Diaspora
share_mail: Activer le partage par email
@ -27,3 +28,4 @@ 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

View File

@ -8,7 +8,8 @@ export_csv: Abilita esportazione CSV
export_json: Abilita esportazione JSON
export_txt: Abilita esportazione TXT
export_xml: Abilita esportazione XML
pocket_consumer_key: Consumer key per Pocket per importare i contenuti (https://getpocket.com/developer/docs/authentication)
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
# import_with_redis: Enable Redis to import data asynchronously
shaarli_url: Shaarli URL, se il servizio è abilitato
share_diaspora: Abilita la condivisione con Diaspora
share_mail: Abilita la condivisione per email
@ -27,3 +28,4 @@ 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

View File

@ -8,7 +8,8 @@ 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
pocket_consumer_key: Clau d'autentificacion Pocket per importar las donadas (https://getpocket.com/developer/docs/authentication)
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
# import_with_redis: Enable Redis to import data asynchronously
shaarli_url: URL de Shaarli, se lo servici Shaarli es activat
share_diaspora: Activar lo partatge cap a Diaspora
share_mail: Activar lo partatge per corrièl
@ -27,3 +28,4 @@ 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

View File

@ -8,7 +8,8 @@ export_csv: Włącz eksport do CSV
export_json: Włącz eksport do JSON
export_txt: Włącz eksport do TXT
export_xml: Włącz eksport do XML
pocket_consumer_key: Klucz klienta Pocket do importu zawartości (https://getpocket.com/developer/docs/authentication)
import_with_rabbitmq: Włącz RabbitMQ dla asynchronicznego importu danych
import_with_redis: Włącz Redis dla asynchronicznego importu danych
shaarli_url: Adress URL Shaarli, jeżeli usługa jest włączona
share_diaspora: Włącz udostępnianie dla Diaspora
share_mail: Włącz udostępnianie przez email
@ -22,3 +23,9 @@ export: "eksport"
import: "import"
misc: "różne"
modify_settings: "zatwierdz"
piwik_host: Host twojej strony Piwik
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

View File

@ -8,7 +8,8 @@ export_csv: Permite exportare CSV
export_json: Permite exportare JSON
export_txt: Permite exportare TXT
export_xml: Permite exportare XML
pocket_consumer_key: Cheie consumator pentru importarea contentului din Pocket (https://getpocket.com/developer/docs/authentication)
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
# import_with_redis: Enable Redis to import data asynchronously
shaarli_url: Shaarli URL, dacă serviciul este permis
share_diaspora: Permite share către Diaspora
share_mail: Permite share prin email
@ -22,3 +23,9 @@ export: "exportă"
import: "importă"
misc: "diverse"
modify_settings: "aplică"
# piwik_host: Host of your website in Piwik
# piwik_site_id: ID of your website in Piwik
# piwik_enabled: Enable Piwik
# demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
# demo_mode_username: "Demo user"
# share_public: Allow public url for entries

View File

@ -0,0 +1,31 @@
# download_pictures: Download pictures on your server
# carrot: Enable share to Carrot
# diaspora_url: Diaspora URL, if the service is enabled
# export_epub: Enable ePub export
# export_mobi: Enable .mobi export
# export_pdf: Enable PDF export
# export_csv: Enable CSV export
# export_json: Enable JSON export
# export_txt: Enable TXT export
# export_xml: Enable XML export
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
# import_with_redis: Enable Redis to import data asynchronously
# shaarli_url: Shaarli URL, if the service is enabled
# share_diaspora: Enable share to Diaspora
# share_mail: Enable share by email
# share_shaarli: Enable share to Shaarli
# share_twitter: Enable share to Twitter
# show_printlink: Display a link to print content
# wallabag_support_url: Support URL for wallabag
# wallabag_url: URL of *your* wallabag instance
# entry: "article"
# export: "export"
# import: "import"
# misc: "misc"
# modify_settings: "apply"
# piwik_host: Host of your website in Piwik
# 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

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

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

View File

@ -0,0 +1,50 @@
const $ = require('jquery');
function supportsLocalStorage() {
try {
return 'localStorage' in window && window.localStorage !== null;
} catch (e) {
return false;
}
}
function savePercent(id, percent) {
if (!supportsLocalStorage()) { return false; }
localStorage[`wallabag.article.${id}.percent`] = percent;
return true;
}
function retrievePercent(id) {
if (!supportsLocalStorage()) { return false; }
const bheight = $(document).height();
const percent = localStorage[`wallabag.article.${id}.percent`];
const scroll = bheight * percent;
$('html,body').animate({ scrollTop: scroll }, 'fast');
return true;
}
function initFilters() {
// no display if filters not available
if ($('div').is('#filters')) {
$('#button_filters').show();
$('.button-collapse-right').sideNav({ edge: 'right' });
$('#clear_form_filters').on('click', () => {
$('#filters input').val('');
$('#filters :checked').removeAttr('checked');
return false;
});
}
}
function initExport() {
// no display if export not available
if ($('div').is('#export')) {
$('#button_export').show();
$('.button-collapse-right').sideNav({ edge: 'right' });
}
}
export { savePercent, retrievePercent, initFilters, initExport };

View File

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

View File

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

View File

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

View File

@ -6,8 +6,8 @@
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
html {
@ -18,7 +18,7 @@ html {
body {
font-size: 1em;
line-height:1.5;
line-height: 1.5;
margin: 0;
}
@ -35,7 +35,7 @@ h6:first-child,
p:first-child,
ul:first-child,
ol:first-child,
dl:first-child{
dl:first-child {
margin-top: 0;
}
@ -43,14 +43,13 @@ code,
kbd,
pre,
samp {
font-family: monospace, serif;
font-family: monospace, serif;
}
pre {
white-space: pre-wrap;
white-space: pre-wrap;
}
.upper {
text-transform: uppercase;
}
@ -61,12 +60,14 @@ pre {
.inner {
margin: 0 auto;
max-width: 61.25em;/*980px*/
max-width: 61.25em; /* 980px */
}
table, img, figure {
table,
img,
figure {
max-width: 100%;
height :auto;
height: auto;
}
iframe {
@ -93,13 +94,13 @@ button,
input,
select,
textarea {
font-family: inherit;
font-size: 100%;
margin: 0;
font-family: inherit;
font-size: 100%;
margin: 0;
}
input[type="search"] {
-webkit-appearance: textfield;
-webkit-appearance: textfield;
}
/* ==========================================================================
@ -115,11 +116,17 @@ input[type="search"] {
display: none;
}
.dtable { display:table }
.dtable {
display: table;
}
.dtable > * { display:table-row; }
.dtable > * {
display: table-row;
}
.dtable > * > * { display:table-cell; }
.dtable > * > * {
display: table-cell;
}
.element-invisible {
border: 0;
@ -133,32 +140,60 @@ input[type="search"] {
}
.small {
font-size:0.8em;
font-size: 0.8em;
}
.big {
font-size: 1.2em;
}
/*Width*/
/* Width */
.w100 { width:100%; }
.w90 { width:90%; }
.w80 { width:80%; }
.w70 { width:70%; }
.w60 { width:60%; }
.w50 { width:50%; }
.w40 { width:40%; }
.w30 { width:30%; }
.w20 { width:20%; }
.w10 { width:10%; }
.w100 {
width: 100%;
}
.w90 {
width: 90%;
}
.w80 {
width: 80%;
}
.w70 {
width: 70%;
}
.w60 {
width: 60%;
}
.w50 {
width: 50%;
}
.w40 {
width: 40%;
}
.w30 {
width: 30%;
}
.w20 {
width: 20%;
}
.w10 {
width: 10%;
}
/* ==========================================================================
Internet Explorer
========================================================================== */
/*IE8 and IE9*/
/* IE8 and IE9 */
article,
aside,
@ -172,40 +207,20 @@ main,
nav,
section,
summary {
display: block;
display: block;
}
/*IE8 and IE9*/
/* IE8 and IE9 */
audio,
canvas,
video {
display: inline-block;
display: inline-block;
}
@media screen and (-webkit-min-device-pixel-ratio:0){
select{
@media screen and (-webkit-min-device-pixel-ratio: 0) {
select {
-webkit-appearance: none;
border-radius: 0;
}
}
/* ==========================================================================
Medias Queries
========================================================================== */
/*Desktop 1080px*/
@media screen and (max-width: 67.50em) {
}
/*Tablet 800px*/
@media screen and (max-width: 50em) {
}
/*Mobile 640px*/
@media screen and (max-width: 40em) {
}

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 307 KiB

Binary file not shown.

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 141 B

After

Width:  |  Height:  |  Size: 141 B

View File

Before

Width:  |  Height:  |  Size: 216 B

After

Width:  |  Height:  |  Size: 216 B

View File

Before

Width:  |  Height:  |  Size: 201 B

After

Width:  |  Height:  |  Size: 201 B

View File

Before

Width:  |  Height:  |  Size: 229 B

After

Width:  |  Height:  |  Size: 229 B

View File

Before

Width:  |  Height:  |  Size: 212 B

After

Width:  |  Height:  |  Size: 212 B

View File

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

View File

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

View File

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

View File

@ -0,0 +1,751 @@
/* ==========================================================================
Sommaire
0 = Common
1 = Nav
2 = Side-nav
3 = Filters slider
4 = Cards
5 = Article
6 = Media queries
7 = Font
8 = Others
========================================================================== */
/* ==========================================================================
0 = Common
========================================================================== */
@font-face {
font-family: icomoon;
src: url("../fonts/IcoMoon-Free.ttf");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
src: url(../fonts/MaterialIcons-Regular.eot);
/* For IE6-8 */
src: local("Material Icons"), local("MaterialIcons-Regular"), url(../fonts/MaterialIcons-Regular.woff2) format("woff2"), url(../fonts/MaterialIcons-Regular.woff) format("woff"), url(../fonts/MaterialIcons-Regular.ttf) format("truetype");
}
.material-icons {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 24px; /* Preferred icon size */
width: 1em;
height: 1em;
display: inline-block;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;
/* Support for all WebKit browsers. */
-webkit-font-smoothing: antialiased;
/* Support for Safari and Chrome. */
text-rendering: optimizeLegibility;
/* Support for Firefox. */
-moz-osx-font-smoothing: grayscale;
/* Support for IE. */
font-feature-settings: 'liga';
}
[class^="icon-"]::before,
[class*=" icon-"]::before {
font-family: icomoon;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
background-size: 24px;
/* Enable Ligatures ================ */
letter-spacing: 0;
-webkit-font-feature-settings: "liga";
-moz-font-feature-settings: "liga=1";
-moz-font-feature-settings: "liga";
-ms-font-feature-settings: "liga" 1;
-o-font-feature-settings: "liga";
font-feature-settings: "liga";
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-image {
background-size: 16px;
background-repeat: no-repeat;
padding-right: 1em !important;
padding-left: 1em !important;
}
.icon-eye::before {
content: "\e9ce";
}
.icon-no-eye::before {
content: "\e9d1";
}
.icon-calendar::before {
content: "\e953";
}
.icon-mail::before {
content: "\ea86";
}
.icon-time::before {
content: "\e952";
}
/* Carrot (http://carrot.org) */
.icon-image--carrot {
background-image: url("../../_global/img/icons/carrot-icon--black.png");
}
/* Diaspora */
.icon-image--diaspora {
background-image: url("../../_global/img/icons/diaspora-icon--black.png");
}
/* Shaarli */
.icon-image--shaarli {
background-image: url("../../_global/img/icons/shaarli.png");
}
body {
display: flex;
min-height: 100vh;
flex-direction: column;
background: #f0f0f0;
}
body.login main {
padding: 0;
min-height: 100vh;
}
.border-bottom {
border-bottom: 1px solid #ddd;
}
nav,
main,
footer {
padding-left: 240px;
}
main,
#content,
.valign-wrapper {
height: 100%;
}
#main {
flex: 1 0 auto;
}
.results {
height: 1em;
line-height: 30px;
}
.results .nb-results,
.results .pagination {
margin: 15px;
margin-bottom: 0;
}
.pagination {
float: right;
}
.pagination ul {
margin: 0 !important;
}
.pagination li {
padding: 0;
}
.pagination a {
padding: 0 10px;
height: 30px;
display: block;
}
.pagination .disabled {
margin-right: 10px;
margin-left: 10px;
}
div.pagination ul .prev.disabled,
div.pagination ul .next.disabled {
display: none;
}
.pagination li.active span {
padding: 0 10px;
height: 30px;
display: block;
color: #fff;
}
.page-footer .footer-copyright p {
display: inline;
}
.hidden {
display: none;
}
.picker__date-display {
display: none;
}
footer.page-footer {
margin-top: 10px;
padding-top: 0;
}
footer .row {
margin-bottom: 10px;
}
/* ==========================================================================
1 = Nav
========================================================================== */
nav input {
color: #aaa;
}
.nav-wrapper .button-collapse {
padding: 0 15px;
}
.nav-input {
display: none;
}
.nav-panels {
overflow: hidden;
}
.nav-panel-buttom li {
max-height: 64px;
}
.nav-panels {
transition: background 0.2s ease;
}
.nav-panel-add .add,
.nav-panel-search .search,
.nav-panels .close {
color: #444 !important;
}
.nav-panels .action {
padding-left: 0.75rem;
font-size: 2.1rem;
white-space: nowrap;
}
.nav-panels .input-field input {
display: block;
line-height: inherit;
padding-left: 4rem !important;
width: calc(100% - 8rem);
}
.nav-panels .input-field input:focus {
background-color: #fff;
border: 0;
box-shadow: none;
color: #444;
}
.input-field.nav-panel-add label {
left: 1rem;
}
.input-field.nav-panel-add .close {
position: absolute;
top: 0;
right: 1rem;
color: transparent;
cursor: pointer;
font-size: 2rem;
transition: 0.3s color;
}
#button_filters {
display: none;
}
#button_export {
display: none;
}
.input-field.nav-panel-add,
.input-field.nav-panel-add form {
height: 100%;
}
/* ==========================================================================
2 = Side-nav
========================================================================== */
.side-nav.fixed a {
font-size: 13px;
line-height: 44px;
height: 44px;
}
.side-nav .collapsible-header,
.side-nav.fixed .collapsible-header {
height: 45px;
line-height: 44px;
padding: 0 20px;
}
.bold > a {
font-weight: bold;
}
.side-nav > li.logo {
line-height: 0;
text-align: center;
}
#main .logo a {
height: 100pt;
}
#main .logo img {
height: 100pt;
width: 100pt;
}
#main .logo:hover {
background: transparent;
}
.side-nav li {
padding: 0;
}
.side-nav a {
margin: 0 1rem;
}
span.numberItems {
float: right;
}
/* ==========================================================================
* 3 = Filters slider
* ========================================================================== */
#filters button {
padding: 0;
width: 100%;
}
.side-nav.fixed.right-aligned {
right: -250px;
left: auto !important;
overflow-y: visible;
}
#filters div.with-checkbox {
height: 3rem;
margin-top: 0;
}
/* ==========================================================================
4 = Cards
========================================================================== */
main #content {
padding: 0 0.5rem;
}
main ul.row {
padding: 0 0.75rem;
}
.data .card .card-body {
height: 22em;
overflow: hidden;
}
.card .card-content .card-title {
line-height: 32px;
max-height: 64px;
}
.card .card-content i.right,
.card .card-reveal i.right {
margin-left: 0;
}
.card .card-entry-labels {
position: absolute;
top: 10px;
z-index: 90;
max-width: 50%;
}
.card .card-entry-labels li {
margin: 10px 10px 10px auto;
padding: 5px 12px 5px 16px;
background-color: rgba(0, 151, 167, 0.85);
border-radius: 0 3px 3px 0;
color: #fff;
cursor: default;
max-height: 2em;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.card .card-entry-labels-hidden {
margin-top: 5px;
}
.card .card-entry-labels-hidden li {
display: inline-block;
background-color: rgba(0, 151, 167, 0.85);
margin: 0 5px;
padding: 5px 12px;
border-radius: 3px;
color: #fff;
max-height: 2em;
max-width: calc(100% - 15px);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.card .card-content .estimatedTime {
margin-bottom: 10px;
}
.card .card-action .original {
line-height: 24px;
}
.card .card-action ul.links {
margin: 0;
font-size: 24px;
line-height: 24px;
}
.card .card-action a {
color: #fff;
margin: 0;
}
.card .card-action a:hover {
color: #fff;
}
.quickstart .card .card-action a,
.quickstart .card .card-action a:hover {
color: #fff !important;
}
.settings .div_tabs {
padding-bottom: 15px;
}
.card.sw {
max-width: 370px;
margin-left: auto;
margin-right: auto;
}
.card .card-image {
height: 14em;
}
.card .card-image .preview {
height: 14em;
background-size: cover;
background-repeat: no-repeat;
background-position: 50%;
}
/* ==========================================================================
5 = Article
========================================================================== */
#article {
font-size: 20px;
margin: 0 auto;
max-width: 40em;
}
#article img,
#article figure {
max-width: 100%;
height: auto;
}
#article > header > h1 {
font-size: 2em;
}
.reader-mode {
width: 95px !important;
transition: width 0.2s ease;
}
.reader-mode:hover {
width: 240px !important;
}
.reader-mode .collapsible-body {
height: 0;
overflow: hidden;
}
.reader-mode:hover .collapsible-body {
height: auto;
}
.reader-mode span {
opacity: 0;
transition: opacity 0.2s ease;
}
.reader-mode:hover span {
opacity: 1;
}
.progress {
position: fixed;
top: 0;
width: 100%;
height: 3px;
margin: 0;
z-index: 9999;
}
#article aside .link {
color: #000;
font-size: 0.8em;
text-decoration: none;
}
#article aside #list {
float: right;
margin: 0 15px 10px;
}
#article aside .chip {
background-color: rgba(0, 151, 167, 0.85);
color: #fff;
padding: 0 15px 0 10px;
}
#article aside .chip i {
color: #fff;
}
/* ==========================================================================
6 = Media queries
========================================================================== */
@media only screen and (max-width: 992px) {
header,
main,
footer {
padding-left: 0;
}
nav,
main,
footer {
padding-left: 0;
}
.pagination {
width: auto;
}
.reader-mode {
width: 240px !important;
}
.reader-mode span {
opacity: 1;
}
.tabs {
display: inline-block;
height: auto;
}
.tab {
min-width: 100%;
}
.indicator {
display: none;
}
.pagination li.prev,
.pagination li.next {
width: auto;
}
}
@media only screen and (min-width: 400px) {
.nav-panel-buttom {
float: right;
}
}
@media only screen and (min-width: 993px) and (max-width: 1180px) {
.row .col.l1 {
width: 25%;
margin-left: 0;
}
.row .col.l2 {
width: 33.33333%;
margin-left: 0;
}
.row .col.l3 {
width: 41.66667%;
margin-left: 0;
}
.row .col.l4 {
width: 50%;
margin-left: 0;
}
.row .col.l5 {
width: 58.33333%;
margin-left: 0;
}
.row .col.l6 {
width: 66.66667%;
margin-left: 0;
}
.row .col.l7 {
width: 75%;
margin-left: 0;
}
.row .col.l8 {
width: 83.33333%;
margin-left: 0;
}
.row .col.l9 {
width: 91.66667%;
margin-left: 0;
}
.row .col.l10 {
width: 100%;
margin-left: 0;
}
}
@media only screen and (max-width: 350px) {
.nb-results {
display: none;
}
}
/* ==========================================================================
7 = Font
========================================================================== */
.icon-google-plus2::before {
content: "\ea89";
}
.icon-facebook2::before {
content: "\ea8d";
}
.icon-twitter::before {
content: "\ea96";
}
.icon-apple::before {
content: "\eabf";
}
.icon-android::before {
content: "\eac1";
}
.icon-chrome::before {
content: "\eae5";
}
.icon-firefox::before {
content: "\eae6";
}
.icon-link::before {
content: "\e9cb";
}
footer [class^="icon-"],
footer [class*=" icon-"] {
font-size: 2em;
transition: text-shadow 0.2s ease;
padding-right: 10px;
}
footer [class^="icon-"]:hover,
footer [class*=" icon-"]:hover {
text-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}
/* ==========================================================================
8 = Others
========================================================================== */
/* force height on non-input field in the settings page */
div.settings div.input-field div,
div.settings div.input-field ul {
margin-top: 40px;
}
/* but avoid to kill all file input */
div.settings div.file-field div {
margin-top: inherit;
}
.input-field label.active {
font-size: 1rem;
}

View File

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

View File

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

View File

@ -30,7 +30,7 @@ framework:
assets: ~
wallabag_core:
version: 2.0.6
version: 2.1.1
paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
languages:
en: 'English'
@ -49,9 +49,13 @@ wallabag_core:
language: en
rss_limit: 50
reading_speed: 1
cache_lifetime: 10
wallabag_user:
registration_enabled: "%fosuser_registration%"
wallabag_import:
allow_mimetypes: ['application/octet-stream', 'application/json', 'text/plain']
allow_mimetypes: ['application/octet-stream', 'application/json', 'text/plain', 'text/csv']
resource_dir: "%kernel.root_dir%/../web/uploads/import"
# Twig Configuration
@ -60,19 +64,7 @@ twig:
strict_variables: "%kernel.debug%"
form_themes:
- "LexikFormFilterBundle:Form:form_div_layout.html.twig"
# Assetic Configuration
assetic:
debug: "%kernel.debug%"
use_controller: false
bundles: [ ]
#java: /usr/bin/java
filters:
cssrewrite: ~
#closure:
# jar: "%kernel.root_dir%/Resources/java/compiler.jar"
#yui_css:
# jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
exception_controller: wallabag_core.exception_controller:showAction
# Doctrine Configuration
doctrine:
@ -151,6 +143,11 @@ nelmio_cors:
#origin_regex: false
paths:
'^/api/':
allow_origin: ['*']
allow_headers: ['X-Custom-Auth']
allow_methods: ['POST', 'PUT', 'PATCH','GET', 'DELETE']
max_age: 3600
'^/oauth/':
allow_origin: ['*']
allow_headers: ['X-Custom-Auth']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
@ -219,3 +216,106 @@ lexik_maintenance:
response:
code: 503
status: "wallabag Service Temporarily Unavailable"
old_sound_rabbit_mq:
connections:
default:
host: "%rabbitmq_host%"
port: "%rabbitmq_port%"
user: "%rabbitmq_user%"
password: "%rabbitmq_password%"
vhost: /
lazy: true
producers:
import_pocket:
connection: default
exchange_options:
name: 'wallabag.import.pocket'
type: topic
import_readability:
connection: default
exchange_options:
name: 'wallabag.import.readability'
type: topic
import_instapaper:
connection: default
exchange_options:
name: 'wallabag.import.instapaper'
type: topic
import_wallabag_v1:
connection: default
exchange_options:
name: 'wallabag.import.wallabag_v1'
type: topic
import_wallabag_v2:
connection: default
exchange_options:
name: 'wallabag.import.wallabag_v2'
type: topic
import_firefox:
connection: default
exchange_options:
name: 'wallabag.import.firefox'
type: topic
import_chrome:
connection: default
exchange_options:
name: 'wallabag.import.chrome'
type: topic
consumers:
import_pocket:
connection: default
exchange_options:
name: 'wallabag.import.pocket'
type: topic
queue_options:
name: 'wallabag.import.pocket'
callback: wallabag_import.consumer.amqp.pocket
import_readability:
connection: default
exchange_options:
name: 'wallabag.import.readability'
type: topic
queue_options:
name: 'wallabag.import.readability'
callback: wallabag_import.consumer.amqp.readability
import_instapaper:
connection: default
exchange_options:
name: 'wallabag.import.instapaper'
type: topic
queue_options:
name: 'wallabag.import.instapaper'
callback: wallabag_import.consumer.amqp.instapaper
import_wallabag_v1:
connection: default
exchange_options:
name: 'wallabag.import.wallabag_v1'
type: topic
queue_options:
name: 'wallabag.import.wallabag_v1'
callback: wallabag_import.consumer.amqp.wallabag_v1
import_wallabag_v2:
connection: default
exchange_options:
name: 'wallabag.import.wallabag_v2'
type: topic
queue_options:
name: 'wallabag.import.wallabag_v2'
callback: wallabag_import.consumer.amqp.wallabag_v2
import_firefox:
connection: default
exchange_options:
name: 'wallabag.import.firefox'
type: topic
queue_options:
name: 'wallabag.import.firefox'
callback: wallabag_import.consumer.amqp.firefox
import_chrome:
connection: default
exchange_options:
name: 'wallabag.import.chrome'
type: topic
queue_options:
name: 'wallabag.import.chrome'
callback: wallabag_import.consumer.amqp.chrome

View File

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

View File

@ -34,6 +34,19 @@ parameters:
twofactor_sender: no-reply@wallabag.org
# fosuser stuff
fosuser_registration: true
fosuser_confirmation: true
from_email: no-reply@wallabag.org
rss_limit: 50
# RabbitMQ processing
rabbitmq_host: localhost
rabbitmq_port: 5672
rabbitmq_user: guest
rabbitmq_password: guest
# Redis processing
redis_host: localhost
redis_port: 6379

View File

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

View File

@ -7,6 +7,11 @@ wallabag_import:
type: annotation
prefix: /import
wallabag_user:
resource: "@WallabagUserBundle/Controller/"
type: annotation
prefix: /users
wallabag_api:
resource: "@WallabagApiBundle/Resources/config/routing.yml"
prefix: /

View File

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

View File

@ -16,6 +16,12 @@ services:
wallabag.twig_extension:
class: Wallabag\CoreBundle\Twig\WallabagExtension
public: false
arguments:
- "@wallabag_core.entry_repository"
- "@wallabag_core.tag_repository"
- "@security.token_storage"
- "%wallabag_core.cache_lifetime%"
- "@translator"
tags:
- { name: twig.extension }

View File

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

View File

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

View File

@ -48,7 +48,6 @@
"doctrine/doctrine-bundle": "^1.6",
"doctrine/doctrine-cache-bundle": "^1.2",
"twig/extensions": "~1.0",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "^2.3",
"symfony/monolog-bundle": "^2.8",
"sensio/distribution-bundle": "^5.0",
@ -81,22 +80,26 @@
"mnapoli/piwik-twig-extension": "^1.0",
"lexik/maintenance-bundle": "~2.1",
"ocramius/proxy-manager": "1.*",
"white-october/pagerfanta-bundle": "^1.0"
"white-october/pagerfanta-bundle": "^1.0",
"mouf/nodejs-installer": "~1.0",
"php-amqplib/rabbitmq-bundle": "^1.8",
"predis/predis": "^1.0",
"javibravo/simpleue": "^1.0"
},
"require-dev": {
"doctrine/doctrine-fixtures-bundle": "~2.2",
"doctrine/data-fixtures": "~1.1.1",
"sensio/generator-bundle": "^3.0",
"phpunit/phpunit": "~4.4",
"phpunit/phpunit": "~5.0",
"symfony/phpunit-bridge": "^3.0",
"friendsofphp/php-cs-fixer": "~1.9"
"friendsofphp/php-cs-fixer": "~1.9",
"m6web/redis-mock": "^2.0"
},
"scripts": {
"post-cmd": [
"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",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
],
@ -113,7 +116,6 @@
"symfony-var-dir": "var",
"symfony-web-dir": "web",
"symfony-tests-dir": "tests",
"symfony-assets-install": "relative",
"incenteev-parameters": {
"file": "app/config/parameters.yml"
}

7848
composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -11,6 +11,7 @@ services:
links:
- php:php
command: nginx -c /nginx.conf
php:
build:
context: docker/php
@ -30,6 +31,7 @@ services:
# If all DBMS are commented out, sqlite will be used as default
# - ./docker/postgres/env
# - ./docker/mariadb/env
#postgres:
# image: postgres:9
# ports:
@ -38,6 +40,7 @@ services:
# - ./docker/data/pgsql:/var/lib/postgresql/data
# env_file:
# - ./docker/postgres/env
#mariadb:
# image: mariadb:10
# ports:
@ -46,3 +49,13 @@ services:
# - ./docker/data/mariadb:/var/lib/mysql
# env_file:
# - ./docker/mariadb/env
rabbitmq:
image: rabbitmq:3-management
ports:
- "15672:15672"
redis:
image: redis
ports:
- "6379:6379"

View File

@ -4,9 +4,10 @@ FROM php:fpm
ARG timezone='Europe/Paris'
RUN apt-get update && apt-get install -y \
libmcrypt-dev libicu-dev libpq-dev libxml2-dev \
libmcrypt-dev libicu-dev libpq-dev libxml2-dev libpng12-dev libjpeg-dev \
&& /usr/local/bin/docker-php-ext-configure gd --with-jpeg-dir=/usr/include \
&& docker-php-ext-install \
iconv mcrypt mbstring intl pdo pdo_mysql pdo_pgsql
iconv mcrypt mbstring intl pdo pdo_mysql pdo_pgsql gd
RUN echo "date.timezone="$timezone > /usr/local/etc/php/conf.d/date_timezone.ini

55
docs/de/conf.py Normal file
View File

@ -0,0 +1,55 @@
# -*- coding: utf-8 -*-
#
# wallabag documentation build configuration file, created by
# sphinx-quickstart on Fri Oct 16 06:47:23 2015.
import sys
import os
extensions = []
templates_path = ['_templates']
source_suffix = '.rst'
master_doc = 'index'
project = u'wallabag-fr'
copyright = u'2013-2016, Nicolas Lœuillet - MIT Licence'
version = '2.1.0'
release = version
exclude_patterns = ['_build']
pygments_style = 'sphinx'
html_theme = 'default'
html_static_path = ['_static']
htmlhelp_basename = 'wallabagdedoc'
latex_elements = {
}
latex_documents = [
('index', 'wallabag-de.tex', u'wallabag Documentation',
u'Nicolas Lœuillet', 'manual'),
]
man_pages = [
('index', 'wallabagde', u'wallabag Documentation',
[u'Nicolas Lœuillet'], 1)
]
texinfo_documents = [
('index', 'wallabag', u'wallabag Documentation',
u'Nicolas Lœuillet', 'wallabag', 'wallabag is an opensource read-it-later.',
'Miscellaneous'),
]
##### Guzzle sphinx theme
import guzzle_sphinx_theme
html_translator_class = 'guzzle_sphinx_theme.HTMLTranslator'
html_theme_path = guzzle_sphinx_theme.html_theme_path()
html_theme = 'guzzle_sphinx_theme'
# Custom sidebar templates, maps document names to template names.
html_sidebars = {
'**': ['logo-text.html', 'globaltoc.html', 'searchbox.html']
}
# Register the theme as an extension to generate a sitemap.xml
extensions.append("guzzle_sphinx_theme")

View File

@ -44,7 +44,7 @@ wallabag laufen lassen
Eigenschaften mit den kommentierten zu ersetzen (mit Werten
mit ``env.`` Präfix)
#. ``composer install`` die Projektabhängigkeiten
#. ``php app/console wallabag:install``, um das Schema zu erstellen
#. ``php bin/console wallabag:install``, um das Schema zu erstellen
#. ``docker-compose up`` um die Container laufen zu lassen
#. Schließlich öffne http://localhost:8080/, um dein frisch
installiertes wallabag zu finden.

View File

@ -0,0 +1,77 @@
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
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 import_pocket -w
# for Readability import
bin/console rabbitmq:consumer import_readability -w
# for Instapaper import
bin/console rabbitmq:consumer import_instapaper -w
# for wallabag v1 import
bin/console rabbitmq:consumer import_wallabag_v1 -w
# for wallabag v2 import
bin/console rabbitmq:consumer import_wallabag_v2 -w
# for Firefox import
bin/console rabbitmq:consumer import_firefox -w
# for Chrome import
bin/console rabbitmq:consumer import_chrome -w

View File

@ -0,0 +1,71 @@
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
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 pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
# for Readability import
bin/console wallabag:import:redis-worker readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
# for Instapaper import
bin/console wallabag:import:redis-worker instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
# for wallabag v1 import
bin/console wallabag:import:redis-worker wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
# for wallabag v2 import
bin/console wallabag:import:redis-worker wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
# for Firefox import
bin/console wallabag:import:redis-worker firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
# for Chrome import
bin/console wallabag:import:redis-worker instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
Wenn du den Import nur für ein paar Nachrichten und nicht für alle starten willst, kannst du die Nummer (im folgenden Beispiel 12) angeben. Der Redis Worker wird dann nach der 12. Nachricht stoppen:
.. code:: bash
bin/console wallabag:import:redis-worker pocket -vv --maxIterations=12

View File

@ -17,6 +17,11 @@ Die Hauptdokumentation für diese Applikation ist in einigen Abschnitten organis
* :ref:`user-docs`
* :ref:`dev-docs`
Die Dokumentation ist in anderen Sprachen verfügbar :
* `Documentation in english <http://doc.wallabag.org/en/master/>`_
* `Documentation en français <http://doc.wallabag.org/fr/master/>`_
.. _user-docs:
.. toctree::
@ -25,7 +30,8 @@ Die Hauptdokumentation für diese Applikation ist in einigen Abschnitten organis
user/faq
user/installation
user/upgrade
user/upgrade-2.0.x-2.1.y
user/upgrade-2.0.x-2.0.y
user/migration
user/import
user/create_account
@ -50,3 +56,5 @@ Die Hauptdokumentation für diese Applikation ist in einigen Abschnitten organis
developer/documentation
developer/translate
developer/maintenance
developer/redis
developer/rabbitmq

2
docs/de/requirements.txt Normal file
View File

@ -0,0 +1,2 @@
Sphinx>=1.3.0,<1.4.0
guzzle_sphinx_theme>=0.7.0,<0.8.0

View File

@ -12,7 +12,7 @@ Das kann verschiedene Ursachen haben:
Wie kann ich helfen das zu beheben?
-----------------------------------
- `indem du uns eine Mail mit der URL des Artikels sendest <mailto:hello\@wallabag.org>`_
- `indem du uns eine Mail mit der URL des Artikels sendest <mailto:hello@wallabag.org>`_
- indem du versuchst das Laden des Artikels durch Erstellen einer Datei für den Artikel
selbst zu beheben
Du kannst `dieses Tool <http://siteconfig.fivefilters.org/>`__ nutzen.

View File

@ -23,6 +23,7 @@ nicht alle folgenden Pakete installieren.
- php-curl
- php-gettext
- php-tokenizer
- php-bcmath
wallabag nutzt PDO, um sich mit der Datenbank zu verbinden, darum benötigst du eines der folgenden Komponenten:
@ -46,7 +47,7 @@ Composer installieren:
curl -s http://getcomposer.org/installer | php
Du kannst eine spezifische Anleitung `hier <https://getcomposer.org/doc/00-intro.md>`__ finden:
Du kannst eine spezifische Anleitung `hier <https://getcomposer.org/doc/00-intro.md>`__ finden.
Um wallabag selbst zu installieren, musst du die folgenden Kommandos ausführen:
@ -54,7 +55,7 @@ Um wallabag selbst zu installieren, musst du die folgenden Kommandos ausführen:
git clone https://github.com/wallabag/wallabag.git
cd wallabag
git checkout 2.0.6
git checkout 2.1.1 --force
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console wallabag:install --env=prod
@ -86,6 +87,8 @@ Führe dieses Kommando aus, um das neueste Paket herunterzuladen und zu entpacke
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
(md5 hash: ``6c33520e29cc754b687f9cee0398dede``)
Jetzt lese die Dokumentation, um einen Virtualhost zu erstellen, dann greife auf dein wallabag zu.
Wenn du die Datenbankkonfiguration eingestellt hast, MySQL oder PostgreSQL zu nutzen, musst du einen Nutzer über das folgende Kommando erstellen ``php bin/console wallabag:install --env=prod``.

View File

@ -1,16 +1,17 @@
Wallabag updaten
================
Wallabag updaten 2.0.x -> 2.1.x
===============================
Update auf einem dedizierten Webserver
--------------------------------------
Das neueste Release ist auf https://www.wallabag.org/pages/download-wallabag.html veröffentlicht. Um deine wallabag Installation auf die neueste Version upzudaten, führe die folgenden Kommandos in deinem wallabag Ordner aus (ersetze ``2.0.3`` mit der neuesten Releasenummer):
Das neueste Release ist auf https://www.wallabag.org/pages/download-wallabag.html veröffentlicht. Um deine wallabag Installation auf die neueste Version upzudaten, führe die folgenden Kommandos in deinem wallabag Ordner aus (ersetze ``2.0.8`` mit der neuesten Releasenummer):
::
rm -rf var/cache/*
git fetch origin
git fetch --tags
git checkout 2.0.3
git checkout 2.0.8
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console cache:clear --env=prod
@ -25,6 +26,8 @@ Lade das neueste Release von wallabag herunter:
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
(md5 hash: ``4f84c725d1d6e3345eae0a406115e5ff``)
Entpacke das Archiv in deinen wallabag Ordner und ersetze ``app/config/parameters.yml`` mit deiner Datei.
Wenn du SQLite nutzt, musst auch das ``data/`` Verzeichnis in die neue Installation kopieren.

View File

@ -0,0 +1,65 @@
Wallabag updaten
================
.. warning::
Wenn du den Import von Pocket durch das Hinzufügen des Consumer Key in den internen Einstellungen konfiguriert hast, fertige bitte ein Backup deines Keys an, bevor du auf das neue Release migrierst: Du wirst den Key nach dem Update in der Konfiguration erneut eintragen müssen.
Update auf einem dedizierten Webserver
--------------------------------------
Das neueste Release ist auf https://www.wallabag.org/pages/download-wallabag.html veröffentlicht. Um deine wallabag-Installation auf die neueste Version zu aktualisieren, führe die folgenden Kommandos in deinem wallabag-Ordner aus (ersetze ``2.1.1`` mit der neuesten Releasenummer):
::
rm -rf var/cache/*
git fetch origin
git fetch --tags
git checkout 2.1.1 --force
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console doctrine:migrations:migrate --env=prod
php bin/console cache:clear --env=prod
Update auf einem Shared Webhosting
----------------------------------
Sichere deine ``app/config/parameters.yml`` Datei.
Lade das neueste Release von wallabag herunter:
.. code-block:: bash
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
(md5 hash: ``6c33520e29cc754b687f9cee0398dede``)
Entpacke das Archiv in deinen wallabag-Ordner und ersetze ``app/config/parameters.yml`` mit deiner Datei.
Bitte beachte, dass wir in dieser Version neue Parameter hinzugefügt haben. Du musst die Datei ``app/config/parameters.yml`` bearbeiten und die folgenden Zeilen hinzufügen (ersetze die Werte mit deiner Konfiguration):
.. code-block:: bash
# RabbitMQ processing
rabbitmq_host: localhost
rabbitmq_port: 5672
rabbitmq_user: guest
rabbitmq_password: guest
# Redis processing
redis_host: localhost
redis_port: 6379
Wenn du SQLite nutzt, musst auch das ``data/`` Verzeichnis in die neue Installation kopieren.
Leere den ``var/cache`` Ordner.
Du musst einige SQL-Abfragen ausführen, um die Datenbank zu aktualisieren. Wir nehmen in diesem Fall an, dass das Tabellenpräfix ``wallabag_`` ist und eine MySQL-Datenbank genutzt wird:
.. code-block:: sql
ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL;
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('share_public', '1', 'entry');
ALTER TABLE `wallabag_oauth2_clients` ADD name longtext COLLATE 'utf8_unicode_ci' DEFAULT NULL;
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_redis', '0', 'import');
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_rabbitmq', '0', 'import');
ALTER TABLE `wallabag_config` ADD `pocket_consumer_key` VARCHAR(255) DEFAULT NULL;
DELETE FROM `wallabag_craue_config_setting` WHERE `name` = 'pocket_consumer_key';

View File

@ -12,7 +12,7 @@ source_suffix = '.rst'
master_doc = 'index'
project = u'wallabag'
copyright = u'2013-2016, Nicolas Lœuillet - MIT Licence'
version = '2.0.0'
version = '2.1.0'
release = version
exclude_patterns = ['_build']
pygments_style = 'sphinx'

View File

@ -40,7 +40,7 @@ Run wallabag
#. Edit ``app/config/parameters.yml`` to replace ``database_*``
properties with commented ones (with values prefixed by ``env.``)
#. ``composer install`` the project dependencies
#. ``php app/console wallabag:install`` to create the schema
#. ``php bin/console wallabag:install`` to create the schema
#. ``docker-compose up`` to run the containers
#. Finally, browse to http://localhost:8080/ to find your freshly
installed wallabag.

View File

@ -0,0 +1,76 @@
Install RabbitMQ for asynchronous tasks
=======================================
In order to launch asynchronous tasks (useful for huge imports for example), we can use RabbitMQ.
Requirements
------------
You need to have RabbitMQ installed on your server.
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
Configuration and launch
~~~~~~~~~~~~~~~~~~~~~~~~
.. code:: bash
rabbitmq-plugins enable rabbitmq_management # (useful to have a web interface, available at http://localhost:15672/ (guest/guest)
rabbitmq-server -detached
Stop RabbitMQ
~~~~~~~~~~~~~
.. code:: bash
rabbitmqctl stop
Configure RabbitMQ in wallabag
------------------------------
Edit your ``parameters.yml`` file to edit RabbitMQ configuration. The default one should be ok:
.. code:: yaml
rabbitmq_host: localhost
rabbitmq_port: 5672
rabbitmq_user: guest
rabbitmq_password: guest
Launch RabbitMQ consumer
------------------------
Depending on which service you want to import from you need to enable one (or many if you want to support many) cron job:
.. code:: bash
# for Pocket import
bin/console rabbitmq:consumer import_pocket -w
# for Readability import
bin/console rabbitmq:consumer import_readability -w
# for Instapaper import
bin/console rabbitmq:consumer import_instapaper -w
# for wallabag v1 import
bin/console rabbitmq:consumer import_wallabag_v1 -w
# for wallabag v2 import
bin/console rabbitmq:consumer import_wallabag_v2 -w
# for Firefox import
bin/console rabbitmq:consumer import_firefox -w
# for Chrome import
bin/console rabbitmq:consumer import_chrome -w

View File

@ -0,0 +1,71 @@
Install Redis for asynchronous tasks
====================================
In order to launch asynchronous tasks (useful for huge imports for example), we can use Redis.
Requirements
------------
You need to have Redis installed on your server.
Installation
~~~~~~~~~~~~
.. code:: bash
apt-get install redis-server
Launch
~~~~~~
The server might be already running after installing, if not you can launch it using:
.. code:: bash
redis-server
Configure Redis in wallabag
---------------------------
Edit your ``parameters.yml`` file to edit Redis configuration. The default one should be ok:
.. code:: yaml
redis_host: localhost
redis_port: 6379
Launch Redis consumer
---------------------
Depending on which service you want to import from you need to enable one (or many if you want to support many) cron job:
.. code:: bash
# for Pocket import
bin/console wallabag:import:redis-worker pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
# for Readability import
bin/console wallabag:import:redis-worker readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
# for Instapaper import
bin/console wallabag:import:redis-worker instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
# for wallabag v1 import
bin/console wallabag:import:redis-worker wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
# for wallabag v2 import
bin/console wallabag:import:redis-worker wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
# for Firefox import
bin/console wallabag:import:redis-worker firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
# for Chrome import
bin/console wallabag:import:redis-worker instapaper -vv >> /path/to/wallabag/var/logs/redis-chrome.log
If you want to launch the import only for some messages and not all, you can specify this number (here 12) and the worker will stop right after the 12th message :
.. code:: bash
bin/console wallabag:import:redis-worker pocket -vv --maxIterations=12

View File

@ -17,6 +17,11 @@ The main documentation for this application is organized into a couple sections:
* :ref:`user-docs`
* :ref:`dev-docs`
The documentation is available in other languages:
* `Documentation en français <http://doc.wallabag.org/fr/master/>`_
* `Deutsch Dokumentation <http://doc.wallabag.org/de/master/>`_
.. _user-docs:
.. toctree::
@ -25,7 +30,8 @@ The main documentation for this application is organized into a couple sections:
user/faq
user/installation
user/upgrade
user/upgrade-2.0.x-2.1.y
user/upgrade-2.0.x-2.0.y
user/migration
user/import
user/create_account
@ -35,6 +41,7 @@ The main documentation for this application is organized into a couple sections:
user/errors_during_fetching
user/annotations
user/download_articles
user/share
user/filters
user/tags
user/android
@ -50,3 +57,5 @@ The main documentation for this application is organized into a couple sections:
developer/documentation
developer/translate
developer/maintenance
developer/redis
developer/rabbitmq

View File

@ -12,7 +12,7 @@ There may be several reasons:
How can I help to fix that?
---------------------------
- `by sending us an email with the article's URL <mailto:hello\@wallabag.org>`_
- `by sending us an email with the article's URL <mailto:hello@wallabag.org>`_
- by trying to fix this article by yourself :) by creating a file for the article.
You can use `this tool <http://siteconfig.fivefilters.org/>`__.

View File

@ -23,22 +23,43 @@ Now, all is fine to migrate from Pocket.
Import your data into wallabag 2.x
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Click on ``Import`` link in the menu, on ``Import contents`` in Pocket section
Click on ``Import`` link in the menu, on ``Import contents`` in Pocket section
and then on ``Connect to Pocket and import data``.
You need to authorize wallabag to interact with your Pocket account.
Your data will be imported. Data import can be a demanding process for your server
(we need to work on this import to improve it).
From Instapaper
---------------
*Feature not yet implemented in wallabag v2.*
Your data will be imported. Data import can be a demanding process for your server.
From Readability
----------------
*Feature not yet implemented in wallabag v2.*
Export your Readability data
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
On the tools (`https://www.readability.com/tools/<https://www.readability.com/tools/>`_) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact).
Import your data into wallabag 2.x
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Click on ``Import`` link in the menu, on ``Import contents`` in Readability section
and then select your json file and upload it.
Your data will be imported. Data import can be a demanding process for your server.
From Instapaper
---------------
Export your Instapaper data
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
On the settings (`https://www.instapaper.com/user<https://www.instapaper.com/user>`_) page, click on "Download .CSV file" in the "Export" section. A CSV file will be downloaded (like ``instapaper-export.csv``).
Import your data into wallabag 2.x
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Click on ``Import`` link in the menu, on ``Import contents`` in Instapaper section
and then select your CSV file and upload it.
Your data will be imported. Data import can be a demanding process for your server.
From HTML or JSON file
----------------------

View File

@ -22,6 +22,7 @@ You'll need the following extensions for wallabag to work. Some of these may alr
- php-curl
- php-gettext
- php-tokenizer
- php-bcmath
wallabag uses PDO to connect to the database, so you'll need one of the following:
@ -37,7 +38,7 @@ Installation
On a dedicated web server (recommended way)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
wallabag uses a large number of libraries in order to function. These libraries must be installed with a tool called Composer. You need to install it if you have not already done so and be sure to use the 1.2 version (if you already have Composer, run a ``composer selfupdate``).
wallabag uses a large number of PHP libraries in order to function. These libraries must be installed with a tool called Composer. You need to install it if you have not already done so and be sure to use the 1.2 version (if you already have Composer, run a ``composer selfupdate``).
Install Composer:
@ -45,7 +46,7 @@ Install Composer:
curl -s http://getcomposer.org/installer | php
You can find specific instructions `here <https://getcomposer.org/doc/00-intro.md>`__:
You can find specific instructions `here <https://getcomposer.org/doc/00-intro.md>`__.
To install wallabag itself, you must run the following commands:
@ -53,7 +54,7 @@ To install wallabag itself, you must run the following commands:
git clone https://github.com/wallabag/wallabag.git
cd wallabag
git checkout 2.0.6
git checkout 2.1.1 --force
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console wallabag:install --env=prod
@ -85,6 +86,8 @@ Execute this command to download and extract the latest package:
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
(md5 hash of the 2.1.0 package: ``6c33520e29cc754b687f9cee0398dede``)
Now, read the following documentation to create your virtual host, then access your wallabag.
If you changed the database configuration to use MySQL or PostgreSQL, you need to create a user via this command ``php bin/console wallabag:install --env=prod``.

View File

@ -24,29 +24,6 @@ After creating an user account on your new wallabag v2 instance, you must head o
:alt: Import from wallabag v1
:align: center
Import via command-line interface (CLI)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you have a CLI access on your web server, you can execute this command to import your wallabag v1 export:
::
bin/console wallabag:import-v1 1 ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod
Please replace values:
* ``1`` is the user identifier in database (The ID of the first user created on wallabag is 1)
* ``~/Downloads/wallabag-export-1-2016-04-05.json`` is the path of your wallabag v1 export
You'll have this in return:
::
Start : 05-04-2016 11:36:07 ---
403 imported
0 already saved
End : 05-04-2016 11:36:09 ---
From wallabag 2.x
-----------------
@ -60,3 +37,30 @@ From your new wallabag instance, create your user account and click on the link
.. note::
If you encounter issues during the export or the import, don't hesitate to `ask for support <https://www.wallabag.org/pages/support.html>`__.
Import via command-line interface (CLI)
---------------------------------------
If you have a CLI access on your web server, you can execute this command to import your wallabag v1 export:
::
bin/console wallabag:import 1 ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod
Please replace values:
* ``1`` is the user identifier in database (The ID of the first user created on wallabag is 1)
* ``~/Downloads/wallabag-export-1-2016-04-05.json`` is the path of your wallabag v1 export
If you want to mark all these entries as read, you can add the ``--markAsRead`` option.
To import a wallabag v2 file, you need to add the option ``--importer=v2``.
You'll have this in return:
::
Start : 05-04-2016 11:36:07 ---
403 imported
0 already saved
End : 05-04-2016 11:36:09 ---

17
docs/en/user/share.rst Normal file
View File

@ -0,0 +1,17 @@
Share articles
==============
When you're reading an article, you can share it. Just click on the share button:
.. image:: ../../img/user/share.png
:alt: share article
:align: center
Now, you can share the article:
- with a public URL (you'll have a light view of the article)
- with a tweet
- into your Shaarli
- with a post in Diaspora*
- to Carrot
- with an email

View File

@ -1,30 +1,33 @@
Upgrade wallabag
================
Upgrade from 2.0.x to 2.0.y
===========================
Upgrade on a dedicated web server
---------------------------------
The last release is published on https://www.wallabag.org/pages/download-wallabag.html. In order to upgrade your wallabag installation and get the last version, run the following commands in you wallabag folder (replace ``2.0.3`` by the last release number):
The last release is published on https://www.wallabag.org/pages/download-wallabag.html. In order to upgrade your wallabag installation and get the last version, run the following commands in you wallabag folder (replace ``2.0.8`` by the last release number):
::
rm -rf var/cache/*
git fetch origin
git fetch --tags
git checkout 2.0.3
git checkout 2.0.8
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console cache:clear --env=prod
Upgrade on a shared hosting
Upgrade on a shared hosting
---------------------------
Backup your ``app/config/parameters.yml`` file.
Download the last release of wallabag:
Download the last release of wallabag:
.. code-block:: bash
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
(md5 hash of the 2.0.8 package: ``4f84c725d1d6e3345eae0a406115e5ff``)
Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours.
If you use SQLite, you must also copy your ``data/`` folder inside the new installation.

View File

@ -0,0 +1,65 @@
Upgrading from 2.0.x to 2.1.y
=============================
.. warning::
Before this migration, if you configured the Pocket import by adding your consumer key in Internal settings, please do a backup of it: you'll have to add it into the Config page after the upgrade.
Upgrade on a dedicated web server
---------------------------------
The last release is published on https://www.wallabag.org/pages/download-wallabag.html. In order to upgrade your wallabag installation and get the last version, run the following commands in you wallabag folder (replace ``2.1.1`` by the last release number):
::
rm -rf var/cache/*
git fetch origin
git fetch --tags
git checkout 2.1.1 --force
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console doctrine:migrations:migrate --env=prod
php bin/console cache:clear --env=prod
Upgrade on a shared hosting
---------------------------
Backup your ``app/config/parameters.yml`` file.
Download the last release of wallabag:
.. code-block:: bash
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
(md5 hash of the 2.1.0 package: ``6c33520e29cc754b687f9cee0398dede``)
Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours.
Please note that we added new parameters in this version. You have to edit ``app/config/parameters.yml`` by adding these lines (replace with your configuration) :
.. code-block:: bash
# RabbitMQ processing
rabbitmq_host: localhost
rabbitmq_port: 5672
rabbitmq_user: guest
rabbitmq_password: guest
# Redis processing
redis_host: localhost
redis_port: 6379
If you use SQLite, you must also copy your ``data/`` folder inside the new installation.
Empty ``var/cache`` folder.
You must run some SQL queries to upgrade your database. We assume that the table prefix is ``wallabag_`` and the database server is a MySQL one:
.. code-block:: sql
ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL;
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('share_public', '1', 'entry');
ALTER TABLE `wallabag_oauth2_clients` ADD name longtext COLLATE 'utf8_unicode_ci' DEFAULT NULL;
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_redis', '0', 'import');
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_rabbitmq', '0', 'import');
ALTER TABLE `wallabag_config` ADD `pocket_consumer_key` VARCHAR(255) DEFAULT NULL;
DELETE FROM `wallabag_craue_config_setting` WHERE `name` = 'pocket_consumer_key';

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