aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--docs/en/user/android.rst20
-rw-r--r--docs/en/user/faq.rst29
-rw-r--r--docs/en/user/installation.rst68
-rw-r--r--docs/img/user/android_configuration_connection_test.en.pngbin0 -> 80965 bytes
-rw-r--r--docs/img/user/android_configuration_connection_test_success.en.pngbin0 -> 82290 bytes
-rw-r--r--docs/img/user/android_configuration_feed_credentials_automatically_filled_in.en.pngbin0 -> 106816 bytes
-rw-r--r--docs/img/user/android_configuration_filled_in.en.pngbin0 -> 98558 bytes
-rw-r--r--docs/img/user/android_configuration_get_feed_credentials.en.pngbin0 -> 81325 bytes
-rw-r--r--docs/img/user/android_configuration_saved_feed_update.en.pngbin0 -> 53196 bytes
-rw-r--r--docs/img/user/android_configuration_screen.en.pngbin0 -> 93709 bytes
-rw-r--r--docs/img/user/android_configuration_scroll_bottom.en.pngbin0 -> 98160 bytes
-rw-r--r--docs/img/user/android_unread_feed_synced.en.pngbin0 -> 89415 bytes
-rw-r--r--docs/img/user/android_welcome_screen.en.pngbin0 -> 51580 bytes
-rw-r--r--src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php12
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.da.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.de.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.en.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.es.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig5
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig5
-rw-r--r--src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php18
27 files changed, 138 insertions, 29 deletions
diff --git a/docs/en/user/android.rst b/docs/en/user/android.rst
index c13cf031..4271f037 100644
--- a/docs/en/user/android.rst
+++ b/docs/en/user/android.rst
@@ -13,61 +13,61 @@ Steps to configure your app
13 13
14When you first start the app, you see the welcome screen, where you are adviced to configure the app for your wallabag instance at first. 14When you first start the app, you see the welcome screen, where you are adviced to configure the app for your wallabag instance at first.
15 15
16.. image:: ../../img/user/android_welcome_screen.de.png 16.. image:: ../../img/user/android_welcome_screen.en.png
17 :alt: Welcome screen 17 :alt: Welcome screen
18 :align: center 18 :align: center
19 19
20Just confirm that message and you get redirected to the settings screen. 20Just confirm that message and you get redirected to the settings screen.
21 21
22.. image:: ../../img/user/android_configuration_screen.de.png 22.. image:: ../../img/user/android_configuration_screen.en.png
23 :alt: Settings screen 23 :alt: Settings screen
24 :align: center 24 :align: center
25 25
26Fill in your wallabag data. You need to enter your wallabag address. It is important that this URL does not end with a slash. Also add your wallabag credentials to the user name and password field. 26Fill in your wallabag data. You need to enter your wallabag address. It is important that this URL does not end with a slash. Also add your wallabag credentials to the user name and password field.
27 27
28.. image:: ../../img/user/android_configuration_filled_in.de.png 28.. image:: ../../img/user/android_configuration_filled_in.en.png
29 :alt: Filled in settings 29 :alt: Filled in settings
30 :align: center 30 :align: center
31 31
32After you have filled in your data, push the button Connection test and wait for the test to finish. 32After you have filled in your data, push the button Connection test and wait for the test to finish.
33 33
34.. image:: ../../img/user/android_configuration_connection_test.de.png 34.. image:: ../../img/user/android_configuration_connection_test.en.png
35 :alt: Connection test with your wallabag data 35 :alt: Connection test with your wallabag data
36 :align: center 36 :align: center
37 37
38The connection test shall finish with success. If not, you need to fix this first until you proceed. 38The connection test shall finish with success. If not, you need to fix this first until you proceed.
39 39
40.. image:: ../../img/user/android_configuration_connection_test_success.de.png 40.. image:: ../../img/user/android_configuration_connection_test_success.en.png
41 :alt: Connection test successful 41 :alt: Connection test successful
42 :align: center 42 :align: center
43 43
44After the connection test was successful, you can push the button to get your feed credentials. The app now tries to login to your wallabag instance and get the user id and the corresponding token for the feeds. 44After the connection test was successful, you can push the button to get your feed credentials. The app now tries to login to your wallabag instance and get the user id and the corresponding token for the feeds.
45 45
46.. image:: ../../img/user/android_configuration_get_feed_credentials.de.png 46.. image:: ../../img/user/android_configuration_get_feed_credentials.en.png
47 :alt: Getting the feed credentials 47 :alt: Getting the feed credentials
48 :align: center 48 :align: center
49 49
50When the process of getting your feed credentials finishes with success you see a toast message that the user id and the token were automatically filled in to the form. 50When the process of getting your feed credentials finishes with success you see a toast message that the user id and the token were automatically filled in to the form.
51 51
52.. image:: ../../img/user/android_configuration_feed_credentials_automatically_filled_in.de.png 52.. image:: ../../img/user/android_configuration_feed_credentials_automatically_filled_in.en.png
53 :alt: Getting feed credentials successful 53 :alt: Getting feed credentials successful
54 :align: center 54 :align: center
55 55
56Now you need to scroll to the bottom of the settings menu. Of course you can adjust the given settings to your needs. Finish the configuration of your app with pushing the save button. 56Now you need to scroll to the bottom of the settings menu. Of course you can adjust the given settings to your needs. Finish the configuration of your app with pushing the save button.
57 57
58.. image:: ../../img/user/android_configuration_scroll_bottom.de.png 58.. image:: ../../img/user/android_configuration_scroll_bottom.en.png
59 :alt: Bottom of the settings screen 59 :alt: Bottom of the settings screen
60 :align: center 60 :align: center
61 61
62After hitting the save button, you get the following screen. The app proposes to initiate a syncronisation process to update your feeds of articles. It is recommended to acknowledge this action and press Yes. 62After hitting the save button, you get the following screen. The app proposes to initiate a syncronisation process to update your feeds of articles. It is recommended to acknowledge this action and press Yes.
63 63
64.. image:: ../../img/user/android_configuration_saved_feed_update.de.png 64.. image:: ../../img/user/android_configuration_saved_feed_update.en.png
65 :alt: Settings saved the first time 65 :alt: Settings saved the first time
66 :align: center 66 :align: center
67 67
68Finally after the syncronisation finished successfully, you are presented the list of unread articles. 68Finally after the syncronisation finished successfully, you are presented the list of unread articles.
69 69
70.. image:: ../../img/user/android_unread_feed_synced.de.png 70.. image:: ../../img/user/android_unread_feed_synced.en.png
71 :alt: Filled article list cause feeds successfully syncronized 71 :alt: Filled article list cause feeds successfully syncronized
72 :align: center 72 :align: center
73 73
diff --git a/docs/en/user/faq.rst b/docs/en/user/faq.rst
index 1e36dc26..61303604 100644
--- a/docs/en/user/faq.rst
+++ b/docs/en/user/faq.rst
@@ -1,26 +1,39 @@
1Frequently Asked Questions 1Frequently Asked Questions
2========================== 2==========================
3 3
4During the installation, I've got this error ``Error Output: sh: 1: @post-cmd: not found`` 4During the installation, I got the error ``Error Output: sh: 1: @post-cmd: not found``
5------------------------------------------------------------------------------------------ 5--------------------------------------------------------------------------------------
6 6
7It seems you have a problem with your ``composer`` installation. Try to uninstall and reinstall it. 7It seems you have a problem with your ``composer`` installation. Try to uninstall and reinstall it.
8 8
9`Read the documentation about composer to know how to install it 9`Read the documentation about composer to know how to install it
10<https://getcomposer.org/doc/00-intro.md>`__. 10<https://getcomposer.org/doc/00-intro.md>`__.
11 11
12I can't valid the registration form 12I can't validate the registration form
13----------------------------------- 13--------------------------------------
14 14
15Make sure that all fields are well filled: 15Ensure that all fields are properly filled:
16 16
17* valid email address 17* valid email address
18* same passwords in two fields 18* same passwords in two fields
19 19
20I don't receive my activation email 20I'm not receiving my activation email
21----------------------------------- 21-------------------------------------
22 22
23Are you sure your email address was correct? Did you check your spams folder? 23Are you sure your email address was correct? Did you check your spam folder?
24
25If you still don't see the activation email, please ensure that you have
26installed and properly configured a mail transfer agent. Be sure to include a
27firewall rule for SMTP. E.g., if using firewalld:
28
29::
30
31 firewall-cmd --permanent --add-service=smtp
32 firewall-cmd --reload
33
34Lastly, if you have SELinux enabled, set the following rule:
35
36``setsebool -P httpd_can_sendmail 1``
24 37
25When I click on the activation link, I've got this message: ``The user with confirmation token "DtrOPfbQeVkWf6N" does not exist``. 38When I click on the activation link, I've got this message: ``The user with confirmation token "DtrOPfbQeVkWf6N" does not exist``.
26---------------------------------------------------------------------------------------------------------------------------------- 39----------------------------------------------------------------------------------------------------------------------------------
diff --git a/docs/en/user/installation.rst b/docs/en/user/installation.rst
index 6d804304..41542c45 100644
--- a/docs/en/user/installation.rst
+++ b/docs/en/user/installation.rst
@@ -23,13 +23,13 @@ You'll need the following extensions for wallabag to work. Some of these may alr
23- php-gettext 23- php-gettext
24- php-tokenizer 24- php-tokenizer
25 25
26wallabag uses PDO to connect to database, so you'll need one of: 26wallabag uses PDO to connect to the database, so you'll need one of the following:
27 27
28- pdo_mysql 28- pdo_mysql
29- pdo_sqlite 29- pdo_sqlite
30- pdo_pgsql 30- pdo_pgsql
31 31
32and it's corresponding database server. 32and its corresponding database server.
33 33
34Installation 34Installation
35------------ 35------------
@@ -37,7 +37,7 @@ Installation
37On a dedicated web server (recommended way) 37On a dedicated web server (recommended way)
38~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 38~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
39 39
40wallabag uses a big number of libraries in order to function. These libraries must be installed with a tool called Composer. You need to install it if you don't already have. 40wallabag uses a large number of libraries in order to function. These libraries must be installed with a tool called Composer. You need to install it if you have not already done so.
41 41
42Install Composer: 42Install Composer:
43 43
@@ -47,7 +47,7 @@ Install Composer:
47 47
48You can find specific instructions `here <https://getcomposer.org/doc/00-intro.md>`__: 48You can find specific instructions `here <https://getcomposer.org/doc/00-intro.md>`__:
49 49
50To install wallabag itself, you must run these two commands: 50To install wallabag itself, you must run the following commands:
51 51
52:: 52::
53 53
@@ -67,17 +67,17 @@ And access wallabag at http://yourserverip:8000
67 67
68.. tip:: 68.. tip::
69 69
70 To define parameters with environment variables, you have to set these variables with ``SYMFONY__`` prefix. For example, ``SYMFONY__DATABASE_DRIVER``. You can have a look to the `Symfony documentation <http://symfony.com/doc/current/cookbook/configuration/external_parameters.html>`__. 70 To define parameters with environment variables, you have to set these variables with ``SYMFONY__`` prefix. For example, ``SYMFONY__DATABASE_DRIVER``. You can have a look at `Symfony documentation <http://symfony.com/doc/current/cookbook/configuration/external_parameters.html>`__.
71 71
72On a shared hosting 72On a shared hosting
73~~~~~~~~~~~~~~~~~~~ 73~~~~~~~~~~~~~~~~~~~
74 74
75We provide you a package with all dependancies inside. 75We provide a package with all dependencies inside.
76The default configuration uses SQLite for the database. If you want to change these settings, please edit ``app/config/parameters.yml``. 76The default configuration uses SQLite for the database. If you want to change these settings, please edit ``app/config/parameters.yml``.
77 77
78We already created a user: login and password are ``wallabag``. 78We already created a user: login and password are ``wallabag``.
79 79
80.. caution:: With this package, wallabag don't check mandatory extensions used in the application (theses checks are made during ``composer install`` when you have a dedicated web server, see above). 80.. caution:: With this package, wallabag doesn't check for mandatory extensions used in the application (theses checks are made during ``composer install`` when you have a dedicated web server, see above).
81 81
82Execute this command to download and extract the latest package: 82Execute this command to download and extract the latest package:
83 83
@@ -85,7 +85,7 @@ Execute this command to download and extract the latest package:
85 85
86 wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package 86 wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
87 87
88Now, read the following documentation to create your virtual host, then access to your wallabag. 88Now, read the following documentation to create your virtual host, then access your wallabag.
89If 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``. 89If 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``.
90 90
91Installation with Docker 91Installation with Docker
@@ -151,7 +151,7 @@ After reloading or restarting Apache, you should now be able to access wallabag
151Configuration on Nginx 151Configuration on Nginx
152~~~~~~~~~~~~~~~~~~~~~~ 152~~~~~~~~~~~~~~~~~~~~~~
153 153
154Assuming you install wallabag in the ``/var/www/wallabag`` folder, here's the recipe for wallabag : 154Assuming you installed wallabag in the ``/var/www/wallabag`` folder, here's the recipe for wallabag :
155 155
156:: 156::
157 157
@@ -258,7 +258,7 @@ It has to be the same for the following folders
258* /var/www/wallabag/bin/ 258* /var/www/wallabag/bin/
259* /var/www/wallabag/app/config/ 259* /var/www/wallabag/app/config/
260* /var/www/wallabag/vendor/ 260* /var/www/wallabag/vendor/
261* /var/www/wallabag/data/ 261* /var/www/wallabag/data/
262 262
263by entering 263by entering
264 264
@@ -269,10 +269,56 @@ by entering
269 chown -R www-data:www-data /var/www/wallabag/vendor 269 chown -R www-data:www-data /var/www/wallabag/vendor
270 chown -R www-data:www-data /var/www/wallabag/data/ 270 chown -R www-data:www-data /var/www/wallabag/data/
271 271
272otherwise, sooner or later you will meet this error messages 272otherwise, sooner or later you will see these error messages:
273 273
274.. code-block:: bash 274.. code-block:: bash
275 275
276 Unable to write to the "bin" directory. 276 Unable to write to the "bin" directory.
277 file_put_contents(app/config/parameters.yml): failed to open stream: Permission denied 277 file_put_contents(app/config/parameters.yml): failed to open stream: Permission denied
278 file_put_contents(/.../wallabag/vendor/autoload.php): failed to open stream: Permission denied 278 file_put_contents(/.../wallabag/vendor/autoload.php): failed to open stream: Permission denied
279
280Additional rules for SELinux
281~~~~~~~~~~~~~~~~~~~~~~~~~~~~
282
283If SELinux is enabled on your system, you will need to configure additional contexts in order for wallabag to function properly. To check if SELinux is enabled, simply enter the following:
284
285``getenforce``
286
287This will return ``Enforcing`` if SELinux is enabled. Creating a new context involves the following syntax:
288
289``semanage fcontext -a -t <context type> <full path>``
290
291For example:
292
293``semanage fcontext -a -t httpd_sys_content_t "/var/www/wallabag(/.*)?"``
294
295This will recursively apply the httpd_sys_content_t context to the wallabag directory and all underlying files and folders. The following rules are needed:
296
297+-----------------------------------+----------------------------+
298| Full path | Context |
299+===================================+============================+
300| /var/www/wallabag(/.*)? | ``httpd_sys_content_t`` |
301+-----------------------------------+----------------------------+
302| /var/www/wallabag/data(/.*)? | ``httpd_sys_rw_content_t`` |
303+-----------------------------------+----------------------------+
304| /var/www/wallabag/var/logs(/.*)? | ``httpd_log_t`` |
305+-----------------------------------+----------------------------+
306| /var/www/wallabag/var/cache(/.*)? | ``httpd_cache_t`` |
307+-----------------------------------+----------------------------+
308
309After creating these contexts, enter the following in order to apply your rules:
310
311``restorecon -R -v /var/www/wallabag``
312
313You can check contexts in a directory by typing ``ls -lZ`` and you can see all of your current rules with ``semanage fcontext -l -C``.
314
315If you're installing the preconfigured latest-v2-package, then an additional rule is needed during the initial setup:
316
317``semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wallabag/var"``
318
319After you successfully access your wallabag and complete the initial setup, this context can be removed:
320
321::
322
323 semanage fcontext -d -t httpd_sys_rw_content_t "/var/www/wallabag/var"
324 retorecon -R -v /var/www/wallabag/var
diff --git a/docs/img/user/android_configuration_connection_test.en.png b/docs/img/user/android_configuration_connection_test.en.png
new file mode 100644
index 00000000..479cd09a
--- /dev/null
+++ b/docs/img/user/android_configuration_connection_test.en.png
Binary files differ
diff --git a/docs/img/user/android_configuration_connection_test_success.en.png b/docs/img/user/android_configuration_connection_test_success.en.png
new file mode 100644
index 00000000..840f00cd
--- /dev/null
+++ b/docs/img/user/android_configuration_connection_test_success.en.png
Binary files differ
diff --git a/docs/img/user/android_configuration_feed_credentials_automatically_filled_in.en.png b/docs/img/user/android_configuration_feed_credentials_automatically_filled_in.en.png
new file mode 100644
index 00000000..df071b8b
--- /dev/null
+++ b/docs/img/user/android_configuration_feed_credentials_automatically_filled_in.en.png
Binary files differ
diff --git a/docs/img/user/android_configuration_filled_in.en.png b/docs/img/user/android_configuration_filled_in.en.png
new file mode 100644
index 00000000..368ac515
--- /dev/null
+++ b/docs/img/user/android_configuration_filled_in.en.png
Binary files differ
diff --git a/docs/img/user/android_configuration_get_feed_credentials.en.png b/docs/img/user/android_configuration_get_feed_credentials.en.png
new file mode 100644
index 00000000..2a8958ff
--- /dev/null
+++ b/docs/img/user/android_configuration_get_feed_credentials.en.png
Binary files differ
diff --git a/docs/img/user/android_configuration_saved_feed_update.en.png b/docs/img/user/android_configuration_saved_feed_update.en.png
new file mode 100644
index 00000000..f1c06f17
--- /dev/null
+++ b/docs/img/user/android_configuration_saved_feed_update.en.png
Binary files differ
diff --git a/docs/img/user/android_configuration_screen.en.png b/docs/img/user/android_configuration_screen.en.png
new file mode 100644
index 00000000..945fd7c8
--- /dev/null
+++ b/docs/img/user/android_configuration_screen.en.png
Binary files differ
diff --git a/docs/img/user/android_configuration_scroll_bottom.en.png b/docs/img/user/android_configuration_scroll_bottom.en.png
new file mode 100644
index 00000000..11a6fc5a
--- /dev/null
+++ b/docs/img/user/android_configuration_scroll_bottom.en.png
Binary files differ
diff --git a/docs/img/user/android_unread_feed_synced.en.png b/docs/img/user/android_unread_feed_synced.en.png
new file mode 100644
index 00000000..8451557e
--- /dev/null
+++ b/docs/img/user/android_unread_feed_synced.en.png
Binary files differ
diff --git a/docs/img/user/android_welcome_screen.en.png b/docs/img/user/android_welcome_screen.en.png
new file mode 100644
index 00000000..a3741d50
--- /dev/null
+++ b/docs/img/user/android_welcome_screen.en.png
Binary files differ
diff --git a/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php b/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php
index cd4d3490..f3f848e9 100644
--- a/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php
+++ b/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php
@@ -87,6 +87,18 @@ class EntryFilterType extends AbstractType
87 ->add('isStarred', CheckboxFilterType::class, [ 87 ->add('isStarred', CheckboxFilterType::class, [
88 'label' => 'entry.filters.starred_label', 88 'label' => 'entry.filters.starred_label',
89 ]) 89 ])
90 ->add('isUnread', CheckboxFilterType::class, [
91 'label' => 'entry.filters.unread_label',
92 'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
93 if (false === $values['value']) {
94 return;
95 }
96
97 $expression = $filterQuery->getExpr()->eq('e.isArchived', 'false');
98
99 return $filterQuery->createCondition($expression);
100 },
101 ])
90 ->add('previewPicture', CheckboxFilterType::class, [ 102 ->add('previewPicture', CheckboxFilterType::class, [
91 'apply_filter' => function (QueryInterface $filterQuery, $field, $values) { 103 'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
92 if (false === $values['value']) { 104 if (false === $values['value']) {
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
index 0c2a3249..213d5790 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
@@ -154,6 +154,7 @@ entry:
154 status_label: 'Status' 154 status_label: 'Status'
155 archived_label: 'Arkiveret' 155 archived_label: 'Arkiveret'
156 starred_label: 'Favorit' 156 starred_label: 'Favorit'
157 unread_label: 'Ulæst'
157 preview_picture_label: 'Har et vist billede' 158 preview_picture_label: 'Har et vist billede'
158 preview_picture_help: 'Forhåndsvis billede' 159 preview_picture_help: 'Forhåndsvis billede'
159 language_label: 'Sprog' 160 language_label: 'Sprog'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
index b28b3b04..89cbbbf8 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
@@ -154,6 +154,7 @@ entry:
154 status_label: 'Status' 154 status_label: 'Status'
155 archived_label: 'Archiviert' 155 archived_label: 'Archiviert'
156 starred_label: 'Favorisiert' 156 starred_label: 'Favorisiert'
157 unread_label: 'Ungelesene'
157 preview_picture_label: 'Vorschaubild vorhanden' 158 preview_picture_label: 'Vorschaubild vorhanden'
158 preview_picture_help: 'Vorschaubild' 159 preview_picture_help: 'Vorschaubild'
159 language_label: 'Sprache' 160 language_label: 'Sprache'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
index ec560559..b65e4522 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
@@ -154,6 +154,7 @@ entry:
154 status_label: 'Status' 154 status_label: 'Status'
155 archived_label: 'Archived' 155 archived_label: 'Archived'
156 starred_label: 'Starred' 156 starred_label: 'Starred'
157 unread_label: 'Unread'
157 preview_picture_label: 'Has a preview picture' 158 preview_picture_label: 'Has a preview picture'
158 preview_picture_help: 'Preview picture' 159 preview_picture_help: 'Preview picture'
159 language_label: 'Language' 160 language_label: 'Language'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
index 11358d8e..8351bcf4 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
@@ -154,6 +154,7 @@ entry:
154 status_label: 'Estatus' 154 status_label: 'Estatus'
155 archived_label: 'Archivado' 155 archived_label: 'Archivado'
156 starred_label: 'Favorito' 156 starred_label: 'Favorito'
157 unread_label: 'Sin leer'
157 preview_picture_label: 'Hay una foto' 158 preview_picture_label: 'Hay una foto'
158 preview_picture_help: 'Foto de preview' 159 preview_picture_help: 'Foto de preview'
159 language_label: 'Idioma' 160 language_label: 'Idioma'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
index 92b4dabe..db6e5960 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
@@ -154,6 +154,7 @@ entry:
154 status_label: 'وضعیت' 154 status_label: 'وضعیت'
155 archived_label: 'بایگانی‌شده' 155 archived_label: 'بایگانی‌شده'
156 starred_label: 'برگزیده' 156 starred_label: 'برگزیده'
157 unread_label: 'خوانده‌نشده'
157 preview_picture_label: 'دارای عکس پیش‌نمایش' 158 preview_picture_label: 'دارای عکس پیش‌نمایش'
158 preview_picture_help: 'پیش‌نمایش عکس' 159 preview_picture_help: 'پیش‌نمایش عکس'
159 language_label: 'زبان' 160 language_label: 'زبان'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
index 84e3a5fc..9fc8ca2a 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
@@ -154,6 +154,7 @@ entry:
154 status_label: 'Status' 154 status_label: 'Status'
155 archived_label: 'Lus' 155 archived_label: 'Lus'
156 starred_label: 'Favoris' 156 starred_label: 'Favoris'
157 unread_label: 'Non lus'
157 preview_picture_label: 'A une photo' 158 preview_picture_label: 'A une photo'
158 preview_picture_help: 'Photo' 159 preview_picture_help: 'Photo'
159 language_label: 'Langue' 160 language_label: 'Langue'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
index 70e4342c..c81c852b 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
@@ -154,6 +154,7 @@ entry:
154 status_label: 'Estatus' 154 status_label: 'Estatus'
155 archived_label: 'Legits' 155 archived_label: 'Legits'
156 starred_label: 'Favorits' 156 starred_label: 'Favorits'
157 unread_label: 'Pas legits'
157 preview_picture_label: 'A una fotò' 158 preview_picture_label: 'A una fotò'
158 preview_picture_help: 'Fotò' 159 preview_picture_help: 'Fotò'
159 language_label: 'Lenga' 160 language_label: 'Lenga'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
index dd2dce5d..3707a857 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
@@ -154,6 +154,7 @@ entry:
154 status_label: 'Status' 154 status_label: 'Status'
155 archived_label: 'Zarchiwizowane' 155 archived_label: 'Zarchiwizowane'
156 starred_label: 'Oznaczone gwiazdką' 156 starred_label: 'Oznaczone gwiazdką'
157 unread_label: 'Nieprzeczytane'
157 preview_picture_label: 'Posiada podgląd obrazu' 158 preview_picture_label: 'Posiada podgląd obrazu'
158 preview_picture_help: 'Podgląd obrazu' 159 preview_picture_help: 'Podgląd obrazu'
159 language_label: 'Język' 160 language_label: 'Język'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
index a3a09f4c..27be1edc 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
@@ -154,6 +154,7 @@ entry:
154 status_label: 'Status' 154 status_label: 'Status'
155 archived_label: 'Arhivat' 155 archived_label: 'Arhivat'
156 starred_label: 'Steluțe' 156 starred_label: 'Steluțe'
157 unread_label: 'Necitite'
157 preview_picture_label: 'Are o imagine de previzualizare' 158 preview_picture_label: 'Are o imagine de previzualizare'
158 preview_picture_help: 'Previzualizare imagine' 159 preview_picture_help: 'Previzualizare imagine'
159 language_label: 'Limbă' 160 language_label: 'Limbă'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
index bc502a2b..85ee7316 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
@@ -154,6 +154,7 @@ entry:
154 status_label: 'Durum' 154 status_label: 'Durum'
155 archived_label: 'Arşiv' 155 archived_label: 'Arşiv'
156 starred_label: 'Favori' 156 starred_label: 'Favori'
157 unread_label: 'Okunmayan'
157 preview_picture_label: 'Resim önizlemesi varsa' 158 preview_picture_label: 'Resim önizlemesi varsa'
158 preview_picture_help: 'Resim önizlemesi' 159 preview_picture_help: 'Resim önizlemesi'
159 language_label: 'Dil' 160 language_label: 'Dil'
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig
index a2caaebf..778625ae 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig
@@ -54,6 +54,11 @@
54 </div> 54 </div>
55 55
56 <div class="input-field"> 56 <div class="input-field">
57 {{ form_widget(form.isUnread) }}
58 {{ form_label(form.isUnread) }}
59 </div>
60
61 <div class="input-field">
57 {{ form_widget(form.previewPicture) }} 62 {{ form_widget(form.previewPicture) }}
58 {{ form_label(form.previewPicture) }} 63 {{ form_label(form.previewPicture) }}
59 </div> 64 </div>
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig
index 1d569226..920fa933 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig
@@ -126,6 +126,11 @@
126 {{ form_label(form.isStarred) }} 126 {{ form_label(form.isStarred) }}
127 </div> 127 </div>
128 128
129 <div class="input-field col s6 with-checkbox">
130 {{ form_widget(form.isUnread) }}
131 {{ form_label(form.isUnread) }}
132 </div>
133
129 <div class="col s12"> 134 <div class="col s12">
130 <label>{{ 'entry.filters.preview_picture_help'|trans }}</label> 135 <label>{{ 'entry.filters.preview_picture_help'|trans }}</label>
131 </div> 136 </div>
diff --git a/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php
index cbba1a57..5ce893c1 100644
--- a/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php
+++ b/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php
@@ -499,6 +499,24 @@ class EntryControllerTest extends WallabagCoreTestCase
499 $this->assertCount(1, $crawler->filter('div[class=entry]')); 499 $this->assertCount(1, $crawler->filter('div[class=entry]'));
500 } 500 }
501 501
502 public function testFilterOnUnreadStatus()
503 {
504 $this->logInAs('admin');
505 $client = $this->getClient();
506
507 $crawler = $client->request('GET', '/all/list');
508
509 $form = $crawler->filter('button[id=submit-filter]')->form();
510
511 $data = [
512 'entry_filter[isUnread]' => true,
513 ];
514
515 $crawler = $client->submit($form, $data);
516
517 $this->assertCount(4, $crawler->filter('div[class=entry]'));
518 }
519
502 public function testFilterOnCreationDate() 520 public function testFilterOnCreationDate()
503 { 521 {
504 $this->logInAs('admin'); 522 $this->logInAs('admin');