Version 1.0.0 - Finalisation de Account et de GuildHeader
This commit is contained in:
@@ -1,14 +1,16 @@
|
||||
<template>
|
||||
<SocketEnvironment>
|
||||
<div class="container">
|
||||
<HeaderGuild/>
|
||||
<GuildHeader/>
|
||||
<Box>
|
||||
<Button @click="router.push('/servers')">Choisir un serveur</Button>
|
||||
<Button @click="router.push('/terms')">Terms</Button>
|
||||
<Button @click="router.push('/privacy')">Privacy</Button>
|
||||
<Button @click="IORequest('/MOD/USERS/BAN', null, '582966873201704960')">Bannir Raphixscrap_</Button>
|
||||
<Button @click="globalStore.toogleTheme()">Changer le thème</Button>
|
||||
<p>{{ guildId }}</p>
|
||||
</Box>
|
||||
<Search/>
|
||||
<Account/>
|
||||
</div>
|
||||
</SocketEnvironment>
|
||||
@@ -23,9 +25,10 @@ import { useGlobalStore } from '@/stores/globalStore';
|
||||
import { useUserStore } from '@/stores/userStore';
|
||||
import { IOListener, IORequest } from '@/utils/IORequest';
|
||||
import { onMounted, ref } from 'vue';
|
||||
import Account from '@/components/Features/Account.vue';
|
||||
import Account from '@/components/Layout/Account.vue';
|
||||
import events from '@/utils/Events.js';
|
||||
import HeaderGuild from '@/components/Features/HeaderGuild.vue';
|
||||
import GuildHeader from '@/components/Layout/GuildHeader.vue';
|
||||
import Search from '@/components/Layout/Search.vue';
|
||||
|
||||
const props = defineProps({
|
||||
guildId: {
|
||||
@@ -43,7 +46,6 @@ if (!guildId) {
|
||||
const globalStore = useGlobalStore();
|
||||
const userStore = useUserStore();
|
||||
const router = useRouter();
|
||||
const alreadyLoaded = ref(false);
|
||||
|
||||
watch(() => globalStore.isLoading, (value, oldValue) => {
|
||||
if(!value && oldValue != value) {
|
||||
@@ -52,7 +54,7 @@ watch(() => globalStore.isLoading, (value, oldValue) => {
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
if(globalStore.lastGuild && !globalStore.isLoading) {
|
||||
if(!globalStore.isLoading) {
|
||||
loadInteface();
|
||||
}
|
||||
});
|
||||
@@ -62,16 +64,9 @@ events.on("UPDATE", () => {
|
||||
});
|
||||
|
||||
function loadInteface() {
|
||||
if(alreadyLoaded.value) return;
|
||||
console.log("Loading interface")
|
||||
console.log("Guild ID:", guildId);
|
||||
checkGuildAvailability();
|
||||
|
||||
IORequest("/USERS/LIST", (data) => {
|
||||
console.log("User list received:", data);
|
||||
})
|
||||
|
||||
alreadyLoaded.value = true;
|
||||
}
|
||||
|
||||
function checkGuildAvailability() {
|
||||
@@ -85,6 +80,7 @@ function checkGuildAvailability() {
|
||||
IORequest("/GUILD/JOIN", (response) => {
|
||||
if(response === true) {
|
||||
console.log("Successfully joined guild:", guildId);
|
||||
events.emit("GUILD_JOINED");
|
||||
} else {
|
||||
console.error("Failed to join guild:", response);
|
||||
globalStore.setLastGuild(null);
|
||||
@@ -102,11 +98,10 @@ function checkGuildAvailability() {
|
||||
<style scoped>
|
||||
|
||||
.container {
|
||||
padding: 20px;;
|
||||
padding: 15px;;;
|
||||
max-width: 400px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
@@ -7,26 +7,27 @@
|
||||
<Error v-if="callbackError">{{ callbackError }}</Error>
|
||||
<Error v-if="error">{{ error }}</Error>
|
||||
<Error v-if="errorServer">{{ errorServer }}</Error>
|
||||
<Info v-if="message">{{ message }}</Info>
|
||||
<Success v-if="message">{{ message }}</Success>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<p class="secondtext"><router-link to="/terms">Conditions d'utilisation</router-link> </p>
|
||||
<p class="secondtext"><router-link to="/privacy">Privacy</router-link></p>
|
||||
<p class="secondtext"><router-link to="/privacy">Confidentialité</router-link></p>
|
||||
</div>
|
||||
<p class="second">Session : {{ sessionId }}</p>
|
||||
</DefaultSplash>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import DefaultSplash from '@/components/Layout/DefaultSplash.vue';
|
||||
import DefaultSplash from '@/components/UI/DefaultSplash.vue';
|
||||
import Button from '@/components/UI/Button.vue';
|
||||
import Error from '@/components/UI/Error.vue';
|
||||
import Info from '@/components/UI/Info.vue';
|
||||
import { useRoute, useRouter } from 'vue-router';
|
||||
import { useLoginStore } from '@/stores/loginStore';
|
||||
import { computed, ref, watch, onMounted } from 'vue';
|
||||
import { computed, ref, watch } from 'vue';
|
||||
import { socket } from '@/socket.js';
|
||||
import { useGlobalStore } from '@/stores/globalStore';
|
||||
import Success from '@/components/UI/Success.vue';
|
||||
|
||||
|
||||
const loginStore = useLoginStore();
|
||||
|
@@ -16,7 +16,7 @@
|
||||
|
||||
</template>
|
||||
<script setup>
|
||||
import DefaultSplash from '@/components/Layout/DefaultSplash.vue';
|
||||
import DefaultSplash from '@/components/UI/DefaultSplash.vue';
|
||||
import Button from '@/components/UI/Button.vue'
|
||||
import Box from '@/components/UI/Box.vue';
|
||||
import { socket } from '@/socket';
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<script setup>
|
||||
import ReturnHomeButton from '@/components/Widget/ReturnHomeButton.vue';
|
||||
import DefaultSplash from '@/components/Layout/DefaultSplash.vue';
|
||||
import DefaultSplash from '@/components/UI/DefaultSplash.vue';
|
||||
import Box from '@/components/UI/Box.vue';
|
||||
import Button from '@/components/UI/Button.vue';
|
||||
</script>
|
||||
@@ -8,7 +8,7 @@ import Button from '@/components/UI/Button.vue';
|
||||
<template>
|
||||
<DefaultSplash>
|
||||
<ReturnHomeButton/>
|
||||
<h1>Privacy</h1>
|
||||
<h1>Confidentialité</h1>
|
||||
<Box no-shadow level="second" padding="closed">
|
||||
<div class="terms-content">
|
||||
<p><strong>Date d'entrée en vigueur :</strong> 22 juillet 2025</p>
|
||||
@@ -116,4 +116,9 @@ import Button from '@/components/UI/Button.vue';
|
||||
color: var(--text-secondary);
|
||||
text-align: justify;
|
||||
}
|
||||
h1 {
|
||||
font-size: 1.6em;
|
||||
margin-bottom: 10px;
|
||||
color: var(--text);
|
||||
}
|
||||
</style>
|
@@ -1,5 +1,5 @@
|
||||
<script setup>
|
||||
import Splash from '@/components/Layout/Splash.vue';
|
||||
import Splash from '@/components/UI/Splash.vue';
|
||||
import Box from '@/components/UI/Box.vue';
|
||||
import SocketEnvironment from "../utils/SocketEnvironment.vue"
|
||||
import { useRouter } from 'vue-router';
|
||||
@@ -8,9 +8,9 @@ import { useUserStore } from '@/stores/userStore';
|
||||
import Button from '@/components/UI/Button.vue';
|
||||
import ReturnHomeButton from '@/components/Widget/ReturnHomeButton.vue';
|
||||
import { ref } from 'vue';
|
||||
import ServerListItem from '@/components/Widget/ServerListItem.vue';
|
||||
import ServerListItem from '@/components/Widget/Server/ServerListItem.vue';
|
||||
import Info from '@/components/UI/Info.vue';
|
||||
import Account from '@/components/Features/Account.vue';
|
||||
import Account from '@/components/Layout/Account.vue';
|
||||
|
||||
const globalStore = useGlobalStore();
|
||||
const userStore = useUserStore();
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<script setup>
|
||||
import ReturnHomeButton from '@/components/Widget/ReturnHomeButton.vue';
|
||||
import DefaultSplash from '@/components/Layout/DefaultSplash.vue';
|
||||
import DefaultSplash from '@/components/UI/DefaultSplash.vue';
|
||||
import Box from '@/components/UI/Box.vue';
|
||||
import Button from '@/components/UI/Button.vue';
|
||||
</script>
|
||||
@@ -11,12 +11,16 @@ import Button from '@/components/UI/Button.vue';
|
||||
<h1>Conditions d'utilisation</h1>
|
||||
<Box no-shadow level="second" padding="closed">
|
||||
<div class="terms-content">
|
||||
<p>En utilisant ce site, vous consentez à l'utilisation de vos données fournis par Discord <Icon icon="fa-solid fa-copyright"/> afin d'assurer le bon fonctionnement de la plateforme. Vous avez la possibilité de demander la suppression de vos données à tout moment en contactant Raphix (raphixscrap). Tout acte intentionnel de dégradation du bot entraînera un bannissement du site.</p>
|
||||
<p>Ce bot est destiné à un usage privé exclusivement et n'est pas conçu pour être utilisé par le grand public.</p>
|
||||
<p>Toutes les musiques disponibles sur ce site sont hébergées sur les plateformes suivantes : Youtube, Soundcloud, Spotify.</p>
|
||||
<p>En utilisant Subsonics, vous bénéficiez du droit d'accès au service et de l'écoute du contenu. Cependant, veuillez noter que Raphix n'est pas tenu de fournir la provenance ni l'autorisation d'exploitation des musiques par les ayants droits. Il vous incombe donc d'obtenir les autorisations nécessaires des ayants droits pour écouter le contenu.</p>
|
||||
<p>En utilisant Subsonics, vous acceptez de ne pas utiliser le bot pour diffuser des contenus illégaux, violents, haineux, discriminatoires, ou à caractère sexuel.</p>
|
||||
<p>En utilisant Subsonics, vous acceptez de ne pas utiliser le bot pour diffuser des contenus à caractère politique, religieux, incitant à la haine, publicitaire ou pornographique.</p>
|
||||
<p>En accédant à cette plateforme et en vous connectant via Discord <Icon icon="fa-solid fa-copyright"/>, vous acceptez automatiquement les présentes conditions d’utilisation ainsi que la <strong>politique de confidentialité</strong>.
|
||||
Les données fournies par Discord sont utilisées uniquement pour assurer le bon fonctionnement du service. Vous pouvez à tout moment demander la suppression de vos données en contactant <strong>Raphix</strong> (<code>raphixscrap</code>) ou bien en allant dans les paramètres de votre compte en utilisant le petit engrenage à coté de votre photo de profil et en cliquant sur le boutton "Supprimer mon compte".</p>
|
||||
<p>En vous connectant, vous acceptez que votre identifiant Discord (ID et @) soit gardé à jamais pour des raisons de sécurité (bannissement). Cependant toutes les playlists crées, votre historique de musique, les informations seront supprimés.</p>
|
||||
<p>Tout acte de sabotage, de tentative de perturbation ou de dégradation intentionnelle du bot entraînera un bannissement immédiat et définitif du site.</p> <p><strong>Subsonics est un outil privé</strong>, non destiné à une utilisation publique ou commerciale.</p>
|
||||
<p>Les musiques disponibles via le service sont diffusées à partir des plateformes suivantes : <strong>YouTube</strong>, <strong>SoundCloud</strong> et <strong>Spotify</strong>.
|
||||
Subsonics ne stocke aucun fichier audio. Vous bénéficiez uniquement d’un droit d’accès au service et à l’écoute du contenu, mais <strong>Raphix</strong> ne fournit ni la provenance, ni les autorisations légales liées à l'exploitation des œuvres. Il vous revient d’obtenir les autorisations nécessaires auprès des ayants droit si nécessaire.</p>
|
||||
<p>En utilisant Subsonics, vous vous engagez à ne pas diffuser de contenu :</p>
|
||||
<ul> <li>illégal, violent, haineux, discriminatoire ou à caractère sexuel explicite,</li>
|
||||
<li>à caractère politique, religieux, publicitaire, incitant à la haine ou pornographique.</li> </ul>
|
||||
<p>Toute infraction à ces règles pourra entraîner des sanctions immédiates, y compris l’exclusion définitive du service.</p>
|
||||
</div>
|
||||
|
||||
</Box>
|
||||
@@ -40,4 +44,10 @@ import Button from '@/components/UI/Button.vue';
|
||||
color: var(--text-secondary);
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 1.6em;
|
||||
margin-bottom: 10px;
|
||||
color: var(--text);
|
||||
}
|
||||
</style>
|
Reference in New Issue
Block a user