aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexander Alexeev2016-12-11 21:20:32 +0700
committerGravatar Vitaly Takmazov2016-12-11 18:24:38 +0300
commitec0a90256b86890ad4549d0fff5c3fd373c918d4 (patch)
treeecde2e91e96e3f709ce3471b0b9eff778db75547
parent50309fc6e2362a22ae5d1e892b3c8a6a5ce39686 (diff)
i18n for login page; login failure url
-rw-r--r--juick-spring-www/src/main/java/com/juick/www/configuration/WebAppConfiguration.java8
-rw-r--r--juick-spring-www/src/main/java/com/juick/www/configuration/WebSecurityConfig.java2
-rw-r--r--juick-spring-www/src/main/java/com/juick/www/controllers/PMController.java4
-rw-r--r--juick-spring-www/src/main/resources/messages.properties13
-rw-r--r--juick-spring-www/src/main/resources/messages_en.properties11
-rw-r--r--juick-spring-www/src/main/webapp/WEB-INF/templates/views/login.html193
-rw-r--r--juick-spring-www/src/main/webapp/WEB-INF/templates/views/partial/footer.html2
-rw-r--r--juick-spring-www/src/main/webapp/tagscloud.pngbin0 -> 42316 bytes
8 files changed, 134 insertions, 99 deletions
diff --git a/juick-spring-www/src/main/java/com/juick/www/configuration/WebAppConfiguration.java b/juick-spring-www/src/main/java/com/juick/www/configuration/WebAppConfiguration.java
index b314db64..a6632289 100644
--- a/juick-spring-www/src/main/java/com/juick/www/configuration/WebAppConfiguration.java
+++ b/juick-spring-www/src/main/java/com/juick/www/configuration/WebAppConfiguration.java
@@ -5,6 +5,8 @@ import com.juick.www.WebApp;
import com.juick.www.settings.TemplateSettingsHolder;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.guava.GuavaCacheManager;
+import org.springframework.cache.interceptor.KeyGenerator;
+import org.springframework.cache.interceptor.SimpleKeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
@@ -54,4 +56,10 @@ public class WebAppConfiguration {
public HelpService helpService() {
return new HelpService("help");
}
+
+ @Bean
+ public KeyGenerator keyGenerator() {
+ // configure and return an implementation of Spring's KeyGenerator SPI
+ return new SimpleKeyGenerator();
+ }
}
diff --git a/juick-spring-www/src/main/java/com/juick/www/configuration/WebSecurityConfig.java b/juick-spring-www/src/main/java/com/juick/www/configuration/WebSecurityConfig.java
index 551c0185..bb6387d6 100644
--- a/juick-spring-www/src/main/java/com/juick/www/configuration/WebSecurityConfig.java
+++ b/juick-spring-www/src/main/java/com/juick/www/configuration/WebSecurityConfig.java
@@ -48,10 +48,10 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
.loginPage("/login")
.permitAll()
.defaultSuccessUrl("/")
- .failureForwardUrl("/login?error=1")
.loginProcessingUrl("/do_login")
.usernameParameter("j_username")
.passwordParameter("j_password")
+ .failureUrl("/login?error=1")
.and()
.rememberMe()
.tokenValiditySeconds(6 * 30 * 24 * 3600)
diff --git a/juick-spring-www/src/main/java/com/juick/www/controllers/PMController.java b/juick-spring-www/src/main/java/com/juick/www/controllers/PMController.java
index 41c6b33c..d40e7aaf 100644
--- a/juick-spring-www/src/main/java/com/juick/www/controllers/PMController.java
+++ b/juick-spring-www/src/main/java/com/juick/www/controllers/PMController.java
@@ -42,13 +42,17 @@ public class PMController {
@RequestMapping("/pm/inbox")
public String doGetInbox(ModelMap context) {
User visitor = UserUtils.getCurrentUser();
+
String title = "PM: Inbox";
List<Message> msgs = pmQueriesService.getLastPMInbox(visitor.getUid());
+
msgs.forEach(m -> m.setText(MessageUtils.formatMessage(m.getText())));
+
context.put("title", title);
context.put("visitor", visitor);
context.put("msgs", msgs);
context.put("tags", tagService.getPopularTags());
+
return "views/pm_inbox";
}
diff --git a/juick-spring-www/src/main/resources/messages.properties b/juick-spring-www/src/main/resources/messages.properties
index a7034c5f..201c1f2c 100644
--- a/juick-spring-www/src/main/resources/messages.properties
+++ b/juick-spring-www/src/main/resources/messages.properties
@@ -19,7 +19,16 @@ link.logout=Выйти
label.sponsor=Спонсор
label.sponsors=Спонсоры
label.search=Поиск
+label.register=Зарегистрироваться
+label.username=Имя пользователя
+label.password=Пароль
-message.loginForSending=Чтобы добавлять сообщения и комментарии, <a href="{0}">представьтесь</a>
+button.send=Отправить
-title.help=Справка \ No newline at end of file
+message.loginForSending=Чтобы добавлять сообщения и комментарии, <a href="{0}">представьтесь</a>
+message.sendLoginToXmpp=Отправьте <b>LOGIN</b> на <a href="xmpp:juick@juick.com?message;body=LOGIN">juick@juick.com</a>
+
+question.areRegistered=Уже зарегистрированы?
+
+title.help=Справка
+title.loginOrSignup=Juick - Войдите в систему или зарегистрируйтесь \ No newline at end of file
diff --git a/juick-spring-www/src/main/resources/messages_en.properties b/juick-spring-www/src/main/resources/messages_en.properties
index 02c83e12..8b1384cb 100644
--- a/juick-spring-www/src/main/resources/messages_en.properties
+++ b/juick-spring-www/src/main/resources/messages_en.properties
@@ -19,7 +19,16 @@ link.logout=Logout
label.sponsor=Sponsor
label.sponsors=Sponsors
label.search=Search
+label.register=Register
+label.username=User name
+label.password=Password
+
+button.send=Send
message.loginForSending=<a href="{0}">Login</a> for post messages and comments
+message.sendLoginToXmpp=Send <b>LOGIN</b> to <a href="xmpp:juick@juick.com?message;body=LOGIN">juick@juick.com</a>
+
+question.areRegistered=Are you registered?
-title.help=Help \ No newline at end of file
+title.help=Help
+title.loginOrSignup=Juick - Log In or Sign Up \ No newline at end of file
diff --git a/juick-spring-www/src/main/webapp/WEB-INF/templates/views/login.html b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/login.html
index 990797c9..d2e424cd 100644
--- a/juick-spring-www/src/main/webapp/WEB-INF/templates/views/login.html
+++ b/juick-spring-www/src/main/webapp/WEB-INF/templates/views/login.html
@@ -1,7 +1,11 @@
<!DOCTYPE html>
-<html>
+<html xmlns:th="http://www.thymeleaf.org">
<head>
- <title>Juick</title>
+ <meta charset="UTF-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"/>
+
+ <title th:text="#{title.loginOrSignup}">Juick</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" defer="defer"></script>
<style>
* { margin: 0; padding: 0; }
@@ -30,110 +34,111 @@
input.txt { width: 212px; border: 1px solid #CCC; margin: 3px 0; padding: 3px; }
input.submit { width: 70px; border: 1px solid #CCC; margin: 3px 0; padding: 3px; }
</style>
- <link rel="icon" href="//i.juick.com/favicon.png"/>
+ <link rel="icon" href="//i.juick.com/favicon.png" th:href="@{/favicon.png}"/>
</head>
-
<body>
<ul id="tags">
- <li><a href="/tag/juick" style="left: 359px; top: 120px; width: 311px; height: 99px">juick</a></li>
- <li><a href="/tag/linux" style="left: 201px; top: 100px; width: 98px; height: 35px">linux</a></li>
- <li><a href="/tag/android" style="left: 314px; top: 42px; width: 45px; height: 158px">android</a></li>
- <li><a href="/tag/работа" style="left: 149px; top: 138px; width: 165px; height: 41px">работа</a></li>
- <li><a href="/tag/music" style="left: 119px; top: 249px; width: 124px; height: 32px">music</a></li>
- <li><a href="/tag/windows" style="left: 448px; top: 234px; width: 186px; height: 32px">windows</a></li>
- <li><a href="/tag/google" style="left: 244px; top: 252px; width: 134px; height: 41px">google</a></li>
- <li><a href="/tag/кино" style="left: 68px; top: 83px; width: 97px; height: 28px">кино</a></li>
- <li><a href="/tag/фото" style="left: 400px; top: 266px; width: 101px; height: 29px">фото</a></li>
- <li><a href="/tag/жизнь" style="left: 554px; top: 266px; width: 125px; height: 27px">жизнь</a></li>
- <li><a href="/tag/еда" style="left: 46px; top: 196px; width: 71px; height: 32px">еда</a></li>
- <li><a href="/tag/музыка" style="left: 61px; top: 111px; width: 139px; height: 27px">музыка</a></li>
- <li><a href="/tag/прекрасное" style="left: 152px; top: 200px; width: 205px; height: 32px">прекрасное</a></li>
- <li><a href="/tag/книги" style="left: 148px; top: 293px; width: 103px; height: 25px">книги</a></li>
- <li><a href="/tag/цитата" style="left: 325px; top: 301px; width: 126px; height: 27px">цитата</a></li> <li><a href="/tag/games" style="left: 117px; top: 142px; width: 30px; height: 104px">games</a></li>
- <li><a href="/tag/ubuntu" style="left: 503px; top: 2px; width: 28px; height: 102px">ubuntu</a></li>
- <li><a href="/tag/котэ" style="left: 534px; top: 27px; width: 76px; height: 28px">котэ</a></li>
- <li><a href="/tag/ВНЕЗАПНО" style="left: 501px; top: 293px; width: 146px; height: 23px">ВНЕЗАПНО</a></li>
- <li><a href="/tag/юмор" style="left: 73px; top: 53px; width: 84px; height: 28px">юмор</a></li>
- <li><a href="/tag/мысли" style="left: 202px; top: 179px; width: 102px; height: 21px">мысли</a></li>
- <li><a href="/tag/pic" style="left: 400px; top: 78px; width: 33px; height: 38px">pic</a></li>
- <li><a href="/tag/политота" style="left: 531px; top: 60px; width: 130px; height: 24px">политота</a></li>
- <li><a href="/tag/WOT" style="left: 159px; top: 63px; width: 48px; height: 20px">WOT</a></li>
- <li><a href="/tag/fail" style="left: 8px; top: 170px; width: 34px; height: 27px">fail</a></li>
- <li><a href="/tag/погода" style="left: 670px; top: 126px; width: 24px; height: 93px">погода</a></li>
- <li><a href="/tag/apple" style="left: 42px; top: 167px; width: 64px; height: 29px">apple</a></li>
- <li><a href="/tag/jabber" style="left: 436px; top: 43px; width: 25px; height: 75px">jabber</a></li>
- <li><a href="/tag/тян" style="left: 532px; top: 94px; width: 47px; height: 21px">тян</a></li>
- <li><a href="/tag/work" style="left: 359px; top: 55px; width: 58px; height: 23px">work</a></li>
- <li><a href="/tag/Python" style="left: 240px; top: 63px; width: 74px; height: 23px">Python</a></li>
- <li><a href="/tag/Видео" style="left: 266px; top: 232px; width: 76px; height: 20px">Видео</a></li>
- <li><a href="/tag/авто" style="left: 359px; top: 30px; width: 58px; height: 24px">авто</a></li>
- <li><a href="/tag/Anime" style="left: 360px; top: 328px; width: 66px; height: 21px">Anime</a></li>
- <li><a href="/tag/игры" style="left: 378px; top: 242px; width: 22px; height: 58px">игры</a></li>
- <li><a href="/tag/вело" style="left: 176px; top: 9px; width: 18px; height: 54px">вело</a></li>
- <li><a href="/tag/web" style="left: 661px; top: 219px; width: 22px; height: 47px">web</a></li>
- <li><a href="/tag/YouTube" style="left: 498px; top: 316px; width: 81px; height: 24px">YouTube</a></li>
- <li><a href="/tag/Вопрос" style="left: 208px; top: 18px; width: 22px; height: 72px">Вопрос</a></li>
- <li><a href="/tag/железо" style="left: 159px; top: 318px; width: 75px; height: 16px">железо</a></li>
- <li><a href="/tag/Microsoft" style="left: 20px; top: 146px; width: 86px; height: 21px">Microsoft</a></li>
- <li><a href="/tag/video" style="left: 616px; top: 101px; width: 51px; height: 19px">video</a></li>
- <li><a href="/tag/Россия" style="left: 32px; top: 242px; width: 68px; height: 16px">Россия</a></li>
- <li><a href="/tag/java" style="left: 409px; top: 226px; width: 39px; height: 22px">java</a></li>
- <li><a href="/tag/новости" style="left: 39px; top: 67px; width: 21px; height: 79px">новости</a></li>
- <li><a href="/tag/интернет" style="left: 100px; top: 233px; width: 17px; height: 85px">интернет</a></li>
- <li><a href="/tag/steam" style="left: 14px; top: 228px; width: 52px; height: 13px">steam</a></li>
- <li><a href="/tag/слова" style="left: 501px; top: 272px; width: 51px; height: 18px">слова</a></li>
- <li><a href="/tag/почта" style="left: 477px; top: 27px; width: 17px; height: 56px">почта</a></li>
- <li><a href="/tag/help" style="left: 123px; top: 281px; width: 21px; height: 35px">help</a></li>
- <li><a href="/tag/skype" style="left: 110px; top: 320px; width: 49px; height: 20px">skype</a></li>
- <li><a href="/tag/debian" style="left: 461px; top: 47px; width: 16px; height: 51px">debian</a></li>
- <li><a href="/tag/win" style="left: 505px; top: 104px; width: 27px; height: 16px">win</a></li>
- <li><a href="/tag/Религия" style="left: 33px; top: 281px; width: 67px; height: 17px">Религия</a></li>
- <li><a href="/tag/soft" style="left: 286px; top: 86px; width: 28px; height: 14px">soft</a></li>
- <li><a href="/tag/Политика" style="left: 144px; top: 281px; width: 75px; height: 12px">Политика</a></li>
- <li><a href="/tag/сны" style="left: 426px; top: 328px; width: 33px; height: 13px">сны</a></li>
- <li><a href="/tag/Питер" style="left: 146px; top: 233px; width: 50px; height: 16px">Питер</a></li>
- <li><a href="/tag/bash" style="left: 451px; top: 311px; width: 38px; height: 16px">bash</a></li>
- <li><a href="/tag/code" style="left: 279px; top: 310px; width: 39px; height: 16px">code</a></li>
- <li><a href="/tag/yandex" style="left: 19px; top: 263px; width: 56px; height: 18px">yandex</a></li>
- <li><a href="/tag/firefox" style="left: 452px; top: 295px; width: 48px; height: 16px">firefox</a></li>
- <li><a href="/tag/hardware" style="left: 230px; top: 40px; width: 67px; height: 18px">hardware</a></li>
- <li><a href="/tag/git" style="left: 78px; top: 258px; width: 20px; height: 19px">git</a></li>
- <li><a href="/tag/dev" style="left: 165px; top: 88px; width: 31px; height: 19px">dev</a></li>
- <li><a href="/tag/mobile" style="left: 421px; top: 24px; width: 15px; height: 47px">mobile</a></li>
- <li><a href="/tag/люди" style="left: 151px; top: 184px; width: 43px; height: 15px">люди</a></li>
- <li><a href="/tag/php" style="left: 149px; top: 24px; width: 27px; height: 18px">php</a></li>
- <li><a href="/tag/haskell" style="left: 271px; top: 293px; width: 48px; height: 16px">haskell</a></li>
- <li><a href="/tag/стихи" style="left: 135px; top: 42px; width: 41px; height: 11px">стихи</a></li>
- <li><a href="/tag/photo" style="left: 639px; top: 219px; width: 20px; height: 39px">photo</a></li>
- <li><a href="/tag/чай" style="left: 448px; top: 220px; width: 27px; height: 14px">чай</a></li>
- <li><a href="/tag/Опрос" style="left: 297px; top: 22px; width: 14px; height: 41px">Опрос</a></li>
- <li><a href="/tag/Chrome" style="left: 311px; top: 25px; width: 48px; height: 17px">Chrome</a></li>
- <li><a href="/tag/life" style="left: 255px; top: 311px; width: 23px; height: 16px">life</a></li>
- <li><a href="/tag/opera" style="left: 226px; top: 232px; width: 38px; height: 14px">opera</a></li>
- <li><a href="/tag/programming" style="left: 234px; top: 327px; width: 81px; height: 14px">programming</a></li>
- <li><a href="/tag/дети" style="left: 15px; top: 197px; width: 31px; height: 13px">дети</a></li>
- <li><a href="/tag/сериалы" style="left: 575px; top: 219px; width: 61px; height: 13px">сериалы</a></li>
- <li><a href="/tag/учеба" style="left: 616px; top: 84px; width: 43px; height: 17px">учеба</a></li>
+ <li><a href="/tag/juick" th:href="@{/tag/juick}" style="left: 359px; top: 120px; width: 311px; height: 99px">juick</a></li>
+ <li><a href="/tag/linux" th:href="@{/tag/linux}" style="left: 201px; top: 100px; width: 98px; height: 35px">linux</a></li>
+ <li><a href="/tag/android" th:href="@{/tag/android}" style="left: 314px; top: 42px; width: 45px; height: 158px">android</a></li>
+ <li><a href="/tag/работа" th:href="@{/tag/работа}" style="left: 149px; top: 138px; width: 165px; height: 41px">работа</a></li>
+ <li><a href="/tag/music" th:href="@{/tag/music}" style="left: 119px; top: 249px; width: 124px; height: 32px">music</a></li>
+ <li><a href="/tag/windows" th:href="@{/tag/windows}" style="left: 448px; top: 234px; width: 186px; height: 32px">windows</a></li>
+ <li><a href="/tag/google" th:href="@{/tag/google}" style="left: 244px; top: 252px; width: 134px; height: 41px">google</a></li>
+ <li><a href="/tag/кино" th:href="@{/tag/кино}" style="left: 68px; top: 83px; width: 97px; height: 28px">кино</a></li>
+ <li><a href="/tag/фото" th:href="@{/tag/фото}" style="left: 400px; top: 266px; width: 101px; height: 29px">фото</a></li>
+ <li><a href="/tag/жизнь" th:href="@{/tag/жизнь}" style="left: 554px; top: 266px; width: 125px; height: 27px">жизнь</a></li>
+ <li><a href="/tag/еда" th:href="@{/tag/еда}" style="left: 46px; top: 196px; width: 71px; height: 32px">еда</a></li>
+ <li><a href="/tag/музыка" th:href="@{/tag/музыка}" style="left: 61px; top: 111px; width: 139px; height: 27px">музыка</a></li>
+ <li><a href="/tag/прекрасное" th:href="@{/tag/прекрасное}" style="left: 152px; top: 200px; width: 205px; height: 32px">прекрасное</a></li>
+ <li><a href="/tag/книги" th:href="@{/tag/книги}" style="left: 148px; top: 293px; width: 103px; height: 25px">книги</a></li>
+ <li><a href="/tag/цитата" th:href="@{/tag/цитата}" style="left: 325px; top: 301px; width: 126px; height: 27px">цитата</a></li> <li><a href="/tag/games" style="left: 117px; top: 142px; width: 30px; height: 104px">games</a></li>
+ <li><a href="/tag/ubuntu" th:href="@{/tag/ubuntu}" style="left: 503px; top: 2px; width: 28px; height: 102px">ubuntu</a></li>
+ <li><a href="/tag/котэ" th:href="@{/tag/котэ}" style="left: 534px; top: 27px; width: 76px; height: 28px">котэ</a></li>
+ <li><a href="/tag/ВНЕЗАПНО" th:href="@{/tag/ВНЕЗАПНО}" style="left: 501px; top: 293px; width: 146px; height: 23px">ВНЕЗАПНО</a></li>
+ <li><a href="/tag/юмор" th:href="@{/tag/юмор}" style="left: 73px; top: 53px; width: 84px; height: 28px">юмор</a></li>
+ <li><a href="/tag/мысли" th:href="@{/tag/мысли}" style="left: 202px; top: 179px; width: 102px; height: 21px">мысли</a></li>
+ <li><a href="/tag/pic" th:href="@{/tag/pic}" style="left: 400px; top: 78px; width: 33px; height: 38px">pic</a></li>
+ <li><a href="/tag/политота" th:href="@{/tag/политота}" style="left: 531px; top: 60px; width: 130px; height: 24px">политота</a></li>
+ <li><a href="/tag/WOT" th:href="@{/tag/WOT}" style="left: 159px; top: 63px; width: 48px; height: 20px">WOT</a></li>
+ <li><a href="/tag/fail" th:href="@{/tag/fail}" style="left: 8px; top: 170px; width: 34px; height: 27px">fail</a></li>
+ <li><a href="/tag/погода" th:href="@{/tag/погода}" style="left: 670px; top: 126px; width: 24px; height: 93px">погода</a></li>
+ <li><a href="/tag/apple" th:href="@{/tag/apple}" style="left: 42px; top: 167px; width: 64px; height: 29px">apple</a></li>
+ <li><a href="/tag/jabber" th:href="@{/tag/jabber}" style="left: 436px; top: 43px; width: 25px; height: 75px">jabber</a></li>
+ <li><a href="/tag/тян" th:href="@{/tag/тян}" style="left: 532px; top: 94px; width: 47px; height: 21px">тян</a></li>
+ <li><a href="/tag/work" th:href="@{/tag/work}" style="left: 359px; top: 55px; width: 58px; height: 23px">work</a></li>
+ <li><a href="/tag/Python" th:href="@{/tag/Python}" style="left: 240px; top: 63px; width: 74px; height: 23px">Python</a></li>
+ <li><a href="/tag/Видео" th:href="@{/tag/Видео}" style="left: 266px; top: 232px; width: 76px; height: 20px">Видео</a></li>
+ <li><a href="/tag/авто" th:href="@{/tag/авто}" style="left: 359px; top: 30px; width: 58px; height: 24px">авто</a></li>
+ <li><a href="/tag/Anime" th:href="@{/tag/Anime}" style="left: 360px; top: 328px; width: 66px; height: 21px">Anime</a></li>
+ <li><a href="/tag/игры" th:href="@{/tag/игры}" style="left: 378px; top: 242px; width: 22px; height: 58px">игры</a></li>
+ <li><a href="/tag/вело" th:href="@{/tag/вело}" style="left: 176px; top: 9px; width: 18px; height: 54px">вело</a></li>
+ <li><a href="/tag/web" th:href="@{/tag/web}" style="left: 661px; top: 219px; width: 22px; height: 47px">web</a></li>
+ <li><a href="/tag/YouTube" th:href="@{/tag/YouTube}" style="left: 498px; top: 316px; width: 81px; height: 24px">YouTube</a></li>
+ <li><a href="/tag/Вопрос" th:href="@{/tag/Вопрос}" style="left: 208px; top: 18px; width: 22px; height: 72px">Вопрос</a></li>
+ <li><a href="/tag/железо" th:href="@{/tag/железо}" style="left: 159px; top: 318px; width: 75px; height: 16px">железо</a></li>
+ <li><a href="/tag/Microsoft" th:href="@{/tag/Microsoft}" style="left: 20px; top: 146px; width: 86px; height: 21px">Microsoft</a></li>
+ <li><a href="/tag/video" th:href="@{/tag/video}" style="left: 616px; top: 101px; width: 51px; height: 19px">video</a></li>
+ <li><a href="/tag/Россия" th:href="@{/tag/Россия}" style="left: 32px; top: 242px; width: 68px; height: 16px">Россия</a></li>
+ <li><a href="/tag/java" th:href="@{/tag/java}" style="left: 409px; top: 226px; width: 39px; height: 22px">java</a></li>
+ <li><a href="/tag/новости" th:href="@{/tag/новости}" style="left: 39px; top: 67px; width: 21px; height: 79px">новости</a></li>
+ <li><a href="/tag/интернет" th:href="@{/tag/интернет}" style="left: 100px; top: 233px; width: 17px; height: 85px">интернет</a></li>
+ <li><a href="/tag/steam" th:href="@{/tag/steam}" style="left: 14px; top: 228px; width: 52px; height: 13px">steam</a></li>
+ <li><a href="/tag/слова" th:href="@{/tag/слова}" style="left: 501px; top: 272px; width: 51px; height: 18px">слова</a></li>
+ <li><a href="/tag/почта" th:href="@{/tag/почта}" style="left: 477px; top: 27px; width: 17px; height: 56px">почта</a></li>
+ <li><a href="/tag/help" th:href="@{/tag/help}" style="left: 123px; top: 281px; width: 21px; height: 35px">help</a></li>
+ <li><a href="/tag/skype" th:href="@{/tag/skype}" style="left: 110px; top: 320px; width: 49px; height: 20px">skype</a></li>
+ <li><a href="/tag/debian" th:href="@{/tag/debian}" style="left: 461px; top: 47px; width: 16px; height: 51px">debian</a></li>
+ <li><a href="/tag/win" th:href="@{/tag/win}" style="left: 505px; top: 104px; width: 27px; height: 16px">win</a></li>
+ <li><a href="/tag/Религия" th:href="@{/tag/Религия}" style="left: 33px; top: 281px; width: 67px; height: 17px">Религия</a></li>
+ <li><a href="/tag/soft" th:href="@{/tag/soft}" style="left: 286px; top: 86px; width: 28px; height: 14px">soft</a></li>
+ <li><a href="/tag/Политика" th:href="@{/tag/Политика}" style="left: 144px; top: 281px; width: 75px; height: 12px">Политика</a></li>
+ <li><a href="/tag/сны" th:href="@{/tag/сны}" style="left: 426px; top: 328px; width: 33px; height: 13px">сны</a></li>
+ <li><a href="/tag/Питер" th:href="@{/tag/Питер}" style="left: 146px; top: 233px; width: 50px; height: 16px">Питер</a></li>
+ <li><a href="/tag/bash" th:href="@{/tag/bash}" style="left: 451px; top: 311px; width: 38px; height: 16px">bash</a></li>
+ <li><a href="/tag/code" th:href="@{/tag/code}" style="left: 279px; top: 310px; width: 39px; height: 16px">code</a></li>
+ <li><a href="/tag/yandex" th:href="@{/tag/yandex}" style="left: 19px; top: 263px; width: 56px; height: 18px">yandex</a></li>
+ <li><a href="/tag/firefox" th:href="@{/tag/firefox}" style="left: 452px; top: 295px; width: 48px; height: 16px">firefox</a></li>
+ <li><a href="/tag/hardware" th:href="@{/tag/hardware}" style="left: 230px; top: 40px; width: 67px; height: 18px">hardware</a></li>
+ <li><a href="/tag/git" th:href="@{/tag/git}" style="left: 78px; top: 258px; width: 20px; height: 19px">git</a></li>
+ <li><a href="/tag/dev" th:href="@{/tag/dev}" style="left: 165px; top: 88px; width: 31px; height: 19px">dev</a></li>
+ <li><a href="/tag/mobile" th:href="@{/tag/mobile}" style="left: 421px; top: 24px; width: 15px; height: 47px">mobile</a></li>
+ <li><a href="/tag/люди" th:href="@{/tag/люди}" style="left: 151px; top: 184px; width: 43px; height: 15px">люди</a></li>
+ <li><a href="/tag/php" th:href="@{/tag/php}" style="left: 149px; top: 24px; width: 27px; height: 18px">php</a></li>
+ <li><a href="/tag/haskell" th:href="@{/tag/haskell}" style="left: 271px; top: 293px; width: 48px; height: 16px">haskell</a></li>
+ <li><a href="/tag/стихи" th:href="@{/tag/стихи}" style="left: 135px; top: 42px; width: 41px; height: 11px">стихи</a></li>
+ <li><a href="/tag/photo" th:href="@{/tag/photo}" style="left: 639px; top: 219px; width: 20px; height: 39px">photo</a></li>
+ <li><a href="/tag/чай" th:href="@{/tag/чай}" style="left: 448px; top: 220px; width: 27px; height: 14px">чай</a></li>
+ <li><a href="/tag/Опрос" th:href="@{/tag/Опрос}" style="left: 297px; top: 22px; width: 14px; height: 41px">Опрос</a></li>
+ <li><a href="/tag/Chrome" th:href="@{/tag/Chrome}" style="left: 311px; top: 25px; width: 48px; height: 17px">Chrome</a></li>
+ <li><a href="/tag/life" th:href="@{/tag/life}" style="left: 255px; top: 311px; width: 23px; height: 16px">life</a></li>
+ <li><a href="/tag/opera" th:href="@{/tag/opera}" style="left: 226px; top: 232px; width: 38px; height: 14px">opera</a></li>
+ <li><a href="/tag/programming" th:href="@{/tag/programming}" style="left: 234px; top: 327px; width: 81px; height: 14px">programming</a></li>
+ <li><a href="/tag/дети" th:href="@{/tag/дети}" style="left: 15px; top: 197px; width: 31px; height: 13px">дети</a></li>
+ <li><a href="/tag/сериалы" th:href="@{/tag/сериалы}" style="left: 575px; top: 219px; width: 61px; height: 13px">сериалы</a></li>
+ <li><a href="/tag/учеба" th:href="@{/tag/учеба}" style="left: 616px; top: 84px; width: 43px; height: 17px">учеба</a></li>
</ul>
-<div id="bottom1">juick.com &copy; 2008-2016 &nbsp; <a href="/help/ru/contacts" rel="nofollow">Контакты</a> &#183; <a href="/help/" rel="nofollow">Помощь</a></div>
+<div id="bottom1">juick.com &copy; 2008-2017 &nbsp; <a href="/help/ru/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></div>
<div id="signup">
- Зарегистрироваться:
+ <span th:text="#{label.register}">Зарегистрироваться:</span>
<div id="facebook"><a href="/_fblogin" rel="nofollow">Facebook</a></div>
- <div id="vk"><a href="/_vklogin" rel="nofollow">ВКонтакте</a></div>
+ <div id="vk"><a href="/_vklogin" rel="nofollow">VK</a></div>
<div id="xmpp"><a href="#" onclick="$('#xmppinfo').toggle(); return false">XMPP</a>
- <div id="xmppinfo">Отправьте <b>LOGIN</b> на <a href="xmpp:juick@@juick.com?message;body=LOGIN">juick@@juick.com</a></div>
+ <div id="xmppinfo">[(#{message.sendLoginToXmpp})]</div>
</div>
</div>
-<div id="signin"><a href="#" onclick="$('#signinform').toggle(); $('#nickinput').focus(); return false">Уже зарегистрированы?</a>
- <div id="signinform"><form action="/do_login" method="POST">
- <input class="txt" type="text" name="j_username" placeholder="Имя пользователя" id="nickinput"/>
- <input class="txt" type="password" name="j_password" placeholder="Пароль"/>
- <input class="submit" type="submit" value="OK"/>
- </form></div>
+<div id="signin">
+ <a href="#" onclick="$('#signinform').toggle(); $('#nickinput').focus(); return false" th:text="#{question.areRegistered}">Уже зарегистрированы?</a>
+ <div id="signinform">
+ <form action="#" th:action="@{/do_login}" method="POST">
+ <input class="txt" type="text" name="j_username" placeholder="Имя пользователя" th:placeholder="#{label.username}" id="nickinput"/>
+ <input class="txt" type="password" name="j_password" placeholder="Пароль" th:placeholder="#{label.password}"/>
+ <input class="submit" type="submit" value="OK" th:value="#{button.send}"/>
+ </form>
+ </div>
</div>
-
</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
index fb53eb20..fc4b7384 100644
--- 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
@@ -16,7 +16,7 @@
<a href="https://www.facebook.com/JuickCom" rel="nofollow" class="ico32-fb">Facebook</a>
</div>
<div id="footer-left">
- <a href="http://juick.com">juick.com</a> &copy; 2008-2016
+ <a href="http://juick.com">juick.com</a> &copy; 2008-2017
<th:block th:if="${links != null}"/><br/><span th:text="#{label.sponsors}">Спонсоры:</span><span th:text="${links}">&nbsp;</span></th:block>
</div>
</div>
diff --git a/juick-spring-www/src/main/webapp/tagscloud.png b/juick-spring-www/src/main/webapp/tagscloud.png
new file mode 100644
index 00000000..3e1bf169
--- /dev/null
+++ b/juick-spring-www/src/main/webapp/tagscloud.png
Binary files differ