Compare commits
7 Commits
2.6
...
feature/fl
| Author | SHA1 | Date | |
|---|---|---|---|
| ab507f478c | |||
| 0244a11bf1 | |||
| ad78c3cf42 | |||
| a2390a52d8 | |||
| 1f2b00bdac | |||
| a8a4a4b1f8 | |||
| 6b5a518ce2 |
77
.env
Normal file
@ -0,0 +1,77 @@
|
||||
# In all environments, the following files are loaded if they exist,
|
||||
# the latter taking precedence over the former:
|
||||
#
|
||||
# * .env contains default values for the environment variables needed by the app
|
||||
# * .env.local uncommitted file with local overrides
|
||||
# * .env.$APP_ENV committed environment-specific defaults
|
||||
# * .env.$APP_ENV.local uncommitted environment-specific overrides
|
||||
#
|
||||
# Real environment variables win over .env files.
|
||||
#
|
||||
# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
|
||||
# https://symfony.com/doc/current/configuration/secrets.html
|
||||
#
|
||||
# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
|
||||
# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
|
||||
|
||||
DOMAIN_NAME=https://your-wallabag-instance.wallabag.org
|
||||
SERVER_NAME="Your wallabag instance"
|
||||
|
||||
# two factor stuff
|
||||
TWOFACTOR_AUTH=true
|
||||
TWOFACTOR_SENDER=no-reply@wallabag.org
|
||||
|
||||
# fosuser stuff
|
||||
FOSUSER_REGISTRATION=true
|
||||
FOSUSER_CONFIRMATION=true
|
||||
|
||||
# how long the access token should live in seconds for the API
|
||||
FOS_OAUTH_SERVER_ACCESS_TOKEN_LIFETIME=3600
|
||||
# how long the refresh token should life in seconds for the API
|
||||
FOS_OAUTH_SERVER_REFRESH_TOKEN_LIFETIME=1209600
|
||||
|
||||
FROM_EMAIL=no-reply@wallabag.org
|
||||
|
||||
RSS_LIMIT=50
|
||||
|
||||
LOCALE=en
|
||||
DATABASE_TABLE_PREFIX=wallabag_
|
||||
|
||||
# redis stuff
|
||||
REDIS_SCHEME=tcp
|
||||
REDIS_HOST=localhost
|
||||
REDIS_PORT=6379
|
||||
REDIS_PATH=null
|
||||
REDIS_PASSWORD=null
|
||||
|
||||
###> doctrine/doctrine-bundle ###
|
||||
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
|
||||
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
|
||||
#
|
||||
DATABASE_URL="sqlite:///%kernel.project_dir%/data/db/wallabag.sqlite"
|
||||
# DATABASE_URL="mysql://root:@127.0.0.1:3306/wallabag?serverVersion=8&charset=utf8mb4"
|
||||
# DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=14&charset=utf8"
|
||||
###< doctrine/doctrine-bundle ###
|
||||
|
||||
###> nelmio/cors-bundle ###
|
||||
CORS_ALLOW_ORIGIN='^https?://(localhost|127\.0\.0\.1)(:[0-9]+)?$'
|
||||
###< nelmio/cors-bundle ###
|
||||
|
||||
###> php-amqplib/rabbitmq-bundle ###
|
||||
RABBITMQ_URL=amqp://guest:guest@localhost:5672
|
||||
###< php-amqplib/rabbitmq-bundle ###
|
||||
|
||||
###> sentry/sentry-symfony ###
|
||||
SENTRY_DSN=
|
||||
###< sentry/sentry-symfony ###
|
||||
|
||||
###> symfony/framework-bundle ###
|
||||
APP_ENV=dev
|
||||
APP_SECRET=b6b54475f34a3238dec16508c4903ca0
|
||||
#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
|
||||
#TRUSTED_HOSTS='^(localhost|example\.com)$'
|
||||
###< symfony/framework-bundle ###
|
||||
|
||||
###> symfony/mailer ###
|
||||
MAILER_DSN=smtp://127.0.0.1
|
||||
###< symfony/mailer ###
|
||||
7
.env.test
Normal file
@ -0,0 +1,7 @@
|
||||
# define your env variables for the test env here
|
||||
KERNEL_CLASS='App\Kernel'
|
||||
APP_SECRET='$ecretf0rt3st'
|
||||
SYMFONY_DEPRECATIONS_HELPER=999999
|
||||
PANTHER_APP_ENV=panther
|
||||
PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots
|
||||
DATABASE_URL="mysql://root:root@127.0.0.1:3306/wallabag_test?serverVersion=8&charset=utf8mb4"
|
||||
7
.env.test.mysql
Normal file
@ -0,0 +1,7 @@
|
||||
# define your env variables for the test env here
|
||||
KERNEL_CLASS='App\Kernel'
|
||||
APP_SECRET='$ecretf0rt3st'
|
||||
SYMFONY_DEPRECATIONS_HELPER=999999
|
||||
PANTHER_APP_ENV=panther
|
||||
PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots
|
||||
DATABASE_URL="mysql://root:root@127.0.0.1:3306/wallabag_test?serverVersion=8&charset=utf8mb4"
|
||||
7
.env.test.pgsql
Normal file
@ -0,0 +1,7 @@
|
||||
# define your env variables for the test env here
|
||||
KERNEL_CLASS='App\Kernel'
|
||||
APP_SECRET='$ecretf0rt3st'
|
||||
SYMFONY_DEPRECATIONS_HELPER=999999
|
||||
PANTHER_APP_ENV=panther
|
||||
PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots
|
||||
DATABASE_URL="postgresql://wallabag:wallabagrocks@localhost:5432/wallabag_test?serverVersion=14&charset=utf8"
|
||||
7
.env.test.sqlite
Normal file
@ -0,0 +1,7 @@
|
||||
# define your env variables for the test env here
|
||||
KERNEL_CLASS='App\Kernel'
|
||||
APP_SECRET='$ecretf0rt3st'
|
||||
SYMFONY_DEPRECATIONS_HELPER=999999
|
||||
PANTHER_APP_ENV=panther
|
||||
PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots
|
||||
DATABASE_URL="sqlite:///%test_database_path%"
|
||||
1
.gitattributes
vendored
@ -3,5 +3,6 @@
|
||||
/.github export-ignore
|
||||
/.gitignore export-ignore
|
||||
/phpstan.neon export-ignore
|
||||
/phpstan-baseline.neon export-ignore
|
||||
/phpunit.xml.dist export-ignore
|
||||
/tests export-ignore
|
||||
|
||||
4
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -1,5 +1,5 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Want to ask something?
|
||||
url: https://matrix.to/#/#wallabag:matrix.org
|
||||
about: Use Matrix to ask questions.
|
||||
url: https://gitter.im/wallabag/wallabag
|
||||
about: Use Gitter to ask questions.
|
||||
|
||||
10
.github/workflows/assets.yml
vendored
@ -5,7 +5,7 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- "2.**"
|
||||
- 2.*
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
@ -13,16 +13,16 @@ permissions:
|
||||
jobs:
|
||||
js:
|
||||
name: "Building assets"
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: "ubuntu-20.04"
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v4"
|
||||
uses: "actions/checkout@v3"
|
||||
|
||||
- name: "Install Node"
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version-file: ".nvmrc"
|
||||
node-version: "16"
|
||||
|
||||
- name: "Install dependencies with Yarn"
|
||||
run: "yarn install"
|
||||
|
||||
8
.github/workflows/coding-standards.yml
vendored
@ -5,7 +5,7 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- "2.**"
|
||||
- 2.*
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
@ -13,11 +13,11 @@ permissions:
|
||||
jobs:
|
||||
coding-standards:
|
||||
name: "CS Fixer, PHPStan & TwigCS"
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: "ubuntu-20.04"
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v4"
|
||||
uses: "actions/checkout@v3"
|
||||
|
||||
- name: "Install PHP"
|
||||
uses: "shivammathur/setup-php@v2"
|
||||
@ -48,7 +48,7 @@ jobs:
|
||||
run: "php bin/phpstan analyse --no-progress --error-format=checkstyle | cs2pr"
|
||||
|
||||
- name: "Run TwigCS"
|
||||
run: "php bin/twigcs --severity=error --display=blocking --reporter checkstyle app/ src/ | cs2pr"
|
||||
run: "php bin/twigcs --severity=error --display=blocking --reporter checkstyle templates/ | cs2pr"
|
||||
|
||||
- name: "Run ergebnis/composer-normalize"
|
||||
run: "composer normalize --dry-run --no-check-lock"
|
||||
|
||||
10
.github/workflows/continuous-integration.yml
vendored
@ -5,7 +5,7 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- "2.**"
|
||||
- 2.*
|
||||
|
||||
env:
|
||||
PGPASSWORD: wallabagrocks
|
||||
@ -14,7 +14,7 @@ env:
|
||||
jobs:
|
||||
phpunit:
|
||||
name: "PHP ${{ matrix.php }} using ${{ matrix.database }}"
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: "ubuntu-20.04"
|
||||
services:
|
||||
rabbitmq:
|
||||
image: rabbitmq:3-alpine
|
||||
@ -40,7 +40,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v4"
|
||||
uses: "actions/checkout@v3"
|
||||
with:
|
||||
fetch-depth: 2
|
||||
|
||||
@ -83,7 +83,7 @@ jobs:
|
||||
|
||||
phpunit_no_prefix:
|
||||
name: "PHP ${{ matrix.php }} using ${{ matrix.database }} without prefix"
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: "ubuntu-20.04"
|
||||
services:
|
||||
rabbitmq:
|
||||
image: rabbitmq:3-alpine
|
||||
@ -106,7 +106,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v4"
|
||||
uses: "actions/checkout@v3"
|
||||
with:
|
||||
fetch-depth: 2
|
||||
|
||||
|
||||
6
.github/workflows/translations.yml
vendored
@ -5,7 +5,7 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- "2.**"
|
||||
- 2.*
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
@ -13,7 +13,7 @@ permissions:
|
||||
jobs:
|
||||
translations:
|
||||
name: "Translations"
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: "ubuntu-20.04"
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
@ -22,7 +22,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v4"
|
||||
uses: "actions/checkout@v3"
|
||||
|
||||
- name: "Install PHP"
|
||||
uses: "shivammathur/setup-php@v2"
|
||||
|
||||
4
.github/workflows/upload-release-package.yml
vendored
@ -16,14 +16,14 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v4"
|
||||
uses: "actions/checkout@v3"
|
||||
|
||||
- name: "Install PHP"
|
||||
uses: "shivammathur/setup-php@v2"
|
||||
with:
|
||||
coverage: "none"
|
||||
php-version: "${{ matrix.php }}"
|
||||
tools: pecl, composer:2.2
|
||||
tools: pecl
|
||||
extensions: pdo, pdo_mysql, pdo_sqlite, pdo_pgsql, curl, imagick, pgsql, gd, tidy
|
||||
ini-values: "date.timezone=Europe/Paris"
|
||||
env:
|
||||
|
||||
53
.gitignore
vendored
@ -1,35 +1,27 @@
|
||||
# Cache, logs & sessions
|
||||
# Cache, log & sessions
|
||||
/var/*
|
||||
!/var/cache
|
||||
/var/cache/*
|
||||
!var/cache/.gitkeep
|
||||
!/var/logs
|
||||
/var/logs/*
|
||||
!var/logs/.gitkeep
|
||||
!/var/log
|
||||
/var/log/*
|
||||
!var/log/.gitkeep
|
||||
!/var/sessions
|
||||
/var/sessions/*
|
||||
!var/sessions/.gitkeep
|
||||
/bin/*
|
||||
!/bin/console
|
||||
.php-cs-fixer.php
|
||||
.php-cs-fixer.cache
|
||||
.phpunit.result.cache
|
||||
phpunit.xml
|
||||
docker-compose.override.yml
|
||||
|
||||
# Parameters
|
||||
/app/config/parameters.yml
|
||||
|
||||
# Managed by Composer
|
||||
/vendor/
|
||||
|
||||
# Assets and user uploads
|
||||
web/uploads/
|
||||
/web/bundles/*
|
||||
!/web/bundles/.gitkeep
|
||||
/web/assets/images/*
|
||||
!web/assets/images/.gitkeep
|
||||
/web/wallassets/*.dev.js
|
||||
public/uploads/
|
||||
/public/bundles/*
|
||||
!/public/bundles/.gitkeep
|
||||
/public/assets/images/*
|
||||
!public/assets/images/.gitkeep
|
||||
/public/wallassets/*.dev.js
|
||||
|
||||
# Build
|
||||
/app/build
|
||||
@ -48,9 +40,6 @@ data/db/wallabag*.sqlite
|
||||
# assets stuff
|
||||
node_modules/
|
||||
bin
|
||||
app/Resources/build/
|
||||
!/src/Wallabag/CoreBundle/Resources/public
|
||||
/src/Wallabag/CoreBundle/Resources/public/*
|
||||
|
||||
# Test-generated files
|
||||
admin-export.json
|
||||
@ -58,4 +47,24 @@ specialexport.json
|
||||
/data/site-credentials-secret-key.txt
|
||||
|
||||
# Custom CSS file
|
||||
web/custom.css
|
||||
public/custom.css
|
||||
|
||||
###> friendsofphp/php-cs-fixer ###
|
||||
/.php-cs-fixer.php
|
||||
/.php-cs-fixer.cache
|
||||
###< friendsofphp/php-cs-fixer ###
|
||||
|
||||
###> symfony/phpunit-bridge ###
|
||||
.phpunit.result.cache
|
||||
/phpunit.xml
|
||||
###< symfony/phpunit-bridge ###
|
||||
|
||||
###> symfony/framework-bundle ###
|
||||
/.env.local
|
||||
/.env.local.php
|
||||
/.env.*.local
|
||||
/config/secrets/prod/prod.decrypt.private.php
|
||||
/public/bundles/
|
||||
/var/
|
||||
/vendor/
|
||||
###< symfony/framework-bundle ###
|
||||
|
||||
165
CHANGELOG.md
@ -1,170 +1,5 @@
|
||||
# Changelog
|
||||
|
||||
## [2.6.14](https://github.com/wallabag/wallabag/tree/2.6.14)
|
||||
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.13...2.6.14)
|
||||
|
||||
### Improvements
|
||||
|
||||
* Add annotations filter to entries API endpoint by @skn in https://github.com/wallabag/wallabag/pull/8346
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix reading time computation for short entries by @andreadecorte in https://github.com/wallabag/wallabag/pull/8332
|
||||
* Fix `urls` parameter when sending many urls to be stored using the API by @j0k3r in https://github.com/wallabag/wallabag/pull/8488
|
||||
* Fix docker base image by @yguedidi in https://github.com/wallabag/wallabag/pull/8440
|
||||
|
||||
### Technical stuff
|
||||
|
||||
* Change version in wallabag.yml by @nicosomb in https://github.com/wallabag/wallabag/pull/8251
|
||||
* Fix deprecation by @j0k3r in https://github.com/wallabag/wallabag/pull/8267
|
||||
* Update dependencies by @yguedidi in https://github.com/wallabag/wallabag/pull/8435
|
||||
* Bump deps (mostly for siteconfig) by @j0k3r in https://github.com/wallabag/wallabag/pull/8489
|
||||
|
||||
## [2.6.13](https://github.com/wallabag/wallabag/tree/2.6.13)
|
||||
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.12...2.6.13)
|
||||
|
||||
### Improvements
|
||||
|
||||
* Add support of Pocket CSV import by @kdecherf and @nicosomb in https://github.com/wallabag/wallabag/pull/8240
|
||||
* Backport Pocket and Shaarli HTML imports from master by @nicosomb in https://github.com/wallabag/wallabag/pull/8193
|
||||
|
||||
### Fixes
|
||||
|
||||
* Avoid non-validated OTP to be enabled #8139 by @j0k3r in https://github.com/wallabag/wallabag/pull/8139
|
||||
|
||||
### Technical stuff
|
||||
|
||||
* Update j0k3r/php-readability:1.2.13 to fix regression (about latin1 instead of UTF-8 used for entries) by @nicosomb https://github.com/wallabag/wallabag/pull/8194
|
||||
|
||||
## [2.6.12](https://github.com/wallabag/wallabag/tree/2.6.12)
|
||||
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.11...2.6.12)
|
||||
|
||||
### Technical stuff
|
||||
|
||||
* Fix changelog by @yguedidi in https://github.com/wallabag/wallabag/pull/8135
|
||||
* Update dependencies by @yguedidi in https://github.com/wallabag/wallabag/pull/8136
|
||||
|
||||
## [2.6.11](https://github.com/wallabag/wallabag/tree/2.6.11)
|
||||
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.10...2.6.11)
|
||||
|
||||
### Security fix
|
||||
* Protect actions with a CSRF token by @yguedidi in https://github.com/wallabag/wallabag/commit/99c8a06594d6ee7480ce4d041ccff3025b353656
|
||||
|
||||
### Fixes
|
||||
|
||||
* Fix redirection after action in search results by @nicosomb in https://github.com/wallabag/wallabag/pull/7827
|
||||
* Fix title tag filter by @nicosomb in https://github.com/wallabag/wallabag/pull/7846
|
||||
* Change NB_ELEMENTS in pocket importer to 30 by @j0k3r in https://github.com/wallabag/wallabag/pull/7993
|
||||
* Fix entries counter for annotated entries in the menu by @j0k3r in https://github.com/wallabag/wallabag/pull/7999
|
||||
|
||||
### Technical stuff
|
||||
|
||||
* Prepare 2.6.11 release by @yguedidi in https://github.com/wallabag/wallabag/pull/8133
|
||||
|
||||
## [2.6.10](https://github.com/wallabag/wallabag/tree/2.6.10)
|
||||
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.9...2.6.10)
|
||||
|
||||
### Improvement
|
||||
|
||||
* Add Omnivore import by @nicosomb in https://github.com/wallabag/wallabag/pull/7754
|
||||
|
||||
### Fixes
|
||||
|
||||
* Update site config & tests by @j0k3r in https://github.com/wallabag/wallabag/pull/7582 (fixes "Key provided is shorter
|
||||
than 256 bits, only 240 bits provided" https://github.com/wallabag/wallabag/issues/7531)
|
||||
* Update site config by @yguedidi in https://github.com/wallabag/wallabag/pull/7623
|
||||
* Replace gitter with matrix by @nicosomb in https://github.com/wallabag/wallabag/pull/7753
|
||||
|
||||
## [2.6.9](https://github.com/wallabag/wallabag/tree/2.6.9)
|
||||
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.8...2.6.9)
|
||||
|
||||
### Fixes
|
||||
* Fix same domain pagination by @yguedidi in https://github.com/wallabag/wallabag/pull/7266
|
||||
* Upgrade PHP dependencies by @yguedidi in https://github.com/wallabag/wallabag/pull/7272
|
||||
* Use a proper "how to" for elCurator by @j0k3r in https://github.com/wallabag/wallabag/pull/7323
|
||||
|
||||
## [2.6.8](https://github.com/wallabag/wallabag/tree/2.6.8)
|
||||
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.7...2.6.8)
|
||||
|
||||
### Fixes
|
||||
* Update deps & Node 20 by @j0k3r in https://github.com/wallabag/wallabag/pull/7134
|
||||
* Fix dark mode disabled url 2.6 by @Simounet in https://github.com/wallabag/wallabag/pull/7133
|
||||
* Make database dependent commands lazy by @yguedidi in https://github.com/wallabag/wallabag/pull/7142
|
||||
* Fix docker setup by @yguedidi in https://github.com/wallabag/wallabag/pull/7141
|
||||
* Remove session-based redirection by @yguedidi in https://github.com/wallabag/wallabag/pull/7140
|
||||
|
||||
## [2.6.7](https://github.com/wallabag/wallabag/tree/2.6.7)
|
||||
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.6...2.6.7)
|
||||
|
||||
### Security fix
|
||||
* A user can disable her 2FA unintentionally by @kdecherf in https://github.com/wallabag/wallabag/commit/0cfdddc2eb0aee5ffb69bf499d377d75655ba157
|
||||
|
||||
### Fixes
|
||||
* Fix deprecated null tag parameter by @Simounet in https://github.com/wallabag/wallabag/pull/6985
|
||||
* Full clickable card on mass action by @Simounet in https://github.com/wallabag/wallabag/pull/6991
|
||||
* Add tag form submit button always displayed by @Simounet in https://github.com/wallabag/wallabag/pull/6986
|
||||
|
||||
## [2.6.6](https://github.com/wallabag/wallabag/tree/2.6.6)
|
||||
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.5...2.6.6)
|
||||
|
||||
### Security fix
|
||||
* Force secure cookie on HTTPS connection by @j0k3r in https://github.com/wallabag/wallabag/pull/6924
|
||||
|
||||
### Fixes
|
||||
* Fix checkboxes pointer events issue by @Simounet in https://github.com/wallabag/wallabag/pull/6897
|
||||
* Add Google mailer by @j0k3r in https://github.com/wallabag/wallabag/pull/6899
|
||||
* Improve performance on homepage by @Simounet in https://github.com/wallabag/wallabag/pull/6909
|
||||
* Mass action layout improved by @Simounet in https://github.com/wallabag/wallabag/pull/6912
|
||||
|
||||
## [2.6.5](https://github.com/wallabag/wallabag/tree/2.6.5)
|
||||
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.4...2.6.5)
|
||||
|
||||
### Fixes
|
||||
* "Fix checkboxes pointer-events disabled" by @Simounet https://github.com/wallabag/wallabag/pull/6874
|
||||
* "Fix nav input styles" by @Simounet https://github.com/wallabag/wallabag/pull/6877
|
||||
* "Change domain status filters html types" by @Simounet https://github.com/wallabag/wallabag/pull/6888
|
||||
|
||||
## [2.6.4](https://github.com/wallabag/wallabag/tree/2.6.4)
|
||||
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.3...2.6.4)
|
||||
|
||||
### Fixes
|
||||
* Fix API token generation by @nicosomb https://github.com/wallabag/wallabag/pull/6869
|
||||
* Fix checkboxes which were broken by @nicosomb https://github.com/wallabag/wallabag/pull/6864
|
||||
|
||||
## [2.6.3](https://github.com/wallabag/wallabag/tree/2.6.3)
|
||||
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.2...2.6.3)
|
||||
|
||||
### Security fixes
|
||||
* Replace GET way to POST way to reset data user by @nicosomb https://github.com/wallabag/wallabag/commit/78b0b55c40511e1f22d5bbb4897aa10fca68441c
|
||||
* Replace GET way to POST way to delete API client by @nicosomb https://github.com/wallabag/wallabag/commit/ffcc5c9062fcc8cd922d7d6d65edbe5efae96806
|
||||
|
||||
### Improvement
|
||||
* Add confirmation before reload entry by @nicosomb https://github.com/wallabag/wallabag/pull/6778
|
||||
* Remove external dependencies on howto page by @viktoriussuwandi https://github.com/wallabag/wallabag/pull/6775
|
||||
|
||||
### Fixes
|
||||
* Use Session instead of Referrer for Redirection by @Spoons https://github.com/wallabag/wallabag/pull/6119
|
||||
* Reduce risk of collision for #content by @kdecherf https://github.com/wallabag/wallabag/pull/6829
|
||||
* Update dependencies to fix vulnerabilities by @nicosomb https://github.com/wallabag/wallabag/pull/6783
|
||||
* Fix failing randomly test by @nicosomb https://github.com/wallabag/wallabag/pull/6763
|
||||
|
||||
### Technical stuff
|
||||
* Add check if git is installed by @nicosomb https://github.com/wallabag/wallabag/pull/6788
|
||||
* Replace kernel.root_dir by kernel.project_dir by @yguedidi https://github.com/wallabag/wallabag/pull/6809
|
||||
* Split symfony/symfony by @yguedidi https://github.com/wallabag/wallabag/pull/6817
|
||||
* Make Crawler::extract get an array by @yguedidi https://github.com/wallabag/wallabag/pull/6812
|
||||
* Use PSR-17 and PSR-18 by @yguedidi https://github.com/wallabag/wallabag/pull/6816
|
||||
* Replace Client by KernelBrowser by @yguedidi https://github.com/wallabag/wallabag/pull/6813
|
||||
* Replace Debug component by ErrorHandler component by @yguedidi https://github.com/wallabag/wallabag/pull/6810
|
||||
* Make ImportController extends AbstractController by @yguedidi https://github.com/wallabag/wallabag/pull/6808
|
||||
* Use Twig instead of templating by @yguedidi https://github.com/wallabag/wallabag/pull/6797
|
||||
* Identify platforms by their class by @yguedidi https://github.com/wallabag/wallabag/pull/6799
|
||||
* Move from transchoice to trans by @yguedidi https://github.com/wallabag/wallabag/pull/6800
|
||||
* Replace GetResponseEvent by RequestEvent by @yguedidi https://github.com/wallabag/wallabag/pull/6811
|
||||
* Ensure the kernel is shut down before calling createClient by @yguedidi https://github.com/wallabag/wallabag/pull/6803
|
||||
* Ignore docker-compose.override.yml by @yguedidi https://github.com/wallabag/wallabag/pull/6814
|
||||
* Add composer normalizer by @nicosomb https://github.com/wallabag/wallabag/pull/6762
|
||||
|
||||
## [2.6.2](https://github.com/wallabag/wallabag/tree/2.6.2)
|
||||
[Full Changelog](https://github.com/wallabag/wallabag/compare/2.6.1...2.6.2)
|
||||
|
||||
|
||||
@ -36,7 +36,7 @@ build: ## Run webpack
|
||||
|
||||
prepare: clean ## Prepare database for testsuite
|
||||
ifdef DB
|
||||
cp app/config/tests/parameters_test.$(DB).yml app/config/parameters_test.yml
|
||||
cp .env.test.$(DB) .env.test
|
||||
endif
|
||||
-php bin/console doctrine:database:drop --force --env=test
|
||||
php bin/console doctrine:database:create --env=test
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# wallabag
|
||||
|
||||

|
||||
[](https://matrix.to/#/#wallabag:matrix.org)
|
||||
[](https://gitter.im/wallabag/wallabag)
|
||||
[](https://liberapay.com/wallabag/donate)
|
||||
[](https://hosted.weblate.org/engage/wallabag/?utm_source=widget)
|
||||

|
||||
|
||||
@ -9,7 +9,7 @@ During this documentation, we assume the release is `$LAST_WALLABAG_RELEASE` (li
|
||||
#### Prepare the release
|
||||
|
||||
- Update these files with new information
|
||||
- `app/config/wallabag.yml` (`wallabag_core.version`)
|
||||
- `config/wallabag.yaml` (`wallabag.version`)
|
||||
- `CHANGELOG.md`
|
||||
- Create a PR named "Prepare $LAST_WALLABAG_RELEASE release".
|
||||
- Wait for test to be ok, merge it.
|
||||
@ -19,7 +19,7 @@ During this documentation, we assume the release is `$LAST_WALLABAG_RELEASE` (li
|
||||
- [Create the new release on GitHub](https://github.com/wallabag/wallabag/releases/new) by targetting the `master` branch or any appropriate branch (for instance backports).
|
||||
- Update [website](https://github.com/wallabag/website) to change MD5 sum and create the release blog post (based on the changelog).
|
||||
- Update Dockerfile https://github.com/wallabag/docker (and create a new tag)
|
||||
- Put the next patch version suffixed with `-dev` in `app/config/wallabag.yml` (`wallabag_core.version`)
|
||||
- Put the next patch version suffixed with `-dev` in `config/wallabag.yaml` (`wallabag.version`)
|
||||
- Drink a :beer:!
|
||||
|
||||
### Target PHP version
|
||||
|
||||
@ -1,7 +0,0 @@
|
||||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order deny,allow
|
||||
Deny from all
|
||||
</IfModule>
|
||||
@ -1,7 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\HttpCache\HttpCache;
|
||||
|
||||
class AppCache extends HttpCache
|
||||
{
|
||||
}
|
||||
@ -1,101 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Symfony\Component\Config\Loader\LoaderInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\HttpKernel\Kernel;
|
||||
|
||||
class AppKernel extends Kernel
|
||||
{
|
||||
public function registerBundles()
|
||||
{
|
||||
$bundles = [
|
||||
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
|
||||
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
|
||||
new Symfony\Bundle\TwigBundle\TwigBundle(),
|
||||
new Symfony\Bundle\MonologBundle\MonologBundle(),
|
||||
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
|
||||
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
|
||||
new FOS\RestBundle\FOSRestBundle(),
|
||||
new FOS\UserBundle\FOSUserBundle(),
|
||||
new JMS\SerializerBundle\JMSSerializerBundle(),
|
||||
new Nelmio\ApiDocBundle\NelmioApiDocBundle(),
|
||||
new Nelmio\CorsBundle\NelmioCorsBundle(),
|
||||
new Bazinga\Bundle\HateoasBundle\BazingaHateoasBundle(),
|
||||
new Lexik\Bundle\FormFilterBundle\LexikFormFilterBundle(),
|
||||
new FOS\OAuthServerBundle\FOSOAuthServerBundle(),
|
||||
new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
|
||||
new Scheb\TwoFactorBundle\SchebTwoFactorBundle(),
|
||||
new KPhoen\RulerZBundle\KPhoenRulerZBundle(),
|
||||
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
|
||||
new Craue\ConfigBundle\CraueConfigBundle(),
|
||||
new BabDev\PagerfantaBundle\BabDevPagerfantaBundle(),
|
||||
new FOS\JsRoutingBundle\FOSJsRoutingBundle(),
|
||||
new BD\GuzzleSiteAuthenticatorBundle\BDGuzzleSiteAuthenticatorBundle(),
|
||||
new OldSound\RabbitMqBundle\OldSoundRabbitMqBundle(),
|
||||
new Http\HttplugBundle\HttplugBundle(),
|
||||
new Sentry\SentryBundle\SentryBundle(),
|
||||
new Twig\Extra\TwigExtraBundle\TwigExtraBundle(),
|
||||
|
||||
// wallabag bundles
|
||||
new Wallabag\CoreBundle\WallabagCoreBundle(),
|
||||
new Wallabag\ApiBundle\WallabagApiBundle(),
|
||||
new Wallabag\UserBundle\WallabagUserBundle(),
|
||||
new Wallabag\ImportBundle\WallabagImportBundle(),
|
||||
new Wallabag\AnnotationBundle\WallabagAnnotationBundle(),
|
||||
];
|
||||
|
||||
if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
|
||||
$bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
|
||||
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
|
||||
$bundles[] = new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle();
|
||||
|
||||
if ('test' === $this->getEnvironment()) {
|
||||
$bundles[] = new DAMA\DoctrineTestBundle\DAMADoctrineTestBundle();
|
||||
}
|
||||
|
||||
if ('dev' === $this->getEnvironment()) {
|
||||
$bundles[] = new Symfony\Bundle\MakerBundle\MakerBundle();
|
||||
$bundles[] = new Symfony\Bundle\WebServerBundle\WebServerBundle();
|
||||
}
|
||||
}
|
||||
|
||||
return $bundles;
|
||||
}
|
||||
|
||||
public function getCacheDir()
|
||||
{
|
||||
return dirname(__DIR__) . '/var/cache/' . $this->getEnvironment();
|
||||
}
|
||||
|
||||
public function getLogDir()
|
||||
{
|
||||
return dirname(__DIR__) . '/var/logs';
|
||||
}
|
||||
|
||||
public function registerContainerConfiguration(LoaderInterface $loader)
|
||||
{
|
||||
$loader->load($this->getProjectDir() . '/app/config/config_' . $this->getEnvironment() . '.yml');
|
||||
|
||||
$loader->load(function ($container) {
|
||||
if ($container->getParameter('use_webpack_dev_server')) {
|
||||
$container->loadFromExtension('framework', [
|
||||
'assets' => [
|
||||
'base_url' => 'http://localhost:8080/',
|
||||
],
|
||||
]);
|
||||
} else {
|
||||
$container->loadFromExtension('framework', [
|
||||
'assets' => [
|
||||
'base_url' => $container->getParameter('domain_name'),
|
||||
],
|
||||
]);
|
||||
}
|
||||
});
|
||||
|
||||
$loader->load(function (ContainerBuilder $container) {
|
||||
// $container->setParameter('container.autowiring.strict_mode', true);
|
||||
// $container->setParameter('container.dumper.inline_class_loader', true);
|
||||
$container->addObjectResource($this);
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -23,14 +23,14 @@ framework:
|
||||
csrf_protection: ~
|
||||
validation:
|
||||
enable_annotations: true
|
||||
templating:
|
||||
engines: ['twig']
|
||||
default_locale: "%locale%"
|
||||
trusted_hosts: ~
|
||||
session:
|
||||
# handler_id set to null will use default session handler from php.ini
|
||||
handler_id: session.handler.native_file
|
||||
save_path: "%kernel.project_dir%/var/sessions/%kernel.environment%"
|
||||
cookie_secure: auto
|
||||
cookie_samesite: lax
|
||||
fragments: ~
|
||||
http_method_override: true
|
||||
assets: ~
|
||||
@ -43,6 +43,7 @@ twig:
|
||||
strict_variables: "%kernel.debug%"
|
||||
form_themes:
|
||||
- "@LexikFormFilter/Form/form_div_layout.html.twig"
|
||||
exception_controller: Wallabag\CoreBundle\Controller\ExceptionController:showAction
|
||||
globals:
|
||||
registration_enabled: '%fosuser_registration%'
|
||||
|
||||
@ -268,11 +269,6 @@ old_sound_rabbit_mq:
|
||||
exchange_options:
|
||||
name: 'wallabag.import.elcurator'
|
||||
type: topic
|
||||
import_omnivore:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.omnivore'
|
||||
type: topic
|
||||
import_firefox:
|
||||
connection: default
|
||||
exchange_options:
|
||||
@ -283,21 +279,6 @@ old_sound_rabbit_mq:
|
||||
exchange_options:
|
||||
name: 'wallabag.import.chrome'
|
||||
type: topic
|
||||
import_shaarli:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.shaarli'
|
||||
type: topic
|
||||
import_pocket_html:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.pocket_html'
|
||||
type: topic
|
||||
import_pocket_csv:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.pocket_csv'
|
||||
type: topic
|
||||
consumers:
|
||||
import_pocket:
|
||||
connection: default
|
||||
@ -371,15 +352,6 @@ old_sound_rabbit_mq:
|
||||
name: 'wallabag.import.elcurator'
|
||||
callback: wallabag_import.consumer.amqp.elcurator
|
||||
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
|
||||
import_omnivore:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.omnivore'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.omnivore'
|
||||
callback: wallabag_import.consumer.amqp.omnivore
|
||||
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
|
||||
import_firefox:
|
||||
connection: default
|
||||
exchange_options:
|
||||
@ -398,33 +370,6 @@ old_sound_rabbit_mq:
|
||||
name: 'wallabag.import.chrome'
|
||||
callback: wallabag_import.consumer.amqp.chrome
|
||||
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
|
||||
import_shaarli:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.shaarli'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.shaarli'
|
||||
callback: wallabag_import.consumer.amqp.shaarli
|
||||
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
|
||||
import_pocket_html:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.pocket_html'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.pocket_html'
|
||||
callback: wallabag_import.consumer.amqp.pocket_html
|
||||
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
|
||||
import_pocket_csv:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.pocket_csv'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.pocket_csv'
|
||||
callback: wallabag_import.consumer.amqp.pocket_csv
|
||||
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
|
||||
|
||||
fos_js_routing:
|
||||
routes_to_expose:
|
||||
|
||||
@ -1,48 +0,0 @@
|
||||
imports:
|
||||
- { resource: config.yml }
|
||||
|
||||
framework:
|
||||
router:
|
||||
resource: "%kernel.project_dir%/app/config/routing_dev.yml"
|
||||
strict_requirements: true
|
||||
profiler:
|
||||
only_exceptions: false
|
||||
|
||||
mailer:
|
||||
# see https://mailcatcher.me/
|
||||
dsn: smtp://127.0.0.1:1025
|
||||
|
||||
web_profiler:
|
||||
toolbar: true
|
||||
intercept_redirects: false
|
||||
|
||||
monolog:
|
||||
handlers:
|
||||
main:
|
||||
type: stream
|
||||
path: "%kernel.logs_dir%/%kernel.environment%.log"
|
||||
level: debug
|
||||
channels: ['!event']
|
||||
console:
|
||||
type: console
|
||||
bubble: false
|
||||
verbosity_levels:
|
||||
VERBOSITY_VERBOSE: INFO
|
||||
VERBOSITY_VERY_VERBOSE: DEBUG
|
||||
channels: ['!event', '!doctrine']
|
||||
console_very_verbose:
|
||||
type: console
|
||||
bubble: false
|
||||
verbosity_levels:
|
||||
VERBOSITY_VERBOSE: NOTICE
|
||||
VERBOSITY_VERY_VERBOSE: NOTICE
|
||||
VERBOSITY_DEBUG: DEBUG
|
||||
channels: [doctrine]
|
||||
|
||||
# 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
|
||||
@ -1,28 +0,0 @@
|
||||
imports:
|
||||
- { resource: config.yml }
|
||||
|
||||
framework:
|
||||
assets:
|
||||
# json_manifest_path: '%kernel.project_dir%/web/bundles/wallabagcore/manifest.json'
|
||||
|
||||
#doctrine:
|
||||
# orm:
|
||||
# metadata_cache_driver: apc
|
||||
# result_cache_driver: apc
|
||||
# query_cache_driver: apc
|
||||
|
||||
monolog:
|
||||
handlers:
|
||||
main:
|
||||
type: fingers_crossed
|
||||
action_level: error
|
||||
handler: nested
|
||||
nested:
|
||||
type: stream
|
||||
path: "%kernel.logs_dir%/%kernel.environment%.log"
|
||||
level: debug
|
||||
console:
|
||||
type: console
|
||||
|
||||
sentry:
|
||||
dsn: "%sentry_dsn%"
|
||||
@ -1,38 +0,0 @@
|
||||
imports:
|
||||
- { resource: config_dev.yml }
|
||||
- { resource: parameters_test.yml }
|
||||
- { resource: services_test.yml }
|
||||
|
||||
framework:
|
||||
test: ~
|
||||
session:
|
||||
storage_id: session.storage.mock_file
|
||||
profiler:
|
||||
collect: false
|
||||
translator:
|
||||
enabled: false
|
||||
mailer:
|
||||
dsn: 'null://null'
|
||||
|
||||
web_profiler:
|
||||
toolbar: false
|
||||
intercept_redirects: false
|
||||
|
||||
doctrine:
|
||||
dbal:
|
||||
driver: "%test_database_driver%"
|
||||
host: "%test_database_host%"
|
||||
port: "%test_database_port%"
|
||||
dbname: "%test_database_name%"
|
||||
user: "%test_database_user%"
|
||||
password: "%test_database_password%"
|
||||
charset: "%test_database_charset%"
|
||||
path: "%env(TEST_DATABASE_PATH)%"
|
||||
|
||||
orm:
|
||||
metadata_cache_driver:
|
||||
type: service
|
||||
id: filesystem_cache
|
||||
query_cache_driver:
|
||||
type: service
|
||||
id: filesystem_cache
|
||||
@ -1,9 +0,0 @@
|
||||
parameters:
|
||||
addons_url:
|
||||
firefox: https://addons.mozilla.org/firefox/addon/wallabagger/
|
||||
chrome: https://chrome.google.com/webstore/detail/wallabagger/gbmgphmejlcoihgedabhgjdkcahacjlj
|
||||
opera: https://addons.opera.com/en/extensions/details/wallabagger/?display=en
|
||||
f_droid: https://f-droid.org/app/fr.gaulupeau.apps.InThePoche
|
||||
google_play: https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche
|
||||
ios: https://itunes.apple.com/app/wallabag-2/id1170800946?mt=8
|
||||
windows: https://www.microsoft.com/store/apps/wallabag/9nblggh11646
|
||||
@ -1,10 +0,0 @@
|
||||
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: "%env(TEST_DATABASE_PATH)%"
|
||||
env(TEST_DATABASE_PATH): "%kernel.project_dir%/data/db/wallabag_test.sqlite"
|
||||
test_database_charset: utf8
|
||||
@ -1,14 +0,0 @@
|
||||
_wdt:
|
||||
resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
|
||||
prefix: /_wdt
|
||||
|
||||
_profiler:
|
||||
resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
|
||||
prefix: /_profiler
|
||||
|
||||
_errors:
|
||||
resource: '@TwigBundle/Resources/config/routing/errors.xml'
|
||||
prefix: /_error
|
||||
|
||||
_main:
|
||||
resource: routing.yml
|
||||
@ -1,432 +0,0 @@
|
||||
imports:
|
||||
- { resource: services_rabbit.yml }
|
||||
- { resource: services_redis.yml }
|
||||
- { resource: parameters_addons.yml }
|
||||
|
||||
parameters:
|
||||
lexik_form_filter.get_filter.doctrine_orm.class: Wallabag\CoreBundle\Event\Subscriber\CustomDoctrineORMSubscriber
|
||||
|
||||
services:
|
||||
_defaults:
|
||||
autowire: true
|
||||
autoconfigure: true
|
||||
public: true
|
||||
bind:
|
||||
$projectDir: '%kernel.project_dir%'
|
||||
$debug: '%kernel.debug%'
|
||||
$defaultLocale: '%kernel.default_locale%'
|
||||
$wallabagUrl: '%domain_name%'
|
||||
$tablePrefix: "%database_table_prefix%"
|
||||
$encryptionKeyPath: "%wallabag_core.site_credentials.encryption_key_path%"
|
||||
$fetchingErrorMessageTitle: "%wallabag_core.fetching_error_message_title%"
|
||||
$fetchingErrorMessage: '%wallabag_core.fetching_error_message%'
|
||||
$languages: '%wallabag_core.languages%'
|
||||
$lifeTime: '%wallabag_core.cache_lifetime%'
|
||||
$cookieFile: "%kernel.cache_dir%/cookiejar.json"
|
||||
$logoPath: 'web/img/appicon/apple-touch-icon-152.png'
|
||||
$registrationEnabled: '%fosuser_registration%'
|
||||
$restrictedAccess: '@=service(''craue_config'').get(''restricted_access'')'
|
||||
$senderEmail: "%scheb_two_factor.email.sender_email%"
|
||||
$senderName: "%scheb_two_factor.email.sender_name%"
|
||||
$storeArticleHeaders: '@=service(''craue_config'').get(''store_article_headers'')'
|
||||
$supportUrl: '@=service(''craue_config'').get(''wallabag_support_url'')'
|
||||
|
||||
Wallabag\AnnotationBundle\:
|
||||
resource: '../../src/Wallabag/AnnotationBundle/*'
|
||||
exclude: '../../src/Wallabag/AnnotationBundle/{Controller,Entity,DataFixtures}'
|
||||
|
||||
Wallabag\ApiBundle\:
|
||||
resource: '../../src/Wallabag/ApiBundle/*'
|
||||
exclude: '../../src/Wallabag/ApiBundle/{Controller,Entity}'
|
||||
|
||||
Wallabag\CoreBundle\:
|
||||
resource: '../../src/Wallabag/CoreBundle/*'
|
||||
exclude: ['../../src/Wallabag/CoreBundle/{Controller,Entity,DataFixtures}', '../../src/Wallabag/CoreBundle/Event/*Event.php']
|
||||
|
||||
# controllers are imported separately to make sure services can be injected
|
||||
# as action arguments even if you don't extend any base controller class
|
||||
Wallabag\AnnotationBundle\Controller\:
|
||||
resource: '../../src/Wallabag/AnnotationBundle/Controller/'
|
||||
tags: ['controller.service_arguments']
|
||||
|
||||
Wallabag\ApiBundle\Controller\:
|
||||
resource: '../../src/Wallabag/ApiBundle/Controller/'
|
||||
tags: ['controller.service_arguments']
|
||||
|
||||
Wallabag\CoreBundle\Controller\:
|
||||
resource: '../../src/Wallabag/CoreBundle/Controller/'
|
||||
tags: ['controller.service_arguments']
|
||||
|
||||
Wallabag\ImportBundle\Controller\:
|
||||
resource: '../../src/Wallabag/ImportBundle/Controller/'
|
||||
tags: ['controller.service_arguments']
|
||||
|
||||
Wallabag\UserBundle\Controller\:
|
||||
resource: '../../src/Wallabag/UserBundle/Controller/'
|
||||
tags: ['controller.service_arguments']
|
||||
|
||||
# inject alias service into controllers
|
||||
Wallabag\ImportBundle\Controller\ChromeController:
|
||||
arguments:
|
||||
$rabbitMqProducer: '@old_sound_rabbit_mq.import_chrome_producer'
|
||||
$redisProducer: '@wallabag_import.producer.redis.chrome'
|
||||
|
||||
Wallabag\ImportBundle\Controller\DeliciousController:
|
||||
arguments:
|
||||
$rabbitMqProducer: '@old_sound_rabbit_mq.import_delicious_producer'
|
||||
$redisProducer: '@wallabag_import.producer.redis.delicious'
|
||||
|
||||
Wallabag\ImportBundle\Controller\ElcuratorController:
|
||||
arguments:
|
||||
$rabbitMqProducer: '@old_sound_rabbit_mq.import_elcurator_producer'
|
||||
$redisProducer: '@wallabag_import.producer.redis.elcurator'
|
||||
|
||||
Wallabag\ImportBundle\Controller\OmnivoreController:
|
||||
arguments:
|
||||
$rabbitMqProducer: '@old_sound_rabbit_mq.import_omnivore_producer'
|
||||
$redisProducer: '@wallabag_import.producer.redis.omnivore'
|
||||
|
||||
Wallabag\ImportBundle\Controller\FirefoxController:
|
||||
arguments:
|
||||
$rabbitMqProducer: '@old_sound_rabbit_mq.import_firefox_producer'
|
||||
$redisProducer: '@wallabag_import.producer.redis.firefox'
|
||||
|
||||
Wallabag\ImportBundle\Controller\InstapaperController:
|
||||
arguments:
|
||||
$rabbitMqProducer: '@old_sound_rabbit_mq.import_instapaper_producer'
|
||||
$redisProducer: '@wallabag_import.producer.redis.instapaper'
|
||||
|
||||
Wallabag\ImportBundle\Controller\PinboardController:
|
||||
arguments:
|
||||
$rabbitMqProducer: '@old_sound_rabbit_mq.import_pinboard_producer'
|
||||
$redisProducer: '@wallabag_import.producer.redis.pinboard'
|
||||
|
||||
Wallabag\ImportBundle\Controller\PocketController:
|
||||
arguments:
|
||||
$rabbitMqProducer: '@old_sound_rabbit_mq.import_pocket_producer'
|
||||
$redisProducer: '@wallabag_import.producer.redis.pocket'
|
||||
|
||||
Wallabag\ImportBundle\Controller\ReadabilityController:
|
||||
arguments:
|
||||
$rabbitMqProducer: '@old_sound_rabbit_mq.import_readability_producer'
|
||||
$redisProducer: '@wallabag_import.producer.redis.readability'
|
||||
|
||||
Wallabag\ImportBundle\Controller\WallabagV1Controller:
|
||||
arguments:
|
||||
$rabbitMqProducer: '@old_sound_rabbit_mq.import_wallabag_v1_producer'
|
||||
$redisProducer: '@wallabag_import.producer.redis.wallabag_v1'
|
||||
|
||||
Wallabag\ImportBundle\Controller\WallabagV2Controller:
|
||||
arguments:
|
||||
$rabbitMqProducer: '@old_sound_rabbit_mq.import_wallabag_v2_producer'
|
||||
$redisProducer: '@wallabag_import.producer.redis.wallabag_v2'
|
||||
|
||||
Wallabag\ImportBundle\Controller\ShaarliController:
|
||||
arguments:
|
||||
$rabbitMqProducer: '@old_sound_rabbit_mq.import_shaarli_producer'
|
||||
$redisProducer: '@wallabag_import.producer.redis.shaarli'
|
||||
|
||||
Wallabag\ImportBundle\Controller\PocketHtmlController:
|
||||
arguments:
|
||||
$rabbitMqProducer: '@old_sound_rabbit_mq.import_pocket_html_producer'
|
||||
$redisProducer: '@wallabag_import.producer.redis.pocket_html'
|
||||
|
||||
Wallabag\ImportBundle\Controller\PocketCsvController:
|
||||
arguments:
|
||||
$rabbitMqProducer: '@old_sound_rabbit_mq.import_pocket_csv_producer'
|
||||
$redisProducer: '@wallabag_import.producer.redis.pocket_csv'
|
||||
|
||||
Wallabag\ImportBundle\:
|
||||
resource: '../../src/Wallabag/ImportBundle/*'
|
||||
exclude: '../../src/Wallabag/ImportBundle/{Consumer,Controller,Redis}'
|
||||
|
||||
Wallabag\UserBundle\:
|
||||
resource: '../../src/Wallabag/UserBundle/*'
|
||||
exclude: '../../src/Wallabag/UserBundle/{Controller,Entity,DataFixtures}'
|
||||
|
||||
Doctrine\DBAL\Connection:
|
||||
alias: doctrine.dbal.default_connection
|
||||
|
||||
Doctrine\ORM\EntityManagerInterface:
|
||||
alias: doctrine.orm.entity_manager
|
||||
|
||||
Doctrine\Persistence\ManagerRegistry:
|
||||
alias: doctrine
|
||||
|
||||
Craue\ConfigBundle\Util\Config:
|
||||
alias: craue_config
|
||||
|
||||
JMS\Serializer\SerializerInterface:
|
||||
alias: jms_serializer
|
||||
|
||||
Lexik\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface:
|
||||
alias: lexik_form_filter.query_builder_updater
|
||||
|
||||
Scheb\TwoFactorBundle\Security\TwoFactor\Provider\Google\GoogleAuthenticatorInterface:
|
||||
alias: scheb_two_factor.security.google_authenticator
|
||||
|
||||
Symfony\Component\HttpFoundation\Session\SessionInterface:
|
||||
alias: session
|
||||
|
||||
Symfony\Component\EventDispatcher\EventDispatcherInterface:
|
||||
alias: event_dispatcher
|
||||
|
||||
Symfony\Component\Form\FormFactoryInterface:
|
||||
alias: form.factory
|
||||
|
||||
Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface:
|
||||
alias: security.token_storage
|
||||
|
||||
Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface:
|
||||
alias: security.authorization_checker
|
||||
|
||||
Symfony\Component\Translation\TranslatorInterface:
|
||||
alias: translator
|
||||
|
||||
Symfony\Component\Validator\Validator\ValidatorInterface:
|
||||
alias: validator
|
||||
|
||||
FOS\UserBundle\Model\UserManagerInterface:
|
||||
alias: fos_user.user_manager
|
||||
|
||||
MatomoTwigExtension\MatomoTwigExtension:
|
||||
public: false
|
||||
|
||||
Wallabag\CoreBundle\Event\Listener\UserLocaleListener:
|
||||
tags:
|
||||
- { name: kernel.event_listener, event: security.interactive_login, method: onInteractiveLogin }
|
||||
|
||||
craue_config_cache_provider:
|
||||
class: Symfony\Component\Cache\Adapter\FilesystemAdapter
|
||||
public: false
|
||||
arguments:
|
||||
$namespace: 'craue_config'
|
||||
$defaultLifetime: 0
|
||||
$directory: '%kernel.cache_dir%'
|
||||
|
||||
Wallabag\CoreBundle\ParamConverter\UsernameFeedTokenConverter:
|
||||
tags:
|
||||
- { name: request.param_converter, converter: username_feed_token_converter }
|
||||
|
||||
Wallabag\CoreBundle\Event\Subscriber\TablePrefixSubscriber:
|
||||
tags:
|
||||
- { name: doctrine.event_subscriber }
|
||||
|
||||
Graby\Graby:
|
||||
arguments:
|
||||
$config:
|
||||
error_message: '%wallabag_core.fetching_error_message%'
|
||||
error_message_title: '%wallabag_core.fetching_error_message_title%'
|
||||
calls:
|
||||
- [ setLogger, [ "@logger" ] ]
|
||||
tags:
|
||||
- { name: monolog.logger, channel: graby }
|
||||
|
||||
Graby\SiteConfig\ConfigBuilder:
|
||||
arguments:
|
||||
$config: {}
|
||||
|
||||
wallabag_core.http_client:
|
||||
alias: 'httplug.client.wallabag_core'
|
||||
|
||||
Wallabag\CoreBundle\GuzzleSiteAuthenticator\GrabySiteConfigBuilder:
|
||||
tags:
|
||||
- { name: monolog.logger, channel: graby }
|
||||
|
||||
# service alias override
|
||||
bd_guzzle_site_authenticator.site_config_builder:
|
||||
alias: Wallabag\CoreBundle\GuzzleSiteAuthenticator\GrabySiteConfigBuilder
|
||||
|
||||
GuzzleHttp\Cookie\CookieJar:
|
||||
alias: 'Wallabag\CoreBundle\Helper\FileCookieJar'
|
||||
|
||||
Wallabag\CoreBundle\Helper\HttpClientFactory:
|
||||
calls:
|
||||
- ["addSubscriber", ["@bd_guzzle_site_authenticator.authenticator_subscriber"]]
|
||||
|
||||
RulerZ\RulerZ:
|
||||
alias: rulerz
|
||||
|
||||
Wallabag\CoreBundle\Operator\PHP\Matches:
|
||||
tags:
|
||||
- { name: rulerz.operator, target: native, operator: matches }
|
||||
|
||||
Wallabag\CoreBundle\Operator\Doctrine\Matches:
|
||||
tags:
|
||||
- { name: rulerz.operator, target: doctrine, operator: matches, inline: true }
|
||||
|
||||
Wallabag\CoreBundle\Operator\PHP\NotMatches:
|
||||
tags:
|
||||
- { name: rulerz.operator, target: native, operator: notmatches }
|
||||
|
||||
Wallabag\CoreBundle\Operator\Doctrine\NotMatches:
|
||||
tags:
|
||||
- { name: rulerz.operator, target: doctrine, operator: notmatches, inline: true }
|
||||
|
||||
Wallabag\CoreBundle\Operator\PHP\PatternMatches:
|
||||
tags:
|
||||
- { name: rulerz.operator, target: native, operator: "~" }
|
||||
|
||||
Predis\Client:
|
||||
arguments:
|
||||
$parameters:
|
||||
scheme: '%redis_scheme%'
|
||||
host: '%redis_host%'
|
||||
port: '%redis_port%'
|
||||
path: '%redis_path%'
|
||||
password: '%redis_password%'
|
||||
|
||||
Wallabag\CoreBundle\Event\Subscriber\SQLiteCascadeDeleteSubscriber:
|
||||
tags:
|
||||
- { name: doctrine.event_subscriber }
|
||||
|
||||
Wallabag\CoreBundle\Event\Subscriber\DownloadImagesSubscriber:
|
||||
arguments:
|
||||
$enabled: '@=service(''craue_config'').get(''download_images_enabled'')'
|
||||
|
||||
Wallabag\CoreBundle\Helper\DownloadImages:
|
||||
arguments:
|
||||
$baseFolder: "%kernel.project_dir%/web/assets/images"
|
||||
|
||||
Wallabag\CoreBundle\Command\CleanDownloadedImagesCommand:
|
||||
tags:
|
||||
- { name: console.command, command: 'wallabag:clean-downloaded-images' }
|
||||
|
||||
Wallabag\CoreBundle\Command\CleanDuplicatesCommand:
|
||||
tags:
|
||||
- { name: console.command, command: 'wallabag:clean-duplicates' }
|
||||
|
||||
Wallabag\CoreBundle\Command\ExportCommand:
|
||||
arguments:
|
||||
$projectDir: '%kernel.project_dir%'
|
||||
tags:
|
||||
- { name: console.command, command: 'wallabag:export' }
|
||||
|
||||
Wallabag\CoreBundle\Command\GenerateUrlHashesCommand:
|
||||
tags:
|
||||
- { name: console.command, command: 'wallabag:generate-hashed-urls' }
|
||||
|
||||
Wallabag\CoreBundle\Command\InstallCommand:
|
||||
arguments:
|
||||
$databaseDriver: '%database_driver%'
|
||||
$databaseName: '%database_name%'
|
||||
$defaultSettings: '%wallabag_core.default_internal_settings%'
|
||||
$defaultIgnoreOriginInstanceRules: '%wallabag_core.default_ignore_origin_instance_rules%'
|
||||
|
||||
Wallabag\CoreBundle\Command\ListUserCommand:
|
||||
tags:
|
||||
- { name: console.command, command: 'wallabag:user:list' }
|
||||
|
||||
Wallabag\CoreBundle\Command\ReloadEntryCommand:
|
||||
tags:
|
||||
- { name: console.command, command: 'wallabag:entry:reload' }
|
||||
|
||||
Wallabag\CoreBundle\Command\ShowUserCommand:
|
||||
tags:
|
||||
- { name: console.command, command: 'wallabag:user:show' }
|
||||
|
||||
Wallabag\CoreBundle\Command\TagAllCommand:
|
||||
tags:
|
||||
- { name: console.command, command: 'wallabag:tag:all' }
|
||||
|
||||
Wallabag\ImportBundle\Command\ImportCommand:
|
||||
tags:
|
||||
- { name: console.command, command: 'wallabag:import' }
|
||||
|
||||
wallabag_core.entry.download_images.client:
|
||||
alias: 'httplug.client.wallabag_core.entry.download_images'
|
||||
|
||||
Wallabag\UserBundle\Mailer\UserMailer:
|
||||
arguments:
|
||||
$parameters:
|
||||
template:
|
||||
confirmation: '%fos_user.registration.confirmation.template%'
|
||||
resetting: '%fos_user.resetting.email.template%'
|
||||
from_email:
|
||||
confirmation: '%fos_user.registration.confirmation.from_email%'
|
||||
resetting: '%fos_user.resetting.email.from_email%'
|
||||
|
||||
Wallabag\UserBundle\EventListener\CreateConfigListener:
|
||||
arguments:
|
||||
$itemsOnPage: "%wallabag_core.items_on_page%"
|
||||
$feedLimit: "%wallabag_core.feed_limit%"
|
||||
$language: "%wallabag_core.language%"
|
||||
$readingSpeed: "%wallabag_core.reading_speed%"
|
||||
$actionMarkAsRead: "%wallabag_core.action_mark_as_read%"
|
||||
$listMode: "%wallabag_core.list_mode%"
|
||||
$displayThumbnails: "%wallabag_core.display_thumbnails%"
|
||||
|
||||
Wallabag\UserBundle\EventListener\AuthenticationFailureListener:
|
||||
tags:
|
||||
- { name: kernel.event_listener, event: security.authentication.failure, method: onAuthenticationFailure }
|
||||
|
||||
wallabag_import.pocket.client:
|
||||
alias: 'httplug.client.wallabag_import.pocket.client'
|
||||
|
||||
Wallabag\ImportBundle\Import\PocketImport:
|
||||
calls:
|
||||
- [ setClient, [ "@wallabag_import.pocket.client" ] ]
|
||||
tags:
|
||||
- { name: wallabag_import.import, alias: pocket }
|
||||
|
||||
Wallabag\ImportBundle\Import\WallabagV1Import:
|
||||
tags:
|
||||
- { name: wallabag_import.import, alias: wallabag_v1 }
|
||||
|
||||
Wallabag\ImportBundle\Import\WallabagV2Import:
|
||||
tags:
|
||||
- { name: wallabag_import.import, alias: wallabag_v2 }
|
||||
|
||||
Wallabag\ImportBundle\Import\ElcuratorImport:
|
||||
tags:
|
||||
- { name: wallabag_import.import, alias: elcurator }
|
||||
|
||||
Wallabag\ImportBundle\Import\ReadabilityImport:
|
||||
tags:
|
||||
- { name: wallabag_import.import, alias: readability }
|
||||
|
||||
Wallabag\ImportBundle\Import\InstapaperImport:
|
||||
tags:
|
||||
- { name: wallabag_import.import, alias: instapaper }
|
||||
|
||||
Wallabag\ImportBundle\Import\PinboardImport:
|
||||
tags:
|
||||
- { name: wallabag_import.import, alias: pinboard }
|
||||
|
||||
Wallabag\ImportBundle\Import\DeliciousImport:
|
||||
tags:
|
||||
- { name: wallabag_import.import, alias: delicious }
|
||||
|
||||
Wallabag\ImportBundle\Import\OmnivoreImport:
|
||||
tags:
|
||||
- { name: wallabag_import.import, alias: omnivore }
|
||||
|
||||
Wallabag\ImportBundle\Import\FirefoxImport:
|
||||
tags:
|
||||
- { name: wallabag_import.import, alias: firefox }
|
||||
|
||||
Wallabag\ImportBundle\Import\ChromeImport:
|
||||
tags:
|
||||
- { name: wallabag_import.import, alias: chrome }
|
||||
|
||||
Wallabag\ImportBundle\Import\ShaarliImport:
|
||||
tags:
|
||||
- { name: wallabag_import.import, alias: shaarli }
|
||||
|
||||
Wallabag\ImportBundle\Import\PocketHtmlImport:
|
||||
tags:
|
||||
- { name: wallabag_import.import, alias: pocket_html }
|
||||
|
||||
Wallabag\ImportBundle\Import\PocketCsvImport:
|
||||
tags:
|
||||
- { name: wallabag_import.import, alias: pocket_csv }
|
||||
|
||||
# to factorize the proximity and bypass translation for prev & next
|
||||
pagerfanta.view.default_wallabag:
|
||||
class: Pagerfanta\View\OptionableView
|
||||
arguments:
|
||||
- '@pagerfanta.view.twitter_bootstrap'
|
||||
- { proximity: 1, prev_message: "<", next_message: ">" }
|
||||
public: false
|
||||
tags:
|
||||
- { name: pagerfanta.view, alias: default_wallabag }
|
||||
@ -1,94 +0,0 @@
|
||||
# RabbitMQ stuff
|
||||
services:
|
||||
_defaults:
|
||||
autowire: true
|
||||
autoconfigure: true
|
||||
public: true
|
||||
|
||||
Wallabag\ImportBundle\Consumer\RabbitMQConsumerTotalProxy:
|
||||
lazy: true
|
||||
arguments:
|
||||
$pocketConsumer: '@old_sound_rabbit_mq.import_pocket_consumer'
|
||||
$readabilityConsumer: '@old_sound_rabbit_mq.import_readability_consumer'
|
||||
$wallabagV1Consumer: '@old_sound_rabbit_mq.import_wallabag_v1_consumer'
|
||||
$wallabagV2Consumer: '@old_sound_rabbit_mq.import_wallabag_v2_consumer'
|
||||
$firefoxConsumer: '@old_sound_rabbit_mq.import_firefox_consumer'
|
||||
$chromeConsumer: '@old_sound_rabbit_mq.import_chrome_consumer'
|
||||
$instapaperConsumer: '@old_sound_rabbit_mq.import_instapaper_consumer'
|
||||
$pinboardConsumer: '@old_sound_rabbit_mq.import_pinboard_consumer'
|
||||
$deliciousConsumer: '@old_sound_rabbit_mq.import_delicious_consumer'
|
||||
$elcuratorConsumer: '@old_sound_rabbit_mq.import_elcurator_consumer'
|
||||
$omnivoreConsumer: '@old_sound_rabbit_mq.import_omnivore_consumer'
|
||||
$shaarliConsumer: '@old_sound_rabbit_mq.import_shaarli_consumer'
|
||||
$pocketHtmlConsumer: '@old_sound_rabbit_mq.import_pocket_html_consumer'
|
||||
$pocketCsvConsumer: '@old_sound_rabbit_mq.import_pocket_csv_consumer'
|
||||
|
||||
wallabag_import.consumer.amqp.pocket:
|
||||
class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\PocketImport'
|
||||
|
||||
wallabag_import.consumer.amqp.readability:
|
||||
class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\ReadabilityImport'
|
||||
|
||||
wallabag_import.consumer.amqp.instapaper:
|
||||
class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\InstapaperImport'
|
||||
|
||||
wallabag_import.consumer.amqp.pinboard:
|
||||
class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\PinboardImport'
|
||||
|
||||
wallabag_import.consumer.amqp.delicious:
|
||||
class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\DeliciousImport'
|
||||
|
||||
wallabag_import.consumer.amqp.omnivore:
|
||||
class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\OmnivoreImport'
|
||||
|
||||
wallabag_import.consumer.amqp.wallabag_v1:
|
||||
class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\WallabagV1Import'
|
||||
|
||||
wallabag_import.consumer.amqp.wallabag_v2:
|
||||
class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\WallabagV2Import'
|
||||
|
||||
wallabag_import.consumer.amqp.elcurator:
|
||||
class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\ElcuratorImport'
|
||||
|
||||
wallabag_import.consumer.amqp.firefox:
|
||||
class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\FirefoxImport'
|
||||
|
||||
wallabag_import.consumer.amqp.chrome:
|
||||
class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\ChromeImport'
|
||||
|
||||
wallabag_import.consumer.amqp.shaarli:
|
||||
class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\ShaarliImport'
|
||||
|
||||
wallabag_import.consumer.amqp.pocket_html:
|
||||
class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\PocketHtmlImport'
|
||||
|
||||
wallabag_import.consumer.amqp.pocket_csv:
|
||||
class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\PocketCsvImport'
|
||||
@ -1,230 +0,0 @@
|
||||
# Redis stuff
|
||||
services:
|
||||
_defaults:
|
||||
autowire: true
|
||||
autoconfigure: true
|
||||
public: true
|
||||
|
||||
# readability
|
||||
wallabag_import.queue.redis.readability:
|
||||
class: Simpleue\Queue\RedisQueue
|
||||
arguments:
|
||||
$queueName: "wallabag.import.readability"
|
||||
|
||||
wallabag_import.producer.redis.readability:
|
||||
class: Wallabag\ImportBundle\Redis\Producer
|
||||
arguments:
|
||||
- "@wallabag_import.queue.redis.readability"
|
||||
|
||||
wallabag_import.consumer.redis.readability:
|
||||
class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\ReadabilityImport'
|
||||
|
||||
# instapaper
|
||||
wallabag_import.queue.redis.instapaper:
|
||||
class: Simpleue\Queue\RedisQueue
|
||||
arguments:
|
||||
$queueName: "wallabag.import.instapaper"
|
||||
|
||||
wallabag_import.producer.redis.instapaper:
|
||||
class: Wallabag\ImportBundle\Redis\Producer
|
||||
arguments:
|
||||
- "@wallabag_import.queue.redis.instapaper"
|
||||
|
||||
wallabag_import.consumer.redis.instapaper:
|
||||
class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\InstapaperImport'
|
||||
|
||||
# pinboard
|
||||
wallabag_import.queue.redis.pinboard:
|
||||
class: Simpleue\Queue\RedisQueue
|
||||
arguments:
|
||||
$queueName: "wallabag.import.pinboard"
|
||||
|
||||
wallabag_import.producer.redis.pinboard:
|
||||
class: Wallabag\ImportBundle\Redis\Producer
|
||||
arguments:
|
||||
- "@wallabag_import.queue.redis.pinboard"
|
||||
|
||||
wallabag_import.consumer.redis.pinboard:
|
||||
class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\PinboardImport'
|
||||
|
||||
# delicious
|
||||
wallabag_import.queue.redis.delicious:
|
||||
class: Simpleue\Queue\RedisQueue
|
||||
arguments:
|
||||
$queueName: "wallabag.import.delicious"
|
||||
|
||||
wallabag_import.producer.redis.delicious:
|
||||
class: Wallabag\ImportBundle\Redis\Producer
|
||||
arguments:
|
||||
- "@wallabag_import.queue.redis.delicious"
|
||||
|
||||
wallabag_import.consumer.redis.delicious:
|
||||
class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\DeliciousImport'
|
||||
|
||||
# Omnivore
|
||||
wallabag_import.queue.redis.omnivore:
|
||||
class: Simpleue\Queue\RedisQueue
|
||||
arguments:
|
||||
$queueName: "wallabag.import.omnivore"
|
||||
|
||||
wallabag_import.producer.redis.omnivore:
|
||||
class: Wallabag\ImportBundle\Redis\Producer
|
||||
arguments:
|
||||
- "@wallabag_import.queue.redis.omnivore"
|
||||
|
||||
wallabag_import.consumer.redis.omnivore:
|
||||
class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\OmnivoreImport'
|
||||
|
||||
# pocket
|
||||
wallabag_import.queue.redis.pocket:
|
||||
class: Simpleue\Queue\RedisQueue
|
||||
arguments:
|
||||
$queueName: "wallabag.import.pocket"
|
||||
|
||||
wallabag_import.producer.redis.pocket:
|
||||
class: Wallabag\ImportBundle\Redis\Producer
|
||||
arguments:
|
||||
- "@wallabag_import.queue.redis.pocket"
|
||||
|
||||
wallabag_import.consumer.redis.pocket:
|
||||
class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\PocketImport'
|
||||
|
||||
# wallabag v1
|
||||
wallabag_import.queue.redis.wallabag_v1:
|
||||
class: Simpleue\Queue\RedisQueue
|
||||
arguments:
|
||||
$queueName: "wallabag.import.wallabag_v1"
|
||||
|
||||
wallabag_import.producer.redis.wallabag_v1:
|
||||
class: Wallabag\ImportBundle\Redis\Producer
|
||||
arguments:
|
||||
- "@wallabag_import.queue.redis.wallabag_v1"
|
||||
|
||||
wallabag_import.consumer.redis.wallabag_v1:
|
||||
class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\WallabagV1Import'
|
||||
|
||||
# wallabag v2
|
||||
wallabag_import.queue.redis.wallabag_v2:
|
||||
class: Simpleue\Queue\RedisQueue
|
||||
arguments:
|
||||
$queueName: "wallabag.import.wallabag_v2"
|
||||
|
||||
wallabag_import.producer.redis.wallabag_v2:
|
||||
class: Wallabag\ImportBundle\Redis\Producer
|
||||
arguments:
|
||||
- "@wallabag_import.queue.redis.wallabag_v2"
|
||||
|
||||
wallabag_import.consumer.redis.wallabag_v2:
|
||||
class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\WallabagV2Import'
|
||||
|
||||
# elcurator
|
||||
wallabag_import.queue.redis.elcurator:
|
||||
class: Simpleue\Queue\RedisQueue
|
||||
arguments:
|
||||
$queueName: "wallabag.import.elcurator"
|
||||
|
||||
wallabag_import.producer.redis.elcurator:
|
||||
class: Wallabag\ImportBundle\Redis\Producer
|
||||
arguments:
|
||||
- "@wallabag_import.queue.redis.elcurator"
|
||||
|
||||
wallabag_import.consumer.redis.elcurator:
|
||||
class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\ElcuratorImport'
|
||||
|
||||
# firefox
|
||||
wallabag_import.queue.redis.firefox:
|
||||
class: Simpleue\Queue\RedisQueue
|
||||
arguments:
|
||||
$queueName: "wallabag.import.firefox"
|
||||
|
||||
wallabag_import.producer.redis.firefox:
|
||||
class: Wallabag\ImportBundle\Redis\Producer
|
||||
arguments:
|
||||
- "@wallabag_import.queue.redis.firefox"
|
||||
|
||||
wallabag_import.consumer.redis.firefox:
|
||||
class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\FirefoxImport'
|
||||
|
||||
# chrome
|
||||
wallabag_import.queue.redis.chrome:
|
||||
class: Simpleue\Queue\RedisQueue
|
||||
arguments:
|
||||
$queueName: "wallabag.import.chrome"
|
||||
|
||||
wallabag_import.producer.redis.chrome:
|
||||
class: Wallabag\ImportBundle\Redis\Producer
|
||||
arguments:
|
||||
- "@wallabag_import.queue.redis.chrome"
|
||||
|
||||
wallabag_import.consumer.redis.chrome:
|
||||
class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\ChromeImport'
|
||||
|
||||
# shaarli
|
||||
wallabag_import.queue.redis.shaarli:
|
||||
class: Simpleue\Queue\RedisQueue
|
||||
arguments:
|
||||
$queueName: "wallabag.import.shaarli"
|
||||
|
||||
wallabag_import.producer.redis.shaarli:
|
||||
class: Wallabag\ImportBundle\Redis\Producer
|
||||
arguments:
|
||||
- "@wallabag_import.queue.redis.shaarli"
|
||||
|
||||
wallabag_import.consumer.redis.shaarli:
|
||||
class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\ShaarliImport'
|
||||
|
||||
# pocket html
|
||||
wallabag_import.queue.redis.pocket_html:
|
||||
class: Simpleue\Queue\RedisQueue
|
||||
arguments:
|
||||
$queueName: "wallabag.import.pocket_html"
|
||||
|
||||
wallabag_import.producer.redis.pocket_html:
|
||||
class: Wallabag\ImportBundle\Redis\Producer
|
||||
arguments:
|
||||
- "@wallabag_import.queue.redis.pocket_html"
|
||||
|
||||
wallabag_import.consumer.redis.pocket_html:
|
||||
class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\PocketHtmlImport'
|
||||
|
||||
# pocket csv
|
||||
wallabag_import.queue.redis.pocket_csv:
|
||||
class: Simpleue\Queue\RedisQueue
|
||||
arguments:
|
||||
$queueName: "wallabag.import.pocket_csv"
|
||||
|
||||
wallabag_import.producer.redis.pocket_csv:
|
||||
class: Wallabag\ImportBundle\Redis\Producer
|
||||
arguments:
|
||||
- "@wallabag_import.queue.redis.pocket_csv"
|
||||
|
||||
wallabag_import.consumer.redis.pocket_csv:
|
||||
class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer
|
||||
arguments:
|
||||
$import: '@Wallabag\ImportBundle\Import\PocketCsvImport'
|
||||
@ -1,10 +0,0 @@
|
||||
parameters:
|
||||
test_database_driver: pdo_mysql
|
||||
test_database_host: 127.0.0.1
|
||||
test_database_port: 3306
|
||||
test_database_name: wallabag_test
|
||||
test_database_user: root
|
||||
test_database_password: root
|
||||
test_database_path: ~
|
||||
env(TEST_DATABASE_PATH): ~
|
||||
test_database_charset: utf8mb4
|
||||
@ -1,10 +0,0 @@
|
||||
parameters:
|
||||
test_database_driver: pdo_pgsql
|
||||
test_database_host: localhost
|
||||
test_database_port:
|
||||
test_database_name: wallabag_test
|
||||
test_database_user: wallabag
|
||||
test_database_password: wallabagrocks
|
||||
test_database_path: ~
|
||||
env(TEST_DATABASE_PATH): ~
|
||||
test_database_charset: utf8
|
||||
@ -1,12 +0,0 @@
|
||||
parameters:
|
||||
test_database_driver: pdo_sqlite
|
||||
test_database_host: localhost
|
||||
test_database_port:
|
||||
test_database_name: ~
|
||||
test_database_user: ~
|
||||
test_database_password: ~
|
||||
# Using an environnement variable in order to avoid the error "attempt to write a readonly database"
|
||||
# when the schema is dropped then recreate
|
||||
test_database_path: "%env(TEST_DATABASE_PATH)%"
|
||||
env(TEST_DATABASE_PATH): "%kernel.project_dir%/data/db/wallabag_test.sqlite"
|
||||
test_database_charset: utf8
|
||||
|
Before Width: | Height: | Size: 164 B After Width: | Height: | Size: 164 B |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 891 B After Width: | Height: | Size: 891 B |
|
Before Width: | Height: | Size: 451 B After Width: | Height: | Size: 451 B |
|
Before Width: | Height: | Size: 995 B After Width: | Height: | Size: 995 B |
|
Before Width: | Height: | Size: 1012 B After Width: | Height: | Size: 1012 B |
|
Before Width: | Height: | Size: 718 B After Width: | Height: | Size: 718 B |
|
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 110 B |
|
Before Width: | Height: | Size: 138 B After Width: | Height: | Size: 138 B |
@ -235,12 +235,6 @@
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
.tags-add-form {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 640px) {
|
||||
.entry-info {
|
||||
margin-bottom: 20px;
|
||||
@ -264,12 +258,4 @@
|
||||
#article .entry-info .chip-action {
|
||||
min-width: 40px;
|
||||
}
|
||||
|
||||
.tags-add-form {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.tags-add-form-submit {
|
||||
margin-top: 10px;
|
||||
}
|
||||
}
|
||||
@ -3,7 +3,7 @@
|
||||
========================================================================== */
|
||||
|
||||
main {
|
||||
div#content {
|
||||
#content {
|
||||
padding: 0 0.5rem;
|
||||
}
|
||||
}
|
||||
@ -177,7 +177,6 @@ a.original:not(.waves-effect) {
|
||||
.card-entry-tags a,
|
||||
.card-entry-labels a,
|
||||
.card-tag-labels a,
|
||||
.card-tag-labels button,
|
||||
.card-entry-labels-hidden a,
|
||||
#list .chip a {
|
||||
text-decoration: none;
|
||||
@ -62,9 +62,7 @@
|
||||
.nav-panels .input-field input:focus,
|
||||
.results-item,
|
||||
.side-nav li > a,
|
||||
.side-nav li > a > i.material-icons,
|
||||
.side-nav li button,
|
||||
.side-nav li button > i.material-icons {
|
||||
.side-nav li > a > i.material-icons {
|
||||
color: #dfdfdf;
|
||||
}
|
||||
|
||||
@ -87,9 +85,7 @@
|
||||
background-color: #2f2f2f;
|
||||
}
|
||||
|
||||
.mass-action-tags .mass-action-tags-input.mass-action-tags-input,
|
||||
.side-nav li:not(.logo) > a:hover,
|
||||
.side-nav li:not(.logo) button:hover,
|
||||
.side-nav .collapsible-header:hover,
|
||||
.side-nav.fixed .collapsible-header:hover {
|
||||
background-color: #1d1d1d;
|
||||
@ -135,10 +131,6 @@
|
||||
color: #abb2bf;
|
||||
}
|
||||
|
||||
input[type="url"]:not(.browser-default):disabled {
|
||||
color: #9e9e9e;
|
||||
}
|
||||
|
||||
.input-field.nav-panel-add.disabled,
|
||||
.input-field.nav-panel-add.disabled input {
|
||||
background-color: transparent;
|
||||
@ -14,53 +14,44 @@
|
||||
}
|
||||
|
||||
.mass-action {
|
||||
margin: 20px 5px 10px 20px;
|
||||
margin: 10px 5px 10px 20px;
|
||||
}
|
||||
|
||||
.mass-action-group {
|
||||
display: flex;
|
||||
padding: 3px;
|
||||
align-items: center;
|
||||
gap: 30px;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.mass-action-button {
|
||||
height: 36px;
|
||||
line-height: 36px;
|
||||
padding: 0 0.7rem;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
padding: 0 0.5rem;
|
||||
|
||||
i {
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.mass-action-button--tags {
|
||||
border-radius: 2px 0 0 2px;
|
||||
}
|
||||
|
||||
.card-stacked .entry-checkbox {
|
||||
.entry-checkbox {
|
||||
margin: 10px 15px 10px 5px;
|
||||
}
|
||||
|
||||
.card .entry-checkbox {
|
||||
position: absolute;
|
||||
display: flex;
|
||||
padding: 10px;
|
||||
inset: 0;
|
||||
justify-content: flex-end;
|
||||
align-items: start;
|
||||
background-color: rgb(0 172 193 / 20%);
|
||||
cursor: pointer;
|
||||
z-index: 10;
|
||||
.card & {
|
||||
float: right;
|
||||
margin-right: 0;
|
||||
padding: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.entries .entry-checkbox-input,
|
||||
.mass-action .entry-checkbox-input {
|
||||
position: relative;
|
||||
left: 0;
|
||||
width: 20px;
|
||||
min-height: 25px;
|
||||
height: 100%;
|
||||
vertical-align: middle;
|
||||
opacity: initial;
|
||||
cursor: pointer;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
@ -73,19 +64,11 @@
|
||||
|
||||
.mass-action-tags {
|
||||
display: flex;
|
||||
margin-top: 10px;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
|
||||
.mass-action-tags-input.mass-action-tags-input {
|
||||
.mass-action-tags-input {
|
||||
margin: 0;
|
||||
padding: 0 5px;
|
||||
height: 34px;
|
||||
background: white;
|
||||
border-bottom: 3px solid #c5ebef;
|
||||
}
|
||||
|
||||
.mass-action-tags-input.mass-action-tags-input.mass-action-tags-input:focus {
|
||||
border-bottom: 3px solid $blue-accent-color;
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
@ -105,16 +88,13 @@
|
||||
|
||||
.results {
|
||||
display: flex;
|
||||
margin-bottom: 10px;
|
||||
padding: 1rem 1rem 0;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.nb-results {
|
||||
display: inline-flex;
|
||||
margin-bottom: 20px;
|
||||
gap: 30px;
|
||||
.nb-results {
|
||||
display: inline-flex;
|
||||
}
|
||||
}
|
||||
|
||||
.results-item {
|
||||
@ -193,38 +173,9 @@ footer {
|
||||
}
|
||||
|
||||
@media screen and (min-width: 993px) {
|
||||
.results {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.nb-results {
|
||||
margin-bottom: 0;
|
||||
gap: 0;
|
||||
}
|
||||
|
||||
.mass-action-button {
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
padding: 0 0.5rem;
|
||||
}
|
||||
|
||||
.mass-action-group {
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.mass-action-tags {
|
||||
margin-top: 0;
|
||||
margin-left: 7px;
|
||||
flex-wrap: initial;
|
||||
}
|
||||
|
||||
.mass-action {
|
||||
display: flex;
|
||||
margin-top: 10px;
|
||||
align-items: center;
|
||||
|
||||
.mass-action-tags-input.mass-action-tags-input {
|
||||
height: 21px;
|
||||
}
|
||||
gap: 30px;
|
||||
}
|
||||
}
|
||||
@ -21,7 +21,7 @@
|
||||
}
|
||||
|
||||
@media screen and (min-width: 993px) {
|
||||
.entry main div#content {
|
||||
.entry #content {
|
||||
padding-left: 70px;
|
||||
}
|
||||
}
|
||||
@ -6,32 +6,11 @@ nav {
|
||||
line-height: initial;
|
||||
}
|
||||
|
||||
// adapted from anchor styles from node_modules/materialize-css/sass/components/_navbar.scss
|
||||
nav ul button {
|
||||
transition: background-color .3s;
|
||||
font-size: 1rem;
|
||||
color: #fff;
|
||||
display: block;
|
||||
padding: 0 15px;
|
||||
cursor: pointer;
|
||||
background: none;
|
||||
border: 0;
|
||||
|
||||
&:focus {
|
||||
background: none;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(0 0 0 / 10%);
|
||||
}
|
||||
}
|
||||
|
||||
nav {
|
||||
input {
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
ul button:hover,
|
||||
ul a:hover {
|
||||
background-color: initial;
|
||||
}
|
||||
@ -55,7 +34,6 @@ nav {
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
button,
|
||||
a {
|
||||
padding: 10px 15px;
|
||||
}
|
||||
@ -92,7 +70,6 @@ nav {
|
||||
|
||||
.input-field input {
|
||||
display: block;
|
||||
font-size: 1.2rem;
|
||||
line-height: inherit;
|
||||
height: 3rem;
|
||||
}
|
||||
@ -102,17 +79,6 @@ nav {
|
||||
box-shadow: none;
|
||||
color: #444;
|
||||
}
|
||||
|
||||
/* materializecss override */
|
||||
.input-field.input-field input {
|
||||
margin-bottom: 0;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.input-field.input-field input:focus {
|
||||
border-bottom: none;
|
||||
box-shadow: initial;
|
||||
}
|
||||
}
|
||||
|
||||
.nav-panel-top {
|
||||
@ -12,7 +12,6 @@
|
||||
background: initial;
|
||||
}
|
||||
|
||||
& button > i.material-icons.theme-toggle-icon,
|
||||
& > a > i.material-icons.theme-toggle-icon {
|
||||
float: none;
|
||||
margin-left: 0;
|
||||
@ -23,7 +22,6 @@
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
&.fixed button,
|
||||
&.fixed a {
|
||||
font-size: 13px;
|
||||
line-height: 44px;
|
||||
@ -43,35 +41,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
// adapted from anchor styles from node_modules/materialize-css/sass/components/_sideNav.scss
|
||||
.side-nav li button {
|
||||
color: rgba(0 0 0 / 87%);
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
height: 48px;
|
||||
line-height: 48px;
|
||||
padding: 0 (16px * 2);
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(0 0 0 / 5%);
|
||||
}
|
||||
|
||||
& > i,
|
||||
& > i.material-icons {
|
||||
float: left;
|
||||
height: 48px;
|
||||
line-height: 48px;
|
||||
margin: 0 (16px * 2) 0 0;
|
||||
width: 24px;
|
||||
color: rgba(0 0 0 / 54%);
|
||||
}
|
||||
}
|
||||
|
||||
.bold > a,
|
||||
.bold > button {
|
||||
.bold > a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@ -15,13 +15,6 @@ div.settings div.file-field {
|
||||
}
|
||||
}
|
||||
|
||||
/* override materializecss pointer-event disabled on checkboxes */
|
||||
[type="checkbox"]:not(:checked),
|
||||
[type="checkbox"]:checked,
|
||||
.input-field label {
|
||||
pointer-events: initial;
|
||||
}
|
||||
|
||||
.input-field label.active {
|
||||
font-size: 1rem;
|
||||
}
|
||||
@ -38,18 +31,3 @@ nav .input-field input {
|
||||
.tab {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.btn-link {
|
||||
background: none;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
color: $blue-accent-color;
|
||||
|
||||
&:focus {
|
||||
background: none;
|
||||
}
|
||||
}
|
||||
|
||||
.inline-block {
|
||||
display: inline-block;
|
||||
}
|
||||
@ -228,10 +228,10 @@ $(document).ready(() => {
|
||||
});
|
||||
});
|
||||
}
|
||||
$('input[name="tags"][form="form_mass_action"]').on('keydown', (e) => {
|
||||
$('form[name="form_mass_action"] input[name="tags"]').on('keydown', (e) => {
|
||||
if (e.key === 'Enter') {
|
||||
e.preventDefault();
|
||||
$('button[name="tag"][form="form_mass_action"]').trigger('click');
|
||||
$('form[name="form_mass_action"] button[name="tag"]').trigger('click');
|
||||
}
|
||||
});
|
||||
});
|
||||
@ -10,17 +10,17 @@ $(document).ready(() => {
|
||||
|
||||
/* mark as favorite */
|
||||
Mousetrap.bind('f', () => {
|
||||
$('ul.side-nav button.favorite i')[0].click();
|
||||
$('ul.side-nav a.favorite i')[0].click();
|
||||
});
|
||||
|
||||
/* mark as read */
|
||||
Mousetrap.bind('a', () => {
|
||||
$('ul.side-nav button.markasread i')[0].click();
|
||||
$('ul.side-nav a.markasread i')[0].click();
|
||||
});
|
||||
|
||||
/* delete */
|
||||
Mousetrap.bind('del', () => {
|
||||
$('ul.side-nav button.delete i')[0].click();
|
||||
$('ul.side-nav a.delete i')[0].click();
|
||||
});
|
||||
}
|
||||
});
|
||||
39
bin/console
@ -1,27 +1,42 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
use App\Kernel;
|
||||
use Symfony\Bundle\FrameworkBundle\Console\Application;
|
||||
use Symfony\Component\Console\Input\ArgvInput;
|
||||
use Symfony\Component\ErrorHandler\Debug;
|
||||
|
||||
// if you don't want to setup permissions the proper way, just uncomment the following PHP line
|
||||
// read https://symfony.com/doc/current/setup.html#checking-symfony-application-configuration-and-setup
|
||||
// for more information
|
||||
//umask(0000);
|
||||
if (!in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
|
||||
echo 'Warning: The console should be invoked via the CLI version of PHP, not the '.PHP_SAPI.' SAPI'.PHP_EOL;
|
||||
}
|
||||
|
||||
set_time_limit(0);
|
||||
|
||||
require __DIR__.'/../vendor/autoload.php';
|
||||
require dirname(__DIR__).'/vendor/autoload.php';
|
||||
|
||||
$input = new ArgvInput();
|
||||
$env = $input->getParameterOption(['--env', '-e'], getenv('SYMFONY_ENV') ?: 'dev', true);
|
||||
$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption('--no-debug', true) && $env !== 'prod';
|
||||
|
||||
if ($debug) {
|
||||
Debug::enable();
|
||||
if (!class_exists(Application::class)) {
|
||||
throw new LogicException('You need to add "symfony/framework-bundle" as a Composer dependency.');
|
||||
}
|
||||
|
||||
$kernel = new AppKernel($env, $debug);
|
||||
$input = new ArgvInput();
|
||||
if (null !== $env = $input->getParameterOption(['--env', '-e'], null, true)) {
|
||||
putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env);
|
||||
}
|
||||
|
||||
if ($input->hasParameterOption('--no-debug', true)) {
|
||||
putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0');
|
||||
}
|
||||
|
||||
require dirname(__DIR__).'/config/bootstrap.php';
|
||||
|
||||
if ($_SERVER['APP_DEBUG']) {
|
||||
umask(0000);
|
||||
|
||||
if (class_exists(Debug::class)) {
|
||||
Debug::enable();
|
||||
}
|
||||
}
|
||||
|
||||
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
|
||||
$application = new Application($kernel);
|
||||
$application->run($input);
|
||||
|
||||
240
composer.json
@ -56,125 +56,112 @@
|
||||
"ext-tidy": "*",
|
||||
"ext-tokenizer": "*",
|
||||
"ext-xml": "*",
|
||||
"babdev/pagerfanta-bundle": "^3.8",
|
||||
"bdunogier/guzzle-site-authenticator": "^1.1.0",
|
||||
"craue/config-bundle": "^2.7.0",
|
||||
"defuse/php-encryption": "^2.4",
|
||||
"doctrine/collections": "^1.8",
|
||||
"doctrine/common": "^3.4.3",
|
||||
"doctrine/dbal": "^3.8.2",
|
||||
"doctrine/doctrine-bundle": "^2.7.2",
|
||||
"doctrine/doctrine-migrations-bundle": "^3.2.5",
|
||||
"doctrine/event-manager": "^1.2",
|
||||
"doctrine/migrations": "^3.5.5",
|
||||
"doctrine/orm": "^2.18",
|
||||
"doctrine/persistence": "^3.2",
|
||||
"egulias/email-validator": "^3.2.6",
|
||||
"babdev/pagerfanta-bundle": "^3.7",
|
||||
"bdunogier/guzzle-site-authenticator": "^1.0.0",
|
||||
"craue/config-bundle": "^2.3.0",
|
||||
"defuse/php-encryption": "^2.1",
|
||||
"doctrine/collections": "^1.6",
|
||||
"doctrine/common": "^3.0",
|
||||
"doctrine/dbal": "^3.3",
|
||||
"doctrine/doctrine-bundle": "^2.0",
|
||||
"doctrine/doctrine-migrations-bundle": "^3.2",
|
||||
"doctrine/event-manager": "^1.1",
|
||||
"doctrine/migrations": "^3.2",
|
||||
"doctrine/orm": "^2.6",
|
||||
"doctrine/persistence": "^3.0",
|
||||
"egulias/email-validator": "^3.2",
|
||||
"enshrined/svg-sanitize": "^0.15.4",
|
||||
"friendsofsymfony/jsrouting-bundle": "^2.8",
|
||||
"friendsofsymfony/jsrouting-bundle": "^2.2",
|
||||
"friendsofsymfony/oauth-server-bundle": "dev-master#dc8ff343363cf794d30eb1a123610d186a43f162",
|
||||
"friendsofsymfony/rest-bundle": "^3.5",
|
||||
"friendsofsymfony/user-bundle": "^3.2.1",
|
||||
"guzzlehttp/guzzle": "^5.3.4",
|
||||
"guzzlehttp/psr7": "^2.6.2",
|
||||
"html2text/html2text": "^4.3.1",
|
||||
"incenteev/composer-parameter-handler": "^2.1.5",
|
||||
"j0k3r/graby": "^2.4.5",
|
||||
"j0k3r/php-readability": "^1.2.13",
|
||||
"javibravo/simpleue": "^2.1",
|
||||
"jms/serializer": "^3.29.1",
|
||||
"jms/serializer-bundle": "^5.3.1",
|
||||
"kphoen/rulerz": "^0.21.1",
|
||||
"kphoen/rulerz-bundle": "^0.15",
|
||||
"laminas/laminas-code": "^4.7.1",
|
||||
"lcobucci/jwt": "4.1.5",
|
||||
"lexik/form-filter-bundle": "^7.0.3",
|
||||
"mgargano/simplehtmldom": "^1.5",
|
||||
"friendsofsymfony/rest-bundle": "~3.4",
|
||||
"friendsofsymfony/user-bundle": "^3.1",
|
||||
"guzzlehttp/guzzle": "^5.3.1",
|
||||
"guzzlehttp/psr7": "^2.5",
|
||||
"html2text/html2text": "^4.1",
|
||||
"j0k3r/graby": "^2.0",
|
||||
"javibravo/simpleue": "^2.0",
|
||||
"jms/serializer": "^3.17",
|
||||
"jms/serializer-bundle": "~5.0",
|
||||
"kphoen/rulerz": "^0.21",
|
||||
"kphoen/rulerz-bundle": "~0.13",
|
||||
"laminas/laminas-code": "^4.7",
|
||||
"laminas/laminas-diactoros": "^2.3",
|
||||
"lcobucci/jwt": "~4.1.5",
|
||||
"lexik/form-filter-bundle": "^7.0",
|
||||
"mgargano/simplehtmldom": "~1.5",
|
||||
"mnapoli/piwik-twig-extension": "^3.0",
|
||||
"nelmio/api-doc-bundle": "^4.11.1",
|
||||
"nelmio/cors-bundle": "^2.3.1",
|
||||
"nelmio/api-doc-bundle": "^4.10",
|
||||
"nelmio/cors-bundle": "~2.2",
|
||||
"ocramius/proxy-manager": "^2.1.1",
|
||||
"pagerfanta/doctrine-orm-adapter": "^3.8",
|
||||
"pagerfanta/twig": "^3.8",
|
||||
"php-amqplib/php-amqplib": "^3.6.1",
|
||||
"php-amqplib/rabbitmq-bundle": "^2.14",
|
||||
"php-http/client-common": "^2.7.1",
|
||||
"php-http/discovery": "^1.19.2",
|
||||
"pagerfanta/doctrine-orm-adapter": "^3.7",
|
||||
"pagerfanta/twig": "^3.7",
|
||||
"php-amqplib/php-amqplib": "^3.4",
|
||||
"php-amqplib/rabbitmq-bundle": "^2.11",
|
||||
"php-http/client-common": "^2.4",
|
||||
"php-http/discovery": "^1.14",
|
||||
"php-http/guzzle5-adapter": "^2.0",
|
||||
"php-http/httplug": "^2.4",
|
||||
"php-http/httplug-bundle": "^1.32",
|
||||
"php-http/message": "^1.16",
|
||||
"php-http/message-factory": "^1.1",
|
||||
"pragmarx/recovery": "^0.2.1",
|
||||
"predis/predis": "^2.2.2",
|
||||
"psr/http-message": "^1.1",
|
||||
"psr/log": "^1.1.4",
|
||||
"scheb/2fa-backup-code": "^5.13.2",
|
||||
"scheb/2fa-bundle": "^5.13.2",
|
||||
"scheb/2fa-email": "^5.13.2",
|
||||
"scheb/2fa-google-authenticator": "^5.13.2",
|
||||
"scheb/2fa-qr-code": "^5.13.2",
|
||||
"scheb/2fa-trusted-device": "^5.13.2",
|
||||
"sensio/framework-extra-bundle": "^6.2.10",
|
||||
"sentry/sentry-symfony": "^4.13.2",
|
||||
"stof/doctrine-extensions-bundle": "^1.7.2",
|
||||
"symfony/asset": "^4.4.46",
|
||||
"symfony/config": "^4.4.44",
|
||||
"symfony/console": "^4.4.49",
|
||||
"symfony/debug": "^4.4.44",
|
||||
"symfony/dependency-injection": "^4.4.49",
|
||||
"symfony/doctrine-bridge": "^4.4.48",
|
||||
"symfony/dom-crawler": "^4.4.45",
|
||||
"symfony/error-handler": "^4.4.44",
|
||||
"symfony/event-dispatcher": "^4.4.44",
|
||||
"symfony/finder": "^4.4.44",
|
||||
"symfony/form": "^4.4.48",
|
||||
"symfony/framework-bundle": "^4.4.51",
|
||||
"symfony/google-mailer": "^4.4.41",
|
||||
"symfony/http-foundation": "^4.4.49",
|
||||
"symfony/http-kernel": "^4.4.51",
|
||||
"symfony/mailer": "^4.4.49",
|
||||
"symfony/mime": "^4.4.47",
|
||||
"php-http/httplug": "^2.3",
|
||||
"php-http/httplug-bundle": "^1.14",
|
||||
"php-http/message": "^1.13",
|
||||
"php-http/message-factory": "^1.0",
|
||||
"pragmarx/recovery": "^0.2.0",
|
||||
"predis/predis": "^2.0.3",
|
||||
"psr/http-message": "^1.0",
|
||||
"psr/log": "^1.1",
|
||||
"scheb/2fa-backup-code": "^5.13",
|
||||
"scheb/2fa-bundle": "^5.13",
|
||||
"scheb/2fa-email": "^5.13",
|
||||
"scheb/2fa-google-authenticator": "^5.13",
|
||||
"scheb/2fa-qr-code": "^5.13",
|
||||
"scheb/2fa-trusted-device": "^5.13",
|
||||
"sensio/framework-extra-bundle": "^6.2",
|
||||
"sentry/sentry-symfony": "4.9.2",
|
||||
"stof/doctrine-extensions-bundle": "^1.2",
|
||||
"symfony/asset": "4.4.*",
|
||||
"symfony/config": "4.4.*",
|
||||
"symfony/dom-crawler": "4.4.*",
|
||||
"symfony/flex": "^1.19",
|
||||
"symfony/form": "4.4.*",
|
||||
"symfony/mailer": "4.4.*",
|
||||
"symfony/monolog-bundle": "^3.8",
|
||||
"symfony/options-resolver": "^4.4.44",
|
||||
"symfony/proxy-manager-bridge": "^4.4.39",
|
||||
"symfony/routing": "^4.4.44",
|
||||
"symfony/security-bundle": "^4.4.50",
|
||||
"symfony/security-core": "^4.4.48",
|
||||
"symfony/security-http": "^4.4.50",
|
||||
"symfony/templating": "^4.4.44",
|
||||
"symfony/twig-bundle": "^4.4.41",
|
||||
"symfony/validator": "^4.4.48",
|
||||
"tecnickcom/tcpdf": "^6.6.5",
|
||||
"twig/extra-bundle": "^3.7",
|
||||
"twig/string-extra": "^3.8",
|
||||
"twig/twig": "^3.8.0",
|
||||
"wallabag/php-mobi": "^1.1.1",
|
||||
"symfony/proxy-manager-bridge": "^4.4",
|
||||
"symfony/security-bundle": "4.4.*",
|
||||
"symfony/templating": "4.4.*",
|
||||
"symfony/translation": "4.4.*",
|
||||
"symfony/twig-bundle": "4.4.*",
|
||||
"symfony/validator": "4.4.*",
|
||||
"tecnickcom/tcpdf": "^6.3.0",
|
||||
"twig/extra-bundle": "^3.4",
|
||||
"twig/string-extra": "^3.4",
|
||||
"twig/twig": "^3.4.3",
|
||||
"wallabag/php-mobi": "~1.0",
|
||||
"wallabag/phpepub": "^4.0.10",
|
||||
"willdurand/hateoas": "^3.10",
|
||||
"willdurand/hateoas-bundle": "^2.6"
|
||||
"willdurand/hateoas": "^3.8",
|
||||
"willdurand/hateoas-bundle": "~2.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"dama/doctrine-test-bundle": "^7.1.1",
|
||||
"doctrine/doctrine-fixtures-bundle": "^3.4.5",
|
||||
"ergebnis/composer-normalize": "^2.42",
|
||||
"friendsofphp/php-cs-fixer": "^3.4",
|
||||
"friendsoftwig/twigcs": "^6.1",
|
||||
"m6web/redis-mock": "^5.6",
|
||||
"php-http/mock-client": "^1.6",
|
||||
"phpstan/extension-installer": "^1.3.1",
|
||||
"phpstan/phpstan": "^1.10.58",
|
||||
"phpstan/phpstan-doctrine": "^1.3.62",
|
||||
"phpstan/phpstan-phpunit": "^1.3.15",
|
||||
"phpstan/phpstan-symfony": "^1.3.7",
|
||||
"symfony/browser-kit": "^4.4.44",
|
||||
"symfony/css-selector": "^4.4.44",
|
||||
"symfony/debug-bundle": "^4.4.37",
|
||||
"symfony/maker-bundle": "^1.39.1",
|
||||
"symfony/phpunit-bridge": "^6.4.3",
|
||||
"symfony/var-dumper": "^4.4.47",
|
||||
"symfony/web-profiler-bundle": "^4.4.47",
|
||||
"symfony/web-server-bundle": "^4.4.44"
|
||||
"dama/doctrine-test-bundle": "^7.1",
|
||||
"doctrine/doctrine-fixtures-bundle": "^3.4",
|
||||
"ergebnis/composer-normalize": "^2.28",
|
||||
"friendsofphp/php-cs-fixer": "~3.4",
|
||||
"friendsoftwig/twigcs": "^6.0",
|
||||
"m6web/redis-mock": "^5.0",
|
||||
"php-http/mock-client": "^1.0",
|
||||
"phpstan/extension-installer": "^1.0",
|
||||
"phpstan/phpstan": "^1.8",
|
||||
"phpstan/phpstan-doctrine": "^1.3",
|
||||
"phpstan/phpstan-phpunit": "^1.1",
|
||||
"phpstan/phpstan-symfony": "^1.2",
|
||||
"symfony/browser-kit": "4.4.*",
|
||||
"symfony/css-selector": "4.4.*",
|
||||
"symfony/dotenv": "4.4.*",
|
||||
"symfony/maker-bundle": "^1.18",
|
||||
"symfony/phpunit-bridge": "~6.0",
|
||||
"symfony/stopwatch": "4.4.*",
|
||||
"symfony/web-profiler-bundle": "4.4.*"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/symfony": "*"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-imagick": "To keep GIF animation when downloading image is enabled"
|
||||
@ -183,23 +170,20 @@
|
||||
"prefer-stable": true,
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Wallabag\\": "src/Wallabag/"
|
||||
},
|
||||
"classmap": [
|
||||
"app/AppKernel.php",
|
||||
"app/AppCache.php"
|
||||
]
|
||||
"App\\": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Tests\\": "tests/"
|
||||
"App\\Tests\\": "tests/"
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
"allow-plugins": {
|
||||
"ergebnis/composer-normalize": true,
|
||||
"phpstan/extension-installer": true,
|
||||
"symfony/flex": true,
|
||||
"php-http/discovery": true,
|
||||
"phpstan/extension-installer": true
|
||||
"ergebnis/composer-normalize": true
|
||||
},
|
||||
"bin-dir": "bin",
|
||||
"platform": {
|
||||
@ -208,26 +192,22 @@
|
||||
"sort-packages": true
|
||||
},
|
||||
"extra": {
|
||||
"incenteev-parameters": {
|
||||
"file": "app/config/parameters.yml"
|
||||
},
|
||||
"public-dir": "web",
|
||||
"symfony": {
|
||||
"allow-contrib": true,
|
||||
"docker": false,
|
||||
"require": "4.4.*"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"post-install-cmd": [
|
||||
"@post-cmd"
|
||||
"@auto-scripts"
|
||||
],
|
||||
"post-update-cmd": [
|
||||
"@post-cmd"
|
||||
"@auto-scripts"
|
||||
],
|
||||
"post-cmd": [
|
||||
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
|
||||
"bin/console cache:clear --no-warmup",
|
||||
"bin/console assets:install web --symlink --relative"
|
||||
]
|
||||
"auto-scripts": {
|
||||
"cache:clear": "symfony-cmd",
|
||||
"assets:install %PUBLIC_DIR%": "symfony-cmd"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
3571
composer.lock
generated
23
config/bootstrap.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require dirname(__DIR__) . '/vendor/autoload.php';
|
||||
|
||||
if (!class_exists(Dotenv::class)) {
|
||||
throw new LogicException('Please run "composer require symfony/dotenv" to load the ".env" files configuring the application.');
|
||||
}
|
||||
|
||||
// Load cached env vars if the .env.local.php file exists
|
||||
// Run "composer dump-env prod" to create it (requires symfony/flex >=1.2)
|
||||
if (is_array($env = @include dirname(__DIR__) . '/.env.local.php') && (!isset($env['APP_ENV']) || ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env['APP_ENV']) === $env['APP_ENV'])) {
|
||||
(new Dotenv(false))->populate($env);
|
||||
} else {
|
||||
// load all the .env files
|
||||
(new Dotenv(false))->loadEnv(dirname(__DIR__) . '/.env');
|
||||
}
|
||||
|
||||
$_SERVER += $_ENV;
|
||||
$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) ?: 'dev';
|
||||
$_SERVER['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? 'prod' !== $_SERVER['APP_ENV'];
|
||||
$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = (int) $_SERVER['APP_DEBUG'] || filter_var($_SERVER['APP_DEBUG'], \FILTER_VALIDATE_BOOLEAN) ? '1' : '0';
|
||||
34
config/bundles.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
BabDev\PagerfantaBundle\BabDevPagerfantaBundle::class => ['all' => true],
|
||||
BD\GuzzleSiteAuthenticatorBundle\BDGuzzleSiteAuthenticatorBundle::class => ['all' => true],
|
||||
Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true],
|
||||
Craue\ConfigBundle\CraueConfigBundle::class => ['all' => true],
|
||||
DAMA\DoctrineTestBundle\DAMADoctrineTestBundle::class => ['test' => true],
|
||||
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
|
||||
Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
|
||||
FOS\JsRoutingBundle\FOSJsRoutingBundle::class => ['all' => true],
|
||||
FOS\OAuthServerBundle\FOSOAuthServerBundle::class => ['all' => true],
|
||||
FOS\RestBundle\FOSRestBundle::class => ['all' => true],
|
||||
FOS\UserBundle\FOSUserBundle::class => ['all' => true],
|
||||
KPhoen\RulerZBundle\KPhoenRulerZBundle::class => ['all' => true],
|
||||
Lexik\Bundle\FormFilterBundle\LexikFormFilterBundle::class => ['all' => true],
|
||||
Nelmio\ApiDocBundle\NelmioApiDocBundle::class => ['all' => true],
|
||||
Nelmio\CorsBundle\NelmioCorsBundle::class => ['all' => true],
|
||||
OldSound\RabbitMqBundle\OldSoundRabbitMqBundle::class => ['all' => true],
|
||||
Http\HttplugBundle\HttplugBundle::class => ['all' => true],
|
||||
Scheb\TwoFactorBundle\SchebTwoFactorBundle::class => ['all' => true],
|
||||
Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true],
|
||||
Sentry\SentryBundle\SentryBundle::class => ['prod' => true],
|
||||
Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle::class => ['all' => true],
|
||||
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
|
||||
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
|
||||
Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true],
|
||||
JMS\SerializerBundle\JMSSerializerBundle::class => ['all' => true],
|
||||
Bazinga\Bundle\HateoasBundle\BazingaHateoasBundle::class => ['all' => true],
|
||||
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
|
||||
Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
|
||||
Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true],
|
||||
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
|
||||
];
|
||||
4
config/packages/bazinga_hateoas.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
# For full configuration see https://github.com/willdurand/BazingaHateoasBundle/blob/master/Resources/doc/index.md#reference-configuration
|
||||
bazinga_hateoas:
|
||||
twig_extension:
|
||||
enabled: true
|
||||
19
config/packages/cache.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
framework:
|
||||
cache:
|
||||
# Unique name of your app: used to compute stable namespaces for cache keys.
|
||||
#prefix_seed: your_vendor_name/app_name
|
||||
|
||||
# The "app" cache stores to the filesystem by default.
|
||||
# The data in this cache should persist between deploys.
|
||||
# Other options include:
|
||||
|
||||
# Redis
|
||||
#app: cache.adapter.redis
|
||||
#default_redis_provider: redis://localhost
|
||||
|
||||
# APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues)
|
||||
#app: cache.adapter.apcu
|
||||
|
||||
# Namespaced pools use the above "app" backend by default
|
||||
#pools:
|
||||
#my.dedicated.cache: null
|
||||
3
config/packages/craue_config.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
# define custom entity so we can override length attribute to fix utf8mb4 issue
|
||||
craue_config:
|
||||
entity_name: App\Entity\InternalSetting
|
||||
9
config/packages/dev/framework.yaml
Normal file
@ -0,0 +1,9 @@
|
||||
framework:
|
||||
router:
|
||||
strict_requirements: true
|
||||
profiler:
|
||||
only_exceptions: false
|
||||
|
||||
mailer:
|
||||
# see https://mailcatcher.me/
|
||||
dsn: smtp://127.0.0.1:1025
|
||||
7
config/packages/dev/jsm_serializer.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
jms_serializer:
|
||||
visitors:
|
||||
json_serialization:
|
||||
options:
|
||||
- JSON_PRETTY_PRINT
|
||||
- JSON_UNESCAPED_SLASHES
|
||||
- JSON_PRESERVE_ZERO_FRACTION
|
||||
19
config/packages/dev/monolog.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
monolog:
|
||||
handlers:
|
||||
main:
|
||||
type: stream
|
||||
path: "%kernel.logs_dir%/%kernel.environment%.log"
|
||||
level: debug
|
||||
channels: ["!event"]
|
||||
# uncomment to get logging in your browser
|
||||
# you may have to allow bigger header sizes in your Web server configuration
|
||||
#firephp:
|
||||
# type: firephp
|
||||
# level: info
|
||||
#chromephp:
|
||||
# type: chromephp
|
||||
# level: info
|
||||
console:
|
||||
type: console
|
||||
process_psr_3_messages: false
|
||||
channels: ["!event", "!doctrine", "!console"]
|
||||
3
config/packages/dev/web_profiler.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
web_profiler:
|
||||
toolbar: true
|
||||
intercept_redirects: false
|
||||
34
config/packages/doctrine.yaml
Normal file
@ -0,0 +1,34 @@
|
||||
doctrine:
|
||||
dbal:
|
||||
url: '%env(resolve:DATABASE_URL)%'
|
||||
types:
|
||||
json_array: App\Doctrine\JsonArrayType
|
||||
|
||||
orm:
|
||||
auto_generate_proxy_classes: "%kernel.debug%"
|
||||
auto_mapping: true
|
||||
mappings:
|
||||
App:
|
||||
is_bundle: false
|
||||
type: annotation
|
||||
dir: '%kernel.project_dir%/src/Entity'
|
||||
prefix: 'App\Entity'
|
||||
alias: App
|
||||
|
||||
# doctrine:
|
||||
# dbal:
|
||||
# url: '%env(resolve:DATABASE_URL)%'
|
||||
|
||||
# # IMPORTANT: You MUST configure your server version,
|
||||
# # either here or in the DATABASE_URL env var (see .env file)
|
||||
# #server_version: '14'
|
||||
# orm:
|
||||
# auto_generate_proxy_classes: true
|
||||
# naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
|
||||
# auto_mapping: true
|
||||
# mappings:
|
||||
# App:
|
||||
# is_bundle: false
|
||||
# dir: '%kernel.project_dir%/src/Entity'
|
||||
# prefix: 'App\Entity'
|
||||
# alias: App
|
||||
12
config/packages/doctrine_migrations.yaml
Normal file
@ -0,0 +1,12 @@
|
||||
doctrine_migrations:
|
||||
migrations_paths:
|
||||
# namespace is arbitrary but should be different from App\Migrations
|
||||
# as migrations classes should NOT be autoloaded
|
||||
'DoctrineMigrations': '%kernel.project_dir%/migrations'
|
||||
enable_profiler: false
|
||||
storage:
|
||||
table_storage:
|
||||
table_name: 'migration_versions'
|
||||
version_column_name: 'version'
|
||||
version_column_length: 192
|
||||
executed_at_column_name: 'executed_at'
|
||||
13
config/packages/fos_js_routing.yaml
Normal file
@ -0,0 +1,13 @@
|
||||
fos_js_routing:
|
||||
routes_to_expose:
|
||||
- homepage
|
||||
- starred
|
||||
- archive
|
||||
- all
|
||||
- tag
|
||||
- config
|
||||
- import
|
||||
- developer
|
||||
- howto
|
||||
- fos_user_security_logout
|
||||
- new
|
||||
12
config/packages/fos_oauth_server.yaml
Normal file
@ -0,0 +1,12 @@
|
||||
# Read the documentation: https://github.com/FriendsOfSymfony/FOSOAuthServerBundle/blob/master/Resources/doc/index.md#step-5-configure-fosoauthserverbundle
|
||||
fos_oauth_server:
|
||||
db_driver: orm
|
||||
client_class: App\Entity\Client
|
||||
access_token_class: App\Entity\AccessToken
|
||||
refresh_token_class: App\Entity\RefreshToken
|
||||
auth_code_class: App\Entity\AuthCode
|
||||
service:
|
||||
user_provider: fos_user.user_provider.username_email
|
||||
options:
|
||||
refresh_token_lifetime: "%env(FOS_OAUTH_SERVER_REFRESH_TOKEN_LIFETIME)%"
|
||||
access_token_lifetime: "%env(FOS_OAUTH_SERVER_ACCESS_TOKEN_LIFETIME)%"
|
||||
34
config/packages/fos_rest.yaml
Normal file
@ -0,0 +1,34 @@
|
||||
fos_rest:
|
||||
param_fetcher_listener: true
|
||||
body_listener: true
|
||||
view:
|
||||
mime_types:
|
||||
csv:
|
||||
- 'text/csv'
|
||||
- 'text/plain'
|
||||
pdf:
|
||||
- 'application/pdf'
|
||||
epub:
|
||||
- 'application/epub+zip'
|
||||
mobi:
|
||||
- 'application/x-mobipocket-ebook'
|
||||
view_response_listener: 'force'
|
||||
formats:
|
||||
xml: true
|
||||
json: true
|
||||
txt: true
|
||||
csv: true
|
||||
pdf: true
|
||||
epub: true
|
||||
mobi: true
|
||||
failed_validation: HTTP_BAD_REQUEST
|
||||
routing_loader: false
|
||||
format_listener:
|
||||
enabled: true
|
||||
rules:
|
||||
- { path: "^/api/entries/([0-9]+)/export.(.*)", priorities: ['epub', 'mobi', 'pdf', 'txt', 'csv'], fallback_format: json, prefer_extension: false }
|
||||
- { path: "^/api", priorities: ['json', 'xml'], fallback_format: json, prefer_extension: false }
|
||||
- { path: "^/annotations", priorities: ['json', 'xml'], fallback_format: json, prefer_extension: false }
|
||||
# for an unknown reason, EACH REQUEST goes to FOS\RestBundle\EventListener\FormatListener
|
||||
# so we need to add custom rule for custom api export but also for all other routes of the application...
|
||||
- { path: '^/', priorities: ['text/html', '*/*'], fallback_format: html, prefer_extension: false }
|
||||
12
config/packages/fos_user.yaml
Normal file
@ -0,0 +1,12 @@
|
||||
fos_user:
|
||||
db_driver: orm
|
||||
firewall_name: secured_area
|
||||
user_class: App\Entity\User
|
||||
registration:
|
||||
confirmation:
|
||||
enabled: '%env(bool:FOSUSER_CONFIRMATION)%'
|
||||
from_email:
|
||||
address: '%env(FROM_EMAIL)%'
|
||||
sender_name: wallabag
|
||||
service:
|
||||
mailer: App\Mailer\UserMailer
|
||||
24
config/packages/framework.yaml
Normal file
@ -0,0 +1,24 @@
|
||||
# see https://symfony.com/doc/current/reference/configuration/framework.html
|
||||
framework:
|
||||
translator:
|
||||
enabled: true
|
||||
fallback: "%env(LOCALE)%"
|
||||
default_path: '%kernel.project_dir%/translations'
|
||||
secret: '%env(APP_SECRET)%'
|
||||
router:
|
||||
strict_requirements: ~
|
||||
form: ~
|
||||
csrf_protection: ~
|
||||
validation:
|
||||
enable_annotations: true
|
||||
templating:
|
||||
engines: ['twig']
|
||||
default_locale: "%env(LOCALE)%"
|
||||
trusted_hosts: ~
|
||||
session:
|
||||
# handler_id set to null will use default session handler from php.ini
|
||||
handler_id: session.handler.native_file
|
||||
save_path: "%kernel.project_dir%/var/sessions/%kernel.environment%"
|
||||
fragments: ~
|
||||
http_method_override: true
|
||||
assets: ~
|
||||
10
config/packages/http_discovery.yaml
Normal file
@ -0,0 +1,10 @@
|
||||
services:
|
||||
Psr\Http\Message\RequestFactoryInterface: '@http_discovery.psr17_factory'
|
||||
Psr\Http\Message\ResponseFactoryInterface: '@http_discovery.psr17_factory'
|
||||
Psr\Http\Message\ServerRequestFactoryInterface: '@http_discovery.psr17_factory'
|
||||
Psr\Http\Message\StreamFactoryInterface: '@http_discovery.psr17_factory'
|
||||
Psr\Http\Message\UploadedFileFactoryInterface: '@http_discovery.psr17_factory'
|
||||
Psr\Http\Message\UriFactoryInterface: '@http_discovery.psr17_factory'
|
||||
|
||||
http_discovery.psr17_factory:
|
||||
class: Http\Discovery\Psr17Factory
|
||||
21
config/packages/httplug.yaml
Normal file
@ -0,0 +1,21 @@
|
||||
httplug:
|
||||
clients:
|
||||
wallabag_core:
|
||||
factory: App\Helper\HttpClientFactory
|
||||
config:
|
||||
defaults:
|
||||
timeout: 10
|
||||
plugins: ['httplug.plugin.logger']
|
||||
wallabag_core.entry.download_images:
|
||||
factory: 'httplug.factory.auto'
|
||||
plugins: ['httplug.plugin.logger']
|
||||
wallabag_import.pocket.client:
|
||||
factory: 'httplug.factory.auto'
|
||||
plugins:
|
||||
- 'httplug.plugin.logger'
|
||||
- header_defaults:
|
||||
headers:
|
||||
'content-type': 'application/json'
|
||||
'X-Accept': 'application/json'
|
||||
discovery:
|
||||
client: false
|
||||
9
config/packages/jms_serializer.yaml
Normal file
@ -0,0 +1,9 @@
|
||||
jms_serializer:
|
||||
handlers:
|
||||
# to be removed if we switch to (default) ISO8601 datetime instead of ATOM
|
||||
# see: https://github.com/schmittjoh/JMSSerializerBundle/pull/494
|
||||
datetime:
|
||||
default_format: "Y-m-d\\TH:i:sO" # ATOMjms_serializer:
|
||||
visitors:
|
||||
xml_serialization:
|
||||
format_output: '%kernel.debug%'
|
||||
3
config/packages/kphoen_rulerz.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
kphoen_rulerz:
|
||||
targets:
|
||||
doctrine: true
|
||||
3
config/packages/mailer.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
framework:
|
||||
mailer:
|
||||
dsn: '%env(MAILER_DSN)%'
|
||||
3
config/packages/monolog.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
monolog:
|
||||
channels:
|
||||
- deprecation # Deprecations are logged in the dedicated "deprecation" channel when it exists
|
||||
17
config/packages/nelmio_api_doc.yaml
Normal file
@ -0,0 +1,17 @@
|
||||
nelmio_api_doc:
|
||||
areas: # to filter documented areas
|
||||
path_patterns:
|
||||
- ^/api(?!/doc$) # Accepts routes under /api except /api/doc
|
||||
documentation:
|
||||
info:
|
||||
title: wallabag API documentation
|
||||
description: This is the API documentation of wallabag
|
||||
version: 2.x
|
||||
securityDefinitions:
|
||||
Bearer:
|
||||
type: apiKey
|
||||
description: 'Value: Bearer {jwt}'
|
||||
name: Authorization
|
||||
in: header
|
||||
security:
|
||||
- Bearer: []
|
||||
28
config/packages/nelmio_cors.yaml
Normal file
@ -0,0 +1,28 @@
|
||||
nelmio_cors:
|
||||
defaults:
|
||||
allow_credentials: false
|
||||
allow_origin: []
|
||||
allow_headers: []
|
||||
allow_methods: []
|
||||
expose_headers: []
|
||||
max_age: 0
|
||||
hosts: []
|
||||
#origin_regex: false
|
||||
paths:
|
||||
'^/api/':
|
||||
allow_origin: ['*']
|
||||
allow_headers: ['Authorization','content-type']
|
||||
allow_methods: ['POST', 'PUT', 'PATCH','GET', 'DELETE']
|
||||
max_age: 3600
|
||||
'^/oauth/':
|
||||
allow_origin: ['*']
|
||||
allow_headers: ['Authorization','content-type']
|
||||
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
|
||||
max_age: 3600
|
||||
'^/':
|
||||
#origin_regex: true
|
||||
allow_origin: ['*']
|
||||
allow_headers: ['Authorization','content-type']
|
||||
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
|
||||
max_age: 3600
|
||||
hosts: ['^api\.']
|
||||
148
config/packages/old_sound_rabbit_mq.yaml
Normal file
@ -0,0 +1,148 @@
|
||||
old_sound_rabbit_mq:
|
||||
connections:
|
||||
default:
|
||||
url: '%env(RABBITMQ_URL)%'
|
||||
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_pinboard:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.pinboard'
|
||||
type: topic
|
||||
import_delicious:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.delicious'
|
||||
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_elcurator:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.elcurator'
|
||||
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
|
||||
qos_options: {prefetch_count: 10}
|
||||
import_readability:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.readability'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.readability'
|
||||
callback: wallabag_import.consumer.amqp.readability
|
||||
qos_options: {prefetch_count: 10}
|
||||
import_instapaper:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.instapaper'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.instapaper'
|
||||
callback: wallabag_import.consumer.amqp.instapaper
|
||||
qos_options: {prefetch_count: 10}
|
||||
import_pinboard:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.pinboard'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.pinboard'
|
||||
callback: wallabag_import.consumer.amqp.pinboard
|
||||
qos_options: {prefetch_count: 10}
|
||||
import_delicious:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.delicious'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.delicious'
|
||||
callback: wallabag_import.consumer.amqp.delicious
|
||||
qos_options: {prefetch_count: 10}
|
||||
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
|
||||
qos_options: {prefetch_count: 10}
|
||||
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
|
||||
qos_options: {prefetch_count: 10}
|
||||
import_elcurator:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.elcurator'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.elcurator'
|
||||
callback: wallabag_import.consumer.amqp.elcurator
|
||||
qos_options: {prefetch_count: 10}
|
||||
import_firefox:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.firefox'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.firefox'
|
||||
callback: wallabag_import.consumer.amqp.firefox
|
||||
qos_options: {prefetch_count: 10}
|
||||
import_chrome:
|
||||
connection: default
|
||||
exchange_options:
|
||||
name: 'wallabag.import.chrome'
|
||||
type: topic
|
||||
queue_options:
|
||||
name: 'wallabag.import.chrome'
|
||||
callback: wallabag_import.consumer.amqp.chrome
|
||||
qos_options: {prefetch_count: 10}
|
||||
18
config/packages/prod/doctrine.yaml
Normal file
@ -0,0 +1,18 @@
|
||||
doctrine:
|
||||
orm:
|
||||
auto_generate_proxy_classes: false
|
||||
proxy_dir: '%kernel.build_dir%/doctrine/orm/Proxies'
|
||||
query_cache_driver:
|
||||
type: pool
|
||||
pool: doctrine.system_cache_pool
|
||||
result_cache_driver:
|
||||
type: pool
|
||||
pool: doctrine.result_cache_pool
|
||||
|
||||
framework:
|
||||
cache:
|
||||
pools:
|
||||
doctrine.result_cache_pool:
|
||||
adapter: cache.app
|
||||
doctrine.system_cache_pool:
|
||||
adapter: cache.system
|
||||