diff options
author | Nicolas Lœuillet <nicolas@loeuillet.org> | 2015-09-13 21:07:27 +0200 |
---|---|---|
committer | Nicolas Lœuillet <nicolas@loeuillet.org> | 2015-09-13 21:07:27 +0200 |
commit | b004a236ba0cc96bf530801a55cdddf9ec809d13 (patch) | |
tree | 9cd57b48d5a4c5ec7952ba02736c8209f1c95c69 /src/Wallabag/CoreBundle/Resources/views/themes/baggy | |
parent | 4d5fd9be812825c480589cdcfcec281ffb5aa66a (diff) | |
parent | 1a5f7e2d88284419654057fda71e2b0be9b5439a (diff) | |
download | wallabag-b004a236ba0cc96bf530801a55cdddf9ec809d13.tar.gz wallabag-b004a236ba0cc96bf530801a55cdddf9ec809d13.tar.zst wallabag-b004a236ba0cc96bf530801a55cdddf9ec809d13.zip |
Merge pull request #1401 from wallabag/v2-baggy-themes
Cleanup baggy
Diffstat (limited to 'src/Wallabag/CoreBundle/Resources/views/themes/baggy')
23 files changed, 1032 insertions, 0 deletions
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig new file mode 100644 index 00000000..c90bb2e3 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig | |||
@@ -0,0 +1,169 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}Config{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | <h2>{% trans %}Wallabag configuration{% endtrans %}</h2> | ||
7 | |||
8 | <form action="{{ path('config') }}" method="post" {{ form_enctype(form.config) }}> | ||
9 | {{ form_errors(form.config) }} | ||
10 | |||
11 | <fieldset class="w500p inline"> | ||
12 | <div class="row"> | ||
13 | {{ form_label(form.config.theme) }} | ||
14 | {{ form_errors(form.config.theme) }} | ||
15 | {{ form_widget(form.config.theme) }} | ||
16 | </div> | ||
17 | </fieldset> | ||
18 | |||
19 | <fieldset class="w500p inline"> | ||
20 | <div class="row"> | ||
21 | {{ form_label(form.config.items_per_page) }} | ||
22 | {{ form_errors(form.config.items_per_page) }} | ||
23 | {{ form_widget(form.config.items_per_page) }} | ||
24 | </div> | ||
25 | </fieldset> | ||
26 | |||
27 | <fieldset class="w500p inline"> | ||
28 | <div class="row"> | ||
29 | {{ form_label(form.config.language) }} | ||
30 | {{ form_errors(form.config.language) }} | ||
31 | {{ form_widget(form.config.language) }} | ||
32 | </div> | ||
33 | </fieldset> | ||
34 | |||
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) }} | ||
80 | </form> | ||
81 | |||
82 | <h2>{% trans %}User information{% endtrans %}</h2> | ||
83 | |||
84 | <form action="{{ path('config') }}" method="post" {{ form_enctype(form.user) }}> | ||
85 | {{ form_errors(form.user) }} | ||
86 | |||
87 | <fieldset class="w500p inline"> | ||
88 | <div class="row"> | ||
89 | {{ form_label(form.user.name) }} | ||
90 | {{ form_errors(form.user.name) }} | ||
91 | {{ form_widget(form.user.name) }} | ||
92 | </div> | ||
93 | </fieldset> | ||
94 | |||
95 | <fieldset class="w500p inline"> | ||
96 | <div class="row"> | ||
97 | {{ form_label(form.user.email) }} | ||
98 | {{ form_errors(form.user.email) }} | ||
99 | {{ form_widget(form.user.email) }} | ||
100 | </div> | ||
101 | </fieldset> | ||
102 | |||
103 | {{ form_rest(form.user) }} | ||
104 | </form> | ||
105 | |||
106 | <h2>{% trans %}Change your password{% endtrans %}</h2> | ||
107 | |||
108 | <form action="{{ path('config') }}" method="post" {{ form_enctype(form.pwd) }}> | ||
109 | {{ form_errors(form.pwd) }} | ||
110 | |||
111 | <fieldset class="w500p inline"> | ||
112 | <div class="row"> | ||
113 | {{ form_label(form.pwd.old_password) }} | ||
114 | {{ form_errors(form.pwd.old_password) }} | ||
115 | {{ form_widget(form.pwd.old_password) }} | ||
116 | </div> | ||
117 | </fieldset> | ||
118 | |||
119 | <fieldset class="w500p inline"> | ||
120 | <div class="row"> | ||
121 | {{ form_label(form.pwd.new_password.first) }} | ||
122 | {{ form_errors(form.pwd.new_password.first) }} | ||
123 | {{ form_widget(form.pwd.new_password.first) }} | ||
124 | </div> | ||
125 | </fieldset> | ||
126 | |||
127 | <fieldset class="w500p inline"> | ||
128 | <div class="row"> | ||
129 | {{ form_label(form.pwd.new_password.second) }} | ||
130 | {{ form_errors(form.pwd.new_password.second) }} | ||
131 | {{ form_widget(form.pwd.new_password.second) }} | ||
132 | </div> | ||
133 | </fieldset> | ||
134 | |||
135 | {{ form_rest(form.pwd) }} | ||
136 | </form> | ||
137 | |||
138 | <h2>{% trans %}Add a user{% endtrans %}</h2> | ||
139 | |||
140 | <form action="{{ path('config') }}" method="post" {{ form_enctype(form.new_user) }}> | ||
141 | {{ form_errors(form.new_user) }} | ||
142 | |||
143 | <fieldset class="w500p inline"> | ||
144 | <div class="row"> | ||
145 | {{ form_label(form.new_user.username) }} | ||
146 | {{ form_errors(form.new_user.username) }} | ||
147 | {{ form_widget(form.new_user.username) }} | ||
148 | </div> | ||
149 | </fieldset> | ||
150 | |||
151 | <fieldset class="w500p inline"> | ||
152 | <div class="row"> | ||
153 | {{ form_label(form.new_user.password) }} | ||
154 | {{ form_errors(form.new_user.password) }} | ||
155 | {{ form_widget(form.new_user.password) }} | ||
156 | </div> | ||
157 | </fieldset> | ||
158 | |||
159 | <fieldset class="w500p inline"> | ||
160 | <div class="row"> | ||
161 | {{ form_label(form.new_user.email) }} | ||
162 | {{ form_errors(form.new_user.email) }} | ||
163 | {{ form_widget(form.new_user.email) }} | ||
164 | </div> | ||
165 | </fieldset> | ||
166 | |||
167 | {{ form_rest(form.new_user) }} | ||
168 | </form> | ||
169 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/edit.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/edit.html.twig new file mode 100644 index 00000000..0d4d5ad2 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/edit.html.twig | |||
@@ -0,0 +1,7 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}Edit an entry{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | {{ form(form) }} | ||
7 | {% endblock %} | ||
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 new file mode 100644 index 00000000..176290e4 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig | |||
@@ -0,0 +1,120 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title "Unread" %} | ||
4 | |||
5 | {% block content %} | ||
6 | {% block pager %} | ||
7 | <div class="results"> | ||
8 | <div class="nb-results">{{ entries.count }} {% trans %}entries{% endtrans %}</div> | ||
9 | <div class="pagination"> | ||
10 | <a href="#" id="filter">{% trans %}Filter{% endtrans %}</a> | ||
11 | {% if entries is not empty %} | ||
12 | – | ||
13 | {% for p in range(1, entries.nbPages) if entries.nbPages > 1 %} | ||
14 | <li> | ||
15 | <a href="{{ path(app.request.attributes.get('_route'), app.request.query.all|merge({'page': p})) }}" class="{{ currentPage == p ? 'current':''}}" >{{ p }}</a> | ||
16 | </li> | ||
17 | {% endfor %} | ||
18 | {% endif %} | ||
19 | </div> | ||
20 | </div> | ||
21 | {% endblock %} | ||
22 | |||
23 | {% if entries is empty %} | ||
24 | <div class="messages warning"><p>{% trans %}No articles found.{% endtrans %}</p></div> | ||
25 | {% else %} | ||
26 | {% for entry in entries %} | ||
27 | <div id="entry-{{ entry.id|e }}" class="entry"> | ||
28 | <h2><a href="{{ path('view', { 'id': entry.id }) }}">{{ entry.title|raw }}</a></h2> | ||
29 | {% if entry.readingTime > 0 %} | ||
30 | <div class="estimatedTime"><span class="tool reading-time">{% trans %}estimated reading time :{% endtrans %} {{ entry.readingTime }} min</span></div> | ||
31 | {% else %} | ||
32 | <div class="estimatedTime"><span class="tool reading-time">{% trans %}estimated reading time :{% endtrans %} <small class="inferieur"><</small> 1 min</span></div> | ||
33 | {% endif %} | ||
34 | |||
35 | <ul class="tools links"> | ||
36 | <li><a title="{% trans %}Toggle mark as read{% endtrans %}" class="tool icon-check icon {% if entry.isArchived == 0 %}archive-off{% else %}archive{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"><span>{% trans %}Toggle mark as read{% endtrans %}</span></a></li> | ||
37 | <li><a title="{% trans %}toggle favorite{% endtrans %}" class="tool icon-star icon {% if entry.isStarred == 0 %}fav-off{% else %}fav{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"><span>{% trans %}toggle favorite{% endtrans %}</span></a></li> | ||
38 | <li><a title="{% trans %}delete{% endtrans %}" class="tool delete icon-trash icon" href="{{ path('delete_entry', { 'id': entry.id }) }}"><span>{% trans %}delete{% endtrans %}</span></a></li> | ||
39 | <li><a href="{{ entry.url|e }}" target="_blank" title="{% trans %}original{% endtrans %} : {{ entry.title|e }}" class="tool link icon-link icon"><span>{{ entry.domainName }}</span></a></li> | ||
40 | </ul> | ||
41 | {% if entry.previewPicture is null %} | ||
42 | <p>{{ entry.content|striptags|slice(0, 300) }}…</p> | ||
43 | {% else %} | ||
44 | <img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" /> | ||
45 | {% endif %} | ||
46 | </div> | ||
47 | {% endfor %} | ||
48 | {% endif %} | ||
49 | |||
50 | <aside id="filter-form" class=""> | ||
51 | <form method="get" action="{{ path('all') }}"> | ||
52 | <h2>{% trans %}Filters{% endtrans %}</h2> | ||
53 | <a href="javascript: void(null);" id="filter-form-close" class="close-button--popup close-button">×</a> | ||
54 | |||
55 | <div id="filter-status" class="filter-group"> | ||
56 | <div class=""> | ||
57 | <label>{% trans %}Status{% endtrans %}</label> | ||
58 | </div> | ||
59 | <div class="input-field"> | ||
60 | {{ form_widget(form.isArchived) }} | ||
61 | <label for="entry_filter_isArchived">{% trans %}Archived{% endtrans %}</label> | ||
62 | </div> | ||
63 | |||
64 | <div class="input-field"> | ||
65 | {{ form_widget(form.isStarred) }} | ||
66 | <label for="entry_filter_isStarred">{% trans %}Starred{% endtrans %}</label> | ||
67 | </div> | ||
68 | |||
69 | <div class="input-field"> | ||
70 | {{ form_widget(form.previewPicture) }} | ||
71 | <label for="entry_filter_previewPicture">{% trans %}Has a preview picture{% endtrans %}</label> | ||
72 | </div> | ||
73 | </div> | ||
74 | <div id="filter-reading-time" class="filter-group"> | ||
75 | <div class=""> | ||
76 | <label>{% trans %}Reading time in minutes{% endtrans %}</label> | ||
77 | </div> | ||
78 | <div class="input-field "> | ||
79 | <label for="entry_filter_readingTime_left_number">{% trans %}from{% endtrans %}</label> | ||
80 | {{ form_widget(form.readingTime.left_number, {'type': 'number'}) }} | ||
81 | </div> | ||
82 | <div class="input-field "> | ||
83 | <label for="entry_filter_readingTime_right_number">{% trans %}to{% endtrans %}</label> | ||
84 | {{ form_widget(form.readingTime.right_number, {'type': 'number'}) }} | ||
85 | </div> | ||
86 | </div> | ||
87 | |||
88 | <div id="filter-domain-name" class="filter-group"> | ||
89 | <label for="entry_filter_domainName">{% trans %}Domain name{% endtrans %}</label> | ||
90 | <div class="input-field "> | ||
91 | {{ form_widget(form.domainName, {'type': 'text', 'attr' : {'placeholder': 'website.com'} }) }} | ||
92 | </div> | ||
93 | </div> | ||
94 | |||
95 | <div id="filter-creation-date" class="filter-group"> | ||
96 | <div class=""> | ||
97 | <label>{% trans %}Creation date{% endtrans %}</label> | ||
98 | </div> | ||
99 | <div class="input-field "> | ||
100 | <label for="entry_filter_createdAt_left_date" class="active">{% trans %}from{% endtrans %}</label> | ||
101 | {{ form_widget(form.createdAt.left_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.left_date.vars.value} }) }} | ||
102 | </div> | ||
103 | <div class="input-field "> | ||
104 | <label for="entry_filter_createdAt_right_date" class="active">{% trans %}to{% endtrans %}</label> | ||
105 | {{ form_widget(form.createdAt.right_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.right_date.vars.value} }) }} | ||
106 | </div> | ||
107 | </div> | ||
108 | <div id="filter-buttons" class="filter-group"> | ||
109 | |||
110 | <div class=""> | ||
111 | <a href="#!" class="center waves-effect waves-green btn-flat" id="clear_form_filters">{% trans %}Clear{% endtrans %}</a> | ||
112 | </div> | ||
113 | |||
114 | <button class="btn waves-effect waves-light" type="submit" id="submit-filter" value="filter">{% trans %}Filters{% endtrans %}</button> | ||
115 | |||
116 | </div> | ||
117 | </form> | ||
118 | </aside> | ||
119 | |||
120 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.xml.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.xml.twig new file mode 100644 index 00000000..a39a8dc3 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/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.readingTime > 0 -%} | ||
21 | {% trans %}estimated reading time :{% endtrans %} {{ entry.readingTime }} min | ||
22 | {%- else -%} | ||
23 | {% trans %}estimated reading time :{% endtrans %} < 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/Entry/entry.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entry.html.twig new file mode 100644 index 00000000..f58d0399 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entry.html.twig | |||
@@ -0,0 +1,104 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ entry.title|raw }} ({{ entry.domainName }}){% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | <div id="article_toolbar"> | ||
7 | <ul class="links"> | ||
8 | <li class="topPosF"><a href="#top" title="{% trans %}Back to top{% endtrans %}" class="tool top icon icon-arrow-up-thick"><span>{% trans %}Back to top{% endtrans %}</span></a></li> | ||
9 | <li><a href="{{ entry.url|e }}" target="_blank" title="{% trans %}original{% endtrans %} : {{ entry.title|e }}" class="tool link icon icon-link"><span>{{ entry.domainName }}</span></a></li> | ||
10 | <li><a title="{% trans %}Mark as read{% endtrans %}" class="tool icon icon-check {% if entry.isArchived == 0 %}archive-off{% else %}archive{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"><span>{% trans %}Toggle mark as read{% endtrans %}</span></a></li> | ||
11 | <li><a title="{% trans %}Favorite{% endtrans %}" class="tool icon icon-star {% if entry.isStarred == 0 %}fav-off{% else %}fav{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"><span>{% trans %}Toggle favorite{% endtrans %}</span></a></li> | ||
12 | <li><a title="{% trans %}Delete{% endtrans %}" class="tool delete icon icon-trash" href="{{ path('delete_entry', { 'id': entry.id }) }}"><span>{% trans %}Delete{% endtrans %}</span></a></li> | ||
13 | {% if 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="{% trans %}Tweet{% endtrans %}"><span>{% trans %}Tweet{% endtrans %}</span></a></li>{% endif %} | ||
14 | {% if share_mail %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="{% trans %}Email{% endtrans %}"><span>{% trans %}Email{% endtrans %}</span></a></li>{% endif %} | ||
15 | {% if share_shaarli %}<li><a href="{{ shaarli_url }}/index.php?post={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="{% trans %}shaarli{% endtrans %}"><span>{% trans %}shaarli{% endtrans %}</span></a></li>{% endif %} | ||
16 | {% if share_diaspora %}<li><a href="{{ diaspora_url }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}¬es=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora icon-image icon-image--diaspora" title="{% trans %}diaspora{% endtrans %}"><span>{% trans %}diaspora{% endtrans %}</span></a></li>{% endif %} | ||
17 | {# {% if flattr %}{% if flattr.status == flattrable %}<li><a href="http://flattr.com/submit/auto?url={{ entry.url }}" class="tool flattr icon icon-flattr" target="_blank" title="{% trans %}flattr{% endtrans %}"><span>{% trans %}flattr{% endtrans %}</span></a></li>{% elseif flattr.status == flattred %}<li><a href="{{ flattr.flattrItemURL }}" class="tool flattr icon icon-flattr" target="_blank" title="{% trans %}flattr{% endtrans %}><span>{% trans %}flattr{% endtrans %}</span> ({{ flattr.numFlattrs }})</a></li>{% endif %}{% endif %} #} | ||
18 | {% if carrot %}<li><a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" class="tool carrot icon-image icon-image--carrot" target="_blank" title="{% trans %}carrot{% endtrans %}"><span>Carrot</span></a></li>{% endif %} | ||
19 | {% if show_printlink %}<li><a title="{% trans %}Print{% endtrans %}" class="tool icon icon-print" href="javascript: window.print();"><span>{% trans %}Print{% endtrans %}</span></a></li>{% endif %} | ||
20 | {% if export_epub %}<li><a href="?epub&method=id&value={{ entry.id }}" title="Generate ePub file">EPUB</a></li>{% endif %} | ||
21 | {% if export_mobi %}<li><a href="?mobi&method=id&value={{ entry.id }}" title="Generate Mobi file">MOBI</a></li>{% endif %} | ||
22 | {% if export_pdf %}<li><a href="?pdf&method=id&value={{ entry.id }}" title="Generate PDF file">PDF</a></li>{% endif %} | ||
23 | <li><a href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&body={{ entry.url|url_encode }}" title="{% trans %}Does this article appear wrong?{% endtrans %}" class="tool bad-display icon icon-delete"><span>{% trans %}Does this article appear wrong?{% endtrans %}</span></a></li> | ||
24 | </ul> | ||
25 | </div> | ||
26 | <div id="article"> | ||
27 | <header class="mbm"> | ||
28 | <h1>{{ entry.title|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{% trans %}Edit tags{% endtrans %}">✎</a></h1> | ||
29 | </header> | ||
30 | <aside class="tags"> | ||
31 | {% for tag in entry.tags %}<span class="mdi-action-label-outline">{{ tag.label }}</span>{% endfor %} | ||
32 | {{ render(controller( "WallabagCoreBundle:Tag:addTagForm", { 'id': entry.id } )) }} | ||
33 | </aside> | ||
34 | {% if entry.previewPicture is not null %} | ||
35 | <div><img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" /></div> | ||
36 | {% endif %} | ||
37 | <article> | ||
38 | {{ entry.content | raw }} | ||
39 | </article> | ||
40 | </div> | ||
41 | <script src="{{ asset('themes/_global/js/restoreScroll.js')}}"></script> | ||
42 | <script type="text/javascript"> | ||
43 | $(document).ready(function() { | ||
44 | |||
45 | // toggle read property of current article | ||
46 | /* $('#markAsRead').click(function(){ | ||
47 | $("body").css("cursor", "wait"); | ||
48 | $.ajax( { url: '{{ path('archive_entry', { 'id': entry.id }) }}' }).done( | ||
49 | function( data ) { | ||
50 | if ( data == '1' ) { | ||
51 | if ( $('#markAsRead').hasClass("archive-off") ) { | ||
52 | $('#markAsRead').removeClass("archive-off"); | ||
53 | $('#markAsRead').addClass("archive"); | ||
54 | } | ||
55 | else { | ||
56 | $('#markAsRead').removeClass("archive"); | ||
57 | $('#markAsRead').addClass("archive-off"); | ||
58 | } | ||
59 | } | ||
60 | else { | ||
61 | alert('Error! Pls check if you are logged in.'); | ||
62 | } | ||
63 | }); | ||
64 | $("body").css("cursor", "auto"); | ||
65 | });*/ | ||
66 | |||
67 | // toggle favorite property of current article | ||
68 | /* $('#setFav').click(function(){ | ||
69 | $("body").css("cursor", "wait"); | ||
70 | $.ajax( { url: '{{ path('star_entry', { 'id': entry.id }) }}' }).done( | ||
71 | function( data ) { | ||
72 | if ( data == '1' ) { | ||
73 | if ( $('#setFav').hasClass("fav-off") ) { | ||
74 | $('#setFav').removeClass("fav-off"); | ||
75 | $('#setFav').addClass("fav"); | ||
76 | } | ||
77 | else { | ||
78 | $('#setFav').removeClass("fav"); | ||
79 | $('#setFav').addClass("fav-off"); | ||
80 | } | ||
81 | } | ||
82 | else { | ||
83 | alert('Error! Pls check if you are logged in.'); | ||
84 | } | ||
85 | }); | ||
86 | $("body").css("cursor", "auto"); | ||
87 | });*/ | ||
88 | |||
89 | $(window).scroll(function(e){ | ||
90 | var scrollTop = $(window).scrollTop(); | ||
91 | var docHeight = $(document).height(); | ||
92 | var scrollPercent = (scrollTop) / (docHeight); | ||
93 | var scrollPercentRounded = Math.round(scrollPercent*100)/100; | ||
94 | savePercent({{ entry.id }}, scrollPercentRounded); | ||
95 | }); | ||
96 | |||
97 | retrievePercent({{ entry.id }}); | ||
98 | |||
99 | $(window).resize(function(){ | ||
100 | retrievePercent({{ entry.id }}); | ||
101 | }); | ||
102 | }); | ||
103 | </script> | ||
104 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/new.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/new.html.twig new file mode 100644 index 00000000..95ed0785 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/new.html.twig | |||
@@ -0,0 +1,7 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}Save new entry{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | {{ render(controller( "WallabagCoreBundle:Entry:addEntryForm" )) }} | ||
7 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/new_form.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/new_form.html.twig new file mode 100644 index 00000000..d182d552 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/new_form.html.twig | |||
@@ -0,0 +1,15 @@ | |||
1 | <form name="entry" method="post" action="{{ path('new_entry')}}"> | ||
2 | |||
3 | {% if form_errors(form) %} | ||
4 | <span class="black-text">{{ form_errors(form) }}</span> | ||
5 | {% endif %} | ||
6 | |||
7 | {% if form_errors(form.url) %} | ||
8 | <span class="black-text">{{ form_errors(form.url) }}</span> | ||
9 | {% endif %} | ||
10 | |||
11 | {{ form_label(form.url) }} | ||
12 | {{ form_widget(form.url) }} | ||
13 | |||
14 | <div class="hidden">{{ form_rest(form) }}</div> | ||
15 | </form> | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Mail/forgotPassword.txt.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Mail/forgotPassword.txt.twig new file mode 100644 index 00000000..631bcb88 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Mail/forgotPassword.txt.twig | |||
@@ -0,0 +1,6 @@ | |||
1 | Hello {{username}}! | ||
2 | |||
3 | To reset your password - please visit {{confirmationUrl}} | ||
4 | |||
5 | Regards, | ||
6 | Wallabag bot | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/checkEmail.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/checkEmail.html.twig new file mode 100644 index 00000000..056d65b5 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/checkEmail.html.twig | |||
@@ -0,0 +1,17 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}Forgot password{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block body_class %}login{% endblock %} | ||
6 | |||
7 | {% block menu %}{% endblock %} | ||
8 | |||
9 | {% block content %} | ||
10 | <form> | ||
11 | <fieldset class="w500p center"> | ||
12 | <h2 class="mbs txtcenter">{% trans %}Forgot password{% endtrans %}</h2> | ||
13 | |||
14 | <p>{{ 'An email has been sent to %email%. It contains a link you must click to reset your password.'|trans({'%email%': email}) }}</p> | ||
15 | </fieldset> | ||
16 | </form> | ||
17 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/forgotPassword.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/forgotPassword.html.twig new file mode 100644 index 00000000..4476ea7b --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/forgotPassword.html.twig | |||
@@ -0,0 +1,31 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}Forgot password{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block body_class %}login{% endblock %} | ||
6 | |||
7 | {% block menu %}{% endblock %} | ||
8 | |||
9 | {% block content %} | ||
10 | <form action="{{ path('forgot_password') }}" method="post" name="forgotPasswordform"> | ||
11 | <fieldset class="w500p center"> | ||
12 | <h2 class="mbs txtcenter">{% trans %}Forgot password{% endtrans %}</h2> | ||
13 | |||
14 | {{ form_errors(form) }} | ||
15 | |||
16 | <p>Enter your email address below and we'll send you password reset instructions.</p> | ||
17 | |||
18 | <div class="row"> | ||
19 | {{ form_label(form.email) }} | ||
20 | {{ form_errors(form.email) }} | ||
21 | {{ form_widget(form.email) }} | ||
22 | </div> | ||
23 | |||
24 | <div class="row mts txtcenter"> | ||
25 | <button type="submit">Send me reset instructions</button> | ||
26 | </div> | ||
27 | </fieldset> | ||
28 | |||
29 | {{ form_rest(form) }} | ||
30 | </form> | ||
31 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/login.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/login.html.twig new file mode 100644 index 00000000..5437d20c --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/login.html.twig | |||
@@ -0,0 +1,39 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}login to your wallabag{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block body_class %}login{% endblock %} | ||
6 | |||
7 | {% block menu %}{% endblock %} | ||
8 | {% block messages %}{% endblock %} | ||
9 | |||
10 | {% block content %} | ||
11 | <form action="{{ path('login_check') }}" method="post" name="loginform"> | ||
12 | <fieldset class="w500p center"> | ||
13 | <h2 class="mbs txtcenter">{% trans %}Login to wallabag{% endtrans %}</h2> | ||
14 | {% if error %} | ||
15 | <div>{{ error.message }}</div> | ||
16 | {% endif %} | ||
17 | |||
18 | {% for flashMessage in app.session.flashbag.get('notice') %} | ||
19 | <p>{{ flashMessage }}</p> | ||
20 | {% endfor %} | ||
21 | |||
22 | <div class="row"> | ||
23 | <label class="col w150p" for="username">{% trans %}Username{% endtrans %}</label> | ||
24 | <input type="text" id="username" name="_username" value="{{ last_username }}" /> | ||
25 | </div> | ||
26 | |||
27 | <div class="row"> | ||
28 | <label class="col w150p" for="password">{% trans %}Password{% endtrans %}</label> | ||
29 | <input type="password" id="password" name="_password" /> | ||
30 | </div> | ||
31 | |||
32 | <div class="row mts txtcenter"> | ||
33 | <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}" /> | ||
34 | <button type="submit">Login</button> | ||
35 | <a href="{{ path('forgot_password') }}" class="small">Forgot your password?</a> | ||
36 | </div> | ||
37 | </fieldset> | ||
38 | </form> | ||
39 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/reset.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/reset.html.twig new file mode 100644 index 00000000..fda88af2 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/reset.html.twig | |||
@@ -0,0 +1,35 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}Change password{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block body_class %}login{% endblock %} | ||
6 | |||
7 | {% block menu %}{% endblock %} | ||
8 | |||
9 | {% block content %} | ||
10 | <form action="{{ path('forgot_password_reset', {'token': token}) }}" method="post" name="loginform"> | ||
11 | <fieldset class="w500p center"> | ||
12 | <h2 class="mbs txtcenter">{% trans %}Change password{% endtrans %}</h2> | ||
13 | |||
14 | {{ form_errors(form) }} | ||
15 | |||
16 | <div class="row"> | ||
17 | {{ form_label(form.new_password.first) }} | ||
18 | {{ form_errors(form.new_password.first) }} | ||
19 | {{ form_widget(form.new_password.first) }} | ||
20 | </div> | ||
21 | |||
22 | <div class="row"> | ||
23 | {{ form_label(form.new_password.second) }} | ||
24 | {{ form_errors(form.new_password.second) }} | ||
25 | {{ form_widget(form.new_password.second) }} | ||
26 | </div> | ||
27 | |||
28 | <div class="row mts txtcenter"> | ||
29 | <button type="submit">Change password</button> | ||
30 | </div> | ||
31 | </fieldset> | ||
32 | |||
33 | {{ form_rest(form) }} | ||
34 | </form> | ||
35 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/about.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/about.html.twig new file mode 100755 index 00000000..311b5067 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/about.html.twig | |||
@@ -0,0 +1,47 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}About{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | <h2>{% trans %}Who is behind wallabag{% endtrans %}</h2> | ||
7 | |||
8 | <dl> | ||
9 | <dt>{% trans %}Developed by{% endtrans %}</dt> | ||
10 | <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{% trans %}website{% endtrans %}</a></dd> | ||
11 | <dd>Thomas Citharel — <a href="https://tcit.fr">{% trans %}website{% endtrans %}</a></dd> | ||
12 | <dd>Jérémy Benoist — <a href="http://www.j0k3r.net">{% trans %}website{% endtrans %}</a></dd> | ||
13 | |||
14 | <dt>{% trans %}And many others contributors ♥{% endtrans %} <a href="https://github.com/wallabag/wallabag/graphs/contributors">{% trans %}on Github{% endtrans %}</a></dt> | ||
15 | |||
16 | <dt>{% trans %}Project website{% endtrans %}</dt> | ||
17 | <dd><a href="https://www.wallabag.org">https://www.wallabag.org</a></dd> | ||
18 | |||
19 | <dt>{% trans %}License{% endtrans %}: <a href="http://en.wikipedia.org/wiki/MIT_License">MIT</a></dt> | ||
20 | |||
21 | <dt>{% trans %}Version{% endtrans %}: {{ version }}</dt> | ||
22 | </dl> | ||
23 | |||
24 | <h2>{% trans %}Getting help{% endtrans %}</h2> | ||
25 | |||
26 | <dl> | ||
27 | <dt>{% trans %}Documentation{% endtrans %}</dt> | ||
28 | <dd><a href="https://doc.wallabag.org/en">english</a></dd> | ||
29 | <dd><a href="https://doc.wallabag.org/fr">français</a></dd> | ||
30 | <dd><a href="https://doc.wallabag.org/de">deutsch</a></dd> | ||
31 | |||
32 | <dt>{% trans %}Bug reports{% endtrans %}</dt> | ||
33 | <dd><a href="https://support.wallabag.org">{% trans %}On our support website{% endtrans %}</a> {% trans %}or{% endtrans %} <a href="https://github.com/wallabag/wallabag/issues">{% trans %}on Github{% endtrans %}</a></dd> | ||
34 | </dl> | ||
35 | |||
36 | <h2>{% trans %}Helping wallabag{% endtrans %}</h2> | ||
37 | |||
38 | <p>{% trans %}wallabag is free and opensource. You can help us:{% endtrans %}</p> | ||
39 | |||
40 | <dl> | ||
41 | <dt>{% trans %}wallabag is free and opensource. You can help us:{% endtrans %}</dt> | ||
42 | <dd>by contributing to the project: <a href="https://github.com/wallabag/wallabag/issues/1254">an issue lists all our needs</a></dd> | ||
43 | <dd><a href="{{ paypal_url }}">{% trans %}via Paypal{% endtrans %}</a></dd> | ||
44 | |||
45 | <dd><a href="{{ flattr_url }}">{% trans %}via Flattr{% endtrans %}</a></dd> | ||
46 | </dl> | ||
47 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/howto.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/howto.html.twig new file mode 100644 index 00000000..58cb316b --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/howto.html.twig | |||
@@ -0,0 +1,28 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}Howto{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block content %} | ||
6 | <h2>{% trans %}Howto{% endtrans %}</h2> | ||
7 | |||
8 | <p>{% trans %}There are several ways to save an article:{% endtrans %}</p> | ||
9 | <ul> | ||
10 | <li><a href="{{ path('new') }}">{% trans %}Thanks to this form{% endtrans %}</a></li> | ||
11 | </ul> | ||
12 | <h3>{% trans %}Browser Addons{% endtrans %}</h3> | ||
13 | <ul> | ||
14 | <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{% trans %}Standard Firefox Add-On{% endtrans %}</a></li> | ||
15 | <li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{% trans %}Chrome Extension{% endtrans %}</a></li> | ||
16 | </ul> | ||
17 | <h3>{% trans %}Mobile Apps{% endtrans %}</h3> | ||
18 | <ul> | ||
19 | <li>Android: <a href="https://f-droid.org/app/fr.gaulupeau.apps.InThePoche" target="_blank">{% trans %}via F-Droid{% endtrans %}</a> {% trans %} or {% endtrans %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" target="_blank">{% trans %}via Google Play{% endtrans %}</a></li> | ||
20 | <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" target="_blank">{% trans %}download the application{% endtrans %}</a></li> | ||
21 | <li>Windows Phone: <a href="http://www.windowsphone.com/en-US/store/app/wallabag/d5226cf1-f422-4e00-996c-88e9c5233332" target="_blank">{% trans %}download the application{% endtrans %}</a></li> | ||
22 | </ul> | ||
23 | <h3>{% trans %}Bookmarklet{% endtrans %}</h3> | ||
24 | <p> | ||
25 | {% trans %}Drag & drop this link to your bookmarks bar:{% endtrans %} {% trans %}bag it!{% endtrans %} | ||
26 | </p> | ||
27 | |||
28 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/new_form.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/new_form.html.twig new file mode 100644 index 00000000..0b5a530d --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/new_form.html.twig | |||
@@ -0,0 +1,15 @@ | |||
1 | <form name="tag" method="post" action="{{ path('new_tag', { 'entry': entry.id })}}"> | ||
2 | |||
3 | {% if form_errors(form) %} | ||
4 | <span class="black-text">{{ form_errors(form) }}</span> | ||
5 | {% endif %} | ||
6 | |||
7 | {% if form_errors(form.label) %} | ||
8 | <span class="black-text">{{ form_errors(form.label) }}</span> | ||
9 | {% endif %} | ||
10 | |||
11 | {{ form_widget(form.label, { 'attr': {'autocomplete': 'off'} }) }} | ||
12 | {{ form_widget(form.save, { 'attr': {'class': 'btn waves-effect waves-light'}, 'label': 'add tag' }) }} | ||
13 | |||
14 | <div class="hidden">{{ form_rest(form) }}</div> | ||
15 | </form> | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/tags.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/tags.html.twig new file mode 100644 index 00000000..c2a461b8 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Tag/tags.html.twig | |||
@@ -0,0 +1,13 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title "Tags" %} | ||
4 | |||
5 | {% block content %} | ||
6 | {% if tags is empty %} | ||
7 | <div class="messages warning"><p>{% trans %}No tags found.{% endtrans %}</p></div> | ||
8 | {% else %} | ||
9 | {% for tag in tags %} | ||
10 | {{tag.label}} | ||
11 | {% endfor %} | ||
12 | {% endif %} | ||
13 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig index dffea036..3d573eaa 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig | |||
@@ -14,4 +14,59 @@ | |||
14 | {{ parent() }} | 14 | {{ parent() }} |
15 | 15 | ||
16 | <script src="{{ asset('themes/baggy/js/init.js') }}"></script> | 16 | <script src="{{ asset('themes/baggy/js/init.js') }}"></script> |
17 | <script src="{{ asset('themes/baggy/js/closeMessage.js') }}"></script> | ||
18 | <script src="{{ asset('themes/baggy/js/autoClose.js') }}"></script> | ||
19 | <script src="{{ asset('themes/baggy/js/saveLink.js') }}"></script> | ||
20 | <script src="{{ asset('themes/baggy/js/popupForm.js') }}"></script> | ||
21 | {% endblock %} | ||
22 | |||
23 | {% block header %} | ||
24 | <header class="w600p center mbm"> | ||
25 | <h1 class="logo"> | ||
26 | {% block logo %} | ||
27 | <img width="100" height="100" src="{{ asset('themes/baggy/img/logo-w.png') }}" alt="wallabag logo" /> | ||
28 | {% endblock %} | ||
29 | </h1> | ||
30 | </header> | ||
31 | {% endblock %} | ||
32 | |||
33 | {% block menu %} | ||
34 | <button id="menu" class="icon icon-menu desktopHide"><span>Menu</span></button> | ||
35 | <ul id="links" class="links"> | ||
36 | <li><a href="{{ path('unread') }}">{% trans %}unread{% endtrans %}</a></li> | ||
37 | <li><a href="{{ path('starred') }}">{% trans %}favorites{% endtrans %}</a></li> | ||
38 | <li><a href="{{ path('archive') }}"}>{% trans %}archive{% endtrans %}</a></li> | ||
39 | <li><a href="{{ path('all') }}"}>{% trans %}all{% endtrans %}</a></li> | ||
40 | <li><a href="{{ path('tag') }}">{% trans %}tags{% endtrans %}</a></li> | ||
41 | <li><a href="{{ path('new') }}">{% trans %}save a link{% endtrans %}</a></li> | ||
42 | <li style="position: relative;"><a href="javascript: void(null);" id="search">{% trans %}search{% endtrans %}</a> | ||
43 | <div id="search-form" class="messages info popup-form"> | ||
44 | <form method="get" action="index.php"> | ||
45 | <h2>{% trans %}Search{% endtrans %}</h2> | ||
46 | <a href="javascript: void(null);" id="search-form-close" class="close-button--popup close-button">×</a> | ||
47 | <input type="hidden" name="view" value="search"></input> | ||
48 | <input required placeholder="{% trans %}Enter your search here{% endtrans %}" type="text" name="search" id="searchfield"><br> | ||
49 | <input id="submit-search" type="submit" value="{% trans %}Search{% endtrans %}"></input> | ||
50 | </form> | ||
51 | </div> | ||
52 | </li> | ||
53 | <li><a href="{{ path('config') }}">{% trans %}config{% endtrans %}</a></li> | ||
54 | <li><a href="{{ path('about') }}">{% trans %}about{% endtrans %}</a></li> | ||
55 | <li><a class="icon icon-power" href="{{ path('logout') }}" title="{% trans %}logout{% endtrans %}">{% trans %}logout{% endtrans %}</a></li> | ||
56 | </ul> | ||
57 | {% endblock %} | ||
58 | |||
59 | {% block messages %} | ||
60 | {% for flashMessage in app.session.flashbag.get('notice') %} | ||
61 | <div class="messages success"> | ||
62 | <a href="#" class="closeMessage">×</a> | ||
63 | <p>{{ flashMessage }}</p> | ||
64 | </div> | ||
65 | {% endfor %} | ||
66 | {% endblock %} | ||
67 | |||
68 | {% block footer %} | ||
69 | <footer class="w600p center mt3 mb3 smaller txtright"> | ||
70 | <p>{% trans %}powered by{% endtrans %} <a href="http://wallabag.org">wallabag</a></p> | ||
71 | </footer> | ||
17 | {% endblock %} | 72 | {% endblock %} |
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 72a7b205..950d8b0e 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 | |||
@@ -939,6 +939,34 @@ pre code { | |||
939 | font-size: 0.96em; | 939 | font-size: 0.96em; |
940 | } | 940 | } |
941 | 941 | ||
942 | #filter-form { | ||
943 | position: fixed; | ||
944 | width: 20%; | ||
945 | height: 100%; | ||
946 | top: 0; | ||
947 | right: 0; | ||
948 | background-color: #FFF; | ||
949 | padding: 15px; | ||
950 | padding-right: 30px; | ||
951 | padding-top: 30px; | ||
952 | |||
953 | z-index: 12; | ||
954 | |||
955 | /*transition-property: transform; | ||
956 | transition-duration: 0.3s; | ||
957 | transition-delay: 0.3s; | ||
958 | |||
959 | transform: translate3d(100%, 0, 0);*/ | ||
960 | } | ||
961 | |||
962 | #filter-form form { | ||
963 | |||
964 | } | ||
965 | |||
966 | #filter-form form .filter-group { | ||
967 | margin: 5px; | ||
968 | } | ||
969 | |||
942 | 970 | ||
943 | /* ========================================================================== | 971 | /* ========================================================================== |
944 | 6 = Media Queries | 972 | 6 = Media Queries |
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/js/autoClose.js b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/js/autoClose.js new file mode 100644 index 00000000..e9145b7e --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/js/autoClose.js | |||
@@ -0,0 +1,6 @@ | |||
1 | $(document).ready(function() { | ||
2 | current_url = window.location.href | ||
3 | if (current_url.match("&closewin=true")) { | ||
4 | window.close(); | ||
5 | } | ||
6 | }); | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/js/autoCompleteTags.js b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/js/autoCompleteTags.js new file mode 100755 index 00000000..90bc982c --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/js/autoCompleteTags.js | |||
@@ -0,0 +1,47 @@ | |||
1 | jQuery(function($) { | ||
2 | |||
3 | function split( val ) { | ||
4 | return val.split( /,\s*/ ); | ||
5 | } | ||
6 | function extractLast( term ) { | ||
7 | return split( term ).pop(); | ||
8 | } | ||
9 | |||
10 | |||
11 | $("#value").bind("keydown", function(event) { | ||
12 | if (event.keyCode === $.ui.keyCode.TAB && $(this).data("ui-autocomplete").menu.active) { | ||
13 | event.preventDefault(); | ||
14 | } | ||
15 | }).autocomplete({ | ||
16 | source : function(request, response) { | ||
17 | $.getJSON("./?view=tags", { | ||
18 | term : extractLast(request.term), | ||
19 | //id: $(':hidden#entry_id').val() | ||
20 | }, response); | ||
21 | }, | ||
22 | search : function() { | ||
23 | // custom minLength | ||
24 | var term = extractLast(this.value); | ||
25 | if (term.length < 1) { | ||
26 | return false; | ||
27 | } | ||
28 | }, | ||
29 | focus : function() { | ||
30 | // prevent value inserted on focus | ||
31 | return false; | ||
32 | }, | ||
33 | select : function(event, ui) { | ||
34 | var terms = split(this.value); | ||
35 | // remove the current input | ||
36 | terms.pop(); | ||
37 | // add the selected item | ||
38 | terms.push(ui.item.value); | ||
39 | // add placeholder to get the comma-and-space at the end | ||
40 | terms.push(""); | ||
41 | this.value = terms.join(", "); | ||
42 | return false; | ||
43 | } | ||
44 | }); | ||
45 | |||
46 | |||
47 | }); | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/js/closeMessage.js b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/js/closeMessage.js new file mode 100644 index 00000000..527719d5 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/js/closeMessage.js | |||
@@ -0,0 +1,17 @@ | |||
1 | $(function(){ | ||
2 | //--------------------------------------------------------------------------- | ||
3 | // Show the close icon when the user hover over a message | ||
4 | //--------------------------------------------------------------------------- | ||
5 | // $('.messages').on('mouseenter', function(){ | ||
6 | // $(this).find('a.closeMessage').stop(true, true).show(); | ||
7 | // }).on('mouseleave', function(){ | ||
8 | // $(this).find('a.closeMessage').stop(true, true).hide(); | ||
9 | // }); | ||
10 | //--------------------------------------------------------------------------- | ||
11 | // Close the message box when the user clicks the close icon | ||
12 | //--------------------------------------------------------------------------- | ||
13 | $('a.closeMessage').on('click', function(){ | ||
14 | $(this).parents('div.messages').slideUp(300, function(){ $(this).remove(); }); | ||
15 | return false; | ||
16 | }); | ||
17 | }); \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/js/popupForm.js b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/js/popupForm.js new file mode 100644 index 00000000..b933acd1 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/js/popupForm.js | |||
@@ -0,0 +1,83 @@ | |||
1 | $(document).ready(function() { | ||
2 | |||
3 | $("#search-form").hide(); | ||
4 | $("#bagit-form").hide(); | ||
5 | $("#filter-form").hide(); | ||
6 | |||
7 | //--------------------------------------------------------------------------- | ||
8 | // Toggle the "Search" popup in the sidebar | ||
9 | //--------------------------------------------------------------------------- | ||
10 | function toggleSearch() { | ||
11 | $("#search-form").toggle(); | ||
12 | $("#search").toggleClass("current"); | ||
13 | $("#search").toggleClass("active-current"); | ||
14 | $("#search-arrow").toggleClass("arrow-down"); | ||
15 | if ($("#search").hasClass("current")) { | ||
16 | $("#content").addClass("opacity03"); | ||
17 | } else { | ||
18 | $("#content").removeClass("opacity03"); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | //--------------------------------------------------------------------------- | ||
23 | // Toggle the "Filter" popup on entries list | ||
24 | //--------------------------------------------------------------------------- | ||
25 | function toggleFilter() { | ||
26 | $("#filter-form").toggle(); | ||
27 | } | ||
28 | |||
29 | //--------------------------------------------------------------------------- | ||
30 | // Toggle the "Save a Link" popup in the sidebar | ||
31 | //--------------------------------------------------------------------------- | ||
32 | function toggleBagit() { | ||
33 | $("#bagit-form").toggle(); | ||
34 | $("#bagit").toggleClass("current"); | ||
35 | $("#bagit").toggleClass("active-current"); | ||
36 | $("#bagit-arrow").toggleClass("arrow-down"); | ||
37 | if ($("#bagit").hasClass("current")) { | ||
38 | $("#content").addClass("opacity03"); | ||
39 | } else { | ||
40 | $("#content").removeClass("opacity03"); | ||
41 | } | ||
42 | } | ||
43 | |||
44 | //--------------------------------------------------------------------------- | ||
45 | // Close all #links popups in the sidebar | ||
46 | //--------------------------------------------------------------------------- | ||
47 | function closePopups() { | ||
48 | $("#links .messages").hide(); | ||
49 | $("#links > li > a").removeClass("active-current"); | ||
50 | $("#links > li > a").removeClass("current"); | ||
51 | $("[id$=-arrow]").removeClass("arrow-down"); | ||
52 | $("#content").removeClass("opacity03"); | ||
53 | } | ||
54 | |||
55 | $("#search").click(function(){ | ||
56 | closePopups(); | ||
57 | toggleSearch(); | ||
58 | $("#searchfield").focus(); | ||
59 | }); | ||
60 | |||
61 | $("#filter").click(function(){ | ||
62 | closePopups(); | ||
63 | toggleFilter(); | ||
64 | }); | ||
65 | |||
66 | $("#bagit").click(function(){ | ||
67 | closePopups(); | ||
68 | toggleBagit(); | ||
69 | $("#plainurl").focus(); | ||
70 | }); | ||
71 | |||
72 | $("#search-form-close").click(function(){ | ||
73 | toggleSearch(); | ||
74 | }); | ||
75 | |||
76 | $("#filter-form-close").click(function(){ | ||
77 | toggleFilter(); | ||
78 | }); | ||
79 | |||
80 | $("#bagit-form-close").click(function(){ | ||
81 | toggleBagit(); | ||
82 | }); | ||
83 | }); | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/js/saveLink.js b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/js/saveLink.js new file mode 100755 index 00000000..a7acd84c --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/public/js/saveLink.js | |||
@@ -0,0 +1,109 @@ | |||
1 | $.fn.ready(function() { | ||
2 | |||
3 | var $bagit = $('#bagit'), | ||
4 | $bagitForm = $('#bagit-form'), | ||
5 | $bagitFormForm = $('#bagit-form-form'); | ||
6 | |||
7 | /* ========================================================================== | ||
8 | bag it link and close button | ||
9 | ========================================================================== */ | ||
10 | |||
11 | function toggleSaveLinkForm(url, event) { | ||
12 | $("#add-link-result").empty(); | ||
13 | |||
14 | $bagit.toggleClass("active-current"); | ||
15 | |||
16 | //only if bag-it link is not presented on page | ||
17 | if ( $bagit.length === 0 ) { | ||
18 | if ( event !== 'undefined' && event ) { | ||
19 | $bagitForm.css( {position:"absolute", top:event.pageY, left:event.pageX-200}); | ||
20 | } | ||
21 | else { | ||
22 | $bagitForm.css( {position:"relative", top:"auto", left:"auto"}); | ||
23 | } | ||
24 | } | ||
25 | |||
26 | if ($("#search-form").length != 0) { | ||
27 | $("#search").removeClass("current"); | ||
28 | $("#search-arrow").removeClass("arrow-down"); | ||
29 | $("#search-form").hide(); | ||
30 | } | ||
31 | $bagitForm.toggle(); | ||
32 | $('#content').toggleClass("opacity03"); | ||
33 | if (url !== 'undefined' && url) { | ||
34 | $('#plainurl').val(url); | ||
35 | } | ||
36 | $('#plainurl').focus(); | ||
37 | } | ||
38 | |||
39 | //--------------------------------------------------------------------------- | ||
40 | // These two functions are now taken care of in popupForm.js | ||
41 | //--------------------------------------------------------------------------- | ||
42 | |||
43 | // $bagit.click(function(){ | ||
44 | // $bagit.toggleClass("current"); | ||
45 | // $("#bagit-arrow").toggleClass("arrow-down"); | ||
46 | // toggleSaveLinkForm(); | ||
47 | // }); | ||
48 | |||
49 | // $("#bagit-form-close").click(function(){ | ||
50 | // $bagit.removeClass("current"); | ||
51 | // $("#bagit-arrow").removeClass("arrow-down"); | ||
52 | // toggleSaveLinkForm(); | ||
53 | // }); | ||
54 | |||
55 | |||
56 | //send "bag it link" form request via ajax | ||
57 | $bagitFormForm.submit( function(event) { | ||
58 | $("body").css("cursor", "wait"); | ||
59 | $("#add-link-result").empty(); | ||
60 | |||
61 | $.ajax({ | ||
62 | type: $bagitFormForm.attr('method'), | ||
63 | url: $bagitFormForm.attr('action'), | ||
64 | data: $bagitFormForm.serialize(), | ||
65 | success: function(data) { | ||
66 | $('#add-link-result').html("Done!"); | ||
67 | $('#plainurl').val(''); | ||
68 | $('#plainurl').blur(''); | ||
69 | $("body").css("cursor", "auto"); | ||
70 | //setTimeout( function() { toggleSaveLinkForm(); }, 1000); //close form after 1000 delay | ||
71 | }, | ||
72 | error: function(data) { | ||
73 | $('#add-link-result').html("Failed!"); | ||
74 | $("body").css("cursor", "auto"); | ||
75 | } | ||
76 | }); | ||
77 | |||
78 | event.preventDefault(); | ||
79 | }); | ||
80 | |||
81 | /* ========================================================================== | ||
82 | Keyboard gestion | ||
83 | ========================================================================== */ | ||
84 | |||
85 | $(window).keydown(function(e){ | ||
86 | if ( ( e.target.tagName.toLowerCase() !== 'input' && e.keyCode == 83 ) || (e.keyCode == 27 && $bagitForm.is(':visible') ) ) { | ||
87 | $bagit.removeClass("current"); | ||
88 | $("#bagit-arrow").removeClass("arrow-down"); | ||
89 | toggleSaveLinkForm(); | ||
90 | return false; | ||
91 | } | ||
92 | }); | ||
93 | |||
94 | /* ========================================================================== | ||
95 | Process all links inside an article | ||
96 | ========================================================================== */ | ||
97 | |||
98 | $("article a[href^='http']").after(function() { | ||
99 | return " <a href=\"" + $(this).attr('href') + "\" class=\"add-to-wallabag-link-after\" alt=\"add to wallabag\" title=\"add to wallabag\"></a> "; | ||
100 | }); | ||
101 | |||
102 | $(".add-to-wallabag-link-after").click(function(event){ | ||
103 | toggleSaveLinkForm($(this).attr('href'), event); | ||
104 | event.preventDefault(); | ||
105 | }); | ||
106 | |||
107 | }); | ||
108 | |||
109 | |||