aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Wallabag/CoreBundle/Resources
diff options
context:
space:
mode:
authorNicolas Lœuillet <nicolas@loeuillet.org>2015-04-01 21:08:56 +0200
committerNicolas Lœuillet <nicolas@loeuillet.org>2015-04-01 21:08:56 +0200
commit1a93ee423b072ec3bcb0c437cbf9b488bdea245c (patch)
tree1466dcb1b465f9ead71c4dcbefe380853c5d846b /src/Wallabag/CoreBundle/Resources
parentf98a2a0fc3ae8a5955bb811f083c3d2535f96791 (diff)
parent7d74a2f32b55fa9c33f5ecff57785e8d9e4de8ae (diff)
downloadwallabag-1a93ee423b072ec3bcb0c437cbf9b488bdea245c.tar.gz
wallabag-1a93ee423b072ec3bcb0c437cbf9b488bdea245c.tar.zst
wallabag-1a93ee423b072ec3bcb0c437cbf9b488bdea245c.zip
Merge pull request #1166 from wallabag/v2-rss
Add RSS feeds
Diffstat (limited to 'src/Wallabag/CoreBundle/Resources')
-rw-r--r--src/Wallabag/CoreBundle/Resources/config/services.yml7
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/Config/index.html.twig140
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/Entry/entries.xml.twig34
-rwxr-xr-xsrc/Wallabag/CoreBundle/Resources/views/themes/baggy/public/css/main.css24
4 files changed, 145 insertions, 60 deletions
diff --git a/src/Wallabag/CoreBundle/Resources/config/services.yml b/src/Wallabag/CoreBundle/Resources/config/services.yml
index 062e1651..0f4db94e 100644
--- a/src/Wallabag/CoreBundle/Resources/config/services.yml
+++ b/src/Wallabag/CoreBundle/Resources/config/services.yml
@@ -36,3 +36,10 @@ services:
36 - @doctrine 36 - @doctrine
37 tags: 37 tags:
38 - { name: form.type, alias: forgot_password } 38 - { name: form.type, alias: forgot_password }
39
40 wallabag_core.param_converter.username_rsstoken_converter:
41 class: Wallabag\CoreBundle\ParamConverter\UsernameRssTokenConverter
42 tags:
43 - { name: request.param_converter, converter: username_rsstoken_converter }
44 arguments:
45 - @doctrine
diff --git a/src/Wallabag/CoreBundle/Resources/views/Config/index.html.twig b/src/Wallabag/CoreBundle/Resources/views/Config/index.html.twig
index 1835d26e..f2a98dfb 100644
--- a/src/Wallabag/CoreBundle/Resources/views/Config/index.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/Config/index.html.twig
@@ -5,129 +5,173 @@
5{% block content %} 5{% block content %}
6 <h2>{% trans %}Wallabag configuration{% endtrans %}</h2> 6 <h2>{% trans %}Wallabag configuration{% endtrans %}</h2>
7 7
8 <form action="{{ path('config') }}" method="post" {{ form_enctype(configForm) }}> 8 <form action="{{ path('config') }}" method="post" {{ form_enctype(form.config) }}>
9 {{ form_errors(configForm) }} 9 {{ form_errors(form.config) }}
10 10
11 <fieldset class="w500p inline"> 11 <fieldset class="w500p inline">
12 <div class="row"> 12 <div class="row">
13 {{ form_label(configForm.theme) }} 13 {{ form_label(form.config.theme) }}
14 {{ form_errors(configForm.theme) }} 14 {{ form_errors(form.config.theme) }}
15 {{ form_widget(configForm.theme) }} 15 {{ form_widget(form.config.theme) }}
16 </div> 16 </div>
17 </fieldset> 17 </fieldset>
18 18
19 <fieldset class="w500p inline"> 19 <fieldset class="w500p inline">
20 <div class="row"> 20 <div class="row">
21 {{ form_label(configForm.items_per_page) }} 21 {{ form_label(form.config.items_per_page) }}
22 {{ form_errors(configForm.items_per_page) }} 22 {{ form_errors(form.config.items_per_page) }}
23 {{ form_widget(configForm.items_per_page) }} 23 {{ form_widget(form.config.items_per_page) }}
24 </div> 24 </div>
25 </fieldset> 25 </fieldset>
26 26
27 <fieldset class="w500p inline"> 27 <fieldset class="w500p inline">
28 <div class="row"> 28 <div class="row">
29 {{ form_label(configForm.language) }} 29 {{ form_label(form.config.language) }}
30 {{ form_errors(configForm.language) }} 30 {{ form_errors(form.config.language) }}
31 {{ form_widget(configForm.language) }} 31 {{ form_widget(form.config.language) }}
32 </div> 32 </div>
33 </fieldset> 33 </fieldset>
34 34
35 {{ form_rest(configForm) }} 35 {{ form_rest(form.config) }}
36 </form>
37
38 <h2>{% trans %}RSS configuration{% endtrans %}</h2>
39
40 <form action="{{ path('config') }}" method="post" {{ form_enctype(form.rss) }}>
41 {{ form_errors(form.rss) }}
42
43 <fieldset class="w500p inline">
44 <div class="row">
45 <label>Rss token</label>
46 {% if rss.token %}
47 {{ rss.token }}
48 {% else %}
49 <em>No token</em>
50 {% endif %}
51
52 <a href="{{ path('generate_token') }}">Regenerate ?</a>
53 </div>
54 </fieldset>
55
56 <fieldset class="w500p inline">
57 <div class="row">
58 <label>Rss links:</label>
59 {% if rss.token %}
60 <ul>
61 <li><a href="{{ path('unread_rss', {'username': rss.username, 'token': rss.token}) }}">unread</a></li>
62 <li><a href="{{ path('starred_rss', {'username': rss.username, 'token': rss.token}) }}">fav</a></li>
63 <li><a href="{{ path('archive_rss', {'username': rss.username, 'token': rss.token}) }}">archives</a></li>
64 </ul>
65 {% else %}
66 <strong>You need to generate a token first.</strong>
67 {% endif %}
68 </div>
69 </fieldset>
70
71 <fieldset class="w500p inline">
72 <div class="row">
73 {{ form_label(form.rss.rss_limit) }}
74 {{ form_errors(form.rss.rss_limit) }}
75 {{ form_widget(form.rss.rss_limit) }}
76 </div>
77 </fieldset>
78
79 {{ form_rest(form.rss) }}
36 </form> 80 </form>
37 81
38 <h2>{% trans %}User information{% endtrans %}</h2> 82 <h2>{% trans %}User information{% endtrans %}</h2>
39 83
40 <form action="{{ path('config') }}" method="post" {{ form_enctype(userForm) }}> 84 <form action="{{ path('config') }}" method="post" {{ form_enctype(form.user) }}>
41 {{ form_errors(userForm) }} 85 {{ form_errors(form.user) }}
42 86
43 <fieldset class="w500p inline"> 87 <fieldset class="w500p inline">
44 <div class="row"> 88 <div class="row">
45 {{ form_label(userForm.username) }} 89 {{ form_label(form.user.username) }}
46 {{ form_errors(userForm.username) }} 90 {{ form_errors(form.user.username) }}
47 {{ form_widget(userForm.username) }} 91 {{ form_widget(form.user.username) }}
48 </div> 92 </div>
49 </fieldset> 93 </fieldset>
50 94
51 <fieldset class="w500p inline"> 95 <fieldset class="w500p inline">
52 <div class="row"> 96 <div class="row">
53 {{ form_label(userForm.name) }} 97 {{ form_label(form.user.name) }}
54 {{ form_errors(userForm.name) }} 98 {{ form_errors(form.user.name) }}
55 {{ form_widget(userForm.name) }} 99 {{ form_widget(form.user.name) }}
56 </div> 100 </div>
57 </fieldset> 101 </fieldset>
58 102
59 <fieldset class="w500p inline"> 103 <fieldset class="w500p inline">
60 <div class="row"> 104 <div class="row">
61 {{ form_label(userForm.email) }} 105 {{ form_label(form.user.email) }}
62 {{ form_errors(userForm.email) }} 106 {{ form_errors(form.user.email) }}
63 {{ form_widget(userForm.email) }} 107 {{ form_widget(form.user.email) }}
64 </div> 108 </div>
65 </fieldset> 109 </fieldset>
66 110
67 {{ form_rest(userForm) }} 111 {{ form_rest(form.user) }}
68 </form> 112 </form>
69 113
70 <h2>{% trans %}Change your password{% endtrans %}</h2> 114 <h2>{% trans %}Change your password{% endtrans %}</h2>
71 115
72 <form action="{{ path('config') }}" method="post" {{ form_enctype(pwdForm) }}> 116 <form action="{{ path('config') }}" method="post" {{ form_enctype(form.pwd) }}>
73 {{ form_errors(pwdForm) }} 117 {{ form_errors(form.pwd) }}
74 118
75 <fieldset class="w500p inline"> 119 <fieldset class="w500p inline">
76 <div class="row"> 120 <div class="row">
77 {{ form_label(pwdForm.old_password) }} 121 {{ form_label(form.pwd.old_password) }}
78 {{ form_errors(pwdForm.old_password) }} 122 {{ form_errors(form.pwd.old_password) }}
79 {{ form_widget(pwdForm.old_password) }} 123 {{ form_widget(form.pwd.old_password) }}
80 </div> 124 </div>
81 </fieldset> 125 </fieldset>
82 126
83 <fieldset class="w500p inline"> 127 <fieldset class="w500p inline">
84 <div class="row"> 128 <div class="row">
85 {{ form_label(pwdForm.new_password.first) }} 129 {{ form_label(form.pwd.new_password.first) }}
86 {{ form_errors(pwdForm.new_password.first) }} 130 {{ form_errors(form.pwd.new_password.first) }}
87 {{ form_widget(pwdForm.new_password.first) }} 131 {{ form_widget(form.pwd.new_password.first) }}
88 </div> 132 </div>
89 </fieldset> 133 </fieldset>
90 134
91 <fieldset class="w500p inline"> 135 <fieldset class="w500p inline">
92 <div class="row"> 136 <div class="row">
93 {{ form_label(pwdForm.new_password.second) }} 137 {{ form_label(form.pwd.new_password.second) }}
94 {{ form_errors(pwdForm.new_password.second) }} 138 {{ form_errors(form.pwd.new_password.second) }}
95 {{ form_widget(pwdForm.new_password.second) }} 139 {{ form_widget(form.pwd.new_password.second) }}
96 </div> 140 </div>
97 </fieldset> 141 </fieldset>
98 142
99 {{ form_rest(pwdForm) }} 143 {{ form_rest(form.pwd) }}
100 </form> 144 </form>
101 145
102 <h2>{% trans %}Add a user{% endtrans %}</h2> 146 <h2>{% trans %}Add a user{% endtrans %}</h2>
103 147
104 <form action="{{ path('config') }}" method="post" {{ form_enctype(newUserForm) }}> 148 <form action="{{ path('config') }}" method="post" {{ form_enctype(form.new_user) }}>
105 {{ form_errors(newUserForm) }} 149 {{ form_errors(form.new_user) }}
106 150
107 <fieldset class="w500p inline"> 151 <fieldset class="w500p inline">
108 <div class="row"> 152 <div class="row">
109 {{ form_label(newUserForm.username) }} 153 {{ form_label(form.new_user.username) }}
110 {{ form_errors(newUserForm.username) }} 154 {{ form_errors(form.new_user.username) }}
111 {{ form_widget(newUserForm.username) }} 155 {{ form_widget(form.new_user.username) }}
112 </div> 156 </div>
113 </fieldset> 157 </fieldset>
114 158
115 <fieldset class="w500p inline"> 159 <fieldset class="w500p inline">
116 <div class="row"> 160 <div class="row">
117 {{ form_label(newUserForm.password) }} 161 {{ form_label(form.new_user.password) }}
118 {{ form_errors(newUserForm.password) }} 162 {{ form_errors(form.new_user.password) }}
119 {{ form_widget(newUserForm.password) }} 163 {{ form_widget(form.new_user.password) }}
120 </div> 164 </div>
121 </fieldset> 165 </fieldset>
122 166
123 <fieldset class="w500p inline"> 167 <fieldset class="w500p inline">
124 <div class="row"> 168 <div class="row">
125 {{ form_label(newUserForm.email) }} 169 {{ form_label(form.new_user.email) }}
126 {{ form_errors(newUserForm.email) }} 170 {{ form_errors(form.new_user.email) }}
127 {{ form_widget(newUserForm.email) }} 171 {{ form_widget(form.new_user.email) }}
128 </div> 172 </div>
129 </fieldset> 173 </fieldset>
130 174
131 {{ form_rest(newUserForm) }} 175 {{ form_rest(form.new_user) }}
132 </form> 176 </form>
133{% endblock %} 177{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/entries.xml.twig b/src/Wallabag/CoreBundle/Resources/views/Entry/entries.xml.twig
new file mode 100644
index 00000000..5ec9bc03
--- /dev/null
+++ b/src/Wallabag/CoreBundle/Resources/views/Entry/entries.xml.twig
@@ -0,0 +1,34 @@
1<?xml version="1.0" encoding="utf-8"?>
2<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
3 <channel>
4 <title>wallabag — {{type}} feed</title>
5 <link>{{ url('unread') }}</link>
6 <pubDate>{{ "now"|date('D, d M Y H:i:s') }}</pubDate>
7 <generator>wallabag</generator>
8 <description>wallabag {{type}} elements</description>
9
10 {% for entry in entries %}
11
12 <item>
13 <title><![CDATA[{{ entry.title }}]]></title>
14 <source url="{{ url('view', { 'id': entry.id }) }}">wallabag</source>
15 <link>{{ url('view', { 'id': entry.id }) }}</link>
16 <guid>{{ url('view', { 'id': entry.id }) }}</guid>
17 <pubDate>{{ entry.createdAt|date('D, d M Y H:i:s') }}</pubDate>
18 <description>
19 <![CDATA[
20 {%- if entry.content|readingTime > 0 -%}
21 {% trans %}estimated reading time :{% endtrans %} {{ entry.content|readingTime }} min
22 {%- else -%}
23 {% trans %}estimated reading time :{% endtrans %} &lt; 1 min
24 {%- endif %}
25
26 {{ entry.content|raw -}}
27 ]]>
28 </description>
29 </item>
30
31 {% endfor %}
32
33 </channel>
34</rss>
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/css/main.css b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/css/main.css
index 1df82910..ff1a36a1 100755
--- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/css/main.css
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/css/main.css
@@ -7,7 +7,7 @@
7 4 = Messages 7 4 = Messages
8 5 = Article 8 5 = Article
9 6 = Media queries 9 6 = Media queries
10 10
11 ========================================================================== */ 11 ========================================================================== */
12 12
13html { 13html {
@@ -42,17 +42,17 @@ body {
42 position: absolute; 42 position: absolute;
43 top: 2em; 43 top: 2em;
44 left: 50%; 44 left: 50%;
45 margin-left: -55px; 45 margin-left: -55px;
46} 46}
47 47
48/* ========================================================================== 48/* ==========================================================================
49 1 = Style Guide 49 1 = Style Guide
50 ========================================================================== */ 50 ========================================================================== */
51 51
52::selection { 52::selection {
53 color: #FFF; 53 color: #FFF;
54 background-color: #000; 54 background-color: #000;
55} 55}
56 56
57.desktopHide { 57.desktopHide {
58 display: none; 58 display: none;
@@ -62,7 +62,7 @@ body {
62 position: fixed; 62 position: fixed;
63 z-index: 20; 63 z-index: 20;
64 top: 0.4em; 64 top: 0.4em;
65 left: 0.6em; 65 left: 0.6em;
66} 66}
67 67
68h2, h3, h4 { 68h2, h3, h4 {
@@ -89,7 +89,7 @@ form fieldset {
89 margin: 0; 89 margin: 0;
90} 90}
91 91
92form input[type="text"], select, form input[type="password"], form input[type="url"], form input[type="email"] { 92form input[type="text"], form input[type="number"], select, form input[type="password"], form input[type="url"], form input[type="email"] {
93 border: 1px solid #999; 93 border: 1px solid #999;
94 padding: 0.5em 1em; 94 padding: 0.5em 1em;
95 min-width: 12em; 95 min-width: 12em;
@@ -149,7 +149,7 @@ form button, input[type="submit"] {
149 149
150#bookmarklet { 150#bookmarklet {
151 cursor: move; 151 cursor: move;
152} 152}
153 153
154h2:after { 154h2:after {
155 content: ""; 155 content: "";
@@ -296,7 +296,7 @@ h2:after {
296/* ========================================================================== 296/* ==========================================================================
297 2 = Layout 297 2 = Layout
298 ========================================================================== */ 298 ========================================================================== */
299 299
300#content { 300#content {
301 margin-top: 5em; 301 margin-top: 5em;
302 min-height: 30em; 302 min-height: 30em;
@@ -653,7 +653,7 @@ a.add-to-wallabag-link-after:after {
653/* ========================================================================== 653/* ==========================================================================
654 3 = Pictos 654 3 = Pictos
655 ========================================================================== */ 655 ========================================================================== */
656 656
657@font-face { 657@font-face {
658 font-family: 'icomoon'; 658 font-family: 'icomoon';
659 src:url('../fonts/icomoon.eot?-s0mcsx'); 659 src:url('../fonts/icomoon.eot?-s0mcsx');
@@ -866,7 +866,7 @@ blockquote {
866 color: #FFF; 866 color: #FFF;
867 text-decoration: none; 867 text-decoration: none;
868} 868}
869 869
870 #article_toolbar a:hover, #article_toolbar a:focus { 870 #article_toolbar a:hover, #article_toolbar a:focus {
871 background-color: #999; 871 background-color: #999;
872 } 872 }
@@ -1052,7 +1052,7 @@ pre code {
1052 #article_toolbar a { 1052 #article_toolbar a {
1053 padding: 0.3em 0.4em 0.2em; 1053 padding: 0.3em 0.4em 0.2em;
1054 } 1054 }
1055 1055
1056 #display-mode { 1056 #display-mode {
1057 display: none; 1057 display: none;
1058 } 1058 }