This repository has been archived on 2024-06-26. You can view files and clone it, but cannot push or open issues or pull requests.
sakura/resources/views/yuuno/forum/topic.twig
2016-11-12 19:49:38 +01:00

230 lines
11 KiB
Twig

{% extends 'master.twig' %}
{% set forumBackLink = route('forums.forum', forum.id) %}
{% set title = topic is defined ? topic.title : 'Creating topic in ' ~ forum.name %}
{% if topic is defined %}
{% if forum.perms.reply
and (
topic.status != 1
or forum.perms.changeStatus
) %}
{% set forumReplyLink %}#reply{% endset %}
{% endif %}
{% if forum.perms.changeType
or forum.perms.changeStatus
or forum.perms.topicMove
or forum.perms.deleteAny %}
{% set showMod = true %}
{% endif %}
{% if forum.perms.changeType %}
{% set forumSticky = topic.type == 1 ? true : false %}
{% set forumAnnounce = topic.type == 2 ? true : false %}
{% endif %}
{% if forum.perms.changeStatus %}
{% set forumLock = topic.status == 1 ? true : false %}
{% endif %}
{% if forum.perms.topicMove %}
{% if topic.oldForum %}
{% set forumRestore = true %}
{% endif %}
{% if topic.forum != config('forum.trash') %}
{% set forumTrash = true %}
{% endif %}
{% endif %}
{% if forum.perms.deleteAny %}
{% if topic.forum == config('forum.trash') %}
{% set forumPrune = true %}
{% endif %}
{% endif %}
{% set posts = topic.posts|batch(10) %}
{% set paginationPages = posts %}
{% set paginationUrl = route('forums.topic', topic.id) %}
{% endif %}
{% block css %}
<link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.5.0/styles/default.min.css" rel="stylesheet">
{% endblock %}
{% block js %}
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.5.0/highlight.min.js"></script>
<script type="text/javascript">
function deletePost(id) {
var confirm = new Sakura.Dialogue;
confirm.SetType(Sakura.DialogueType.Confirm);
confirm.Text = "Are you sure?";
confirm.AddCallback(Sakura.DialogueButton.Yes, function () {
var deleter = new Sakura.AJAX;
deleter.SetUrl("{{ route('forums.post.delete', 1) }}".replace('1', id));
deleter.AddCallback(200, function () {
Sakura.DOM.Remove(Sakura.DOM.ID('p' + id));
});
deleter.AddCallback(0, function () {
var error = new Sakura.Dialogue;
error.Text = "Deletion failed!";
error.AddCallback(Sakura.DialogueButton.Ok, function () {
this.Close();
});
error.Display();
});
deleter.Start(Sakura.HTTPMethod.DELETE);
this.Close();
});
confirm.AddCallback(Sakura.DialogueButton.No, function () {
this.Close();
});
confirm.Display();
}
hljs.initHighlightingOnLoad();
</script>
{% endblock %}
{% block content %}
<div class="content">
<div class="content__header">
{{ forum.name }} / <span id="topicTitle">
{{ topic.title|default(null) }}
</span>
</div>
{% include 'forum/elements/forumBtns.twig' %}
<div class="posts">
{% if topic is defined %}
{% set textCache = session.replyText['t' ~ topic.id]|default(null) %}
{% set postingAction = route('forums.topic.reply', topic.id) %}
{% for post in posts[get.page|default(1) - 1] %}
<div class="post" id="p{{ post.id }}">
<div class="post__details">
<div class="post__user">
{% if post.poster.activated or post.poster.restricted %}
<a class="post__username" href="{{ route('user.profile', post.poster.id) }}" style="color: {{ post.poster.colour }}; text-shadow: 0 0 5px {% if post.poster.colour != 'inherit' %}{{ post.poster.colour }}{% else %}#222{% endif %}">
{{ post.poster.username }}
</a>
<div class="avatar avatar--border post__avatar{% if post.poster.isOnline %} post__avatar--online{% endif %}" style="background-image: url('{{ route('user.avatar', post.poster.id) }}')"></div>
<div class="post__usertitle">{{ post.poster.title }}</div>
<img src="/images/tenshi.png" alt="Tenshi"{% if not post.poster.isPremium %} style="opacity: 0;"{% endif %}>
<img src="/images/flags/{{ post.poster.country|lower }}.png" alt="{{ post.poster.country(true) }}">
{% if post.poster.id == (topic.posts|first).poster.id %}
<img src="/images/op.png" alt="OP" title="Original Poster">
{% endif %}
{% else %}
<span class="post__username post__username--deleted">deleted user</span>
{% endif %}
</div>
{% if user.isActive %}
<div class="post__actions">
{% if (user.id == post.poster.id and forum.perms.edit) or forum.perms.editAny %}
<a class="post__action fa fa-pencil-square-o" title="Edit this post" href="javascript:void(0);" onclick="editPost({{ post.id }});"></a>
{% endif %}
{% if (user.id == post.poster.id and forum.perms.delete) or forum.perms.deleteAny %}
<a class="post__action fa fa-trash" title="Delete this post" href="javascript:;" onclick="deletePost({{ post.id }})"></a>
{% endif %}
{% if not (post.poster.activated or post.poster.restricted or user.id == post.poster.id) %}
<a class="post__action fa fa-{% if user.isFriends(post.poster.id) == 2 %}heart{% else %}star{% endif %} friend-{{ post.poster.id }}-level" title="You are friends" {% if user.isFriends(post.poster.id) == 0 %}style="display: none;"{% endif %}></a>
<a class="post__action fa fa-user-{% if user.isFriends(post.poster.id) == 0 %}plus{% else %}times{% endif %} forum-friend-toggle friend-{{ post.poster.id }}-toggle" title="{% if user.isFriends(post.poster.id) == 0 %}Add {{ post.poster.username }} as a friend{% else %}Remove friend{% endif %}" href="javascript:void(0);" onclick="Sakura.Friend.{% if user.isFriends(post.poster.id) == 0 %}Add({{ post.poster.id }}){% else %}Remove({{ post.poster.id }}){% endif %}"></a>
<a class="post__action fa fa-flag" title="Report {{ post.poster.username }}" href="{{ route('user.report', post.poster.id) }}"></a>
{% endif %}
<a class="post__action fa fa-reply" title="Quote this post" href="javascript:void(0);" onclick="Sakura.Editor.QuotePost({{ post.id }}, '{{ post.poster.username }}', pText);"></a>
</div>
{% endif %}
</div>
<div class="post__contents">
<div class="post__info">
<a href="#p{{ post.id }}" class="post__title">
{{ post.subject|slice(0, 50) }}{% if post.subject|length > 50 %}...{% endif %}
</a>
<a href="{{ route('forums.post', post.id) }}" class="post__date">
#{{ post.id }} - <time class="time-ago" datetime="{{ post.time|date('r') }}">
{{ post.time|date(config('general.date_format')) }}
</time>
</a>
</div>
<div class="post__text bbcode">
{{ post.parsed|raw }}
</div>
{% if post.poster.signature and post.poster.perms.changeSignature %}
<div class="post__signature bbcode">
{{ post.poster.signature|raw|nl2br }}
</div>
{% endif %}
</div>
</div>
{% endfor %}
{% else %}
{% set titleCache = session.replyText['f' ~ forum.id].title|default('') %}
{% set textCache = session.replyText['f' ~ forum.id].text|default('') %}
{% set postingAction = route('forums.new', forum.id) %}
{% endif %}
{% if forumReplyLink is defined or topic is not defined %}
<div class="post" id="postingPreview" style="display: none">
<div class="post__details">
<div class="post__user">
<a class="post__username" href="{{ route('user.profile', user.id) }}" style="color: {{ user.colour }}; text-shadow: 0 0 5px {% if user.colour != 'inherit' %}{{ user.colour }}{% else %}#222{% endif %}">
{{ user.username }}
</a>
<div class="avatar avatar--border post__avatar post__avatar--online" style="background-image: url('{{ route('user.avatar', user.id) }}')"></div>
<div class="post__usertitle">{{ user.title }}</div>
<img src="/images/tenshi.png" alt="Tenshi"{% if not user.isPremium %} style="opacity: 0;"{% endif %}>
<img src="/images/flags/{{ user.country|lower }}.png" alt="{{ user.country(true) }}">
{% if not topic is defined %}
<img src="/images/op.png" alt="OP" title="Original Poster">
{% endif %}
</div>
</div>
<div class="post__contents">
<div class="post__info">
<span id="previewTitle" class="post__title">
{% if not titleCache is defined %}Re: {{ topic.title }}{% endif %}
</span>
<span id="previewMode" class="post__date">
Preview
</span>
</div>
<div class="post__text bbcode" id="previewText"></div>
{% if user.signature and user.perms.changeSignature %}
<div class="post__signature bbcode">
{{ user.signature|raw|nl2br }}
</div>
{% endif %}
</div>
</div>
{% endif %}
</div>
{% if forumReplyLink is defined or topic is not defined %}
{% include 'forum/elements/replyForm.twig' %}
{% endif %}
{% include 'forum/elements/forumBtns.twig' %}
</div>
{% endblock %}