diff options
Diffstat (limited to 'src/main/resources/templates/views')
30 files changed, 993 insertions, 0 deletions
diff --git a/src/main/resources/templates/views/404.html b/src/main/resources/templates/views/404.html new file mode 100644 index 00000000..02a790e6 --- /dev/null +++ b/src/main/resources/templates/views/404.html @@ -0,0 +1,11 @@ +{% extends "layouts/default" %} +{% block content %} + <article> + <h1>Страница не найдена</h1> + <p>Сожалеем, но страницу с этим адресом удалил её автор, либо её никогда не существовало.</p> + </article> +{% endblock %} + +{% block "column" %} +{% include "views/partial/homecolumn" %} +{% endblock %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/blog.html b/src/main/resources/templates/views/blog.html new file mode 100644 index 00000000..8d6a6581 --- /dev/null +++ b/src/main/resources/templates/views/blog.html @@ -0,0 +1,24 @@ +{% extends "layouts/default" %} +{% import "views/macros/tags" %} +{% block content %} +{% if noindex %} +<!--noindex--> +{% endif %} +{% if paramTag | default('') is not empty %} +<p class="page"><a href="/tag/{{ paramTag.name | urlencode }}">← {{ i18n("messages","blog.allPostsWithTag") }} <b>{{ paramTag.name | escape }}</b></a></p> +{% endif %} +<div> +{% for msg in msgs %} +{% include "views/partial/message" %} +{% endfor %} +</div> +{% if nextpage | default('') is not empty %} +<p class="page"><a href="{{ nextpage | raw }}" rel="prev">{{ i18n("messages","messages.next") }} →</a></p> +{% endif %} +{% if noindex %} +<!--/noindex--> +{% endif %} +{% endblock %} +{% block "column" %} +{% include "views/partial/usercolumn" %} +{% endblock %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/blog_tags.html b/src/main/resources/templates/views/blog_tags.html new file mode 100644 index 00000000..48e517eb --- /dev/null +++ b/src/main/resources/templates/views/blog_tags.html @@ -0,0 +1,10 @@ +{% extends "layouts/default" %} +{% import "views/macros/tags" %} +{% block content %} +<p> + {{ tags(user.name, tags) }} +</p> +{% endblock %} +{% block "column" %} +{% include "views/partial/usercolumn" %} +{% endblock %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/help.html b/src/main/resources/templates/views/help.html new file mode 100644 index 00000000..169ccb3f --- /dev/null +++ b/src/main/resources/templates/views/help.html @@ -0,0 +1,12 @@ +{% extends "layouts/default" %} +{% block content %} +<article> + {{ content | raw }} +</article> +{% endblock %} + +{% block "column" %} +<div class="toolbar"> +{{ navigation | raw }} +</div> +{% endblock %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/index.html b/src/main/resources/templates/views/index.html new file mode 100644 index 00000000..e85a3aa1 --- /dev/null +++ b/src/main/resources/templates/views/index.html @@ -0,0 +1,29 @@ +{% extends "layouts/default" %} +{% import "views/macros/tags" %} +{% block content %} +{% if noindex %} +<!--noindex--> +{% endif %} +{% for msg in msgs %} +{% include "views/partial/message" %} +{% endfor %} +{% if nextpage | default('') is not empty %} +<p class="page"><a href="{{ nextpage | raw }}" rel="prev">{{ i18n("messages","messages.next") }} →</a></p> +{% endif %} +{% if noindex %} +<!--/noindex--> +{% endif %} +{% endblock %} +{% block "column" %} +{% if tag | default('') is not empty %} +{% include "views/partial/tagcolumn" %} +{% elseif visitor.uid > 0 %} +{% if discover %} +{% include "views/partial/homecolumn" %} +{% else %} +{% include "views/partial/usercolumn" %} +{% endif %} +{% else %} +{% include "views/partial/homecolumn" %} +{% endif %} +{% endblock %} diff --git a/src/main/resources/templates/views/login_success.html b/src/main/resources/templates/views/login_success.html new file mode 100644 index 00000000..ee71f12f --- /dev/null +++ b/src/main/resources/templates/views/login_success.html @@ -0,0 +1,13 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>Blank window</title> +</head> +<body> + <script type="text/javascript"> + window.opener.postMessage("{{ hash }}", "*"); + window.close(); + </script> +</body> +</html> diff --git a/src/main/resources/templates/views/macros/tags.html b/src/main/resources/templates/views/macros/tags.html new file mode 100644 index 00000000..08687f5a --- /dev/null +++ b/src/main/resources/templates/views/macros/tags.html @@ -0,0 +1,11 @@ +{% macro tags(uname="", tagsList) %} +{% for tag in tagsList %} +<a href="/{{ uname }}/?tag={{ tag | urlencode }}">{{ tag }}</a> +{% endfor %} +{% endmacro %} + +{% macro allTags(baseUri, tagsList) %} +{% for tag in tagsList %} +<a href="{{ baseUri }}tag/{{ tag | urlencode }}">#{{ tag }}</a> +{% endfor %} +{% endmacro %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/partial/footer.html b/src/main/resources/templates/views/partial/footer.html new file mode 100644 index 00000000..9a627373 --- /dev/null +++ b/src/main/resources/templates/views/partial/footer.html @@ -0,0 +1,11 @@ +<div id="footer" class="desktop"> + <div id="footer-left">juick.com © 2008-2021 + {% if links | default ('') is not empty %} + <br/>{{ i18n("messages","label.sponsors") }}: {{ links | raw }} + {% endif %} + </div> + <div id="footer-right"> · + <a href="/help/contacts" rel="nofollow">{{ i18n("messages","link.contacts") }}</a> · + <a href="/help/tos" rel="nofollow">{{ i18n("messages","link.tos") }}</a> + </div> +</div> diff --git a/src/main/resources/templates/views/partial/homecolumn.html b/src/main/resources/templates/views/partial/homecolumn.html new file mode 100644 index 00000000..a4cca153 --- /dev/null +++ b/src/main/resources/templates/views/partial/homecolumn.html @@ -0,0 +1,25 @@ +<div class="toolbar"> + <a href="/?show=top" title="Top"> + <i data-icon="ei-heart" data-size="s"></i> + <span class="desktop">Top</span> + </a> + <a href="/?show=all" title="{{ i18n("messages", "link.allMessages") }}"> + <i data-icon="ei-search" data-size="s"></i> + <span class="desktop">{{ i18n("messages","link.allMessages") }}</span> + </a> + <a href="/?show=photos" title="{{ i18n("messages", "link.withPhotos") }}"> + <i data-icon="ei-camera" data-size="s"></i> + <span class="desktop">{{ i18n("messages", "link.withPhotos") }}</span> + </a> +</div> +<div class="tags desktop"> + <h4>{{ i18n("messages","link.trends") }}</h4> + {% include "views/partial/tags" %} + {% if showAdv | default(false) %} + <h4>Наши друзья</h4> + <a target="_blank" href="https://ru.jooble.org"> + <img src="https://ru.jooble.org/css/images/logos/jooble_80x30.png" alt="Работа в России"/> + </a> + {% endif %} +</div> +{% include "views/partial/footer" %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/partial/message.html b/src/main/resources/templates/views/partial/message.html new file mode 100644 index 00000000..47dfb6c5 --- /dev/null +++ b/src/main/resources/templates/views/partial/message.html @@ -0,0 +1,87 @@ +<article class="msg-cont" data-mid="{{ msg.mid }}"> + <header class="h"> + <span> + <a href="/{{ msg.user.name }}/"><span>{{ msg.user.name }}</span></a> + </span> + <div class="msg-avatar"><a href="/{{ msg.user.name }}/"> + <img src="{{ msg.user.avatar }}" alt="{{ msg.user.name }}"/></a> + </div> + <div class="msg-ts"> + {% if msg.FriendsOnly %} + <i data-icon="ei-lock" data-size="s"></i> · + {% endif %} + <a href="/{{ msg.user.name }}/{{ msg.mid }}"> + <time datetime="{{ msg.created | timestamp | date('yyyy-MM-dd HH:mm:ss') }}Z" + title="{{ msg.created | timestamp | date('yyyy-MM-dd HH:mm:ss') }} GMT"> + {{ msg.created | prettyTime }} + </time> + </a> + {% if msg.created != msg.updatedAt %} + · Edited + {% endif %} + </div> + </header> + <div class="msg-txt"> + <span class="msg-tags"> + {{ tags(msg.user.name, msg.tags | tagsList) }} + </span> + {{ msg | formatMessage }} + </div> + {% if msg.AttachmentType is not empty %} + <p class="ir"><a href="//i.juick.com/p/{{ msg.mid }}.{{ msg.AttachmentType }}" data-fname="{{ msg.mid }}.{{ msg.AttachmentType }}"> + <img src="//i.juick.com/photos-512/{{ msg.mid }}.{{ msg.AttachmentType }}" alt=""/></a> + </p> + {% endif %} + <nav class="l"> + {% if visitor.uid == msg.user.uid %} + <a href="/{{ msg.mid }}" class="a-like msg-button"> + <span class="msg-button-icon"> + <i data-icon="ei-heart" data-size="s"></i> + {% if msg.likes > 0 %} {{ msg.likes }} + {% else %} + <span> {{ i18n("messages","message.recommend") }}</span> + {% endif %} + </span> + </a> + {% elseif visitor.uid > 0 %} + <a href="/post?body=!+%23{{ msg.mid }}" class="a-like msg-button"> + <span class="msg-button-icon"> + <i data-icon="ei-heart" data-size="s"></i> + {% if msg.likes > 0 %} {{ msg.likes }} + {% else %} + <span> {{ i18n("messages","message.recommend") }}</span> + {% endif %} + </span> + </a> + {% else %} + <a href="/login" class="a-login msg-button"> + <span class="msg-button-icon"> + <i data-icon="ei-heart" data-size="s"></i> + {% if msg.likes > 0 %} + {{ msg.likes }} + {% else %} + <span> {{ i18n("messages","message.recommend") }}</span> + {% endif %} + </span> + + </a> + {% endif %} + {% if (not msg.ReadOnly) or (visitor.uid == msg.user.uid) %} + <a href="/{{ msg.mid }}" class="a-comment msg-button"> + <span class="msg-button-icon"> + <i data-icon="ei-comment" data-size="s"></i> + {% if msg.Replies > 0 %} + {% if msg.unread %} + <span class="badge">{{ msg.Replies }}</span> + {% else %} + {{ msg.Replies }} + {% endif %} + {% else %} + <span> {{ i18n("messages","message.comment") }}</span> + {% endif %} + </span> + + </a> + {% endif %} + </nav> +</article>
\ No newline at end of file diff --git a/src/main/resources/templates/views/partial/navigation.html b/src/main/resources/templates/views/partial/navigation.html new file mode 100644 index 00000000..184c8f2b --- /dev/null +++ b/src/main/resources/templates/views/partial/navigation.html @@ -0,0 +1,43 @@ +<div id="header"> + <div id="header_wrapper"> + {% if visitor.uid > 0 %} + <div id="ctitle"> + <a href="/{{ visitor.name }}/"> + <img src="{{ visitor.avatar }}" alt=""/>{{ visitor.name }} + {% if not visitor.verified %} + <span style="color: red;"><i data-icon="ei-exclamation" data-size="s"></i></span> + {% endif %} + </a> + </div> + {% else %} + <div id="logo"><a href="/{% if visitor.uid > 0 %}?show=my{% endif %}">Juick</a></div> + {% endif %} + <div id="search" class="desktop"> + <form action="/"> + <input name="search" class="text" + placeholder="{{ i18n('messages','label.search') }}" value="{{ search | default('') }}"/> + </form> + </div> + <nav id="global"> + <a href="/"> + <i data-icon="ei-bell" data-size="s"></i> + <span class="icon-title desktop">{{ i18n("messages","link.discuss") }}</span>{% if visitor.unreadCount > 0 %}<span class="badge">{{ visitor.unreadCount }}</span>{% endif %} + </a> + <a href="/?show=all" rel="nofollow"> + <i data-icon="ei-search" data-size="s"></i> + <span class="icon-title desktop">{{ i18n("messages","link.allMessages") }}</span> + </a> + {% if visitor.uid > 0 %} + <a id="post" href="/post"> + <i data-icon="ei-pencil" data-size="s"></i> + <span class="icon-title desktop">{{ i18n("messages","link.postMessage") }}</span> + </a> + {% else %} + <a class="a-login" href="/login" rel="nofollow"> + <i data-icon="ei-user" data-size="s"></i> + <span class="icon-title desktop">{{ i18n("messages", "link.Login") }}</span> + </a> + {% endif %} + </nav> + </div> +</div> diff --git a/src/main/resources/templates/views/partial/settings_tabs.html b/src/main/resources/templates/views/partial/settings_tabs.html new file mode 100644 index 00000000..00f7068a --- /dev/null +++ b/src/main/resources/templates/views/partial/settings_tabs.html @@ -0,0 +1,11 @@ +<div id="pagetabs"> + <div class="toolbar"> + <a href="/settings">{{ i18n("messages","link.settings.main") }}</a> + <a href="/settings?page=password">{{ i18n("messages","link.settings.password") }}</a> + <a href="/settings?page=about">{{ i18n("messages","link.settings.about") }}</a> + <a href="/logout"><i data-icon="ei-user" data-size="s"></i>{{ i18n("messages","link.logout") }}</a> + </div> +</div> +<span class="desktop"> + {% include "views/partial/footer" %} +</span>
\ No newline at end of file diff --git a/src/main/resources/templates/views/partial/tagcolumn.html b/src/main/resources/templates/views/partial/tagcolumn.html new file mode 100644 index 00000000..a7728ef3 --- /dev/null +++ b/src/main/resources/templates/views/partial/tagcolumn.html @@ -0,0 +1,26 @@ +<div id="ctitle"> + <h2>*{{ tag.name }}</h2> +</div> +{% if visitor is not empty and visitor.uid > 0 %} +<div class="toolbar"> + {% if isSubscribed %} + <a href="/post?body=U+%2A{{ tag.name }}" title="Подписан"> + <i data-icon="ei-check" data-size="s"></i>Subscribed + </a> + {% else %} + <a href="/post?body=S+%2A{{ tag.name }}" title="Подписаться"> + <i data-icon="ei-plus" data-size="s"></i>Subscribe + </a> + {% endif %} + {% if isInBL %} + <a href="/post?body=BL+%2A{{ tag.name }}" title="Разблокировать"> + <i data-icon="ei-close-o" data-size="s"></i>Unblock + </a> + {% else %} + <a href="/post?body=BL+%2A{{ tag.name }}" title="Заблокировать"> + <i data-icon="ei-close" data-size="s"></i>Block + </a> + {% endif %} +</div> +{% endif %} +{% include "views/partial/footer" %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/partial/tags.html b/src/main/resources/templates/views/partial/tags.html new file mode 100644 index 00000000..4d05b7fb --- /dev/null +++ b/src/main/resources/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/src/main/resources/templates/views/partial/usercolumn.html b/src/main/resources/templates/views/partial/usercolumn.html new file mode 100644 index 00000000..ee9ab267 --- /dev/null +++ b/src/main/resources/templates/views/partial/usercolumn.html @@ -0,0 +1,93 @@ +<div class="toolbar"> + {% if visitor is not empty and visitor.uid > 0 and visitor.uid != user.uid %} + <div id="ctitle"> + <a href="/{{ user.name }}"> + <img src="{{ user.avatar }}" alt="" />{{ user.name }} + </a> + </div> + {% if isSubscribed %} + <a href="/post?body=U+%40{{ user.name }}" title="Подписан"> + <i data-icon="ei-check" data-size="s"></i> + <span class="desktop">Subscribed</span> + </a> + {% else %} + <a href="/post?body=S+%40{{ user.name }}" title="Подписаться"> + <i data-icon="ei-plus" data-size="s"></i> + <span class="desktop">Subscribe</span> + </a> + {% endif %} + {% if isInBL %} + <a href="/post?body=BL+%40{{ user.name }}" title="Разблокировать"> + <i data-icon="ei-close-o" data-size="s"></i> + <span class="dekstop">Unblock</span> + </a> + {% else %} + <a href="/post?body=BL+%40{{ user.name }}" title="Заблокировать"> + <i data-icon="ei-close" data-size="s"></i> + <span class="desktop">Block</span> + </a> + {% endif %} + {% if not isInBLAny %} + <a href="/pm/sent?uname={{ user.name }}" title="Написать приватное сообщение"> + <i data-icon="ei-envelope" data-size="s"></i> + <span class="desktop">PM</span> + </a> + {% endif %} + {% endif %} + {% if visitor is not empty and visitor.uid == user.uid %} + <a href="/?show=my"><i data-icon="ei-clock" data-size="s"></i> + <span class="desktop">{{ i18n("messages","link.my") }}</span> + </a> + <a href="/pm/inbox"><i data-icon="ei-envelope" data-size="s"></i> + <span class="desktop">{{ i18n("messages","link.privateMessages") }}</span> + </a> + <a href="/?show=discuss"><i data-icon="ei-bell" data-size="s"></i> + <span class="desktop">{{ i18n("messages","link.discuss") }}</span> + </a> + {% endif %} + {% if visitor is not empty and visitor.uid == user.uid and false %} + <a href="/?show=mycomments" rel="nofollow">{{ i18n("messages","blog.comments") }}</a> + <a href="/?show=unanswered" rel="nofollow">Неотвеченные</a> + {% endif %} + {% if visitor is not empty and visitor.uid == user.uid %} + + <a href="/settings" rel="nofollow"> + <i data-icon="ei-gear" data-size="s"></i> + {% if not visitor.verified %} + <span style="color: red;"><i data-icon="ei-exclamation" data-size="s"></i></span> + {% else %} + <span class="desktop">{{ i18n("messages","link.settings") }}</span> + {% endif %} + </a> + {% endif %} +</div> +<form action="/{{ user.name }}/" class="desktop" style="padding: 6px;"> + <p><input type="text" name="search" class="inp" placeholder="{{ i18n('messages','label.search') }}" /></p> +</form> +<span class="desktop" style="padding: 6px;"> + {% include "views/partial/usertags" %} +</span> +<div id="ustats" class="desktop" style="padding: 6px;"> + <ul> + <li><a href="/{{ user.name }}/friends">{{ i18n("messages","blog.iread") }}: {{ statsIRead }}</a></li> + <li><a href="/{{ user.name }}/readers">{{ i18n("messages","blog.readers") }}: {{ statsMyReaders }}</a></li> + {% if statsMyBL > 0 and visitor.uid == user.uid %} + <li><a href="/{{ user.name }}/bl">{{ i18n("messages","blog.bl") }}: {{ statsMyBL }}</a></li> + {% endif %} + <li>{{ i18n("messages","blog.messages") }}: {{ statsMessages }}</li> + <li>{{ i18n("messages","blog.comments") }}: {{ statsReplies }}</li> + </ul> + {% if iread is not empty %} + <div class="iread"> + {% for u in iread %} + <span> + <a href="/{{ u.name }}/"> + <img src="//i.juick.com/as/{{ u.uid }}.png" alt="{{ u.name }}" /> + </a> + </span> + {% endfor %} + </div> + {% endif %} + +</div> +{% include "views/partial/footer" %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/partial/usertags.html b/src/main/resources/templates/views/partial/usertags.html new file mode 100644 index 00000000..71d1303e --- /dev/null +++ b/src/main/resources/templates/views/partial/usertags.html @@ -0,0 +1,3 @@ +{% import "views/macros/tags" %} +{{ tags(user.name, tagStats) }} +<a href="/{{ user.name }}/tags" rel="nofollow">...</a>
\ No newline at end of file diff --git a/src/main/resources/templates/views/pm_inbox.html b/src/main/resources/templates/views/pm_inbox.html new file mode 100644 index 00000000..f89b2923 --- /dev/null +++ b/src/main/resources/templates/views/pm_inbox.html @@ -0,0 +1,35 @@ +{% extends "layouts/default" %} +{% block content %} +{% if not msgs.isEmpty() %} +<ul id="private-messages"> + {% for msg in msgs %} + <li class="msg"> + <div class="msg-cont"> + <div class="msg-header"> + @<a href="/{{ msg.user.name }}/">{{ msg.user.name }}</a>: + <div class="msg-avatar"> + <a href="/{{ msg.user.name }}/"> + <img src="{{ msg.user.avatar }}" alt="{{ msg.user.name }}"/> + </a> + </div> + <div class="msg-ts">{{ msg.created | prettyTime }}</div> + </div> + + <div class="msg-txt">{{ msg | formatMessage }}</div> + <form class="pmmsg"> + <input type="hidden" name="uname" value="{{ msg.user.name }}"/> + <div class="msg-comment"> + <div class="ta-wrapper"> + <textarea name="body" rows="1" class="replypm" placeholder="Написать ответ"></textarea> + </div> + </div> + </form> + </div> + </li> + {% endfor %} +</ul> +{% endif %} +{% endblock %} +{% block "column" %} +{% include "views/partial/usercolumn" %} +{% endblock %} diff --git a/src/main/resources/templates/views/pm_sent.html b/src/main/resources/templates/views/pm_sent.html new file mode 100644 index 00000000..f0af71d3 --- /dev/null +++ b/src/main/resources/templates/views/pm_sent.html @@ -0,0 +1,33 @@ +{% extends "layouts/default" %} +{% block content %} +<form class="pmmsg"> + <div class="newpm"> + <div class="newpm-to">To: <input type="text" name="uname" placeholder="username" value="{{ uname }}"/></div> + <div class="newpm-body"><textarea name="body" rows="2"></textarea></div> + <div class="newpm-send"><input type="submit" value="OK"/></div> + </div> +</form> +{% if not msgs.isEmpty() %} +<ul id="private-messages"> + {% for msg in msgs %} + <li class="msg"> + <div class="msg-cont"> + <div class="msg-header"> + @<a href="/{{ msg.user.name }}/">{{ msg.user.name }}</a>: + <div class="msg-avatar"> + <a href="/{{ msg.user.name }}/"> + <img src="{{ msg.user.avatar }}" alt="{{ msg.user.name }}"/> + </a> + </div> + <div class="msg-ts">{{ msg.created | prettyTime }}</div> + </div> + <div class="msg-txt">{{ msg | formatMessage }}</div> + </div> + </li> + {% endfor %} +</ul> +{% endif %} +{% endblock %} +{% block "column" %} +{% include "views/partial/usercolumn" %} +{% endblock %} diff --git a/src/main/resources/templates/views/post.html b/src/main/resources/templates/views/post.html new file mode 100644 index 00000000..a77fa3bd --- /dev/null +++ b/src/main/resources/templates/views/post.html @@ -0,0 +1,22 @@ +{% extends "layouts/default" %} +{% import "views/macros/tags" %} +{% block content %} +<article> +<form id="postmsg"> + <p style="text-align: left;"> + <b>Фото:</b> <span id="attachmentfile"> + <input style="width: 100%;" type="file" name="attach" accept="image/jpeg,image/png"/> <i>({{ i18n("messages","postForm.imageFormats") }})</i></span> + </p> + <p> + <textarea name="body" class="newmessage" rows="7" cols="10" placeholder="*weather It's very cold today!">{{ body }}</textarea> + <br/> + <input type="submit" class="subm Button" value=" {{ i18n("messages","postForm.submit") }} "/> + </p> +</form> +</article> +<p style="text-align: left;"><b>Теги:</b></p> +{{ tags(visitor.name, tags) }} +{% endblock %} +{% block "column" %} +{% include "views/partial/usercolumn" %} +{% endblock %} diff --git a/src/main/resources/templates/views/post_success.html b/src/main/resources/templates/views/post_success.html new file mode 100644 index 00000000..2106f3cb --- /dev/null +++ b/src/main/resources/templates/views/post_success.html @@ -0,0 +1,19 @@ +{% extends "layouts/minimal" %} +{% block content %} +<h1>Сообщение опубликовано</h1> +<p>Поделитесь своим новым постом в социальных сетях:</p> +{% if sharetwi | default('') is not empty %} +<p class="social"> + <a href="https://twitter.com/intent/tweet?text={{ sharetwi }}" + class="sharenew"><i data-icon="ei-sc-twitter" data-size="m"></i>Отправить в Twitter</a></p> +{% endif %} +<p class="social"> + <a href="https://vk.com/share.php?url={{ url | urlencode }}" + class="sharenew"><i data-icon="ei-sc-vk" data-size="m"></i>Отправить в ВКонтакте</a></p> +{% if facebook | default('') is not empty %} +<p class="social"> + <a href="https://www.facebook.com/sharer/sharer.php?u={{ url | urlencode }}" + class="sharenew"><i data-icon="ei-sc-facebook" data-size="m"></i>Отправить в Facebook</a></p> +{% endif %} +<p>Ссылка на сообщение: <a href="{{ url | raw }}">{{ url }}</a></p> +{% endblock %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/settings_about.html b/src/main/resources/templates/views/settings_about.html new file mode 100644 index 00000000..5e308671 --- /dev/null +++ b/src/main/resources/templates/views/settings_about.html @@ -0,0 +1,20 @@ +{% extends "layouts/default" %} +{% block content %} +<article> + <form action="/settings" method="POST" enctype="multipart/form-data"> + <p>Full name: <input type="text" name="fullname" value="{{ userinfo.fullName }}"/></p> + <p>Country: <input type="text" name="country" value="{{ userinfo.country }}"/></p> + <p>URL: <input type="text" name="url" value="{{ userinfo.url }}" size="32"/><br/> + <small>Please, start with "http://"</small></p> + <p>About:<br/> + <input type="text" name="descr" value="{{ userinfo.description }}" style="width: 100%;"/><br/> + <small>Max. 255 symbols</small></p> + <p>Avatar: <input type="file" name="avatar"/><br/> + <small>Recommendations: PNG, 96x96, <50Kb. Also, JPG and GIF supported.</small></p> + <p><input type="hidden" name="page" value="about"/><input type="submit" value=" OK "/></p> + </form> +</article> +{% endblock %} +{% block "column" %} +{% include "views/partial/settings_tabs" %} +{% endblock %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/settings_auth-email.html b/src/main/resources/templates/views/settings_auth-email.html new file mode 100644 index 00000000..e906d704 --- /dev/null +++ b/src/main/resources/templates/views/settings_auth-email.html @@ -0,0 +1,9 @@ +{% extends "layouts/default" %} +{% block content %} +<article> + <p>{{ result }}</p><p><a href="/settings">Settings</a>.</p> +</article> +{% endblock %} +{% block "column" %} +{% include "views/partial/settings_tabs" %} +{% endblock %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/settings_main.html b/src/main/resources/templates/views/settings_main.html new file mode 100644 index 00000000..a6cca7a3 --- /dev/null +++ b/src/main/resources/templates/views/settings_main.html @@ -0,0 +1,154 @@ +{% extends "layouts/default" %} +{% block content %} +<article> + <h1>Настройки</h1> + {%if not visitor.verified %} + <h2 style="color: red; padding: 20px;">Verify your account by adding email or social account</h2> + {% endif %} + <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.repliesEnabled %} + checked="checked" {% endif %}/> Reply notifications ("Message posted")</p> + <p><input type="checkbox" name="subscr_notify" value="1" {% if notify_options.subscriptionsEnabled %} + checked="checked" {% endif %}/> Subscriptions notifications ("@user subscribed...")</p> + <p><input type="checkbox" name="recomm" value="1" {% if notify_options.recommendationsEnabled %} + checked="checked" {% endif %}/> Posts recommendations ("Recommended by @user")</p> + <p><input type="hidden" name="page" value="main"/><input type="submit" class="Button" value=" OK "/></p> + </fieldset> + </form> + <fieldset> + <legend style="background: url(/durov.png) no-repeat; padding-left: 58px; line-height: 48px; background-size: contain;"> + Telegram</legend> + {% if telegram_name is not empty %} + <form action="/settings" method="post"> + <div>Telegram: <b>{{ telegram_name }}</b> — + <input type="hidden" name="page" value="telegram-del"/> + <input type="submit" value=" Disable " class="Button" /> + </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> + {% if jids | length > 0 %} + <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.account }}">{{ auth.account }}</label> + — <a href="#" + onclick="alert('To confirm, please send "AUTH {{ auth.getAuthCode() }}" (without quotes) from this account to "juick@juick.com".'); return false;">Confirm</a><br/> + {% endfor %} + </p> + {% if jids | length > 1 %} + <p><input type="hidden" name="page" value="jid-del"/><input type="submit" class="Button" 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> + {% endif %} + <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 " class="Button" /> + </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> + {% if jids | length > 1 %} + <p><input type="hidden" name="page" value="email-del"/><input type="submit" class="Button" value=" Delete "/></p> + {% endif %} + {% endif %} + </form> + {% if emails is not empty %} + <!--email_off--> + <form action="/settings" method="POST" enctype="multipart/form-data"> + <p>You can receive notifications to email:<br/> + Sent to <select name="account"> + <option value="">Disabled</option> + {% for email in emails %} + <option value="{{ email }}" {% if email_active == email %} selected="selected" {% endif %}> + {{ email }} + </option> + {% endfor %} + </select> + <input type="hidden" name="page" value="email-subscr"/> + <input type="submit" class="Button" value="OK"/></p> + </form> + <!--/email_off--> + {% endif %} + <p> </p> + <p>You can post to Juick via e-mail. Send your <span style="text-decoration: underline;">plain text</span> + messages to <span><a href="mailto:juick@juick.com">juick@juick.com</a></span>. You can attach one photo or video file.</p> + </fieldset> + <fieldset> + <legend style="background: url(//static.juick.com/settings/facebook.png) no-repeat; padding-left: 58px; line-height: 48px;"> + Facebook + </legend> + {% if fbstatus.connected %} + {% if fbstatus.crosspostEnabled %} + <form action="/settings" method="post"> + <div> + Facebook: <b>Enabled</b> — + <input type="hidden" name="page" value="facebook-disable"/> + <input type="submit" class="Button" value=" Disable "/> + </div> + </form> + {% else %} + <form action="/settings" method="post"> + <div> + Facebook: <b>Disabled</b> — + <input type="hidden" name="page" value="facebook-enable"/> + <input type="submit" class="Button" 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> — + <input type="hidden" name="page" value="twitter-del"/> + <input type="submit" class="Button" 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> +{% endblock %} +{% block "column" %} +{% include "views/partial/settings_tabs" %} +{% endblock %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/settings_password.html b/src/main/resources/templates/views/settings_password.html new file mode 100644 index 00000000..99c1676e --- /dev/null +++ b/src/main/resources/templates/views/settings_password.html @@ -0,0 +1,17 @@ +{% extends "layouts/default" %} +{% block content %} +<article> + <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 class="Button" type="submit" + value=" Update "/><br/> + <i>(max. length - 16 symbols)</i></p> + </form> + </fieldset> +</article> +{% endblock %} +{% block "column" %} +{% include "views/partial/settings_tabs" %} +{% endblock %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/settings_privacy.html b/src/main/resources/templates/views/settings_privacy.html new file mode 100644 index 00000000..83b87b93 --- /dev/null +++ b/src/main/resources/templates/views/settings_privacy.html @@ -0,0 +1,9 @@ +{% extends "layouts/default" %} +{% block content %} +<article> + <p>Privacy</p> +</article> +{% endblock %} +{% block "column" %} +{% include "views/partial/settings_tabs" %} +{% endblock %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/settings_result.html b/src/main/resources/templates/views/settings_result.html new file mode 100644 index 00000000..d87a5ea6 --- /dev/null +++ b/src/main/resources/templates/views/settings_result.html @@ -0,0 +1,9 @@ +{% extends "layouts/default" %} +{% block content %} +<article> + <p>{{ result | raw }}</p> +</article> +{% endblock %} +{% block "column" %} +{% include "views/partial/settings_tabs" %} +{% endblock %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/signup.html b/src/main/resources/templates/views/signup.html new file mode 100644 index 00000000..d6eb921f --- /dev/null +++ b/src/main/resources/templates/views/signup.html @@ -0,0 +1,43 @@ +{% extends "layouts/default" %} +{% block content %} +<h1 class="signup-h1"> + {% if type | slice(0, 1) == 'f' %} + <img src="//static.juick.com/settings/facebook.png" alt="Facebook"/> + {% elseif type | slice(0, 1) == 'v' %} + <img src="//static.juick.com/settings/vk.png" alt="VKontakte"/> + {% elseif type | slice(0, 1) == 'e' %} + <img src="//static.juick.com/settings/email.png" alt="Email"/> + {% elseif type | slice(0, 1) == 'd' %} + <img src="//telegram.org/favicon.ico?3" alt="Telegram"/> + {% endif %} + {{ account | raw }}</h1> + +<h2 class="signup-h2">Связать с существующим аккаунтом Juick</h2> +<form action="/signup" method="post"> + <input type="hidden" name="action" value="link"/> + <input type="hidden" name="type" value="{{ type }}"/> + <input type="hidden" name="hash" value="{{ hash }}"/> + {% if visitor.getUID() > 0 %} + <input type="submit" value="Связать с этим аккаунтом"/> + {% else %} + <p>Имя пользователя: <input type="text" name="username"/></p> + <p>Пароль: <input type="password" name="password"/></p> + <p><input type="submit" value=" OK "/></p> + {% endif %} +</form> + +{% if type != "xmpp" %} +<hr class="signup-hr"/> + +<h2 class="signup-h2">Создать новый аккаунт Juick</h2> +<form action="/signup" method="post"> + <input type="hidden" name="action" value="new"/> + <input type="hidden" name="type" value="{{ type }}"/> + <input type="hidden" name="hash" value="{{ hash }}"/> + <p>Имя пользователя: <input type="text" name="username" id="username"/><br/><i>(От 2-х до 16-и латинских символов + и/или цифр, дефис)</i></p> + <p>Пароль: <input type="password" name="password"/><br/><i>(от 6-и до 32-х символов)</i></p> + <p><input type="submit" value=" OK "/></p> +</form> +{% endif %} +{% endblock %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/signup_result.html b/src/main/resources/templates/views/signup_result.html new file mode 100644 index 00000000..b204e1b8 --- /dev/null +++ b/src/main/resources/templates/views/signup_result.html @@ -0,0 +1,6 @@ +{% extends "layouts/default" %} +{% block content %} +<article> + <p>{{ result | raw }}</p> +</article> +{% endblock %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/thread.html b/src/main/resources/templates/views/thread.html new file mode 100644 index 00000000..f1563a7c --- /dev/null +++ b/src/main/resources/templates/views/thread.html @@ -0,0 +1,188 @@ +{% extends "layouts/default" %} +{% import "views/macros/tags" %} +{% block content %} +<ul id="0"> + <li id="msg-{{ msg.mid }}" class="msg msgthread"> + <div class="msg-cont"> + <div class="msg-header"> + <div class="msg-avatar"> + <a href="/{{ msg.user.name }}/"><img src="{{ msg.user.avatar }}" alt="{{ msg.user.name }}"/></a> + </div> + <span> + <a href="/{{ msg.user.name }}/"><span>{{ msg.user.name }}</span></a> + </span> + <div class="msg-ts"> + {% if msg.FriendsOnly %} + <i data-icon="ei-lock" data-size="s"></i> · + {% endif %} + <a href="/{{ msg.user.name }}/{{ msg.mid }}"> + <time datetime="{{ msg.created | timestamp | date('yyyy-MM-dd HH:mm:ss') }}Z" + title="{{ msg.created | timestamp | date('yyyy-MM-dd HH:mm:ss') }} GMT"> + {{ msg.created | prettyTime }} + </time> + </a> + {% if msg.updatedAt != msg.created %} + · Edited + {% endif %} + </div> + </div> + <div class="msg-txt"> + <span class="msg-tags"> + {{ tags(msg.user.name, msg.tags | tagsList) }} + </span> + {{ msg | formatMessage }} + </div> + {% if msg.AttachmentType is not empty %} + <div class="msg-media"> + <a href="//i.juick.com/p/{{ msg.mid }}.{{ msg.AttachmentType }}" data-fname="{{ msg.mid }}.{{ msg.AttachmentType }}"> + <img src="//i.juick.com/photos-512/{{ msg.mid }}.{{ msg.AttachmentType }}" alt=""/> + </a> + </div> + {% endif %} + <nav class="l"> + {% if visitor.uid == msg.user.uid %} + <a href="/{{ msg.mid }}" class="a-like msg-button"> + <span class="msg-button-icon"> + <i data-icon="ei-heart" data-size="s"></i> + {% if msg.Likes > 0 %} {{ msg.Likes }} + {% else %} + <span> {{ i18n("messages","message.recommend") }}</span> + {% endif %} + </span> + </a> + {% elseif visitor.uid > 0 %} + <a href="/post?body=!+%23{{ msg.mid }}" class="a-like msg-button"> + <span class="msg-button-icon"> + <i data-icon="ei-heart" data-size="s"></i> + {% if msg.Likes > 0 %} {{ msg.Likes }} + {% else %} + <span> {{ i18n("messages","message.recommend") }}</span> + {% endif %} + </span> + </a> + {% else %} + <a href="/login" class="a-login msg-button"> + <span class="msg-button-icon"> + <i data-icon="ei-heart" data-size="s"></i> + {% if msg.Likes > 0 %} {{ msg.Likes }} + {%else %} + <span> {{ i18n("messages","message.recommend") }}</span> + {% endif %} + </span> + </a> + {% endif %} + {% if visitor.uid > 0 %} + {% if visitor.uid != msg.user.uid %} + {% if visitorSubscribed %} + <a href="/post?body=U+%23{{ msg.mid }}" class="msg-button"> + <i data-icon="ei-check" data-size="s"></i> + <span> {{ i18n("messages","message.subscribed") }}</span> + </a> + {% else %} + <a href="/post?body=S+%23{{ msg.mid }}" class="a-sub msg-button"> + <i data-icon="ei-eye" data-size="s"></i> + <span> {{ i18n("messages","message.subscribe") }}</span> + </a> + {% endif %} + {% else %} + <a href="/post?body=D+%23{{ msg.mid }}" class="msg-button"> + <i data-icon="ei-close" data-size="s"></i> + <span> {{ i18n("messages","message.delete") }}</span> + </a> + {% endif %} + {% endif %} + </nav> + {% if msg.VisitorCanComment %} + <form class="msg-comment-target"> + <input type="hidden" name="mid" value="{{ msg.mid }}"/> + <div class="msg-comment"> + <div class="ta-wrapper"> + <textarea name="body" rows="1" class="reply" placeholder="{{ i18n("messages","message.writeComment") }}"></textarea> + </div> + </div> + </form> + {% endif %} + {% if recomm is not empty %} + <div class="msg-recomms">{{ i18n("messages","message.recommendedBy") }} + {% for rec in recomm %} + {% if rec.uri.toString() is empty %} + <a href="/{{ rec.name }}/">@{{ rec.name }}</a>{% if loop.index < (loop.length - 1) %}, {% endif %} + {% else %} + <a href="{{ rec.uri }}" data-user-uri="1">@{{ rec.name }}</a>{% if loop.index < (loop.length - 1) %}, {% endif %} + {% endif %} + {% endfor %} + {% if msg.likes > recomm.size() %} + {{ i18n("messages","message.recommendedOthers", msg.likes - recomm.size()) }} + {% endif %} + </div> + {% endif %} + </div> + </li> +</ul> +<div class="title2"> + {% if visitor.uid > 0 %} + <img src="/api/thread/mark_read/{{ msg.mid }}-{{ msg.rid }}.gif?hash={{visitor.authHash}}" /> + {% endif %} + <h2>{{ i18n("messages","reply.replies") }} ({{ replies.size() }})</h2> +</div> + +<ul id="replies"> + {% for msg in replies %} + <li id="{{ msg.rid }}" class="msg"> + <div class="msg-cont"> + <div class="msg-header" data-uri="{{ msg.user.uri }}"> + {% if not msg.user.banned %} + <a class="a-username" href="/{{ msg.user.name }}/">{{ msg.user.name }}</a> + <div class="msg-avatar"> + <a class="a-username" href="/{{ msg.user.name }}/"> + <img src="{{ msg.user.avatar }}" alt="{{ msg.user.name }}"/> + </a> + </div> + {% else %} + [удалено]: + <div class="msg-avatar"> + <img src="//i.juick.com/av-96.png"/> + </div> + {% endif %} + <div class="msg-ts"> + <a href="/{{ msg.mid }}#{{ msg.rid }}"> + <time datetime="{{ msg.created | timestamp | date('yyyy-MM-dd HH:mm:ss') }}Z" + title="{{ msg.created | timestamp | date('yyyy-MM-dd HH:mm:ss') }} GMT"> + {{ msg.created | prettyTime }} + </time> + </a> + {% if msg.updatedAt != msg.created %} + · Edited + {% endif %} + </div> + </div> + <div class="msg-txt">{{ msg | formatMessage }}</div> + {% if msg.AttachmentType is not empty %} + <div class="msg-media"> + <a href="//i.juick.com/p/{{ msg.mid }}-{{ msg.rid }}.{{ msg.AttachmentType }}" data-fname="{{ msg.mid }}-{{ msg.rid }}.{{ msg.AttachmentType }}"> + <img src="//i.juick.com/photos-512/{{ msg.mid }}-{{ msg.rid }}.{{ msg.AttachmentType }}" alt=""/> + </a> + </div> + {% endif %} + <div class="msg-links">/{{ msg.rid }} + {% if msg.replyto > 0 %} + {{ i18n("messages","reply.inReplyTo") }} <a href="#{{ msg.replyto }}">/{{ msg.replyto }}</a> + {% endif %} + {% if msg.VisitorCanComment %} + · <a href="/post?body=%23{{ msg.mid }}/{{ msg.rid }}%20" class="a-thread-comment">{{ i18n("messages","reply.reply") }}</a> + </div> + <div class="msg-comment-target msg-comment-hidden"></div> + {% elseif visitor.uid == 0 %} + · <a href="#" class="a-login">{{ i18n("messages","reply.reply") }}</a> + </div> + {% else %} + </div> + {% endif %} + </div> + </li> + {% endfor %} +</ul> +{% endblock %} +{% block "column" %} +{% include "views/partial/usercolumn" %} +{% endblock %}
\ No newline at end of file diff --git a/src/main/resources/templates/views/users.html b/src/main/resources/templates/views/users.html new file mode 100644 index 00000000..702ba6b9 --- /dev/null +++ b/src/main/resources/templates/views/users.html @@ -0,0 +1,17 @@ +{% extends "layouts/default" %} +{% import "views/macros/tags" %} +{% block content %} +<div class="users"> + {% for u in users %} + <span> + <a href="/{{ u.name }}/"> + <img src="//i.juick.com/as/{{ u.uid }}.png" alt="{{ u.name }}"/> + {{ u.name }} + </a> + </span> + {% endfor %} +</div> +{% endblock %} +{% block "column" %} +{% include "views/partial/usercolumn" %} +{% endblock %}
\ No newline at end of file |