144 lines
8.7 KiB
PHP
144 lines
8.7 KiB
PHP
<?php
|
|
|
|
|
|
use WoWPress\Api\BattleNet;
|
|
use WoWPress\Database\Cache;
|
|
use WoWPress\Frontend\Icon;
|
|
use WoWPress\Models\Character;
|
|
use WoWPress\Models\User;
|
|
|
|
global $widget_area;
|
|
set_sidebar_status('top', false);
|
|
|
|
$characters = Character::orderBy('rank')->get();
|
|
get_header();
|
|
|
|
?>
|
|
<div class="top-title flex flex-row gap-2" style="margin-top:calc(-1 * var(--wowp-gap))">
|
|
<div class="text-3xl font-bold bg-glass shadow p-3 text-center w-full">
|
|
<?= $GLOBALS['wowpress']['page_title'] ?>
|
|
</div>
|
|
</div>
|
|
|
|
<section id="primary">
|
|
<main id="main">
|
|
<div class="bg-glass shadow p-auto">
|
|
<table class="table-auto w-full">
|
|
<thead class="bg-glass">
|
|
<tr>
|
|
<td class="p-auto">Name</td>
|
|
<td class="p-auto hidden lg:table-cell">Klasse</td>
|
|
<td class="p-auto hidden lg:table-cell">Rang</td>
|
|
<td class="p-auto hidden lg:table-cell">Server</td>
|
|
<td class="p-auto hidden lg:table-cell">Gilde</td>
|
|
<td class="p-auto hidden lg:table-cell">Raider</td>
|
|
|
|
<?php if (current_user_can('wowpress_edit_characters')) : ?>
|
|
<td class="p-auto hidden lg:table-cell">
|
|
User
|
|
</td>
|
|
<td class="p-auto">Aktionen</td>
|
|
<?php endif; ?>
|
|
</tr>
|
|
</thead>
|
|
<tbody class="bg-slate-900">
|
|
<?php foreach ($characters as $char) : ?>
|
|
<tr class="text-<?= $char->color ?> even:bg-slate-800">
|
|
<td class="p-auto">
|
|
<div class="flex flex-row gap-2 items-center">
|
|
<img class="w-[42px] aspect-1 rounded-full" src="<?= $char->avatar ?>" alt="">
|
|
<span><?= $char->name ?></span>
|
|
</div>
|
|
</td>
|
|
<td class="p-auto hidden lg:table-cell">
|
|
<div class="flex flex-row gap-2 items-center">
|
|
<img class="w-[30px] aspect-1 rounded-full" src="<?= $char->class_icon ?>" alt="">
|
|
<img class="w-[30px] aspect-1 rounded-full" src="<?= $char->spec_icon ?>" alt="">
|
|
<span><?= translate_string($char->class) ?> -
|
|
<?= translate_string($char->spec) ?></span>
|
|
</div>
|
|
</td>
|
|
<td class="p-auto hidden lg:table-cell"><?= $char->rank ?></td>
|
|
<td class="p-auto hidden lg:table-cell"><?= $char->realm ?></td>
|
|
<td class="p-auto hidden lg:table-cell"><?= $char->guild ?></td>
|
|
<td class="p-auto hidden lg:table-cell"><?= $char->raidchar?"Ja":"Nein" ?></td>
|
|
|
|
<?php if (current_user_can('wowpress_edit_characters')) : ?>
|
|
<td class="p-auto hidden lg:table-cell">
|
|
<form action="/request" method="POST">
|
|
<input type="hidden" name="char_id" value="<?= $char->ID ?>">
|
|
<?php wp_nonce_field('changeUser', 'changeUser_nonce'); ?>
|
|
<input type="hidden" name="action" value="changeUser">
|
|
<div class="flex flex-row">
|
|
<div x-data="{ open: false, uid: '<?= $char->user ? $char->user->ID : "0" ?>' , selected: '<?= $char->user ? $char->user->login : "" ?>' }" @click.away="open = false" class="relative">
|
|
|
|
<input type="hidden" name="uid" x-model="uid">
|
|
|
|
<!-- Button -->
|
|
<button type="button" @click="open = !open" class="min-w-[180px] max-w-[180px] h-full px-4 py-2 border-e-0 border border-<?= $char->color ?> flex items-center justify-between" :class="{'text-<?= $char->color ?>': selected !== '', 'text-gray-500': selected === ''}">
|
|
<span class="max-w-[120px] overflow-hidden" x-text="selected === '' ? 'Kein User' : selected"></span>
|
|
<svg class="ml-2 w-4 h-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" />
|
|
</svg>
|
|
</button>
|
|
|
|
<!-- Dropdown Menu -->
|
|
<div x-show="open" class="absolute mt-2 bg-glass border border-<?= $char->color ?> w-full z-10" x-cloak>
|
|
<ul class="max-h-[240px] overflow-auto [&>li]:text-slate-200 [&>li]:px-4 [&>li]:py-2 hover:[&>li]:bg-slate-600 [&>li]:cursor-pointer">
|
|
<li @click="selected = ''; uid='0'; open = false;" value="0">Kein User</li>
|
|
<?php foreach (User::all() as $user) : ?>
|
|
<li @click="selected = '<?= $user->login ?>'; uid = '<?= $user->ID ?>'; open = false;" value="<?= $user->ID ?>"><?= $user->login ?></li>
|
|
<?php endforeach; ?>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<button type="submit" class="btn btn-<?= $char->color ?>"><?= Icon::get('o-user-plus') ?></button>
|
|
</div>
|
|
</form>
|
|
</td>
|
|
<td class="p-auto">
|
|
<div class="flex flex-row justify-end gap-2">
|
|
<form action="/request" method="POST">
|
|
<?php wp_nonce_field('updateCharacter', 'updateCharacter_nonce'); ?>
|
|
<input type="hidden" name="action" value="updateCharacter">
|
|
<input type="hidden" name="id" value="<?= $char->ID ?>">
|
|
<button type="submit" class="btn btn-outline button-green"><?= Icon::get('o-arrow-path') ?></button>
|
|
</form>
|
|
<form action="/request" method="POST">
|
|
<?php wp_nonce_field('deleteCharacter', 'deleteCharacter_nonce'); ?>
|
|
<input type="hidden" name="action" value="deleteCharacter">
|
|
<input type="hidden" name="id" value="<?= $char->ID ?>">
|
|
<button type="submit" class="btn btn-outline button-red"><?= Icon::get('o-trash') ?></button>
|
|
</form>
|
|
</div>
|
|
</td>
|
|
<?php endif; ?>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</main><!-- #main -->
|
|
</section><!-- #primary -->
|
|
<?php if (current_user_can('wowpress_edit_characters')) : ?>
|
|
<div x-data="{addChar:true}">
|
|
<template x-teleport="#sidebar_right">
|
|
<div class="bg-glass shadow p-auto order-1">
|
|
<h4 class="text-xl font-bold text-center mb-2">Charakter Hinzufügen</h4>
|
|
<form action="/request" method="POST">
|
|
<div class="flex flex-col gap-2">
|
|
<?php wp_nonce_field('addCharacter', 'addCharacter_nonce'); ?>
|
|
<input type="hidden" name="action" value="addCharacter">
|
|
<input type="text" name="name" placeholder="Name" class="text-black">
|
|
<input type="text" name="realm" placeholder="Server" class="text-black">
|
|
<button type="submit" class="btn btn-outline btn-hunter">Hinzufügen</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</template>
|
|
</div>
|
|
|
|
<?php
|
|
endif;
|
|
get_footer();
|