mirror of
https://github.com/Pandipipas/scoreko-dev.git
synced 2026-06-06 03:32:06 +00:00
Adjust start.gg layout and admin-only tournament listing
This commit is contained in:
@@ -270,135 +270,141 @@ onMounted(() => {
|
||||
/>
|
||||
</div>
|
||||
|
||||
<QCard
|
||||
flat
|
||||
bordered
|
||||
class="q-pa-md"
|
||||
>
|
||||
<div class="text-h6 q-mb-sm">
|
||||
Integración start.gg
|
||||
</div>
|
||||
<div class="text-caption q-mb-md">
|
||||
Pega tu token personal de start.gg para cargar automáticamente tus torneos recientes y sus inscritos.
|
||||
</div>
|
||||
<div class="row q-col-gutter-sm items-center">
|
||||
<div class="col-12 col-md-7">
|
||||
<div class="players-content row q-col-gutter-md">
|
||||
<div class="col players-main-column">
|
||||
<div class="row items-center q-gutter-sm q-mb-md">
|
||||
<QInput
|
||||
v-model="startGGToken"
|
||||
label="start.gg API Token"
|
||||
v-model="filter"
|
||||
dense
|
||||
outlined
|
||||
type="password"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
placeholder="Search..."
|
||||
class="players-search players-underlined-field"
|
||||
clearable
|
||||
>
|
||||
<template #prepend>
|
||||
<QIcon name="search" />
|
||||
</template>
|
||||
</QInput>
|
||||
<QBtn
|
||||
color="secondary"
|
||||
icon="sync"
|
||||
label="Cargar torneos"
|
||||
:loading="loadingTournaments"
|
||||
@click="loadRecentTournaments"
|
||||
outline
|
||||
icon="file_upload"
|
||||
label="Import"
|
||||
@click="triggerImport"
|
||||
/>
|
||||
<QBtn
|
||||
color="secondary"
|
||||
outline
|
||||
icon="file_download"
|
||||
label="Export"
|
||||
@click="exportPlayers"
|
||||
/>
|
||||
<input
|
||||
ref="fileInput"
|
||||
type="file"
|
||||
class="visually-hidden"
|
||||
accept="application/json"
|
||||
@change="handleImport"
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="tournamentsError"
|
||||
class="text-negative q-mt-sm"
|
||||
>
|
||||
{{ tournamentsError }}
|
||||
</div>
|
||||
<QList
|
||||
v-if="recentTournaments.length"
|
||||
bordered
|
||||
separator
|
||||
class="q-mt-md startgg-tournaments-list"
|
||||
>
|
||||
<QItem
|
||||
v-for="tournament in recentTournaments"
|
||||
:key="tournament.id"
|
||||
clickable
|
||||
|
||||
<QTable
|
||||
flat
|
||||
bordered
|
||||
row-key="id"
|
||||
:rows="rows"
|
||||
:columns="columns"
|
||||
:filter="filter"
|
||||
:rows-per-page-options="[10, 20, 50]"
|
||||
>
|
||||
<QItemSection>
|
||||
<QItemLabel>{{ tournament.name }}</QItemLabel>
|
||||
<QItemLabel caption>
|
||||
{{ tournament.slug }}
|
||||
</QItemLabel>
|
||||
</QItemSection>
|
||||
<QItemSection side>
|
||||
<QBtn
|
||||
color="primary"
|
||||
unelevated
|
||||
label="Importar jugadores"
|
||||
@click.stop="openStartGGImportDialog(tournament)"
|
||||
/>
|
||||
</QItemSection>
|
||||
</QItem>
|
||||
</QList>
|
||||
</QCard>
|
||||
<template #body-cell-actions="{ row }">
|
||||
<QTd align="right">
|
||||
<QBtn
|
||||
size="sm"
|
||||
flat
|
||||
icon="edit"
|
||||
@click="openEditDialog(row)"
|
||||
/>
|
||||
<QBtn
|
||||
size="sm"
|
||||
flat
|
||||
color="negative"
|
||||
icon="delete"
|
||||
@click="deletePlayer(row)"
|
||||
/>
|
||||
</QTd>
|
||||
</template>
|
||||
</QTable>
|
||||
</div>
|
||||
|
||||
<div class="row items-center q-gutter-sm q-mb-md">
|
||||
<QInput
|
||||
v-model="filter"
|
||||
dense
|
||||
placeholder="Search..."
|
||||
class="players-search players-underlined-field"
|
||||
clearable
|
||||
>
|
||||
<template #prepend>
|
||||
<QIcon name="search" />
|
||||
</template>
|
||||
</QInput>
|
||||
<QBtn
|
||||
color="secondary"
|
||||
outline
|
||||
icon="file_upload"
|
||||
label="Import"
|
||||
@click="triggerImport"
|
||||
/>
|
||||
<QBtn
|
||||
color="secondary"
|
||||
outline
|
||||
icon="file_download"
|
||||
label="Export"
|
||||
@click="exportPlayers"
|
||||
/>
|
||||
<input
|
||||
ref="fileInput"
|
||||
type="file"
|
||||
class="visually-hidden"
|
||||
accept="application/json"
|
||||
@change="handleImport"
|
||||
>
|
||||
<div class="col-12 col-lg-4 players-startgg-column">
|
||||
<QCard
|
||||
flat
|
||||
bordered
|
||||
class="q-pa-md"
|
||||
>
|
||||
<div class="text-h6 q-mb-sm">
|
||||
Integración start.gg
|
||||
</div>
|
||||
<div class="text-caption q-mb-md">
|
||||
Pega tu token personal de start.gg para cargar automáticamente tus torneos creados o donde eres admin.
|
||||
</div>
|
||||
<div class="row q-col-gutter-sm items-center">
|
||||
<div class="col-12">
|
||||
<QInput
|
||||
v-model="startGGToken"
|
||||
label="start.gg API Token"
|
||||
dense
|
||||
outlined
|
||||
type="password"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<QBtn
|
||||
color="secondary"
|
||||
icon="sync"
|
||||
label="Cargar torneos"
|
||||
:loading="loadingTournaments"
|
||||
@click="loadRecentTournaments"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="tournamentsError"
|
||||
class="text-negative q-mt-sm"
|
||||
>
|
||||
{{ tournamentsError }}
|
||||
</div>
|
||||
<QList
|
||||
v-if="recentTournaments.length"
|
||||
bordered
|
||||
separator
|
||||
class="q-mt-md startgg-tournaments-list"
|
||||
>
|
||||
<QItem
|
||||
v-for="tournament in recentTournaments"
|
||||
:key="tournament.id"
|
||||
clickable
|
||||
>
|
||||
<QItemSection>
|
||||
<QItemLabel>{{ tournament.name }}</QItemLabel>
|
||||
<QItemLabel caption>
|
||||
{{ tournament.slug }}
|
||||
</QItemLabel>
|
||||
</QItemSection>
|
||||
<QItemSection side>
|
||||
<QBtn
|
||||
color="primary"
|
||||
unelevated
|
||||
label="Importar jugadores"
|
||||
@click.stop="openStartGGImportDialog(tournament)"
|
||||
/>
|
||||
</QItemSection>
|
||||
</QItem>
|
||||
</QList>
|
||||
</QCard>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<QTable
|
||||
flat
|
||||
bordered
|
||||
row-key="id"
|
||||
:rows="rows"
|
||||
:columns="columns"
|
||||
:filter="filter"
|
||||
:rows-per-page-options="[10, 20, 50]"
|
||||
>
|
||||
<template #body-cell-actions="{ row }">
|
||||
<QTd align="right">
|
||||
<QBtn
|
||||
size="sm"
|
||||
flat
|
||||
icon="edit"
|
||||
@click="openEditDialog(row)"
|
||||
/>
|
||||
<QBtn
|
||||
size="sm"
|
||||
flat
|
||||
color="negative"
|
||||
icon="delete"
|
||||
@click="deletePlayer(row)"
|
||||
/>
|
||||
</QTd>
|
||||
</template>
|
||||
</QTable>
|
||||
|
||||
<QDialog v-model="isImportDialogOpen">
|
||||
<QCard class="players-dialog">
|
||||
<QCardSection>
|
||||
@@ -541,6 +547,19 @@ onMounted(() => {
|
||||
min-width: 240px;
|
||||
}
|
||||
|
||||
.players-content {
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.players-main-column {
|
||||
min-width: 0;
|
||||
flex: 1 1 auto;
|
||||
}
|
||||
|
||||
.players-startgg-column {
|
||||
min-width: 320px;
|
||||
}
|
||||
|
||||
.players-dialog {
|
||||
min-width: 320px;
|
||||
width: min(720px, 90vw);
|
||||
|
||||
@@ -89,7 +89,7 @@ nodecg.listenFor('startgg:fetchRecentTournaments', async (payload: unknown, ack)
|
||||
const query = `
|
||||
query RecentTournaments($perPage: Int!) {
|
||||
currentUser {
|
||||
tournaments(query: { perPage: $perPage }) {
|
||||
tournaments(query: { perPage: $perPage, filter: { tournamentView: "admin" } }) {
|
||||
nodes {
|
||||
id
|
||||
name
|
||||
|
||||
Reference in New Issue
Block a user