WowPress-Tailwind/theme/pages/complaints.php

183 lines
11 KiB
PHP

<?php
use Illuminate\Support\Facades\Auth;
use WoWPress\Frontend\Icon;
use WoWPress\Models\Complaint;
use WoWPress\Models\User;
set_sidebar_status('top', false);
get_header();
$can_edit = current_user_can('wowpress_edit_complaints');
$forceShow = false;
$complaints = Complaint::getAll();
#$complaints = [];
?>
<section id="primary" style="margin-top:calc(-1 * var(--wowp-gap))">
<main id="main">
<div class="bg-black bg-opacity-60 backdrop-blur-md shadow p-auto text-center flex flex-col gap-2">
<h2 class="text-3xl font-bold">Willkommen in unserem Kummerkasten</h2>
<p>
Du hast etwas auf dem Herzen, möchtest deinem Ärger Luft machen oder uns einfach nur so etwas mitteilen?<br>
Dann ist hier der richtige Ort dafür!
</p>
<p>
Keiner außer dir (und den Offis) kann sehen was du hier schreibst.
</p>
<p>
Wenn du "unerkannt" bleiben möchtest kannst du das Formular auch "anonym" absenden. Allerdings kann man in der Datenbank trotzdem sehen wer das Formular abgeschickt hat, um Missbrauch zu vermeiden.<br>
Hier musst du darauf vertrauen, dass der Webseiten-Gott nicht so gemein ist und in der Datenbank auf die Suche geht. Normalsterbliche Offis können allerdings nicht sehen wer das Formular abgeschickt hat.
</p>
</div>
<?php if (!$can_edit || true) : ?>
<form id="addComplaint" method="POST" action="/request" class="hidden">
<input type="hidden" name="action" value="addComplaint">
<?php wp_nonce_field('addComplaint', 'addComplaint_nonce'); ?>
</form>
<div class="bg-black bg-opacity-60 backdrop-blur-md shadow p-auto flex flex-col gap-2">
<h3 class="text-2xl font-bold text-center">Neue Einsendung</h3>
<textarea form="addComplaint" name="complaint" id="complaint" class="bg-black bg-opacity-60 backdrop-blur-md text-white border-white focus:ring-alliance focus:border-alliance" rows="5"></textarea>
<div class="flex flex-row gap-2">
<button form="addComplaint" type="submit" name="show" value="1" class="btn btn-outline btn-alliance flex-grow bg-black bg-opacity-60 backdrop-blur-md">Absenden <?= Icon::get('o-paper-airplane') ?></button>
<button form="addComplaint" type="submit" name="hide" value="1" class="btn btn-outline btn-alliance flex-grow bg-black bg-opacity-60 backdrop-blur-md">Anonym senden <?= Icon::get('o-paper-airplane') ?></button>
</div>
</div>
<?php endif; ?>
<?php if (!empty($complaints->first())) : ?>
<div class="bg-black bg-opacity-60 backdrop-blur-md shadow p-auto flex flex-col gap-2">
<h3 class="text-2xl font-bold text-center">Einsendungen</h3>
</div>
<?php
foreach ($complaints as $complaint) :
?>
<form id="trashComplaint<?= $complaint->ID ?>" method="POST" action="/request" class="hidden">
<input type="hidden" name="action" value="trashComplaint">
<input type="hidden" name="complaint_id" value="<?= $complaint->ID ?>">
<?php wp_nonce_field('trashComplaint', 'trashComplaint_nonce'); ?>
</form>
<div class="shadow p-auto flex flex-col gap-2 <?= $complaint->deleted_at ? "border border-dashed border-white bg-green-800 bg-opacity-60 backdrop-blur-md" : "bg-black bg-opacity-60 backdrop-blur-md" ?>">
<?php if ($complaint->deleted_at) : ?>
<div class="text-end">Eintrag gelöscht</div>
<?php endif; ?>
<div class="flex flex-col gap-2">
<div class="flex flex-col xl:flex-row gap-2 items-stretch">
<?php
if ($complaint->canEdit() && (!$complaint->anonymous || $forceShow)) :
?>
<div class="flex flex-col items-center">
<img src="<?= $complaint->user->avatar ?>" alt="" class="">
<div class="p-2 bg-glass w-full text-center"><?= $complaint->user->user_name ?></div>
</div>
<?php
endif;
if (!$complaint->canEdit() && $complaint->anonymous) :
?>
<form id="unhideComplaint<?= $complaint->ID ?>" method="POST" action="/request" class="hidden">
<input type="hidden" name="action" value="unhideComplaint">
<input type="hidden" name="complaint_id" value="<?= $complaint->ID ?>">
<?php wp_nonce_field('unhideComplaint', 'unhideComplaint_nonce'); ?>
</form>
<button type="submit" form="unhideComplaint<?= $complaint->ID ?>" class="btn btn-outline btn-orange">
<?= Icon::get('o-user-plus') ?>
<div>Anonymität aufheben</div>
</button>
<?php
endif;
?>
<div class="border border-white p-2 text-white w-full">
<?= $complaint->complaint ?>
</div>
<?php if (!$complaint->deleted_at) : ?>
<button type="submit" form="trashComplaint<?= $complaint->ID ?>" class="btn btn-outline btn-red">
<?= Icon::get('o-trash') ?>
</button>
<?php
elseif ($complaint->canEdit()) :
?>
<form id="restoreComplaint<?= $complaint->ID ?>" method="POST" action="/request" class="hidden">
<input type="hidden" name="action" value="restoreComplaint">
<input type="hidden" name="complaint_id" value="<?= $complaint->ID ?>">
<?php wp_nonce_field('restoreComplaint', 'restoreComplaint_nonce'); ?>
</form>
<button type="submit" form="restoreComplaint<?= $complaint->ID ?>" class="btn btn-outline btn-green">
<?= Icon::get('o-arrow-path') ?>
</button>
<?php
endif;
if ($complaint->canEdit()) :
?>
<form id="deleteComplaint<?= $complaint->ID ?>" method="POST" action="/request" class="hidden">
<input type="hidden" name="action" value="deleteComplaint">
<input type="hidden" name="complaint_id" value="<?= $complaint->ID ?>">
<?php wp_nonce_field('deleteComplaint', 'deleteComplaint_nonce'); ?>
</form>
<button type="submit" form="deleteComplaint<?= $complaint->ID ?>" class="btn btn-outline btn-red">
<?= Icon::get('o-x-circle') ?>
</button>
<?php
endif;
?>
</div>
<?php
if (!empty($complaint->user_comment) || $complaint->canEdit()) :
?>
<div class="flex flex-row gap-2 items-center">
<div class="text-alliance">
<?= Icon::get('o-shield-check') ?>
</div>
<input <?= $complaint->canEdit() ? "placeholder='Rückmeldung eingeben...'" : "disabled" ?> name="user_comment" form="commentComplaint<?= $complaint->ID ?>" type="text" class="border border-alliance p-2 text-white flex-grow bg-blue-50 bg-opacity-0 focus:ring-alliance focus:border-alliance" value="<?= $complaint->user_comment ?>">
<?php
if ($complaint->canEdit()) :
?>
<form id="commentComplaint<?= $complaint->ID ?>" method="POST" action="/request" class="hidden">
<input type="hidden" name="action" value="commentComplaint">
<input type="hidden" name="complaint_id" value="<?= $complaint->ID ?>">
<?php wp_nonce_field('commentComplaint', 'commentComplaint_nonce'); ?>
</form>
<button type="submit" form="commentComplaint<?= $complaint->ID ?>" class="btn btn-outline btn-alliance"><?= Icon::get('o-paper-airplane') ?></button>
<?php
endif;
?>
</div>
<?php
endif;
if ($complaint->canEdit()) :
?>
<form id="slanderComplaint<?= $complaint->ID ?>" method="POST" action="/request" class="hidden">
<input type="hidden" name="action" value="slanderComplaint">
<input type="hidden" name="complaint_id" value="<?= $complaint->ID ?>">
<?php wp_nonce_field('slanderComplaint', 'slanderComplaint_nonce'); ?>
</form>
<div class="flex flex-row gap-2 items-center">
<div class="text-deathknight">
<?= Icon::get('o-shield-exclamation') ?>
</div>
<input placeholder="Offi-Kommentar eingeben..." form="slanderComplaint<?= $complaint->ID ?>" name="admin_comment" type="text" class="border border-dashed border-deathknight p-2 text-white flex-grow bg-opacity-0 bg-blue-50 focus:ring-deathknight focus:border-deathknight" value="<?= $complaint->admin_comment ?>">
<button type="submit" form="slanderComplaint<?= $complaint->ID ?>" class="btn btn-outline btn-deathknight"><?= Icon::get('o-paper-airplane') ?></button>
</div>
<?php
endif;
?>
</div>
</div>
<?php
endforeach;
?>
<?php endif; ?>
</main>
</section>
<?php
get_footer();