Compare commits
580 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 | |||
| 7d5b4631d0 | |||
| 9f151b469f | |||
| 45919a295e | |||
| 2499cdbf29 | |||
| 868e76af10 | |||
| f88530de68 | |||
| 4a25bef077 | |||
| 24f65a838c | |||
| 89bafa95ed | |||
| 18bb5a90d5 | |||
| 938a16c0f6 | |||
| ca8d61b958 | |||
| 23feba63bb | |||
| 3320d39418 | |||
| 23d24b1750 | |||
| dc12084d93 | |||
| 0907a72c64 | |||
| 188b74b6df | |||
| 71601c171f | |||
| 5c2c1a6434 | |||
| 7fdecbb73c | |||
| 1f034a3316 | |||
| d1f4996b77 | |||
| 5180302650 | |||
| 2d899e8d30 | |||
| 345d74268b | |||
| 4086e0782e | |||
| af497a641c | |||
| f2e5fdc366 | |||
| a417b86923 | |||
| 18078ded12 | |||
| 245e2e2cae | |||
| 86732aa01c | |||
| c31ea8a409 | |||
| c95e39c51a | |||
| 63995be5ee | |||
| 1880da7420 | |||
| 76cd8dbb05 | |||
| 624a7c6df1 | |||
| 80bd17f00d | |||
| 1b8b3859c0 | |||
| 443cff9840 | |||
| 4094ea4771 | |||
| 7eccbda99f | |||
| 8846ad0a90 |
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"
|
||||||
|
}
|
||||||
47
.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,31 +42,37 @@ 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:
|
||||||
except:
|
except:
|
||||||
- master
|
- legacy
|
||||||
- dev
|
|
||||||
|
|
||||||
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 update --no-interaction --no-progress
|
- 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
|
||||||
197
CHANGELOG.md
@ -2,6 +2,203 @@
|
|||||||
|
|
||||||
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
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- [#1945](https://github.com/wallabag/wallabag/pull/1945) cURL examples in documentation about API (Dirk Deimeke)
|
||||||
|
- [#1911](https://github.com/wallabag/wallabag/pull/1911) Add title hover on entry titles (Thomas Citharel)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- [#1944](https://github.com/wallabag/wallabag/pull/1944), [#1953](https://github.com/wallabag/wallabag/pull/1953), [#1954](https://github.com/wallabag/wallabag/pull/1954) Due to branches renaming, update documentation and configuration (maxi62330, Nicolas Lœuillet)
|
||||||
|
- [#1942](https://github.com/wallabag/wallabag/pull/1942) Optimize import (Nicolas Lœuillet)
|
||||||
|
- [#1935](https://github.com/wallabag/wallabag/pull/1935) Update spanish translation (jami7)
|
||||||
|
- [#1929](https://github.com/wallabag/wallabag/pull/1929) Change guid and link in RSS feeds to give original entry URL (Nicolas Lœuillet)
|
||||||
|
- [#1918](https://github.com/wallabag/wallabag/pull/1918) Improve pagination when user has lot of entries (Nicolas Lœuillet)
|
||||||
|
- [#1916](https://github.com/wallabag/wallabag/pull/1916) Change PHP arrays and move test parameters in a separated file (Jeremy Benoist)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- [#1957](https://github.com/wallabag/wallabag/pull/1957) Fix translation for `Go to your account` button (Nicolas Lœuillet)
|
||||||
|
- [#1925](https://github.com/wallabag/wallabag/pull/1925) Redirect to homepage if refered is null (Nicolas Lœuillet)
|
||||||
|
- [#1912](https://github.com/wallabag/wallabag/pull/1912) Fix 500 Internal Server Error -> "Setting piwik_enabled couldn't be found" (Jeremy Benoist)
|
||||||
|
|
||||||
## [2.0.1] - 2016-04-11
|
## [2.0.1] - 2016-04-11
|
||||||
### 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.1
|
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(),
|
||||||
@ -22,20 +21,24 @@ class AppKernel extends Kernel
|
|||||||
new Nelmio\ApiDocBundle\NelmioApiDocBundle(),
|
new Nelmio\ApiDocBundle\NelmioApiDocBundle(),
|
||||||
new Nelmio\CorsBundle\NelmioCorsBundle(),
|
new Nelmio\CorsBundle\NelmioCorsBundle(),
|
||||||
new Liip\ThemeBundle\LiipThemeBundle(),
|
new Liip\ThemeBundle\LiipThemeBundle(),
|
||||||
new Wallabag\CoreBundle\WallabagCoreBundle(),
|
|
||||||
new Wallabag\ApiBundle\WallabagApiBundle(),
|
|
||||||
new Bazinga\Bundle\HateoasBundle\BazingaHateoasBundle(),
|
new Bazinga\Bundle\HateoasBundle\BazingaHateoasBundle(),
|
||||||
new Lexik\Bundle\FormFilterBundle\LexikFormFilterBundle(),
|
new Lexik\Bundle\FormFilterBundle\LexikFormFilterBundle(),
|
||||||
new FOS\OAuthServerBundle\FOSOAuthServerBundle(),
|
new FOS\OAuthServerBundle\FOSOAuthServerBundle(),
|
||||||
new Wallabag\UserBundle\WallabagUserBundle(),
|
|
||||||
new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
|
new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
|
||||||
new Scheb\TwoFactorBundle\SchebTwoFactorBundle(),
|
new Scheb\TwoFactorBundle\SchebTwoFactorBundle(),
|
||||||
new KPhoen\RulerZBundle\KPhoenRulerZBundle(),
|
new KPhoen\RulerZBundle\KPhoenRulerZBundle(),
|
||||||
new Wallabag\ImportBundle\WallabagImportBundle(),
|
|
||||||
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
|
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
|
||||||
new Craue\ConfigBundle\CraueConfigBundle(),
|
new Craue\ConfigBundle\CraueConfigBundle(),
|
||||||
new Lexik\Bundle\MaintenanceBundle\LexikMaintenanceBundle(),
|
new Lexik\Bundle\MaintenanceBundle\LexikMaintenanceBundle(),
|
||||||
|
new WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle(),
|
||||||
|
|
||||||
|
// wallabag bundles
|
||||||
|
new Wallabag\CoreBundle\WallabagCoreBundle(),
|
||||||
|
new Wallabag\ApiBundle\WallabagApiBundle(),
|
||||||
|
new Wallabag\UserBundle\WallabagUserBundle(),
|
||||||
|
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%;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
* {
|
* {
|
||||||
-webkit-box-sizing: border-box;
|
-webkit-box-sizing: border-box;
|
||||||
-moz-box-sizing: border-box;
|
-moz-box-sizing: border-box;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
html {
|
html {
|
||||||
@ -18,7 +18,7 @@ html {
|
|||||||
|
|
||||||
body {
|
body {
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
line-height:1.5;
|
line-height: 1.5;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ h6:first-child,
|
|||||||
p:first-child,
|
p:first-child,
|
||||||
ul:first-child,
|
ul:first-child,
|
||||||
ol:first-child,
|
ol:first-child,
|
||||||
dl:first-child{
|
dl:first-child {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,14 +43,13 @@ code,
|
|||||||
kbd,
|
kbd,
|
||||||
pre,
|
pre,
|
||||||
samp {
|
samp {
|
||||||
font-family: monospace, serif;
|
font-family: monospace, serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.upper {
|
.upper {
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
@ -61,12 +60,14 @@ pre {
|
|||||||
|
|
||||||
.inner {
|
.inner {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
iframe {
|
iframe {
|
||||||
@ -93,13 +94,13 @@ button,
|
|||||||
input,
|
input,
|
||||||
select,
|
select,
|
||||||
textarea {
|
textarea {
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type="search"] {
|
input[type="search"] {
|
||||||
-webkit-appearance: textfield;
|
-webkit-appearance: textfield;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ==========================================================================
|
/* ==========================================================================
|
||||||
@ -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;
|
||||||
@ -133,32 +140,60 @@ input[type="search"] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.small {
|
.small {
|
||||||
font-size:0.8em;
|
font-size: 0.8em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.big {
|
.big {
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*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
|
||||||
========================================================================== */
|
========================================================================== */
|
||||||
|
|
||||||
/*IE8 and IE9*/
|
/* IE8 and IE9 */
|
||||||
|
|
||||||
article,
|
article,
|
||||||
aside,
|
aside,
|
||||||
@ -172,40 +207,20 @@ main,
|
|||||||
nav,
|
nav,
|
||||||
section,
|
section,
|
||||||
summary {
|
summary {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*IE8 and IE9*/
|
/* IE8 and IE9 */
|
||||||
|
|
||||||
audio,
|
audio,
|
||||||
canvas,
|
canvas,
|
||||||
video {
|
video {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (-webkit-min-device-pixel-ratio:0){
|
@media screen and (-webkit-min-device-pixel-ratio: 0) {
|
||||||
select{
|
select {
|
||||||
-webkit-appearance: none;
|
-webkit-appearance: none;
|
||||||
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);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
@ -1,2 +1,2 @@
|
|||||||
set :branch, 'v2'
|
set :branch, 'master'
|
||||||
set :deploy_to, '/var/www/v2.wallabag.org/web/'
|
set :deploy_to, '/var/www/v2.wallabag.org/web/'
|
||||||
|
|||||||
@ -5,30 +5,32 @@ imports:
|
|||||||
|
|
||||||
framework:
|
framework:
|
||||||
#esi: ~
|
#esi: ~
|
||||||
translator: { fallback: "%locale%" }
|
translator:
|
||||||
secret: "%secret%"
|
enabled: true
|
||||||
|
fallback: "%locale%"
|
||||||
|
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: ~
|
||||||
session:
|
session:
|
||||||
# handler_id set to null will use default session handler from php.ini
|
# handler_id set to null will use default session handler from php.ini
|
||||||
handler_id: session.handler.native_file
|
handler_id: session.handler.native_file
|
||||||
save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%"
|
save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%"
|
||||||
fragments: ~
|
fragments: ~
|
||||||
http_method_override: true
|
http_method_override: true
|
||||||
assets: ~
|
assets: ~
|
||||||
|
|
||||||
wallabag_core:
|
wallabag_core:
|
||||||
version: 2.0.1
|
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,47 +43,40 @@ 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
|
||||||
twig:
|
twig:
|
||||||
debug: "%kernel.debug%"
|
debug: "%kernel.debug%"
|
||||||
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:
|
||||||
dbal:
|
dbal:
|
||||||
driver: "%database_driver%"
|
driver: "%database_driver%"
|
||||||
host: "%database_host%"
|
host: "%database_host%"
|
||||||
port: "%database_port%"
|
port: "%database_port%"
|
||||||
dbname: "%database_name%"
|
dbname: "%database_name%"
|
||||||
user: "%database_user%"
|
user: "%database_user%"
|
||||||
password: "%database_password%"
|
password: "%database_password%"
|
||||||
charset: UTF8
|
charset: UTF8
|
||||||
path: "%database_path%"
|
path: "%database_path%"
|
||||||
server_version: 5.6
|
server_version: 5.6
|
||||||
|
|
||||||
orm:
|
orm:
|
||||||
@ -107,10 +102,11 @@ doctrine_migrations:
|
|||||||
# Swiftmailer Configuration
|
# Swiftmailer Configuration
|
||||||
swiftmailer:
|
swiftmailer:
|
||||||
transport: "%mailer_transport%"
|
transport: "%mailer_transport%"
|
||||||
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
|
||||||
@ -14,19 +15,19 @@ web_profiler:
|
|||||||
monolog:
|
monolog:
|
||||||
handlers:
|
handlers:
|
||||||
main:
|
main:
|
||||||
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
|
||||||
verbosity_levels:
|
verbosity_levels:
|
||||||
VERBOSITY_VERBOSE: NOTICE
|
VERBOSITY_VERBOSE: NOTICE
|
||||||
@ -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:
|
||||||
@ -14,12 +14,12 @@ imports:
|
|||||||
monolog:
|
monolog:
|
||||||
handlers:
|
handlers:
|
||||||
main:
|
main:
|
||||||
type: fingers_crossed
|
type: fingers_crossed
|
||||||
action_level: error
|
action_level: error
|
||||||
handler: nested
|
handler: nested
|
||||||
nested:
|
nested:
|
||||||
type: stream
|
type: stream
|
||||||
path: "%kernel.logs_dir%/%kernel.environment%.log"
|
path: "%kernel.logs_dir%/%kernel.environment%.log"
|
||||||
level: debug
|
level: debug
|
||||||
console:
|
console:
|
||||||
type: console
|
type: console
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
imports:
|
imports:
|
||||||
- { resource: config_dev.yml }
|
- { resource: config_dev.yml }
|
||||||
|
- { resource: parameters_test.yml }
|
||||||
|
|
||||||
framework:
|
framework:
|
||||||
test: ~
|
test: ~
|
||||||
|
|||||||
@ -19,14 +19,6 @@ parameters:
|
|||||||
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
|
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
|
||||||
database_table_prefix: wallabag_
|
database_table_prefix: wallabag_
|
||||||
|
|
||||||
test_database_driver: pdo_sqlite
|
|
||||||
test_database_host: 127.0.0.1
|
|
||||||
test_database_port: ~
|
|
||||||
test_database_name: ~
|
|
||||||
test_database_user: ~
|
|
||||||
test_database_password: ~
|
|
||||||
test_database_path: "%kernel.root_dir%/../data/db/wallabag_test.sqlite"
|
|
||||||
|
|
||||||
mailer_transport: smtp
|
mailer_transport: smtp
|
||||||
mailer_host: 127.0.0.1
|
mailer_host: 127.0.0.1
|
||||||
mailer_user: ~
|
mailer_user: ~
|
||||||
@ -42,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
|
||||||
|
|||||||
8
app/config/parameters_test.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
parameters:
|
||||||
|
test_database_driver: pdo_sqlite
|
||||||
|
test_database_host: 127.0.0.1
|
||||||
|
test_database_port: null
|
||||||
|
test_database_name: null
|
||||||
|
test_database_user: null
|
||||||
|
test_database_password: null
|
||||||
|
test_database_path: '%kernel.root_dir%/../data/db/wallabag_test.sqlite'
|
||||||
@ -4,8 +4,13 @@ wallabag_annotation:
|
|||||||
|
|
||||||
wallabag_import:
|
wallabag_import:
|
||||||
resource: "@WallabagImportBundle/Controller/"
|
resource: "@WallabagImportBundle/Controller/"
|
||||||
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"
|
||||||
|
|||||||
@ -1,14 +1,14 @@
|
|||||||
_wdt:
|
_wdt:
|
||||||
resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
|
resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
|
||||||
prefix: /_wdt
|
prefix: /_wdt
|
||||||
|
|
||||||
_profiler:
|
_profiler:
|
||||||
resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
|
resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
|
||||||
prefix: /_profiler
|
prefix: /_profiler
|
||||||
|
|
||||||
_errors:
|
_errors:
|
||||||
resource: "@TwigBundle/Resources/config/routing/errors.xml"
|
resource: "@TwigBundle/Resources/config/routing/errors.xml"
|
||||||
prefix: /_error
|
prefix: /_error
|
||||||
|
|
||||||
_main:
|
_main:
|
||||||
resource: routing.yml
|
resource: routing.yml
|
||||||
|
|||||||
@ -3,12 +3,14 @@ security:
|
|||||||
FOS\UserBundle\Model\UserInterface: sha512
|
FOS\UserBundle\Model\UserInterface: sha512
|
||||||
|
|
||||||
role_hierarchy:
|
role_hierarchy:
|
||||||
ROLE_ADMIN: ROLE_USER
|
ROLE_ADMIN: ROLE_USER
|
||||||
ROLE_SUPER_ADMIN: [ ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH ]
|
ROLE_SUPER_ADMIN: [ ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH ]
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
@ -31,7 +33,7 @@ security:
|
|||||||
anonymous: true
|
anonymous: true
|
||||||
|
|
||||||
login_firewall:
|
login_firewall:
|
||||||
pattern: ^/login$
|
pattern: ^/login$
|
||||||
anonymous: ~
|
anonymous: ~
|
||||||
|
|
||||||
secured_area:
|
secured_area:
|
||||||
@ -40,12 +42,12 @@ security:
|
|||||||
provider: fos_userbundle
|
provider: fos_userbundle
|
||||||
csrf_token_generator: security.csrf.token_manager
|
csrf_token_generator: security.csrf.token_manager
|
||||||
|
|
||||||
anonymous: true
|
anonymous: true
|
||||||
remember_me:
|
remember_me:
|
||||||
secret: "%secret%"
|
secret: "%secret%"
|
||||||
lifetime: 31536000
|
lifetime: 31536000
|
||||||
path: /
|
path: /
|
||||||
domain: ~
|
domain: ~
|
||||||
|
|
||||||
logout:
|
logout:
|
||||||
path: /logout
|
path: /logout
|
||||||
@ -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 }
|
||||||
|
|||||||
@ -6,7 +6,7 @@ services:
|
|||||||
filesystem_cache:
|
filesystem_cache:
|
||||||
class: Doctrine\Common\Cache\FilesystemCache
|
class: Doctrine\Common\Cache\FilesystemCache
|
||||||
arguments:
|
arguments:
|
||||||
- %kernel.cache_dir%/doctrine/metadata
|
- "%kernel.cache_dir%/doctrine/metadata"
|
||||||
|
|
||||||
twig.extension.text:
|
twig.extension.text:
|
||||||
class: Twig_Extensions_Extension_Text
|
class: Twig_Extensions_Extension_Text
|
||||||
@ -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 }
|
||||||
|
|
||||||
|
|||||||
@ -1,37 +0,0 @@
|
|||||||
# This file is a "template" of what your parameters.yml file should look like
|
|
||||||
parameters:
|
|
||||||
database_driver: pdo_sqlite
|
|
||||||
database_host: 127.0.0.1
|
|
||||||
database_port: ~
|
|
||||||
database_name: symfony
|
|
||||||
database_user: root
|
|
||||||
database_password: ~
|
|
||||||
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
|
|
||||||
database_table_prefix: wallabag_
|
|
||||||
|
|
||||||
test_database_driver: pdo_mysql
|
|
||||||
test_database_host: localhost
|
|
||||||
test_database_port: 3306
|
|
||||||
test_database_name: wallabag_test
|
|
||||||
test_database_user: root
|
|
||||||
test_database_password: ~
|
|
||||||
test_database_path: ~
|
|
||||||
|
|
||||||
mailer_transport: smtp
|
|
||||||
mailer_host: 127.0.0.1
|
|
||||||
mailer_user: ~
|
|
||||||
mailer_password: ~
|
|
||||||
|
|
||||||
locale: en
|
|
||||||
|
|
||||||
# A secret key that's used to generate certain security-related tokens
|
|
||||||
secret: ThisTokenIsNotSoSecretChangeIt
|
|
||||||
|
|
||||||
# two factor stuff
|
|
||||||
twofactor_auth: true
|
|
||||||
twofactor_sender: no-reply@wallabag.org
|
|
||||||
|
|
||||||
# fosuser stuff
|
|
||||||
fosuser_confirmation: true
|
|
||||||
|
|
||||||
from_email: no-reply@wallabag.org
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
# This file is a "template" of what your parameters.yml file should look like
|
|
||||||
parameters:
|
|
||||||
database_driver: pdo_sqlite
|
|
||||||
database_host: 127.0.0.1
|
|
||||||
database_port: ~
|
|
||||||
database_name: symfony
|
|
||||||
database_user: root
|
|
||||||
database_password: ~
|
|
||||||
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
|
|
||||||
database_table_prefix: wallabag_
|
|
||||||
|
|
||||||
test_database_driver: pdo_pgsql
|
|
||||||
test_database_host: localhost
|
|
||||||
test_database_port:
|
|
||||||
test_database_name: wallabag_test
|
|
||||||
test_database_user: travis
|
|
||||||
test_database_password: ~
|
|
||||||
test_database_path: ~
|
|
||||||
|
|
||||||
mailer_transport: smtp
|
|
||||||
mailer_host: 127.0.0.1
|
|
||||||
mailer_user: ~
|
|
||||||
mailer_password: ~
|
|
||||||
|
|
||||||
locale: en
|
|
||||||
|
|
||||||
# A secret key that's used to generate certain security-related tokens
|
|
||||||
secret: ThisTokenIsNotSoSecretChangeIt
|
|
||||||
|
|
||||||
# two factor stuff
|
|
||||||
twofactor_auth: true
|
|
||||||
twofactor_sender: no-reply@wallabag.org
|
|
||||||
|
|
||||||
# fosuser stuff
|
|
||||||
fosuser_confirmation: true
|
|
||||||
|
|
||||||
from_email: no-reply@wallabag.org
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
# This file is a "template" of what your parameters.yml file should look like
|
|
||||||
parameters:
|
|
||||||
database_driver: pdo_sqlite
|
|
||||||
database_host: 127.0.0.1
|
|
||||||
database_port: ~
|
|
||||||
database_name: symfony
|
|
||||||
database_user: root
|
|
||||||
database_password: ~
|
|
||||||
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
|
|
||||||
database_table_prefix: wallabag_
|
|
||||||
|
|
||||||
test_database_driver: pdo_sqlite
|
|
||||||
test_database_host: localhost
|
|
||||||
test_database_port:
|
|
||||||
test_database_name: ~
|
|
||||||
test_database_user: ~
|
|
||||||
test_database_password: ~
|
|
||||||
test_database_path: "%kernel.root_dir%/../data/db/wallabag_test.sqlite"
|
|
||||||
|
|
||||||
mailer_transport: smtp
|
|
||||||
mailer_host: 127.0.0.1
|
|
||||||
mailer_user: ~
|
|
||||||
mailer_password: ~
|
|
||||||
|
|
||||||
locale: en
|
|
||||||
|
|
||||||
# A secret key that's used to generate certain security-related tokens
|
|
||||||
secret: ThisTokenIsNotSoSecretChangeIt
|
|
||||||
|
|
||||||
# two factor stuff
|
|
||||||
twofactor_auth: true
|
|
||||||
twofactor_sender: no-reply@wallabag.org
|
|
||||||
|
|
||||||
# fosuser stuff
|
|
||||||
fosuser_confirmation: true
|
|
||||||
|
|
||||||
from_email: no-reply@wallabag.org
|
|
||||||
8
app/config/tests/parameters_test.mysql.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
parameters:
|
||||||
|
test_database_driver: pdo_mysql
|
||||||
|
test_database_host: localhost
|
||||||
|
test_database_port: 3306
|
||||||
|
test_database_name: wallabag_test
|
||||||
|
test_database_user: root
|
||||||
|
test_database_password: ~
|
||||||
|
test_database_path: ~
|
||||||
8
app/config/tests/parameters_test.pgsql.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
parameters:
|
||||||
|
test_database_driver: pdo_pgsql
|
||||||
|
test_database_host: localhost
|
||||||
|
test_database_port:
|
||||||
|
test_database_name: wallabag_test
|
||||||
|
test_database_user: travis
|
||||||
|
test_database_password: ~
|
||||||
|
test_database_path: ~
|
||||||
8
app/config/tests/parameters_test.sqlite.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
parameters:
|
||||||
|
test_database_driver: pdo_sqlite
|
||||||
|
test_database_host: localhost
|
||||||
|
test_database_port:
|
||||||
|
test_database_name: ~
|
||||||
|
test_database_user: ~
|
||||||
|
test_database_password: ~
|
||||||
|
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()
|
||||||
|
|||||||
12
build.xml
@ -42,8 +42,8 @@
|
|||||||
<target name="db_mysql" description="Run test for MySQL">
|
<target name="db_mysql" description="Run test for MySQL">
|
||||||
<delete dir="${basedir}/app/config/parameters.yml"/>
|
<delete dir="${basedir}/app/config/parameters.yml"/>
|
||||||
<exec executable="cp">
|
<exec executable="cp">
|
||||||
<arg value="${basedir}/app/config/tests/parameters.yml.dist.mysql"/>
|
<arg value="${basedir}/app/config/tests/parameters_test.mysql.yml"/>
|
||||||
<arg value="${basedir}/app/config/parameters.yml"/>
|
<arg value="${basedir}/app/config/parameters_test.yml"/>
|
||||||
</exec>
|
</exec>
|
||||||
|
|
||||||
<exec executable="php">
|
<exec executable="php">
|
||||||
@ -56,8 +56,8 @@
|
|||||||
<target name="db_sqlite" description="Run test for SQLite">
|
<target name="db_sqlite" description="Run test for SQLite">
|
||||||
<delete dir="${basedir}/app/config/parameters.yml"/>
|
<delete dir="${basedir}/app/config/parameters.yml"/>
|
||||||
<exec executable="cp">
|
<exec executable="cp">
|
||||||
<arg value="${basedir}/app/config/tests/parameters.yml.dist.sqlite"/>
|
<arg value="${basedir}/app/config/tests/parameters_test.sqlite.yml"/>
|
||||||
<arg value="${basedir}/app/config/parameters.yml"/>
|
<arg value="${basedir}/app/config/parameters_test.yml"/>
|
||||||
</exec>
|
</exec>
|
||||||
|
|
||||||
<exec executable="php">
|
<exec executable="php">
|
||||||
@ -70,8 +70,8 @@
|
|||||||
<target name="db_pgsql" description="Run test for PostgreSQL">
|
<target name="db_pgsql" description="Run test for PostgreSQL">
|
||||||
<delete dir="${basedir}/app/config/parameters.yml"/>
|
<delete dir="${basedir}/app/config/parameters.yml"/>
|
||||||
<exec executable="cp">
|
<exec executable="cp">
|
||||||
<arg value="${basedir}/app/config/tests/parameters.yml.dist.pgsql"/>
|
<arg value="${basedir}/app/config/tests/parameters_test.pgsql.yml"/>
|
||||||
<arg value="${basedir}/app/config/parameters.yml"/>
|
<arg value="${basedir}/app/config/parameters_test.yml"/>
|
||||||
</exec>
|
</exec>
|
||||||
|
|
||||||
<exec executable="php">
|
<exec executable="php">
|
||||||
|
|||||||
@ -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",
|
||||||
@ -58,7 +57,6 @@
|
|||||||
"friendsofsymfony/rest-bundle": "~1.4",
|
"friendsofsymfony/rest-bundle": "~1.4",
|
||||||
"jms/serializer-bundle": "~1.0",
|
"jms/serializer-bundle": "~1.0",
|
||||||
"nelmio/api-doc-bundle": "~2.7",
|
"nelmio/api-doc-bundle": "~2.7",
|
||||||
"ezyang/htmlpurifier": "~4.6",
|
|
||||||
"mgargano/simplehtmldom": "~1.5",
|
"mgargano/simplehtmldom": "~1.5",
|
||||||
"tecnickcom/tcpdf": "~6.2",
|
"tecnickcom/tcpdf": "~6.2",
|
||||||
"simplepie/simplepie": "~1.3.1",
|
"simplepie/simplepie": "~1.3.1",
|
||||||
@ -75,27 +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",
|
||||||
|
"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"
|
||||||
},
|
},
|
||||||
|
|||||||
2774
composer.lock
generated
@ -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.
|
||||||