Compare commits

..

53 Commits
2.0.6 ... 2.0.8

Author SHA1 Message Date
345a373dc8 Release wallabag 2.0.8 2016-09-07 15:06:48 +02:00
48a692c143 Merge pull request #2271 from wallabag/prepare-208
Prepare wallabag 2.0.8
2016-09-07 14:53:29 +02:00
5bdec0195f Prepare wallabag 2.0.8 2016-09-07 14:27:32 +02:00
94d1dae4ef Update install documentation 2016-09-06 13:43:53 +02:00
2b9c5097d4 Merge pull request #2262 from wallabag/install-check-db-connection
Add a check for the database connection
2016-09-03 13:34:13 +02:00
5070644a12 CS 2016-09-03 11:45:59 +02:00
f62c3faf88 Update test
If the database isn't found when checking for the connection it means, we can connect to the server.
The InstallCommand will create the database later.

Also, when checking for the SQLite connection, Doctrine creates the file (so the database). That's why the test is skipped for SQLite.
2016-09-03 10:34:27 +02:00
001a7bad66 Add a check for the database connection
Checking for the driver isn't enough.
We are now checking if we can etablish a connection to the database before trying to do anything.
By displaying the error from the Exception (in case of error) we hope to reduce issues overload about people getting error with the database
2016-09-03 09:24:34 +02:00
985f5f9d05 Occitan version
Occitan translation, I hope I properly put it where it has to be.
If there reminds other textes to translate, please let me know!
2016-08-27 12:24:18 +02:00
f7de67e26f Merge pull request #2241 from modos189/v2-issue-1991
Fix issue #1991: correction of the height field to add articles
2016-08-26 07:26:42 +02:00
ceebf13fe8 Fix issue #1991: correction of the height field to add articles 2016-08-26 01:13:35 +03:00
bf0d9ef534 Merge pull request #2238 from modos189/v2-improve-view
V2 improve view
2016-08-25 15:55:30 +02:00
538587855a A new version of the plugin tinydot with update on window resize 2016-08-25 16:22:47 +03:00
5aba43d92c Changes in the login form:
* The alignment of the login form centered in WebKit
* Indent after the reference password recovery
2016-08-25 16:09:55 +03:00
c6d77eaf51 Merge pull request #2236 from wallabag/allow-failure-php-7.1
Allow failure for PHP 7.1
2016-08-24 11:39:17 +02:00
ddb49dd931 Allow failure for PHP 7.1
Got tired of `EE/home/travis/build.sh: line 45:  4445 Segmentation fault      (core dumped) phpunit -v` using PHP 7.1.0beta3
2016-08-24 10:49:43 +02:00
a5684f6a23 Merge pull request #2234 from cstuder/patch-1
Fixes mailto link in documentation
2016-08-24 09:11:14 +02:00
cc654b427f Merge pull request #2235 from wallabag/german-doc-config
Add configuration for german documentation
2016-08-24 09:10:55 +02:00
18545173a6 Add configuration for german documentation 2016-08-24 08:53:20 +02:00
cdf405ad8f Fixes mailto link in german translation 2016-08-24 08:43:38 +02:00
cdfeea0a96 Fixes mailto link in french translation 2016-08-24 08:43:17 +02:00
cf967401b0 Fixes mailto link 2016-08-24 08:22:35 +02:00
2f9927404d Merge pull request #2230 from modos189/issue_2055
Cut entries title in card view: continued
2016-08-23 17:24:46 +02:00
28388e15c3 Replacement plugin dotdotdot (6.7 KB) on my tinydot (315 bytes) 2016-08-23 12:58:35 +03:00
d5de909bbc Update SymfonyRequirements 2016-08-23 07:24:00 +02:00
474b086656 Simplify the initialization of the plugin dotdotdot 2016-08-22 23:59:20 +03:00
e32aea53ab Added the jquery library dotdotdot ( http://dotdotdot.frebsite.nl/ ) that allows you to clip a text on the second line and fixed cut entries title in card view 2016-08-22 23:34:44 +03:00
80bb0b7344 Merge pull request #2226 from wallabag/prepare-207
Prepare wallabag 2.0.7
2016-08-22 10:40:24 +02:00
5068544e10 Prepare wallabag 2.0.7 2016-08-22 10:08:21 +02:00
c649d43381 Merge pull request #2222 from wallabag/add-date-on-article-view
Added creation date and reading time on article view
2016-08-22 09:40:21 +02:00
d35ba2c3d6 Display text on baggy
Instead of using icons (which aren't available) display real text for reading time & creation date
2016-08-21 22:22:34 +02:00
4e4e8e9899 Merge pull request #2221 from wallabag/replace-favorite-star
Replaced favorite word/icon with star one
2016-08-21 22:11:20 +02:00
8642f14220 Merge pull request #2224 from wallabag/avoid-exception-import
Avoid breaking import when fetching fail
2016-08-20 14:31:32 +02:00
19d9efab32 Avoid breaking import when fetching fail
graby will throw an Exception in some case (like a bad url, a restricted url or a secured pdf).

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

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

Also, nightly on Travis seems to target PHP 7.2-dev, so I put 7.1 in requirement and moved nightly in allowed failures.
And it seems xdebug isn't shipped with PHP 7.1, so I added a workaround to avoid build to fail when trying to remove xdebug.ini file.
2016-08-17 14:34:39 +02:00
9a5c5c330e Disable autobranch & commit 2016-08-17 12:31:16 +02:00
7dbedfc8a3 Enable Zappr 2016-08-17 12:29:47 +02:00
e49c62fac8 Fix form user display for baggy theme 2016-08-17 11:41:46 +02:00
8f5e220327 Fix form user display when 2FA is disabled 2016-08-17 11:41:46 +02:00
2e16a90339 Merge pull request #2216 from Rurik19/master
Enable CORS headers for OAUTH part
2016-08-16 14:22:43 +02:00
848c2e1b97 Enable CORS headers for OAUTH part 2016-08-12 13:01:53 +05:00
00acc0d006 Changed URL for scrutinizer in README 2016-08-11 20:57:06 +02:00
4b2774f8db Don't cut entries title in card view
Stop cutting titles arbitrary at caracter 42.
2016-05-21 10:39:49 +02:00
52 changed files with 732 additions and 213 deletions

View File

@ -20,8 +20,8 @@ php:
- 5.5
- 5.6
- 7.0
- 7.1
- nightly
- hhvm
env:
- DB=mysql
@ -31,13 +31,31 @@ env:
matrix:
fast_finish: true
include:
# driver for PostgreSQL currently unsupported by HHVM, requires 3rd party dependency
- php: hhvm-3.12
sudo: required
dist: trusty
group: edge
env: DB=mysql
addons:
apt:
packages:
- mysql-server-5.6
- mysql-client-core-5.6
- mysql-client-5.6
services:
- mysql
- php: hhvm-3.12
sudo: required
dist: trusty
group: edge
env: DB=sqlite
- php: 7.0
env: CS_FIXER=run VALIDATE_TRANSLATION_FILE=run DB=sqlite
exclude:
- php: hhvm
env: DB=pgsql # driver for PostgreSQL currently unsupported by HHVM, requires 3rd party dependency
allow_failures:
- php: hhvm
- php: hhvm-3.12
- php: 7.1
- php: nightly
# exclude v1 branches
branches:
@ -45,8 +63,10 @@ branches:
- legacy
before_script:
- if [[ $TRAVIS_PHP_VERSION != hhvm ]]; then echo "memory_limit=-1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; fi;
- if [[ $TRAVIS_PHP_VERSION != hhvm ]]; then phpenv config-rm xdebug.ini; fi;
- PHP=$TRAVIS_PHP_VERSION
- if [[ ! $PHP = hhvm* ]]; then echo "memory_limit=-1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; fi;
# xdebug isn't enable for PHP 7.1
- if [[ ! $PHP = hhvm* ]]; then phpenv config-rm xdebug.ini || echo "xdebug not available"; fi
- composer self-update --no-progress
- if [[ "$DB" = "pgsql" ]]; then psql -c 'create database wallabag_test;' -U postgres; fi;

26
.zappr.yaml Normal file
View File

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

View File

@ -2,6 +2,41 @@
All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
## [2.0.8] - 2016-09-07
### Added
- [#2262](https://github.com/wallabag/wallabag/pull/2262) Added a check for the database connection during installation (Jeremy Benoist)
- [#2235](https://github.com/wallabag/wallabag/pull/2235) Added configuration for german documentation website, [available here](http://doc.wallabag.org/de/latest/) (Nicolas Lœuillet)
### Changed
- [graby](https://github.com/j0k3r/graby/releases/tag/1.4.3) Update Graby version, which now handles ZIP files (Jeremy Benoist)
- [#2230](https://github.com/wallabag/wallabag/pull/2230) Changed title display in card view (Danilow Alexandr)
### Fixed
- [#2234](https://github.com/wallabag/wallabag/pull/2234) Fixed mailto link in documentation (Christian Studer)
- [#2241](https://github.com/wallabag/wallabag/pull/2241) Fixed the height of the "Add new article" field in Chrome (Danilow Alexandr)
- [#2238](https://github.com/wallabag/wallabag/pull/2238) Fixed login page in Qupzilla (Danilow Alexandr)
## [2.0.7] - 2016-08-22
### Added
- [#2222](https://github.com/wallabag/wallabag/pull/2222) Added creation date and reading time on article view (Nicolas Lœuillet)
- [#2134](https://github.com/wallabag/wallabag/pull/2134) Run tests on an uptodate HHVM (Jeremy Benoist)
### Changed
- [#2221](https://github.com/wallabag/wallabag/pull/2221) Replaced favorite word/icon with star one (Nicolas Lœuillet)
### Fixed
- [#2224](https://github.com/wallabag/wallabag/pull/2224) Avoid breaking import when fetching fail (Jeremy Benoist)
- [#2216](https://github.com/wallabag/wallabag/pull/2216), [#2220](https://github.com/wallabag/wallabag/pull/2220) Enable CORS headers for OAUTH part (Rurik19)
- [#2095](https://github.com/wallabag/wallabag/pull/2095) Fix form user display when 2FA is disabled (Nicolas Lœuillet)
## [2.0.6] - 2016-08-10
### Changed

View File

@ -1,5 +1,5 @@
[![Build Status](https://api.travis-ci.org/wallabag/wallabag.svg?branch=master)](https://travis-ci.org/wallabag/wallabag)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/wallabag/wallabag/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/wallabag/wallabag/?branch=v2)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/wallabag/wallabag/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/wallabag/wallabag/?branch=master)
[![Gitter](https://badges.gitter.im/gitterHQ/gitter.svg)](https://gitter.im/wallabag/wallabag)
# What is wallabag?
@ -16,7 +16,7 @@ Then you can install wallabag by executing the following commands:
```
git clone https://github.com/wallabag/wallabag.git
cd wallabag
git checkout 2.0.6
git checkout 2.0.8
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console wallabag:install --env=prod
php bin/console server:run --env=prod

View File

@ -30,7 +30,7 @@ framework:
assets: ~
wallabag_core:
version: 2.0.6
version: 2.0.8
paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
languages:
en: 'English'
@ -151,6 +151,11 @@ nelmio_cors:
#origin_regex: false
paths:
'^/api/':
allow_origin: ['*']
allow_headers: ['X-Custom-Auth']
allow_methods: ['POST', 'PUT', 'PATCH','GET', 'DELETE']
max_age: 3600
'^/oauth/':
allow_origin: ['*']
allow_headers: ['X-Custom-Auth']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']

244
composer.lock generated
View File

@ -457,16 +457,16 @@
},
{
"name": "doctrine/doctrine-bundle",
"version": "1.6.3",
"version": "1.6.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/DoctrineBundle.git",
"reference": "fd51907c6c76acaa8a5234822a4f901c1500afc1"
"reference": "dd40b0a7fb16658cda9def9786992b8df8a49be7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/fd51907c6c76acaa8a5234822a4f901c1500afc1",
"reference": "fd51907c6c76acaa8a5234822a4f901c1500afc1",
"url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/dd40b0a7fb16658cda9def9786992b8df8a49be7",
"reference": "dd40b0a7fb16658cda9def9786992b8df8a49be7",
"shasum": ""
},
"require": {
@ -475,6 +475,7 @@
"jdorn/sql-formatter": "~1.1",
"php": ">=5.3.2",
"symfony/console": "~2.3|~3.0",
"symfony/dependency-injection": "~2.3|~3.0",
"symfony/doctrine-bridge": "~2.2|~3.0",
"symfony/framework-bundle": "~2.3|~3.0"
},
@ -533,7 +534,7 @@
"orm",
"persistence"
],
"time": "2016-04-21 19:55:56"
"time": "2016-08-10 15:35:22"
},
{
"name": "doctrine/doctrine-cache-bundle",
@ -625,24 +626,27 @@
},
{
"name": "doctrine/doctrine-migrations-bundle",
"version": "1.1.1",
"version": "v1.2.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/DoctrineMigrationsBundle.git",
"reference": "303a576e2124efb07ec215e34ea2480b841cf5e4"
"reference": "0b89ee55bceb53c60bc4ba32924ac5053e377abb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/303a576e2124efb07ec215e34ea2480b841cf5e4",
"reference": "303a576e2124efb07ec215e34ea2480b841cf5e4",
"url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/0b89ee55bceb53c60bc4ba32924ac5053e377abb",
"reference": "0b89ee55bceb53c60bc4ba32924ac5053e377abb",
"shasum": ""
},
"require": {
"doctrine/doctrine-bundle": "~1.0",
"doctrine/migrations": "~1.0",
"php": ">=5.3.2",
"doctrine/migrations": "^1.1",
"php": ">=5.4.0",
"symfony/framework-bundle": "~2.3|~3.0"
},
"require-dev": {
"phpunit/phpunit": "~4.8"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
@ -679,7 +683,7 @@
"migrations",
"schema"
],
"time": "2015-11-04 13:45:30"
"time": "2016-06-30 19:26:35"
},
{
"name": "doctrine/inflector",
@ -1223,12 +1227,12 @@
"source": {
"type": "git",
"url": "https://github.com/FriendsOfSymfony/FOSUserBundle.git",
"reference": "07ec96d93f03650e7480e0637fcd51eee6575c12"
"reference": "af6bc6bf4ec303be3a82e1f64b0e6ac9e8ff00c7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/FriendsOfSymfony/FOSUserBundle/zipball/07ec96d93f03650e7480e0637fcd51eee6575c12",
"reference": "07ec96d93f03650e7480e0637fcd51eee6575c12",
"url": "https://api.github.com/repos/FriendsOfSymfony/FOSUserBundle/zipball/af6bc6bf4ec303be3a82e1f64b0e6ac9e8ff00c7",
"reference": "af6bc6bf4ec303be3a82e1f64b0e6ac9e8ff00c7",
"shasum": ""
},
"require": {
@ -1287,20 +1291,20 @@
"keywords": [
"User management"
],
"time": "2016-08-04 10:13:39"
"time": "2016-09-07 09:22:55"
},
{
"name": "gedmo/doctrine-extensions",
"version": "v2.4.20",
"version": "v2.4.22",
"source": {
"type": "git",
"url": "https://github.com/Atlantic18/DoctrineExtensions.git",
"reference": "24cd861d755282f4c9fb1c8f4634ffd6ca12182b"
"reference": "b8188801bafc420b86908ee5229a5e92143ce514"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/24cd861d755282f4c9fb1c8f4634ffd6ca12182b",
"reference": "24cd861d755282f4c9fb1c8f4634ffd6ca12182b",
"url": "https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/b8188801bafc420b86908ee5229a5e92143ce514",
"reference": "b8188801bafc420b86908ee5229a5e92143ce514",
"shasum": ""
},
"require": {
@ -1366,7 +1370,7 @@
"tree",
"uploadable"
],
"time": "2016-07-30 15:51:52"
"time": "2016-08-30 18:42:36"
},
{
"name": "grandt/binstring",
@ -1761,16 +1765,16 @@
},
{
"name": "hoa/compiler",
"version": "3.16.01.14",
"version": "3.16.08.15",
"source": {
"type": "git",
"url": "https://github.com/hoaproject/Compiler.git",
"reference": "a1505e507e8368dbf7a5b490c4a5a90e06d7bd69"
"reference": "774f04e6ab1580392b35cae7d6f8dda165810c19"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hoaproject/Compiler/zipball/a1505e507e8368dbf7a5b490c4a5a90e06d7bd69",
"reference": "a1505e507e8368dbf7a5b490c4a5a90e06d7bd69",
"url": "https://api.github.com/repos/hoaproject/Compiler/zipball/774f04e6ab1580392b35cae7d6f8dda165810c19",
"reference": "774f04e6ab1580392b35cae7d6f8dda165810c19",
"shasum": ""
},
"require": {
@ -1839,7 +1843,7 @@
"trace",
"uniform"
],
"time": "2016-01-14 20:44:59"
"time": "2016-08-15 09:25:24"
},
{
"name": "hoa/consistency",
@ -2132,16 +2136,16 @@
},
{
"name": "hoa/math",
"version": "1.16.05.22",
"version": "1.16.08.29",
"source": {
"type": "git",
"url": "https://github.com/hoaproject/Math.git",
"reference": "f3bcd84f4c6e3ba1c994969bd5163336500f20c8"
"reference": "8be67cc378b043ccdd5896a3f1bb276af032f258"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hoaproject/Math/zipball/f3bcd84f4c6e3ba1c994969bd5163336500f20c8",
"reference": "f3bcd84f4c6e3ba1c994969bd5163336500f20c8",
"url": "https://api.github.com/repos/hoaproject/Math/zipball/8be67cc378b043ccdd5896a3f1bb276af032f258",
"reference": "8be67cc378b043ccdd5896a3f1bb276af032f258",
"shasum": ""
},
"require": {
@ -2193,7 +2197,7 @@
"sampler",
"set"
],
"time": "2016-05-22 14:07:26"
"time": "2016-08-29 13:29:51"
},
{
"name": "hoa/protocol",
@ -2257,16 +2261,16 @@
},
{
"name": "hoa/regex",
"version": "1.16.01.15",
"version": "1.16.09.06",
"source": {
"type": "git",
"url": "https://github.com/hoaproject/Regex.git",
"reference": "e7fb36fdea23ea9fc814a1a68bd0144df1891463"
"reference": "2a787a49cc53a9ea009a1997085da9aff091e918"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hoaproject/Regex/zipball/e7fb36fdea23ea9fc814a1a68bd0144df1891463",
"reference": "e7fb36fdea23ea9fc814a1a68bd0144df1891463",
"url": "https://api.github.com/repos/hoaproject/Regex/zipball/2a787a49cc53a9ea009a1997085da9aff091e918",
"reference": "2a787a49cc53a9ea009a1997085da9aff091e918",
"shasum": ""
},
"require": {
@ -2309,7 +2313,7 @@
"library",
"regex"
],
"time": "2016-01-14 21:10:33"
"time": "2016-09-06 11:08:23"
},
{
"name": "hoa/ruler",
@ -2371,16 +2375,16 @@
},
{
"name": "hoa/stream",
"version": "1.16.01.14",
"version": "1.16.09.06",
"source": {
"type": "git",
"url": "https://github.com/hoaproject/Stream.git",
"reference": "c00b35078ef8c0881b7d2ed533de19fe0aaf9896"
"reference": "f8dec80b6ff3b7898a5604d304ecb73f53d04901"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hoaproject/Stream/zipball/c00b35078ef8c0881b7d2ed533de19fe0aaf9896",
"reference": "c00b35078ef8c0881b7d2ed533de19fe0aaf9896",
"url": "https://api.github.com/repos/hoaproject/Stream/zipball/f8dec80b6ff3b7898a5604d304ecb73f53d04901",
"reference": "f8dec80b6ff3b7898a5604d304ecb73f53d04901",
"shasum": ""
},
"require": {
@ -2428,7 +2432,7 @@
"stream",
"wrapper"
],
"time": "2016-01-14 20:11:37"
"time": "2016-09-06 11:14:23"
},
{
"name": "hoa/ustring",
@ -2599,16 +2603,16 @@
},
{
"name": "htmlawed/htmlawed",
"version": "1.1.19",
"version": "1.1.22",
"source": {
"type": "git",
"url": "https://github.com/kesar/HTMLawed.git",
"reference": "620c38edd57e680260ebd8dd0e98167d97e9a7bf"
"reference": "b270453ba016ee4c6dae585f047d1e4f3cc456a1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/kesar/HTMLawed/zipball/620c38edd57e680260ebd8dd0e98167d97e9a7bf",
"reference": "620c38edd57e680260ebd8dd0e98167d97e9a7bf",
"url": "https://api.github.com/repos/kesar/HTMLawed/zipball/b270453ba016ee4c6dae585f047d1e4f3cc456a1",
"reference": "b270453ba016ee4c6dae585f047d1e4f3cc456a1",
"shasum": ""
},
"require": {
@ -2632,7 +2636,7 @@
"role": "Developer"
}
],
"description": "htmLawed - Process text with HTML markup to make it more compliant with HTML standards and administrative policies",
"description": "htmLawed - Process text with HTML markup to make it more compliant with HTML standards and administrative policies",
"homepage": "http://www.bioinformatics.org/phplabware/internal_utilities/htmLawed/",
"keywords": [
"HTMLtidy",
@ -2641,7 +2645,7 @@
"strip",
"tags"
],
"time": "2015-04-05 17:23:05"
"time": "2016-08-27 18:53:27"
},
{
"name": "incenteev/composer-parameter-handler",
@ -2696,16 +2700,16 @@
},
{
"name": "j0k3r/graby",
"version": "1.4.2",
"version": "1.4.3",
"source": {
"type": "git",
"url": "https://github.com/j0k3r/graby.git",
"reference": "f8ff3e4449fbee1681461550c48dc41efff833c0"
"reference": "8dbc799fac49d9c949a10c61e16cfec120c8dba9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/j0k3r/graby/zipball/f8ff3e4449fbee1681461550c48dc41efff833c0",
"reference": "f8ff3e4449fbee1681461550c48dc41efff833c0",
"url": "https://api.github.com/repos/j0k3r/graby/zipball/8dbc799fac49d9c949a10c61e16cfec120c8dba9",
"reference": "8dbc799fac49d9c949a10c61e16cfec120c8dba9",
"shasum": ""
},
"require": {
@ -2749,20 +2753,20 @@
}
],
"description": "Graby helps you extract article content from web pages",
"time": "2016-07-25 05:12:39"
"time": "2016-09-07 09:28:22"
},
{
"name": "j0k3r/graby-site-config",
"version": "1.0.21",
"version": "1.0.23",
"source": {
"type": "git",
"url": "https://github.com/j0k3r/graby-site-config.git",
"reference": "7db8e98e7e6dd80bf286100e1e5121dd64674805"
"reference": "5db870f5dd880d19bc9330388d97ce43c8ed18fc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/j0k3r/graby-site-config/zipball/7db8e98e7e6dd80bf286100e1e5121dd64674805",
"reference": "7db8e98e7e6dd80bf286100e1e5121dd64674805",
"url": "https://api.github.com/repos/j0k3r/graby-site-config/zipball/5db870f5dd880d19bc9330388d97ce43c8ed18fc",
"reference": "5db870f5dd880d19bc9330388d97ce43c8ed18fc",
"shasum": ""
},
"require": {
@ -2785,7 +2789,7 @@
}
],
"description": "Graby site config files",
"time": "2016-08-01 09:26:59"
"time": "2016-09-07 10:00:08"
},
{
"name": "j0k3r/php-readability",
@ -3044,16 +3048,16 @@
},
{
"name": "jms/serializer",
"version": "1.2.0",
"version": "1.3.1",
"source": {
"type": "git",
"url": "https://github.com/schmittjoh/serializer.git",
"reference": "ef0bfc44272a6439da7355f67904b9678c603e0a"
"reference": "705d0b4633b9c44e6253aa18306b3972282cd3a3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/schmittjoh/serializer/zipball/ef0bfc44272a6439da7355f67904b9678c603e0a",
"reference": "ef0bfc44272a6439da7355f67904b9678c603e0a",
"url": "https://api.github.com/repos/schmittjoh/serializer/zipball/705d0b4633b9c44e6253aa18306b3972282cd3a3",
"reference": "705d0b4633b9c44e6253aa18306b3972282cd3a3",
"shasum": ""
},
"require": {
@ -3070,7 +3074,7 @@
},
"require-dev": {
"doctrine/orm": "~2.1",
"doctrine/phpcr-odm": "^1.3",
"doctrine/phpcr-odm": "^1.3|^2.0",
"jackalope/jackalope-doctrine-dbal": "^1.1.5",
"phpunit/phpunit": "^4.8|^5.0",
"propel/propel1": "~1.7",
@ -3087,7 +3091,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.1-dev"
"dev-master": "1.3-dev"
}
},
"autoload": {
@ -3114,7 +3118,7 @@
"serialization",
"xml"
],
"time": "2016-08-03 12:52:48"
"time": "2016-08-23 17:20:24"
},
{
"name": "jms/serializer-bundle",
@ -4412,24 +4416,26 @@
},
{
"name": "scheb/two-factor-bundle",
"version": "v2.5.2",
"version": "v2.8.0",
"source": {
"type": "git",
"url": "https://github.com/scheb/two-factor-bundle.git",
"reference": "fdf63e7515015045f039bf34502977f6180b28ed"
"reference": "db77c00349d3679eac024a5295c3faa4a7605c55"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/scheb/two-factor-bundle/zipball/fdf63e7515015045f039bf34502977f6180b28ed",
"reference": "fdf63e7515015045f039bf34502977f6180b28ed",
"url": "https://api.github.com/repos/scheb/two-factor-bundle/zipball/db77c00349d3679eac024a5295c3faa4a7605c55",
"reference": "db77c00349d3679eac024a5295c3faa4a7605c55",
"shasum": ""
},
"require": {
"ocramius/proxy-manager": "~1.0|~2.0",
"paragonie/random_compat": "~1.0|~2.0",
"sonata-project/google-authenticator": "~1.0",
"symfony/symfony": "~2.6|~3.0"
},
"require-dev": {
"doctrine/orm": "~2.4,>=2.4.5",
"phpunit/phpunit": ">=4.8,<6.0",
"satooshi/php-coveralls": "~0.6",
"swiftmailer/swiftmailer": ">=4.3,<6.0",
@ -4460,20 +4466,20 @@
"two-factor",
"two-step"
],
"time": "2016-07-28 08:07:15"
"time": "2016-09-05 19:03:16"
},
{
"name": "sensio/distribution-bundle",
"version": "v5.0.7",
"version": "v5.0.9",
"source": {
"type": "git",
"url": "https://github.com/sensiolabs/SensioDistributionBundle.git",
"reference": "a9c4723cbdbc6cf7fbfdfde3c639cb1943f0293a"
"reference": "e5e0d8d06b07864b2752bd865537b0817edf4c5a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/a9c4723cbdbc6cf7fbfdfde3c639cb1943f0293a",
"reference": "a9c4723cbdbc6cf7fbfdfde3c639cb1943f0293a",
"url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/e5e0d8d06b07864b2752bd865537b0817edf4c5a",
"reference": "e5e0d8d06b07864b2752bd865537b0817edf4c5a",
"shasum": ""
},
"require": {
@ -4512,7 +4518,7 @@
"configuration",
"distribution"
],
"time": "2016-06-23 16:11:33"
"time": "2016-09-06 01:05:01"
},
{
"name": "sensio/framework-extra-bundle",
@ -5354,16 +5360,16 @@
},
{
"name": "symfony/symfony",
"version": "v3.1.3",
"version": "v3.1.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/symfony.git",
"reference": "4478f047409028dc6e3ab320590f1247fec7a850"
"reference": "65ca9e4fbdb34f6d463ef77898ca583b101a4162"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/symfony/zipball/4478f047409028dc6e3ab320590f1247fec7a850",
"reference": "4478f047409028dc6e3ab320590f1247fec7a850",
"url": "https://api.github.com/repos/symfony/symfony/zipball/65ca9e4fbdb34f6d463ef77898ca583b101a4162",
"reference": "65ca9e4fbdb34f6d463ef77898ca583b101a4162",
"shasum": ""
},
"require": {
@ -5382,6 +5388,9 @@
"phpdocumentor/reflection-docblock": "<3.0",
"phpdocumentor/type-resolver": "<0.2.0"
},
"provide": {
"psr/cache-implementation": "1.0"
},
"replace": {
"symfony/asset": "self.version",
"symfony/browser-kit": "self.version",
@ -5403,6 +5412,7 @@
"symfony/framework-bundle": "self.version",
"symfony/http-foundation": "self.version",
"symfony/http-kernel": "self.version",
"symfony/inflector": "self.version",
"symfony/intl": "self.version",
"symfony/ldap": "self.version",
"symfony/monolog-bridge": "self.version",
@ -5486,7 +5496,7 @@
"keywords": [
"framework"
],
"time": "2016-07-30 09:31:00"
"time": "2016-09-03 15:28:43"
},
{
"name": "tecnickcom/tcpdf",
@ -5651,16 +5661,16 @@
},
{
"name": "twig/twig",
"version": "v1.24.1",
"version": "v1.24.2",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "3566d311a92aae4deec6e48682dc5a4528c4a512"
"reference": "33093f6e310e6976baeac7b14f3a6ec02f2d79b7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/3566d311a92aae4deec6e48682dc5a4528c4a512",
"reference": "3566d311a92aae4deec6e48682dc5a4528c4a512",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/33093f6e310e6976baeac7b14f3a6ec02f2d79b7",
"reference": "33093f6e310e6976baeac7b14f3a6ec02f2d79b7",
"shasum": ""
},
"require": {
@ -5708,7 +5718,7 @@
"keywords": [
"templating"
],
"time": "2016-05-30 09:11:59"
"time": "2016-09-01 17:50:53"
},
{
"name": "wallabag/php-mobi",
@ -5865,7 +5875,7 @@
"email": "adrien.brault@gmail.com"
},
{
"name": "William Durand",
"name": "William DURAND",
"email": "william.durand1@gmail.com"
}
],
@ -5915,7 +5925,7 @@
],
"authors": [
{
"name": "William Durand",
"name": "William DURAND",
"email": "william.durand1@gmail.com"
}
],
@ -6239,35 +6249,35 @@
},
{
"name": "friendsofphp/php-cs-fixer",
"version": "v1.11.6",
"version": "v1.12.1",
"source": {
"type": "git",
"url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
"reference": "41dc93abd2937a85a3889e28765231d574d2bac8"
"reference": "d33ee60f3d3e6152888b7f3a385f49e5c43bf1bf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/41dc93abd2937a85a3889e28765231d574d2bac8",
"reference": "41dc93abd2937a85a3889e28765231d574d2bac8",
"url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/d33ee60f3d3e6152888b7f3a385f49e5c43bf1bf",
"reference": "d33ee60f3d3e6152888b7f3a385f49e5c43bf1bf",
"shasum": ""
},
"require": {
"ext-tokenizer": "*",
"php": ">=5.3.6",
"sebastian/diff": "~1.1",
"symfony/console": "~2.3|~3.0",
"symfony/event-dispatcher": "~2.1|~3.0",
"symfony/filesystem": "~2.1|~3.0",
"symfony/finder": "~2.1|~3.0",
"symfony/process": "~2.3|~3.0",
"symfony/stopwatch": "~2.5|~3.0"
"php": "^5.3.6 || >=7.0 <7.2",
"sebastian/diff": "^1.1",
"symfony/console": "^2.3 || ^3.0",
"symfony/event-dispatcher": "^2.1 || ^3.0",
"symfony/filesystem": "^2.1 || ^3.0",
"symfony/finder": "^2.1 || ^3.0",
"symfony/process": "^2.3 || ^3.0",
"symfony/stopwatch": "^2.5 || ^3.0"
},
"conflict": {
"hhvm": "<3.9"
},
"require-dev": {
"phpunit/phpunit": "^4.5|^5",
"satooshi/php-coveralls": "^0.7.1"
"satooshi/php-coveralls": "^1.0"
},
"bin": [
"php-cs-fixer"
@ -6293,7 +6303,7 @@
}
],
"description": "A tool to automatically fix PHP code style",
"time": "2016-07-22 06:46:28"
"time": "2016-09-07 06:48:24"
},
{
"name": "phpdocumentor/reflection-common",
@ -6992,23 +7002,23 @@
},
{
"name": "sebastian/environment",
"version": "1.3.7",
"version": "1.3.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
"reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716"
"reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/4e8f0da10ac5802913afc151413bc8c53b6c2716",
"reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716",
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea",
"reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
"php": "^5.3.3 || ^7.0"
},
"require-dev": {
"phpunit/phpunit": "~4.4"
"phpunit/phpunit": "^4.8 || ^5.0"
},
"type": "library",
"extra": {
@ -7038,7 +7048,7 @@
"environment",
"hhvm"
],
"time": "2016-05-17 03:18:57"
"time": "2016-08-18 05:49:44"
},
{
"name": "sebastian/exporter",
@ -7248,16 +7258,16 @@
},
{
"name": "sensio/generator-bundle",
"version": "v3.0.7",
"version": "v3.0.8",
"source": {
"type": "git",
"url": "https://github.com/sensiolabs/SensioGeneratorBundle.git",
"reference": "d1be460925376703a470a3ac6ec034eb7eab3892"
"reference": "3c20d16512f37d2be159eca0411b99a141b90fa4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/d1be460925376703a470a3ac6ec034eb7eab3892",
"reference": "d1be460925376703a470a3ac6ec034eb7eab3892",
"url": "https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/3c20d16512f37d2be159eca0411b99a141b90fa4",
"reference": "3c20d16512f37d2be159eca0411b99a141b90fa4",
"shasum": ""
},
"require": {
@ -7296,20 +7306,20 @@
}
],
"description": "This bundle generates code for you",
"time": "2016-06-20 05:58:05"
"time": "2016-09-06 01:30:19"
},
{
"name": "symfony/phpunit-bridge",
"version": "v3.1.3",
"version": "v3.1.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/phpunit-bridge.git",
"reference": "eeb3bf9a195df7552fdda46f4724a9442d157413"
"reference": "1f4e2059cf4ecae1053b9c3027b3fc548fd077b9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/eeb3bf9a195df7552fdda46f4724a9442d157413",
"reference": "eeb3bf9a195df7552fdda46f4724a9442d157413",
"url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/1f4e2059cf4ecae1053b9c3027b3fc548fd077b9",
"reference": "1f4e2059cf4ecae1053b9c3027b3fc548fd077b9",
"shasum": ""
},
"require": {
@ -7351,7 +7361,7 @@
],
"description": "Symfony PHPUnit Bridge",
"homepage": "https://symfony.com",
"time": "2016-06-29 05:42:25"
"time": "2016-08-19 06:48:39"
},
{
"name": "webmozart/assert",

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

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

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

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

View File

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

View File

@ -54,7 +54,7 @@ Um wallabag selbst zu installieren, musst du die folgenden Kommandos ausführen:
git clone https://github.com/wallabag/wallabag.git
cd wallabag
git checkout 2.0.6
git checkout 2.0.8
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console wallabag:install --env=prod
@ -86,6 +86,8 @@ Führe dieses Kommando aus, um das neueste Paket herunterzuladen und zu entpacke
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
(md5 hash: ``18aadd1003a08eb11f5341b9755029f8``)
Jetzt lese die Dokumentation, um einen Virtualhost zu erstellen, dann greife auf dein wallabag zu.
Wenn du die Datenbankkonfiguration eingestellt hast, MySQL oder PostgreSQL zu nutzen, musst du einen Nutzer über das folgende Kommando erstellen ``php bin/console wallabag:install --env=prod``.

View File

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

View File

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

View File

@ -53,7 +53,7 @@ To install wallabag itself, you must run the following commands:
git clone https://github.com/wallabag/wallabag.git
cd wallabag
git checkout 2.0.6
git checkout 2.0.8
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console wallabag:install --env=prod
@ -85,6 +85,8 @@ Execute this command to download and extract the latest package:
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
(md5 hash of the package: ``18aadd1003a08eb11f5341b9755029f8``)
Now, read the following documentation to create your virtual host, then access your wallabag.
If you changed the database configuration to use MySQL or PostgreSQL, you need to create a user via this command ``php bin/console wallabag:install --env=prod``.

View File

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

View File

@ -12,7 +12,7 @@ Il peut y avoir plusieurs raisons :
Comment puis-je aider pour réparer ça ?
---------------------------------------
- `en nous envoyant un email avec l'URL de l'article <mailto:hello\@wallabag.org>`_
- `en nous envoyant un email avec l'URL de l'article <mailto:hello@wallabag.org>`_
- en essayant de réparer cet article par vous-même :) en créant un fichier pour l'article.
Vous pouvez utiliser `cet outil <http://siteconfig.fivefilters.org/>`__.

View File

@ -51,7 +51,7 @@ Pour installer wallabag, vous devez exécuter ces deux commandes :
git clone https://github.com/wallabag/wallabag.git
cd wallabag
git checkout 2.0.6
git checkout 2.0.8
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console wallabag:install --env=prod
@ -82,6 +82,8 @@ Exécutez cette commande pour télécharger et décompresser l'archive :
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
(hash md5 de l'archive : ``18aadd1003a08eb11f5341b9755029f8``)
Maintenant, lisez la documentation ci-dessous pour crééer un virtual host. Accédez ensuite à votre installation de wallabag.
Si vous avez changé la configuration pour modifier le type de stockage (MySQL ou PostgreSQL), vous devrez vous créer un utilisateur via la commande ``php bin/console wallabag:install --env=prod``.

View File

@ -4,13 +4,13 @@ Mettre à jour wallabag
Mise à jour sur un serveur dédié
--------------------------------
La dernière version de wallabag est publiée à cette adresse : https://www.wallabag.org/pages/download-wallabag.html. Pour mettre à jour votre installation de wallabag, exécutez les commandes suivantes dans votre répertoire d'installation (remplacez ``2.0.3`` par le numéro de la dernière version) :
La dernière version de wallabag est publiée à cette adresse : https://www.wallabag.org/pages/download-wallabag.html. Pour mettre à jour votre installation de wallabag, exécutez les commandes suivantes dans votre répertoire d'installation (remplacez ``2.0.8`` par le numéro de la dernière version) :
::
git fetch origin
git fetch --tags
git checkout 2.0.3
git checkout 2.0.8
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console cache:clear --env=prod
@ -19,12 +19,14 @@ Mise à jour sur un hébergement mutualisé
Effectuez une sauvegarde du fichier ``app/config/parameters.yml``.
Téléchargez la dernière version de wallabag :
Téléchargez la dernière version de wallabag :
.. code-block:: bash
wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
(hash md5 de l'archive : ``18aadd1003a08eb11f5341b9755029f8``)
Décompressez l'archive dans votre répertoire d'installation et remplacez le fichier ``app/config/parameters.yml`` avec le votre.
Si vous utilisez SQLite, vous devez également conserver le contenu du répertoire ``data/``.

View File

@ -72,8 +72,10 @@ class InstallCommand extends ContainerAwareCommand
{
$this->defaultOutput->writeln('<info><comment>Step 1 of 5.</comment> Checking system requirements.</info>');
$fulfilled = true;
$rows = [];
// testing if database driver exists
$fulfilled = true;
$label = '<comment>PDO Driver</comment>';
$status = '<info>OK!</info>';
$help = '';
@ -84,7 +86,23 @@ class InstallCommand extends ContainerAwareCommand
$help = 'Database driver "'.$this->getContainer()->getParameter('database_driver').'" is not installed.';
}
$rows = [];
$rows[] = [$label, $status, $help];
// testing if connection to the database can be etablished
$label = '<comment>Database connection</comment>';
$status = '<info>OK!</info>';
$help = '';
try {
$this->getContainer()->get('doctrine')->getManager()->getConnection()->connect();
} catch (\Exception $e) {
if (false === strpos($e->getMessage(), 'Unknown database')) {
$fulfilled = false;
$status = '<error>ERROR!</error>';
$help = 'Can\'t connect to the database: '.$e->getMessage();
}
}
$rows[] = [$label, $status, $help];
foreach ($this->functionExists as $functionRequired) {
@ -456,7 +474,7 @@ class InstallCommand extends ContainerAwareCommand
}
// custom verification for sqlite, since `getListDatabasesSQL` doesn't work for sqlite
if ('sqlite' == $schemaManager->getDatabasePlatform()->getName()) {
if ('sqlite' === $schemaManager->getDatabasePlatform()->getName()) {
$params = $this->getContainer()->get('doctrine.dbal.default_connection')->getParams();
if (isset($params['path']) && file_exists($params['path'])) {

View File

@ -357,7 +357,7 @@ class EntryController extends Controller
}
/**
* Changes favorite status for an entry.
* Changes starred status for an entry.
*
* @param Request $request
* @param Entry $entry

View File

@ -16,7 +16,7 @@ class StringToListTransformer implements DataTransformerInterface
private $separator;
/**
* @param string $separator The separator used in the list.
* @param string $separator The separator used in the list
*/
public function __construct($separator = ',')
{

View File

@ -21,7 +21,9 @@ class ConfigType extends AbstractType
{
$this->themes = array_combine(
$themes,
array_map(function ($s) { return ucwords(strtolower(str_replace('-', ' ', $s))); }, $themes)
array_map(function ($s) {
return ucwords(strtolower(str_replace('-', ' ', $s)));
}, $themes)
);
$this->languages = $languages;

View File

@ -25,7 +25,7 @@ class RuleBasedTagger
/**
* Add tags from rules defined by the user.
*
* @param Entry $entry Entry to tag.
* @param Entry $entry Entry to tag
*/
public function tag(Entry $entry)
{
@ -49,7 +49,7 @@ class RuleBasedTagger
*
* @param User $user
*
* @return array<Entry> A list of modified entries.
* @return array<Entry> A list of modified entries
*/
public function tagAllForUser(User $user)
{
@ -75,7 +75,7 @@ class RuleBasedTagger
/**
* Fetch a tag.
*
* @param string $label The tag's label.
* @param string $label The tag's label
*
* @return Tag
*/

View File

@ -52,6 +52,7 @@ body {
body.login main {
padding: 0;
min-height: 100vh;
}
.border-bottom {
@ -206,6 +207,10 @@ nav input {
display: none;
}
.input-field.nav-panel-add, .input-field.nav-panel-add form {
height: 100%;
}
/* ==========================================================================
2 = Side-nav
========================================================================== */
@ -285,6 +290,12 @@ main ul.row {
.card .card-content .card-title {
line-height: 32px;
max-height: 64px;
display: block;
}
.card .card-content i.right, .card .card-reveal i.right {
margin-left: 0;
}
.card .card-content .estimatedTime {

View File

@ -0,0 +1,103 @@
/*
* jQuery tinydot 0.2.0
*
* Copyright (c) Alexander Danilov
* modos189.ru
*
* Plugin website:
* tinydot.modos189.ru
*
* Licensed under the MIT license.
* http://en.wikipedia.org/wiki/MIT_License
*/
(function( $, undef )
{
if ( $.fn.tinydot )
{
return;
}
$.fn.tinydot = function( o ) {
var $dot = this;
$dot.child = getChildOrDie($dot);
$dot.orgContent = $($dot.child).html();
ellipsis( $dot );
$dot.watch = function()
{
$(window).on('resize', function(){
if ( watchInt )
{
clearInterval( watchInt );
}
watchInt = setTimeout(
function()
{
reinitialize($dot);
}, 100
);
});
return $dot;
};
var opts = $.extend( true, {}, $.fn.tinydot.defaults, o ),
watchInt = null;
if ( opts.watch )
{
$dot.watch();
}
}
// public
$.fn.tinydot.defaults = {
'watch' : false
};
function getChildOrDie( $elem )
{
var childrens = $elem.children();
if (childrens.length == 0) {
// create children
var data = $($elem).html();
$elem.html('');
$elem.append('<span />');
return $elem.children('span').html(data);
} else {
return childrens[0];
}
}
function reinitialize( $elem )
{
$($elem.child).html($elem.orgContent);
ellipsis( $elem );
}
function ellipsis( $elem ) {
var divh=$($elem).height();
while ($($elem.child).outerHeight()>divh) {
$($elem.child).html(function (index, html) {
return html.replace(/\W*\s(\S)*$/, '...');
});
}
}
})( jQuery );
jQuery(document).ready(function($) {
//We only invoke jQuery.tinydot on elements that have dot-ellipsis class
$(".dot-ellipsis").each(function(){
//Checking if update on window resize required
var watch_window=$(this).hasClass("dot-resize-update");
//Invoking jQuery.tinydot
var x = new Object();
if (watch_window)
x.watch='window';
$(this).tinydot(x);
});
});

View File

@ -0,0 +1 @@
!function(a,b){function c(b){var c=b.children();if(0==c.length){var d=a(b).html();return b.html(""),b.append("<span />"),b.children("span").html(d)}return c[0]}function d(b){a(b.child).html(b.orgContent),e(b)}function e(b){for(var c=a(b).height();a(b.child).outerHeight()>c;)a(b.child).html(function(a,b){return b.replace(/\W*\s(\S)*$/,"...")})}a.fn.tinydot||(a.fn.tinydot=function(b){var f=this;f.child=c(f),f.orgContent=a(f.child).html(),e(f),f.watch=function(){return a(window).on("resize",function(){h&&clearInterval(h),h=setTimeout(function(){d(f)},100)}),f};var g=a.extend(!0,{},a.fn.tinydot.defaults,b),h=null;g.watch&&f.watch()},a.fn.tinydot.defaults={watch:!1})}(jQuery),jQuery(document).ready(function(a){a(".dot-ellipsis").each(function(){var b=a(this).hasClass("dot-resize-update"),c=new Object;b&&(c.watch="window"),a(this).tinydot(c)})});

View File

@ -144,6 +144,8 @@ entry:
reading_time: 'estimeret læsetid'
reading_time_minutes: 'estimeret læsetid: %readingTime% min'
reading_time_less_one_minute: 'estimeret læsetid: <small class="inferieur">&lt;</small> 1 min'
reading_time_minutes_short: '%readingTime% min'
reading_time_less_one_minute_short: '<small class="inferieur">&lt;</small> 1 min'
original_article: 'original'
toogle_as_read: 'Marker som læst'
toogle_as_star: 'Skift favoritstatus'
@ -176,7 +178,7 @@ entry:
back_to_homepage: 'Tilbage'
set_as_read: 'Marker som læst'
# set_as_unread: 'Mark as unread'
set_as_favorite: 'Marker som favorit'
set_as_starred: 'Marker som favorit'
view_original_article: 'Originalartikel'
# re_fetch_content: 'Re-fetch content'
delete: 'Slet'
@ -191,6 +193,7 @@ entry:
edit_title: 'Rediger titel'
original_article: 'original'
# annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations'
created_at: 'Oprettelsesdato'
new:
page_title: 'Gem ny artikel'
placeholder: 'http://website.com'

View File

@ -144,6 +144,8 @@ entry:
reading_time: 'geschätzte Lesezeit'
reading_time_minutes: 'geschätzte Lesezeit: %readingTime% min'
reading_time_less_one_minute: 'geschätzte Lesezeit: <small class="inferieur">&lt;</small> 1 min'
reading_time_minutes_short: '%readingTime% min'
reading_time_less_one_minute_short: '<small class="inferieur">&lt;</small> 1 min'
original_article: 'original'
toogle_as_read: 'Gelesen-Status ändern'
toogle_as_star: 'Favoriten-Status ändern'
@ -176,7 +178,7 @@ entry:
back_to_homepage: 'Zurück'
set_as_read: 'Als gelesen markieren'
set_as_unread: 'Als ungelesen markieren'
set_as_favorite: 'Favorisieren'
set_as_starred: 'Favorisieren'
view_original_article: 'Original-Artikel'
re_fetch_content: 'Inhalt neu laden'
delete: 'Löschen'
@ -191,6 +193,7 @@ entry:
edit_title: 'Titel ändern'
original_article: 'original'
annotations_on_the_entry: '{0} Keine Anmerkungen|{1} Eine Anmerkung|]1,Inf[ %nbAnnotations% Anmerkungen'
created_at: 'Erstellungsdatum'
new:
page_title: 'Neuen Artikel speichern'
placeholder: 'https://website.de'

View File

@ -144,9 +144,11 @@ entry:
reading_time: 'estimated reading time'
reading_time_minutes: 'estimated reading time: %readingTime% min'
reading_time_less_one_minute: 'estimated reading time: <small class="inferieur">&lt;</small> 1 min'
reading_time_minutes_short: '%readingTime% min'
reading_time_less_one_minute_short: '<small class="inferieur">&lt;</small> 1 min'
original_article: 'original'
toogle_as_read: 'Toggle mark as read'
toogle_as_star: 'Toggle favorite'
toogle_as_star: 'Toggle starred'
delete: 'Delete'
export_title: 'Export'
filters:
@ -176,7 +178,7 @@ entry:
back_to_homepage: 'Back'
set_as_read: 'Mark as read'
set_as_unread: 'Mark as unread'
set_as_favorite: 'Favorite'
set_as_starred: 'Toggle starred'
view_original_article: 'Original article'
re_fetch_content: 'Re-fetch content'
delete: 'Delete'
@ -191,6 +193,7 @@ entry:
edit_title: 'Edit title'
original_article: 'original'
annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations'
created_at: 'Creation date'
new:
page_title: 'Save new entry'
placeholder: 'http://website.com'

View File

@ -144,6 +144,8 @@ entry:
reading_time: 'tiempo estimado de lectura'
reading_time_minutes: 'tiempo estimado de lectura: %readingTime% min'
reading_time_less_one_minute: 'tiempo estimado de lectura: <small class="inferieur">&lt;</small> 1 min'
reading_time_minutes_short: '%readingTime% min'
reading_time_less_one_minute_short: '<small class="inferieur">&lt;</small> 1 min'
original_article: 'original'
toogle_as_read: 'Marcar como leído/ no leído'
toogle_as_star: 'Marcar como favorito/ no favorito'
@ -176,7 +178,7 @@ entry:
back_to_homepage: 'Regrese a la página principal'
set_as_read: 'Marcar como leído'
set_as_unread: 'Marcar como no leído'
set_as_favorite: 'Marcar como favorito'
set_as_starred: 'Marcar como favorito'
view_original_article: 'Artículo original'
re_fetch_content: 'Redescargar el contenido'
delete: 'Suprimir'
@ -191,6 +193,7 @@ entry:
edit_title: 'Modificar el título'
original_article: 'original'
annotations_on_the_entry: '{0} Sin anotaciones|{1} Una anotación|]1,Inf[ %nbAnnotations% anotaciones'
created_at: 'Fecha de creación'
new:
page_title: 'Guardar un nuevo artículo'
placeholder: 'http://website.com'

View File

@ -144,6 +144,8 @@ entry:
reading_time: 'زمان تخمینی برای خواندن'
reading_time_minutes: 'زمان تخمینی برای خواندن: %readingTime% min'
reading_time_less_one_minute: 'زمان تخمینی برای خواندن: <small class="inferieur">&lt;</small> 1 min'
reading_time_minutes_short: '%readingTime% min'
reading_time_less_one_minute_short: '<small class="inferieur">&lt;</small> 1 min'
original_article: 'original'
toogle_as_read: 'خوانده‌شده/خوانده‌نشده'
toogle_as_star: 'برگزیده/نابرگزیده'
@ -176,7 +178,7 @@ entry:
back_to_homepage: 'بازگشت'
set_as_read: 'خوانده‌شده'
set_as_unread: 'به عنوان خوانده‌نشده علامت بزن'
set_as_favorite: 'برگزیده'
set_as_starred: 'برگزیده'
view_original_article: 'مقالهٔ اصلی'
re_fetch_content: 'مقاله‌ها را دوباره دریافت کن'
delete: 'پاک کردن'
@ -191,6 +193,7 @@ entry:
edit_title: 'ویرایش عنوان'
original_article: 'اصلی'
annotations_on_the_entry: '{0} بدون حاشیه|{1} یک حاشیه|]1,Inf[ %nbحاشیه% annotations'
created_at: 'زمان ساخت'
new:
page_title: 'ذخیرهٔ مقالهٔ تازه'
placeholder: 'http://website.com'

View File

@ -144,6 +144,8 @@ entry:
reading_time: 'durée de lecture'
reading_time_minutes: 'durée de lecture: %readingTime% min'
reading_time_less_one_minute: 'durée de lecture: <small class="inferieur">&lt;</small> 1 min'
reading_time_minutes_short: '%readingTime% min'
reading_time_less_one_minute_short: '<small class="inferieur">&lt;</small> 1 min'
original_article: 'original'
toogle_as_read: 'Marquer comme lu/non lu'
toogle_as_star: 'Marquer comme favori'
@ -176,7 +178,7 @@ entry:
back_to_homepage: 'Retour'
set_as_read: 'Marquer comme lu'
set_as_unread: 'Marquer comme non lu'
set_as_favorite: 'Mettre en favori'
set_as_starred: 'Mettre en favori'
view_original_article: 'Article original'
re_fetch_content: 'Recharger le contenu'
delete: 'Supprimer'
@ -191,6 +193,7 @@ entry:
edit_title: 'Modifier le titre'
original_article: 'original'
annotations_on_the_entry: '{0} Aucune annotation|{1} Une annotation|]1,Inf[ %nbAnnotations% annotations'
created_at: 'Date de création'
new:
page_title: 'Sauvegarder un nouvel article'
placeholder: 'http://website.com'

View File

@ -144,6 +144,8 @@ entry:
reading_time: 'tempo di lettura stimato'
reading_time_minutes: 'tempo di lettura stimato: %readingTime% min'
reading_time_less_one_minute: 'tempo di lettura stimato: <small class="inferieur">&lt;</small> 1 min'
reading_time_minutes_short: '%readingTime% min'
reading_time_less_one_minute_short: '<small class="inferieur">&lt;</small> 1 min'
original_article: 'originale'
toogle_as_read: 'Segna come da leggere'
toogle_as_star: 'Segna come non preferito'
@ -175,7 +177,7 @@ entry:
back_to_homepage: 'Indietro'
set_as_read: 'Segna come già letto'
set_as_unread: 'Segna come da leggere'
set_as_favorite: 'Segna come preferito'
set_as_starred: 'Segna come preferito'
view_original_article: 'Contenuto originale'
re_fetch_content: 'Ri-ottieni pagina'
delete: 'Elimina'
@ -190,6 +192,7 @@ entry:
edit_title: 'Modifica titolo'
original_article: 'originale'
annotations_on_the_entry: '{0} Nessuna annotazione|{1} Una annotazione|]1,Inf[ %nbAnnotations% annotazioni'
created_at: 'Data di creazione'
new:
page_title: 'Salva un nuovo contenuto'
placeholder: 'http://website.com'

View File

@ -144,6 +144,8 @@ entry:
reading_time: 'durada de lectura'
reading_time_minutes: 'durada de lectura : %readingTime% min'
reading_time_less_one_minute: 'durada de lectura : <small class="inferieur">&lt;</small> 1 min'
reading_time_minutes_short: '%readingTime% min'
reading_time_less_one_minute_short: '<small class="inferieur">&lt;</small> 1 min'
original_article: 'original'
toogle_as_read: 'Marcar coma legit/pas legit'
toogle_as_star: 'Marcar coma favorit'
@ -176,7 +178,7 @@ entry:
back_to_homepage: 'Tornar'
set_as_read: 'Marcar coma legit'
set_as_unread: 'Marcar coma pas legit'
set_as_favorite: 'Metre en favori'
set_as_starred: 'Metre en favori'
view_original_article: 'Article original'
re_fetch_content: 'Tornar cargar lo contengut'
delete: 'Suprimir'
@ -191,6 +193,7 @@ entry:
edit_title: 'Modificar lo títol'
original_article: 'original'
annotations_on_the_entry: "{0} Pas cap d'anotacion|{1} Una anotacion|]1,Inf[ %nbAnnotations% anotacions"
created_at: 'Data de creacion'
new:
page_title: 'Enregistrar un novèl article'
placeholder: 'http://website.com'

View File

@ -144,6 +144,8 @@ entry:
reading_time: 'szacunkowy czas czytania'
reading_time_minutes: 'szacunkowy czas czytania: %readingTime% min'
reading_time_less_one_minute: 'szacunkowy czas czytania: <small class="inferieur">&lt;</small> 1 min'
reading_time_minutes_short: '%readingTime% min'
reading_time_less_one_minute_short: '<small class="inferieur">&lt;</small> 1 min'
original_article: 'oryginał'
toogle_as_read: 'Oznacz jako przeczytane'
toogle_as_star: 'Oznacz jako ulubione'
@ -176,7 +178,7 @@ entry:
back_to_homepage: 'Cofnij'
set_as_read: 'Oznacz jako przeczytane'
set_as_unread: 'Oznacz jako nieprzeczytane'
set_as_favorite: 'Ulubione'
set_as_starred: 'Ulubione'
view_original_article: 'Oryginalny artykuł'
re_fetch_content: 'Pobierz ponownie treść'
delete: 'Usuń'
@ -191,6 +193,7 @@ entry:
edit_title: 'Edytuj tytuł'
original_article: 'oryginalny'
annotations_on_the_entry: '{0} Nie ma adnotacji |{1} Jedna adnotacja |]1,Inf[ %nbAnnotations% adnotacji'
created_at: 'Czas stworzenia'
new:
page_title: 'Zapisz nowy wpis'
placeholder: 'http://website.com'

View File

@ -144,6 +144,8 @@ entry:
reading_time: 'timp estimat de citire'
reading_time_minutes: 'timp estimat de citire: %readingTime% min'
reading_time_less_one_minute: 'timp estimat de citire: <small class="inferieur">&lt;</small> 1 min'
reading_time_minutes_short: '%readingTime% min'
reading_time_less_one_minute_short: '<small class="inferieur">&lt;</small> 1 min'
original_article: 'original'
toogle_as_read: 'Comută marcat ca citit'
toogle_as_star: 'Comută marcat ca favorit'
@ -176,7 +178,7 @@ entry:
back_to_homepage: 'Înapoi'
set_as_read: 'Marchează ca citit'
# set_as_unread: 'Mark as unread'
set_as_favorite: 'Favorit'
set_as_starred: 'Favorit'
view_original_article: 'Articol original'
# re_fetch_content: 'Re-fetch content'
delete: 'Șterge'
@ -191,6 +193,7 @@ entry:
edit_title: 'Editează titlul'
original_article: 'original'
# annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations'
created_at: 'Data creării'
new:
page_title: 'Salvează un nou articol'
placeholder: 'http://website.com'

View File

@ -144,6 +144,8 @@ entry:
reading_time: 'tahmini okuma süresi'
reading_time_minutes: 'tahmini okuma süresi: %readingTime% min'
reading_time_less_one_minute: 'tahmini okuma süresi: <small class="inferieur">&lt;</small> 1 min'
reading_time_minutes_short: '%readingTime% min'
reading_time_less_one_minute_short: '<small class="inferieur">&lt;</small> 1 min'
original_article: 'orijinal'
toogle_as_read: 'Okundu/okunmadı olarak işaretle'
toogle_as_star: 'Favorilere ekle/çıkar'
@ -176,7 +178,7 @@ entry:
back_to_homepage: 'Back'
set_as_read: 'Okundu olarak işaretle'
set_as_unread: 'Okunmadı olarak işaretle'
set_as_favorite: 'Favorilere ekle/çıkar'
set_as_starred: 'Favorilere ekle/çıkar'
view_original_article: 'Orijinal makale'
re_fetch_content: 'İçeriği yenile'
delete: 'Sil'
@ -191,6 +193,7 @@ entry:
edit_title: 'Başlığı düzenle'
original_article: 'orijinal'
# annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %nbAnnotations% annotations'
created_at: 'Oluşturulma tarihi'
new:
page_title: 'Yeni makaleyi kaydet'
placeholder: 'http://website.com'

View File

@ -134,7 +134,8 @@
</fieldset>
{% endif %}
{{ form_rest(form.user) }}
{{ form_widget(form.user._token) }}
{{ form_widget(form.user.save) }}
</form>
<h2>{{ 'config.tab_menu.password'|trans }}</h2>

View File

@ -14,7 +14,7 @@
<li><a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool link icon icon-link"><span>{{ entry.domainName|removeWww }}</span></a></li>
<li><a title="{{ 'entry.view.left_menu.re_fetch_content'|trans }}" class="tool icon icon-reload" href="{{ path('reload_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.re_fetch_content'|trans }}</span></a></li>
<li><a title="{% if entry.isArchived == 0 %}{{ 'entry.view.left_menu.set_as_read'|trans }}{% else %}{{ 'entry.view.left_menu.set_as_unread'|trans }}{% endif %}" class="tool icon icon-check {% if entry.isArchived == 0 %}archive-off{% else %}archive{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"><span>{% if entry.isArchived == 0 %}{{ 'entry.view.left_menu.set_as_read'|trans }}{% else %}{{ 'entry.view.left_menu.set_as_unread'|trans }}{% endif %}</span></a></li>
<li><a title="{{ 'entry.view.left_menu.set_as_favorite'|trans }}" class="tool icon icon-star {% if entry.isStarred == 0 %}fav-off{% else %}fav{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.set_as_favorite'|trans }}</span></a></li>
<li><a title="{{ 'entry.view.left_menu.set_as_starred'|trans }}" class="tool icon icon-star {% if entry.isStarred == 0 %}fav-off{% else %}fav{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.set_as_starred'|trans }}</span></a></li>
<li><a id="nav-btn-add-tag" title="{{ 'entry.view.left_menu.add_a_tag'|trans }}"><span>{{ 'entry.view.left_menu.add_a_tag'|trans }}</span></a></li>
<li><a title="{{ 'entry.view.left_menu.delete'|trans }}" class="tool delete icon icon-trash" href="{{ path('delete_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.delete'|trans }}</span></a></li>
{% if craue_setting('share_twitter') %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter icon icon-twitter" title="Tweet"><span>Tweet</span></a></li>{% endif %}
@ -29,6 +29,19 @@
<li><a href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&amp;body={{ entry.url|url_encode }}" title="{{ 'entry.view.left_menu.problem.label'|trans }}" class="tool bad-display icon icon-delete"><span>{{ 'entry.view.left_menu.problem.label'|trans }}</span></a></li>
</ul>
</div>
<div class="link mdi-action-today">
{{ 'entry.view.created_at'|trans }}: {{ entry.createdAt|date('Y-m-d') }}
</div>
<div class="link mdi-action-query-builder">
{% set readingTime = entry.readingTime / app.user.config.readingSpeed %}
{% if readingTime > 0 %}
{{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': readingTime|round})|capitalize }}
{% else %}
{{ 'entry.list.reading_time_less_one_minute'|trans|raw }}
{% endif %}
</div>
{% set nbAnnotations = entry.annotations | length %}
<span class="tool link mdi-communication-comment"> {{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span>
<aside class="tags">
@ -72,7 +85,7 @@
$("body").css("cursor", "auto");
});*/
// toggle favorite property of current article
// toggle starred property of current article
/* $('#setFav').click(function(){
$("body").css("cursor", "wait");
$.ajax( { url: '{{ path('star_entry', { 'id': entry.id }) }}' }).done(

View File

@ -158,7 +158,7 @@
{% endif %}
{{ form_widget(form.user.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form.user) }}
{{ form_widget(form.user._token) }}
</form>
</div>

View File

@ -35,7 +35,7 @@
<i class="card-title grey-text text-darken-4 activator mdi-navigation-more-horiz right"></i>
{% endif %}
<span class="card-title"><a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title|raw }}">{{ entry.title|striptags|slice(0, 42)|raw }}</a></span>
<span class="card-title dot-ellipsis dot-resize-update"><a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title|raw }}">{{ entry.title|striptags|raw }}</a></span>
<div class="estimatedTime grey-text">
<span class="tool reading-time">
@ -77,7 +77,7 @@
<ul class="tools links right">
<li>
<a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool grey-text {% if entry.isArchived == 0 %}mdi-action-done{% else %}mdi-content-redo{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"></a>
<a title="{{ 'entry.list.toogle_as_star'|trans }}" class="tool grey-text {% if entry.isStarred == 0 %}mdi-action-favorite-outline{% else %}mdi-action-favorite{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"></a>
<a title="{{ 'entry.list.toogle_as_star'|trans }}" class="tool grey-text {% if entry.isStarred == 0 %}mdi-toggle-star-outline{% else %}mdi-toggle-star{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"></a>
<a title="{{ 'entry.list.delete'|trans }}" class="tool grey-text delete mdi-action-delete " href="{{ path('delete_entry', { 'id': entry.id }) }}"></a>
</li>
</ul>

View File

@ -24,8 +24,8 @@
</a>
</li>
<li>
<a class="waves-effect" title="{{ 'entry.view.left_menu.set_as_favorite'|trans }}" href="{{ path('star_entry', { 'id': entry.id }) }}" id="setFav">
<i class="{% if entry.isStarred == 0 %}mdi-action-favorite-outline{% else %}mdi-action-favorite{% endif %} small"></i>
<a class="waves-effect" title="{{ 'entry.view.left_menu.set_as_starred'|trans }}" href="{{ path('star_entry', { 'id': entry.id }) }}" id="setFav">
<i class="{% if entry.isStarred == 0 %}mdi-toggle-star-outline{% else %}mdi-toggle-star{% endif %} small"></i>
</a>
</li>
<li>
@ -70,9 +70,9 @@
</li>
<li class="bold hide-on-med-and-down">
<a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.set_as_favorite'|trans }}" href="{{ path('star_entry', { 'id': entry.id }) }}" id="setFav">
<i class="{% if entry.isStarred == 0 %}mdi-action-favorite-outline{% else %}mdi-action-favorite{% endif %} small"></i>
<span>{{ 'entry.view.left_menu.set_as_favorite'|trans }}</span>
<a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.set_as_starred'|trans }}" href="{{ path('star_entry', { 'id': entry.id }) }}" id="setFav">
<i class="{% if entry.isStarred == 0 %}mdi-toggle-star-outline{% else %}mdi-toggle-star{% endif %} small"></i>
<span>{{ 'entry.view.left_menu.set_as_starred'|trans }}</span>
</a>
<div class="collapsible-body"></div>
</li>
@ -193,6 +193,15 @@
<h1>{{ entry.title|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{{ 'entry.view.edit_title'|trans }}">✎</a></h1>
</header>
<aside>
<span class="link mdi-action-today" title="{{ 'entry.view.created_at'|trans }}"> {{ entry.createdAt|date('Y-m-d') }}</span>
{% set readingTime = entry.readingTime / app.user.config.readingSpeed %}
<span class="link mdi-action-query-builder">
{% if readingTime > 0 %}
{{ 'entry.list.reading_time_minutes_short'|trans({'%readingTime%': readingTime|round}) }}
{% else %}
{{ 'entry.list.reading_time_less_one_minute_short'|trans|raw }}
{% endif %}
</span>
<a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool link mdi-content-link"> <span>{{ entry.domainName|removeWww }}</span></a>
<span class="tool link mdi-communication-comment"> {{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span>
<div id="list">

View File

@ -11,6 +11,7 @@
{% block scripts %}
{{ parent() }}
<script src="{{ asset('bundles/wallabagcore/themes/material/js/jquery.tinydot.min.js') }}"></script>
<script src="{{ asset('bundles/wallabagcore/themes/material/js/materialize.min.js') }}"></script>
<script src="{{ asset('bundles/wallabagcore/themes/material/js/init.js') }}"></script>
{% endblock %}

View File

@ -0,0 +1,47 @@
<?php
namespace Wallabag\ImportBundle\Import;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use Doctrine\ORM\EntityManager;
use Wallabag\CoreBundle\Helper\ContentProxy;
use Wallabag\CoreBundle\Entity\Entry;
abstract class AbstractImport implements ImportInterface
{
protected $em;
protected $logger;
protected $contentProxy;
public function __construct(EntityManager $em, ContentProxy $contentProxy)
{
$this->em = $em;
$this->logger = new NullLogger();
$this->contentProxy = $contentProxy;
}
public function setLogger(LoggerInterface $logger)
{
$this->logger = $logger;
}
/**
* Fetch content from the ContentProxy (using graby).
* If it fails return false instead of the updated entry.
*
* @param Entry $entry Entry to update
* @param string $url Url to grab content for
* @param array $content An array with AT LEAST keys title, html, url, language & content_type to skip the fetchContent from the url
*
* @return Entry|false
*/
protected function fetchContent(Entry $entry, $url, array $content = [])
{
try {
return $this->contentProxy->updateEntry($entry, $url, $content);
} catch (\Exception $e) {
return false;
}
}
}

View File

@ -2,7 +2,6 @@
namespace Wallabag\ImportBundle\Import;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use Doctrine\ORM\EntityManager;
use GuzzleHttp\Client;
@ -12,12 +11,9 @@ use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\CoreBundle\Helper\ContentProxy;
use Craue\ConfigBundle\Util\Config;
class PocketImport implements ImportInterface
class PocketImport extends AbstractImport
{
private $user;
private $em;
private $contentProxy;
private $logger;
private $client;
private $consumerKey;
private $skippedEntries = 0;
@ -34,11 +30,6 @@ class PocketImport implements ImportInterface
$this->logger = new NullLogger();
}
public function setLogger(LoggerInterface $logger)
{
$this->logger = $logger;
}
/**
* {@inheritdoc}
*/
@ -219,14 +210,20 @@ class PocketImport implements ImportInterface
}
$entry = new Entry($this->user);
$entry = $this->contentProxy->updateEntry($entry, $url);
$entry = $this->fetchContent($entry, $url);
// jump to next entry in case of problem while getting content
if (false === $entry) {
++$this->skippedEntries;
continue;
}
// 0, 1, 2 - 1 if the item is archived - 2 if the item should be deleted
if ($pocketEntry['status'] == 1 || $this->markAsRead) {
$entry->setArchived(true);
}
// 0 or 1 - 1 If the item is favorited
// 0 or 1 - 1 If the item is starred
if ($pocketEntry['favorite'] == 1) {
$entry->setStarred(true);
}

View File

@ -2,19 +2,12 @@
namespace Wallabag\ImportBundle\Import;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use Doctrine\ORM\EntityManager;
use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\UserBundle\Entity\User;
use Wallabag\CoreBundle\Helper\ContentProxy;
abstract class WallabagImport implements ImportInterface
abstract class WallabagImport extends AbstractImport
{
protected $user;
protected $em;
protected $logger;
protected $contentProxy;
protected $skippedEntries = 0;
protected $importedEntries = 0;
protected $filepath;
@ -35,18 +28,6 @@ abstract class WallabagImport implements ImportInterface
'',
];
public function __construct(EntityManager $em, ContentProxy $contentProxy)
{
$this->em = $em;
$this->logger = new NullLogger();
$this->contentProxy = $contentProxy;
}
public function setLogger(LoggerInterface $logger)
{
$this->logger = $logger;
}
/**
* We define the user in a custom call because on the import command there is no logged in user.
* So we can't retrieve user from the `security.token_storage` service.
@ -159,12 +140,18 @@ abstract class WallabagImport implements ImportInterface
$data = $this->prepareEntry($importedEntry, $this->markAsRead);
$entry = $this->contentProxy->updateEntry(
$entry = $this->fetchContent(
new Entry($this->user),
$importedEntry['url'],
$data
);
// jump to next entry in case of problem while getting content
if (false === $entry) {
++$this->skippedEntries;
continue;
}
if (array_key_exists('tags', $data)) {
$this->contentProxy->assignTagsToEntry(
$entry,

View File

@ -0,0 +1,11 @@
# Two factor mail
auth_code:
on: 'sus'
mailer:
subject: "Còdi d'autentificacion wallabag"
body:
hello: "Bonjorn %user%,"
first_para: "Estant qu'avètz activat la dobla autentificacion sus vòtre compte wallabag e que venètz de vos conectar dempuèi un novèl aparelh (ordinador, mobil, etc.) vos mandem un còdi per validar la connexion."
second_para: "Vaquí lo còdi a dintrar :"
support: "S'avètz un problèma de connexion, dobtetz pas a contacter l'assisténcia : "
signature: "La còla de wallabag"

View File

@ -39,7 +39,7 @@
<i class="mdi-content-send right"></i>
</button>
</div>
<div class="center">
<div class="row center">
<a href="{{ path('fos_user_resetting_request') }}">{{ 'security.login.forgot_password'|trans }}</a>
</div>
</form>

View File

@ -28,16 +28,32 @@ class InstallCommandTest extends WallabagCoreTestCase
*
* http://stackoverflow.com/a/14374832/569101
*/
$this->markTestSkipped('PostgreSQL spotted: can find a good way to drop current database, skipping.');
$this->markTestSkipped('PostgreSQL spotted: can\'t find a good way to drop current database, skipping.');
}
}
/**
* Ensure next tests will have a clean database
*/
public static function tearDownAfterClass()
{
$application = new Application(static::$kernel);
$application->setAutoExit(false);
$code = $application->run(new ArrayInput([
$application->run(new ArrayInput([
'command' => 'doctrine:schema:drop',
'--no-interaction' => true,
'--force' => true,
'--env' => 'test',
]), new NullOutput());
$application->run(new ArrayInput([
'command' => 'doctrine:schema:create',
'--no-interaction' => true,
'--env' => 'test',
]), new NullOutput());
$application->run(new ArrayInput([
'command' => 'doctrine:fixtures:load',
'--no-interaction' => true,
'--env' => 'test',
@ -111,6 +127,12 @@ class InstallCommandTest extends WallabagCoreTestCase
public function testRunInstallCommandWithDatabaseRemoved()
{
// skipped SQLite check when database is removed because while testing for the connection,
// the driver will create the file (so the database) before testing if database exist
if ($this->getClient()->getContainer()->get('doctrine')->getConnection()->getDriver() instanceof \Doctrine\DBAL\Driver\PDOSqlite\Driver) {
$this->markTestSkipped('SQLite spotted: can\'t test with database removed.');
}
$application = new Application($this->getClient()->getKernel());
$application->add(new DropDatabaseDoctrineCommand());

View File

@ -390,4 +390,55 @@ class PocketImportTest extends \PHPUnit_Framework_TestCase
$this->assertContains('PocketImport: Failed to import', $records[0]['message']);
$this->assertEquals('ERROR', $records[0]['level_name']);
}
public function testImportWithExceptionFromGraby()
{
$client = new Client();
$mock = new Mock([
new Response(200, ['Content-Type' => 'application/json'], Stream::factory(json_encode(['access_token' => 'wunderbar_token']))),
new Response(200, ['Content-Type' => 'application/json'], Stream::factory('
{
"status": 1,
"list": {
"229279689": {
"resolved_url": "http://www.grantland.com/blog/the-triangle/post/_/id/38347/ryder-cup-preview"
}
}
}
')),
]);
$client->getEmitter()->attach($mock);
$pocketImport = $this->getPocketImport();
$entryRepo = $this->getMockBuilder('Wallabag\CoreBundle\Repository\EntryRepository')
->disableOriginalConstructor()
->getMock();
$entryRepo->expects($this->once())
->method('findByUrlAndUserId')
->will($this->onConsecutiveCalls(false, true));
$this->em
->expects($this->once())
->method('getRepository')
->willReturn($entryRepo);
$entry = new Entry($this->user);
$this->contentProxy
->expects($this->once())
->method('updateEntry')
->will($this->throwException(new \Exception()));
$pocketImport->setClient($client);
$pocketImport->authorize('wunderbar_code');
$res = $pocketImport->import();
$this->assertTrue($res);
$this->assertEquals(['skipped' => 1, 'imported' => 0], $pocketImport->getSummary());
}
}

View File

@ -143,4 +143,44 @@ class WallabagV2ImportTest extends \PHPUnit_Framework_TestCase
$this->assertContains('WallabagImport: user is not defined', $records[0]['message']);
$this->assertEquals('ERROR', $records[0]['level_name']);
}
public function testImportEmptyFile()
{
$wallabagV2Import = $this->getWallabagV2Import();
$wallabagV2Import->setFilepath(__DIR__.'/../fixtures/wallabag-v2-empty.json');
$res = $wallabagV2Import->import();
$this->assertFalse($res);
$this->assertEquals(['skipped' => 0, 'imported' => 0], $wallabagV2Import->getSummary());
}
public function testImportWithExceptionFromGraby()
{
$wallabagV2Import = $this->getWallabagV2Import();
$wallabagV2Import->setFilepath(__DIR__.'/../fixtures/wallabag-v2.json');
$entryRepo = $this->getMockBuilder('Wallabag\CoreBundle\Repository\EntryRepository')
->disableOriginalConstructor()
->getMock();
$entryRepo->expects($this->exactly(24))
->method('findByUrlAndUserId')
->will($this->onConsecutiveCalls(false, true, false));
$this->em
->expects($this->any())
->method('getRepository')
->willReturn($entryRepo);
$this->contentProxy
->expects($this->exactly(2))
->method('updateEntry')
->will($this->throwException(new \Exception()));
$res = $wallabagV2Import->import();
$this->assertTrue($res);
$this->assertEquals(['skipped' => 24, 'imported' => 0], $wallabagV2Import->getSummary());
}
}

View File

@ -681,10 +681,17 @@ class SymfonyRequirements extends RequirementCollection
if (class_exists('Symfony\Component\Intl\Intl')) {
$this->addRecommendation(
\Symfony\Component\Intl\Intl::getIcuDataVersion() === \Symfony\Component\Intl\Intl::getIcuVersion(),
sprintf('intl ICU version installed on your system (%s) should match the ICU data bundled with Symfony (%s)', \Symfony\Component\Intl\Intl::getIcuVersion(), \Symfony\Component\Intl\Intl::getIcuDataVersion()),
'In most cases you should be fine, but please verify there is no inconsistencies between data provided by Symfony and the intl extension. See https://github.com/symfony/symfony/issues/15007 for an example of inconsistencies you might run into.'
\Symfony\Component\Intl\Intl::getIcuDataVersion() <= \Symfony\Component\Intl\Intl::getIcuVersion(),
sprintf('intl ICU version installed on your system is outdated (%s) and does not match the ICU data bundled with Symfony (%s)', \Symfony\Component\Intl\Intl::getIcuVersion(), \Symfony\Component\Intl\Intl::getIcuDataVersion()),
'To get the latest internationalization data upgrade the ICU system package and the intl PHP extension.'
);
if (\Symfony\Component\Intl\Intl::getIcuDataVersion() <= \Symfony\Component\Intl\Intl::getIcuVersion()) {
$this->addRecommendation(
\Symfony\Component\Intl\Intl::getIcuDataVersion() === \Symfony\Component\Intl\Intl::getIcuVersion(),
sprintf('intl ICU version installed on your system (%s) does not match the ICU data bundled with Symfony (%s)', \Symfony\Component\Intl\Intl::getIcuVersion(), \Symfony\Component\Intl\Intl::getIcuDataVersion()),
'To avoid internationalization data incosistencies upgrade the symfony/intl component.'
);
}
}
$this->addPhpIniRecommendation(