Compare commits
11 Commits
b3c655df58
...
fetch-test
Author | SHA1 | Date | |
---|---|---|---|
b73865157d | |||
ac2fb16703 | |||
ef29ef3d82 | |||
4d1f4ea120 | |||
6bfa1547f9 | |||
f3511277f9 | |||
de18d4957b | |||
c10bb714a9 | |||
117490fc3c | |||
ed23344d78 | |||
8e9f9d3825 |
BIN
src/assets/BrainBlast-Ai-Upscaled.jpg
Normal file
BIN
src/assets/BrainBlast-Ai-Upscaled.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.7 MiB |
BIN
src/assets/BrainBlast-For-HomeView-Alpha.png
Normal file
BIN
src/assets/BrainBlast-For-HomeView-Alpha.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 MiB |
BIN
src/assets/BrainBlast-For-HomeView.jpg
Normal file
BIN
src/assets/BrainBlast-For-HomeView.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 768 KiB |
36
src/components/CardControl.vue
Normal file
36
src/components/CardControl.vue
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<template>
|
||||||
|
<v-card tile outlined class="card">
|
||||||
|
<v-card-title class="card__title primary">
|
||||||
|
<v-icon left class="white--text pr-5 pl-2" size="50">mdi-camera-control</v-icon>
|
||||||
|
Contrôles
|
||||||
|
</v-card-title>
|
||||||
|
<v-container class="text-center">
|
||||||
|
<v-row justify="center">
|
||||||
|
<v-col cols="12" sm="6" md="5" class="mt-4">
|
||||||
|
<mqtt-button width="240" height="130" class="btn xs12 sm6 md3" topic="/display/control" message="previous">
|
||||||
|
<v-icon left size="100">mdi-skip-previous</v-icon>
|
||||||
|
</mqtt-button>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="12" sm="6" md="5" class="mt-4">
|
||||||
|
<mqtt-button width="240" height="130" class="btn card xs12 sm6 md3" topic="/display/control" message="next">
|
||||||
|
<v-icon left size="100">mdi-skip-next</v-icon>
|
||||||
|
</mqtt-button>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="12" sm="6" md="5" class="mb-4">
|
||||||
|
<mqtt-button width="240" height="130" class="btn card xs12 sm6 md3" topic="/display/control" message="pause">
|
||||||
|
<v-icon left size="100">mdi-pause</v-icon>
|
||||||
|
</mqtt-button>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="12" sm="6" md="5" class="mb-4">
|
||||||
|
<mqtt-button width="240" height="130" class="btn card xs12 sm6 md3 " topic="/display/control" message="play">
|
||||||
|
<v-icon left size="100">mdi-play</v-icon>
|
||||||
|
</mqtt-button>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-container>
|
||||||
|
</v-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import MqttButton from './MqttButton.vue';
|
||||||
|
</script>
|
30
src/components/CardSolution.vue
Normal file
30
src/components/CardSolution.vue
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<template>
|
||||||
|
<v-card tile outlined class="card">
|
||||||
|
<v-card-title class="card__title feedback">
|
||||||
|
<v-icon left class="white--text pr-5 pl-2" size="50">mdi-play-network-outline</v-icon>
|
||||||
|
Solution
|
||||||
|
</v-card-title>
|
||||||
|
<v-container class="text-center">
|
||||||
|
<v-row justify="center">
|
||||||
|
<v-container class="text-center">
|
||||||
|
<!-- Utilisation de styles CSS personnalisés pour centrer l'image -->
|
||||||
|
<v-img width="450" src="https://c4.wallpaperflare.com/wallpaper/908/893/291/funny-middle-finger-black-background-wallpaper-preview.jpg" style="margin: 0 auto;"></v-img>
|
||||||
|
</v-container>
|
||||||
|
</v-row>
|
||||||
|
</v-container>
|
||||||
|
</v-card>
|
||||||
|
</template>
|
||||||
|
<style>
|
||||||
|
@media (min-width: 1024px) {
|
||||||
|
.image-container {
|
||||||
|
width: 300px;
|
||||||
|
overflow: hidden; /* Pour masquer le dépassement de l'image */
|
||||||
|
border: 1px solid #ccc; /* Bordure de l'image */
|
||||||
|
}
|
||||||
|
.image-container img {
|
||||||
|
width: 100%; /* Pour remplir complètement le conteneur */
|
||||||
|
height: auto; /* Pour maintenir le ratio d'aspect de l'image */
|
||||||
|
display: block; /* Pour éviter l'espace réservé pour les images */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
43
src/components/CardSoundboard.vue
Normal file
43
src/components/CardSoundboard.vue
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<template>
|
||||||
|
<v-card tile outlined class="card" color="">
|
||||||
|
<v-card-title class="card__title primary">
|
||||||
|
<v-icon left class="white--text pr-5 pl-2" size="50">mdi-music-box-multiple</v-icon>
|
||||||
|
Soundboard
|
||||||
|
</v-card-title>
|
||||||
|
<v-container class="text-center">
|
||||||
|
<v-row justify="center">
|
||||||
|
<v-col cols="12" sm="6" md="4" class="mt-4">
|
||||||
|
<mqtt-button class="btn" width="200" height="130" topic="/sound/playsound" message="good-response" rounded>
|
||||||
|
<v-icon size="100">mdi-check-circle-outline</v-icon>
|
||||||
|
</mqtt-button>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="12" sm="6" md="4" class="mt-4">
|
||||||
|
<mqtt-button class="btn" width="200" height="130" topic="/sound/playsound" message="bad-response" rounded>
|
||||||
|
<v-icon size="100">mdi-close-circle-outline</v-icon>
|
||||||
|
</mqtt-button>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="12" sm="6" md="4" class="mt-4">
|
||||||
|
<mqtt-button class="btn" width="200" height="130" topic="/sound/playsound" message="timer" rounded>
|
||||||
|
<v-icon size="100">mdi-timer-outline</v-icon>
|
||||||
|
</mqtt-button>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
<v-row justify="center">
|
||||||
|
<v-col cols="12" sm="6" md="4" class="mb-4">
|
||||||
|
<mqtt-button class="btn" width="220" height="130" topic="/sound/playsound" message="applause" rounded>
|
||||||
|
<v-icon size="100">mdi-human-handsup</v-icon>
|
||||||
|
</mqtt-button>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="12" sm="6" md="s" class="mb-4">
|
||||||
|
<mqtt-button class="btn" width="220" height="130" topic="/sound/playsound" message="bell" rounded>
|
||||||
|
<v-icon size="100">mdi-bell-outline</v-icon>
|
||||||
|
</mqtt-button>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-container>
|
||||||
|
</v-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import MqttButton from './MqttButton.vue';
|
||||||
|
</script>
|
22
src/components/MqttButton.vue
Normal file
22
src/components/MqttButton.vue
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<template>
|
||||||
|
<v-btn @click="_publishMessage" v-bind="$attrs">
|
||||||
|
<slot/>
|
||||||
|
</v-btn>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { publishMessage } from '@/services/mqttService'
|
||||||
|
import { ref, defineProps } from 'vue'
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
topic: String,
|
||||||
|
message: null
|
||||||
|
})
|
||||||
|
|
||||||
|
const disabled = ref(false)
|
||||||
|
|
||||||
|
const _publishMessage = () => {
|
||||||
|
publishMessage(props.topic, JSON.stringify(props.message))
|
||||||
|
disabled.value = true
|
||||||
|
}
|
||||||
|
</script>
|
@ -1,86 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="item">
|
|
||||||
<i>
|
|
||||||
<slot name="icon"></slot>
|
|
||||||
</i>
|
|
||||||
<div class="details">
|
|
||||||
<h3>
|
|
||||||
<slot name="heading"></slot>
|
|
||||||
</h3>
|
|
||||||
<slot></slot>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
.item {
|
|
||||||
margin-top: 2rem;
|
|
||||||
display: flex;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.details {
|
|
||||||
flex: 1;
|
|
||||||
margin-left: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
i {
|
|
||||||
display: flex;
|
|
||||||
place-items: center;
|
|
||||||
place-content: center;
|
|
||||||
width: 32px;
|
|
||||||
height: 32px;
|
|
||||||
color: var(--color-text);
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
font-size: 1.2rem;
|
|
||||||
font-weight: 500;
|
|
||||||
margin-bottom: 0.4rem;
|
|
||||||
color: var(--color-heading);
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 1024px) {
|
|
||||||
.item {
|
|
||||||
margin-top: 0;
|
|
||||||
padding: 0.4rem 0 1rem calc(var(--section-gap) / 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
i {
|
|
||||||
top: calc(50% - 25px);
|
|
||||||
left: -26px;
|
|
||||||
position: absolute;
|
|
||||||
border: 1px solid var(--color-border);
|
|
||||||
background: var(--color-background);
|
|
||||||
border-radius: 8px;
|
|
||||||
width: 50px;
|
|
||||||
height: 50px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item:before {
|
|
||||||
content: ' ';
|
|
||||||
border-left: 1px solid var(--color-border);
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
bottom: calc(50% + 25px);
|
|
||||||
height: calc(50% - 25px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.item:after {
|
|
||||||
content: ' ';
|
|
||||||
border-left: 1px solid var(--color-border);
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
top: calc(50% + 25px);
|
|
||||||
height: calc(50% - 25px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.item:first-of-type:before {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.item:last-of-type:after {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
1
src/fetch.txt
Normal file
1
src/fetch.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
test
|
@ -1,126 +1,42 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-container>
|
<v-container>
|
||||||
<v-row no-gutters>
|
<v-row no-gutters>
|
||||||
<v-col class="align-start">
|
<v-col class="align-start">
|
||||||
<v-card tile outlined class="card">
|
<card-control />
|
||||||
<v-card-title class="card__title primary">
|
</v-col>
|
||||||
<v-icon left class="white--text pr-5 pl-2" size="50">mdi-camera-control</v-icon>
|
<v-col class="pl-3">
|
||||||
Contrôles
|
<card-soundboard />
|
||||||
</v-card-title>
|
</v-col>
|
||||||
<v-container class="text-center">
|
</v-row>
|
||||||
<v-row justify="center">
|
</v-container>
|
||||||
<v-col cols="12" sm="6" md="5" class="mt-4">
|
<v-container>
|
||||||
<v-btn width="240" height="130" class="btn card xs12 sm6 md3">
|
<v-row no-gutters>
|
||||||
<v-icon left size="100">mdi-skip-previous</v-icon>
|
<v-col>
|
||||||
</v-btn>
|
<card-solution />
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col cols="12" sm="6" md="5" class="mt-4">
|
</v-row>
|
||||||
<v-btn width="240" height="130" class="btn card xs12 sm6 md3">
|
</v-container>
|
||||||
<v-icon left size="100">mdi-skip-next</v-icon>
|
</template>
|
||||||
</v-btn>
|
|
||||||
</v-col>
|
|
||||||
<v-col cols="12" sm="6" md="5" class="mb-4">
|
|
||||||
<v-btn width="240" height="130" class="btn card xs12 sm6 md3">
|
|
||||||
<v-icon left size="100">mdi-pause</v-icon>
|
|
||||||
</v-btn>
|
|
||||||
</v-col>
|
|
||||||
<v-col cols="12" sm="6" md="5" class="mb-4">
|
|
||||||
<v-btn width="240" height="130" class="btn card xs12 sm6 md3">
|
|
||||||
<v-icon left size="100">mdi-play</v-icon>
|
|
||||||
</v-btn>
|
|
||||||
</v-col>
|
|
||||||
</v-row>
|
|
||||||
</v-container>
|
|
||||||
</v-card>
|
|
||||||
</v-col>
|
|
||||||
|
|
||||||
<v-col class="pl-3">
|
<script setup>
|
||||||
<v-card tile outlined class="card" color="">
|
|
||||||
<v-card-title class="card__title primary">
|
|
||||||
<v-icon left class="white--text pr-5 pl-2" size="50">mdi-music-box-multiple</v-icon>
|
|
||||||
Soundboard
|
|
||||||
</v-card-title>
|
|
||||||
<v-container class="text-center">
|
|
||||||
<v-row justify="center">
|
|
||||||
<v-col cols="12" sm="6" md="4" class="mt-4">
|
|
||||||
<v-btn class="card" width="200" height="130" @click="" rounded>
|
|
||||||
<v-icon size="100">mdi-check-circle-outline</v-icon>
|
|
||||||
</v-btn>
|
|
||||||
</v-col>
|
|
||||||
<v-col cols="12" sm="6" md="4" class="mt-4">
|
|
||||||
<v-btn class="card" width="200" height="130" @click="" rounded>
|
|
||||||
<v-icon size="100">mdi-close-circle-outline</v-icon>
|
|
||||||
</v-btn>
|
|
||||||
</v-col>
|
|
||||||
<v-col cols="12" sm="6" md="4" class="mt-4">
|
|
||||||
<v-btn class="card" width="200" height="130" @click="" rounded>
|
|
||||||
<v-icon size="100">mdi-timer-outline</v-icon>
|
|
||||||
</v-btn>
|
|
||||||
</v-col>
|
|
||||||
</v-row>
|
|
||||||
<v-row justify="center">
|
|
||||||
<v-col cols="12" sm="6" md="4" class="mb-4">
|
|
||||||
<v-btn class="card" width="220" height="130" @click="" rounded>
|
|
||||||
<v-icon size="100">mdi-human-handsup</v-icon>
|
|
||||||
</v-btn>
|
|
||||||
</v-col>
|
|
||||||
<v-col cols="12" sm="6" md="s" class="mb-4">
|
|
||||||
<v-btn class="card" width="220" height="130" @click="" rounded>
|
|
||||||
<v-icon size="100">mdi-bell-outline</v-icon>
|
|
||||||
</v-btn>
|
|
||||||
</v-col>
|
|
||||||
</v-row>
|
|
||||||
</v-container>
|
|
||||||
</v-card>
|
|
||||||
</v-col>
|
|
||||||
</v-row>
|
|
||||||
</v-container>
|
|
||||||
<v-container>
|
|
||||||
<v-row no-gutters>
|
|
||||||
<v-col>
|
|
||||||
<v-card tile outlined class="card">
|
|
||||||
<v-card-title class="card__title feedback">
|
|
||||||
<v-icon left class="white--text pr-5 pl-2" size="50">mdi-play-network-outline</v-icon>
|
|
||||||
Solution
|
|
||||||
</v-card-title>
|
|
||||||
<v-container class="text-center">
|
|
||||||
<v-row justify="center">
|
|
||||||
<v-container class="text-center">
|
|
||||||
<!-- Utilisation de styles CSS personnalisés pour centrer l'image -->
|
|
||||||
<v-img width="450" src="https://c4.wallpaperflare.com/wallpaper/908/893/291/funny-middle-finger-black-background-wallpaper-preview.jpg" style="margin: 0 auto;"></v-img>
|
|
||||||
</v-container>
|
|
||||||
</v-row>
|
|
||||||
</v-container>
|
|
||||||
</v-card>
|
|
||||||
</v-col>
|
|
||||||
</v-row>
|
|
||||||
</v-container>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style>
|
import CardSolution from '@/components/CardSolution.vue'
|
||||||
@media (min-width: 1024px) {
|
import CardControl from '@/components/CardControl.vue'
|
||||||
.card__title.primary {
|
import CardSoundboard from '@/components/CardSoundboard.vue';
|
||||||
background-color: #2979FF; /* Changez la couleur en fonction de votre thème */
|
|
||||||
}
|
</script>
|
||||||
.card__title.feedback {
|
|
||||||
background-color: #2E7D32; /* Changez la couleur en fonction de votre thème */
|
<style>
|
||||||
}
|
@media (min-width: 1024px) {
|
||||||
.btn{
|
.card__title.primary {
|
||||||
border-radius:50px!important;
|
background-color: #2979FF; /* Changez la couleur en fonction de votre thème */
|
||||||
}
|
|
||||||
.card {
|
|
||||||
background-color: #2979FF; /* Changez la couleur en fonction de votre thème */
|
|
||||||
}
|
|
||||||
.image-container {
|
|
||||||
width: 300px;
|
|
||||||
overflow: hidden; /* Pour masquer le dépassement de l'image */
|
|
||||||
border: 1px solid #ccc; /* Bordure de l'image */
|
|
||||||
}
|
|
||||||
.image-container img {
|
|
||||||
width: 100%; /* Pour remplir complètement le conteneur */
|
|
||||||
height: auto; /* Pour maintenir le ratio d'aspect de l'image */
|
|
||||||
display: block; /* Pour éviter l'espace réservé pour les images */
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
</style>
|
.card__title.feedback {
|
||||||
|
background-color: #2E7D32; /* Changez la couleur en fonction de votre thème */
|
||||||
|
}
|
||||||
|
.btn{
|
||||||
|
border-radius:30px!important;
|
||||||
|
background-color: #2979FF; /* Changez la couleur en fonction de votre thème */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<v-img width="1645" src="../assets/BrainBlast-For-HomeView-Alpha.png"></v-img>
|
||||||
<h1>Bienvenue sur BrainBlast !</h1>
|
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'VotreComposant', // Assurez-vous de donner un nom à votre composant
|
||||||
|
// Votre logique JavaScript ici, par exemple des méthodes, des données, etc.
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user