topic view and comments remaining

This commit is contained in:
flash 2016-11-12 02:52:51 +01:00
parent ce06bc9d68
commit 8429774256
20 changed files with 388 additions and 579 deletions

View file

@ -72,16 +72,6 @@ img {
visibility: hidden !important; visibility: hidden !important;
} }
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
@keyframes fadeOut { @keyframes fadeOut {
0% { 0% {
opacity: 1; opacity: 1;

View file

@ -55,6 +55,5 @@
&--alt { &--alt {
background: #C2AEEE; background: #C2AEEE;
margin: 5px 10px;
} }
} }

View file

@ -0,0 +1,16 @@
.forum-list {
display: flex;
flex-flow: column;
&__category {
background: #C2AFFE;
font-weight: 700;
font-size: 17px;
padding: 4px;
color: inherit;
&-link {
color: inherit !important;
}
}
}

View file

@ -0,0 +1,87 @@
.forum {
display: flex;
min-height: 50px;
align-items: center;
&__icon {
text-align: center;
width: 50px;
line-height: 50px;
flex-shrink: 0;
color: #444;
text-shadow: 0 0 5px #444;
&--unread {
color: #6C5D7B;
text-shadow: 0 0 5px #9475B2;
}
}
&__info {
flex-grow: 1;
flex-shrink: 1;
}
&__name {
font-size: 1.2em;
}
&__description {
font-size: 0.8em;
line-height: 1em;
}
&__subforums {
font-style: italic;
padding-top: 5px;
}
&__subforum--unread {
font-weight: bold;
}
&__stats {
width: 70px;
text-align: center;
flex-shrink: 0;
}
&__stat {
font-size: 0.8em;
line-height: 1.2em;
color: #555;
&--big {
font-size: 1.5em;
color: #111;
}
}
&__recent {
width: 250px;
font-size: 0.9em;
line-height: 1.4em;
flex-shrink: 0;
@media (max-width: 768px) {
display: none;
}
}
&__preview {
display: flex;
align-items: center;
&-avatar {
width: 30px;
height: 30px;
flex-shrink: 0;
}
&-info {
text-align: right;
flex-grow: 1;
padding: 0 4px;
}
}
}

View file

@ -11,6 +11,20 @@
text-decoration: none !important; text-decoration: none !important;
transition: background .2s, box-shadow .2s; transition: background .2s, box-shadow .2s;
&__container {
display: block;
text-decoration: none !important;
color: #000;
margin: 5px auto;
background-color: transparent;
border: 0;
&:active {
color: inherit;
}
}
&--active,
&:hover { &:hover {
background: #C2AFFE; background: #C2AFFE;
box-shadow: inset 0 0 2px #9475B2; box-shadow: inset 0 0 2px #9475B2;
@ -31,4 +45,49 @@
height: 150px; height: 150px;
display: inline-block; display: inline-block;
} }
&__actions {
display: flex;
background: linear-gradient(0deg, #9475B2, transparent) transparent;
}
&__action {
flex-grow: 1;
color: #222;
font-size: 2em;
line-height: 1em;
text-decoration: none !important;
padding: 5px 0;
background-color: transparent;
border: 0;
transition: color .2s;
&:hover {
color: #333;
}
&:active {
color: #111;
}
&--green {
&:hover {
color: #0d0;
}
&:active {
color: #0a0;
}
}
&--red {
&:hover {
color: #d00;
}
&:active {
color: #a00;
}
}
}
} }

View file

@ -0,0 +1,73 @@
.topic {
display: flex;
min-height: 40px;
align-items: center;
&--highlight {
background-color: #C2AFFE;
}
&__icon {
width: 40px;
line-height: 40px;
color: #444;
text-shadow: 0 0 5px #444;
text-align: center;
flex-shrink: 0;
&--unread {
color: #6C5D7B;
text-shadow: 0 0 5px #9475B2;
}
}
&__info {
flex-grow: 1;
flex-shrink: 1;
}
&__author {
font-size: 0.8em;
line-height: 1em;
}
&__stats {
text-align: center;
}
&__stat {
font-size: 0.8em;
color: #555;
line-height: 1em;
padding: 0 10px;
&--big {
font-size: 1.3em;
color: #111;
}
}
&__recent {
display: flex;
width: 250px;
align-items: center;
&-avatar {
width: 20px;
height: 20px;
flex-shrink: 0;
}
&-info {
text-align: right;
flex-grow: 1;
padding: 0 4px;
font-size: 0.9em;
line-height: 1.4em;
}
@media (max-width: 768px) {
display: none;
}
}
}

View file

@ -1,370 +1,6 @@
/*
* Settings page styling
*/
.settings .friends-list {
text-align: center;
}
.settings .friends-list button {
background: transparent;
border: 0;
cursor: pointer;
display: block;
box-sizing: border-box;
width: 100%;
}
.settings .friends-list > div:not(:last-child),
.settings .friends-list > form {
display: inline-block;
border: 1px solid #9475B2;
text-align: center;
width: 220px;
margin: 0 2px 40px;
border-radius: 3px;
box-shadow: inset 0 0 1px #9475B2;
background: #E4CFFF;
transition: background .2s, box-shadow .2s;
}
.settings .friends-list > div:not(:last-child):hover,
.settings .friends-list > form:hover {
margin-bottom: 6px;
background: #C2AFFE;
box-shadow: inset 0 0 2px #9475B2;
}
.settings .friends-list > form:hover {
margin-bottom: 4px;
}
.settings .friends-list > .active {
background: #C2AFFE;
box-shadow: inset 0 0 2px #9475B2;
}
.settings .friends-list > div > .friends-list-data,
.settings .friends-list > form > .friends-list-data {
display: block;
}
.settings .friends-list > div > .friends-list-data > .friends-list-name,
.settings .friends-list > form > .friends-list-data > .friends-list-name {
font-size: 1.2em;
line-height: 1.5em;
padding-bottom: 4px;
}
.settings .friends-list > div > .friends-list-actions,
.settings .friends-list > form > .friends-list-actions {
display: none;
background: linear-gradient(0deg, #9475B2, transparent) transparent;
}
.settings .friends-list > div > .friends-list-actions > a,
.settings .friends-list > form > .friends-list-actions > button {
color: #222;
font-size: 2em;
line-height: 1em;
text-decoration: none;
transition: .2s;
padding: 5px 0;
float: left;
}
.settings .friends-list > div:hover > .friends-list-actions,
.settings .friends-list > form:hover > .friends-list-actions {
display: block;
}
.settings .friends-list > div > .friends-list-actions > .remove:hover,
.settings .friends-list > form > .friends-list-actions > .remove:hover {
color: #D00;
}
.settings .friends-list > div > .friends-list-actions > .remove:active,
.settings .friends-list > form > .friends-list-actions > .remove:active {
color: #A00;
}
.settings .friends-list > div > .friends-list-actions > .add:hover,
.settings .friends-list > form > .friends-list-actions > .add:hover {
color: #0D0;
}
.settings .friends-list > div > .friends-list-actions > .add:active,
.settings .friends-list > form > .friends-list-actions > .add:active {
color: #0A0;
}
.settings .friends-list > div > .friends-list-actions > a,
.settings .friends-list > form > .friends-list-actions > button {
width: 50%;
}
.settings .friends-list > div > .friends-list-actions > .fill,
.settings .friends-list > form > .friends-list-actions > .fill {
width: 100%;
}
@media (max-width: 1064px) {
.settings .friends-list > div:not(:last-child) {
margin-bottom: 6px;
}
.settings .friends-list > form {
margin-bottom: 4px;
}
.settings .friends-list .friends-list-actions {
display: block;
}
}
/*
* Support page Styling
*/
.support .sectionHeader {
margin: -1px -2px;
background: linear-gradient(270deg, rgba(148, 117, 178, .7), rgba(148, 117, 178, 0), rgba(148, 117, 178, .7)) #C2AFFE;
padding: 2px;
font-weight: 700;
font-size: 15px;
color: #306;
}
.support .featureParent {
width: 100%;
padding: 10px 0;
overflow: hidden;
text-align: center;
}
.support .featureBox {
background: linear-gradient(180deg, #C2AFFE, #B19EED) no-repeat scroll left top / cover #C2AFFE;
margin: 7px;
border-radius: 5px;
text-align: center;
box-shadow: 0 0 .5em #000;
text-shadow: 0 0 .5em #9475B2;
display: inline-block;
vertical-align: top;
transition: .2s;
width: 400px;
height: 50px;
cursor: default;
color: #503170;
}
@media (min-width: 1064px) {
.support .featureBox.final {
width: 818px;
}
.support .featureBox.final .featureBoxDesc {
font-size: 1.3em;
}
}
@media (max-width: 840px) {
.support .featureBox,
.support .featureBox.final {
width: 380px;
}
.support .featureBox.final .featureBoxDesc {
line-height: 25px;
}
.support .featureBox .right {
display: none;
}
}
.support .featureBoxIcon.right {
float: right;
}
.support .featureBox:hover {
box-shadow: 0 0 1.5em #609;
text-shadow: 0 0 .7em #9475B2;
}
.support .featureBoxIcon {
float: left;
line-height: 50px;
width: 60px;
text-align: center;
font-size: 2.8em;
}
.support .featureBoxDesc {
display: block;
line-height: 50px;
}
.support .paymentOptions {
float: right;
font-size: 2em;
margin-left: 6px;
}
.support .paymentOptions div {
float: left;
margin: 0 1px;
}
/* /*
* Forum Styling * Forum Styling
*/ */
.forum .forumList {
display: flex;
flex-flow: column;
}
.forum .forumList .forumCategory {
background: #C2AFFE;
font-weight: 700;
font-size: 17px;
padding: 4px;
color: inherit;
text-decoration: none;
}
.forum .forumList .forumForum {
display: inline-flex;
min-height: 50px;
}
.forum .forumList .forumForum > div {
display: inline-flex;
flex-flow: column;
justify-content: center;
}
.forum .forumList .forumForum .forumIcon {
text-align: center;
width: 50px;
line-height: 50px;
flex-shrink: 0;
color: #444;
text-shadow: 0 0 5px #444;
}
.forum .forumList .forumForum .forumIcon.unread {
color: #6C5D7B;
text-shadow: 0 0 5px #9475B2;
}
.forum .forumList .forumForum .forumTitle {
flex-grow: 1;
flex-shrink: 1;
}
.forum .forumList .forumForum .forumTitle .name {
font-size: 1.2em;
line-height: 1.7em;
}
.forum .forumList .forumForum .forumTitle .desc {
font-size: .8em;
line-height: 1em;
}
.forum .forumList .forumForum .forumTitle .desc .subforums {
font-weight: bold;
padding-top: 5px;
}
.forum .forumList .forumForum .forumCount {
width: 70px;
text-align: center;
flex-shrink: 0;
}
.forum .forumList .forumForum .forumCount .topics {
font-size: 1.5em;
color: #111;
}
.forum .forumList .forumForum .forumCount .posts {
font-size: .8em;
line-height: 1.2em;
color: #555;
}
.forum .forumList .forumForum .forumLastPost {
width: 250px;
font-size: .9em;
line-height: 1.4em;
flex-shrink: 0;
}
@media (max-width: 768px) {
.forum .forumList .forumForum .forumLastPost {
display: none;
}
}
.forum .topicList {
width: 100%;
border-spacing: 0;
margin-top: 2px;
}
.forum .topicList thead,
.forum .topicList tfoot {
background: #C2AFFE;
font-weight: 700;
}
.forum .topicList tbody td {
height: 40px;
word-wrap: break-word;
}
.forum .topicList tbody .topicAnnouncement {
background: #C2AFFE;
}
.forum .topicList tbody .topicIcon {
width: 40px;
text-align: center;
color: #444;
text-shadow: 0 0 5px #444;
}
.forum .topicList tbody .topicIcon.unread {
color: #6C5D7B;
text-shadow: 0 0 5px #9475B2;
}
.forum .topicList tbody .topicAuthor {
width: 150px;
text-align: center;
}
.forum .topicList tbody .topicCounts {
text-align: center;
}
.forum .topicList tbody .topicCounts .replies {
font-size: 1.3em;
color: #111;
line-height: 1.3em;
}
.forum .topicList tbody .topicCounts .views {
font-size: .8em;
color: #555;
line-height: 1em;
}
.forum .topicList tbody .topicLast {
width: 250px;
text-align: center;
}
.forum.viewtopic .posts { .forum.viewtopic .posts {
width: 100%; width: 100%;
border-spacing: 0; border-spacing: 0;

View file

@ -17,6 +17,8 @@
@import "bem/dialogue"; @import "bem/dialogue";
@import "bem/dropdown"; @import "bem/dropdown";
@import "bem/footer"; @import "bem/footer";
@import "bem/forum";
@import "bem/forum-list";
@import "bem/friend-box"; @import "bem/friend-box";
@import "bem/header"; @import "bem/header";
@import "bem/header-login"; @import "bem/header-login";
@ -27,7 +29,6 @@
@import "bem/profile"; @import "bem/profile";
@import "bem/settings"; @import "bem/settings";
@import "bem/sidepanel-table"; @import "bem/sidepanel-table";
@import "bem/topic";
@import "bem/uploader"; @import "bem/uploader";
@import "bem/user"; @import "bem/user";
@import "legacy";

View file

@ -10,10 +10,6 @@ namespace Yuuno
Sakura.Friend.Init(); Sakura.Friend.Init();
Notifications.Init(); Notifications.Init();
Busy.Init(); Busy.Init();
if (window.location.pathname === '/' || window.location.pathname === '/forum' || window.location.pathname === '/forum/') {
Ybabstat.Initiate();
}
} }
} }
} }

View file

@ -1,80 +0,0 @@
namespace Yuuno
{
export class Ybabstat
{
private static Illuminati: number[] = [];
private static FreeMason: number = Date.now();
public static Initiate(): void
{
document.addEventListener('keydown', Ybabstat.HideYourMind);
}
private static TwoThousandSixteenIsTheYearWePhysicallyMergeWithCats(): void
{
var diff: number = Date.now() - Ybabstat.FreeMason,
vals: number[] = [
-7 / Math.cos((diff / 500) * (.85 * Math.PI)),
-7 * Math.tan((diff / 250) * (.85 * Math.PI))
];
document.body.style.position = 'absolute';
document.body.style.left = vals[0] + 'px';
document.body.style.top = vals[1] + 'px';
document.body.style.fontSize = vals[0] + 'px';
}
private static HideYourMind(conflictions: KeyboardEvent): void
{
var twoThousandTwelveIsTheYearWeAscendToSpaceRobots: number = conflictions.keyCode;
Ybabstat.Illuminati.push(twoThousandTwelveIsTheYearWeAscendToSpaceRobots);
if (Ybabstat.Illuminati[0] === 68 && Ybabstat.Illuminati[1] === 73 && Ybabstat.Illuminati[2] === 67 && Ybabstat.Illuminati[3] === 75 && Ybabstat.Illuminati[4] === 83) {
var dicksAreForMy: HTMLAudioElement = <HTMLAudioElement>Sakura.DOM.Create('audio'),
friendsWhenThey: HTMLSourceElement = <HTMLSourceElement>Sakura.DOM.Create('source'),
comeToMyHouse: HTMLSourceElement = <HTMLSourceElement>Sakura.DOM.Create('source');
friendsWhenThey.type = 'audio/mp3';
comeToMyHouse.type = 'audio/ogg';
friendsWhenThey.src = 'https://data.flashii.net/assets/sounds/dicks.mp3';
comeToMyHouse.src = 'https://data.flashii.net/assets/sounds/dicks.ogg';
Sakura.DOM.Append(dicksAreForMy, friendsWhenThey);
Sakura.DOM.Append(dicksAreForMy, comeToMyHouse);
dicksAreForMy.play();
Ybabstat.Illuminati = [];
}
if (Ybabstat.Illuminati[0] === 77 && Ybabstat.Illuminati[1] === 69 && Ybabstat.Illuminati[2] === 87 && Ybabstat.Illuminati[3] === 79 && Ybabstat.Illuminati[4] === 87) {
var noklz: HTMLAudioElement = <HTMLAudioElement>Sakura.DOM.Create('audio'),
von: HTMLSourceElement = <HTMLSourceElement>Sakura.DOM.Create('source'),
schnitzel: HTMLSourceElement = <HTMLSourceElement>Sakura.DOM.Create('source');
von.type = 'audio/mp3';
schnitzel.type = 'audio/ogg';
von.src = 'https://data.flashii.net/assets/sounds/mewow.mp3';
schnitzel.src = 'https://data.flashii.net/assets/sounds/mewow.ogg';
Sakura.DOM.Append(noklz, von);
Sakura.DOM.Append(noklz, schnitzel);
noklz.play();
document.body.style.animation = 'spin 5s infinite linear';
Ybabstat.Illuminati = [];
}
if (Ybabstat.Illuminati[0] == 83 && Ybabstat.Illuminati[1] == 79 && Ybabstat.Illuminati[2] == 67 && Ybabstat.Illuminati[3] == 75 && Ybabstat.Illuminati[4] == 67 && Ybabstat.Illuminati[5] == 72 && Ybabstat.Illuminati[6] == 65 && Ybabstat.Illuminati[7] == 84) {
setInterval(Ybabstat.TwoThousandSixteenIsTheYearWePhysicallyMergeWithCats, 20);
Ybabstat.Illuminati = [];
}
}
}
}

View file

@ -1,10 +1,16 @@
<div class="content__header">{{ title }}</div> <div class="content__header">{{ title }}</div>
<div class="forumList"> <div class="forum-list">
{% for forum in forum.forums %} {% for forum in forum.forums %}
{% if forum.type == 1 %} {% if forum.type == 1 %}
{% if forum.forums|length and forum.perms.view %} {% if forum.forums|length and forum.perms.view %}
<div class="forumCategory"> <div class="forum-list__category">
{% if forum.type != 1 %}Subforums{% else %}<a href="{{ route('forums.forum', forum.id) }}">{{ forum.name }}</a>{% endif %} {% if forum.type != 1 %}
Subforums
{% else %}
<a class="forum-list__category-link" href="{{ route('forums.forum', forum.id) }}">
{{ forum.name }}
</a>
{% endif %}
</div> </div>
{% for forum in forum.forums %} {% for forum in forum.forums %}
{% include 'forum/elements/forumEntry.twig' %} {% include 'forum/elements/forumEntry.twig' %}
@ -22,34 +28,14 @@
{% set paginationUrl %}{{ route('forums.forum', forum.id) }}{% endset %} {% set paginationUrl %}{{ route('forums.forum', forum.id) }}{% endset %}
{% include 'forum/elements/forumBtns.twig' %} {% include 'forum/elements/forumBtns.twig' %}
{% if forum.topics %} {% if forum.topics %}
<table class="topicList">
<thead>
<tr>
<th></th>
<th>Topic</th>
<th>Author</th>
<th></th>
<th>Last post</th>
</tr>
</thead>
<tfoot>
<tr>
<th></th>
<th>Topic</th>
<th>Author</th>
<th></th>
<th>Last post</th>
</tr>
</tfoot>
<tbody>
{% for topic in topics[get.page|default(1) - 1] %} {% for topic in topics[get.page|default(1) - 1] %}
{% include 'forum/elements/topicEntry.twig' %} {% include 'forum/elements/topicEntry.twig' %}
{% endfor %} {% endfor %}
</tbody>
</table>
{% else %} {% else %}
<h1 style="margin: 2em auto; text-align: center;">There are no posts in this forum!</h1> <h1 style="margin: 2em auto; text-align: center;">There are no posts in this forum!</h1>
{% endif %} {% endif %}
{% include 'forum/elements/forumBtns.twig' %} {% include 'forum/elements/forumBtns.twig' %}
{% endif %} {% endif %}

View file

@ -1,35 +1,58 @@
{% if forum.perms.view %} {% if forum.perms.view %}
<div class="forumForum"> <div class="forum">
<div class="forumIcon {% if forum.unread(user.id) %}unread {% endif %}fa fa-3x {% if forum.icon %}{{ forum.icon }}{% else %}{% if forum.type == 2 %}fa-chevron-circle-right{% elseif forum.type == 1 %}fa-folder{% else %}fa-comments{% endif %}{% endif %}"></div> <div class="forum__icon {% if forum.unread(user.id) %}forum__icon--unread {% endif %}fa fa-3x {% if forum.icon %}{{ forum.icon }}{% else %}{% if forum.type == 2 %}fa-chevron-circle-right{% elseif forum.type == 1 %}fa-folder{% else %}fa-comments{% endif %}{% endif %}"></div>
<div class="forumTitle"> <div class="forum__info">
<div class="name"><a href="{% if forum.type == 2 %}{{ forum.link }}{% else %}{{ route('forums.forum', forum.id) }}{% endif %}">{{ forum.name }}</a></div> <a class="forum__name" href="{% if forum.type == 2 %}{{ forum.link }}{% else %}{{ route('forums.forum', forum.id) }}{% endif %}">
<div class="desc"> {{ forum.name }}
</a>
<div class="forum__description">
{{ forum.description }} {{ forum.description }}
{% if forum.forums|length %} {% if forum.forums|length %}
<div class="subforums"> <div class="forum__subforums">
Subforums: Subforums:
{% for forum in forum.forums %} {% for forum in forum.forums %}
{% if forum.unread(user.id) %}<span style="font-variant: small-caps; color: #6C5D7B; text-shadow: 0px 0px 5px #9475B2;">[!]</span>{% endif %} <a href="{% if forum.type == 2 %}{{ forum.link }}{% else %}{{ route('forums.forum', forum.id) }}{% endif %}">{{ forum.name }}</a> <a class="forum__subforum{% if forum.unread(user.id) %} forum__subforum--unread{% endif %}" href="{% if forum.type == 2 %}{{ forum.link }}{% else %}{{ route('forums.forum', forum.id) }}{% endif %}">
{{ forum.name }}
</a>
{% endfor %} {% endfor %}
</div> </div>
{% endif %} {% endif %}
</div> </div>
</div> </div>
{% if forum.type != 2 %} {% if forum.type != 2 %}
<div class="forumCount"> <div class="forum__stats">
<div class="topics" title="Amount of topics in this forum.">{{ forum.topicCount }}</div> <div class="forum__stat--big" title="Topics">
<div class="posts" title="Amount of posts in this forum.">{{ forum.postCount }}</div> {{ forum.topicCount }}
</div> </div>
<div class="forumLastPost"> <div class="forum__stat" title="Posts">
<div> {{ forum.postCount }}
</div>
</div>
<div class="forum__recent">
{% if forum.lastPost.id %} {% if forum.lastPost.id %}
<a href="{{ route('forums.topic', forum.lastPost.topic) }}">{{ forum.lastPost.subject|slice(0, 30) }}{% if forum.lastPost.subject|length > 30 %}...{% endif %}</a><br> <div class="forum__preview">
<time class="time-ago" datetime="{{ forum.lastPost.time|date('r') }}">{{ forum.lastPost.time|date(config('general.date_format')) }}</time> by {% if forum.lastPost.poster.id %}<a href="{{ route('user.profile', forum.lastPost.poster.id) }}" style="color: {{ forum.lastPost.poster.colour }}; text-shadow: 0 0 5px {% if forum.lastPost.poster.colour != 'inherit' %}{{ forum.lastPost.poster.colour }}{% else %}#222{% endif %};">{{ forum.lastPost.poster.username }}</a>{% else %}[deleted user]{% endif %} <a href="{{ route('forums.post', forum.lastPost.id) }}" class="fa fa-tag"></a> <div class="forum__preview-avatar avatar avatar--border" style="background-image: url('{{ route('user.avatar', forum.lastPost.poster.id) }}')"></div>
<div class="forum__preview-info">
<div class="forum__preview-info-row">
<a href="forum__post-link" href="{{ route('forums.post', forum.lastPost.id) }}">
{{ forum.lastPost.subject|slice(0, 30)|trim }}{% if forum.lastPost.subject|length > 30 %}...{% endif %}
</a>
</div>
<div class="forum__preview-info-row">
<time class="time-ago" datetime="{{ forum.lastPost.time|date('r') }}">
{{ forum.lastPost.time|date(config('general.date_format')) }}
</time>
by
<a href="{{ route('user.profile', forum.lastPost.poster.id) }}" style="color: {{ forum.lastPost.poster.colour }}; text-shadow: 0 0 5px {% if forum.lastPost.poster.colour != 'inherit' %}{{ forum.lastPost.poster.colour }}{% else %}#222{% endif %}">
{{ forum.lastPost.poster.username }}
</a>
</div>
</div>
</div>
{% else %} {% else %}
There are no posts in this forum.<br>&nbsp; <i>There are no posts in this forum.</i>
{% endif %} {% endif %}
</div> </div>
</div>
{% endif %} {% endif %}
</div> </div>
{% endif %} {% endif %}

View file

@ -1,27 +1,48 @@
<tr> <div class="topic{% if topic.type == 2 %} topic--highlight{% endif %}">
<td class="topicIcon{% if topic.unread(user.id) %} unread{% endif %}{% if topic.type == 2 %} topicAnnouncement{% endif %}"> <div class="
<div class="fa fa-2x fa-{% if topic.type == 1 %}thumb-tack{% elseif topic.type == 2 %}bullhorn{% elseif topic.status == 1 %}lock{% else %}navicon{% endif %}"></div> topic__icon
</td> fa fa-2x
<td class="topicTitle{% if topic.type == 2 %} topicAnnouncement{% endif %}"> {% if topic.unread(user.id) %}topic__icon--unread{% endif %}
<a href="{{ route('forums.topic', topic.id) }}">{{ topic.title }}</a> fa-{% if topic.type == 1 %}thumb-tack{% elseif topic.type == 2 %}bullhorn{% elseif topic.status == 1 %}lock{% else %}navicon{% endif %}
</td> "></div>
<td class="topicAuthor{% if topic.type == 2 %} topicAnnouncement{% endif %}"> <div class="topic__info">
<a class="topic__title" href="{{ route('forums.topic', topic.id) }}">
{{ topic.title }}
</a>
{% if topic.firstPost.poster.id %} {% if topic.firstPost.poster.id %}
<a href="{{ route('user.profile', topic.firstPost.poster.id) }}" style="color: {{ topic.firstPost.poster.colour }}; text-shadow: 0 0 5px {% if topic.firstPost.poster.colour != 'inherit' %}{{ topic.firstPost.poster.colour }}{% else %}#222{% endif %};">{{ topic.firstPost.poster.username }}</a> <div class="topic__author">
{% else %} by
[deleted user] <a class="topic__author-link" href="{{ route('user.profile', topic.firstPost.poster.id) }}" style="color: {{ topic.firstPost.poster.colour }}; text-shadow: 0 0 5px {% if topic.firstPost.poster.colour != 'inherit' %}{{ topic.firstPost.poster.colour }}{% else %}#222{% endif %}">
{{ topic.firstPost.poster.username }}
</a>
</div>
{% endif %} {% endif %}
</td> </div>
<td class="topicCounts{% if topic.type == 2 %} topicAnnouncement{% endif %}"> <div class="topic__stats">
<div class="replies" title="Amount of replies to this topic.">{{ topic.replyCount }}</div> <div class="topic__stat--big" title="Replies">
<div class="views" title="Amount of times this topic has been viewed.">{{ topic.views }}</div> {{ topic.replyCount }}
</td> </div>
<td class="topicLast{% if topic.type == 2 %} topicAnnouncement{% endif %}"> <div class="topic__stat" title="Views">
{{ topic.views }}
</div>
</div>
<div class="topic__recent">
<div class="topic__recent-avatar avatar avatar--border" style="background-image: url('{{ route('user.avatar', topic.lastPost.poster.id) }}')"></div>
<div class="topic__recent-info">
<div class="topic__recent-info-row">
<a href="{{ route('forums.post', topic.lastPost.id) }}">Last reply</a>
by
{% if topic.lastPost.poster.id %} {% if topic.lastPost.poster.id %}
<a href="{{ route('user.profile', topic.lastPost.poster.id) }}" style="color: {{ topic.lastPost.poster.colour }}; text-shadow: 0 0 5px {% if topic.lastPost.poster.colour != 'inherit' %}{{ topic.lastPost.poster.colour }}{% else %}#222{% endif %};">{{ topic.lastPost.poster.username }}</a> <a href="{{ route('user.profile', topic.lastPost.poster.id) }}" style="color: {{ topic.lastPost.poster.colour }}; text-shadow: 0 0 5px {% if topic.lastPost.poster.colour != 'inherit' %}{{ topic.lastPost.poster.colour }}{% else %}#222{% endif %};">{{ topic.lastPost.poster.username }}</a>
{% else %} {% else %}
[deleted user] [deleted user]
{% endif %} <a href="{{ route('forums.post', topic.lastPost.id) }}" class="fa fa-tag"></a><br> {% endif %}
<time class="time-ago" datetime="{{ topic.lastPost.time|date('r') }}">{{ topic.lastPost.time|date(config('general.date_format')) }}</time> </div>
</td> <div class="topic__recent-info-row">
</tr> <time class="time-ago" datetime="{{ topic.lastPost.time|date('r') }}">
{{ topic.lastPost.time|date(config('general.date_format')) }}
</time>
</div>
</div>
</div>
</div>

View file

@ -1,13 +1,12 @@
{% extends 'master.twig' %} {% extends 'master.twig' %}
{% set title %}Forums / {{ forum.name }}{% endset %} {% set title = 'Forums / ' ~ forum.name %}
{% set forumBackLink = route('forums.index') %}
{% set forumBackLink %}{{ route('forums.index') }}{% endset %} {% set forumNewLink = route('forums.new', forum.id) %}
{% set forumNewLink %}{{ route('forums.new', forum.id) }}{% endset %} {% set forumMarkRead = route('forums.mark', forum.id) ~ '?s=' ~ session_id() %}
{% set forumMarkRead %}{{ route('forums.mark', forum.id) }}?s={{ session_id() }}{% endset %}
{% block content %} {% block content %}
<div class="content forum"> <div class="content">
{% include 'forum/elements/forumBase.twig' %} {% include 'forum/elements/forumBase.twig' %}
</div> </div>
{% endblock %} {% endblock %}

View file

@ -3,7 +3,7 @@
{% set title = 'Forums' %} {% set title = 'Forums' %}
{% block content %} {% block content %}
<div class="content homepage forum"> <div class="content">
<div class="content--right"> <div class="content--right">
<div id="forumIndexPopularTopics"> <div id="forumIndexPopularTopics">
<div class="content__header content__header--alt">Popular topics</div> <div class="content__header content__header--alt">Popular topics</div>

View file

@ -1,8 +1,7 @@
{% extends 'master.twig' %} {% extends 'master.twig' %}
{% set forumBackLink %}{{ route('forums.forum', forum.id) }}{% endset %} {% set forumBackLink = route('forums.forum', forum.id) %}
{% set title = topic is defined ? topic.title : 'Creating topic in ' ~ forum.name %}
{% set title %}{% if topic is defined %}{{ topic.title }}{% else %}Creating topic in {{ forum.name }}{% endif %}{% endset %}
{% if topic is defined %} {% if topic is defined %}
{% if forum.perms.reply {% if forum.perms.reply
@ -48,11 +47,11 @@
{% set posts = topic.posts|batch(10) %} {% set posts = topic.posts|batch(10) %}
{% set paginationPages = posts %} {% set paginationPages = posts %}
{% set paginationUrl %}{{ route('forums.topic', topic.id) }}{% endset %} {% set paginationUrl = route('forums.topic', topic.id) %}
{% endif %} {% endif %}
{% block css %} {% block css %}
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.5.0/styles/default.min.css"> <link href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.5.0/styles/default.min.css" rel="stylesheet">
{% endblock %} {% endblock %}
{% block js %} {% block js %}
@ -90,11 +89,18 @@
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="content forum viewtopic"> <div class="content">
<div class="content__header">{{ forum.name }} / <span id="topicTitle">{{ topic.title|default(null) }}</span></div> <div class="content__header">
{{ forum.name }} / <span id="topicTitle">
{{ topic.title|default(null) }}
</span>
</div>
{% include 'forum/elements/forumBtns.twig' %} {% include 'forum/elements/forumBtns.twig' %}
<table class="posts"> <table class="posts">
{% if topic is defined %} {% if topic is defined %}
{% set textCache = session.replyText['t' ~ topic.id]|default(null) %} {% set textCache = session.replyText['t' ~ topic.id]|default(null) %}
{% set postingAction = route('forums.topic.reply', topic.id) %} {% set postingAction = route('forums.topic.reply', topic.id) %}
@ -149,11 +155,15 @@
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
{% else %} {% else %}
{% set titleCache = session.replyText['f' ~ forum.id].title|default('') %} {% set titleCache = session.replyText['f' ~ forum.id].title|default('') %}
{% set textCache = session.replyText['f' ~ forum.id].text|default('') %} {% set textCache = session.replyText['f' ~ forum.id].text|default('') %}
{% set postingAction = route('forums.new', forum.id) %} {% set postingAction = route('forums.new', forum.id) %}
{% endif %} {% endif %}
{% if forumReplyLink is defined or topic is not defined %} {% if forumReplyLink is defined or topic is not defined %}
<tr class="post" id="postingPreview" style="display: none;"> <tr class="post" id="postingPreview" style="display: none;">
<td class="userpanel"> <td class="userpanel">
@ -181,9 +191,11 @@
</tr> </tr>
{% endif %} {% endif %}
</table> </table>
{% if forumReplyLink is defined or topic is not defined %} {% if forumReplyLink is defined or topic is not defined %}
{% include 'forum/elements/replyForm.twig' %} {% include 'forum/elements/replyForm.twig' %}
{% endif %} {% endif %}
{% include 'forum/elements/forumBtns.twig' %} {% include 'forum/elements/forumBtns.twig' %}
</div> </div>
{% endblock %} {% endblock %}

View file

@ -14,6 +14,7 @@
{% block content %} {% block content %}
<div class="content support"> <div class="content support">
<div class="content__header">Support {{ config('general.name') }}</div> <div class="content__header">Support {{ config('general.name') }}</div>
<h1 style="font-size: 10em; line-height: 1.5em">redo this entirely</h1>
<div style="font-size: .9em; margin-bottom: 10px;"> <div style="font-size: .9em; margin-bottom: 10px;">
<p>To keep the site and everything surrounding it running I need money to pay the bills, however instead of just having a donate button I decided on adding a premium system to the site which gives you a few extras. The premium rank is indentified on the site by Tenshi. More stuff that literally doesn't exist yet will be added to the list of featuring down the line but in order, the stuff that already exist can be seen further down on this page. With your help we can keep adding new stuff, get new hardware and keep the site awesome!</p> <p>To keep the site and everything surrounding it running I need money to pay the bills, however instead of just having a donate button I decided on adding a premium system to the site which gives you a few extras. The premium rank is indentified on the site by Tenshi. More stuff that literally doesn't exist yet will be added to the list of featuring down the line but in order, the stuff that already exist can be seen further down on this page. With your help we can keep adding new stuff, get new hardware and keep the site awesome!</p>
</div> </div>
@ -23,7 +24,8 @@
</div> </div>
<div style="margin-bottom: 10px;"> <div style="margin-bottom: 10px;">
<h3>Your Tenshi tag is valid till {{ user.premiumInfo.expire|date(config('general.date_format')) }}.</h3> <h3>Your Tenshi tag is valid till {{ user.premiumInfo.expire|date(config('general.date_format')) }}.</h3>
<progress value="{{ 100 - (((date().timestamp - user.premiumInfo.start) / (user.premiumInfo.expire - user.premiumInfo.start)) * 100) }}" max="100" style="width: 100%"></progress> {# the progress bar is completely broken, not fixing it until i completely reviewed the premium system #}
{#<progress value="{{ 100 - (((date().timestamp - user.premiumInfo.start) / (user.premiumInfo.expire - user.premiumInfo.start)) * 100) }}" max="100" style="width: 100%"></progress>#}
</div> </div>
{% endif %} {% endif %}
<div class="sectionHeader"> <div class="sectionHeader">
@ -48,14 +50,6 @@
Payment Options Payment Options
<div style="float: right; font-size: 10px; text-align: right;"> <div style="float: right; font-size: 10px; text-align: right;">
Our transactions are handled through PayPal. Our transactions are handled through PayPal.
<div class="paymentOptions fa">
<div class="fa-cc-paypal"></div>
<div class="fa-cc-visa"></div>
<div class="fa-cc-mastercard"></div>
<div class="fa-cc-discover"></div>
<div class="fa-cc-amex"></div>
<div class="clear"></div>
</div>
</div> </div>
</div> </div>
{% if user.isActive and user.verified %} {% if user.isActive and user.verified %}

View file

@ -7,17 +7,16 @@
{% endblock %} {% endblock %}
{% block settingsContent %} {% block settingsContent %}
<div class="friends-list"> <div style="text-align: center">
{% for rank in user.ranks %} {% for rank in user.ranks %}
<form method="post" action="{{ route('settings.account.ranks') }}" class="friend-container {% if rank.id == user.mainRankId %}active{% endif %}"> <form method="post" action="{{ route('settings.account.ranks') }}" class="friend-box {% if rank.id == user.mainRankId %}friend-box--active{% endif %}">
<input type="hidden" name="session" value="{{ session_id() }}"> <input type="hidden" name="session" value="{{ session_id() }}">
<input type="hidden" name="rank" value="{{ rank.id }}"> <input type="hidden" name="rank" value="{{ rank.id }}">
<button class="friends-list-data" name="mode" value="main"> <button class="friend-box__container" name="mode" value="main">
<div class="friends-list-name" style="color: {{ rank.colour }};">{{ rank.name }}</div> <div class="friend-box__name" style="color: {{ rank.colour }}">{{ rank.name }}</div>
</button> </button>
<div class="friends-list-actions"> <div class="friend-box__actions">
<button title="{% if rank.id in locked %}You can't leave this rank{% else %}Leave rank{% endif %}" class="remove fill fa fa-{% if rank.id in locked %}shield{% else %}remove{% endif %}" name="mode" value="remove" {% if rank.id in locked %}disabled{% endif %}></button> <button title="{% if rank.id in locked %}You can't leave this rank{% else %}Leave rank{% endif %}" class="friend-box__action friend-box__action--red fa fa-{% if rank.id in locked %}shield{% else %}remove{% endif %}" name="mode" value="remove" {% if rank.id in locked %}disabled{% endif %}></button>
<div class="clear"></div>
</div> </div>
</form> </form>
{% endfor %} {% endfor %}

View file

@ -13,16 +13,15 @@
{% block settingsContent %} {% block settingsContent %}
{% if friends|length %} {% if friends|length %}
<div class="friends-list"> <div style="text-align: center">
{% for friend in friends[get.page|default(1) - 1] %} {% for friend in friends[get.page|default(1) - 1] %}
<div class="friend-container" id="friendslist-friend-{{ friend.id }}"> <div class="friend-box" id="friendslist-friend-{{ friend.id }}">
<a class="friends-list-data" href="{{ route('user.profile', friend.id) }}"> <a class="friend-box__container" href="{{ route('user.profile', friend.id) }}">
<img src="{{ route('user.avatar', friend.id) }}" alt="{{ friend.username }}" class="friends-list-avatar avatar avatar--border" style="width: 150px; height: 150px;"> <div class="friend-box__avatar avatar avatar--border" style="background-image: url('{{ route('user.avatar', friend.id) }}')"></div>
<div class="friends-list-name" style="color: {{ friend.colour }};">{{ friend.username }}</div> <div class="friend-box__name" style="color: {{ friend.colour }};">{{ friend.username }}</div>
</a> </a>
<div class="friends-list-actions"> <div class="friend-box__actions">
<a class="remove fill fa fa-remove" title="Remove friend" href="javascript:void(0);" onclick="Sakura.Friend.Remove({{ friend.id }});"></a> <a class="friend-box__action friend-box__action--red fa fa-remove" title="Remove friend" href="javascript:void(0);" onclick="Sakura.Friend.Remove({{ friend.id }});"></a>
<div class="clear"></div>
</div> </div>
</div> </div>
{% endfor %} {% endfor %}

View file

@ -13,17 +13,16 @@
{% block settingsContent %} {% block settingsContent %}
{% if friends|length %} {% if friends|length %}
<div class="friends-list"> <div style="text-align: center">
{% for friend in friends[get.page|default(1) - 1] %} {% for friend in friends[get.page|default(1) - 1] %}
<div class="friend-container" id="friend-{{ friend.id }}"> <div class="friend-box" id="friend-{{ friend.id }}">
<a class="friends-list-data" href="{{ route('user.profile', friend.id) }}"> <a class="friend-box__container" href="{{ route('user.profile', friend.id) }}">
<img src="{{ route('user.avatar', friend.id) }}" alt="{{ friend.username }}" class="friends-list-avatar avatar avatar--border" style="width: 150px; height: 150px;"> <div class="friend-box__avatar avatar avatar--border" style="background-image: url('{{ route('user.avatar', friend.id) }}')"></div>
<div class="friends-list-name" style="color: {{ friend.colour }};">{{ friend.username }}</div> <div class="friend-box__name" style="color: {{ friend.colour }};">{{ friend.username }}</div>
</a> </a>
<div class="friends-list-actions"> <div class="friend-box__actions">
<a class="add fa fa-check" title="Add friend" href="javascript:void(0);" onclick="Sakura.Friend.Add({{ friend.id }});"></a> <a class="friend-box__action friend-box__action--green fa fa-check" title="Add friend" href="javascript:void(0);" onclick="Sakura.Friend.Add({{ friend.id }});"></a>
<a class="remove fa fa-remove" title="Remove friend" href="javascript:void(0);" onclick="Sakura.Friend.Remove({{ friend.id }});"></a> <a class="friend-box__action friend-box__action--red fa fa-remove" title="Remove friend" href="javascript:void(0);" onclick="Sakura.Friend.Remove({{ friend.id }});"></a>
<div class="clear"></div>
</div> </div>
</div> </div>
{% endfor %} {% endfor %}