Compare commits
535 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4c212ca7d9 | |||
| c36f5adce2 | |||
| 933c6f3155 | |||
| 8ebb214ec4 | |||
| 954b6a36a3 | |||
| 5958597ba6 | |||
| 57386125ab | |||
| c10adc1f76 | |||
| 6cb364a2c1 | |||
| f733d8aaa3 | |||
| 3e85e91159 | |||
| 0c7f1ba796 | |||
| 46d78f87d9 | |||
| f2ab290f0f | |||
| 9f7d154e34 | |||
| 9a6ac0b47a | |||
| 755ff9e835 | |||
| f440e28281 | |||
| ca8f9bdc15 | |||
| f0b2d57154 | |||
| 9f3a1cd20c | |||
| 10f51f429d | |||
| 96a99d4375 | |||
| f7265b4b9d | |||
| 5759c9aac1 | |||
| a494c33ef7 | |||
| a3cc0dd0bf | |||
| aafb3321b7 | |||
| b054bc27e6 | |||
| 1c634fe437 | |||
| 24add95e9e | |||
| 0113e2af1f | |||
| 88d8125a5f | |||
| 4ac780eb21 | |||
| 8fdb5e5766 | |||
| 9d3603147b | |||
| 8c3c69fb9c | |||
| 83c26bdf26 | |||
| 0f70abd695 | |||
| 7d002c333d | |||
| 12f7fd004a | |||
| ab809de184 | |||
| c30af946e7 | |||
| 553f863c3c | |||
| beee26f6d5 | |||
| a878581410 | |||
| df9c080f8c | |||
| dfbbf0e18a | |||
| 77557d289b | |||
| c3f8b428dd | |||
| 1dc3bee6b9 | |||
| c21f2924f3 | |||
| ccc7faec09 | |||
| 18b8dc0e99 | |||
| ffcd91ec6c | |||
| 92395680b6 | |||
| eb4142e0af | |||
| 03141f9b95 | |||
| 152fcccd44 | |||
| 52c1fc7449 | |||
| 6e5e27ab07 | |||
| bfb3ae01da | |||
| ae394b4078 | |||
| a4df48916d | |||
| 24ad330be6 | |||
| 3583cadf6f | |||
| d6d3fb6e4c | |||
| 1bcfeb0f4a | |||
| 0d61b6015f | |||
| 2455472e26 | |||
| 19ca0b2f35 | |||
| 7d72cce4c7 | |||
| 55551e332c | |||
| 8799bde00d | |||
| 6273fefd5d | |||
| a44d2613c7 | |||
| bf3dc999e7 | |||
| c4bf7af96f | |||
| 1264029cd4 | |||
| db5541e7a1 | |||
| 40e219622a | |||
| fb7354c4a4 | |||
| ca17abce2d | |||
| 114c55c0a6 | |||
| 00d3f2a383 | |||
| ecdefb11f7 | |||
| 56f0150e2a | |||
| 555ed552ca | |||
| 2ff9991a1d | |||
| 49f25d6ee8 | |||
| fb479be3a0 | |||
| 2d8af6fc7f | |||
| c59e628afe | |||
| 00283a3b0a | |||
| 080cb52fac | |||
| b4118f66ff | |||
| 0471e905b8 | |||
| 37b63c170d | |||
| 02384d22ef | |||
| 8f234d0156 | |||
| ff5be9720b | |||
| cb0096df41 | |||
| fc487c4eb1 | |||
| 34e4c12604 | |||
| ff1f55c2a0 | |||
| 9866d39431 | |||
| eef8aeec8f | |||
| c146f6940a | |||
| 084fb0d303 | |||
| 92fa168344 | |||
| 1ed965beb9 | |||
| a9e92b6609 | |||
| a7dda1f2bf | |||
| c7ea9b41f3 | |||
| ff1a5362f7 | |||
| 55345331c4 | |||
| 20762cd1ab | |||
| d6de23a100 | |||
| fefef9d41b | |||
| 990adfb34c | |||
| 12d93e6896 | |||
| 7e98ad9626 | |||
| 27acc6ddb8 | |||
| f0fd82d039 | |||
| bd206a84d8 | |||
| 64b1229b2d | |||
| 2c61db30b7 | |||
| 59201088b4 | |||
| f7c55b3812 | |||
| 06d13ddfbc | |||
| efe659ab84 | |||
| ae669126e7 | |||
| 289875836a | |||
| 82fc3290d4 | |||
| 401135852c | |||
| faa86e06ba | |||
| 9d7dd6b0d2 | |||
| 0e0102b6fc | |||
| 13a522dfbd | |||
| e10f3b1e91 | |||
| 637aa17e6b | |||
| 389d55f86b | |||
| 32e95760f5 | |||
| 5074e7d4fa | |||
| b6fc1f2007 | |||
| 1223c0811d | |||
| a94108f574 | |||
| 267b9d62dc | |||
| a00bed8b59 | |||
| e406a94ab6 | |||
| ce0a32229a | |||
| 8fed8d1bac | |||
| 05d2d62f12 | |||
| d7b4b2c72c | |||
| f9feca5c64 | |||
| da18a4682f | |||
| 45d94a98f7 | |||
| 59b97fae99 | |||
| fbb319f064 | |||
| ebe0787e09 | |||
| 4fc998245c | |||
| 0ed8ce55b5 | |||
| 458beef0a9 | |||
| 760419cd43 | |||
| 78d5da87fa | |||
| c6b68dc1df | |||
| e77cde4531 | |||
| 5b382b9ffb | |||
| 15b1917142 | |||
| ac87e0db2a | |||
| a622fbc444 | |||
| d4e366f6eb | |||
| 47d7c682a4 | |||
| c80cc01afa | |||
| e01a3c98d6 | |||
| d49c88f15a | |||
| 5d002e9bdf | |||
| 886d479734 | |||
| ebf5e5087d | |||
| 03e078d060 | |||
| 015c7a8359 | |||
| 7d862f83b9 | |||
| dc69e25f97 | |||
| 7230e4c39f | |||
| b3437d58ae | |||
| 7f7531171f | |||
| 13470c3596 | |||
| 8664069e1a | |||
| 6d65c0a8b0 | |||
| 3aca0a9f00 | |||
| 3849a9f323 | |||
| 02f6489572 | |||
| c98db1b653 | |||
| ef75e1220e | |||
| 87c9995b6c | |||
| 40d2a29443 | |||
| e31ee20dd7 | |||
| 56c778b415 | |||
| 59758d8fe5 | |||
| 88e88016b9 | |||
| 58fadbc9df | |||
| 04d5c60216 | |||
| 40c47f7023 | |||
| c078d18372 | |||
| 9401696fe4 | |||
| 5fc79381bb | |||
| 60faee002c | |||
| a707643ef1 | |||
| 48a692c143 | |||
| 5bdec0195f | |||
| 94d1dae4ef | |||
| 6f23289e72 | |||
| e5b090960b | |||
| fee8f2312e | |||
| 5173fd1c3d | |||
| a1d22ea7d0 | |||
| 13d9f7c96c | |||
| 429d86f388 | |||
| c3b53188d7 | |||
| 234ad94453 | |||
| 59ddb9ae99 | |||
| 543da3e0b7 | |||
| 8f8654913c | |||
| b3f4a11a81 | |||
| 2b9c5097d4 | |||
| 5070644a12 | |||
| f62c3faf88 | |||
| 001a7bad66 | |||
| 9972ab467a | |||
| b1e0a586e8 | |||
| 336262e6ee | |||
| a8d5aa1c44 | |||
| 33adf8dc91 | |||
| 8bde9d0efe | |||
| 0b0233b1ec | |||
| 3a6c252104 | |||
| be20e6f009 | |||
| bd8c13e8b0 | |||
| dc9d76b490 | |||
| 209ec7cedd | |||
| a1a1077059 | |||
| ca2a43ae7d | |||
| ca15aaac18 | |||
| 03e3753f6b | |||
| a374ac0fd3 | |||
| cdd3010b47 | |||
| 13d44ca766 | |||
| 0184e09a66 | |||
| d5d1612153 | |||
| b6520f0b15 | |||
| 8635ab1cd1 | |||
| 985f5f9d05 | |||
| 74d68fbf25 | |||
| add0e14cff | |||
| 52ef497099 | |||
| c4da9d1cd8 | |||
| f7de67e26f | |||
| ceebf13fe8 | |||
| 8e06720ff3 | |||
| bf0d9ef534 | |||
| aad350a5a2 | |||
| 0a512eaf57 | |||
| 538587855a | |||
| 5aba43d92c | |||
| 9415bc992e | |||
| 60e7220406 | |||
| eddda878a0 | |||
| b1afef30dc | |||
| ad9304cd7e | |||
| c6d77eaf51 | |||
| a1ab7d1d32 | |||
| ddb49dd931 | |||
| 8541b3c4fd | |||
| a5684f6a23 | |||
| cc654b427f | |||
| 78b3c31d70 | |||
| 18545173a6 | |||
| cdf405ad8f | |||
| cdfeea0a96 | |||
| cf967401b0 | |||
| 2f9927404d | |||
| 3e860ff1ce | |||
| f1be7af446 | |||
| 3377c938f8 | |||
| 9a5231e8c4 | |||
| a7e2218e25 | |||
| 222e09f140 | |||
| d0545b6bd6 | |||
| f3d0cb9106 | |||
| 28388e15c3 | |||
| 1bee9e0760 | |||
| f997ae6afb | |||
| 8315130a75 | |||
| ee4442f42a | |||
| 7149aa5781 | |||
| de3d716ae4 | |||
| 97e7ad4dc7 | |||
| a0e1eafc35 | |||
| 9bf83f1fb8 | |||
| 4da01f492b | |||
| e71cef0bb8 | |||
| 119914e65d | |||
| 267e8d6361 | |||
| 371bcca0f6 | |||
| 891456ba9a | |||
| d5de909bbc | |||
| 79efca1e6f | |||
| 474b086656 | |||
| e32aea53ab | |||
| 9c545fe028 | |||
| db4d63fc1a | |||
| 80bb0b7344 | |||
| 5068544e10 | |||
| c649d43381 | |||
| d35ba2c3d6 | |||
| 4e4e8e9899 | |||
| 8642f14220 | |||
| 19d9efab32 | |||
| e7732deb1f | |||
| eecd7e406d | |||
| 4e1be104ab | |||
| 519ba0b5e7 | |||
| e408d7e895 | |||
| 41c9eecfa7 | |||
| b762ab3cce | |||
| fc41abb990 | |||
| 782390a80e | |||
| 0cecfa2536 | |||
| 6dfac457d8 | |||
| 9a5c5c330e | |||
| 7dbedfc8a3 | |||
| e49c62fac8 | |||
| 8f5e220327 | |||
| 2e16a90339 | |||
| 848c2e1b97 | |||
| 00acc0d006 | |||
| 8617972f3f | |||
| a26f91dcb6 | |||
| b10a422e1f | |||
| 8cb869ea95 | |||
| 029965b6a2 | |||
| 75ac3e6289 | |||
| 8c7d7c0300 | |||
| 57c608fa94 | |||
| 40288b7166 | |||
| 78d1727096 | |||
| 0e1abf392c | |||
| f64472e9f8 | |||
| 39f27d6370 | |||
| 0faeabefa7 | |||
| 317fc6e684 | |||
| 8d8d48a2bb | |||
| 0dc09439ef | |||
| ab3eb4ba95 | |||
| 57b62cbf79 | |||
| 1973897305 | |||
| 2bb138ef6d | |||
| 51cbc2ebfe | |||
| 8d4152f70d | |||
| baef8ea26c | |||
| 1d4d9aaf29 | |||
| 9dbd3e9302 | |||
| 4f0558a0d4 | |||
| 28803f106b | |||
| a314b920bf | |||
| e43c78abd9 | |||
| e5fb89e5d3 | |||
| 33e2aec18b | |||
| 9f8c43e222 | |||
| eef833d644 | |||
| fdc90ceb17 | |||
| e7aed21b33 | |||
| 2bc9cad78e | |||
| b1c9b78203 | |||
| a15022db96 | |||
| 91826e3ca2 | |||
| 25dc07d3c9 | |||
| dafc5cf993 | |||
| 20218495a7 | |||
| 9ccb96cfe2 | |||
| f49d9ca383 | |||
| fb5c17a9ab | |||
| 95859e54c5 | |||
| bf27f99d54 | |||
| 2c00dddf01 | |||
| 1bdbc39f02 | |||
| b46124cb9b | |||
| 49e2854d5c | |||
| d37bb05c88 | |||
| 4eaaa27bb5 | |||
| 4e411208cc | |||
| 11493858a7 | |||
| 3247b90776 | |||
| afbe800be2 | |||
| eae86d3403 | |||
| e42b13bcff | |||
| 6334f2cac1 | |||
| f06f840c9d | |||
| af95c09c80 | |||
| 26ed851f52 | |||
| 710f8e69d7 | |||
| 99451fe4b7 | |||
| 23634d5d84 | |||
| 891a026e31 | |||
| 2f30eed236 | |||
| 247cf4897a | |||
| 3c552f0d04 | |||
| ce0e9ec31b | |||
| d71b600599 | |||
| 77c530f43c | |||
| 429480357f | |||
| d220a95121 | |||
| 02d10905b3 | |||
| 496cfdc017 | |||
| 2e24d12027 | |||
| 0743287f95 | |||
| 5ecdfcd041 | |||
| 1584067028 | |||
| 17dfff6918 | |||
| f329e769fd | |||
| 3be047456d | |||
| 39ba51ca1a | |||
| 2c045a210a | |||
| f41c840b8c | |||
| 839475776b | |||
| 235026e2c7 | |||
| 3fad6c74fe | |||
| 7b67f785ff | |||
| c15a150d2e | |||
| 92491227c1 | |||
| b5fa6607a9 | |||
| 4127d7ad1b | |||
| 2857aaa994 | |||
| 8fef96ee9f | |||
| 4b2774f8db | |||
| 9f95b14dec | |||
| 151f046f61 | |||
| 6922168420 | |||
| e7658cb009 | |||
| 2dcb1dbf05 | |||
| 871f667a55 | |||
| d30ec39008 | |||
| 8baf3d4bda | |||
| 953305e904 | |||
| 9b40422594 | |||
| bba271e619 | |||
| 614a0bfd86 | |||
| 873e380658 | |||
| cac3f603cf | |||
| 5f2971e1d4 | |||
| f7e714bde7 | |||
| 458854f1e4 | |||
| e0f953a5a6 | |||
| 12f8631e8a | |||
| 9b8d1d8bbf | |||
| 30334567a3 | |||
| e2f2f61001 | |||
| 4ca4d1b3b1 | |||
| 733b2cf19b | |||
| acd3c26a74 | |||
| b1fcd47a5c | |||
| d948ee531e | |||
| 1875afaeff | |||
| ab46a256f4 | |||
| de20470ee1 | |||
| 8f705d62af | |||
| 3c8be33500 | |||
| 961ec4ec86 | |||
| 1221f5315d | |||
| 1556c925a4 | |||
| f54de6817e | |||
| dcd74397d6 | |||
| a0640406b4 | |||
| 8cae66fa74 | |||
| 02222d9070 | |||
| 613bff2d82 | |||
| e0f4f25fd6 | |||
| c6b1112b11 | |||
| 3bd50951be | |||
| 7c1f64c967 | |||
| bb7a39d1ed | |||
| d9926005b1 | |||
| 8b563fc04e | |||
| 8ae9a3f52f | |||
| 9039103c37 | |||
| 09e5b9391e | |||
| e7cd089fa6 | |||
| 12c697562e | |||
| fa04bddd01 | |||
| e546a2d6eb | |||
| 9b57bac8b9 | |||
| 7f76f416d1 | |||
| 27b96824fc | |||
| 760875af67 | |||
| 8b09c6edfb | |||
| 439c7e41a3 | |||
| bba9907d1f | |||
| 97c8eb3c23 | |||
| e9023a16eb | |||
| 2142c714ef | |||
| 045859a2b5 | |||
| 2a007fe43d | |||
| c4c062cce0 | |||
| 8389074180 | |||
| ba9fee0855 | |||
| b8f35b6b27 | |||
| 06bf24103b | |||
| 12d3bbccbd | |||
| deb5d97667 | |||
| 51a15609b3 | |||
| 823397f2d6 | |||
| f0de35d2ee | |||
| 66bbaaae4d | |||
| d3ffd65a06 | |||
| 46bbbbf4a9 | |||
| 4c05e8b18f | |||
| 4c295cb928 | |||
| 87b8461ed8 | |||
| 9ddf49ba24 | |||
| edf3e88d88 | |||
| 10cc2785a0 | |||
| acc371a129 | |||
| ef37b9af71 | |||
| d6a9e139dc | |||
| d8f8a59010 | |||
| f97653c895 | |||
| 58f0d0bdeb | |||
| 3cfbe3c7e8 | |||
| 8c2affe680 | |||
| c9bdd9a83f | |||
| 0e9339c46c | |||
| 9c0bc04cfe | |||
| dafde7fb2f | |||
| 9481187896 | |||
| 1c90663b79 |
10
.eslintrc.json
Normal 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}]
|
||||||
|
}
|
||||||
|
}
|
||||||
17
.github/CONTRIBUTING.md
vendored
@ -3,22 +3,11 @@
|
|||||||
## You found a bug
|
## You found a bug
|
||||||
Please [open a new issue](https://github.com/wallabag/wallabag/issues/new).
|
Please [open a new issue](https://github.com/wallabag/wallabag/issues/new).
|
||||||
|
|
||||||
To fix the bug quickly, we need some infos:
|
To fix the bug quickly, we need some infos: please answer to the questions in the issue form.
|
||||||
* your wallabag version (in `app/config/config.yml`, see `wallabag_core.version`)
|
|
||||||
* your webserver installation :
|
|
||||||
* type of hosting (shared or dedicated)
|
|
||||||
* in case of a dedicated server, the server and OS used
|
|
||||||
* the php version used, eventually `phpinfo()`
|
|
||||||
* which storage system you choose at install (SQLite, MySQL/MariaDB or PostgreSQL)
|
|
||||||
* any particular details which could be related
|
|
||||||
|
|
||||||
If relevant :
|
If you have the skills, look for errors into php, server and application (see `var/logs`) logs.
|
||||||
* the link you want to save and which causes problem
|
|
||||||
* the file you want to import into wallabag, or just an extract
|
|
||||||
|
|
||||||
If you have the skills, look for errors into php, server and application (see `var/logs`) logs
|
|
||||||
|
|
||||||
Note : If you have large portions of text, use [Github's Gist service](https://gist.github.com/) or other pastebin-like.
|
Note : If you have large portions of text, use [Github's Gist service](https://gist.github.com/) or other pastebin-like.
|
||||||
|
|
||||||
## You want to fix a bug or to add a feature
|
## You want to fix a bug or to add a feature
|
||||||
Please fork wallabag and work with **the v2 branch** only. **Do not work on master branch**.
|
Please fork wallabag and work with **the master branch**.
|
||||||
|
|||||||
16
.gitignore
vendored
@ -10,6 +10,9 @@
|
|||||||
/var/sessions/*
|
/var/sessions/*
|
||||||
!var/sessions/.gitkeep
|
!var/sessions/.gitkeep
|
||||||
!var/SymfonyRequirements.php
|
!var/SymfonyRequirements.php
|
||||||
|
/bin/*
|
||||||
|
!/bin/console
|
||||||
|
!/bin/symfony_requirements
|
||||||
|
|
||||||
# Parameters
|
# Parameters
|
||||||
/app/config/parameters.yml
|
/app/config/parameters.yml
|
||||||
@ -18,8 +21,10 @@
|
|||||||
/vendor/
|
/vendor/
|
||||||
|
|
||||||
# Assets and user uploads
|
# Assets and user uploads
|
||||||
/web/bundles/
|
web/uploads/
|
||||||
/web/uploads/
|
!web/bundles
|
||||||
|
web/bundles/*
|
||||||
|
!web/bundles/wallabagcore
|
||||||
|
|
||||||
# Build
|
# Build
|
||||||
/app/build
|
/app/build
|
||||||
@ -38,3 +43,10 @@ docker/data/
|
|||||||
|
|
||||||
# To avoid crazy stuff on some PR, we must manually FORCE ADD IT on each new release
|
# To avoid crazy stuff on some PR, we must manually FORCE ADD IT on each new release
|
||||||
composer.lock
|
composer.lock
|
||||||
|
|
||||||
|
# assets stuff
|
||||||
|
node_modules/
|
||||||
|
bin
|
||||||
|
app/Resources/build/
|
||||||
|
!/src/Wallabag/CoreBundle/Resources/public
|
||||||
|
/src/Wallabag/CoreBundle/Resources/public/*
|
||||||
|
|||||||
3
.stylelintrc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"extends": "stylelint-config-standard"
|
||||||
|
}
|
||||||
44
.travis.yml
@ -1,5 +1,9 @@
|
|||||||
language: php
|
language: php
|
||||||
|
|
||||||
|
services:
|
||||||
|
- rabbitmq
|
||||||
|
- redis
|
||||||
|
|
||||||
# faster builds on docker-container setup
|
# faster builds on docker-container setup
|
||||||
sudo: false
|
sudo: false
|
||||||
|
|
||||||
@ -15,12 +19,19 @@ cache:
|
|||||||
directories:
|
directories:
|
||||||
- vendor
|
- vendor
|
||||||
- $HOME/.composer/cache
|
- $HOME/.composer/cache
|
||||||
|
- node_modules
|
||||||
|
- $HOME/.cache/bower
|
||||||
|
- $HOME/.npm
|
||||||
|
|
||||||
php:
|
php:
|
||||||
- 5.5
|
- 5.5
|
||||||
- 5.6
|
- 5.6
|
||||||
- 7.0
|
- 7.0
|
||||||
- hhvm
|
- 7.1
|
||||||
|
- nightly
|
||||||
|
|
||||||
|
node_js:
|
||||||
|
- "5"
|
||||||
|
|
||||||
env:
|
env:
|
||||||
- DB=mysql
|
- DB=mysql
|
||||||
@ -31,12 +42,10 @@ matrix:
|
|||||||
fast_finish: true
|
fast_finish: true
|
||||||
include:
|
include:
|
||||||
- php: 7.0
|
- php: 7.0
|
||||||
env: CS_FIXER=run VALIDATE_TRANSLATION_FILE=run DB=sqlite
|
env: CS_FIXER=run VALIDATE_TRANSLATION_FILE=run ASSETS=build DB=sqlite
|
||||||
exclude:
|
|
||||||
- php: hhvm
|
|
||||||
env: DB=pgsql # driver for PostgreSQL currently unsupported by HHVM, requires 3rd party dependency
|
|
||||||
allow_failures:
|
allow_failures:
|
||||||
- php: hhvm
|
- php: 7.1
|
||||||
|
- php: nightly
|
||||||
|
|
||||||
# exclude v1 branches
|
# exclude v1 branches
|
||||||
branches:
|
branches:
|
||||||
@ -44,17 +53,26 @@ branches:
|
|||||||
- legacy
|
- legacy
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- if [[ $TRAVIS_PHP_VERSION != hhvm ]]; then echo "memory_limit=-1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; fi;
|
- PHP=$TRAVIS_PHP_VERSION
|
||||||
- if [[ $TRAVIS_PHP_VERSION != hhvm ]]; then phpenv config-rm xdebug.ini; fi;
|
- 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
|
- 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:
|
before_install:
|
||||||
- if [[ $TRAVIS_REPO_SLUG = wallabag/wallabag ]]; then cp .composer-auth.json ~/.composer/auth.json; fi;
|
- if [[ $TRAVIS_REPO_SLUG = wallabag/wallabag ]]; then cp .composer-auth.json ~/.composer/auth.json; fi;
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- travis_wait composer install --no-interaction --no-progress --prefer-dist -o
|
- travis_wait bash composer update --no-interaction --no-progress
|
||||||
- ant prepare-$DB
|
- ant prepare-$DB
|
||||||
- bin/phpunit -v
|
- 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 [[ $CS_FIXER = run ]]; then php bin/php-cs-fixer fix src/ --verbose --dry-run ; fi;
|
||||||
- if [ "$VALIDATE_TRANSLATION_FILE" = "run" ]; then php bin/console lint:yaml src/Wallabag/CoreBundle/Resources/translations -v ; fi;
|
- if [[ $VALIDATE_TRANSLATION_FILE = run ]]; then php bin/console lint:yaml src/Wallabag/CoreBundle/Resources/translations -v ; fi;
|
||||||
|
- if [[ $ASSETS = build ]]; then ./node_modules/grunt-cli/bin/grunt tests; fi;
|
||||||
|
|||||||
26
.zappr.yaml
Normal 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
|
||||||
175
CHANGELOG.md
@ -2,6 +2,181 @@
|
|||||||
|
|
||||||
All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
|
All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
|
|
||||||
|
## [2.1.1] - 2016-10-04
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- [#2340](https://github.com/wallabag/wallabag/pull/2340) Updated german translation (Strubbl)
|
||||||
|
- [#2341](https://github.com/wallabag/wallabag/pull/2341) Updated polish translation (Mateusz Rumiński)
|
||||||
|
- [#2354](https://github.com/wallabag/wallabag/pull/2354) Add php-bcmath extension to requirements (Godinez Pablo)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- [#2338](https://github.com/wallabag/wallabag/pull/2338) Fixed 2.1 installation (Jeremy Benoist)
|
||||||
|
- [#2345](https://github.com/wallabag/wallabag/issues/2345) Fixed 2.0.x update (Jeremy Benoist)
|
||||||
|
- [#2353](https://github.com/wallabag/wallabag/pull/2353) Fixed assets problem (Thomas Citharel)
|
||||||
|
- [#2359](https://github.com/wallabag/wallabag/pull/2359) Create config even if user is disabled (Jeremy Benoist)
|
||||||
|
|
||||||
|
## [2.1.0] - 2016-10-03
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- [#1990](https://github.com/wallabag/wallabag/pull/1990) Added command line import for wallabag files (Nicolas Lœuillet)
|
||||||
|
- [#2142](https://github.com/wallabag/wallabag/pull/2142) Manage assets through npm (Thomas Citharel)
|
||||||
|
- [#2174](https://github.com/wallabag/wallabag/pull/2174) Added filter for tags on API (Thomas Citharel)
|
||||||
|
- [#2176](https://github.com/wallabag/wallabag/pull/2176) Added `since` parameter in API (Thomas Citharel)
|
||||||
|
- [#2170](https://github.com/wallabag/wallabag/pull/2170), [#2183](https://github.com/wallabag/wallabag/pull/2183) Added tags on entries view (Thomas Citharel)
|
||||||
|
- [#2186](https://github.com/wallabag/wallabag/pull/2186) Added option to disable registration (Thomas Citharel)
|
||||||
|
- [#1904](https://github.com/wallabag/wallabag/pull/1904) Share entry with a public URL (Nicolas Lœuillet)
|
||||||
|
- [#2243](https://github.com/wallabag/wallabag/pull/2243) Added list of untagged articles (Nicolas Lœuillet)
|
||||||
|
- [#2255](https://github.com/wallabag/wallabag/pull/2255) Added Readability import (Jeremy Benoist)
|
||||||
|
- [#2002](https://github.com/wallabag/wallabag/pull/2002) Added articles counter in sidebar (Nicolas Lœuillet)
|
||||||
|
- [#2275](https://github.com/wallabag/wallabag/pull/2275) Added date from entries in export (Jeremy Benoist)
|
||||||
|
- [#2266](https://github.com/wallabag/wallabag/pull/2266) Added tags counter in sidebar (Nicolas Lœuillet)
|
||||||
|
- [#1941](https://github.com/wallabag/wallabag/pull/1941) Added asynchronous import (Jeremy Benoist, Nicolas Lœuillet)
|
||||||
|
- [#2192](https://github.com/wallabag/wallabag/pull/2192) Added Firefox / Chrome bookmarks import (Thomas Citharel)
|
||||||
|
- [#2310](https://github.com/wallabag/wallabag/pull/2310) Added Instapaper import (Jeremy Benoist)
|
||||||
|
- [#2322](https://github.com/wallabag/wallabag/pull/2322) Added customized errors templates (Jeremy Benoist)
|
||||||
|
- [#2323](https://github.com/wallabag/wallabag/pull/2323) Added simple stats in footer (Jeremy Benoist)
|
||||||
|
- [#2324](https://github.com/wallabag/wallabag/pull/2324) Added ability to edit a tagging rule (Jeremy Benoist)
|
||||||
|
- [#2325](https://github.com/wallabag/wallabag/pull/2325) Added an `exists` endpoint in API (Jeremy Benoist)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- [#2170](https://github.com/wallabag/wallabag/pull/2170) Entry titles are now smaller on entry view (Thomas Citharel)
|
||||||
|
- [#2245](https://github.com/wallabag/wallabag/pull/2245) Changed where page title is displayed (Nicolas Lœuillet)
|
||||||
|
- [#2274](https://github.com/wallabag/wallabag/pull/2274) Re use JsonResponse in API (Jeremy Benoist)
|
||||||
|
- [#2257](https://github.com/wallabag/wallabag/pull/2257) Use created date for imported content (Jeremy Benoist)
|
||||||
|
- [#2326](https://github.com/wallabag/wallabag/pull/2326) Quickstart layout (Nicolas Lœuillet)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- [#2328](https://github.com/wallabag/wallabag/pull/2328) Fixed duplicate URL with accents (Jeremy Benoist)
|
||||||
|
- [#2319](https://github.com/wallabag/wallabag/pull/2319) Fixed `gd` extension missing in Dockerfile (Pascal Martin)
|
||||||
|
- [#2313](https://github.com/wallabag/wallabag/pull/2313) Fixed long loading on Firefox (Nicolas Lœuillet)
|
||||||
|
- [#2320](https://github.com/wallabag/wallabag/pull/2320) Fixed user config which wasn't created in some cases (Jeremy Benoist)
|
||||||
|
- [#2301](https://github.com/wallabag/wallabag/pull/2301) Fixed feeds not syncing on android application (Thomas Citharel)
|
||||||
|
- [#2308](https://github.com/wallabag/wallabag/pull/2308) Fixed duplicate tags on import (Jeremy Benoist)
|
||||||
|
- [#2297](https://github.com/wallabag/wallabag/pull/2297) Fixed epub export with special characters in title (morhelluin)
|
||||||
|
- [#2292](https://github.com/wallabag/wallabag/pull/2292) Fixed label for mark as read link in entry view (Nicolas Lœuillet)
|
||||||
|
- [#2260](https://github.com/wallabag/wallabag/pull/2260) Fixed different font-size for labels in config screen (Nicolas Lœuillet)
|
||||||
|
- [#2242](https://github.com/wallabag/wallabag/pull/2242) Fixed print / article views (Nicolas Lœuillet)
|
||||||
|
- [#2328](https://github.com/wallabag/wallabag/pull/2328) Avoid duplicate url with accents (Jeremy Benoist)
|
||||||
|
- [#2330](https://github.com/wallabag/wallabag/pull/2330) Remove error message when creating ePub versions (Paulino Michelazzo)
|
||||||
|
- [#2331](https://github.com/wallabag/wallabag/pull/2331) Fix parameters in API links (Jeremy Benoist)
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
|
||||||
|
- [#2318](https://github.com/wallabag/wallabag/pull/2318) Removed duplicated templates files (Nicolas Lœuillet)
|
||||||
|
- [#2287](https://github.com/wallabag/wallabag/pull/2287) Useless area in footer for material theme (Nicolas Lœuillet)
|
||||||
|
|
||||||
|
## [2.0.8] - 2016-09-07
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- [#2262](https://github.com/wallabag/wallabag/pull/2262) Added a check for the database connection during installation (Jeremy Benoist)
|
||||||
|
- [#2235](https://github.com/wallabag/wallabag/pull/2235) Added configuration for german documentation website, [available here](http://doc.wallabag.org/de/latest/) (Nicolas Lœuillet)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- [graby](https://github.com/j0k3r/graby/releases/tag/1.4.3) Update Graby version, which now handles ZIP files (Jeremy Benoist)
|
||||||
|
- [#2230](https://github.com/wallabag/wallabag/pull/2230) Changed title display in card view (Danilow Alexandr)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- [#2234](https://github.com/wallabag/wallabag/pull/2234) Fixed mailto link in documentation (Christian Studer)
|
||||||
|
- [#2241](https://github.com/wallabag/wallabag/pull/2241) Fixed the height of the "Add new article" field in Chrome (Danilow Alexandr)
|
||||||
|
- [#2238](https://github.com/wallabag/wallabag/pull/2238) Fixed login page in Qupzilla (Danilow Alexandr)
|
||||||
|
|
||||||
|
## [2.0.7] - 2016-08-22
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- [#2222](https://github.com/wallabag/wallabag/pull/2222) Added creation date and reading time on article view (Nicolas Lœuillet)
|
||||||
|
- [#2134](https://github.com/wallabag/wallabag/pull/2134) Run tests on an uptodate HHVM (Jeremy Benoist)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- [#2221](https://github.com/wallabag/wallabag/pull/2221) Replaced favorite word/icon with star one (Nicolas Lœuillet)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- [#2224](https://github.com/wallabag/wallabag/pull/2224) Avoid breaking import when fetching fail (Jeremy Benoist)
|
||||||
|
- [#2216](https://github.com/wallabag/wallabag/pull/2216), [#2220](https://github.com/wallabag/wallabag/pull/2220) Enable CORS headers for OAUTH part (Rurik19)
|
||||||
|
- [#2095](https://github.com/wallabag/wallabag/pull/2095) Fix form user display when 2FA is disabled (Nicolas Lœuillet)
|
||||||
|
|
||||||
|
## [2.0.6] - 2016-08-10
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- [#2199](https://github.com/wallabag/wallabag/pull/2199) Handling socials links into a config file (Simon Alberny)
|
||||||
|
- [#2172](https://github.com/wallabag/wallabag/pull/2172) Change the way to login user in tests (Jeremy Benoist)
|
||||||
|
- [#2155](https://github.com/wallabag/wallabag/pull/2155) Use friendsofphp instead of fabpot for PHP CS Fixer (Jeremy Benoist)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- [#2200](https://github.com/wallabag/wallabag/pull/2200) Fixed typo in entry:notice:entry_saved (charno6)
|
||||||
|
- [#2185](https://github.com/wallabag/wallabag/pull/2185) Fix 3rd-Party Apps links (Chrome & Firefox) (Thomas Citharel)
|
||||||
|
- [#2165](https://github.com/wallabag/wallabag/pull/2165) Fix a few french translations typos (Thomas Citharel)
|
||||||
|
- [#2157](https://github.com/wallabag/wallabag/pull/2157) Handle only upper or only lower reading filter (Jeremy Benoist)
|
||||||
|
- [#2156](https://github.com/wallabag/wallabag/pull/2156) Try to find bad redirection after delete (Jeremy Benoist)
|
||||||
|
|
||||||
|
## [2.0.5] - 2016-05-31
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- [#2052](https://github.com/wallabag/wallabag/pull/2052) Add unread filter to entries pages (Dan Bartram)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- [#2093](https://github.com/wallabag/wallabag/pull/2093) Replace vertical dots in material theme with horizontal dots (Nicolas Lœuillet)
|
||||||
|
- [#2054](https://github.com/wallabag/wallabag/pull/2054) Update italian translation (Daniele Conca)
|
||||||
|
- [#2068](https://github.com/wallabag/wallabag/pull/2068), [#2049](https://github.com/wallabag/wallabag/pull/2049) Update documentation (Josh Panter, Mario Vormstein)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- [#2122](https://github.com/wallabag/wallabag/pull/2122) Fix the deletion of Tags/Entries relation when delete an entry (Jeremy Benoist, Nicolas Lœuillet)
|
||||||
|
- [#2095](https://github.com/wallabag/wallabag/pull/2095) Fix form user display when 2FA is disabled (Nicolas Lœuillet)
|
||||||
|
- [#2092](https://github.com/wallabag/wallabag/pull/2092) API: Starred and archived clears if article is already exists (Rurik19)
|
||||||
|
- [#2097](https://github.com/wallabag/wallabag/issues/2097) Fix image path in 2-factor authentification email (Baptiste Mille-Mathias)
|
||||||
|
- [#2069](https://github.com/wallabag/wallabag/pull/2069) Do not specify language in Firefox addon link (Merouane Atig)
|
||||||
|
|
||||||
|
## [2.0.4] - 2016-05-07
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- [#2016](https://github.com/wallabag/wallabag/pull/2016) Big updates in [our documentation](http://doc.wallabag.org/en/master/) (Nicolas Lœuillet)
|
||||||
|
- [#2028](https://github.com/wallabag/wallabag/pull/2028) Documentation about android application (Strubbl)
|
||||||
|
- [#2019](https://github.com/wallabag/wallabag/pull/2019) Italian translation (Daniele Conca)
|
||||||
|
- [#2011](https://github.com/wallabag/wallabag/pull/2011) Documentation about wallabag upgrade (biva)
|
||||||
|
- [#1985](https://github.com/wallabag/wallabag/pull/1985) Documentation about rights access (FoxMaSk)
|
||||||
|
- [#1969](https://github.com/wallabag/wallabag/pull/1969) Third resources for API in documentation (Nicolas Lœuillet)
|
||||||
|
- [#1967](https://github.com/wallabag/wallabag/pull/1967) FAQ page in documentation (Nicolas Lœuillet)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- [#1977](https://github.com/wallabag/wallabag/pull/1977) Spanish documentation (jami7)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- [#2023](https://github.com/wallabag/wallabag/pull/2023) Fix translation for validators (Nicolas Lœuillet)
|
||||||
|
- [#2020](https://github.com/wallabag/wallabag/pull/2020) Fix number of entries in tag/list (Nicolas Lœuillet)
|
||||||
|
- [#2022](https://github.com/wallabag/wallabag/pull/2022) Fix pagination bar on small devices (Nicolas Lœuillet)
|
||||||
|
- [#2013](https://github.com/wallabag/wallabag/pull/2013) Fix tag listing (Nicolas Lœuillet)
|
||||||
|
- [#1976](https://github.com/wallabag/wallabag/pull/1976) Fix filter reading time (Nicolas Lœuillet)
|
||||||
|
- [#2005](https://github.com/wallabag/wallabag/pull/2005) Fix reading speed not defined when user was created via config page (Nicolas Lœuillet)
|
||||||
|
- [#2010](https://github.com/wallabag/wallabag/pull/2010) Set the title via POST /api/entries (Nicolas Lœuillet)
|
||||||
|
|
||||||
|
## [2.0.3] - 2016-04-22
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- [#1962](https://github.com/wallabag/wallabag/pull/1962) cURL examples in documentation about API (Dirk Deimeke)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Forgot `composer.lock` file in 2.0.2 release so some users may encounter `Fatal error: Out of memory` error during installation
|
||||||
|
|
||||||
## [2.0.2] - 2016-04-21
|
## [2.0.2] - 2016-04-21
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
239
Gruntfile.js
Normal 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']
|
||||||
|
)
|
||||||
|
};
|
||||||
@ -1,5 +1,5 @@
|
|||||||
[](https://travis-ci.org/wallabag/wallabag)
|
[](https://travis-ci.org/wallabag/wallabag)
|
||||||
[](https://scrutinizer-ci.com/g/wallabag/wallabag/?branch=v2)
|
[](https://scrutinizer-ci.com/g/wallabag/wallabag/?branch=master)
|
||||||
[](https://gitter.im/wallabag/wallabag)
|
[](https://gitter.im/wallabag/wallabag)
|
||||||
|
|
||||||
# What is wallabag?
|
# What is wallabag?
|
||||||
@ -10,13 +10,13 @@ More informations on our website: [wallabag.org](https://wallabag.org)
|
|||||||
|
|
||||||
# Install wallabag
|
# Install wallabag
|
||||||
|
|
||||||
If you don't have it yet, please [install composer](https://getcomposer.org/download/).
|
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:
|
Then you can install wallabag by executing the following commands:
|
||||||
|
|
||||||
```
|
```
|
||||||
git clone https://github.com/wallabag/wallabag.git
|
git clone https://github.com/wallabag/wallabag.git
|
||||||
cd wallabag
|
cd wallabag
|
||||||
git checkout 2.0.2
|
git checkout 2.1.1
|
||||||
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
|
||||||
php bin/console wallabag:install --env=prod
|
php bin/console wallabag:install --env=prod
|
||||||
php bin/console server:run --env=prod
|
php bin/console server:run --env=prod
|
||||||
|
|||||||
@ -13,7 +13,6 @@ class AppKernel extends Kernel
|
|||||||
new Symfony\Bundle\TwigBundle\TwigBundle(),
|
new Symfony\Bundle\TwigBundle\TwigBundle(),
|
||||||
new Symfony\Bundle\MonologBundle\MonologBundle(),
|
new Symfony\Bundle\MonologBundle\MonologBundle(),
|
||||||
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
|
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
|
||||||
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
|
|
||||||
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
|
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
|
||||||
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
|
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
|
||||||
new FOS\RestBundle\FOSRestBundle(),
|
new FOS\RestBundle\FOSRestBundle(),
|
||||||
@ -39,6 +38,7 @@ class AppKernel extends Kernel
|
|||||||
new Wallabag\UserBundle\WallabagUserBundle(),
|
new Wallabag\UserBundle\WallabagUserBundle(),
|
||||||
new Wallabag\ImportBundle\WallabagImportBundle(),
|
new Wallabag\ImportBundle\WallabagImportBundle(),
|
||||||
new Wallabag\AnnotationBundle\WallabagAnnotationBundle(),
|
new Wallabag\AnnotationBundle\WallabagAnnotationBundle(),
|
||||||
|
new OldSound\RabbitMqBundle\OldSoundRabbitMqBundle(),
|
||||||
];
|
];
|
||||||
|
|
||||||
if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
|
if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
|
||||||
|
|||||||
46
app/DoctrineMigrations/Version20160410190541.php
Normal 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'");
|
||||||
|
}
|
||||||
|
}
|
||||||
48
app/DoctrineMigrations/Version20160812120952.php
Normal 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');
|
||||||
|
}
|
||||||
|
}
|
||||||
42
app/DoctrineMigrations/Version20160911214952.php
Normal 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)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
46
app/DoctrineMigrations/Version20160916201049.php
Normal 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')");
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -8,7 +8,8 @@ export_csv: Aktiver eksport til CSV
|
|||||||
export_json: Aktiver eksport til JSON
|
export_json: Aktiver eksport til JSON
|
||||||
export_txt: Aktiver eksport til TXT
|
export_txt: Aktiver eksport til TXT
|
||||||
export_xml: Aktiver eksport til XML
|
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
|
shaarli_url: Shaarli-URL, hvis tjenesten er aktiv
|
||||||
share_diaspora: Aktiver deling til Diaspora
|
share_diaspora: Aktiver deling til Diaspora
|
||||||
share_mail: Aktiver deling med email
|
share_mail: Aktiver deling med email
|
||||||
@ -27,3 +28,4 @@ piwik_site_id: ID for din side hos Piwik
|
|||||||
piwik_enabled: Aktiver Piwik
|
piwik_enabled: Aktiver Piwik
|
||||||
demo_mode_enabled: "Aktiver demo-indstilling? (anvendes kun til wallabags offentlige demo)"
|
demo_mode_enabled: "Aktiver demo-indstilling? (anvendes kun til wallabags offentlige demo)"
|
||||||
demo_mode_username: "Demobruger"
|
demo_mode_username: "Demobruger"
|
||||||
|
# share_public: Allow public url for entries
|
||||||
|
|||||||
@ -8,7 +8,8 @@ export_csv: CSV-Export aktivieren
|
|||||||
export_json: JSON-Export aktivieren
|
export_json: JSON-Export aktivieren
|
||||||
export_txt: TXT-Export aktivieren
|
export_txt: TXT-Export aktivieren
|
||||||
export_xml: XML-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
|
shaarli_url: Shaarli-URL, sofern der Service aktiviert ist
|
||||||
share_diaspora: Teilen zu Diaspora aktiveren
|
share_diaspora: Teilen zu Diaspora aktiveren
|
||||||
share_mail: Teilen via E-Mail aktiveren
|
share_mail: Teilen via E-Mail aktiveren
|
||||||
@ -27,3 +28,4 @@ piwik_site_id: ID deiner Webseite in Piwik
|
|||||||
piwik_enabled: Piwik aktivieren
|
piwik_enabled: Piwik aktivieren
|
||||||
demo_mode_enabled: "Test-Modus aktivieren? (nur für die öffentliche wallabag-Demo genutzt)"
|
demo_mode_enabled: "Test-Modus aktivieren? (nur für die öffentliche wallabag-Demo genutzt)"
|
||||||
demo_mode_username: "Test-Benutzer"
|
demo_mode_username: "Test-Benutzer"
|
||||||
|
# share_public: Allow public url for entries
|
||||||
|
|||||||
@ -8,7 +8,8 @@ export_csv: Enable CSV export
|
|||||||
export_json: Enable JSON export
|
export_json: Enable JSON export
|
||||||
export_txt: Enable TXT export
|
export_txt: Enable TXT export
|
||||||
export_xml: Enable XML 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
|
shaarli_url: Shaarli URL, if the service is enabled
|
||||||
share_diaspora: Enable share to Diaspora
|
share_diaspora: Enable share to Diaspora
|
||||||
share_mail: Enable share by email
|
share_mail: Enable share by email
|
||||||
@ -27,3 +28,4 @@ piwik_site_id: ID of your website in Piwik
|
|||||||
piwik_enabled: Enable Piwik
|
piwik_enabled: Enable Piwik
|
||||||
demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
|
demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
|
||||||
demo_mode_username: "Demo user"
|
demo_mode_username: "Demo user"
|
||||||
|
share_public: Allow public url for entries
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
download_pictures: Descagar imagenes
|
download_pictures: Descargar imágenes
|
||||||
carrot: Activar compartir con Carrot
|
carrot: Activar compartir con Carrot
|
||||||
diaspora_url: Diaspora URL, si el servicio esta activado
|
diaspora_url: Diaspora URL, si el servicio está activado
|
||||||
export_epub: Activar exportación a ePub
|
export_epub: Activar exportación a ePub
|
||||||
export_mobi: Activar exportación a .mobi
|
export_mobi: Activar exportación a .mobi
|
||||||
export_pdf: Activar exportación a PDF
|
export_pdf: Activar exportación a PDF
|
||||||
@ -8,13 +8,14 @@ export_csv: Activar exportación a CSV
|
|||||||
export_json: Activar exportación a JSON
|
export_json: Activar exportación a JSON
|
||||||
export_txt: Activar exportación a TXT
|
export_txt: Activar exportación a TXT
|
||||||
export_xml: Activar exportación a XML
|
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
|
shaarli_url: Shaarli URL, si el servicio está activado
|
||||||
share_diaspora: Activar compartir con Diaspora
|
share_diaspora: Activar compartir con Diaspora
|
||||||
share_mail: Activar compartir con email
|
share_mail: Activar compartir con email
|
||||||
share_shaarli: Activar compartir con Shaarli
|
share_shaarli: Activar compartir con Shaarli
|
||||||
share_twitter: Activar compartir con Twitter
|
share_twitter: Activar compartir con Twitter
|
||||||
show_printlink: Mostrar un link para imprimir contenido
|
show_printlink: Mostrar un enlace para imprimir contenido
|
||||||
wallabag_support_url: URL de soporte de wallabag
|
wallabag_support_url: URL de soporte de wallabag
|
||||||
wallabag_url: URL de *tu* instancia de wallabag
|
wallabag_url: URL de *tu* instancia de wallabag
|
||||||
entry: "artículo"
|
entry: "artículo"
|
||||||
@ -27,3 +28,4 @@ piwik_site_id: ID de tu website de Piwik
|
|||||||
piwik_enabled: Activar Piwik
|
piwik_enabled: Activar Piwik
|
||||||
demo_mode_enabled: "Activar modo demo (sólo usado para la demo de wallabag)"
|
demo_mode_enabled: "Activar modo demo (sólo usado para la demo de wallabag)"
|
||||||
demo_mode_username: "Nombre de usuario demo"
|
demo_mode_username: "Nombre de usuario demo"
|
||||||
|
# share_public: Allow public url for entries
|
||||||
|
|||||||
@ -8,7 +8,8 @@ export_csv: فعالسازی برونسپاری به CSV
|
|||||||
export_json: فعالسازی برونسپاری به JSON
|
export_json: فعالسازی برونسپاری به JSON
|
||||||
export_txt: فعالسازی برونسپاری به TXT
|
export_txt: فعالسازی برونسپاری به TXT
|
||||||
export_xml: فعالسازی برونسپاری به XML
|
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، اگر فعال بود
|
shaarli_url: نشانی Shaarli، اگر فعال بود
|
||||||
share_diaspora: فعالسازی همرسانی به Diaspora
|
share_diaspora: فعالسازی همرسانی به Diaspora
|
||||||
share_mail: فعالسازی همرسانی با ایمیل
|
share_mail: فعالسازی همرسانی با ایمیل
|
||||||
@ -22,3 +23,9 @@ export: "برونسپاری"
|
|||||||
import: "درونریزی"
|
import: "درونریزی"
|
||||||
misc: "غیره"
|
misc: "غیره"
|
||||||
modify_settings: "اعمال"
|
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
|
||||||
|
|||||||
@ -8,7 +8,8 @@ export_csv: Activer l'export CSV
|
|||||||
export_json: Activer l'export JSON
|
export_json: Activer l'export JSON
|
||||||
export_txt: Activer l'export TXT
|
export_txt: Activer l'export TXT
|
||||||
export_xml: Activer l'export XML
|
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é
|
shaarli_url: URL de Shaarli, si le service Shaarli est activé
|
||||||
share_diaspora: Activer le partage vers Diaspora
|
share_diaspora: Activer le partage vers Diaspora
|
||||||
share_mail: Activer le partage par email
|
share_mail: Activer le partage par email
|
||||||
@ -27,3 +28,4 @@ piwik_site_id: ID de votre site dans Piwik
|
|||||||
piwik_enabled: Activer Piwik
|
piwik_enabled: Activer Piwik
|
||||||
demo_mode_enabled: "Activer le mode démo ? (utiliser uniquement pour la démo publique de wallabag)"
|
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"
|
demo_mode_username: "Utilisateur de la démo"
|
||||||
|
share_public: Autoriser une URL publique pour les articles
|
||||||
|
|||||||
@ -0,0 +1,31 @@
|
|||||||
|
download_pictures: Scarica le immagini sul tuo server
|
||||||
|
carrot: Abilita la condivisione con Carrot
|
||||||
|
diaspora_url: Diaspora URL, se il servizio è abilitato
|
||||||
|
export_epub: Abilita esportazione ePub
|
||||||
|
export_mobi: Abilita esportazione .mobi
|
||||||
|
export_pdf: Abilita esportazione PDF
|
||||||
|
export_csv: Abilita esportazione CSV
|
||||||
|
export_json: Abilita esportazione JSON
|
||||||
|
export_txt: Abilita esportazione TXT
|
||||||
|
export_xml: Abilita esportazione XML
|
||||||
|
# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously
|
||||||
|
# import_with_redis: Enable Redis to import data asynchronously
|
||||||
|
shaarli_url: Shaarli URL, se il servizio è abilitato
|
||||||
|
share_diaspora: Abilita la condivisione con Diaspora
|
||||||
|
share_mail: Abilita la condivisione per email
|
||||||
|
share_shaarli: Abilita la condivisione con Shaarli
|
||||||
|
share_twitter: Abilita la condivisione con Twitter
|
||||||
|
show_printlink: Mostra un collegamento per stampare il contenuto
|
||||||
|
wallabag_support_url: URL di supporto per wallabag
|
||||||
|
wallabag_url: URL della *tua* installazione di wallabag
|
||||||
|
entry: "contenuto"
|
||||||
|
export: "esporta"
|
||||||
|
import: "importa"
|
||||||
|
misc: "misc"
|
||||||
|
modify_settings: "applica"
|
||||||
|
piwik_host: Host del tuo sito in Piwik
|
||||||
|
piwik_site_id: ID del tuo sito in Piwik
|
||||||
|
piwik_enabled: Abilita Piwik
|
||||||
|
demo_mode_enabled: "Abilita modalità demo ? (usato solo per la demo pubblica di wallabag)"
|
||||||
|
demo_mode_username: "Utente Demo"
|
||||||
|
# share_public: Allow public url for entries
|
||||||
@ -8,7 +8,8 @@ export_csv: Activar l'expòrt CSV
|
|||||||
export_json: Activar l'expòrt JSON
|
export_json: Activar l'expòrt JSON
|
||||||
export_txt: Activar l'expòrt TXT
|
export_txt: Activar l'expòrt TXT
|
||||||
export_xml: Activar l'expòrt XML
|
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
|
shaarli_url: URL de Shaarli, se lo servici Shaarli es activat
|
||||||
share_diaspora: Activar lo partatge cap a Diaspora
|
share_diaspora: Activar lo partatge cap a Diaspora
|
||||||
share_mail: Activar lo partatge per corrièl
|
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
|
piwik_enabled: Activar Piwik
|
||||||
demo_mode_enabled: "Activar lo mode demostracion ? (utilizar solament per la demostracion publica de wallabag)"
|
demo_mode_enabled: "Activar lo mode demostracion ? (utilizar solament per la demostracion publica de wallabag)"
|
||||||
demo_mode_username: "Utilizaire de la demostracion"
|
demo_mode_username: "Utilizaire de la demostracion"
|
||||||
|
# share_public: Allow public url for entries
|
||||||
|
|||||||
@ -8,7 +8,8 @@ export_csv: Włącz eksport do CSV
|
|||||||
export_json: Włącz eksport do JSON
|
export_json: Włącz eksport do JSON
|
||||||
export_txt: Włącz eksport do TXT
|
export_txt: Włącz eksport do TXT
|
||||||
export_xml: Włącz eksport do XML
|
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
|
shaarli_url: Adress URL Shaarli, jeżeli usługa jest włączona
|
||||||
share_diaspora: Włącz udostępnianie dla Diaspora
|
share_diaspora: Włącz udostępnianie dla Diaspora
|
||||||
share_mail: Włącz udostępnianie przez email
|
share_mail: Włącz udostępnianie przez email
|
||||||
@ -22,3 +23,9 @@ export: "eksport"
|
|||||||
import: "import"
|
import: "import"
|
||||||
misc: "różne"
|
misc: "różne"
|
||||||
modify_settings: "zatwierdz"
|
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
|
||||||
|
|||||||
@ -8,7 +8,8 @@ export_csv: Permite exportare CSV
|
|||||||
export_json: Permite exportare JSON
|
export_json: Permite exportare JSON
|
||||||
export_txt: Permite exportare TXT
|
export_txt: Permite exportare TXT
|
||||||
export_xml: Permite exportare XML
|
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
|
shaarli_url: Shaarli URL, dacă serviciul este permis
|
||||||
share_diaspora: Permite share către Diaspora
|
share_diaspora: Permite share către Diaspora
|
||||||
share_mail: Permite share prin email
|
share_mail: Permite share prin email
|
||||||
@ -22,3 +23,9 @@ export: "exportă"
|
|||||||
import: "importă"
|
import: "importă"
|
||||||
misc: "diverse"
|
misc: "diverse"
|
||||||
modify_settings: "aplică"
|
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
|
||||||
|
|||||||
@ -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
|
||||||
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 612 B After Width: | Height: | Size: 612 B |
BIN
app/Resources/static/themes/_global/img/icons/shaarli.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
6
app/Resources/static/themes/_global/js/bookmarklet.js
Normal 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>';
|
||||||
50
app/Resources/static/themes/_global/js/tools.js
Normal 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 };
|
||||||
6
app/Resources/static/themes/baggy/css/font.css
Executable 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");
|
||||||
|
}
|
||||||
19
app/Resources/static/themes/baggy/css/messages.css
Executable 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;
|
||||||
|
}
|
||||||
66
app/Resources/static/themes/baggy/css/print.css
Executable 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%;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -50,7 +50,6 @@ pre {
|
|||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.upper {
|
.upper {
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
@ -64,7 +63,9 @@ pre {
|
|||||||
max-width: 61.25em; /* 980px */
|
max-width: 61.25em; /* 980px */
|
||||||
}
|
}
|
||||||
|
|
||||||
table, img {
|
table,
|
||||||
|
img,
|
||||||
|
figure {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
@ -115,11 +116,17 @@ input[type="search"] {
|
|||||||
display: none;
|
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 {
|
.element-invisible {
|
||||||
border: 0;
|
border: 0;
|
||||||
@ -142,17 +149,45 @@ input[type="search"] {
|
|||||||
|
|
||||||
/* Width */
|
/* Width */
|
||||||
|
|
||||||
.w100 { width:100%; }
|
.w100 {
|
||||||
.w90 { width:90%; }
|
width: 100%;
|
||||||
.w80 { width:80%; }
|
}
|
||||||
.w70 { width:70%; }
|
|
||||||
.w60 { width:60%; }
|
|
||||||
.w50 { width:50%; }
|
|
||||||
.w40 { width:40%; }
|
|
||||||
.w30 { width:30%; }
|
|
||||||
.w20 { width:20%; }
|
|
||||||
.w10 { width:10%; }
|
|
||||||
|
|
||||||
|
.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
|
Internet Explorer
|
||||||
@ -189,23 +224,3 @@ video {
|
|||||||
border-radius: 0;
|
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) {
|
|
||||||
}
|
|
||||||
|
|
||||||
BIN
app/Resources/static/themes/baggy/font/icomoon.eot
Normal file
501
app/Resources/static/themes/baggy/font/icomoon.svg
Normal file
|
After Width: | Height: | Size: 307 KiB |
BIN
app/Resources/static/themes/baggy/font/icomoon.ttf
Normal file
BIN
app/Resources/static/themes/baggy/font/icomoon.woff
Normal file
|
Before Width: | Height: | Size: 141 B After Width: | Height: | Size: 141 B |
|
Before Width: | Height: | Size: 216 B After Width: | Height: | Size: 216 B |
|
Before Width: | Height: | Size: 201 B After Width: | Height: | Size: 201 B |
|
Before Width: | Height: | Size: 229 B After Width: | Height: | Size: 229 B |
|
Before Width: | Height: | Size: 212 B After Width: | Height: | Size: 212 B |
8
app/Resources/static/themes/baggy/js/autoCompleteTags.js
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
function split(val) {
|
||||||
|
return val.split(/,\s*/);
|
||||||
|
}
|
||||||
|
function extractLast(term) {
|
||||||
|
return split(term).pop();
|
||||||
|
}
|
||||||
|
|
||||||
|
export { split, extractLast };
|
||||||
314
app/Resources/static/themes/baggy/js/init.js
Executable 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();
|
||||||
|
});
|
||||||
|
});
|
||||||
35
app/Resources/static/themes/baggy/js/uiTools.js
Normal 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 };
|
||||||
751
app/Resources/static/themes/material/css/main.css
Executable 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;
|
||||||
|
}
|
||||||
77
app/Resources/static/themes/material/css/print.css
Executable 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%;
|
||||||
|
}
|
||||||
|
}
|
||||||
99
app/Resources/static/themes/material/js/init.js
Executable 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);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
@ -5,17 +5,19 @@ imports:
|
|||||||
|
|
||||||
framework:
|
framework:
|
||||||
#esi: ~
|
#esi: ~
|
||||||
translator: { fallback: "%locale%" }
|
translator:
|
||||||
|
enabled: true
|
||||||
|
fallback: "%locale%"
|
||||||
secret: "%secret%"
|
secret: "%secret%"
|
||||||
router:
|
router:
|
||||||
resource: "%kernel.root_dir%/config/routing.yml"
|
resource: "%kernel.root_dir%/config/routing.yml"
|
||||||
strict_requirements: ~
|
strict_requirements: ~
|
||||||
form: ~
|
form: ~
|
||||||
csrf_protection: ~
|
csrf_protection: ~
|
||||||
validation: { enable_annotations: true }
|
validation:
|
||||||
|
enable_annotations: true
|
||||||
templating:
|
templating:
|
||||||
engines: ['twig']
|
engines: ['twig']
|
||||||
#assets_version: SomeVersionScheme
|
|
||||||
default_locale: "%locale%"
|
default_locale: "%locale%"
|
||||||
trusted_hosts: ~
|
trusted_hosts: ~
|
||||||
trusted_proxies: ~
|
trusted_proxies: ~
|
||||||
@ -28,7 +30,7 @@ framework:
|
|||||||
assets: ~
|
assets: ~
|
||||||
|
|
||||||
wallabag_core:
|
wallabag_core:
|
||||||
version: 2.0.2
|
version: 2.1.1
|
||||||
paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
|
paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
|
||||||
languages:
|
languages:
|
||||||
en: 'English'
|
en: 'English'
|
||||||
@ -41,14 +43,19 @@ wallabag_core:
|
|||||||
da: 'Dansk'
|
da: 'Dansk'
|
||||||
es: 'Español'
|
es: 'Español'
|
||||||
oc: 'Occitan'
|
oc: 'Occitan'
|
||||||
|
it: 'Italiano'
|
||||||
items_on_page: 12
|
items_on_page: 12
|
||||||
theme: material
|
theme: material
|
||||||
language: en
|
language: en
|
||||||
rss_limit: 50
|
rss_limit: 50
|
||||||
reading_speed: 1
|
reading_speed: 1
|
||||||
|
cache_lifetime: 10
|
||||||
|
|
||||||
|
wallabag_user:
|
||||||
|
registration_enabled: "%fosuser_registration%"
|
||||||
|
|
||||||
wallabag_import:
|
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"
|
resource_dir: "%kernel.root_dir%/../web/uploads/import"
|
||||||
|
|
||||||
# Twig Configuration
|
# Twig Configuration
|
||||||
@ -57,19 +64,7 @@ twig:
|
|||||||
strict_variables: "%kernel.debug%"
|
strict_variables: "%kernel.debug%"
|
||||||
form_themes:
|
form_themes:
|
||||||
- "LexikFormFilterBundle:Form:form_div_layout.html.twig"
|
- "LexikFormFilterBundle:Form:form_div_layout.html.twig"
|
||||||
|
exception_controller: wallabag_core.exception_controller:showAction
|
||||||
# Assetic Configuration
|
|
||||||
assetic:
|
|
||||||
debug: "%kernel.debug%"
|
|
||||||
use_controller: false
|
|
||||||
bundles: [ ]
|
|
||||||
#java: /usr/bin/java
|
|
||||||
filters:
|
|
||||||
cssrewrite: ~
|
|
||||||
#closure:
|
|
||||||
# jar: "%kernel.root_dir%/Resources/java/compiler.jar"
|
|
||||||
#yui_css:
|
|
||||||
# jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
|
|
||||||
|
|
||||||
# Doctrine Configuration
|
# Doctrine Configuration
|
||||||
doctrine:
|
doctrine:
|
||||||
@ -110,7 +105,8 @@ swiftmailer:
|
|||||||
host: "%mailer_host%"
|
host: "%mailer_host%"
|
||||||
username: "%mailer_user%"
|
username: "%mailer_user%"
|
||||||
password: "%mailer_password%"
|
password: "%mailer_password%"
|
||||||
spool: { type: memory }
|
spool:
|
||||||
|
type: memory
|
||||||
|
|
||||||
fos_rest:
|
fos_rest:
|
||||||
param_fetcher_listener: true
|
param_fetcher_listener: true
|
||||||
@ -147,6 +143,11 @@ nelmio_cors:
|
|||||||
#origin_regex: false
|
#origin_regex: false
|
||||||
paths:
|
paths:
|
||||||
'^/api/':
|
'^/api/':
|
||||||
|
allow_origin: ['*']
|
||||||
|
allow_headers: ['X-Custom-Auth']
|
||||||
|
allow_methods: ['POST', 'PUT', 'PATCH','GET', 'DELETE']
|
||||||
|
max_age: 3600
|
||||||
|
'^/oauth/':
|
||||||
allow_origin: ['*']
|
allow_origin: ['*']
|
||||||
allow_headers: ['X-Custom-Auth']
|
allow_headers: ['X-Custom-Auth']
|
||||||
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
|
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
|
||||||
@ -168,17 +169,17 @@ liip_theme:
|
|||||||
|
|
||||||
path_patterns:
|
path_patterns:
|
||||||
bundle_resource:
|
bundle_resource:
|
||||||
- %%bundle_path%%/Resources/views/themes/%%current_theme%%/%%template%%
|
- "%%bundle_path%%/Resources/views/themes/%%current_theme%%/%%template%%"
|
||||||
|
|
||||||
fos_user:
|
fos_user:
|
||||||
db_driver: orm
|
db_driver: orm
|
||||||
firewall_name: main
|
firewall_name: secured_area
|
||||||
user_class: Wallabag\UserBundle\Entity\User
|
user_class: Wallabag\UserBundle\Entity\User
|
||||||
registration:
|
registration:
|
||||||
confirmation:
|
confirmation:
|
||||||
enabled: %fosuser_confirmation%
|
enabled: "%fosuser_confirmation%"
|
||||||
from_email:
|
from_email:
|
||||||
address: %from_email%
|
address: "%from_email%"
|
||||||
sender_name: wallabag
|
sender_name: wallabag
|
||||||
fos_oauth_server:
|
fos_oauth_server:
|
||||||
db_driver: orm
|
db_driver: orm
|
||||||
@ -196,8 +197,8 @@ scheb_two_factor:
|
|||||||
cookie_lifetime: 2592000
|
cookie_lifetime: 2592000
|
||||||
|
|
||||||
email:
|
email:
|
||||||
enabled: %twofactor_auth%
|
enabled: "%twofactor_auth%"
|
||||||
sender_email: %twofactor_sender%
|
sender_email: "%twofactor_sender%"
|
||||||
digits: 6
|
digits: 6
|
||||||
template: WallabagUserBundle:Authentication:form.html.twig
|
template: WallabagUserBundle:Authentication:form.html.twig
|
||||||
mailer: wallabag_user.auth_code_mailer
|
mailer: wallabag_user.auth_code_mailer
|
||||||
@ -215,3 +216,106 @@ lexik_maintenance:
|
|||||||
response:
|
response:
|
||||||
code: 503
|
code: 503
|
||||||
status: "wallabag Service Temporarily Unavailable"
|
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
|
||||||
|
|||||||
@ -5,7 +5,8 @@ framework:
|
|||||||
router:
|
router:
|
||||||
resource: "%kernel.root_dir%/config/routing_dev.yml"
|
resource: "%kernel.root_dir%/config/routing_dev.yml"
|
||||||
strict_requirements: true
|
strict_requirements: true
|
||||||
profiler: { only_exceptions: false }
|
profiler:
|
||||||
|
only_exceptions: false
|
||||||
|
|
||||||
web_profiler:
|
web_profiler:
|
||||||
toolbar: true
|
toolbar: true
|
||||||
@ -17,14 +18,14 @@ monolog:
|
|||||||
type: stream
|
type: stream
|
||||||
path: "%kernel.logs_dir%/%kernel.environment%.log"
|
path: "%kernel.logs_dir%/%kernel.environment%.log"
|
||||||
level: debug
|
level: debug
|
||||||
channels: [!event]
|
channels: ['!event']
|
||||||
console:
|
console:
|
||||||
type: console
|
type: console
|
||||||
bubble: false
|
bubble: false
|
||||||
verbosity_levels:
|
verbosity_levels:
|
||||||
VERBOSITY_VERBOSE: INFO
|
VERBOSITY_VERBOSE: INFO
|
||||||
VERBOSITY_VERY_VERBOSE: DEBUG
|
VERBOSITY_VERY_VERBOSE: DEBUG
|
||||||
channels: [!event, !doctrine]
|
channels: ['!event', '!doctrine']
|
||||||
console_very_verbose:
|
console_very_verbose:
|
||||||
type: console
|
type: console
|
||||||
bubble: false
|
bubble: false
|
||||||
@ -34,11 +35,16 @@ monolog:
|
|||||||
VERBOSITY_DEBUG: DEBUG
|
VERBOSITY_DEBUG: DEBUG
|
||||||
channels: [doctrine]
|
channels: [doctrine]
|
||||||
|
|
||||||
assetic:
|
|
||||||
use_controller: true
|
|
||||||
|
|
||||||
swiftmailer:
|
swiftmailer:
|
||||||
# see http://mailcatcher.me/
|
# see http://mailcatcher.me/
|
||||||
transport: smtp
|
transport: smtp
|
||||||
host: 'localhost'
|
host: 'localhost'
|
||||||
port: 1025
|
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
|
||||||
|
|||||||
@ -2,8 +2,8 @@ imports:
|
|||||||
- { resource: config.yml }
|
- { resource: config.yml }
|
||||||
|
|
||||||
#framework:
|
#framework:
|
||||||
# validation:
|
# cache:
|
||||||
# cache: apc
|
# system: cache.adapter.apcu
|
||||||
|
|
||||||
#doctrine:
|
#doctrine:
|
||||||
# orm:
|
# orm:
|
||||||
|
|||||||
@ -34,6 +34,19 @@ parameters:
|
|||||||
twofactor_sender: no-reply@wallabag.org
|
twofactor_sender: no-reply@wallabag.org
|
||||||
|
|
||||||
# fosuser stuff
|
# fosuser stuff
|
||||||
|
fosuser_registration: true
|
||||||
fosuser_confirmation: true
|
fosuser_confirmation: true
|
||||||
|
|
||||||
from_email: no-reply@wallabag.org
|
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
|
||||||
|
|||||||
@ -5,4 +5,4 @@ parameters:
|
|||||||
test_database_name: null
|
test_database_name: null
|
||||||
test_database_user: null
|
test_database_user: null
|
||||||
test_database_password: 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'
|
||||||
|
|||||||
@ -7,6 +7,11 @@ wallabag_import:
|
|||||||
type: annotation
|
type: annotation
|
||||||
prefix: /import
|
prefix: /import
|
||||||
|
|
||||||
|
wallabag_user:
|
||||||
|
resource: "@WallabagUserBundle/Controller/"
|
||||||
|
type: annotation
|
||||||
|
prefix: /users
|
||||||
|
|
||||||
wallabag_api:
|
wallabag_api:
|
||||||
resource: "@WallabagApiBundle/Resources/config/routing.yml"
|
resource: "@WallabagApiBundle/Resources/config/routing.yml"
|
||||||
prefix: /
|
prefix: /
|
||||||
|
|||||||
@ -8,7 +8,9 @@ security:
|
|||||||
|
|
||||||
providers:
|
providers:
|
||||||
administrators:
|
administrators:
|
||||||
entity: { class: WallabagUserBundle:User, property: username }
|
entity:
|
||||||
|
class: WallabagUserBundle:User
|
||||||
|
property: username
|
||||||
fos_userbundle:
|
fos_userbundle:
|
||||||
id: fos_user.user_provider.username
|
id: fos_user.user_provider.username
|
||||||
|
|
||||||
@ -58,6 +60,8 @@ security:
|
|||||||
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||||
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||||
- { path: /(unread|starred|archive).xml$, roles: 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: ^/settings, roles: ROLE_SUPER_ADMIN }
|
||||||
- { path: ^/annotations, roles: ROLE_USER }
|
- { path: ^/annotations, roles: ROLE_USER }
|
||||||
|
- { path: ^/users, roles: ROLE_SUPER_ADMIN }
|
||||||
- { path: ^/, roles: ROLE_USER }
|
- { path: ^/, roles: ROLE_USER }
|
||||||
|
|||||||
@ -16,6 +16,12 @@ services:
|
|||||||
wallabag.twig_extension:
|
wallabag.twig_extension:
|
||||||
class: Wallabag\CoreBundle\Twig\WallabagExtension
|
class: Wallabag\CoreBundle\Twig\WallabagExtension
|
||||||
public: false
|
public: false
|
||||||
|
arguments:
|
||||||
|
- "@wallabag_core.entry_repository"
|
||||||
|
- "@wallabag_core.tag_repository"
|
||||||
|
- "@security.token_storage"
|
||||||
|
- "%wallabag_core.cache_lifetime%"
|
||||||
|
- "@translator"
|
||||||
tags:
|
tags:
|
||||||
- { name: twig.extension }
|
- { name: twig.extension }
|
||||||
|
|
||||||
|
|||||||
@ -5,4 +5,4 @@ parameters:
|
|||||||
test_database_name: ~
|
test_database_name: ~
|
||||||
test_database_user: ~
|
test_database_user: ~
|
||||||
test_database_password: ~
|
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"
|
||||||
|
|||||||
@ -1 +0,0 @@
|
|||||||
../vendor/doctrine/orm/bin/doctrine
|
|
||||||
@ -1 +0,0 @@
|
|||||||
../vendor/doctrine/dbal/bin/doctrine-dbal
|
|
||||||
@ -1 +0,0 @@
|
|||||||
../vendor/doctrine/migrations/bin/doctrine-migrations
|
|
||||||
@ -1 +0,0 @@
|
|||||||
../vendor/doctrine/orm/bin/doctrine.php
|
|
||||||
@ -1 +0,0 @@
|
|||||||
../vendor/fabpot/php-cs-fixer/php-cs-fixer
|
|
||||||
@ -1 +0,0 @@
|
|||||||
../vendor/phpunit/phpunit/phpunit
|
|
||||||
@ -1 +0,0 @@
|
|||||||
../vendor/sensiolabs/security-checker/security-checker
|
|
||||||
@ -13,7 +13,7 @@ echo '> PHP is using the following php.ini file:'.PHP_EOL;
|
|||||||
if ($iniPath) {
|
if ($iniPath) {
|
||||||
echo_style('green', ' '.$iniPath);
|
echo_style('green', ' '.$iniPath);
|
||||||
} else {
|
} else {
|
||||||
echo_style('warning', ' WARNING: No configuration file (php.ini) used by PHP!');
|
echo_style('yellow', ' WARNING: No configuration file (php.ini) used by PHP!');
|
||||||
}
|
}
|
||||||
|
|
||||||
echo PHP_EOL.PHP_EOL;
|
echo PHP_EOL.PHP_EOL;
|
||||||
@ -22,7 +22,6 @@ echo '> Checking Symfony requirements:'.PHP_EOL.' ';
|
|||||||
|
|
||||||
$messages = array();
|
$messages = array();
|
||||||
foreach ($symfonyRequirements->getRequirements() as $req) {
|
foreach ($symfonyRequirements->getRequirements() as $req) {
|
||||||
/** @var $req Requirement */
|
|
||||||
if ($helpText = get_error_message($req, $lineSize)) {
|
if ($helpText = get_error_message($req, $lineSize)) {
|
||||||
echo_style('red', 'E');
|
echo_style('red', 'E');
|
||||||
$messages['error'][] = $helpText;
|
$messages['error'][] = $helpText;
|
||||||
@ -121,10 +120,14 @@ function echo_block($style, $title, $message)
|
|||||||
|
|
||||||
echo PHP_EOL.PHP_EOL;
|
echo PHP_EOL.PHP_EOL;
|
||||||
|
|
||||||
echo_style($style, str_repeat(' ', $width).PHP_EOL);
|
echo_style($style, str_repeat(' ', $width));
|
||||||
echo_style($style, str_pad(' ['.$title.']', $width, ' ', STR_PAD_RIGHT).PHP_EOL);
|
echo PHP_EOL;
|
||||||
echo_style($style, str_pad($message, $width, ' ', STR_PAD_RIGHT).PHP_EOL);
|
echo_style($style, str_pad(' ['.$title.']', $width, ' ', STR_PAD_RIGHT));
|
||||||
echo_style($style, str_repeat(' ', $width).PHP_EOL);
|
echo PHP_EOL;
|
||||||
|
echo_style($style, $message);
|
||||||
|
echo PHP_EOL;
|
||||||
|
echo_style($style, str_repeat(' ', $width));
|
||||||
|
echo PHP_EOL;
|
||||||
}
|
}
|
||||||
|
|
||||||
function has_color_support()
|
function has_color_support()
|
||||||
|
|||||||
@ -43,12 +43,11 @@
|
|||||||
"ext-iconv": "*",
|
"ext-iconv": "*",
|
||||||
"ext-tokenizer": "*",
|
"ext-tokenizer": "*",
|
||||||
"ext-pdo": "*",
|
"ext-pdo": "*",
|
||||||
"symfony/symfony": "3.0.*",
|
"symfony/symfony": "3.1.*",
|
||||||
"doctrine/orm": "^2.5",
|
"doctrine/orm": "^2.5",
|
||||||
"doctrine/doctrine-bundle": "^1.6",
|
"doctrine/doctrine-bundle": "^1.6",
|
||||||
"doctrine/doctrine-cache-bundle": "^1.2",
|
"doctrine/doctrine-cache-bundle": "^1.2",
|
||||||
"twig/extensions": "~1.0",
|
"twig/extensions": "~1.0",
|
||||||
"symfony/assetic-bundle": "~2.3",
|
|
||||||
"symfony/swiftmailer-bundle": "^2.3",
|
"symfony/swiftmailer-bundle": "^2.3",
|
||||||
"symfony/monolog-bundle": "^2.8",
|
"symfony/monolog-bundle": "^2.8",
|
||||||
"sensio/distribution-bundle": "^5.0",
|
"sensio/distribution-bundle": "^5.0",
|
||||||
@ -74,28 +73,33 @@
|
|||||||
"grandt/phpepub": "~4.0",
|
"grandt/phpepub": "~4.0",
|
||||||
"wallabag/php-mobi": "~1.0.0",
|
"wallabag/php-mobi": "~1.0.0",
|
||||||
"kphoen/rulerz-bundle": "~0.10",
|
"kphoen/rulerz-bundle": "~0.10",
|
||||||
"guzzlehttp/guzzle": "^5.2.0",
|
"guzzlehttp/guzzle": "^5.3.1",
|
||||||
"doctrine/doctrine-migrations-bundle": "^1.0",
|
"doctrine/doctrine-migrations-bundle": "^1.0",
|
||||||
"paragonie/random_compat": "~1.0",
|
"paragonie/random_compat": "~1.0",
|
||||||
"craue/config-bundle": "~1.4",
|
"craue/config-bundle": "~1.4",
|
||||||
"mnapoli/piwik-twig-extension": "^1.0",
|
"mnapoli/piwik-twig-extension": "^1.0",
|
||||||
"lexik/maintenance-bundle": "~2.1",
|
"lexik/maintenance-bundle": "~2.1",
|
||||||
"ocramius/proxy-manager": "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": {
|
"require-dev": {
|
||||||
"doctrine/doctrine-fixtures-bundle": "~2.2",
|
"doctrine/doctrine-fixtures-bundle": "~2.2",
|
||||||
|
"doctrine/data-fixtures": "~1.1.1",
|
||||||
"sensio/generator-bundle": "^3.0",
|
"sensio/generator-bundle": "^3.0",
|
||||||
"phpunit/phpunit": "~4.4",
|
"phpunit/phpunit": "~5.0",
|
||||||
"symfony/phpunit-bridge": "^2.7",
|
"symfony/phpunit-bridge": "^3.0",
|
||||||
"fabpot/php-cs-fixer": "~1.9"
|
"friendsofphp/php-cs-fixer": "~1.9",
|
||||||
|
"m6web/redis-mock": "^2.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"post-cmd": [
|
"post-cmd": [
|
||||||
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
|
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
|
||||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
|
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
|
||||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
|
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
|
||||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
|
|
||||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
|
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
|
||||||
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
|
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
|
||||||
],
|
],
|
||||||
@ -112,7 +116,6 @@
|
|||||||
"symfony-var-dir": "var",
|
"symfony-var-dir": "var",
|
||||||
"symfony-web-dir": "web",
|
"symfony-web-dir": "web",
|
||||||
"symfony-tests-dir": "tests",
|
"symfony-tests-dir": "tests",
|
||||||
"symfony-assets-install": "relative",
|
|
||||||
"incenteev-parameters": {
|
"incenteev-parameters": {
|
||||||
"file": "app/config/parameters.yml"
|
"file": "app/config/parameters.yml"
|
||||||
}
|
}
|
||||||
@ -121,6 +124,9 @@
|
|||||||
"psr-4": { "Wallabag\\": "src/Wallabag/" },
|
"psr-4": { "Wallabag\\": "src/Wallabag/" },
|
||||||
"classmap": [ "app/AppKernel.php", "app/AppCache.php" ]
|
"classmap": [ "app/AppKernel.php", "app/AppCache.php" ]
|
||||||
},
|
},
|
||||||
|
"autoload-dev": {
|
||||||
|
"psr-4": { "Tests\\": "tests/" }
|
||||||
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"bin-dir": "bin"
|
"bin-dir": "bin"
|
||||||
},
|
},
|
||||||
|
|||||||
7848
composer.lock
generated
Normal file
@ -11,6 +11,7 @@ services:
|
|||||||
links:
|
links:
|
||||||
- php:php
|
- php:php
|
||||||
command: nginx -c /nginx.conf
|
command: nginx -c /nginx.conf
|
||||||
|
|
||||||
php:
|
php:
|
||||||
build:
|
build:
|
||||||
context: docker/php
|
context: docker/php
|
||||||
@ -30,6 +31,7 @@ services:
|
|||||||
# If all DBMS are commented out, sqlite will be used as default
|
# If all DBMS are commented out, sqlite will be used as default
|
||||||
# - ./docker/postgres/env
|
# - ./docker/postgres/env
|
||||||
# - ./docker/mariadb/env
|
# - ./docker/mariadb/env
|
||||||
|
|
||||||
#postgres:
|
#postgres:
|
||||||
# image: postgres:9
|
# image: postgres:9
|
||||||
# ports:
|
# ports:
|
||||||
@ -38,6 +40,7 @@ services:
|
|||||||
# - ./docker/data/pgsql:/var/lib/postgresql/data
|
# - ./docker/data/pgsql:/var/lib/postgresql/data
|
||||||
# env_file:
|
# env_file:
|
||||||
# - ./docker/postgres/env
|
# - ./docker/postgres/env
|
||||||
|
|
||||||
#mariadb:
|
#mariadb:
|
||||||
# image: mariadb:10
|
# image: mariadb:10
|
||||||
# ports:
|
# ports:
|
||||||
@ -46,3 +49,13 @@ services:
|
|||||||
# - ./docker/data/mariadb:/var/lib/mysql
|
# - ./docker/data/mariadb:/var/lib/mysql
|
||||||
# env_file:
|
# env_file:
|
||||||
# - ./docker/mariadb/env
|
# - ./docker/mariadb/env
|
||||||
|
|
||||||
|
rabbitmq:
|
||||||
|
image: rabbitmq:3-management
|
||||||
|
ports:
|
||||||
|
- "15672:15672"
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis
|
||||||
|
ports:
|
||||||
|
- "6379:6379"
|
||||||
|
|||||||
@ -4,9 +4,10 @@ FROM php:fpm
|
|||||||
ARG timezone='Europe/Paris'
|
ARG timezone='Europe/Paris'
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y \
|
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 \
|
&& 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
|
RUN echo "date.timezone="$timezone > /usr/local/etc/php/conf.d/date_timezone.ini
|
||||||
|
|
||||||
|
|||||||
55
docs/de/conf.py
Normal 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")
|
||||||
270
docs/de/developer/api.rst
Normal file
57
docs/de/developer/docker.rst
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
Lasse wallabag in docker-compose laufen
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
Um deine eigene Entwicklungsinstanz von wallabag laufen zu lassen,
|
||||||
|
möchtest du vielleicht die vorkonfigurierten docker compose Dateien
|
||||||
|
nutzen.
|
||||||
|
|
||||||
|
Voraussetzungen
|
||||||
|
---------------
|
||||||
|
|
||||||
|
Stelle sicher `Docker
|
||||||
|
<https://docs.docker.com/installation/ubuntulinux/>`__ und `Docker
|
||||||
|
Compose <https://docs.docker.com/compose/install/>`__ auf deinem
|
||||||
|
System verfügbar und aktuell zu haben.
|
||||||
|
|
||||||
|
Wechsel des DBMS
|
||||||
|
----------------
|
||||||
|
|
||||||
|
Standardmäßig startet wallabag mit einer SQLite Datenbank.
|
||||||
|
Da wallabag Unterstützung für Postgresql und MySQL bietet, gibt es
|
||||||
|
auch docker Container für diese.
|
||||||
|
|
||||||
|
In der ``docker-compose.yml`` kommentierst du für das gewählte DBMS
|
||||||
|
aus:
|
||||||
|
|
||||||
|
- die Container Definition (``postgres`` oder ``mariadb`` root
|
||||||
|
Level Block)
|
||||||
|
- den Container Link in dem ``php`` Container
|
||||||
|
- die Container Umgebungsdatei in dem ``php`` Container
|
||||||
|
|
||||||
|
Um mit Symfony Kommandos auf deinem Host auszuführen (wie z.B.
|
||||||
|
``wallabag:install``), sollst du außerdem:
|
||||||
|
|
||||||
|
- die richtige Umgebungsdatei auf deiner Kommandozeile einlesen,
|
||||||
|
sodass Variablen wie ``SYMFONY__ENV__DATABASE_HOST`` existieren
|
||||||
|
- eine Zeile ``127.0.0.1 rdbms`` in deiner ``hosts`` Datei auf dem
|
||||||
|
System erstellen
|
||||||
|
|
||||||
|
wallabag laufen lassen
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
#. Forke und klone das Projekt
|
||||||
|
#. Bearbeite ``app/config/parameters.yml`` um ``database_*``
|
||||||
|
Eigenschaften mit den kommentierten zu ersetzen (mit Werten
|
||||||
|
mit ``env.`` Präfix)
|
||||||
|
#. ``composer install`` die Projektabhängigkeiten
|
||||||
|
#. ``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.
|
||||||
|
|
||||||
|
In den verschiedenen Schritten wirst du vielleicht in verschiendene
|
||||||
|
Probleme laufen wie UNIX Berechtigungsprobleme, falschen Pfaden im
|
||||||
|
generierten Cache, etc.…
|
||||||
|
Operationen wie das Löschen der Cachedateien oder das Ändern der
|
||||||
|
Dateibesitzer können öfter gebraucht werden, darum habe keine Angst
|
||||||
|
sie anzupassen.
|
||||||
10
docs/de/developer/documentation.rst
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
Wirke an dieser Dokumentation mit
|
||||||
|
=================================
|
||||||
|
|
||||||
|
Quellen der Dokumentation sind hier zu finden https://github.com/wallabag/wallabag/tree/master/docs
|
||||||
|
|
||||||
|
Wir nutzen `ReadTheDocs <https://readthedocs.org>`__, um sie zu generieren.
|
||||||
|
|
||||||
|
Seiten werden in `reStructuredText <https://de.wikipedia.org/wiki/ReStructuredText>`__ geschrieben. Du kannst Onlinetools wie http://rst.aaroniles.net/ oder http://rst.ninjs.org/ nutzen, um eine Vorschau deiner Artikel zu betrachten.
|
||||||
|
|
||||||
|
Wenn du eine neue Seite erstellst, vergiss nicht die `index.rst <https://raw.githubusercontent.com/wallabag/wallabag/master/docs/en/index.rst>`__ zu bearbeiten, um dort einen Link für die Seitenleiste hinzuzufügen.
|
||||||
32
docs/de/developer/maintenance.rst
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
Wartungsmodus
|
||||||
|
=============
|
||||||
|
|
||||||
|
Wenn du längere Aufgaben auf deiner wallabag Instanz ausführen willst, kannst du den Wartungsmodus aktivieren.
|
||||||
|
Keiner wird dann Zugang zu deiner Instanz haben.
|
||||||
|
|
||||||
|
Aktivieren des Wartungsmodus
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
Um den Wartungsmodus zu aktivieren, führe folgendes Kommando aus:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
bin/console lexik:maintenance:lock --no-interaction
|
||||||
|
|
||||||
|
Du kannst deine IP Adresse in ``app/config/config.yml`` setzen, wenn du Zugriff zu wallabag haben willst, auch wenn der Wartungsmodus aktiv ist. Zum Beispiel:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
lexik_maintenance:
|
||||||
|
authorized:
|
||||||
|
ips: ['127.0.0.1']
|
||||||
|
|
||||||
|
|
||||||
|
Deaktivieren des Wartungsmodus
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
Um den Wartungsmodus zu deaktivieren, führe dieses Kommando aus:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
bin/console lexik:maintenance:unlock
|
||||||
77
docs/de/developer/rabbitmq.rst
Normal 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
|
||||||
|
|
||||||
71
docs/de/developer/redis.rst
Normal 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
|
||||||
57
docs/de/developer/translate.rst
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
Übersetze wallabag
|
||||||
|
==================
|
||||||
|
|
||||||
|
wallabag Webapplikation
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Übersetzungsdateien
|
||||||
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Da wallabag hauptsächlich von einem französischem Team entwickelt wird, betrachte
|
||||||
|
die französische Übersetzung als die aktuellste und kopiere sie, um deine eigene Übersetzung zu starten.
|
||||||
|
|
||||||
|
Du kannst die Übersetzungsdateien hier finden: https://github.com/wallabag/wallabag/tree/master/src/Wallabag/CoreBundle/Resources/translations.
|
||||||
|
|
||||||
|
Du musst die ``messages.CODE.yml`` und ``validators.CODE.yml`` erstellen, wobei CODE
|
||||||
|
der ISO 639-1 Code deiner Sprache ist (`siehe Wikipedia <https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes>`__).
|
||||||
|
|
||||||
|
Andere Dateien zum Übersetzen:
|
||||||
|
|
||||||
|
- https://github.com/wallabag/wallabag/tree/master/app/Resources/CraueConfigBundle/translations.
|
||||||
|
- https://github.com/wallabag/wallabag/tree/master/app/Resources/FOSUserBundle/translations.
|
||||||
|
|
||||||
|
Du musst die ``THE_TRANSLATION_FILE.CODE.yml`` Dateien erstellen.
|
||||||
|
|
||||||
|
Konfigurationsdatei
|
||||||
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Du musst die `app/config/config.yml <https://github.com/wallabag/wallabag/blob/master/app/config/config.yml>`__ bearbeiten,
|
||||||
|
um deine Sprache auf der Konfigurationsseite in wallabag anzuzeigen (um Nutzern zu erlauben zu dieser neuen Übersetzung zu wechseln).
|
||||||
|
|
||||||
|
Unter dem Abschnitt ``wallabag_core.languages`` musst du eine neue Zeile mit deiner Übersetzung hinzufügen. Zum Beispiel:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
wallabag_core:
|
||||||
|
...
|
||||||
|
languages:
|
||||||
|
en: 'English'
|
||||||
|
fr: 'Français'
|
||||||
|
|
||||||
|
|
||||||
|
Für die erste Spalte (``en``, ``fr``, etc.) musst du den ISO 639-1 Code deiner Sprache hinzufügen (siehe oben).
|
||||||
|
|
||||||
|
Für die zweite Spalte trägst du den Namen deiner Sprache ein. Nur den.
|
||||||
|
|
||||||
|
wallabag Dokumentation
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Im Gegensatz zur Webapplikation ist die Hauptsprache für die Dokumentation Englisch.
|
||||||
|
|
||||||
|
Documentationsdateien sind hier gespeichert: https://github.com/wallabag/wallabag/tree/master/docs
|
||||||
|
|
||||||
|
Du musst die Ordnerstruktur des Ordners ``en`` beachten, wenn du deine eigene Übersetzung startest.
|
||||||
60
docs/de/index.rst
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
wallabag Dokumentation
|
||||||
|
======================
|
||||||
|
|
||||||
|
.. image:: ../img/wallabag.png
|
||||||
|
:alt: wallabag Logo
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
**wallabag** ist eine Read-it-later Applikation: es speichert Websites,
|
||||||
|
indem es nur den Inhalt behält. Elemente wie Navigation oder Werbung werden gelöscht.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
|
||||||
|
Diese Dokumentation ist über wallabag v2. Wenn du die Dokumentation für wallabag v1 lesen willst, `siehe dir bitte das hier an <https://github.com/wallabag/documentation>`__.
|
||||||
|
|
||||||
|
Die Hauptdokumentation für diese Applikation ist in einigen Abschnitten organisiert:
|
||||||
|
|
||||||
|
* :ref:`user-docs`
|
||||||
|
* :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::
|
||||||
|
:maxdepth: 2
|
||||||
|
:caption: Nutzerdokumentation
|
||||||
|
|
||||||
|
user/faq
|
||||||
|
user/installation
|
||||||
|
user/upgrade-2.0.x-2.1.y
|
||||||
|
user/upgrade-2.0.x-2.0.y
|
||||||
|
user/migration
|
||||||
|
user/import
|
||||||
|
user/create_account
|
||||||
|
user/login
|
||||||
|
user/configuration
|
||||||
|
user/first_article
|
||||||
|
user/errors_during_fetching
|
||||||
|
user/annotations
|
||||||
|
user/download_articles
|
||||||
|
user/filters
|
||||||
|
user/tags
|
||||||
|
user/android
|
||||||
|
|
||||||
|
.. _dev-docs:
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
:caption: Entwicklerdokumentation
|
||||||
|
|
||||||
|
developer/api
|
||||||
|
developer/docker
|
||||||
|
developer/documentation
|
||||||
|
developer/translate
|
||||||
|
developer/maintenance
|
||||||
|
developer/redis
|
||||||
|
developer/rabbitmq
|
||||||
2
docs/de/requirements.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Sphinx>=1.3.0,<1.4.0
|
||||||
|
guzzle_sphinx_theme>=0.7.0,<0.8.0
|
||||||
107
docs/de/user/android.rst
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
Android App
|
||||||
|
===========
|
||||||
|
|
||||||
|
|
||||||
|
Zweck dieses Dokuments
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
Dieses Dokument beschreibt wie du deine Android App einrichtest, damit sie mit deiner Wallabaginstanz zusammenarbeitet. Es gibt hierbei keinen Unterschied im Vorgang - egal ob du Wallabag v1 oder v2 einsetzt.
|
||||||
|
|
||||||
|
|
||||||
|
Schritte, um dein App zu einzurichten
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
Wenn du das erste Mal die App startest, siehst du den Willkommensbildschirm, wo du angewiesen wirst zunächst deine App mit deiner Wallabaginstanz einzurichten.
|
||||||
|
|
||||||
|
.. image:: ../../img/user/android_welcome_screen.de.png
|
||||||
|
:alt: Willkommensbildschirm
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Bestätige nur diese Nachricht und du wirst zum Einstellungsbildschirm weitergeleitet.
|
||||||
|
|
||||||
|
.. image:: ../../img/user/android_configuration_screen.de.png
|
||||||
|
:alt: Einstellungsbildschirm
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Trage deine Wallabagdaten ein. Du musst deine Wallabagadresse eintragen. Es ist wichtig, dass die URL nicht mit einem Schrägstrich endet. Füge auch deine Wallabagzugangsdaten in das Nutzer- und Passwortfeld ein.
|
||||||
|
|
||||||
|
.. image:: ../../img/user/android_configuration_filled_in.de.png
|
||||||
|
:alt: Eingetragene Einstellungen
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Nachdem du deine Daten eingetragen hast, drücke den Button Verbindung testen und warte auf das Fertigstellen des Tests.
|
||||||
|
|
||||||
|
.. image:: ../../img/user/android_configuration_connection_test.de.png
|
||||||
|
:alt: Verbindungstest mit deinen Wallabagdaten
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Der Verbindungstest sollte mit Erfolg ausgehen. Falls nicht, musst du zunächst deine Daten korrigieren bevor du zum nächsten Schritt gehst.
|
||||||
|
|
||||||
|
.. image:: ../../img/user/android_configuration_connection_test_success.de.png
|
||||||
|
:alt: Verbindungstest war erfolgreich
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Nach dem Verbindungstest erfolgreich war, kannst du den Button zum Feedzugangsdaten abholen drücken. Die App versucht nun sich bei deiner Wallabaginstanz einzuloggen und die Nutzer ID und den dazugehörigen Token für die Feeds zu laden.
|
||||||
|
|
||||||
|
.. image:: ../../img/user/android_configuration_get_feed_credentials.de.png
|
||||||
|
:alt: Feedzugangsdaten abholen
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Wenn der Prozess des Abholens deiner Feedzugangsdaten erfolgreich beendet wurde, siehst du eine Toastnachricht, dass die User ID und der Token automatisch in das Formular eingetragen wurden.
|
||||||
|
|
||||||
|
.. image:: ../../img/user/android_configuration_feed_credentials_automatically_filled_in.de.png
|
||||||
|
:alt: Feedzugangsdaten erfolgreich abgeholt
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Jetzt scrollst du bis zum unteren Rand des Einstellungsbildschirms. Natürlich kannst du die Einstellungen dort deinen Wünschen anpassen. Schließe die Einrichtung mit dem Drücken des Speicherbuttons ab.
|
||||||
|
|
||||||
|
.. image:: ../../img/user/android_configuration_scroll_bottom.de.png
|
||||||
|
:alt: unterer Rand des Einstellungsbildschirms
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Nachdem du den Speicherbutton gedrückt hast, kommst du in den folgenden Bildschirm. Die App schlägt vor, eine initiale Synchronisation der Artikelfeeds durchzuführen. Hier ist es empfohlen, dies zu bestätigen und Ja zu drücken.
|
||||||
|
|
||||||
|
.. image:: ../../img/user/android_configuration_saved_feed_update.de.png
|
||||||
|
:alt: Einstellung erstmals gespeichert
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Schließlich nach der ersten erfolgreichen Synchronisation, wird dir die Liste der ungelesenen Artikel präsentiert.
|
||||||
|
|
||||||
|
.. image:: ../../img/user/android_unread_feed_synced.de.png
|
||||||
|
:alt: Gefüllte Artikellist da Feeds erfolgreich synchronisiert sind
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Bekannte Limitierungen
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
2FA
|
||||||
|
~~~
|
||||||
|
|
||||||
|
Zur Zeit unterstützt die App keine Zwei-Faktor Authentifizierung. Du solltest sie deaktivieren damit die App funktioniert.
|
||||||
|
|
||||||
|
|
||||||
|
Begrenzte Anzahl Artikel mit Wallabag v2
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
In deiner Wallabaginstanz kannst du einstellen, wie viele Artikel Teil deiner RSS Feeds sind. Diese Option existierte in Wallabag v1 nicht, wo immer alle Artikel Teil des Feeds waren. Also wenn du die Anzahl der Artikel, die in der App angezeigt werden sollen, größer einstellst als die Anzahl Artikel in deinem Feed, wirst du nur die Anzahl an Artikel deines Feeds sehen.
|
||||||
|
|
||||||
|
|
||||||
|
SSL/TLS Verschlüsselung
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Wenn du deine Wallabaginstanz per HTTPS erreichen kannst, solltest du das so konfigurieren. Besonders dann, wenn deine HTTP URL nach HTTPS umleitet. Im Moment kann die App mit dieser Weiterleitung nicht korrekt umgehen.
|
||||||
|
|
||||||
|
|
||||||
|
Referenzen
|
||||||
|
----------
|
||||||
|
|
||||||
|
`Quellcode der Android Applikation <https://github.com/wallabag/android-app>`_
|
||||||
|
|
||||||
|
`Android Applikation auf F-Droid <https://f-droid.org/repository/browse/?fdfilter=wallabag&fdid=fr.gaulupeau.apps.InThePoche>`_
|
||||||
|
|
||||||
|
`Android Applikation auf Google Play <https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche>`_
|
||||||
|
|
||||||
|
`Support Chat auf English <https://gitter.im/wallabag/wallabag>`_
|
||||||
|
|
||||||
24
docs/de/user/annotations.rst
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
Anmerkungen
|
||||||
|
===========
|
||||||
|
|
||||||
|
In jedem Artikel, den du liest, kannst du Anmerkungen hinzufügen. Es ist einfacher mit ein paar Bilder erklärt.
|
||||||
|
|
||||||
|
Wähle den Teil des Artikels aus, den du kommentieren willst und klicke auf den Bleistift:
|
||||||
|
|
||||||
|
.. image:: ../../img/user/annotations_1.png
|
||||||
|
:alt: Wähle den Text
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Schreibe deinen Kommentar:
|
||||||
|
|
||||||
|
.. image:: ../../img/user/annotations_2.png
|
||||||
|
:alt: Schreibe deinen Kommentar
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Der Text ist nun hervorgehoben und du kannst deine Anmerkung lesen, wenn du den Mauspfeil darüber fährst.
|
||||||
|
|
||||||
|
.. image:: ../../img/user/annotations_3.png
|
||||||
|
:alt: lese deine Anmerkung
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Du kannst so viele Anmerkungen erstellen wie du möchtest.
|
||||||