aboutsummaryrefslogtreecommitdiff
path: root/juick-spring-www/src/main/webapp
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2016-12-09 16:14:27 +0300
committerGravatar Vitaly Takmazov2016-12-09 16:14:27 +0300
commit559ae343aa72db04e12b94acfa0bec30ed9a11f1 (patch)
tree5832b97c6a6a4b565de15a474bae86059763d6bb /juick-spring-www/src/main/webapp
parent22d30c3b50fe0ea4c18c45a4450fb1a8b1f1b1b8 (diff)
juick-spring-www: merge some work from develop branch, port some templates to Thymeleaf
Diffstat (limited to 'juick-spring-www/src/main/webapp')
-rw-r--r--juick-spring-www/src/main/webapp/WEB-INF/templates/layout/mainLayout.html48
-rw-r--r--juick-spring-www/src/main/webapp/WEB-INF/templates/layout/sponsors.html8
-rw-r--r--juick-spring-www/src/main/webapp/WEB-INF/templates/views/help.html18
-rw-r--r--juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/footer.html34
-rw-r--r--juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/homecolumn.html6
-rw-r--r--juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/navigation.html37
-rw-r--r--juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/settings_tabs.html5
-rw-r--r--juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/tags.html3
-rw-r--r--juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_about.html31
-rw-r--r--juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_auth-email.html20
-rw-r--r--juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_main.html167
-rw-r--r--juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_password.html26
-rw-r--r--juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_result.html18
13 files changed, 373 insertions, 48 deletions
diff --git a/juick-spring-www/src/main/webapp/WEB-INF/templates/layout/mainLayout.html b/juick-spring-www/src/main/webapp/WEB-INF/templates/layout/mainLayout.html
index bbee7f6a..61062a3b 100644
--- a/juick-spring-www/src/main/webapp/WEB-INF/templates/layout/mainLayout.html
+++ b/juick-spring-www/src/main/webapp/WEB-INF/templates/layout/mainLayout.html
@@ -11,53 +11,21 @@
<script type="text/javascript" src="/scripts.js" th:href="@{/scripts.js}"></script>
<title layout:title-pattern="$LAYOUT_TITLE - $CONTENT_TITLE">Juick.com</title>
-
+ <meta layout:fragment="headers" />
<link rel="icon" href="//i.juick.com/favicon.png"/>
<!--[if lt IE 9 & (!IEMobile 7)]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<![endif]-->
</head>
<body>
-
-<section layout:fragment="content">
+<div th:replace="views/partial/navigation">Navigation block</div>
+<section id="content">
+ <p layout:fragment="content">Main content</p>
</section>
+<aside id="column">
+ <p layout:fragment="column">Side column</p>
+</aside>
-<footer>
- <div layout:fragment="custom-footer"></div>
- <div id="footer">
- <div id="footer-right">
- <a href="/settings" th:href="@{/settings}" rel="nofollow" th:text="#{link.settings}">Настройки</a> &#183;
- <a href="/help/contacts" th:href="@{/help/contacts}" rel="nofollow" th:text="#{link.contacts}">Контакты</a> &#183;
- <a href="/help/" th:href="@{/help}" rel="nofollow" th:text="#{link.help}">Справка</a> &#183;
- <a href="/help/adv" th:href="@{/help/adv}" rel="nofollow" th:text="#{link.adv}">Реклама</a>
- </div>
- <div id="footer-social">
- <a href="https://twitter.com/Juick" rel="nofollow" class="ico32-twi">Twitter</a>
- <a href="https://vk.com/juick" rel="nofollow" class="ico32-vk">VK</a>
- <a href="https://www.facebook.com/JuickCom" rel="nofollow" class="ico32-fb">Facebook</a>
- </div>
- <div id="footer-left">
- <a href="juick.com">juick.com</a> &copy; 2008-2016
- <div th:replace="${@settingsHolder.isShowSponsors()} ? ~{layout/sponsors :: sponsors} : _"></div>
- </div>
- </div>
- <script>
- (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
- (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
- m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
- })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
- ga('create','UA-385578-4','juick.com');
- ga('require','displayfeatures');
- ga('send','pageview');
- </script>
- <script th:if="${@settingsHolder.isShowSape()}">
- var _acic={dataProvider:10};
- (function(){
- var e=document.createElement('script');e.type='text/javascript';e.async=true;e.src='//www2.aci'+'nt.net/aci.js';
- var t=document.getElementsByTagName('script')[0];t.parentNode.insertBefore(e,t);
- })();
- </script>
- </div>
-</footer>
+<footer th:replace="views/partial/footer">Footer</footer>
</body>
</html> \ No newline at end of file
diff --git a/juick-spring-www/src/main/webapp/WEB-INF/templates/layout/sponsors.html b/juick-spring-www/src/main/webapp/WEB-INF/templates/layout/sponsors.html
deleted file mode 100644
index 6c68a867..00000000
--- a/juick-spring-www/src/main/webapp/WEB-INF/templates/layout/sponsors.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-<body>
-<div th:fragment="sponsors">
- <span th:text="#{label.sponsors}">Спонсоры:</span>
-</div>
-</body>
-</html> \ No newline at end of file
diff --git a/juick-spring-www/src/main/webapp/WEB-INF/templates/views/help.html b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/help.html
new file mode 100644
index 00000000..0500839b
--- /dev/null
+++ b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/help.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org"
+ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+ layout:decorate="~{layout/mainLayout}">
+<head>
+ <title th:text="${title}">Help title</title>
+</head>
+
+<body>
+<section id="content">
+ <article layout:fragment="content" th:utext="${help_data}">Help text</article>
+</section>
+<aside id="column">
+ <p layout:fragment="column" th:utext="${help_nav}">Help navigation</p>
+</aside>
+
+</body>
+</html> \ No newline at end of file
diff --git a/juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/footer.html b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/footer.html
new file mode 100644
index 00000000..6978a2c0
--- /dev/null
+++ b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/footer.html
@@ -0,0 +1,34 @@
+<div id="footer">
+ <div id="footer-right">
+ <a href="/settings" rel="nofollow">Настройки</a> &#183;
+ <a href="/help/ru/contacts" rel="nofollow">Контакты</a> &#183;
+ <a href="/help/" rel="nofollow">Справка</a> &#183;
+ <a href="/help/ru/adv" rel="nofollow">Реклама</a>
+ </div>
+ <div id="footer-social">
+ <a href="https://twitter.com/Juick" rel="nofollow" class="ico32-twi">Twitter</a>
+ <a href="https://vk.com/juick" rel="nofollow" class="ico32-vk">ВКонтакте</a>
+ <a href="https://www.facebook.com/JuickCom" rel="nofollow" class="ico32-fb">Facebook</a>
+ </div>
+ <div id="footer-left">juick.com &copy; 2008-2016
+ {% if links %}
+ <br/>Спонсоры: {{ links }}
+ {% endif %}
+ </div>
+</div>
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+ ga('create','UA-385578-4','juick.com');
+ ga('require','displayfeatures');
+ ga('send','pageview');
+ {% if (sapeon) %}
+ var _acic={dataProvider:10};
+ (function(){
+ var e=document.createElement('script');e.type='text/javascript';e.async=true;e.src='//www2.aci'+'nt.net/aci.js';
+ var t=document.getElementsByTagName('script')[0];t.parentNode.insertBefore(e,t);
+ })();
+ {% endif %}
+</script> \ No newline at end of file
diff --git a/juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/homecolumn.html b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/homecolumn.html
new file mode 100644
index 00000000..5293918d
--- /dev/null
+++ b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/homecolumn.html
@@ -0,0 +1,6 @@
+<p class="tags">
+ {% include "views/partial/tags.html" %}
+ {% if showAdv %}
+ <a href="http://ru.wix.com/">конструктор сайтов</a>
+ {% endif %}
+</p> \ No newline at end of file
diff --git a/juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/navigation.html b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/navigation.html
new file mode 100644
index 00000000..2863d0c3
--- /dev/null
+++ b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/navigation.html
@@ -0,0 +1,37 @@
+<header>
+ <div id="logo"><a href="/">Juick</a></div>
+ <nav id="global">
+ <ul>
+ <li><a href="/">Популярные</a></li>
+ <li><a href="/?show=all" rel="nofollow">Все сообщения</a></li>
+ <li><a href="/?show=photos" rel="nofollow">Фотографии</a></li>
+ </ul>
+ </nav>
+ <div id="search">
+ <form action="/">
+ <input type="text" name="search" class="text" placeholder="Поиск" value="{{ search }}"/>
+ </form>
+ </div>
+ <section id="headdiv">
+ {% if visitor.getUID() > 0 %}
+ <nav id="user">
+ <ul>
+ <li><a href="/?show=my">Моя лента</a></li>
+ <li><a href="/pm/inbox">Приватные</a></li>
+ <li><a href="/?show=discuss">Обсуждения</a></li>
+ <li><a href="/?show=recommended">Рекомендации</a></li>
+ </ul>
+ </nav>
+ <nav id="actions">
+ <ul>
+ <li><a href="/#post">Написать</a></li>
+ <li><a href="/{{ visitor.getName() }}">@{{ visitor.getName() }}</a></li>
+ <li><a href="/logout">Выйти</a></li>
+ </ul>
+ </nav>
+ {% else %}
+ <p>Чтобы добавлять сообщения и комментарии, <a href="#" onclick="return Juick.openDialogLogin()">представьтесь</a>.
+ </p>
+ {% endif %}
+ </section>
+</header>
diff --git a/juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/settings_tabs.html b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/settings_tabs.html
new file mode 100644
index 00000000..d7901d5e
--- /dev/null
+++ b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/settings_tabs.html
@@ -0,0 +1,5 @@
+<div id="pagetabs"><ul>
+ <li><a href="/settings">Main</a></li>
+ <li><a href="/settings?page=password">Password</a></li>
+ <li><a href="/settings?page=about">About</a></li>
+</ul></div> \ No newline at end of file
diff --git a/juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/tags.html b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/tags.html
new file mode 100644
index 00000000..4d05b7fb
--- /dev/null
+++ b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/tags.html
@@ -0,0 +1,3 @@
+{% for tag in tags %}
+ <a href="/tag/{{ tag | urlencode }}" title="{{ tag }}">{{ tag }}</a>
+{% endfor %} \ No newline at end of file
diff --git a/juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_about.html b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_about.html
new file mode 100644
index 00000000..ff82b542
--- /dev/null
+++ b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_about.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org"
+ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+ layout:decorate="~{layout/mainLayout}">
+<head>
+ <title th:text="${title}">Settings title</title>
+</head>
+
+<body>
+<section id="content">
+ <article layout:fragment="content">
+ <form action="/settings" method="POST" enctype="multipart/form-data">
+ <p>Full name: <input type="text" name="fullname" value="{{ userinfo.getFullName() }}"/></p>
+ <p>Country: <input type="text" name="country" value="{{ userinfo.getCountry() }}"/></p>
+ <p>URL: <input type="text" name="url" value="{{ userinfo.getUrl() }}" size="32"/><br/>
+ <small>Please, start with &quot;http://&quot;</small></p>
+ <p>About:<br/>
+ <input type="text" name="descr" value="{{ userinfo.getDescription() }}" style="width: 100%"/><br/>
+ <small>Max. 255 symbols</small></p>
+ <p>Avatar: <input type="file" name="avatar"/><br/>
+ <small>Recommendations: PNG, 96x96, &lt;50Kb. Also, JPG and GIF supported.</small></p>
+ <p><input type="hidden" name="page" value="about"/><input type="submit" value=" OK "/></p>
+ </form>
+ </article>
+</section>
+<aside id="column">
+ <p th:replace="views/partial/settings/tabs">Settings navigation</p>
+</aside>
+
+</body>
+</html> \ No newline at end of file
diff --git a/juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_auth-email.html b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_auth-email.html
new file mode 100644
index 00000000..d4788fd6
--- /dev/null
+++ b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_auth-email.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org"
+ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+ layout:decorate="~{layout/mainLayout}">
+<head>
+ <title th:text="${title}">Settings title</title>
+</head>
+
+<body>
+<section id="content">
+ <article layout:fragment="content">
+ <p th:text="${result}">Authentication result</p><p><a href="/settings">Settings</a>.</p>
+ </article>
+</section>
+<aside id="column">
+ <p th:replace="views/partial/settings/tabs">Settings navigation</p>
+</aside>
+
+</body>
+</html> \ No newline at end of file
diff --git a/juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_main.html b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_main.html
new file mode 100644
index 00000000..42eff2e3
--- /dev/null
+++ b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_main.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org"
+ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+ layout:decorate="~{layout/mainLayout}">
+<head>
+ <title th:text="${title}">Settings title</title>
+</head>
+
+<body>
+<section id="content">
+ <article layout:fragment="content">
+ <h1>Настройки</h1>
+ <form action="/settings" method="POST" enctype="multipart/form-data">
+ <fieldset>
+ <legend>Notification options</legend>
+ <p><input type="checkbox" name="jnotify" value="1" {% if notify_options.isRepliesEnabled() %}
+ checked="checked" {% endif %}/> Reply notifications (&quot;Message posted&quot;)</p>
+ <p><input type="checkbox" name="subscr_notify" value="1" {% if notify_options.isSubscriptionsEnabled() %}
+ checked="checked" {% endif %}/> Subscriptions notifications (&quot;@user subscribed...&quot;)</p>
+ <p><input type="checkbox" name="recomm" value="1" {% if notify_options.isRecommendationsEnabled() %}
+ checked="checked" {% endif %}/> Posts recommendations (&quot;Recommended by @user&quot;)</p>
+ <p><input type="hidden" name="page" value="main"/><input type="submit" value=" OK "/></p>
+ </fieldset>
+ </form>
+ <fieldset>
+ <legend style="background: url(//telegram.org/favicon.ico?3) no-repeat; padding-left: 58px; line-height: 48px;">
+ Telegram</legend>
+ {% if telegram_name is not empty %}
+ <form action="/settings" method="post">
+ <div>Telegram: <b>{{ telegram_name }}</b> &mdash;
+ <input type="hidden" name="page" value="telegram-del"/>
+ <input type="submit" value=" Disable "/>
+ </div>
+ </form>
+ {% else %}
+ <p>To connect Telegram account: send any text message to <a href="https://telegram.me/Juick_bot">@Juick_bot</a>
+ </p>
+ {% endif %}
+ </fieldset>
+ <form action="/settings" method="POST" enctype="multipart/form-data">
+ <fieldset>
+ <legend style="background: url(//static.juick.com/settings/xmpp.png) no-repeat; padding-left: 58px; line-height: 48px;">
+ XMPP accounts
+ </legend>
+ <p>Your accounts:</p>
+ <p>
+ {% for jid in jids %}
+ <label><input type="radio" name="delete" value="xmpp;{{ jid }}">{{ jid }}</label><br/>
+ {% endfor %}
+ {% for auth in auths %}
+ <label><input type="radio" name="delete"
+ value="xmpp-unauth;{{ auth.getAccount() }}">{{ auth.getAccount() }}</label>
+ &mdash; <a href="#"
+ onclick="alert(\'To confirm, please send &quot;AUTH {{ auth.getAuthCode() }}&quot; (without quotes) from this account to &quot;juick@juick.com&quot;.\'); return false;">Confirm</a><br/>
+ {% endfor %}
+ </p>
+ {% if jids is not empty %}
+ <p><input type="hidden" name="page" value="jid-del"/><input type="submit" value=" Delete "/></p>
+ {% endif %}
+ <p>To add new jabber account: send any text message to <a href="xmpp:juick@juick.com?message;body=login">juick@juick.com</a>
+ </p>
+ </fieldset>
+ </form>
+ <fieldset>
+ <legend style="background: url(//static.juick.com/settings/email.png) no-repeat; padding-left: 58px; line-height: 48px;">
+ E-mail
+ </legend>
+ <form action="/settings" method="POST" enctype="multipart/form-data">
+ <p>Add account:<br/>
+ <input type="text" name="account"/>
+ <input type="hidden" name="page" value="email-add"/>
+ <input type="submit" value=" Add "/>
+ </p>
+ </form>
+ <form action="/settings" method="POST" enctype="multipart/form-data">
+ <p>Your accounts:</p>
+ <p>
+ {% for email in emails %}
+ <label><input type="radio" name="account" value="{{ email }}">{{ email }}</label><br/>
+ {% endfor %}
+ {% if emails is empty %}
+ - </p>
+ {% else %}
+ </p>
+ <p><input type="hidden" name="page" value="email-del"/><input type="submit" value=" Delete "/></p>
+ {% endif %}
+ </form>
+ {% if emails is not empty %}
+ <form action="/settings" method="POST" enctype="multipart/form-data">
+ <p>You can receive all your subscriptions by email:<br/>
+ Sent to <select name="account">
+ <option value="">Disabled</option>
+ {% for email in emails %}
+ <option value="{{ email }}" {% if eopts.getEmail()== email %} selected="selected" {% endif %}>
+ {{ email }}
+ </option>
+ {% endfor %}
+ </select> every day at <select name="time">
+ {% for hour in hours %}
+ <option value="{{ hour }}" {% if eopts.getSubscriptionHour() == hour %} selected="selected" {%
+ endif %}>
+ {{ hour }}:00 GMT
+ </option>
+ {% endfor %}
+ </select>
+ <input type="hidden" name="page" value="email-subscr"/>
+ <input type="submit" value="OK"/></p>
+ </form>
+ {% endif %}
+ <p>&nbsp;</p>
+ <p>You can post to Juick via e-mail. Send your <span style="text-decoration: underline">plain text</span>
+ messages to special secret e-mail. You can attach one photo or video file.</p>
+ <p>Secret email: {% if ehash is not empty %} <strong>{{ ehash }}</strong> {% else %}-{% endif %}</p>
+ <form action="/settings" method="post">
+ <p><input type="hidden" name="page" value="email"/><input type="submit" value=" Generate new "/></p>
+ </form>
+ </fieldset>
+ <fieldset>
+ <legend style="background: url(//static.juick.com/settings/facebook.png) no-repeat; padding-left: 58px; line-height: 48px;">
+ Facebook
+ </legend>
+ {% if fbstatus.isConnected() %}
+ {% if fbstatus.isCrosspostEnabled() %}
+ <form action="/settings" method="post">
+ <div>
+ Facebook: <b>Enabled</b> &mdash;
+ <input type="hidden" name="page" value="facebook-disable"/>
+ <input type="submit" value=" Disable "/>
+ </div>
+ </form>
+ {% else %}
+ <form action="/settings" method="post">
+ <div>
+ Facebook: <b>Disabled</b> &mdash;
+ <input type="hidden" name="page" value="facebook-enable"/>
+ <input type="submit" value=" Enable "/>
+ </div>
+ </form>
+ {% endif %}
+ {% else %}
+ <p>Cross-posting to Facebook: <a href="/_fblogin"><img src="//static.juick.com/facebook-connect.png" alt="Connect to Facebook"/></a></p>
+ {% endif %}
+ </fieldset>
+ <fieldset>
+ <legend style="background: url(//static.juick.com/settings/twitter.png) no-repeat; padding-left: 58px; line-height: 48px;">
+ Twitter</legend>
+ {% if twitter_name is not empty %}
+ <form action="/settings" method="post">
+ <div>Twitter: <b>{{ twitter_name }}</b> &mdash;
+ <input type="hidden" name="page" value="twitter-del"/>
+ <input type="submit" value=" Disable "/>
+ </div>
+ </form>
+ {% else %}
+ <p>Cross-posting to Twitter: <a href="/_twitter"><img src="//static.juick.com/twitter-connect.png"
+ alt="Connect to Twitter"/></a></p>
+ {% endif %}
+ </fieldset>
+
+ </article>
+</section>
+<aside id="column">
+ <p th:replace="views/partial/settings/tabs">Settings navigation</p>
+</aside>
+
+</body>
+</html> \ No newline at end of file
diff --git a/juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_password.html b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_password.html
new file mode 100644
index 00000000..4c6e0d4d
--- /dev/null
+++ b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_password.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org"
+ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+ layout:decorate="~{layout/mainLayout}">
+<head>
+ <title th:text="${title}">Settings title</title>
+</head>
+
+<body>
+<section id="content">
+ <fieldset>
+ <legend>Changing your password</legend>
+ <form action="/settings" method="post">
+ <input type="hidden" name="page" value="password"/>
+ <p>Change password: <input type="password" name="password" size="8"/> <input type="submit"
+ value=" Update "/><br/>
+ <i>(max. length - 16 symbols)</i></p>
+ </form>
+ </fieldset>
+</section>
+<aside id="column">
+ <p th:replace="views/partial/settings/tabs">Settings navigation</p>
+</aside>
+
+</body>
+</html> \ No newline at end of file
diff --git a/juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_result.html b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_result.html
new file mode 100644
index 00000000..ddde1baf
--- /dev/null
+++ b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/settings_result.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org"
+ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+ layout:decorate="~{layout/mainLayout}">
+<head>
+ <title th:text="${title}">Settings title</title>
+</head>
+
+<body>
+<section id="content">
+ <p th:utext="${result}">Settings update status</p>
+</section>
+<aside id="column">
+ <p th:replace="views/partial/settings/tabs">Settings navigation</p>
+</aside>
+
+</body>
+</html> \ No newline at end of file