<?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> <?php if (current_user_can('wowpress_edit_characters')) : ?> <td class="p-auto hidden lg:table-cell">Raider</td> <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> <?php if (current_user_can('wowpress_edit_characters')) : ?> <td class="p-auto hidden lg:table-cell"> <form action="/request" method="POST"> <?php wp_nonce_field('toggleRaidchar', 'toggleRaidchar_nonce'); ?> <input type="hidden" name="action" value="toggleRaidchar"> <input type="hidden" name="id" value="<?= $char->ID ?>"> <?php if ($char->raidchar) : ?> <button type="submit" class="btn btn-<?=$char->color?>"><?=Icon::get('o-check-circle')?> Ja</button> <?php else : ?> <button type="submit" class="btn btn-gray"><?=Icon::get('o-no-symbol')?> Nein</button> <?php endif; ?> </form> </td> <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();