This commit is contained in:
Aevann1 2022-04-01 20:38:31 +02:00
parent 075e8cc74a
commit 5174bb0f8a
28 changed files with 3221 additions and 3219 deletions

View file

@ -90,61 +90,61 @@ blockquote p {
}
.comment {
background-color: var(--gray-700) !important;
background-color: var(--gray-700) !important;
}
.navbar-light, .navbar .container-fluid, #mobile-bottom-navigation-bar {
background:#ffe url(https://i.imgur.com/kAfDGxF.png);
background-size: contain;
background:#ffe url(https://i.imgur.com/kAfDGxF.png);
background-size: contain;
}
blockquote {
background-color: transparent;
border-color: #789922 !important;
border-width: 1px !important;
border-color: #789922 !important;
border-width: 1px !important;
}
blockquote a {
color: navy;
color: navy;
}
.comment-collapse-desktop {
border-color: maroon !important;
border-width: 1px !important;
border-color: maroon !important;
border-width: 1px !important;
}
.score-up, .active.arrow-up::before, .arrow-up::after, .arrow-up:hover::before {
color: maroon !important;
color: maroon !important;
}
.score-down, .active.arrow-down::before, .arrow-down::after, .arrow-down:hover::before {
color: maroon !important;
color: maroon !important;
}
.arrow-up::before, .arrow-down::before, .score {
color: var(--gray-400);
color: var(--gray-400);
}
.srd {
background-color: var(--gray-700) !important;
background-color: var(--gray-700) !important;
}
.srd a {
color: maroon !important;
color: maroon !important;
}
:root {
--primary: maroon;
--primary: maroon;
}
.caction {
color: var(--gray-400) !important;
color: var(--gray-400) !important;
}
.user-name span {
color: #117743 !important;
color: #117743 !important;
}
.comment-anchor:target, .unread2 {
background: #ffffff88 !important;
background: #ffffff88 !important;
}

View file

@ -2,22 +2,22 @@
--white: #f1f1f1 !important;
--black1: #888 !important;
--black2: #222222 !important;
--black3: #4f4f4f !important;
--black3: #4f4f4f !important;
--grey : #ccc !important;
--red: #b40457 !important;
--blue: #369 !important;
--upvote: #ff8b60 !important;
--downvote: #9393ff !important;
--sticky: #228822 !important;
--primary: var(--black1) !important;
--bg1: url('../images/classic1.webp') !important;
--bg2: url('../images/classic2.webp') !important;
--blue: #369 !important;
--upvote: #ff8b60 !important;
--downvote: #9393ff !important;
--sticky: #228822 !important;
--primary: var(--black1) !important;
--bg1: url('../images/classic1.webp') !important;
--bg2: url('../images/classic2.webp') !important;
}
/*navbar*/
.navbar-light, .navbar .container-fluid, #mobile-bottom-navigation-bar {
background-color: var(--white) !important;
background-color: var(--white) !important;
}
.form-inline.search input {
@ -25,23 +25,23 @@
}
.nav.settings-nav {
background-color: var(--red);
background-color: var(--red);
}
.nav-link.active {
color: var(--white) !important;
box-shadow: inset 0 -2px 0 var(--white) !important;
color: var(--white) !important;
box-shadow: inset 0 -2px 0 var(--white) !important;
}
.nav-link {
color: var(--grey) !important;
color: var(--grey) !important;
}
/*common*/
body, .card, #main-content-row {
background-color: var(--white) !important;
background-image: var(--bg2);
color: var(--black1);
background-image: var(--bg2);
color: var(--black1);
}
.posts .card {
@ -50,28 +50,28 @@ body, .card, #main-content-row {
.btn-primary, .btn-secondary {
background-color: var(--red) !important;
color: white !important;
color: white !important;
border-color: transparent;
}
.score-up, .active.arrow-up::before, .arrow-up::after, .arrow-up:hover::before {
color: var(--upvote) !important;
color: var(--upvote) !important;
}
.score-down, .active.arrow-down::before, .arrow-down::after, .arrow-down:hover::before {
color: var(--downvote) !important;
color: var(--downvote) !important;
}
.arrow-up::before, .arrow-down::before, .score {
color: var(--black1);
color: var(--black1);
}
.controversial {
color: var(--red) !important;
color: var(--red) !important;
}
a {
color: var(--blue);
color: var(--blue);
}
.post-title a {
@ -79,7 +79,7 @@ a {
}
.fa-thumbtack.text-admin, .card.stickied .post-title a {
color: var(--sticky) !important;
color: var(--sticky) !important;
}
.flaggers, .flaggers a {
@ -89,25 +89,25 @@ a {
}
.dropdown-menu, .dropdown-menu a {
color: var(--black3);
background-color: white;
color: var(--black3);
background-color: white;
}
.popover, .pop-username, .pop-bio, .popover-user-profile, .popover-user-profile * {
background-color: var(--white);
color: var(--black3);
border-color: var(--black1) !important;
background-color: var(--white);
color: var(--black3);
border-color: var(--black1) !important;
}
.text-muted {
color: var(--grey) !important;
color: var(--grey) !important;
}
/*frontpage*/
#frontpage .container {
max-width: 2160px;
padding-left: 20px;
padding-right: 20px;
max-width: 2160px;
padding-left: 20px;
padding-right: 20px;
}
#frontpage .d-lg-flex,
@ -129,11 +129,11 @@ a {
color:yellow;
text-shadow: -1px -1px 0 black, 1px -1px 0 black, -1px 1px 0 black, 1px 1px 0 black !important;
border-color: transparent;
font-size: 1.3rem;
font-size: 1.3rem;
}
#frontpage .dropdown-toggle, #frontpage i.fas.mr-1 {
color:yellow !important;
color:yellow !important;
}
/*post*/
@ -155,7 +155,7 @@ a {
}
.comment-collapse-desktop {
border-left: none !important;
border-left: none !important;
}
blockquote {
@ -165,8 +165,8 @@ blockquote {
}
.form-control, .comment-box.form-control.rounded {
background-color: white !important;
color: var(--black2) !important;
background-color: white !important;
color: var(--black2) !important;
}
.comment-box, .form-control{
@ -174,320 +174,320 @@ blockquote {
}
.text-info.new-comments {
color: #ff4500 !important;
color: #ff4500 !important;
}
#thread #dropdownMenuButton {
background-color: var(--red) !important;
color: white !important;
color: white !important;
border-color: transparent;
}
.btn.format {
background-color: transparent !important;
color: var(--black1) !important;
border-color: transparent !important;
background-color: transparent !important;
color: var(--black1) !important;
border-color: transparent !important;
}
/*userpage*/
#userpage .nav.settings-nav {
background-color: transparent;
background-color: transparent;
}
#userpage .nav-link {
color: var(--red) !important;
color: var(--red) !important;
}
#userpage .nav-link.active {
box-shadow: inset 0 -2px 0 var(--red) !important;
box-shadow: inset 0 -2px 0 var(--red) !important;
}
/*leaderboard*/
#settings2 .container, #settings2 .container-fluid {
background-color: transparent !important;
background-color: transparent !important;
}
#settings2 .bg-white {
background-color: var(--white) !important;
background-color: var(--white) !important;
}
#settings2 .text-muted {
color: var(--black1) !important;
color: var(--black1) !important;
}
#settings2 .nav.settings-nav {
margin: auto !important;
margin: auto !important;
}
#settings2 .table {
color: var(--black1);
color: var(--black1);
}
/*shop*/
#message .container {
background-color: transparent !important;
background-color: transparent !important;
}
#message .table {
color: var(--black1);
color: var(--black1);
}
/*submit*/
#submit .container {
background-color: transparent !important
background-color: transparent !important
}
#submit .text-muted {
color: var(--black1) !important;
color: var(--black1) !important;
}
#submit #create_button {
background-color: var(--red) !important;
color: white !important;
color: white !important;
border-color: transparent;
}
#submit .btn.format {
background-color: transparent !important;
color: var(--black1) !important;
border-color: transparent !important;
background-color: transparent !important;
color: var(--black1) !important;
border-color: transparent !important;
}
#submit .row.fixed-bottom {
background-color: var(--white) !important
background-color: var(--white) !important
}
/*settings*/
#settings .text-small, #settings .text-small-extra {
color: var(--black1) !important;
color: var(--black1) !important;
}
#settings .custom-control-label::before {
background-color: var(--grey) !important;
background-color: var(--grey) !important;
}
#settings .custom-control-input:checked ~ .custom-control-label::before {
opacity: 1;
background-color: var(--black1) !important;
border: var(--blue) solid 0.1px;
opacity: 1;
background-color: var(--black1) !important;
border: var(--blue) solid 0.1px;
}
/*assorted patches I don't feel like categorizing*/
#followers-table td {
color: var(--black3);
color: var(--black3);
}
.btn-danger {
border-color: #E53E3E !important;
color: red !important;
border-color: #E53E3E !important;
color: red !important;
}
.btn.caction .score-up {
color: var(--upvote) !important;
color: var(--upvote) !important;
}
.btn.caction .score-down {
color: var(--downvote) !important;
color: var(--downvote) !important;
}
.user-info .text-muted {
color: var(--black1) !important;
color: var(--black1) !important;
}
.shop .btn {
background-color: var(--black1) !important;
background-color: var(--black1) !important;
}
#mobile-bottom-navigation-bar .text-primary {
color: var(--red) !important;
color: var(--red) !important;
}
#mobile-bottom-navigation-bar .text-muted {
color: var(--black1) !important;
color: var(--black1) !important;
}
#settings2 .nav-link.active .fas {
color: var(--white) !important;
color: var(--white) !important;
}
#navbarResponsive .nav-link {
color: var(--black1) !important;
color: var(--black1) !important;
}
.mobile-nav-icon {
color: var(--black1);
color: var(--black1);
}
/*patch*/
#frontpage .container {
margin-top: -5px
margin-top: -5px
}
.table {
color: var(--black3)
color: var(--black3)
}
:root {
--gold: #f59e0b !important;
--pink: #ec72de !important;
--purple: #9333ea !important;
--bluecheck: #1DA1F2 !important;
--red-hover: #d2106c !important
:root {
--gold: #f59e0b !important;
--pink: #ec72de !important;
--purple: #9333ea !important;
--bluecheck: #1DA1F2 !important;
--red-hover: #d2106c !important
}
#settings2 .text-muted {
color: var(--black3)!important;
color: var(--black3)!important;
}
.fa-robot {
color: var(--purple) !important;
color: var(--purple) !important;
}
.fa-broom {
color: var(--sticky) !important;
color: var(--sticky) !important;
}
.post-title span.patron {
background-color: var(--purple)
background-color: var(--purple)
}
.btn-primary:hover, .btn-secondary:hover {
background-color: var(--red-hover) !important;
color: white!important;
border-color: var(--red-hover)
background-color: var(--red-hover) !important;
color: white!important;
border-color: var(--red-hover)
}
.dropdown-menu a:hover {
color: var(--red);
background-color: #fff;
font-weight: bold;
color: var(--red);
background-color: #fff;
font-weight: bold;
}
#frontpage .card-header div {
z-index: 2 !important;
z-index: 2 !important;
}
#navbarResponsive .nav-link:hover i {
color: var(--red) !important;
color: var(--red) !important;
}
.btn-secondary:focus, .btn-secondary.focus {
box-shadow: none;
background-color: white!important;
color: var(--red)!important;
border-color: var(--red);
box-shadow: none;
background-color: white!important;
color: var(--red)!important;
border-color: var(--red);
}
.shop .btn {
border-color: var(--grey) !important;
background-color: var(--red) !important;
border-color: var(--grey) !important;
background-color: var(--red) !important;
}
.nav-link.active {
font-weight: bold;
font-weight: bold;
}
a.text-danger, button.text-danger {
color: #dc3545 !important
color: #dc3545 !important
}
a.text-info, button.text-info {
color: var(--sticky) !important
color: var(--sticky) !important
}
label.custom-control-label::after, label.custom-control-label::before {
background-color: var(--black1) !important
background-color: var(--black1) !important
}
.custom-control-input:checked ~ .custom-control-label::after {
background-color: var(--grey) !important;
background-color: var(--grey) !important;
}
#settings .sticky {
top: 70px;
top: 70px;
}
.border-bottom {
border-bottom: 1px solid var(--grey) !important;
border-bottom: 1px solid var(--grey) !important;
}
a.nav-link:hover {
color: white !important
color: white !important
}
.nav.settings-nav {
border: 1px solid var(--red-hover)
border: 1px solid var(--red-hover)
}
#thread .anchor.comment {
border-left: 2px solid var(--grey)!important;
border-left: 2px solid var(--grey)!important;
}
.anchor.comment.mt-0 {
border-left: none !important;
border-left: none !important;
}
.notifs .anchor.comment {
border-left: none !important;
border-left: none !important;
}
.notifs .comment-collapse-desktop {
border-left: 2px solid var(--grey)!important;
border-left: 2px solid var(--grey)!important;
}
#userpage .nav.settings-nav {
border:none;
border:none;
}
#userpage .btn-danger {
background-color:red !important;
color: white !important;
border-color: var(--gold) !important
background-color:red !important;
color: white !important;
border-color: var(--gold) !important
}
#userpage .btn-success {
background-color: var(--sticky) !important;
color: white !important;
border-color: var(--gold) !important
background-color: var(--sticky) !important;
color: white !important;
border-color: var(--gold) !important
}
#userpage .container-fluid.pb-0.text-center.bg-white.d-md-none {
margin-top: -32px !important;
margin-top: -32px !important;
}
#userpage .profile-pic-65 {
border-radius: 0;
border-color: transparent !important;
border-radius: 0;
border-color: transparent !important;
}
#settings2 .nav.settings-nav .fas {
color: var(--grey) !important
color: var(--grey) !important
}
#settings2 .nav-link.active .fas {
color: white !important
color: white !important
}
#settings2 .btn .fas {
color: white !important
color: white !important
}
#frontpage .settings .d-lg-flex {
display: block !important;
display: block !important;
}
#frontpage .container .col-lg-8 {
background-image: none !important;
background-image: none !important;
}
#post-text a, #post-text img {
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
}
.tooltip {
color:black !important;
color:black !important;
}
#frontpage .btn.btn-secondary.text-small-m {
@ -512,9 +512,9 @@ a.nav-link:hover {
}
#chat-window {
background-color: white !important;
background-color: white !important;
}
.chat-message {
color: var(--black2) !important;
color: var(--black2) !important;
}

View file

@ -2,7 +2,7 @@
/*navbar*/
.navbar-light, .navbar .container-fluid, #mobile-bottom-navigation-bar {
background-color: var(--black2) !important;
background-color: var(--black2) !important;
}
.form-inline.search input {
@ -10,19 +10,19 @@
}
.nav-link.active {
color: var(--white) !important;
box-shadow: inset 0 -2px 0 var(--white) !important;
color: var(--white) !important;
box-shadow: inset 0 -2px 0 var(--white) !important;
}
.nav-link {
color: var(--grey) !important;
color: var(--grey) !important;
}
/*common*/
body, .card, #main-content-row {
background-color: var(--black2) !important;
/*background-image: var(--bg2);*/
color: var(--white);
/*background-image: var(--bg2);*/
color: var(--white);
}
.posts .card {
@ -30,7 +30,7 @@ body, .card, #main-content-row {
}
.arrow-up::before, .arrow-down::before, .score {
color: var(--black1);
color: var(--black1);
}
.post-title a {
@ -44,18 +44,18 @@ body, .card, #main-content-row {
}
.dropdown-menu, .dropdown-menu a {
color: var(--black3);
background-color: white;
color: var(--black3);
background-color: white;
}
.popover, .pop-username, .pop-bio, .popover-user-profile, .popover-user-profile * {
background-color: var(--black2);
color: var(--grey);
border-color: var(--black1) !important;
background-color: var(--black2);
color: var(--grey);
border-color: var(--black1) !important;
}
.text-muted {
color: var(--grey) !important;
color: var(--grey) !important;
}
/*frontpage*/
@ -69,11 +69,11 @@ body, .card, #main-content-row {
color:yellow;
text-shadow: -1px -1px 0 black, 1px -1px 0 black, -1px 1px 0 black, 1px 1px 0 black !important;
border-color: transparent;
font-size: 1.3rem;
font-size: 1.3rem;
}
#frontpage .dropdown-toggle, #frontpage i.fas.mr-1 {
color:yellow !important;
color:yellow !important;
}
/*post*/
@ -93,103 +93,103 @@ blockquote {
}
.form-control, .comment-box.form-control.rounded {
background-color: var(--black2) !important;
color: var(--black1) !important;
background-color: var(--black2) !important;
color: var(--black1) !important;
}
#thread #dropdownMenuButton {
background-color: var(--red) !important;
color: white !important;
color: white !important;
border-color: transparent;
}
.btn.format {
background-color: transparent !important;
color: var(--black1) !important;
border-color: transparent !important;
background-color: transparent !important;
color: var(--black1) !important;
border-color: transparent !important;
}
/*leaderboard*/
#settings2 .bg-white {
background-color: var(--black2) !important;
background-color: var(--black2) !important;
}
/*submit*/
#submit .row.fixed-bottom {
background-color: var(--black2) !important
background-color: var(--black2) !important
}
/*assorted patches I don't feel like categorizing*/
#followers-table td {
color: var(--black1);
color: var(--black1);
}
#mobile-bottom-navigation-bar .text-primary {
color: var(--red) !important;
color: var(--red) !important;
}
#mobile-bottom-navigation-bar .text-muted {
color: var(--black1) !important;
color: var(--black1) !important;
}
#settings2 .nav-link.active .fas {
color: var(--grey) !important;
color: var(--grey) !important;
}
#navbarResponsive .nav-link {
color: var(--black1) !important;
color: var(--black1) !important;
}
.mobile-nav-icon {
color: var(--black1);
color: var(--black1);
}
/*patch*/
#settings2 .text-muted {
color: var(--black3)!important;
color: var(--black3)!important;
}
.btn-primary:hover, .btn-secondary:hover {
background-color: var(--red-hover) !important;
color: white!important;
border-color: var(--red-hover)
background-color: var(--red-hover) !important;
color: white!important;
border-color: var(--red-hover)
}
.dropdown-menu a:hover {
color: var(--red);
background-color: #fff;
font-weight: bold;
color: var(--red);
background-color: #fff;
font-weight: bold;
}
#navbarResponsive .nav-link:hover i {
color: var(--red) !important;
color: var(--red) !important;
}
.btn-secondary:focus, .btn-secondary.focus {
box-shadow: none;
background-color: white!important;
color: var(--red)!important;
border-color: var(--red);
box-shadow: none;
background-color: white!important;
color: var(--red)!important;
border-color: var(--red);
}
a.nav-link:hover {
color: white !important
color: white !important
}
.nav.settings-nav {
border: 1px solid var(--red-hover)
border: 1px solid var(--red-hover)
}
#thread .anchor.comment {
border-left: 2px solid var(--black1)!important;
border-left: 2px solid var(--black1)!important;
}
.notifs .comment-collapse-desktop {
border-left: 2px solid var(--black1)!important;
border-left: 2px solid var(--black1)!important;
}
.srd {
background-color: var(--black3) !important
background-color: var(--black3) !important
}
#navbar .form-control.w-100 {

View file

@ -98,5 +98,5 @@ blockquote {
}
.comment-anchor:target, .unread2 {
background: #ffffff88 !important;
background: #ffffff88 !important;
}

View file

@ -1,8 +1,8 @@
:root {
--black: #94a3b8;
--primary: #0284c7;
--gold: #f59e0b;
--secondary: #dc3545;
--black: #94a3b8;
--primary: #0284c7;
--gold: #f59e0b;
--secondary: #dc3545;
--gray-100: #f1f5f9;
--gray-200: #e2e8f0;
--gray-300: #cbd5e1;
@ -15,109 +15,109 @@
}
body, .container.transparent, .card {
background-color: var(--gray-800) !important
background-color: var(--gray-800) !important
}
.navbar-light {
background-color: var(--gray-700) !important
background-color: var(--gray-700) !important
}
p {
color: var(--gray-200)
color: var(--gray-200)
}
.comment-collapse-desktop {
border-color: var(--gray-400) !important
border-color: var(--gray-400) !important
}
blockquote {
background-color: var(--gray-700);
background-color: var(--gray-700);
}
#frontpage #main-content-row, .sidebar {
background-color: var(--gray-800) !important
background-color: var(--gray-800) !important
}
#thread .comment-section {
background-color: var(--gray-800) !important
background-color: var(--gray-800) !important
}
.card {
border-color: var(--gray-600) !important
border-color: var(--gray-600) !important
}
.btn {
border-color: var(--gray-500);
color: var(--gray-300)
border-color: var(--gray-500);
color: var(--gray-300)
}
.srd {
background-color: var(--gray-900) !important;
background-color: var(--gray-900) !important;
}
.srd a {
color: var(--gray-200) !important
color: var(--gray-200) !important
}
.sidebar {
color: var(--gray-200)
color: var(--gray-200)
}
#mobile-bottom-navigation-bar {
background-color: var(--gray-700) !important;
border-color: var(--gray-600) !important;
background-color: var(--gray-700) !important;
border-color: var(--gray-600) !important;
}
#mobile-bottom-navigation-bar .text-primary {
color: var(--gray-200) !important
color: var(--gray-200) !important
}
#mobile-bottom-navigation-bar .text-muted {
color: var(--gray-400) !important
color: var(--gray-400) !important
}
#frontpage div#expandImageModal.modal.desktop-expanded-image-modal {
background-color: transparent !important;
background-color: transparent !important;
}
.text-small-extra.text-primary {
color: var(--gray-300) !important;
color: var(--gray-300) !important;
}
.score-up, .active.arrow-up::before, .arrow-up::after, .arrow-up:hover::before {
color: var(--secondary) !important;
color: var(--secondary) !important;
}
.score-down, .active.arrow-down::before, .arrow-down::after, .arrow-down:hover::before {
color: var(--secondary) !important;
color: var(--secondary) !important;
}
.arrow-up::before, .arrow-down::before, .score {
color: var(--gray-400);
color: var(--gray-400);
}
#frontpage .post-title a {
color: var(--gray-300)
color: var(--gray-300)
}
.text-info {
color: var(--gold) !important
color: var(--gold) !important
}
.comment-collapse-icon::before {
color: var(--gray-500) !important
color: var(--gray-500) !important
}
.text-admin {
color: green
color: green
}
.fa-microphone-stand {
color: var(--primary) !important
color: var(--primary) !important
}
.fa-robot {
color: var(--secondary) !important
color: var(--secondary) !important
}
.modal-content {

View file

@ -80,5 +80,5 @@ blockquote {
}
.comment-anchor:target, .unread2 {
background: #00000055 !important;
background: #00000055 !important;
}

File diff suppressed because one or more lines are too long

View file

@ -38,9 +38,9 @@ body, .navbar-light, .navbar-dark, .card, .modal-content, .comment-write textare
}
.modal .comment-actions .list-group-item {
background-color: var(--gray-600)!important;
background-color: var(--gray-600)!important;
}
.page-link {
background-color: #ccc;
background-color: #ccc;
}

View file

@ -160,5 +160,5 @@ blockquote {
}
.comment-anchor:target, .unread2 {
background: #ffffffaa !important;
background: #ffffffaa !important;
}

View file

@ -98,7 +98,7 @@ function post_toast(t, url, reload, data) {
}
function escapeHTML(unsafe) {
return unsafe.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
return unsafe.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
}
function changename(s1,s2) {

File diff suppressed because one or more lines are too long

View file

@ -65,37 +65,37 @@ function savetext() {
function autoSuggestTitle() {
var urlField = document.getElementById("post-url");
var urlField = document.getElementById("post-url");
var titleField = document.getElementById("post-title");
var titleField = document.getElementById("post-title");
var isValidURL = urlField.checkValidity();
var isValidURL = urlField.checkValidity();
if (isValidURL && urlField.value.length > 0 && titleField.value === "") {
if (isValidURL && urlField.value.length > 0 && titleField.value === "") {
var x = new XMLHttpRequest();
x.withCredentials=true;
x.onreadystatechange = function() {
if (x.readyState == 4 && x.status == 200 && !titleField.value) {
var x = new XMLHttpRequest();
x.withCredentials=true;
x.onreadystatechange = function() {
if (x.readyState == 4 && x.status == 200 && !titleField.value) {
title=JSON.parse(x.responseText)["title"];
titleField.value=title;
checkForRequired()
}
}
x.open('get','/submit/title?url=' + urlField.value);
x.send(null);
title=JSON.parse(x.responseText)["title"];
titleField.value=title;
checkForRequired()
}
}
x.open('get','/submit/title?url=' + urlField.value);
x.send(null);
};
};
};
function draft(t) {
const followers = document.getElementById("followers")
if (t.checked == true) {
followers.checked = false;
followers.disabled = true;
} else {
followers.disabled = false;
followers.checked = false;
followers.disabled = true;
} else {
followers.disabled = false;
}
}

View file

@ -110,7 +110,7 @@ class ModAction(Base):
return f"{SITE_FULL}/log/{self.id}"
ACTIONTYPES = {
'agendaposter': {
'agendaposter': {
"str": 'set chud theme on {self.target_link}',
"icon": 'fa-snooze',
"color": 'bg-danger'

View file

@ -439,13 +439,13 @@ AWARDS = {
"price": 2500
},
"deflector": {
"kind": "deflector",
"title": "Deflector",
"description": "Causes most awards received for the next 10 hours to be deflected back at their giver.",
"icon": "fas fa-shield",
"color": "text-pink",
"price": 2750
},
"kind": "deflector",
"title": "Deflector",
"description": "Causes most awards received for the next 10 hours to be deflected back at their giver.",
"icon": "fas fa-shield",
"color": "text-pink",
"price": 2750
},
"marsey": {
"kind": "marsey",
"title": "Marsey",

View file

@ -3,80 +3,80 @@ from PIL import Image
import io
pat_frames = [
Image.open("files/assets/images/pat/0.gif").convert("RGBA"),
Image.open("files/assets/images/pat/1.gif").convert("RGBA"),
Image.open("files/assets/images/pat/2.gif").convert("RGBA"),
Image.open("files/assets/images/pat/3.gif").convert("RGBA"),
Image.open("files/assets/images/pat/4.gif").convert("RGBA"),
Image.open("files/assets/images/pat/5.gif").convert("RGBA"),
Image.open("files/assets/images/pat/6.gif").convert("RGBA"),
Image.open("files/assets/images/pat/7.gif").convert("RGBA"),
Image.open("files/assets/images/pat/8.gif").convert("RGBA"),
Image.open("files/assets/images/pat/9.gif").convert("RGBA")
Image.open("files/assets/images/pat/0.gif").convert("RGBA"),
Image.open("files/assets/images/pat/1.gif").convert("RGBA"),
Image.open("files/assets/images/pat/2.gif").convert("RGBA"),
Image.open("files/assets/images/pat/3.gif").convert("RGBA"),
Image.open("files/assets/images/pat/4.gif").convert("RGBA"),
Image.open("files/assets/images/pat/5.gif").convert("RGBA"),
Image.open("files/assets/images/pat/6.gif").convert("RGBA"),
Image.open("files/assets/images/pat/7.gif").convert("RGBA"),
Image.open("files/assets/images/pat/8.gif").convert("RGBA"),
Image.open("files/assets/images/pat/9.gif").convert("RGBA")
]
def getPat(avatar_file, format="webp"):
avatar_x = 5
avatar_y = 5
avatar_width = 150
avatar_height = 150
image_width = 160
image_height = 160
hand_x = 0
hand_y = 0
delay = 30
avatar_x = 5
avatar_y = 5
avatar_width = 150
avatar_height = 150
image_width = 160
image_height = 160
hand_x = 0
hand_y = 0
delay = 30
y_scale = [
1,
0.95,
0.9,
0.85,
0.8,
0.8,
0.85,
0.9,
0.95,
1
]
y_scale = [
1,
0.95,
0.9,
0.85,
0.8,
0.8,
0.85,
0.9,
0.95,
1
]
x_scale = [
0.80,
0.85,
0.90,
0.95,
1,
1,
0.95,
0.90,
0.85,
0.80
]
x_scale = [
0.80,
0.85,
0.90,
0.95,
1,
1,
0.95,
0.90,
0.85,
0.80
]
frames = []
avatar_img = Image.open(avatar_file)
for i in range(0, 10):
avatar_actual_x = math.ceil((1 - x_scale[i]) * avatar_width / 2 + avatar_x)
avatar_actual_y = math.ceil((1 - y_scale[i]) * avatar_height + avatar_y)
avatar_actual_width = math.ceil(avatar_width * x_scale[i])
avatar_actual_height = math.ceil(avatar_height * y_scale[i])
frames = []
avatar_img = Image.open(avatar_file)
for i in range(0, 10):
avatar_actual_x = math.ceil((1 - x_scale[i]) * avatar_width / 2 + avatar_x)
avatar_actual_y = math.ceil((1 - y_scale[i]) * avatar_height + avatar_y)
avatar_actual_width = math.ceil(avatar_width * x_scale[i])
avatar_actual_height = math.ceil(avatar_height * y_scale[i])
scaled_avatar_img = avatar_img.resize((avatar_actual_width, avatar_actual_height))
frame = Image.new(mode="RGBA", size=(image_width, image_height))
frame.paste(scaled_avatar_img, (avatar_actual_x, avatar_actual_y))
frame.paste(pat_frames[i], (hand_x, hand_y), pat_frames[i])
frames.append(frame)
output = io.BytesIO()
frames[0].save(output, format,
save_all = True,
append_images = frames[1:],
duration = delay,
loop = 0
)
return output
scaled_avatar_img = avatar_img.resize((avatar_actual_width, avatar_actual_height))
frame = Image.new(mode="RGBA", size=(image_width, image_height))
frame.paste(scaled_avatar_img, (avatar_actual_x, avatar_actual_y))
frame.paste(pat_frames[i], (hand_x, hand_y), pat_frames[i])
frames.append(frame)
output = io.BytesIO()
frames[0].save(output, format,
save_all = True,
append_images = frames[1:],
duration = delay,
loop = 0
)
return output
def pat(emoji):
stream = getPat(open(f'files/assets/images/emojis/{emoji}.webp', "rb"), "webp")
stream.seek(0)
open(f'files/assets/images/emojis/{emoji}pat.webp', "wb").write(stream.read())
stream = getPat(open(f'files/assets/images/emojis/{emoji}.webp', "rb"), "webp")
stream.seek(0)
open(f'files/assets/images/emojis/{emoji}pat.webp', "wb").write(stream.read())

View file

@ -15,7 +15,7 @@
{% if v %}
<style>:root{--primary:#{{v.themecolor}}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=204"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=40">
<link rel="stylesheet" href="/assets/css/main.css?v=205"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=40">
{% if v.agendaposter %}
<style>
html {
@ -39,7 +39,7 @@
{% endif %}
{% else %}
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=204"><link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=40">
<link rel="stylesheet" href="/assets/css/main.css?v=205"><link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=40">
{% endif %}
</head>

View file

@ -14,7 +14,7 @@
<title>Chat</title>
<style>:root{--primary:#{{v.themecolor}}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=204">
<link rel="stylesheet" href="/assets/css/main.css?v=205">
<link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=40">
{% if v.css %}
<link rel="stylesheet" href="/@{{v.username}}/css">

View file

@ -7,7 +7,7 @@
<script src="/assets/js/bootstrap.js?v=245"></script>
{% if v %}
<style>:root{--primary:#{{v.themecolor}}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=204">
<link rel="stylesheet" href="/assets/css/main.css?v=205">
<link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=40">
{% if v.agendaposter %}
<style>
@ -32,7 +32,7 @@
{% endif %}
{% else %}
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=204">
<link rel="stylesheet" href="/assets/css/main.css?v=205">
<link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=40">
{% endif %}

View file

@ -6,7 +6,7 @@
{% block content %}
{% if v %}
<style>:root{--primary:#{{v.themecolor}}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=204"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=40">
<link rel="stylesheet" href="/assets/css/main.css?v=205"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=40">
{% if v.agendaposter %}
<style>
html {
@ -30,7 +30,7 @@
{% endif %}
{% else %}
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=204"><link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=40">
<link rel="stylesheet" href="/assets/css/main.css?v=205"><link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=40">
{% endif %}
<div class="row justify-content-around">

View file

@ -18,7 +18,7 @@
{% endblock %}
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=204">
<link rel="stylesheet" href="/assets/css/main.css?v=205">
<link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=40">
</head>

View file

@ -14,7 +14,7 @@
<title>2-Step Login - {{SITE_NAME}}</title>
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=204"><link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=40">
<link rel="stylesheet" href="/assets/css/main.css?v=205"><link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=40">
</head>

View file

@ -1,101 +1,101 @@
{% if v and v.id==p.author_id and p.private %}
<form action="/publish/{{p.id}}" method="post">
<input type="hidden" name="formkey", value="{{v.formkey}}">
<button class="list-inline-item text-small p-0 m-0 mr-3 border-0 nobackground font-weight-bold" type="submit"><i class="fas fa-globe"></i>Publish</button>
</form>
<form action="/publish/{{p.id}}" method="post">
<input type="hidden" name="formkey", value="{{v.formkey}}">
<button class="list-inline-item text-small p-0 m-0 mr-3 border-0 nobackground font-weight-bold" type="submit"><i class="fas fa-globe"></i>Publish</button>
</form>
{% endif %}
{% if not p.ghost or v.id == AEVANN_ID %}<a class="list-inline-item" href="/votes?link={{p.fullname}}"><i class="fas fa-arrows-v"></i>Votes</a>{% endif %}
{% if v %}
<a class="list-inline-item text-muted d-none d-md-inline-block" role="button" data-bs-toggle="modal" data-bs-target="#awardModal" onclick="awardModal('/award_post/{{p.id}}')"><i class="fas fa-gift fa-fw"></i>Give Award</a>
<a class="list-inline-item text-muted d-none d-md-inline-block" role="button" data-bs-toggle="modal" data-bs-target="#awardModal" onclick="awardModal('/award_post/{{p.id}}')"><i class="fas fa-gift fa-fw"></i>Give Award</a>
{% endif %}
<a class="list-inline-item copy-link" role="button" data-clipboard-text="{% if request.host == 'rdrama.net' %}https://rdrama.gay{{p.shortlink}}{% else %}{{p.permalink}}{% endif %}"><i class="fas fa-copy"></i>Copy link</a>
{% if v %}
<a id="subscribe-{{p.id}}" class="{% if p.id in v.subscribed_idlist() %}d-none{% endif %} list-inline-item" role="button" onclick="post_toast2(this,'/subscribe/{{p.id}}','subscribe-{{p.id}}','unsubscribe-{{p.id}}')"><i class="fas fa-eye"></i>Subscribe</a>
<a id="unsubscribe-{{p.id}}" class="{% if p.id not in v.subscribed_idlist() %}d-none{% endif %} list-inline-item" role="button" onclick="post_toast2(this,'/unsubscribe/{{p.id}}','subscribe-{{p.id}}','unsubscribe-{{p.id}}')"><i class="fas fa-eye-slash"></i>Unsubscribe</a>
<a id="subscribe-{{p.id}}" class="{% if p.id in v.subscribed_idlist() %}d-none{% endif %} list-inline-item" role="button" onclick="post_toast2(this,'/subscribe/{{p.id}}','subscribe-{{p.id}}','unsubscribe-{{p.id}}')"><i class="fas fa-eye"></i>Subscribe</a>
<a id="unsubscribe-{{p.id}}" class="{% if p.id not in v.subscribed_idlist() %}d-none{% endif %} list-inline-item" role="button" onclick="post_toast2(this,'/unsubscribe/{{p.id}}','subscribe-{{p.id}}','unsubscribe-{{p.id}}')"><i class="fas fa-eye-slash"></i>Unsubscribe</a>
{% endif %}
{% if v %}
<a id="save-{{p.id}}" class="{% if p.id in v.saved_idlist() %}d-none{% endif %} list-inline-item" role="button" onclick="post_toast2(this,'/save_post/{{p.id}}','save-{{p.id}}','unsave-{{p.id}}')"><i class="fas fa-save"></i>Save</a>
<a id="unsave-{{p.id}}" class="{% if not p.id in v.saved_idlist() %}d-none{% endif %} list-inline-item" role="button" onclick="post_toast2(this,'/unsave_post/{{p.id}}','save-{{p.id}}','unsave-{{p.id}}')"><i class="fas fa-save"></i>Unsave</a>
<a class="list-inline-item" role="button" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#reportPostModal" onclick="report_postModal('{{p.id}}')"><i class="fas fa-flag"></i>Report</a>
<a id="save-{{p.id}}" class="{% if p.id in v.saved_idlist() %}d-none{% endif %} list-inline-item" role="button" onclick="post_toast2(this,'/save_post/{{p.id}}','save-{{p.id}}','unsave-{{p.id}}')"><i class="fas fa-save"></i>Save</a>
<a id="unsave-{{p.id}}" class="{% if not p.id in v.saved_idlist() %}d-none{% endif %} list-inline-item" role="button" onclick="post_toast2(this,'/unsave_post/{{p.id}}','save-{{p.id}}','unsave-{{p.id}}')"><i class="fas fa-save"></i>Unsave</a>
<a class="list-inline-item" role="button" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#reportPostModal" onclick="report_postModal('{{p.id}}')"><i class="fas fa-flag"></i>Report</a>
{% endif %}
{% if v and v.id==p.author_id %}
{% if request.path.startswith('/@') %}
<a id="pin-profile-{{p.id}}" class="{% if p.is_pinned %}d-none{% endif %} list-inline-item text-muted" role="button" onclick="post_toast2(this,'/pin/{{p.id}}','unpin-profile-{{p.id}}','pin-profile-{{p.id}}')"><i class="fas fa-thumbtack fa-rotate--45"></i>Pin to profile</a>
<a id="unpin-profile-{{p.id}}" class="{% if not p.is_pinned %}d-none{% endif %} list-inline-item text-muted" role="button" onclick="post_toast2(this,'/pin/{{p.id}}','unpin-profile-{{p.id}}','pin-profile-{{p.id}}')"><i class="fas fa-thumbtack fa-rotate--45"></i>Unpin from profile</a>
{% endif %}
{% if request.path.startswith('/@') %}
<a id="pin-profile-{{p.id}}" class="{% if p.is_pinned %}d-none{% endif %} list-inline-item text-muted" role="button" onclick="post_toast2(this,'/pin/{{p.id}}','unpin-profile-{{p.id}}','pin-profile-{{p.id}}')"><i class="fas fa-thumbtack fa-rotate--45"></i>Pin to profile</a>
<a id="unpin-profile-{{p.id}}" class="{% if not p.is_pinned %}d-none{% endif %} list-inline-item text-muted" role="button" onclick="post_toast2(this,'/pin/{{p.id}}','unpin-profile-{{p.id}}','pin-profile-{{p.id}}')"><i class="fas fa-thumbtack fa-rotate--45"></i>Unpin from profile</a>
{% endif %}
<a id="undelete2-{{p.id}}" class="{% if not p.deleted_utc %}d-none{% endif %} list-inline-item" role="button" onclick="post_toast2(this,'/undelete_post/{{p.id}}', 'delete2-{{p.id}}', 'undelete2-{{p.id}}');document.getElementById('post-{{p.id}}').classList.remove('deleted')"><i class="fas fa-trash-alt"></i>Undelete</a>
<a id="undelete2-{{p.id}}" class="{% if not p.deleted_utc %}d-none{% endif %} list-inline-item" role="button" onclick="post_toast2(this,'/undelete_post/{{p.id}}', 'delete2-{{p.id}}', 'undelete2-{{p.id}}');document.getElementById('post-{{p.id}}').classList.remove('deleted')"><i class="fas fa-trash-alt"></i>Undelete</a>
<a id="delete2-{{p.id}}" class="{% if p.deleted_utc %}d-none{% endif %} list-inline-item" role="button" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#deletePostModal" onclick="delete_postModal('{{p.id}}')"><i class="fas fa-trash-alt"></i>Delete</a>
{% endif %}
<a id="delete2-{{p.id}}" class="{% if p.deleted_utc %}d-none{% endif %} list-inline-item" role="button" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#deletePostModal" onclick="delete_postModal('{{p.id}}')"><i class="fas fa-trash-alt"></i>Delete</a>
{% endif %}
{% if v %}
<a class="list-inline-item" role="button" data-bs-toggle="dropdown" aria-expanded="false"><i class="fas fa-ellipsis-h fa-fw"></i></a>
<ul class="dropdown-menu">
{% if v.admin_level %}
<a id="distinguish-{{p.id}}" class="dropdown-item {% if p.distinguish_level %}d-none{% endif %} list-inline-item text-info" role="button" onclick="post_toast2(this,'/distinguish/{{p.id}}','distinguish-{{p.id}}','undistinguish-{{p.id}}')"><i class="fas fa-crown"></i>Distinguish</a>
<a id="undistinguish-{{p.id}}" class="dropdown-item {% if not p.distinguish_level %}d-none{% endif %} list-inline-item text-info" role="button" onclick="post_toast2(this,'/distinguish/{{p.id}}','distinguish-{{p.id}}','undistinguish-{{p.id}}')"><i class="fas fa-crown"></i>Undistinguish</a>
{% endif %}
{% if v %}
<a class="list-inline-item" role="button" data-bs-toggle="dropdown" aria-expanded="false"><i class="fas fa-ellipsis-h fa-fw"></i></a>
<ul class="dropdown-menu">
{% if v.admin_level %}
<a id="distinguish-{{p.id}}" class="dropdown-item {% if p.distinguish_level %}d-none{% endif %} list-inline-item text-info" role="button" onclick="post_toast2(this,'/distinguish/{{p.id}}','distinguish-{{p.id}}','undistinguish-{{p.id}}')"><i class="fas fa-crown"></i>Distinguish</a>
<a id="undistinguish-{{p.id}}" class="dropdown-item {% if not p.distinguish_level %}d-none{% endif %} list-inline-item text-info" role="button" onclick="post_toast2(this,'/distinguish/{{p.id}}','distinguish-{{p.id}}','undistinguish-{{p.id}}')"><i class="fas fa-crown"></i>Undistinguish</a>
{% endif %}
{% if v.admin_level > 1 %}
<a id="pin-{{p.id}}" class="dropdown-item {% if p.stickied %}d-none{% endif %} list-inline-item text-info" role="button" onclick="post_toast2(this,'/sticky/{{p.id}}','pin-{{p.id}}','unpin-{{p.id}}')"><i class="fas fa-thumbtack fa-rotate--45"></i>Pin</a>
<a id="unpin-{{p.id}}" class="dropdown-item {% if not p.stickied %}d-none{% endif %} list-inline-item text-info" role="button" onclick="post_toast2(this,'/unsticky/{{p.id}}','pin-{{p.id}}','unpin-{{p.id}}')"><i class="fas fa-thumbtack fa-rotate--45"></i>Unpin</a>
{% endif %}
{% if v.admin_level > 1 %}
<a id="pin-{{p.id}}" class="dropdown-item {% if p.stickied %}d-none{% endif %} list-inline-item text-info" role="button" onclick="post_toast2(this,'/sticky/{{p.id}}','pin-{{p.id}}','unpin-{{p.id}}')"><i class="fas fa-thumbtack fa-rotate--45"></i>Pin</a>
<a id="unpin-{{p.id}}" class="dropdown-item {% if not p.stickied %}d-none{% endif %} list-inline-item text-info" role="button" onclick="post_toast2(this,'/unsticky/{{p.id}}','pin-{{p.id}}','unpin-{{p.id}}')"><i class="fas fa-thumbtack fa-rotate--45"></i>Unpin</a>
{% endif %}
{% if v.admin_level > 1 or v.id == p.author.id and v.club_allowed != False %}
<a id="club-{{p.id}}" class="dropdown-item {% if p.club %}d-none{% endif %} list-inline-item text-info" role="button" onclick="post_toast2(this,'/toggle_club/{{p.id}}','club-{{p.id}}','unclub-{{p.id}}')"><i class="fas fa-eye-slash"></i>Mark club</a>
<a id="unclub-{{p.id}}" class="dropdown-item {% if not p.club %}d-none{% endif %} list-inline-item text-info" role="button" onclick="post_toast2(this,'/toggle_club/{{p.id}}','club-{{p.id}}','unclub-{{p.id}}')"><i class="fas fa-eye"></i>Unmark club</a>
{% endif %}
{% if v.admin_level > 1 or v.id == p.author.id and v.club_allowed != False %}
<a id="club-{{p.id}}" class="dropdown-item {% if p.club %}d-none{% endif %} list-inline-item text-info" role="button" onclick="post_toast2(this,'/toggle_club/{{p.id}}','club-{{p.id}}','unclub-{{p.id}}')"><i class="fas fa-eye-slash"></i>Mark club</a>
<a id="unclub-{{p.id}}" class="dropdown-item {% if not p.club %}d-none{% endif %} list-inline-item text-info" role="button" onclick="post_toast2(this,'/toggle_club/{{p.id}}','club-{{p.id}}','unclub-{{p.id}}')"><i class="fas fa-eye"></i>Unmark club</a>
{% endif %}
{% if v.admin_level > 1 %}
{% if "/reported/" in request.path %}
{% if v.id != p.author.id %}<a class="dropdown-item list-inline-item text-danger" role="button" onclick="post_toast(this,'/ban_post/{{p.id}}')"><i class="fas fa-ban"></i>Remove</a>{% endif %}
<a class="dropdown-item list-inline-item text-success" role="button" onclick="post_toast(this,'/unban_post/{{p.id}}')"><i class="fas fa-check"></i>Approve</a>
{% else %}
{% if v.id != p.author.id %}<a id="remove-{{p.id}}" class="dropdown-item {% if p.is_banned %}d-none{% endif %} list-inline-item text-danger" role="button" onclick="post_toast2(this,'/ban_post/{{p.id}}','remove-{{p.id}}','approve-{{p.id}}')"><i class="fas fa-ban"></i>Remove</a>{% endif %}
<a id="approve-{{p.id}}" class="dropdown-item {% if not p.is_banned %}d-none{% endif %} list-inline-item text-success" role="button" onclick="post_toast2(this,'/unban_post/{{p.id}}','remove-{{p.id}}','approve-{{p.id}}')"><i class="fas fa-check"></i>Approve</a>
{% endif %}
{% if v.admin_level > 1 %}
{% if "/reported/" in request.path %}
{% if v.id != p.author.id %}<a class="dropdown-item list-inline-item text-danger" role="button" onclick="post_toast(this,'/ban_post/{{p.id}}')"><i class="fas fa-ban"></i>Remove</a>{% endif %}
<a class="dropdown-item list-inline-item text-success" role="button" onclick="post_toast(this,'/unban_post/{{p.id}}')"><i class="fas fa-check"></i>Approve</a>
{% else %}
{% if v.id != p.author.id %}<a id="remove-{{p.id}}" class="dropdown-item {% if p.is_banned %}d-none{% endif %} list-inline-item text-danger" role="button" onclick="post_toast2(this,'/ban_post/{{p.id}}','remove-{{p.id}}','approve-{{p.id}}')"><i class="fas fa-ban"></i>Remove</a>{% endif %}
<a id="approve-{{p.id}}" class="dropdown-item {% if not p.is_banned %}d-none{% endif %} list-inline-item text-success" role="button" onclick="post_toast2(this,'/unban_post/{{p.id}}','remove-{{p.id}}','approve-{{p.id}}')"><i class="fas fa-check"></i>Approve</a>
{% endif %}
{% if p.oauth_app %}
<a class="dropdown-item list-inline-item" href="{{p.oauth_app.permalink}}"><i class="fas fa-code"></i>API App</a>
{% endif %}
{% endif %}
{% if p.oauth_app %}
<a class="dropdown-item list-inline-item" href="{{p.oauth_app.permalink}}"><i class="fas fa-code"></i>API App</a>
{% endif %}
{% endif %}
{% if v.id != p.author_id and not p.ghost %}
<a id="unblock-{{p.id}}" class="dropdown-item text-success list-inline-item {% if not p.is_blocking %}d-none{% endif %}" role="button" onclick="post_toast2(this,'/settings/unblock?username={{p.author_name}}','block-{{p.id}}','unblock-{{p.id}}')"><i class="fas fa-eye text-success"></i>Unblock user</a>
{% if v.id != p.author_id and not p.ghost %}
<a id="unblock-{{p.id}}" class="dropdown-item text-success list-inline-item {% if not p.is_blocking %}d-none{% endif %}" role="button" onclick="post_toast2(this,'/settings/unblock?username={{p.author_name}}','block-{{p.id}}','unblock-{{p.id}}')"><i class="fas fa-eye text-success"></i>Unblock user</a>
<a id="block-{{p.id}}" class="dropdown-item list-inline-item text-danger {% if p.is_blocking %}d-none{% endif %}" role="button" onclick="post_toast2(this,'/settings/block?username={{p.author_name}}','block-{{p.id}}','unblock-{{p.id}}')"><i class="fas fa-eye-slash text-danger"></i>Block user</a>
{% endif %}
<a id="block-{{p.id}}" class="dropdown-item list-inline-item text-danger {% if p.is_blocking %}d-none{% endif %}" role="button" onclick="post_toast2(this,'/settings/block?username={{p.author_name}}','block-{{p.id}}','unblock-{{p.id}}')"><i class="fas fa-eye-slash text-danger"></i>Block user</a>
{% endif %}
{% if p.sub and v.mods(p.sub) %}
<a class="dropdown-item list-inline-item text-danger" role="button" onclick="post_toast(this,'/kick/{{p.id}}')"><i class="fas fa-sign-out text-danger"></i>Remove</a>
{% if not p.author.mods(p.sub) %}
<a id="exile-{{p.id}}" class="{% if p.author.exiled_from(p.sub) %}d-none{% endif %} dropdown-item list-inline-item text-danger" role="button" onclick="post_toast2(this,'/exile/post/{{p.id}}','exile-{{p.id}}','unexile-{{p.id}}')"><i class="fas fa-campfire text-danger"></i>Exile user</a>
<a id="unexile-{{p.id}}" class="{% if not p.author.exiled_from(p.sub) %}d-none{% endif %} dropdown-item list-inline-item text-success" role="button" onclick="post_toast2(this,'/h/{{sub}}/unexile/{{p.author_id}}','exile-{{p.id}}','unexile-{{p.id}}')"><i class="fas fa-campfire text-success"></i>Unexile user</a>
{% endif %}
{% endif %}
{% if p.sub and v.mods(p.sub) %}
<a class="dropdown-item list-inline-item text-danger" role="button" onclick="post_toast(this,'/kick/{{p.id}}')"><i class="fas fa-sign-out text-danger"></i>Remove</a>
{% if not p.author.mods(p.sub) %}
<a id="exile-{{p.id}}" class="{% if p.author.exiled_from(p.sub) %}d-none{% endif %} dropdown-item list-inline-item text-danger" role="button" onclick="post_toast2(this,'/exile/post/{{p.id}}','exile-{{p.id}}','unexile-{{p.id}}')"><i class="fas fa-campfire text-danger"></i>Exile user</a>
<a id="unexile-{{p.id}}" class="{% if not p.author.exiled_from(p.sub) %}d-none{% endif %} dropdown-item list-inline-item text-success" role="button" onclick="post_toast2(this,'/h/{{sub}}/unexile/{{p.author_id}}','exile-{{p.id}}','unexile-{{p.id}}')"><i class="fas fa-campfire text-success"></i>Unexile user</a>
{% endif %}
{% endif %}
{% if v.id==p.author_id or v.admin_level > 1 %}
<a id="mark-{{p.id}}" class="dropdown-item {% if p.over_18 %}d-none{% endif %} list-inline-item text-danger" role="button" onclick="post_toast2(this,'/toggle_post_nsfw/{{p.id}}','mark-{{p.id}}','unmark-{{p.id}}')"><i class="fas fa-eye-evil"></i>Mark +18</a>
<a id="unmark-{{p.id}}" class="dropdown-item {% if not p.over_18 %}d-none{% endif %} list-inline-item text-success" role="button" onclick="post_toast2(this,'/toggle_post_nsfw/{{p.id}}','mark-{{p.id}}','unmark-{{p.id}}')"><i class="fas fa-eye-evil"></i>Unmark +18</a>
{% endif %}
{% if v.id==p.author_id or v.admin_level > 1 %}
<a id="mark-{{p.id}}" class="dropdown-item {% if p.over_18 %}d-none{% endif %} list-inline-item text-danger" role="button" onclick="post_toast2(this,'/toggle_post_nsfw/{{p.id}}','mark-{{p.id}}','unmark-{{p.id}}')"><i class="fas fa-eye-evil"></i>Mark +18</a>
<a id="unmark-{{p.id}}" class="dropdown-item {% if not p.over_18 %}d-none{% endif %} list-inline-item text-success" role="button" onclick="post_toast2(this,'/toggle_post_nsfw/{{p.id}}','mark-{{p.id}}','unmark-{{p.id}}')"><i class="fas fa-eye-evil"></i>Unmark +18</a>
{% endif %}
{% if v.admin_level > 1 and v.id != p.author_id %}
<a id="ban-{{p.id}}" class="dropdown-item {% if p.author.is_suspended %}d-none{% endif %} list-inline-item text-danger" id="exile-comment-{{p.id}}" role="button" data-bs-toggle="modal" data-bs-target="#banModal" onclick="banModal('/post/{{p.id}}', '{{p.author.id}}', '{{p.author_name}}')"><i class="fas fa-user-slash text-danger fa-fw"></i>Ban user</a>
<a id="unban-{{p.id}}" class="dropdown-item {% if not p.author.is_suspended %}d-none{% endif %} list-inline-item text-danger" id="unexile2-user-{{p.id}}" role="button" onclick="post_toast2(this,'/unban_user/{{p.author_id}}','ban-{{p.id}}','unban-{{p.id}}')"><i class="fas fa-user-slash"></i>Unban user</a>
{% endif %}
</ul>
{% endif %}
{% if v.admin_level > 1 and v.id != p.author_id %}
<a id="ban-{{p.id}}" class="dropdown-item {% if p.author.is_suspended %}d-none{% endif %} list-inline-item text-danger" id="exile-comment-{{p.id}}" role="button" data-bs-toggle="modal" data-bs-target="#banModal" onclick="banModal('/post/{{p.id}}', '{{p.author.id}}', '{{p.author_name}}')"><i class="fas fa-user-slash text-danger fa-fw"></i>Ban user</a>
<a id="unban-{{p.id}}" class="dropdown-item {% if not p.author.is_suspended %}d-none{% endif %} list-inline-item text-danger" id="unexile2-user-{{p.id}}" role="button" onclick="post_toast2(this,'/unban_user/{{p.author_id}}','ban-{{p.id}}','unban-{{p.id}}')"><i class="fas fa-user-slash"></i>Unban user</a>
{% endif %}
</ul>
{% endif %}

View file

@ -1,8 +1,8 @@
{% if v and v.id==p.author_id and p.private %}
<form class="btn-block" action="/publish/{{p.id}}" method="post">
<input type="hidden" name="formkey", value="{{v.formkey}}">
<button class="nobackground btn btn-link btn-lg text-left text-muted" data-bs-dismiss="modal" type="submit"><i class="fas fa-globe text-center mr-3"></i>Publish</button>
</form>
<form class="btn-block" action="/publish/{{p.id}}" method="post">
<input type="hidden" name="formkey", value="{{v.formkey}}">
<button class="nobackground btn btn-link btn-lg text-left text-muted" data-bs-dismiss="modal" type="submit"><i class="fas fa-globe text-center mr-3"></i>Publish</button>
</form>
{% endif %}
@ -22,43 +22,43 @@
{% if v.id==p.author_id %}
{% if v.admin_level == 1 %}
<button id="distinguish2-{{p.id}}" class="{% if p.distinguish_level %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left" role="button" onclick="post_toast2(this,'/distinguish/{{p.id}}','distinguish2-{{p.id}}','undistinguish2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-crown text-center mr-3"></i>Distinguish</button>
<button id="undistinguish2-{{p.id}}" class="{% if not p.distinguish_level %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left" role="button" onclick="post_toast2(this,'/distinguish/{{p.id}}','distinguish2-{{p.id}}','undistinguish2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-crown text-center mr-3"></i>Undistinguish</button>
{% endif %}
{% if v.admin_level == 1 %}
<button id="distinguish2-{{p.id}}" class="{% if p.distinguish_level %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left" role="button" onclick="post_toast2(this,'/distinguish/{{p.id}}','distinguish2-{{p.id}}','undistinguish2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-crown text-center mr-3"></i>Distinguish</button>
<button id="undistinguish2-{{p.id}}" class="{% if not p.distinguish_level %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left" role="button" onclick="post_toast2(this,'/distinguish/{{p.id}}','distinguish2-{{p.id}}','undistinguish2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-crown text-center mr-3"></i>Undistinguish</button>
{% endif %}
{% if request.path.startswith('/@') %}
<button id="pin-profile2-{{p.id}}" class="{% if p.is_pinned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-muted text-left"role="button" onclick="post_toast2(this,'/pin/{{p.id}}','pin-profile2-{{p.id}}','unpin-profile2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-center mr-3"></i>Pin to profile</button>
<button id="unpin-profile2-{{p.id}}" class="{% if not p.is_pinned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-muted text-left" role="button" onclick="post_toast2(this,'/pin/{{p.id}}','pin-profile2-{{p.id}}','unpin-profile2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-center mr-3"></i>Unpin from profile</button>
{% endif %}
{% if request.path.startswith('/@') %}
<button id="pin-profile2-{{p.id}}" class="{% if p.is_pinned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-muted text-left"role="button" onclick="post_toast2(this,'/pin/{{p.id}}','pin-profile2-{{p.id}}','unpin-profile2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-center mr-3"></i>Pin to profile</button>
<button id="unpin-profile2-{{p.id}}" class="{% if not p.is_pinned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-muted text-left" role="button" onclick="post_toast2(this,'/pin/{{p.id}}','pin-profile2-{{p.id}}','unpin-profile2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-center mr-3"></i>Unpin from profile</button>
{% endif %}
<button id="undelete-{{p.id}}" class="{% if not p.deleted_utc %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-success" role="button" onclick="post_toast2(this,'/undelete_post/{{p.id}}', 'delete-{{p.id}}', 'undelete-{{p.id}}');document.getElementById('post-{{p.id}}').classList.remove('deleted')" data-bs-dismiss="modal"><i class="far fa-trash-alt text-center mr-3"></i>Undelete</button>
<button id="undelete-{{p.id}}" class="{% if not p.deleted_utc %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-success" role="button" onclick="post_toast2(this,'/undelete_post/{{p.id}}', 'delete-{{p.id}}', 'undelete-{{p.id}}');document.getElementById('post-{{p.id}}').classList.remove('deleted')" data-bs-dismiss="modal"><i class="far fa-trash-alt text-center mr-3"></i>Undelete</button>
<button id="delete-{{p.id}}" class="{% if p.deleted_utc %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#deletePostModal" onclick="delete_postModal('{{p.id}}')"><i class="far fa-trash-alt mr-3"></i>Delete</button>
<button id="delete-{{p.id}}" class="{% if p.deleted_utc %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#deletePostModal" onclick="delete_postModal('{{p.id}}')"><i class="far fa-trash-alt mr-3"></i>Delete</button>
{% if v.club_allowed != False %}
<button id="club3-{{p.id}}" class="{% if p.club %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-danger text-left" role="button" onclick="post_toast2(this,'/toggle_club/{{p.id}}','club3-{{p.id}}','unclub3-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-eye-slash mr-3"></i>Mark club</button>
<button id="unclub3-{{p.id}}" class="{% if not p.club %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" role="button" onclick="post_toast2(this,'/toggle_club/{{p.id}}','club3-{{p.id}}','unclub3-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-eye mr-3"></i>Unmark club</button>
{% endif %}
{% if v.club_allowed != False %}
<button id="club3-{{p.id}}" class="{% if p.club %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-danger text-left" role="button" onclick="post_toast2(this,'/toggle_club/{{p.id}}','club3-{{p.id}}','unclub3-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-eye-slash mr-3"></i>Mark club</button>
<button id="unclub3-{{p.id}}" class="{% if not p.club %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" role="button" onclick="post_toast2(this,'/toggle_club/{{p.id}}','club3-{{p.id}}','unclub3-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-eye mr-3"></i>Unmark club</button>
{% endif %}
<button id="mark3-{{p.id}}" class="{% if p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" onclick="post_toast2(this,'/toggle_post_nsfw/{{p.id}}','mark3-{{p.id}}','unmark3-{{p.id}}')" data-bs-dismiss="modal"><i class="far fa-eye-evil text-center mr-3"></i>Mark +18</button>
<button id="unmark3-{{p.id}}" class="{% if not p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-success" onclick="post_toast2(this,'/toggle_post_nsfw/{{p.id}}','mark3-{{p.id}}','unmark3-{{p.id}}')" data-bs-dismiss="modal"><i class="far fa-eye-evil text-center mr-3"></i>Unmark +18</button>
<button id="mark3-{{p.id}}" class="{% if p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" onclick="post_toast2(this,'/toggle_post_nsfw/{{p.id}}','mark3-{{p.id}}','unmark3-{{p.id}}')" data-bs-dismiss="modal"><i class="far fa-eye-evil text-center mr-3"></i>Mark +18</button>
<button id="unmark3-{{p.id}}" class="{% if not p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-success" onclick="post_toast2(this,'/toggle_post_nsfw/{{p.id}}','mark3-{{p.id}}','unmark3-{{p.id}}')" data-bs-dismiss="modal"><i class="far fa-eye-evil text-center mr-3"></i>Unmark +18</button>
{% else %}
{% if not p.ghost %}
<button id="unblock2-{{p.id}}" class="nobackground btn btn-link btn-block btn-lg text-success text-left{% if not p.is_blocking %} d-none{% endif %}" data-bs-dismiss="modal" onclick="post_toast2(this,'/settings/unblock?username={{p.author_name}}','block2-{{p.id}}','unblock2-{{p.id}}')"><i class="fas fa-eye mr-3 text-success"></i>Unblock user</button>
<button id="prompt2-{{p.id}}" class="blockuser nobackground btn btn-link btn-block btn-lg text-danger text-left d-none" data-bs-dismiss="modal" onclick="post_toast2(this,'/settings/block?username={{p.author_name}}','prompt2-{{p.id}}','unblock2-{{p.id}}')"><i class="fas fa-eye-slash mr-3 text-danger"></i>Are you sure?</button>
<button id="block2-{{p.id}}" class="blockuser nobackground btn btn-link btn-block btn-lg text-danger text-left{% if p.is_blocking %} d-none{% endif %}" onclick="document.getElementById('block2-{{p.id}}').classList.toggle('d-none');document.getElementById('prompt2-{{p.id}}').classList.toggle('d-none');"><i class="fas fa-eye-slash mr-3 text-danger"></i>Block user</button>
{% endif %}
{% if not p.ghost %}
<button id="unblock2-{{p.id}}" class="nobackground btn btn-link btn-block btn-lg text-success text-left{% if not p.is_blocking %} d-none{% endif %}" data-bs-dismiss="modal" onclick="post_toast2(this,'/settings/unblock?username={{p.author_name}}','block2-{{p.id}}','unblock2-{{p.id}}')"><i class="fas fa-eye mr-3 text-success"></i>Unblock user</button>
<button id="prompt2-{{p.id}}" class="blockuser nobackground btn btn-link btn-block btn-lg text-danger text-left d-none" data-bs-dismiss="modal" onclick="post_toast2(this,'/settings/block?username={{p.author_name}}','prompt2-{{p.id}}','unblock2-{{p.id}}')"><i class="fas fa-eye-slash mr-3 text-danger"></i>Are you sure?</button>
<button id="block2-{{p.id}}" class="blockuser nobackground btn btn-link btn-block btn-lg text-danger text-left{% if p.is_blocking %} d-none{% endif %}" onclick="document.getElementById('block2-{{p.id}}').classList.toggle('d-none');document.getElementById('prompt2-{{p.id}}').classList.toggle('d-none');"><i class="fas fa-eye-slash mr-3 text-danger"></i>Block user</button>
{% endif %}
{% endif %}
{% if p.sub and v.mods(p.sub) %}
<button data-bs-dismiss="modal" class="nobackground btn btn-link btn-block btn-lg text-left text-danger" onclick="post_toast(this,'/kick/{{p.id}}')"><i class="fas fa-sign-out text-danger text-center mr-3"></i>Remove</button>
<button data-bs-dismiss="modal" class="nobackground btn btn-link btn-block btn-lg text-left text-danger" onclick="post_toast(this,'/kick/{{p.id}}')"><i class="fas fa-sign-out text-danger text-center mr-3"></i>Remove</button>
{% if not p.author.mods(p.sub) %}
<button data-bs-dismiss="modal" id="exile2" class="{% if p.author.exiled_from(p.sub) %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" onclick="post_toast2(this,'/exile/post/{{p.id}}','exile2','unexile2')"><i class="fas fa-campfire mr-3 text-danger"></i>Exile user</button>
<button data-bs-dismiss="modal" id="unexile2" class="{% if not p.author.exiled_from(p.sub) %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-success" onclick="post_toast2(this,'/h/{{sub}}/unexile/{{p.author_id}}','exile2','unexile2')"><i class="fas fa-campfire mr-3 text-success"></i>Unexile user</button>
{% endif %}
{% if not p.author.mods(p.sub) %}
<button data-bs-dismiss="modal" id="exile2" class="{% if p.author.exiled_from(p.sub) %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" onclick="post_toast2(this,'/exile/post/{{p.id}}','exile2','unexile2')"><i class="fas fa-campfire mr-3 text-danger"></i>Exile user</button>
<button data-bs-dismiss="modal" id="unexile2" class="{% if not p.author.exiled_from(p.sub) %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-success" onclick="post_toast2(this,'/h/{{sub}}/unexile/{{p.author_id}}','exile2','unexile2')"><i class="fas fa-campfire mr-3 text-success"></i>Unexile user</button>
{% endif %}
{% endif %}

View file

@ -1,51 +1,51 @@
<div class="modal fade d-md-none" id="adminModal-{{p.id}}" tabindex="-1" role="dialog" aria-labelledby="actionsModalTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header p-3">
<h5 class="col modal-title text-center h6">Admin options</h5>
<button class="close position-absolute py-3" style="right: 1rem"data-bs-dismiss="modal" aria-label="Close">
<span aria-hidden="true"><i class="fas fa-times-circle text-gray-500"></i></span>
</button>
</div>
<div class="modal-body">
<ul class="list-group post-actions">
{% if request.path.startswith('/post/') and v.admin_level > 2 %}
<button class="nobackground btn btn-link btn-block btn-lg text-left text-muted" data-bs-dismiss="modal" onclick="togglePostEdit('{{p.id}}')"><i class="far fa-edit text-center text-muted mr-3"></i>Edit</button>
{% endif %}
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header p-3">
<h5 class="col modal-title text-center h6">Admin options</h5>
<button class="close position-absolute py-3" style="right: 1rem"data-bs-dismiss="modal" aria-label="Close">
<span aria-hidden="true"><i class="fas fa-times-circle text-gray-500"></i></span>
</button>
</div>
<div class="modal-body">
<ul class="list-group post-actions">
{% if request.path.startswith('/post/') and v.admin_level > 2 %}
<button class="nobackground btn btn-link btn-block btn-lg text-left text-muted" data-bs-dismiss="modal" onclick="togglePostEdit('{{p.id}}')"><i class="far fa-edit text-center text-muted mr-3"></i>Edit</button>
{% endif %}
<button id="club2-{{p.id}}" class="{% if p.club %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-info text-left" role="button" onclick="post_toast2(this,'/toggle_club/{{p.id}}','club2-{{p.id}}','unclub2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-eye-slash mr-3"></i>Mark club</button>
<button id="unclub2-{{p.id}}" class="{% if not p.club %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-info text-left" role="button" onclick="post_toast2(this,'/toggle_club/{{p.id}}','club2-{{p.id}}','unclub2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-eye mr-3"></i>Unmark club</button>
<button id="club2-{{p.id}}" class="{% if p.club %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-info text-left" role="button" onclick="post_toast2(this,'/toggle_club/{{p.id}}','club2-{{p.id}}','unclub2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-eye-slash mr-3"></i>Mark club</button>
<button id="unclub2-{{p.id}}" class="{% if not p.club %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-info text-left" role="button" onclick="post_toast2(this,'/toggle_club/{{p.id}}','club2-{{p.id}}','unclub2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-eye mr-3"></i>Unmark club</button>
<button id="distinguish2-{{p.id}}" class="{% if p.distinguish_level %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" role="button" onclick="post_toast2(this,'/distinguish/{{p.id}}','distinguish2-{{p.id}}','undistinguish2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-crown text-center text-primary mr-3"></i>Distinguish</button>
<button id="distinguish2-{{p.id}}" class="{% if p.distinguish_level %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" role="button" onclick="post_toast2(this,'/distinguish/{{p.id}}','distinguish2-{{p.id}}','undistinguish2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-crown text-center text-primary mr-3"></i>Distinguish</button>
<button id="undistinguish2-{{p.id}}" class="{% if not p.distinguish_level %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" role="button" onclick="post_toast2(this,'/distinguish/{{p.id}}','distinguish2-{{p.id}}','undistinguish2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-crown text-center text-primary mr-3"></i>Undistinguish</button>
<button id="undistinguish2-{{p.id}}" class="{% if not p.distinguish_level %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" role="button" onclick="post_toast2(this,'/distinguish/{{p.id}}','distinguish2-{{p.id}}','undistinguish2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-crown text-center text-primary mr-3"></i>Undistinguish</button>
<button id="pin2-{{p.id}}" class="{% if p.stickied %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" role="button" onclick="post_toast2(this,'/sticky/{{p.id}}','pin2-{{p.id}}','unpin2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-center text-primary mr-3"></i>Pin</button>
<button id="pin2-{{p.id}}" class="{% if p.stickied %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" role="button" onclick="post_toast2(this,'/sticky/{{p.id}}','pin2-{{p.id}}','unpin2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-center text-primary mr-3"></i>Pin</button>
<button id="unpin2-{{p.id}}" class="{% if not p.stickied %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" role="button" onclick="post_toast2(this,'/unsticky/{{p.id}}','pin2-{{p.id}}','unpin2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-center text-primary mr-3"></i>Unpin</button>
<button id="unpin2-{{p.id}}" class="{% if not p.stickied %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" role="button" onclick="post_toast2(this,'/unsticky/{{p.id}}','pin2-{{p.id}}','unpin2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-center text-primary mr-3"></i>Unpin</button>
{% if "/reported/" in request.path %}
<button class="nobackground btn btn-link btn-block btn-lg text-danger text-left" role="button" onclick="post_toast(this,'/ban_post/{{p.id}}')" data-bs-dismiss="modal"><i class="far fa-ban text-center mr-3"></i>Remove</button>
<button class="nobackground btn btn-link btn-block btn-lg text-success text-left" role="button" onclick="post_toast(this,'/unban_post/{{p.id}}')" data-bs-dismiss="modal"><i class="far fa-check text-center mr-3"></i>Approve</button>
{% else %}
<button id="remove2-{{p.id}}" class="{% if p.is_banned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-danger text-left" role="button" onclick="post_toast2(this,'/ban_post/{{p.id}}','remove2-{{p.id}}','approve2-{{p.id}}')" data-bs-dismiss="modal"><i class="far fa-ban text-center mr-3"></i>Remove</button>
<button id="approve2-{{p.id}}" class="{% if not p.is_banned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" role="button" onclick="post_toast2(this,'/unban_post/{{p.id}}','remove2-{{p.id}}','approve2-{{p.id}}')" data-bs-dismiss="modal"><i class="far fa-check text-center mr-3"></i>Approve</button>
{% endif %}
{% if "/reported/" in request.path %}
<button class="nobackground btn btn-link btn-block btn-lg text-danger text-left" role="button" onclick="post_toast(this,'/ban_post/{{p.id}}')" data-bs-dismiss="modal"><i class="far fa-ban text-center mr-3"></i>Remove</button>
<button class="nobackground btn btn-link btn-block btn-lg text-success text-left" role="button" onclick="post_toast(this,'/unban_post/{{p.id}}')" data-bs-dismiss="modal"><i class="far fa-check text-center mr-3"></i>Approve</button>
{% else %}
<button id="remove2-{{p.id}}" class="{% if p.is_banned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-danger text-left" role="button" onclick="post_toast2(this,'/ban_post/{{p.id}}','remove2-{{p.id}}','approve2-{{p.id}}')" data-bs-dismiss="modal"><i class="far fa-ban text-center mr-3"></i>Remove</button>
<button id="approve2-{{p.id}}" class="{% if not p.is_banned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" role="button" onclick="post_toast2(this,'/unban_post/{{p.id}}','remove2-{{p.id}}','approve2-{{p.id}}')" data-bs-dismiss="modal"><i class="far fa-check text-center mr-3"></i>Approve</button>
{% endif %}
{% if p.oauth_app %}
<a href="{{p.oauth_app.permalink}}"><button class="nobackground btn btn-link btn-block btn-lg text-muted text-left"><i class="far fa-code text-center text-info mr-3"></i>API App</button></a>
{% endif %}
{% if p.oauth_app %}
<a href="{{p.oauth_app.permalink}}"><button class="nobackground btn btn-link btn-block btn-lg text-muted text-left"><i class="far fa-code text-center text-info mr-3"></i>API App</button></a>
{% endif %}
<button id="mark2-{{p.id}}" class="{% if p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" onclick="post_toast2(this,'/toggle_post_nsfw/{{p.id}}','mark2-{{p.id}}','unmark2-{{p.id}}')" data-bs-dismiss="modal"><i class="far fa-eye-evil text-center text-danger mr-3"></i>Mark +18</button>
<button id="unmark2-{{p.id}}" class="{% if not p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" onclick="post_toast2(this,'/toggle_post_nsfw/{{p.id}}','mark2-{{p.id}}','unmark2-{{p.id}}')" data-bs-dismiss="modal"><i class="far fa-eye-evil text-center text-danger mr-3"></i>Unmark +18</button>
<button id="mark2-{{p.id}}" class="{% if p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" onclick="post_toast2(this,'/toggle_post_nsfw/{{p.id}}','mark2-{{p.id}}','unmark2-{{p.id}}')" data-bs-dismiss="modal"><i class="far fa-eye-evil text-center text-danger mr-3"></i>Mark +18</button>
<button id="unmark2-{{p.id}}" class="{% if not p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" onclick="post_toast2(this,'/toggle_post_nsfw/{{p.id}}','mark2-{{p.id}}','unmark2-{{p.id}}')" data-bs-dismiss="modal"><i class="far fa-eye-evil text-center text-danger mr-3"></i>Unmark +18</button>
{% if v.id != p.author_id %}
<button id="ban2-{{p.id}}" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#banModal" onclick="banModal('/post/{{p.id}}', '{{p.author.id}}', '{{p.author_name}}')" class="{% if p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-danger text-left" role="button"><i class="fas fa-user-minus mr-3"></i>Ban user</button>
<button id="unban2-{{p.id}}" class="{% if not p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" role="button" onclick="post_toast2(this,'/unban_user/{{p.author_id}}','ban2-{{p.id}}','unban2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-user-minus mr-3"></i>Unban user</button>
{% endif %}
{% if v.id != p.author_id %}
<button id="ban2-{{p.id}}" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#banModal" onclick="banModal('/post/{{p.id}}', '{{p.author.id}}', '{{p.author_name}}')" class="{% if p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-danger text-left" role="button"><i class="fas fa-user-minus mr-3"></i>Ban user</button>
<button id="unban2-{{p.id}}" class="{% if not p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" role="button" onclick="post_toast2(this,'/unban_user/{{p.author_id}}','ban2-{{p.id}}','unban2-{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-user-minus mr-3"></i>Unban user</button>
{% endif %}
</ul>
</div>
</div>
</div>
</ul>
</div>
</div>
</div>
</div>

View file

@ -39,10 +39,10 @@
{% if v %}
<style>:root{--primary:#{{v.themecolor}}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=204"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=40">
<link rel="stylesheet" href="/assets/css/main.css?v=205"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=40">
{% else %}
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=204"><link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=40">
<link rel="stylesheet" href="/assets/css/main.css?v=205"><link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=40">
{% endif %}
</head>

View file

@ -31,7 +31,7 @@
<title>{% if ref_user %}{{ref_user.username}} invites you to {{SITE_NAME}}{% else %}Sign up - {{SITE_NAME}}{% endif %}</title>
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=204"><link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=40">
<link rel="stylesheet" href="/assets/css/main.css?v=205"><link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=40">
</head>

View file

@ -32,7 +32,7 @@
<title>{% if ref_user %}{{ref_user.username}} invites you to {{SITE_NAME}}{% else %}{{SITE_NAME}}{% endif %}</title>
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=204"><link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=40">
<link rel="stylesheet" href="/assets/css/main.css?v=205"><link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=40">
</head>

View file

@ -26,7 +26,7 @@
{% block stylesheets %}
{% if v %}
<style>:root{--primary:#{{v.themecolor}}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=204"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=40">
<link rel="stylesheet" href="/assets/css/main.css?v=205"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=40">
{% if v.agendaposter %}
<style>
html {
@ -50,7 +50,7 @@
{% endif %}
{% else %}
<style>:root{--primary:#{{config('DEFAULT_COLOR')}}</style>
<link rel="stylesheet" href="/assets/css/main.css?v=204">
<link rel="stylesheet" href="/assets/css/main.css?v=205">
<link rel="stylesheet" href="/assets/css/{{config('DEFAULT_THEME')}}.css?v=40">
{% endif %}
{% endblock %}