Merged PR 84: Profile into main
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<html lang="en" class="dark">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
|
||||
20
package-lock.json
generated
20
package-lock.json
generated
@@ -1286,11 +1286,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/braces": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
||||
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
||||
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
||||
"dependencies": {
|
||||
"fill-range": "^7.0.1"
|
||||
"fill-range": "^7.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
@@ -2013,9 +2013,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/fill-range": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
||||
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
||||
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
||||
"dependencies": {
|
||||
"to-regex-range": "^5.0.1"
|
||||
},
|
||||
@@ -2060,9 +2060,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/follow-redirects": {
|
||||
"version": "1.15.5",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz",
|
||||
"integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
|
||||
"version": "1.15.6",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
|
||||
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
|
||||
BIN
public/images/hutopymedia/icons/logohutopy.png
Normal file
BIN
public/images/hutopymedia/icons/logohutopy.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
BIN
public/medias/hutopy.png
Normal file
BIN
public/medias/hutopy.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 64 KiB |
94
src/App.vue
94
src/App.vue
@@ -1,11 +1,101 @@
|
||||
<template>
|
||||
<v-app>
|
||||
<RouterView>
|
||||
<div class="m-0 flex flex-column h-screen">
|
||||
<Header @toggle-sidebar="toggleSidebar" class="fixed w-full z-50 top-0 p-2"></Header>
|
||||
<div class="flex flex-row relative">
|
||||
<div
|
||||
@mouseenter="openSidebar"
|
||||
class="fixed h-full w-2 z-20"
|
||||
style="background: transparent;"
|
||||
></div>
|
||||
|
||||
<transition name="slide-fade">
|
||||
<div v-show="!hideSideBar"
|
||||
@mouseleave="startCloseSidebarTimer"
|
||||
@mouseenter="clearCloseSidebarTimer"
|
||||
class=" fixed h-full min-w-60 border-r-2 bg-white z-30 transition-transform duration-700">
|
||||
<SideBar></SideBar>
|
||||
</div>
|
||||
</transition>
|
||||
|
||||
</RouterView>
|
||||
<div class="flex flex-col w-full md:ml-1 mt-16" style="background-color: #f4f4f4">
|
||||
<RouterView></RouterView>
|
||||
<Footer></Footer>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</v-app>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import Header from "@/views/main/Header.vue";
|
||||
import Footer from "@/views/main/Footer.vue";
|
||||
import SideBar from "@/views/main/SideBar.vue";
|
||||
import {ref, onMounted, onUnmounted} from 'vue';
|
||||
import StripePayment from "@/views/StripePayment.vue";
|
||||
import {eventBus} from '@/eventBus.js';
|
||||
|
||||
const hideSideBar = ref(false);
|
||||
const showPopup = ref(false);
|
||||
const popup = ref(null);
|
||||
const popupButton = ref(null);
|
||||
let closeSidebarTimer = null;
|
||||
|
||||
const toggleSidebar = () => {
|
||||
hideSideBar.value = !hideSideBar.value;
|
||||
};
|
||||
|
||||
const openSidebar = () => {
|
||||
clearCloseSidebarTimer();
|
||||
hideSideBar.value = false;
|
||||
};
|
||||
|
||||
const startCloseSidebarTimer = () => {
|
||||
closeSidebarTimer = setTimeout(() => {
|
||||
hideSideBar.value = true;
|
||||
}, 500);
|
||||
};
|
||||
|
||||
const clearCloseSidebarTimer = () => {
|
||||
clearTimeout(closeSidebarTimer);
|
||||
};
|
||||
|
||||
const handleClickOutside = (event) => {
|
||||
if (
|
||||
popup.value &&
|
||||
!popup.value.contains(event.target) &&
|
||||
!popupButton.value.contains(event.target) &&
|
||||
!event.target.closest('.bg-purple')
|
||||
) {
|
||||
showPopup.value = false;
|
||||
}
|
||||
if (
|
||||
!event.target.closest('.w-48') &&
|
||||
!event.target.closest('.v-app-bar-nav-icon')
|
||||
) {
|
||||
hideSideBar.value = true;
|
||||
}
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
document.addEventListener('click', handleClickOutside);
|
||||
eventBus.value.toggleSidebar = toggleSidebar;
|
||||
});
|
||||
|
||||
onUnmounted(() => {
|
||||
document.removeEventListener('click', handleClickOutside);
|
||||
eventBus.value.toggleSidebar = null;
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* Do not remove. Used for animation */
|
||||
.slide-fade-enter-active, .slide-fade-leave-active {
|
||||
transition: transform 0.7s ease, opacity 0.7s ease;
|
||||
}
|
||||
|
||||
.slide-fade-enter, .slide-fade-leave-to {
|
||||
transform: translateX(-100%);
|
||||
opacity: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
3
src/eventBus.js
Normal file
3
src/eventBus.js
Normal file
@@ -0,0 +1,3 @@
|
||||
import { ref } from 'vue';
|
||||
|
||||
export const eventBus = ref({});
|
||||
@@ -1,265 +0,0 @@
|
||||
<template>
|
||||
|
||||
<body style="background-color: #f4f4f4;">
|
||||
<!-- PC Version -->
|
||||
<v-card style="z-index: 1000; background-color: #ffff;" class="hidden-sm-and-down" elevation="5">
|
||||
<v-container style="z-index: 2000; margin-bottom: .8%; margin-top: -.3%; margin-right: 1%;">
|
||||
<v-row justify="end" style="margin-top: .2%; margin-bottom: -1.2%;">
|
||||
<v-menu>
|
||||
<template v-slot:activator="{ props }">
|
||||
<v-row>
|
||||
<!-- Colonne de droite -->
|
||||
<v-col class="text-right d-flex align-center justify-end">
|
||||
<div class="d-flex align-center">
|
||||
<img src="/images/usersmedia/anonyme/profilepictures/profileAnonymeSquare.png"
|
||||
class="header-profile-icon mr-2" alt="Logo">
|
||||
<v-btn flat style="min-width: 200px; font-size: 1.3rem;" dark v-bind="props" ref="walletActivator">
|
||||
{{ currentUserName }}
|
||||
</v-btn>
|
||||
</div>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</template>
|
||||
|
||||
<!-- Dropdown Menu Profile/Connection -->
|
||||
<v-list style="padding: 0;">
|
||||
<v-list-item v-if="!currentUser">
|
||||
<router-link :to="{ name: 'contact' }">
|
||||
<v-btn class="full-width-btn" flat>Inscription</v-btn>
|
||||
</router-link>
|
||||
</v-list-item>
|
||||
<v-list-item v-if="currentUser">
|
||||
<v-btn @click="openWalletDialog" class="full-width-btn" flat>
|
||||
<v-icon left class="mr-4">mdi-wallet</v-icon>
|
||||
<p>Bourse</p>
|
||||
</v-btn>
|
||||
</v-list-item>
|
||||
<v-list-item v-if="currentUser">
|
||||
<router-link :to="{ name: 'yourprofile' }">
|
||||
<v-btn class="full-width-btn" flat>
|
||||
<v-icon left class="mr-4">mdi-account-details</v-icon>
|
||||
<p>Mon profil</p>
|
||||
</v-btn>
|
||||
</router-link>
|
||||
</v-list-item>
|
||||
|
||||
<v-list-item v-if="currentUser">
|
||||
<v-btn @click="logout" class="full-width-btn" flat>Déconnecter</v-btn>
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
</v-menu>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</v-card>
|
||||
|
||||
<!-- Mobile version -->
|
||||
<v-card style="z-index: 2000; background-color: #f4f4f4;" class="hidden-md-and-up">
|
||||
<v-app-bar app>
|
||||
<v-app-bar-nav-icon @click.stop="drawer = !drawer"></v-app-bar-nav-icon>
|
||||
<v-row>
|
||||
<v-col cols="11" class="d-flex align-center justify-center">
|
||||
<!-- Logo Top bar -->
|
||||
<img src="/images/hutopymedia/banners/hutopy.png" class="mobile-header" alt="Logo">
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-app-bar>
|
||||
|
||||
<!-- Left-side Menu -->
|
||||
<v-navigation-drawer v-model="drawer" temporary>
|
||||
<v-list>
|
||||
<v-list-item :title="currentUserName">
|
||||
<template v-slot:prepend>
|
||||
<img src="/images/usersmedia/anonyme/profilepictures/profileAnonymeSquare.png"
|
||||
class="mobile-profile-picture mini-profile-picture" alt="Avatar">
|
||||
</template>
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
|
||||
<!-- Left-side Button -->
|
||||
<v-divider></v-divider>
|
||||
<v-list density="compact" nav>
|
||||
<h1 class="h1-navigation">Navigation</h1>
|
||||
<router-link :to="{ name: 'home' }">
|
||||
<v-list-item prepend-icon="mdi-home" title="Accueil" value="home"></v-list-item>
|
||||
</router-link>
|
||||
<router-link :to="{ name: 'userbrowser' }">
|
||||
<v-list-item prepend-icon="mdi-account-multiple" title="Créateurs" value="friends"></v-list-item>
|
||||
</router-link>
|
||||
<router-link :to="{ name: 'contact' }">
|
||||
<v-list-item prepend-icon="mdi-handshake" title="Aidez-nous" value="friends"></v-list-item>
|
||||
</router-link>
|
||||
|
||||
<router-link :to="{ name: 'yourprofile' }">
|
||||
<v-list-item prepend-icon="mdi-account-details" title="Mon profil" value="friends"> </v-list-item>
|
||||
</router-link>
|
||||
|
||||
|
||||
<v-list-item v-if="currentUser" @click="openWalletDialog" prepend-icon="mdi-wallet" title="Bourse"
|
||||
value="wallet"></v-list-item>
|
||||
|
||||
<v-list-item v-if="currentUser" @click="logout" style="margin-top: 110%;" prepend-icon="mdi-logout"
|
||||
title="Déconnecter" value="logout"></v-list-item>
|
||||
</v-list>
|
||||
</v-navigation-drawer>
|
||||
</v-card>
|
||||
|
||||
<!-- Wallet Modal -->
|
||||
<v-dialog v-model="walletDialog" transition="dialog-top-transition" width="auto">
|
||||
<v-card style="border-radius: 30px;">
|
||||
<div class="text-center" style="margin-top: 2%; margin-bottom: 2%;">
|
||||
<v-icon left size="48">mdi-wallet</v-icon>
|
||||
<v-toolbar title="Portefeuille"
|
||||
style="color: white; width: 750px; background-color: #a30e79; margin-bottom: -6%;"></v-toolbar>
|
||||
</div>
|
||||
|
||||
<v-card-text class="text-h1 pa-12">
|
||||
<v-row>
|
||||
<v-col>
|
||||
<v-row>
|
||||
<v-col class="text-center">
|
||||
<h1 style="margin-bottom: -4px; font-size: 1.3rem;">Balance actuelle</h1>
|
||||
<h1 style=" margin-bottom: -45px; font-size: 3.5rem;">{{ currentUser.totalBalance }}$</h1>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-card-text>
|
||||
|
||||
<v-data-table-virtual fixed-header :headers="headers" :items="currentUser.userTransactions" height="250"
|
||||
item-value="name">
|
||||
</v-data-table-virtual>
|
||||
|
||||
<v-dialog activator="#activator-target" max-width="650">
|
||||
<template v-slot:default="{ isActive }">
|
||||
<v-card prepend-icon="mdi-file-document-edit" text="Découvrez Hutopy, l'endroit où la valorisation de votre travail atteint son apogée. Avec une commission réduite à seulement 9 %, notre engagement envers votre succès est palpable. Chaque pourcentage prélevé est réinvesti avec soin pour catalyser votre croissance : du développement de fonctionnalités innovantes à la maintenance d'une infrastructure technologique de pointe, en passant par un support utilisateur de premier ordre. Notre objectif ? Amplifier votre expansion et garantir une expérience utilisateur sans précédent.
|
||||
Pour chaque transaction, un frais minime assure la sécurité et la fiabilité de vos paiements, grâce à un partenaire de confiance à la renommée mondiale. Ce dernier sécurise pour des milliards en transactionchaque année pour une diversité d'entreprises, allant des startups dynamiques aux conglomerats établis. Ce gage de sécurité est disponible pour une modique somme : 2,9 % plus 0,30 $ par transaction, une petite contribution pour la tranquillité d'esprit et la protection de vos revenus.
|
||||
Notre modèle tarifaire a été pensé dans un esprit de simplicité et de transparence, avec l'ambition ultime d'optimiser vos gains. Chez Hutopy, la notion de partenariat prend tout son sens : votre épanouissement est au cœur de nos préoccupations. Bénéficiez d'une plateforme qui élargit votre horizon créatif et entrepreneurial, tout en vous assurant que vos intérêts sont précieusement gardés.
|
||||
Hutopy est plus qu'une plateforme ; c'est une communauté où la transformation de la passion en profit devient réalité, grâce au soutien indéfectible d'une équipe dévouée à enrichir votre parcours. Nous vous invitons à nous rejoindre pour explorer ensemble les avenues de succès que nous pouvons emprunter ensemble, tout en vous garantissant une part conséquente de vos revenus. Embarquez dans une aventure où votre présence en ligne ne connaît pas de limites, soutenue par Hutopy, votre allié dans la quête du succès.
|
||||
" title="Comission">
|
||||
<template v-slot:actions>
|
||||
<v-btn class="ml-auto" text="Close" @click="isActive.value = false"></v-btn>
|
||||
</template>
|
||||
</v-card>
|
||||
</template>
|
||||
</v-dialog>
|
||||
|
||||
<v-card-actions class="justify-center">
|
||||
<v-row justify="center">
|
||||
<v-btn id="activator-target">
|
||||
Comisssion
|
||||
</v-btn>
|
||||
<v-btn @click="walletDialog = false" text="Fermer"></v-btn>
|
||||
</v-row>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
</body>
|
||||
</template>
|
||||
|
||||
<script async setup>
|
||||
import MyUserModel from "@/models/myUserModel.js";
|
||||
import { useClient } from "@/plugins/api.js";
|
||||
import { onBeforeMount, ref } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
const client = useClient();
|
||||
const router = useRouter();
|
||||
|
||||
const drawer = ref(false);
|
||||
const currentUserName = ref("INVITÉ");
|
||||
const walletDialog = ref(false);
|
||||
let currentUser = null;
|
||||
|
||||
const headers = ref([
|
||||
{ title: 'Montant', value: 'amount', width: '20%', key: "amount" },
|
||||
{ title: 'Date', value: 'created', width: '20%', key: "created" },
|
||||
{ title: 'Message', value: 'tipMessage', width: '60%' }
|
||||
]);
|
||||
|
||||
onBeforeMount(async () => {
|
||||
try {
|
||||
const myUser = await client.get("/api/GetMyUser");
|
||||
const currentUserModel = MyUserModel.createFromApiResult(myUser.data);
|
||||
currentUser = currentUserModel;
|
||||
currentUserName.value = currentUserModel.firstName + " " + currentUserModel.lastName;
|
||||
} catch (error) {
|
||||
console.log("User not logged");
|
||||
}
|
||||
});
|
||||
|
||||
function logout() {
|
||||
localStorage.removeItem('jwt');
|
||||
currentUser = null;
|
||||
currentUserName.value = "INVITÉ";
|
||||
router.push('/');
|
||||
}
|
||||
|
||||
function openWalletDialog() {
|
||||
walletDialog.value = true;
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.full-width-btn {
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
padding-left: 24px;
|
||||
padding-right: 24px;
|
||||
z-index: 1001;
|
||||
}
|
||||
|
||||
.mini-profile-picture {
|
||||
border-radius: 100px;
|
||||
}
|
||||
|
||||
.header-profile-icon {
|
||||
height: 60px;
|
||||
width: 60px;
|
||||
border-radius: 50px;
|
||||
border: 2px solid #a30e79;
|
||||
}
|
||||
|
||||
.mobile-profile-picture {
|
||||
height: 40px;
|
||||
border-radius: 50px;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
|
||||
border: 2px solid #a30e79;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.header-banner {
|
||||
border-top: 5px solid rgba(107, 0, 101, 1);
|
||||
margin-top: 15%;
|
||||
}
|
||||
|
||||
.social-container {
|
||||
background-color: #006d77;
|
||||
margin-top: -20%;
|
||||
font-size: 1.4rem;
|
||||
font-weight: 800;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
background-color: #0baab2;
|
||||
font-size: 1.4rem;
|
||||
font-weight: 800;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.mobile-header {
|
||||
height: 50px;
|
||||
width: auto;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.mobile-navigation-container {
|
||||
background-color: #a30e79;
|
||||
}
|
||||
|
||||
.h1-navigation {
|
||||
padding-left: 20%;
|
||||
font-size: 1.4rem;
|
||||
font-weight: 800;
|
||||
}
|
||||
</style>
|
||||
@@ -1,155 +0,0 @@
|
||||
<template>
|
||||
|
||||
<body style="background-color: #f4f4f4;">
|
||||
<v-container style="background-color: #f4f4f4;">
|
||||
<div style="background-color: #f4f4f4; min-height: 10vh; display: flex; flex-direction: column;"
|
||||
class="footer-align">
|
||||
|
||||
<!-- Hutopy footer logo -->
|
||||
<v-container style="background-color: #f4f4f4">
|
||||
<v-row justify="center" style="margin-top: 30px;">
|
||||
<v-col cols="5" lg="5" md="5" sm="12" xs="7">
|
||||
<router-link :to="{ name: 'home' }">
|
||||
<v-img src="/images/hutopymedia/banners/hutopy.png" class="hutopy-footer-picture"></v-img>
|
||||
</router-link>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
<!-- Hutopy Social network links -->
|
||||
<v-container>
|
||||
<!-- Facebook link -->
|
||||
<v-row justify="center">
|
||||
<v-col cols="auto">
|
||||
<a href="https://www.facebook.com/profile.php?id=61556819217561">
|
||||
<img class="icons" src="/images/hutopymedia/icons/pink/facebookpink.png" alt="Description image 2">
|
||||
</a>
|
||||
</v-col>
|
||||
|
||||
<!-- Instagram link -->
|
||||
<v-col cols="auto">
|
||||
<a href="https://www.instagram.com/hutopy.inc/">
|
||||
<img src="/images/hutopymedia/icons/pink/instagrampink.png" alt="Description image 3" class="icons">
|
||||
</a>
|
||||
</v-col>
|
||||
|
||||
<!-- Need X Account -->
|
||||
<v-col cols="auto">
|
||||
<a href="https://twitter.com/Hutopyinc">
|
||||
<img src="/images/hutopymedia/icons/pink/xpink.png" alt="Description image 1" class="icons">
|
||||
</a>
|
||||
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
<!-- Loop for social network links -->
|
||||
<v-container class="text-center" style="flex-grow: 1;">
|
||||
<router-link v-for="link in links" :key="link" :to="getLinkUrl(link)"
|
||||
class="mx-2 text-decoration-none text-black">
|
||||
<v-btn class="black--text" rounded="xl" variant="text">{{ link }}</v-btn>
|
||||
</router-link>
|
||||
</v-container>
|
||||
|
||||
<v-container class="text-black text-center ">
|
||||
{{ new Date().getFullYear() }} — <strong>Hutopy v.01</strong>
|
||||
</v-container>
|
||||
|
||||
</div>
|
||||
</v-container>
|
||||
</body>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<script setup>
|
||||
const links = [
|
||||
'Aide & Contact',
|
||||
'FAQ',
|
||||
'Guide pour les créateurs',
|
||||
'Conditions générales',
|
||||
'Politique de Contenu',
|
||||
'À Propos',
|
||||
'Frais'
|
||||
];
|
||||
|
||||
const linkRoutes = {
|
||||
'Aide & Contact': { name: 'helpandcontact' },
|
||||
'FAQ': { name: 'FAQ' },
|
||||
'Guide pour les créateurs': { name: 'guideforcreators' },
|
||||
'Conditions générales': { name: 'termsandconditions' },
|
||||
'Politique de Contenu': { name: 'contentpolicy' },
|
||||
'À Propos': { name: 'about' },
|
||||
'Frais': { name: 'frais' }
|
||||
};
|
||||
|
||||
// If broken link, redirect to home page.
|
||||
const getLinkUrl = (link) => linkRoutes[link] || { name: 'home' };
|
||||
</script>
|
||||
|
||||
|
||||
<style>
|
||||
.icons {
|
||||
width: 50px;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.hutopy-footer-picture {
|
||||
height: 70px;
|
||||
margin-bottom: 3%;
|
||||
min-height: 70px;
|
||||
min-width: auto;
|
||||
}
|
||||
|
||||
.custom-footer {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.no-margin {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
footer {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
background-color: rgba(107, 0, 101, 1);
|
||||
}
|
||||
|
||||
footer a:not(:last-child) {
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.footertextcolor {
|
||||
margin-top: 5px;
|
||||
margin-bottom: 40px;
|
||||
color: azure;
|
||||
}
|
||||
|
||||
.socialiconspacer {
|
||||
margin-top: 25px;
|
||||
}
|
||||
|
||||
.custom-color-button {
|
||||
background-color: rgb(255, 0, 0);
|
||||
color: white;
|
||||
|
||||
font-size: 1.5rem;
|
||||
margin-top: 40px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.background {
|
||||
background-color: rgba(107, 0, 101, 1);
|
||||
}
|
||||
|
||||
@media (min-width: 150px) and (max-width: 598px) {
|
||||
|
||||
.hutopy-footer-picture {
|
||||
min-width: 200px;
|
||||
margin-left: -15px;
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
@@ -1,964 +0,0 @@
|
||||
<template>
|
||||
<DefaultLayout style="margin-bottom: 30px"></DefaultLayout>
|
||||
|
||||
<!-- Router Info and user informations
|
||||
<v-container style="margin-top: -1%; margin-bottom: 2%;">
|
||||
<v-row>
|
||||
<v-col align="center">
|
||||
<div>
|
||||
<p>Router : {{ selectedUsername }}</p>
|
||||
<div v-if="PublicCreatorData">
|
||||
<h1>{{ PublicCreatorData.userName }}</h1>
|
||||
<h1>{{ PublicCreatorData.firstName }} {{ PublicCreatorData.lastName }}</h1>
|
||||
</div>
|
||||
<div v-else>
|
||||
<p v-if="errorMessage">{{ errorMessage }}</p>
|
||||
</div>
|
||||
|
||||
<form @submit.prevent="manualFetch">
|
||||
<input v-model="manualUsername" placeholder="Enter username" />
|
||||
<button type="submit">Fetch User</button>
|
||||
</form>
|
||||
</div>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-container>
|
||||
-->
|
||||
|
||||
<div style="background-color: #f4f4f4;">
|
||||
<!-- Mobile -->
|
||||
<v-row class="fluid hidden-md-and-up social-mobile-container"
|
||||
style="margin-top: -10px; position: relative; z-index: 0;" hidden-md-and-down>
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375" :src="imageSrc" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- PurpleLine -->
|
||||
<v-row style="background-color: #6b0065; height: 5px; box-shadow: rgba(0, 0, 0, 0.7);"></v-row>
|
||||
|
||||
<!-- Profile picture -->
|
||||
<v-row class="d-flex justify-center align-center d-sm-none" style="margin-top: 50px; margin-bottom: -10px">
|
||||
<v-img :src="profilePicture" class="elevation-4 mobile-profile-picture-creator"></v-img>
|
||||
</v-row>
|
||||
|
||||
<!-- User Social Network Links -->
|
||||
<v-container style="margin-top: -70px; padding: 0;" class="hidden-md-and-up social-container-mobile-icons"
|
||||
hidden-md-and-down>
|
||||
<!-- Facebook -->
|
||||
<v-row no-gutters class="d-flex justify-space-between align-center"
|
||||
style="margin-left: 3%; margin-right: 3%;">
|
||||
<v-col cols="2" sm="2" xs="3" style="margin-top: 60px; z-index: 50;"
|
||||
class="d-flex justify-center align-center">
|
||||
<a href="https://www.facebook.com/GuillaumeMousseau222">
|
||||
<v-img class="socialicons-mobile" src="/images/hutopymedia/icons/black/facebookblack.png"
|
||||
alt="Facebook"></v-img>
|
||||
</a>
|
||||
</v-col>
|
||||
<!-- Instagram -->
|
||||
<v-col cols="2" sm="2" xs="3" style="margin-top: 60px; z-index: 50;"
|
||||
class="d-flex justify-center align-center">
|
||||
<a href="https://www.instagram.com/guillaumeaime/">
|
||||
<v-img class="socialicons-mobile" src="/images/hutopymedia/icons/black/instagramblack.png"
|
||||
alt="Instagram"></v-img>
|
||||
</a>
|
||||
</v-col>
|
||||
<!-- Profile picture - Small -->
|
||||
<v-col cols="4" sm="4" xs="0" class="hidden-xs">
|
||||
<v-row class="d-flex justify-center align-center">
|
||||
<v-img :src="profilePicture" class="elevation-4 mobile-profile-picture-creator"></v-img>
|
||||
</v-row>
|
||||
</v-col>
|
||||
|
||||
<!-- TikTok -->
|
||||
<v-col cols="2" sm="2" xs="3" style="margin-top: 60px; z-index: 50;"
|
||||
class="d-flex justify-center align-center">
|
||||
<a href="https://www.tiktok.com/@guillaumeaime">
|
||||
<v-img class="socialicons-mobile invert-color"
|
||||
src="/images/hutopymedia/icons/white/tiktokwhite.png" alt="TikTok"></v-img>
|
||||
</a>
|
||||
</v-col>
|
||||
|
||||
<v-spacer class="hidden-xs"> </v-spacer>
|
||||
</v-row>
|
||||
|
||||
<!-- User informations Name title and description -->
|
||||
<v-row class="social-container-mobile">
|
||||
<v-col cols="12" xs="12" sm="4" class="d-flex justify-center">
|
||||
<v-row class="d-flex justify-center">
|
||||
{{ name }}
|
||||
</v-row>
|
||||
</v-col>
|
||||
<v-spacer xs="12" sm="4"></v-spacer>
|
||||
<v-col cols="12" xs="12" sm="4" class="d-flex justify-center">
|
||||
<v-row class="d-flex justify-center">
|
||||
{{ title }}
|
||||
</v-row>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-container
|
||||
style="border-bottom-left-radius: 15px; margin-top: -12px; border-bottom-right-radius: 15px;"
|
||||
class="social-icon-group-mobile">
|
||||
<v-expansion-panels style="min-width: 320px;">
|
||||
<v-col cols="12" offset="-1">
|
||||
<v-expansion-panel class="background-pink text-justify" style="color: white;"
|
||||
text="Mettre en lumière le côté humain des entrepreneurs. Chaque service, chaque produit est porteur d’une histoire, d’une passion, d’une vision unique. Mon objectif est de faire rayonner cette unicité, de créer des connexions authentiques entre ces entrepreneurs et leurs clients potentiels. Parce que derrière chaque entreprise, il y a des personnes inspirantes qui méritent d’être entendues et comprises. Et toi, quel est ton objectif pour cette année?"
|
||||
title="À propos : Ma mission est claire :"></v-expansion-panel>
|
||||
</v-col>
|
||||
</v-expansion-panels>
|
||||
</v-container>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
<!-- Bannière Pc -->
|
||||
<v-row class="fluid hidden-sm-and-down" style="margin-top: -65px; position: relative; z-index: 0;"
|
||||
hidden-sm-and-up>
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375" :src="imageSrc" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row class="hidden-sm-and-down"
|
||||
style="background-color: #6b0065; height: 5px; box-shadow: rgba(0, 0, 0, 0.7);" hidden-sm-and-up></v-row>
|
||||
|
||||
<!-- Core (Menu / Center / Donation) -->
|
||||
<v-row>
|
||||
<!-- Menu -->
|
||||
<v-col cols="2" md="3" lg="3" xl="3" xxl="2" class="hidden-sm-and-down menu-col" hidden-sm-and-down>
|
||||
<v-col style="margin: 0;">
|
||||
<v-row class="Hutopy-menu-sticky-mobile">
|
||||
<v-spacer></v-spacer>
|
||||
<v-col>
|
||||
<v-container style=" overflow-y: hidden;">
|
||||
<!-- Nav-Btn -->
|
||||
<v-col cols="12" class="px-0">
|
||||
<v-img src="/images/hutopymedia/banners/hutopy.png" alt="Description de l'image"
|
||||
style="height: 150px; width: 300px;" class="mx-auto" :elevation="10"></v-img>
|
||||
<v-list dense class="main-background">
|
||||
<v-list-item v-for="item in navigationItems" :key="item.link">
|
||||
<router-link :to="item.link">
|
||||
<v-btn text class="d-flex align-start align-center main-background"
|
||||
elevation="0" outlined="false">
|
||||
<v-icon left class="mr-4">{{ item.icon }}</v-icon>
|
||||
{{ item.text }}
|
||||
</v-btn>
|
||||
</router-link>
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
</v-col>
|
||||
</v-container>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row style="height: 300px;"></v-row>
|
||||
</v-col>
|
||||
</v-col>
|
||||
|
||||
<!-- Profile Info Picture name title & description -->
|
||||
<v-col class="middle-col" style="z-index: 5;" cols="12" xs="12" sm="12" md="6" lg="6" xl="6" xxl="8">
|
||||
<div v-if="PublicCreatorData">
|
||||
<v-row class="d-flex justify-center align-center">
|
||||
<v-col xl="10" xxl="8">
|
||||
<v-container class="profile-container hidden-sm-and-down" hidden-md-and-up>
|
||||
<v-container>
|
||||
<v-img :src="profilePicture"
|
||||
class="elevation-4 mobile-profile-picture-creator"></v-img>
|
||||
<!-- User informations Name & title -->
|
||||
<v-container class="background-profile-container" style="margin-top: -8%;">
|
||||
<v-row>
|
||||
<v-col style="height: 50px;" cols="7" offset="2" class="social-container">
|
||||
<h1 class="name-info">{{ PublicCreatorData.userName }}</h1>
|
||||
</v-col>
|
||||
<v-col></v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-col style="height: 50px;" cols="6" offset="2" class="social-container2">
|
||||
<h1 class="occupation-info">{{ title }}</h1>
|
||||
</v-col>
|
||||
<v-col></v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- User Social Network Links -->
|
||||
<v-row>
|
||||
<v-spacer></v-spacer>
|
||||
<v-col cols="7" style="margin-top: 1%; margin-bottom: -2%;">
|
||||
<v-row>
|
||||
<a href="https://www.facebook.com/GuillaumeMousseau222">
|
||||
<img class="socialicons"
|
||||
src="/images/hutopymedia/icons/black/facebookblack.png"
|
||||
alt="Description image 2">
|
||||
</a>
|
||||
<a href="https://www.instagram.com/p/C2f-3UnNdfX/">
|
||||
<img class="socialicons"
|
||||
src="/images/hutopymedia/icons/black/instagramblack.png"
|
||||
alt="Description image 2">
|
||||
</a>
|
||||
<a href="https://www.tiktok.com/@guillaumeaime">
|
||||
<img class="socialicons invert-color"
|
||||
src="/images/hutopymedia/icons/white/tiktokwhite.png"
|
||||
alt="Description image 2">
|
||||
</a>
|
||||
</v-row>
|
||||
</v-col>
|
||||
<v-col background-color="primary"></v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- Description -->
|
||||
<v-row>
|
||||
<v-container
|
||||
style="border-bottom-left-radius: 15px; border-bottom-right-radius: 15px; margin-top: 15px;">
|
||||
<v-expansion-panels style="min-width: 320px;">
|
||||
<v-col cols="12" offset="-1">
|
||||
<v-expansion-panel class="background-pink text-justify"
|
||||
style="color: white;"
|
||||
text="Mettre en lumière le côté humain des entrepreneurs. Chaque service, chaque produit est porteur d’une histoire, d’une passion, d’une vision unique. Mon objectif est de faire rayonner cette unicité, de créer des connexions authentiques entre ces entrepreneurs et leurs clients potentiels. Parce que derrière chaque entreprise, il y a des personnes inspirantes qui méritent d’être entendues et comprises. Et toi, quel est ton objectif pour cette année?"
|
||||
title="À propos : Ma mission est claire :">
|
||||
</v-expansion-panel>
|
||||
</v-col>
|
||||
</v-expansion-panels>
|
||||
</v-container>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</v-container>
|
||||
</v-container>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<v-row class="d-flex justify-center align-center">
|
||||
<v-col xl="10" xxl="8">
|
||||
<PostContentMenu style="margin-top: -30px;"></PostContentMenu>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</div>
|
||||
<div v-else>
|
||||
<v-row class="d-flex justify-center align-center">
|
||||
<v-col xl="10" xxl="8" align="center">
|
||||
<v-card class="pa-5" elevation="2" style="max-width: 400px;">
|
||||
<v-row class="d-flex justify-center align-center">
|
||||
<v-icon size="128" color="grey">mdi-magnify</v-icon>
|
||||
</v-row>
|
||||
<v-row class="d-flex justify-center align-center">
|
||||
<p>L'utilisateur <span style="color: red;">{{ selectedUsername }}</span> n'a pas
|
||||
été trouvé</p>
|
||||
</v-row>
|
||||
</v-card>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</div>
|
||||
</v-col>
|
||||
|
||||
|
||||
<!-- Large-Monitor-RightCol Donation -->
|
||||
<v-col cols="2" md="3" lg="3" xl="2" xxl="2" class="hidden-sm-and-down" hidden-sm-and-up>
|
||||
<v-row>
|
||||
<v-col>
|
||||
<v-container class="sticky-bottom-label Je-soutien-container"
|
||||
style="max-width: 400px ; bottom: 0;">
|
||||
<!-- Donnation -->
|
||||
<v-card style="border-radius: 20px;">
|
||||
<v-container>
|
||||
<v-row class="mb-0"
|
||||
style="background-color: #6b0065; margin-left: -24px; margin-right: -24px; margin-top: -20px; justify-content: center;">
|
||||
<v-card-title class="text-soutiens" style="margin-top: 15px;">
|
||||
JE SOUTIENS!
|
||||
</v-card-title>
|
||||
</v-row>
|
||||
<StripePayment></StripePayment>
|
||||
</v-container>
|
||||
</v-card>
|
||||
</v-container>
|
||||
<v-container style="height: 300px;">
|
||||
</v-container>
|
||||
</v-col>
|
||||
<v-spacer>
|
||||
</v-spacer>
|
||||
</v-row>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<v-snackbar v-model="errorSnackBar">
|
||||
{{ snackBarMessage }}
|
||||
<template v-slot:actions>
|
||||
<v-btn color="red" variant="text" @click="errorSnackBar = false">Fermer</v-btn>
|
||||
</template>
|
||||
</v-snackbar>
|
||||
|
||||
<!-- Mobile Donation -->
|
||||
<v-col class="hidden-md-and-up sticky-bottom-label" hidden-sm-and-down
|
||||
style="background-color: #6b0065; margin-top: 30px; text-align: center;">
|
||||
<!-- Barre cliquable pour ouvrir le drawer -->
|
||||
<v-btn @click="drawerbottom = !drawerbottom" elevation="0"
|
||||
style="background-color: #6b0065; color: white; text-align: center;" class="text-soutiens ">
|
||||
JE SOUTIENS
|
||||
</v-btn>
|
||||
</v-col>
|
||||
|
||||
<!-- Drawer du bas -->
|
||||
<template>
|
||||
<div>
|
||||
<v-bottom-sheet v-model="drawerbottom" class="sticky-bottom-label" hide-overlay>
|
||||
<v-container style="background-color: #6b0065; color: white; padding: 20px; text-align: center;">
|
||||
<h1 class="text-soutiens">JE SOUTIENS</h1>
|
||||
<StripePayment></StripePayment>
|
||||
</v-container>
|
||||
</v-bottom-sheet>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<FooterLayout></FooterLayout>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import DefaultLayout from '@/layouts/DefaultLayout.vue';
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
import { useClient } from "@/plugins/api.js";
|
||||
import { computed, onMounted, ref, watch } from 'vue';
|
||||
import { useRoute } from 'vue-router';
|
||||
import StripePayment from '../views/StripePayment.vue';
|
||||
|
||||
const PublicCreatorData = ref(null);
|
||||
const selectedUsername = ref('');
|
||||
const route = useRoute();
|
||||
const client = useClient();
|
||||
|
||||
let errorSnackBar = ref(false);
|
||||
let snackBarMessage = ref('');
|
||||
const errorMessage = ref('');
|
||||
|
||||
let imageSrc = '/images/usersmedia/guillaumeMousseau/banners/bannerGuillaumeMousseau01.png';
|
||||
let profilePicture = '/images/usersmedia/guillaumeMousseau/profilepictures/profileGuillaumeMousseau01.png';
|
||||
let drawerbottom = ref(false);
|
||||
|
||||
const name = computed(() => {
|
||||
return PublicCreatorData.value ? PublicCreatorData.value.userName : '';
|
||||
});
|
||||
const title = 'Créateur de contenus';
|
||||
|
||||
let navigationItems = [
|
||||
{ icon: 'mdi-home', text: 'Accueil', link: 'home' },
|
||||
{ icon: 'mdi-account-group', text: 'Utilisateur', link: '/userbrowser' },
|
||||
{ icon: 'mdi-handshake', text: 'Aidez-nous', link: '/contact' },
|
||||
];
|
||||
|
||||
const fetchUser = async (username) => {
|
||||
console.log(`Fetching user: ${username}`);
|
||||
try {
|
||||
const response = await client.get(`/api/Users`, {
|
||||
params: {
|
||||
UserName: username
|
||||
}
|
||||
});
|
||||
const data = response.data;
|
||||
console.log(`Data received: `, data);
|
||||
if (data && Object.keys(data).length > 0 && (data.userName || data.firstName || data.lastName)) {
|
||||
PublicCreatorData.value = data; // Met à jour la référence réactive
|
||||
errorMessage.value = '';
|
||||
errorSnackBar.value = false;
|
||||
} else {
|
||||
PublicCreatorData.value = null; // Réinitialise la référence si l'utilisateur n'est pas trouvé
|
||||
errorMessage.value = "Utilisateur non trouvé";
|
||||
snackBarMessage.value = "Utilisateur non trouvé";
|
||||
errorSnackBar.value = true;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`Error fetching user: ${error}`);
|
||||
PublicCreatorData.value = null;
|
||||
errorMessage.value = "Erreur lors de la récupération des données";
|
||||
snackBarMessage.value = "Erreur lors de la récupération des données";
|
||||
errorSnackBar.value = true;
|
||||
}
|
||||
};
|
||||
|
||||
const updateUser = () => {
|
||||
selectedUsername.value = route.params.username;
|
||||
console.log(`Route username: ${selectedUsername.value}`);
|
||||
if (selectedUsername.value) {
|
||||
fetchUser(selectedUsername.value);
|
||||
}
|
||||
};
|
||||
|
||||
onMounted(updateUser);
|
||||
|
||||
watch(() => route.params.username, updateUser);
|
||||
</script>
|
||||
|
||||
|
||||
<style scoped>
|
||||
.invert-color {
|
||||
filter: invert(1);
|
||||
}
|
||||
|
||||
|
||||
.Hutopy-menu-sticky-mobile {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
margin-top: -40px;
|
||||
}
|
||||
|
||||
.sticky-bottom-label {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.sticky-top-label {
|
||||
position: sticky;
|
||||
bottom: 0;
|
||||
right: 10%;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.text-soutiens {
|
||||
margin-bottom: 15px;
|
||||
color: white;
|
||||
font-size: 1.5rem;
|
||||
letter-spacing: 7px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
margin-top: -10px;
|
||||
margin-left: 15%;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
margin-left: 15%;
|
||||
font-size: large;
|
||||
}
|
||||
|
||||
.name-info-mobile {
|
||||
margin-left: 22px;
|
||||
font-size: 1.3rem
|
||||
}
|
||||
|
||||
.main-background {
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -16%;
|
||||
}
|
||||
|
||||
.btn-custom {
|
||||
width: 100%;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.background-profile-container {
|
||||
background-color: #ececec;
|
||||
color: white;
|
||||
border-top: 3px solid #a30e79;
|
||||
border-right: 3px solid #a30e79;
|
||||
font-weight: 700;
|
||||
font-size: 1.15rem;
|
||||
border-radius: 25px;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3)
|
||||
}
|
||||
|
||||
.background-pink {
|
||||
background-color: #cc6f91;
|
||||
color: white;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.label-text {
|
||||
font-weight: 400;
|
||||
margin-left: 3%;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.profile-name {
|
||||
margin-top: -15%;
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 35px;
|
||||
max-width: 100px;
|
||||
margin-top: 3px;
|
||||
margin-left: 40px;
|
||||
}
|
||||
|
||||
.socialicons-mobile {
|
||||
width: 35px;
|
||||
max-width: 100px;
|
||||
margin-top: 27px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.youtube-card {
|
||||
margin-left: 2%;
|
||||
margin-right: 2%;
|
||||
border-radius: 15px;
|
||||
background-color: #f4f4f4;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4)
|
||||
}
|
||||
|
||||
.card-title {
|
||||
font-size: 1.4rem;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.card-date {
|
||||
margin-left: 10px;
|
||||
margin-top: -18px;
|
||||
margin-bottom: -20px;
|
||||
font-size: .8rem;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.social-container {
|
||||
background-color: #006d77;
|
||||
border-top-right-radius: 30px;
|
||||
border-bottom-right-radius: 30px;
|
||||
font-size: 1.7rem;
|
||||
font-weight: 600;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
background-color: #0baab2;
|
||||
border-bottom-right-radius: 30px;
|
||||
font-size: 1.4rem;
|
||||
font-weight: 500;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.social-container-mobile {
|
||||
background-color: #006d77;
|
||||
font-size: 1.4rem;
|
||||
font-weight: 600;
|
||||
color: white;
|
||||
z-index: 1000;
|
||||
margin: auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.social-container2-mobile {
|
||||
background-color: #0baab2;
|
||||
z-index: 1000;
|
||||
font-size: 1.2rem;
|
||||
font-weight: 500;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.social-icon-group-mobile {
|
||||
background-color: #0baab2;
|
||||
}
|
||||
|
||||
.mini-profile-picture {
|
||||
border-radius: 100px;
|
||||
}
|
||||
|
||||
.btn-card-options {
|
||||
background-color: #f4f4f4;
|
||||
width: 50px;
|
||||
margin-left: -12px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
border-radius: 100px;
|
||||
height: 150px;
|
||||
width: 150px;
|
||||
border-radius: 50%;
|
||||
max-width: 150px;
|
||||
border: 4px solid white;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.mobile-header {
|
||||
height: 50px;
|
||||
margin-left: -13%;
|
||||
margin-top: 6%;
|
||||
}
|
||||
|
||||
.h1-navigation {
|
||||
text-align: center;
|
||||
font-weight: 600;
|
||||
margin-bottom: 10%;
|
||||
}
|
||||
|
||||
.mobile-profile-picture {
|
||||
height: 40px;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
|
||||
border: 2px solid #a30e79;
|
||||
margin-right: 10px
|
||||
}
|
||||
|
||||
.profile-banner {
|
||||
margin-top: 25px;
|
||||
min-height: 200px
|
||||
}
|
||||
|
||||
.v-navigation-drawer {
|
||||
max-height: 100vh;
|
||||
}
|
||||
|
||||
@media (min-width: 150px) and (max-width: 474px) {
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.5) translateY(-30%) translateX(0%);
|
||||
}
|
||||
|
||||
.socialicons-mobile {
|
||||
width: 35px;
|
||||
max-width: 100px;
|
||||
margin-top: 0px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media (min-width: 475px) and (max-width: 599px) {
|
||||
.socialicons-mobile {
|
||||
width: 35px;
|
||||
max-width: 100px;
|
||||
margin-top: 0px;
|
||||
margin-left: px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.5) translateY(-30%) translateX(0%);
|
||||
}
|
||||
|
||||
.profile-container-mobile {
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
margin-top: -112px;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 250px;
|
||||
}
|
||||
|
||||
.name-info-mobile {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 599px) and (max-width: 749px) {
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.5) translateY(25%) translateX(0%);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
}
|
||||
|
||||
.profile-container-mobile {
|
||||
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
margin-top: -110px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 330px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 750px) and (max-width: 960px) {
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.8) translateY(25%) translateX(0%);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
}
|
||||
|
||||
.profile-container-mobile {
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
margin-top: -110px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 425px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 960px) and (max-width: 1280px) {
|
||||
.middle-col {
|
||||
margin-left: -30px;
|
||||
}
|
||||
|
||||
.text-soutiens {
|
||||
font-size: 1.2rem;
|
||||
letter-spacing: 5px;
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -185px;
|
||||
min-width: 480px
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 270px;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 325px;
|
||||
margin-left: -35px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.3) translateY(25%) translateX(-50px);
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
margin-left: 20px;
|
||||
margin-top: -6px
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
margin-left: 40px;
|
||||
margin-top: -8px
|
||||
}
|
||||
|
||||
.social-container {
|
||||
margin-left: 80px;
|
||||
min-width: 270px;
|
||||
max-height: 40px
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
margin-left: 50px;
|
||||
min-width: 250px;
|
||||
max-height: 35px
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 34px;
|
||||
max-width: 100px;
|
||||
margin-top: 15px;
|
||||
margin-left: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1280px) and (max-width: 1600px) {
|
||||
.text-soutiens {
|
||||
font-size: 1.3rem;
|
||||
letter-spacing: 8px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.3) translateY(25%) translateX(-50px);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -180px;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 290px;
|
||||
}
|
||||
|
||||
.menu-col {
|
||||
margin-left: -4%;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 350px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
margin-left: 20px;
|
||||
margin-top: -6px
|
||||
}
|
||||
|
||||
.social-container {
|
||||
margin-left: 90px;
|
||||
min-width: 350;
|
||||
max-height: 40px
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
margin-left: 70px;
|
||||
margin-top: -8px
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
|
||||
margin-left: 40px;
|
||||
min-width: 290px;
|
||||
max-height: 35px
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 34px;
|
||||
max-width: 100px;
|
||||
margin-top: 15px;
|
||||
margin-left: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1600px) and (max-width: 1919px) {
|
||||
.text-soutiens {
|
||||
font-size: 1.3rem;
|
||||
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.4) translateY(25%) translateX(-40px);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -171px;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 355px;
|
||||
}
|
||||
|
||||
.menu-col {
|
||||
margin-left: -4%;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 400px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.5rem;
|
||||
margin-top: -4px;
|
||||
margin-left: 35px;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1.3rem;
|
||||
margin-left: 75px;
|
||||
margin-top: -2px
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
margin-left: 70px;
|
||||
min-width: 300px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1920px) and (max-width: 2559px) {
|
||||
.text-soutiens {
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -160px;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 380px;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 400px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.4) translateY(25%) translateX(-40px);
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.5rem;
|
||||
margin-left: 35px;
|
||||
margin-top: -4px;
|
||||
}
|
||||
|
||||
.social-container {
|
||||
margin-left: 100px;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1.3rem;
|
||||
margin-left: 110px;
|
||||
margin-top: -4px
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
margin-left: 30px;
|
||||
min-width: 360px;
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 38px;
|
||||
max-width: 100px;
|
||||
margin-top: 13px;
|
||||
margin-left: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 2560px) {
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.5) translateY(25%) translateX(-20px);
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 380px;
|
||||
}
|
||||
|
||||
.text-soutiens {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 2rem;
|
||||
|
||||
}
|
||||
|
||||
.social-container {
|
||||
margin-left: 140px;
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
margin-left: 130px;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1.5rem;
|
||||
margin-left: 65px;
|
||||
margin-top: -6px
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 45px;
|
||||
max-width: 100px;
|
||||
margin-top: 15px;
|
||||
margin-left: 40px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
35
src/main.js
35
src/main.js
@@ -1,32 +1,27 @@
|
||||
import './assets/main.css'
|
||||
import { createApp } from 'vue'
|
||||
import { createPinia } from 'pinia'
|
||||
import {createApp} from 'vue'
|
||||
import App from './App.vue'
|
||||
import router from './router'
|
||||
import './assets/main.css'
|
||||
import {createPinia} from 'pinia'
|
||||
import '@mdi/font/css/materialdesignicons.css'
|
||||
import 'vuetify/styles'
|
||||
import { createVuetify } from 'vuetify'
|
||||
import {createVuetify} from 'vuetify'
|
||||
import * as components from 'vuetify/components'
|
||||
import * as directives from 'vuetify/directives'
|
||||
import clientPlugin from './plugins/api.js'
|
||||
import vueGoogleOauth from 'vue3-google-login'
|
||||
|
||||
const vuetify = createVuetify({
|
||||
components,
|
||||
directives
|
||||
components,
|
||||
directives
|
||||
});
|
||||
|
||||
const app = createApp(App);
|
||||
|
||||
// Create an axios client preconfigured to the Hutopy API.
|
||||
app.use(clientPlugin);
|
||||
|
||||
app.use(vueGoogleOauth, {
|
||||
clientId: import.meta.env.VITE_GOOGLE_CLIENT_ID,
|
||||
});
|
||||
|
||||
app.use(createPinia());
|
||||
app.use(vuetify);
|
||||
app.use(router);
|
||||
|
||||
app.mount('#app')
|
||||
createApp(App)
|
||||
.use(clientPlugin)
|
||||
.use(createPinia())
|
||||
.use(vuetify)
|
||||
.use(router)
|
||||
.use(vueGoogleOauth, {
|
||||
clientId: import.meta.env.VITE_GOOGLE_CLIENT_ID,
|
||||
})
|
||||
.mount('#app');
|
||||
|
||||
@@ -1,158 +1,143 @@
|
||||
import {createRouter, createWebHistory} from 'vue-router'
|
||||
import ARPS from '@/views/manualusers/ARPS.vue'
|
||||
import GuillaumeAime from '@/views/manualusers/GuillaumeAime.vue'
|
||||
import About from '@/views/tos/About.vue'
|
||||
import ContentPolicy from '@/views/tos/ContentPolicy.vue'
|
||||
import FAQ from '@/views/tos/FAQ.vue'
|
||||
import Frais from '@/views/tos/Frais.vue'
|
||||
import GuideForCreators from '@/views/tos/GuideForCreators.vue'
|
||||
import HelpAndContact from '@/views/tos/HelpAndContact.vue'
|
||||
import TermsAndConditions from '@/views/tos/TermsAndConditions.vue'
|
||||
import { createRouter, createWebHistory } from 'vue-router'
|
||||
import MainPage from '../layouts/MainPage.vue'
|
||||
import About from '@/views/documentation/About.vue'
|
||||
import ContentPolicy from '@/views/documentation/ContentPolicy.vue'
|
||||
import FAQ from '@/views/documentation/FAQ.vue'
|
||||
import Pricing from '@/views/documentation/Pricing.vue'
|
||||
import CreatorGuide from '@/views/documentation/CreatorGuide.vue'
|
||||
import HelpAndContact from '@/views/documentation/HelpAndContact.vue'
|
||||
import TermsAndConditions from '@/views/documentation/TermsAndConditions.vue'
|
||||
import LoginView from '../views/LoginView.vue'
|
||||
import PaymentCompleted from '../views/PayementCompleted.vue'
|
||||
import SignupView from '../views/SignupView.vue'
|
||||
import ContactView from '../views/main/ContactView.vue'
|
||||
import CreatorFolio from '../views/main/CreatorFolio.vue'
|
||||
import HomeView from '../views/main/HomeView.vue'
|
||||
import UserBrowser from '../views/main/UsersBrowser.vue'
|
||||
import YourProfile from '../views/main/YourProfile.vue'
|
||||
import Join from '../views/main/Join.vue'
|
||||
import Home from '../views/main/Home.vue'
|
||||
import Browse from '../views/main/Browse.vue'
|
||||
import Wallet from '../views/main/Wallet.vue'
|
||||
import Profile from '../views/main/Profile.vue'
|
||||
import ChloeBeaugrand from '../views/manualusers/ChloeProfile.vue'
|
||||
import Hutopy from '../views/manualusers/HutopyProfile.vue'
|
||||
import Leffet from '../views/manualusers/LeffetProfile.vue'
|
||||
import MathieuCaron from '../views/manualusers/MathieuCaron.vue'
|
||||
import Creator from "@/views/main/Creator.vue";
|
||||
|
||||
const routes = [
|
||||
{
|
||||
path: '/',
|
||||
name: 'main',
|
||||
component: HomeView
|
||||
},
|
||||
{
|
||||
path: '/creatorfolio',
|
||||
name: 'creatorfolio',
|
||||
component: CreatorFolio
|
||||
},
|
||||
{
|
||||
path: '/paymentcompleted',
|
||||
name: 'PayementCompleted',
|
||||
component: PaymentCompleted
|
||||
},
|
||||
{
|
||||
path: '/yourprofile',
|
||||
name: 'yourprofile',
|
||||
component: YourProfile
|
||||
},
|
||||
{
|
||||
path: '/contact',
|
||||
name: 'contact',
|
||||
component: ContactView
|
||||
},
|
||||
{
|
||||
path: '/signup',
|
||||
name: 'signup',
|
||||
component: SignupView
|
||||
},
|
||||
{
|
||||
path: '/login',
|
||||
name: 'login',
|
||||
component: LoginView
|
||||
},
|
||||
{
|
||||
path: '/home',
|
||||
name: 'home',
|
||||
component: HomeView
|
||||
},
|
||||
{
|
||||
path: '/helpandcontact',
|
||||
name: 'helpandcontact',
|
||||
component: HelpAndContact
|
||||
},
|
||||
{
|
||||
path: '/termsandconditions',
|
||||
name: 'termsandconditions',
|
||||
component: TermsAndConditions
|
||||
},
|
||||
{
|
||||
path: '/contentpolicy',
|
||||
name: 'contentpolicy',
|
||||
component: ContentPolicy
|
||||
},
|
||||
{
|
||||
path: '/faq',
|
||||
name: 'FAQ',
|
||||
component: FAQ
|
||||
},
|
||||
{
|
||||
path: '/guideforcreators',
|
||||
name: 'guideforcreators',
|
||||
component: GuideForCreators
|
||||
},
|
||||
{
|
||||
path: '/about',
|
||||
name: 'about',
|
||||
component: About
|
||||
},
|
||||
{
|
||||
path: '/frais',
|
||||
name: 'frais',
|
||||
component: Frais
|
||||
},
|
||||
{
|
||||
path: '/Hutopy',
|
||||
name: 'Hutopy',
|
||||
component: Hutopy
|
||||
},
|
||||
{
|
||||
path: '/Leffet',
|
||||
name: 'Leffet',
|
||||
component: Leffet
|
||||
},
|
||||
{
|
||||
path: '/userbrowser',
|
||||
name: 'userbrowser',
|
||||
component: UserBrowser
|
||||
},
|
||||
{
|
||||
path: '/chloebeaugrand',
|
||||
name: 'chloebeaugrand',
|
||||
component: ChloeBeaugrand
|
||||
},
|
||||
{
|
||||
path: '/guillaumeaime',
|
||||
name: 'guillaumeaime',
|
||||
component: GuillaumeAime
|
||||
},
|
||||
{
|
||||
path: '/mathieucaron',
|
||||
name: 'mathieucaron',
|
||||
component: MathieuCaron
|
||||
},
|
||||
{
|
||||
path: '/arps',
|
||||
name: 'arps',
|
||||
component: ARPS
|
||||
},
|
||||
{
|
||||
path: '/:username',
|
||||
name: 'user-profile',
|
||||
component: MainPage
|
||||
},
|
||||
{
|
||||
path: '/',
|
||||
component: Home,
|
||||
meta: {hideSideBar: true}
|
||||
},
|
||||
{
|
||||
path: '/browse',
|
||||
component: Browse
|
||||
},
|
||||
|
||||
{
|
||||
path: '/@leffet',
|
||||
component: Leffet
|
||||
},
|
||||
{
|
||||
path: '/@chloebeaugrand',
|
||||
component: ChloeBeaugrand
|
||||
},
|
||||
{
|
||||
path: '/@guillaumeaime',
|
||||
component: GuillaumeAime
|
||||
},
|
||||
{
|
||||
path: '/@mathieucaron',
|
||||
component: MathieuCaron
|
||||
},
|
||||
{
|
||||
path: '/@arps',
|
||||
component: ARPS
|
||||
},
|
||||
|
||||
{
|
||||
path: '/@:creator',
|
||||
component: Creator
|
||||
},
|
||||
|
||||
{
|
||||
path: '/helpandcontact',
|
||||
component: HelpAndContact,
|
||||
meta: {hideSideBar: true}
|
||||
},
|
||||
{
|
||||
path: '/termsandconditions',
|
||||
name: 'termsandconditions',
|
||||
component: TermsAndConditions,
|
||||
meta: {hideSideBar: true}
|
||||
},
|
||||
{
|
||||
path: '/contentpolicy',
|
||||
name: 'contentpolicy',
|
||||
component: ContentPolicy,
|
||||
meta: {hideSideBar: true}
|
||||
},
|
||||
{
|
||||
path: '/faq',
|
||||
name: 'FAQ',
|
||||
component: FAQ,
|
||||
meta: {hideSideBar: true}
|
||||
},
|
||||
{
|
||||
path: '/guideforcreators',
|
||||
name: 'guideforcreators',
|
||||
component: CreatorGuide,
|
||||
meta: {hideSideBar: true}
|
||||
},
|
||||
{
|
||||
path: '/about',
|
||||
name: 'about',
|
||||
component: About,
|
||||
meta: {hideSideBar: true}
|
||||
},
|
||||
{
|
||||
path: '/pricing',
|
||||
name: 'pricing',
|
||||
component: Pricing,
|
||||
meta: {hideSideBar: true}
|
||||
},
|
||||
{
|
||||
path: '/join',
|
||||
name: 'join',
|
||||
component: Join,
|
||||
meta: {hideSideBar: true}
|
||||
},
|
||||
|
||||
{
|
||||
path: '/paymentcompleted',
|
||||
name: 'PayementCompleted',
|
||||
component: PaymentCompleted
|
||||
},
|
||||
{
|
||||
path: '/profile',
|
||||
name: 'profile',
|
||||
component: Profile
|
||||
},
|
||||
{
|
||||
path: '/signup',
|
||||
name: 'signup',
|
||||
component: SignupView
|
||||
},
|
||||
{
|
||||
path: '/login',
|
||||
name: 'login',
|
||||
component: LoginView
|
||||
},
|
||||
{
|
||||
path: '/wallet',
|
||||
name: 'wallet',
|
||||
component: Wallet
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
path: '/creatorFolio',
|
||||
name: 'creatorFolio',
|
||||
component: CreatorFolio
|
||||
}
|
||||
]
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory(import.meta.env.BASE_URL),
|
||||
routes,
|
||||
scrollBehavior(to, from, savedPosition) {
|
||||
return { top: 0 };
|
||||
}
|
||||
|
||||
history: createWebHistory(import.meta.env.BASE_URL),
|
||||
routes
|
||||
})
|
||||
|
||||
export default router
|
||||
|
||||
@@ -15,12 +15,13 @@ export const auth = defineStore({
|
||||
|
||||
async login(client, email, password) {
|
||||
const requestBody = {
|
||||
emailAddress: email,
|
||||
email: email,
|
||||
password: password
|
||||
};
|
||||
const response = await client.post(`${baseUrl}/users/login`, requestBody)
|
||||
this.user = {
|
||||
accessToken: response.data,
|
||||
accessToken: response.data.accessToken,
|
||||
refreshToken: response.data.refreshToken,
|
||||
}
|
||||
localStorage.setItem('jwt', this.user.accessToken);
|
||||
|
||||
|
||||
@@ -1,111 +1,113 @@
|
||||
<template>
|
||||
<v-app style="background-color: #f4f4f4;">
|
||||
<div class="sm:flex hidden items-center justify-between flex-col"
|
||||
style="background-color: #f4f4f4; margin-top: 3%;">
|
||||
|
||||
<div style="background-color: #f4f4f4;">
|
||||
<v-container style=" background-color: #f4f4f4;">
|
||||
<v-row align="center" justify="center">
|
||||
<!-- Header -->
|
||||
<v-col cols="8" lg="8" md="10" sm="10" xs="10" style=" align-items: center; ">
|
||||
<img class="login-picture" src="/images/hutopymedia/loginpage/loginhutopy.png" alt="">
|
||||
</v-col>
|
||||
|
||||
<!-- Connexion-objects -->
|
||||
<v-col cols="3" lg="4" md="10" sm="10" xs="10" class="connexion-container">
|
||||
<h1 class="text-center display-6 h1-connexion">Connexion</h1>
|
||||
<h2 class="text-center display-3 h2-connexion">Comment souhaitez-vous vous connecter à votre
|
||||
compte?</h2>
|
||||
<v-card-text>
|
||||
<v-form class="label-mail-password">
|
||||
<v-text-field prepend-icon="mdi-email" type="text" v-model="user.email"
|
||||
label="Nom d'utilisateur" class="text-start"></v-text-field>
|
||||
<v-text-field prepend-icon="mdi-lock" type="password" v-model="user.password"
|
||||
label="Mot de passe" class="text-start"></v-text-field>
|
||||
</v-form>
|
||||
<v-snackbar v-model="errorSnackBar">
|
||||
Nom d'utilisateur ou mot de passe invalide.
|
||||
<template v-slot:actions>
|
||||
<v-btn color="red" variant="text" @click="errorSnackBar = false">Fermer</v-btn>
|
||||
</template>
|
||||
</v-snackbar>
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<div class="flex-grow-1"></div>
|
||||
<router-link :to="{ name: 'home' }">
|
||||
<v-btn color="#6b0065" class="ma-2 btnhome">Accueil</v-btn>
|
||||
</router-link>
|
||||
<v-btn color="primary" class="ma-2 btnhome" @click="login">Login</v-btn>
|
||||
<GoogleLogin :callback="googleCallback" popup-type="TOKEN">
|
||||
<v-btn color="primary" class="ma-2 btnhome">Google Login</v-btn>
|
||||
</GoogleLogin>
|
||||
|
||||
<!-- <FacebookAuth :appId="facebookAppId" @on-submit="facebookCallback">-->
|
||||
<!-- <v-btn color="primary" class="ma-2 btnhome">Facebook Login</v-btn>-->
|
||||
<!-- </FacebookAuth>-->
|
||||
|
||||
</v-card-actions>
|
||||
<div class="text-center">
|
||||
<h2 class="text-center display-3 h2pasinscrit">Pas encore inscrit?</h2>
|
||||
<router-link :to="{ name: 'contact' }">
|
||||
<v-btn color="#6b0065" class="inscriptionbtn"
|
||||
style="height: 50px; width: 200px; border-radius: 30px; font-size: 1.2rem;">Inscriptions</v-btn>
|
||||
</router-link>
|
||||
</div>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
</div>
|
||||
<FooterLayout></FooterLayout>
|
||||
<div class="min-h-screen flex items-center justify-center">
|
||||
<!-- Desktop View -->
|
||||
<div class="hidden sm:flex items-center justify-center w-full">
|
||||
<div class="container mx-auto px-4 flex items-center justify-center">
|
||||
<!-- Header -->
|
||||
<div class="w-full lg:w-6/12 md:w-6/12 sm:w-6/12 xs:w-6/12 flex items-center justify-center">
|
||||
<img class="rounded-2xl mr-8" src="/images/hutopymedia/loginpage/loginhutopy.png" alt="hutopy login">
|
||||
</div>
|
||||
|
||||
|
||||
<div class="sm:hidden flex flex-col items-center justify-start"
|
||||
style="background-color: #f4f4f4; height: 100vh;">
|
||||
<img style="margin-top: 10%; width: 350px; box-shadow: 0 4px 6px rgba(0, 0, 0, .5); border-radius: 25px; "
|
||||
src="/images/hutopymedia/loginpage/loginhutopy.png">
|
||||
|
||||
<h1 class="h1-connexion">Connexion</h1>
|
||||
<h2 class="h2-connexion">Comment souhaitez-vous
|
||||
vous connecter à votre compte?</h2>
|
||||
|
||||
<v-form style="max-width: 400px; width: 350px;">
|
||||
<v-text-field prepend-icon="mdi-email" type="text" v-model="user.email" label="Nom d'utilisateur"></v-text-field>
|
||||
<v-text-field prepend-icon="mdi-lock" type="password" v-model="user.password"
|
||||
label="Mot de passe"></v-text-field>
|
||||
</v-form>
|
||||
|
||||
<v-card-actions>
|
||||
<div class="flex-grow-1"></div>
|
||||
<router-link :to="{ name: 'home' }">
|
||||
<v-btn color="#6b0065" class="ma-2">Accueil</v-btn>
|
||||
</router-link>
|
||||
<v-btn color="primary" class="ma-2" @click="login">Login</v-btn>
|
||||
</v-card-actions>
|
||||
<div class="text-center">
|
||||
<h2 class="h2pasinscrit">
|
||||
Pas encore
|
||||
inscrit?</h2>
|
||||
<router-link :to="{ name: 'contact' }">
|
||||
<v-btn color="#6b0065" class="inscriptionbtn"
|
||||
style="height: 50px; width: 200px; border-radius: 30px; font-size: 1.2rem;">Inscriptions</v-btn>
|
||||
</router-link>
|
||||
</div>
|
||||
|
||||
<!-- Connexion-objects -->
|
||||
<div class="lg:w-4/12 md:w-6/12 sm:w-6/12 xs:w-6/12 rounded-lg p-8">
|
||||
<h1 class="text-center text-2xl font-bold mb-6">Connexion</h1>
|
||||
<div class="mb-4">
|
||||
<!-- TODO: Fix input box overflowing when screen it too small -->
|
||||
<form class="mb-4">
|
||||
<div class="mb-4">
|
||||
<input type="text" v-model="user.email" placeholder="Nom d'utilisateur" class="w-full px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-purple-800">
|
||||
</div>
|
||||
<div class="mb-4">
|
||||
<input type="password" v-model="user.password" placeholder="Mot de passe" class="w-full px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-purple-800">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div v-if="errorSnackBar" class="mb-4 text-red-600">
|
||||
Nom d'utilisateur ou mot de passe invalide.
|
||||
<button class="text-red-600 ml-4" @click="errorSnackBar = false">Fermer</button>
|
||||
</div>
|
||||
<div class="flex justify-center mb-4">
|
||||
<button class="bg-blue-500 text-white px-8 py-2 rounded-lg shadow-md hover:bg-blue-400 transition-colors duration-300 ease-in-out" @click="login">Login</button>
|
||||
</div>
|
||||
<div class="flex justify-center mb-4">
|
||||
<!-- TODO: Remove custom elements -->
|
||||
<google-login :callback="googleCallback" popup-type="TOKEN">
|
||||
<button class="bg-blue-600 text-white px-4 py-2 rounded-lg shadow-md hover:bg-blue-500 transition-colors duration-300 ease-in-out mr-2 flex items-center">
|
||||
<svg class="w-5 h-5 mr-2" viewBox="0 0 512 512">
|
||||
<path xmlns="http://www.w3.org/2000/svg" d="M473.16,221.48l-2.26-9.59H262.46v88.22H387c-12.93,61.4-72.93,93.72-121.94,93.72-35.66,0-73.25-15-98.13-39.11a140.08,140.08,0,0,1-41.8-98.88c0-37.16,16.7-74.33,41-98.78s61-38.13,97.49-38.13c41.79,0,71.74,22.19,82.94,32.31l62.69-62.36C390.86,72.72,340.34,32,261.6,32h0c-60.75,0-119,23.27-161.58,65.71C58,139.5,36.25,199.93,36.25,256S56.83,369.48,97.55,411.6C141.06,456.52,202.68,480,266.13,480c57.73,0,112.45-22.62,151.45-63.66,38.34-40.4,58.17-96.3,58.17-154.9C475.75,236.77,473.27,222.12,473.16,221.48Z"/>
|
||||
</svg>
|
||||
Google
|
||||
</button>
|
||||
</google-login>
|
||||
<facebook-auth :appId="facebookAppId" @on-submit="facebookCallback">
|
||||
<button class="bg-blue-700 text-white px-4 py-2 rounded-lg shadow-md hover:bg-blue-600 transition-colors duration-300 ease-in-out flex items-center">
|
||||
<svg class="w-5 h-5 mr-2" viewBox="0 0 24 24">
|
||||
<path fill="#ffffff" d="M22.675 0H1.325C.593 0 0 .593 0 1.325v21.351C0 23.406.593 24 1.325 24H12.82v-9.294H9.692v-3.622h3.128V8.413c0-3.1 1.893-4.788 4.659-4.788 1.325 0 2.464.099 2.796.143v3.24l-1.918.001c-1.504 0-1.794.714-1.794 1.763v2.313h3.587l-.467 3.622h-3.12V24h6.116C23.407 24 24 23.406 24 22.676V1.325C24 .593 23.407 0 22.675 0z"></path>
|
||||
</svg>
|
||||
Facebook
|
||||
</button>
|
||||
</facebook-auth>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<h2 class="text-xl mb-4">Pas de compte ?</h2>
|
||||
<router-link :to="{ name: 'join' }">
|
||||
<button class="bg-purple-800 text-white px-4 py-2 rounded-full shadow-md hover:bg-purple-600 transition-colors duration-300 ease-in-out" style="width: 200px;">Inscriptions</button>
|
||||
</router-link>
|
||||
</div>
|
||||
</div>
|
||||
</v-app>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Mobile View -->
|
||||
<div class="sm:hidden flex flex-col items-center justify-center w-full">
|
||||
<img class="w-72 shadow-lg rounded-lg mb-6" src="/images/hutopymedia/loginpage/loginhutopy.png" alt="hutopy login">
|
||||
<h1 class="text-center text-2xl font-bold mb-4">Connexion</h1>
|
||||
<h2 class="text-center text-xl mb-4">Comment souhaitez-vous vous connecter à votre compte?</h2>
|
||||
<form class="w-72 mb-4">
|
||||
<div class="mb-4">
|
||||
<input type="text" v-model="user.email" placeholder="Nom d'utilisateur" class="w-full px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-purple-800">
|
||||
</div>
|
||||
<div class="mb-4">
|
||||
<input type="password" v-model="user.password" placeholder="Mot de passe" class="w-full px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-purple-800">
|
||||
</div>
|
||||
</form>
|
||||
<div class="flex justify-end w-72 mb-4">
|
||||
<router-link to="/">
|
||||
<button class="bg-purple-800 text-white px-4 py-2 rounded-lg shadow-md hover:bg-purple-600 transition-colors duration-300 ease-in-out mr-2">Accueil</button>
|
||||
</router-link>
|
||||
<button class="bg-blue-500 text-white px-4 py-2 rounded-lg shadow-md hover:bg-blue-400 transition-colors duration-300 ease-in-out" @click="login">Login</button>
|
||||
</div>
|
||||
<div class="flex justify-center mb-4">
|
||||
<google-login :callback="googleCallback" popup-type="TOKEN">
|
||||
<button class="bg-blue-600 text-white px-4 py-2 rounded-lg shadow-md hover:bg-blue-500 transition-colors duration-300 ease-in-out mr-2 flex items-center">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="800px" height="800px" viewBox="-3 0 262 262" preserveAspectRatio="xMidYMid"><path d="M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622 38.755 30.023 2.685.268c24.659-22.774 38.875-56.282 38.875-96.027" fill="#4285F4"/><path d="M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055-34.523 0-63.824-22.773-74.269-54.25l-1.531.13-40.298 31.187-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1" fill="#34A853"/><path d="M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82 0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602l42.356-32.782" fill="#FBBC05"/><path d="M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0 79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251" fill="#EB4335"/></svg>
|
||||
</button>
|
||||
</google-login>
|
||||
<facebook-auth :appId="facebookAppId" @on-submit="facebookCallback">
|
||||
<button class="bg-blue-700 text-white px-4 py-2 rounded-lg shadow-md hover:bg-blue-600 transition-colors duration-300 ease-in-out flex items-center">
|
||||
<svg class="w-5 h-5 mr-2" viewBox="0 0 24 24">
|
||||
<path fill="#ffffff" d="M22.675 0H1.325C.593 0 0 .593 0 1.325v21.351C0 23.406.593 24 1.325 24H12.82v-9.294H9.692v-3.622h3.128V8.413c0-3.1 1.893-4.788 4.659-4.788 1.325 0 2.464.099 2.796.143v3.24l-1.918.001c-1.504 0-1.794.714-1.794 1.763v2.313h3.587l-.467 3.622h-3.12V24h6.116C23.407 24 24 23.406 24 22.676V1.325C24 .593 23.407 0 22.675 0z"></path>
|
||||
</svg>
|
||||
Facebook Login
|
||||
</button>
|
||||
</facebook-auth>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<h2 class="text-xl mb-4">Pas encore inscrit?</h2>
|
||||
<router-link :to="{ name: 'join' }">
|
||||
<button class="bg-purple-800 text-white px-4 py-2 rounded-full shadow-md hover:bg-purple-600 transition-colors duration-300 ease-in-out" style="width: 200px;">Inscriptions</button>
|
||||
</router-link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
<script setup>
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
import {auth} from '@/stores/auth.js';
|
||||
import {ref} from 'vue';
|
||||
import {useRouter} from 'vue-router';
|
||||
import {useClient} from "@/plugins/api.js";
|
||||
import {GoogleLogin} from "vue3-google-login";
|
||||
import { FacebookAuth } from '@xtiannyeto/vue-auth-social';
|
||||
import {FacebookAuth} from '@xtiannyeto/vue-auth-social';
|
||||
|
||||
const api = useClient()
|
||||
|
||||
@@ -116,13 +118,14 @@ let user = ref({});
|
||||
let errorSnackBar = ref(false);
|
||||
|
||||
async function login() {
|
||||
// TODO: Make the store handle errors
|
||||
try {
|
||||
await store.login(api, user.value.email, user.value.password)
|
||||
await router.push('/');
|
||||
} catch (error) {
|
||||
errorSnackBar.value = true;
|
||||
}
|
||||
// TODO: Make the store handle errors
|
||||
try {
|
||||
await store.login(api, user.value.email, user.value.password)
|
||||
await router.push('/');
|
||||
} catch (error) {
|
||||
errorSnackBar.value = true;
|
||||
}
|
||||
window.location.reload();
|
||||
}
|
||||
|
||||
const googleCallback = async (response) => {
|
||||
@@ -134,273 +137,7 @@ const googleCallback = async (response) => {
|
||||
|
||||
const facebookAppId = import.meta.env.VITE_FACEBOOK_APP_ID;
|
||||
const facebookCallback = async (response) => {
|
||||
console.log("User Successfully Logged In" , response)
|
||||
console.log("User Successfully Logged In", response)
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.h1-connexion {
|
||||
font-size: 0.55em;
|
||||
}
|
||||
|
||||
.h2-connexion {
|
||||
font-size: 0.55em;
|
||||
}
|
||||
|
||||
.label-mail-password {
|
||||
margin-bottom: -10%;
|
||||
}
|
||||
|
||||
|
||||
@media (min-width: 300px) {
|
||||
.h1-connexion {
|
||||
font-size: 2em;
|
||||
margin-bottom: 5%;
|
||||
}
|
||||
|
||||
.h2-connexion {
|
||||
font-size: 1.1em;
|
||||
margin-bottom: 5%;
|
||||
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.h2pasinscrit {
|
||||
margin-bottom: 6%;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.inscriptionbtn {
|
||||
transform: scale(.7);
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 450px) and (max-width: 670px) {
|
||||
.h1-connexion {
|
||||
font-size: 2em;
|
||||
margin-bottom: 5%;
|
||||
}
|
||||
|
||||
.h2-connexion {
|
||||
font-size: 1.1em;
|
||||
margin-bottom: 5%;
|
||||
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.h2pasinscrit {
|
||||
margin-bottom: 6%;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.inscriptionbtn {
|
||||
transform: scale(.7);
|
||||
}
|
||||
|
||||
.login-picture {
|
||||
width: auto;
|
||||
border-radius: 30px;
|
||||
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.5);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 641px) and (max-width: 770px) {
|
||||
.h1-connexion {
|
||||
font-size: 2.5em;
|
||||
}
|
||||
|
||||
.h2-connexion {
|
||||
font-size: 1.1em;
|
||||
margin-bottom: 5%;
|
||||
}
|
||||
|
||||
.h2pasinscrit {
|
||||
margin-bottom: 5%;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.label-mail-password {
|
||||
margin-bottom: -3%;
|
||||
width: 425px;
|
||||
margin-left: 6%;
|
||||
|
||||
}
|
||||
|
||||
.btnhome {
|
||||
|
||||
font-size: 1em;
|
||||
|
||||
justify-content: center;
|
||||
transform: matrix(1, 0, 0, 1, -160, 0);
|
||||
}
|
||||
|
||||
.login-picture {
|
||||
width: auto;
|
||||
border-radius: 30px;
|
||||
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.5);
|
||||
|
||||
|
||||
}
|
||||
|
||||
.inscriptionbtn {
|
||||
transform: scale(.8);
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 769px) and (max-width: 1280px) {
|
||||
.h1-connexion {
|
||||
font-size: 3em;
|
||||
}
|
||||
|
||||
.h2-connexion {
|
||||
font-size: 1.2em;
|
||||
margin-bottom: 5%;
|
||||
}
|
||||
|
||||
.h2pasinscrit {
|
||||
margin-bottom: 5%;
|
||||
font-size: 1.7em;
|
||||
}
|
||||
|
||||
.label-mail-password {
|
||||
margin-bottom: -3%;
|
||||
width: 550px;
|
||||
margin-left: 9%;
|
||||
|
||||
}
|
||||
|
||||
.inscriptionbtn {
|
||||
transform: scale(.8);
|
||||
}
|
||||
|
||||
.login-picture {
|
||||
width: auto;
|
||||
border-radius: 30px;
|
||||
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.5);
|
||||
|
||||
|
||||
}
|
||||
|
||||
.btnhome {
|
||||
font-size: 1em;
|
||||
|
||||
justify-content: center;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1279px) and (max-width: 1920px) {
|
||||
.h1-connexion {
|
||||
font-size: 2em;
|
||||
margin-top: 4%;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.h2-connexion {
|
||||
font-size: 1em;
|
||||
margin-bottom: 5%;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.h2pasinscrit {
|
||||
margin-bottom: 5%;
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
.label-mail-password {
|
||||
margin-bottom: -10%;
|
||||
margin-top: -4%;
|
||||
|
||||
}
|
||||
|
||||
.inscriptionbtn {
|
||||
transform: scale(.6);
|
||||
margin-top: -5%;
|
||||
}
|
||||
|
||||
.login-picture {
|
||||
width: auto;
|
||||
border-radius: 30px;
|
||||
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.5);
|
||||
margin-left: -5%;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1921px) {
|
||||
.h1-connexion {
|
||||
font-size: 4.2em;
|
||||
}
|
||||
|
||||
.h2-connexion {
|
||||
font-size: 1.3em;
|
||||
margin-bottom: 5%;
|
||||
margin-left: 6%;
|
||||
}
|
||||
|
||||
.h2pasinscrit {
|
||||
margin-bottom: 5%;
|
||||
font-size: 1.7em;
|
||||
}
|
||||
|
||||
|
||||
.label-mail-password {
|
||||
margin-left: 5%;
|
||||
margin-bottom: 0%;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.connexion-container {
|
||||
margin-left: -7%;
|
||||
|
||||
}
|
||||
|
||||
.login-picture {
|
||||
width: auto;
|
||||
border-radius: 30px;
|
||||
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.5);
|
||||
margin-left: -10%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 2500px) and (max-width: 4000px) {
|
||||
.h1-connexion {
|
||||
font-size: 6.2em;
|
||||
}
|
||||
|
||||
.h2-connexion {
|
||||
font-size: 1.7em;
|
||||
margin-bottom: 5%;
|
||||
}
|
||||
|
||||
.h2pasinscrit {
|
||||
margin-bottom: 5%;
|
||||
font-size: 1.7em;
|
||||
}
|
||||
|
||||
.label-mail-password {
|
||||
margin-bottom: 0%;
|
||||
margin-left: 10%;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.inscriptionbtn {
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
|
||||
.connexion-container {
|
||||
margin-left: -3%;
|
||||
}
|
||||
|
||||
.login-picture {
|
||||
width: auto;
|
||||
border-radius: 30px;
|
||||
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.5);
|
||||
margin-left: -5%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
<template>
|
||||
|
||||
<body style="background-color: #f4f4f4;">
|
||||
|
||||
<DefaultLayout></DefaultLayout>
|
||||
<v-container>
|
||||
<div class="margin-top-mobile">
|
||||
<v-row style="margin-top: 4%; margin-bottom: 2%" class="d-flex justify-center align-center">
|
||||
@@ -60,14 +57,10 @@
|
||||
</template>
|
||||
</v-snackbar>
|
||||
</v-container>
|
||||
<FooterLayout></FooterLayout>
|
||||
|
||||
</body>
|
||||
|
||||
</template>
|
||||
|
||||
<script async setup>
|
||||
import DefaultLayout from '@/layouts/DefaultLayout.vue';
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
import { useClient } from '@/plugins/api.js';
|
||||
import { onBeforeMount, ref } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
<template>
|
||||
<v-app style="background-color: #f4f4f4;">
|
||||
<DefaultLayout></DefaultLayout>
|
||||
|
||||
<v-row>
|
||||
<v-col cols=6 align="center">
|
||||
<v-img class="login-picture" max-width="500" src="/images/hutopymedia/loginpage/loginhutopy.png"
|
||||
@@ -58,15 +56,10 @@
|
||||
</div>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
|
||||
<FooterLayout></FooterLayout>
|
||||
</v-app>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import DefaultLayout from '@/layouts/DefaultLayout.vue';
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
import { RouterLink } from "vue-router";
|
||||
</script>
|
||||
|
||||
|
||||
224
src/views/documentation/About.vue
Normal file
224
src/views/documentation/About.vue
Normal file
@@ -0,0 +1,224 @@
|
||||
<template>
|
||||
|
||||
<div class="document">
|
||||
|
||||
<h1>À propos</h1>
|
||||
|
||||
<p>
|
||||
Bienvenue sur la page "À Propos" d’Hutopy, où nous partageons notre histoire, notre mission,
|
||||
notre vision, et vous présentons l'équipe passionnée qui rend tout cela possible. Hutopy
|
||||
n'est pas seulement une plateforme ; c'est une communauté, un mouvement, un lieu où la
|
||||
créativité rencontre la technologie pour créer des expériences inoubliables.
|
||||
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Notre Histoire
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Hutopy a été fondée en 2024, née de l'idée simple mais puissante que chaque créateur qu'il
|
||||
soit grand ou petit, novice ou expérimenté, devrait avoir accès aux outils et au soutien
|
||||
nécessaires pour partager sa passion avec le monde.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Notre Mission
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Notre mission est de démocratiser la création de contenu numérique, en offrant une
|
||||
plateforme accessible, intuitive et puissante qui permet aux créateurs de tout horizon de
|
||||
s'exprimer, d'innover et de connecter avec une audience mondiale. Nous nous engageons à
|
||||
fournir les outils, les ressources et le soutien nécessaires pour que chaque voix puisse
|
||||
être entendue.
|
||||
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Notre Vision
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Nous envisageons un monde où la barrière entre les créateurs et leur audience est réduite au
|
||||
minimum, où les idées, l'expertise et les histoires peuvent circuler librement et sans
|
||||
entrave. Hutopy aspire à être au cœur de cet écosystème créatif et professionnel, en étant
|
||||
une source d'inspiration, une plateforme de lancement et un foyer pour tous.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Notre Équipe
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Derrière Hutopy, il y a une équipe de penseurs innovants, de créatifs passionnés et de
|
||||
technologues dévoués, tous unis par le désir de soutenir la communauté des créateurs de
|
||||
contenu. Notre équipe est notre plus grande force, chaque membre apportant une expertise
|
||||
unique et une perspective fraîche à notre mission commune.
|
||||
</p>
|
||||
|
||||
<br>
|
||||
<v-row justify="center">
|
||||
<v-card max-width="250px" style="margin: 10px;">
|
||||
|
||||
<img class="member-profile-picture"
|
||||
src="/images/hutopymedia/tospage/membersPictures/profileMarco.png"
|
||||
alt="Marc-Olivier Hébert">
|
||||
|
||||
<div style="margin: 10px;">
|
||||
<v-typography class="name"
|
||||
style="font-size: 1.5rem; font-weight: bold;">Marc-Olivier
|
||||
</v-typography>
|
||||
<br>
|
||||
<v-typography class="name"
|
||||
style="font-size: 1.5rem; font-weight: bold;">
|
||||
Hébert
|
||||
</v-typography>
|
||||
<br>
|
||||
<v-typography class="task" style="font-size: 1rem;">Fondateur</v-typography>
|
||||
<br><br>
|
||||
<p class="text" style="hyphens: auto; font-size: 0.8rem; text-align: justify;">Avec
|
||||
une
|
||||
vision claire et un engagement sans faille, il a lancé Hutopy pour changer la
|
||||
manière dont le contenu est créé et partagé.</p>
|
||||
</div>
|
||||
</v-card>
|
||||
<v-card max-width="250px" style="margin: 10px;">
|
||||
<img class="member-profile-picture"
|
||||
src="/images/hutopymedia/tospage/membersPictures/profileDominique.png"
|
||||
alt="Dominic Villemure">
|
||||
|
||||
<div style="margin: 10px;">
|
||||
<v-typography class="name" style="font-size: 1.5rem; font-weight: bold;">Dominic
|
||||
</v-typography>
|
||||
<br>
|
||||
<v-typography class="name" style="font-size: 1.5rem; font-weight: bold;">
|
||||
Villemure
|
||||
</v-typography>
|
||||
<br>
|
||||
<v-typography class="task" style="font-size: 1rem;">Responsable
|
||||
Technique
|
||||
</v-typography>
|
||||
<br><br>
|
||||
<p class="text" style="hyphens: auto; font-size: 0.8rem; text-align: justify;">À la
|
||||
tête de notre équipe de développement, il assure qu’Hutopy reste à la pointe de
|
||||
la technologie.
|
||||
</p>
|
||||
</div>
|
||||
</v-card>
|
||||
|
||||
<v-card max-width="250px" style="margin: 10px;">
|
||||
<img class="member-profile-picture"
|
||||
src="/images/hutopymedia/tospage/membersPictures/profilePascal.png"
|
||||
alt="Pascal Marchesseault">
|
||||
<div style="margin: 10px;">
|
||||
<v-typography class="name" style="font-size: 1.5rem; font-weight: bold;">Pascal
|
||||
</v-typography>
|
||||
<br>
|
||||
<v-typography class="name" style="font-size: 1.5rem; font-weight: bold;">
|
||||
Marchesseault
|
||||
</v-typography>
|
||||
<br>
|
||||
<v-typography class="task" style="font-size: 1rem;">Expérience
|
||||
utilisateur
|
||||
</v-typography>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<p class="text" style="hyphens: auto; font-size: 0.8rem; text-align: justify;">Le
|
||||
champion
|
||||
de l'expérience utilisateur, il veille à ce que chaque interaction avec Hutopy
|
||||
soit
|
||||
positive et enrichissante pour tous les utilisateurs.</p>
|
||||
</div>
|
||||
</v-card>
|
||||
|
||||
<v-card max-width="250px" style="margin: 10px;">
|
||||
<img class="member-profile-picture"
|
||||
src="/images/hutopymedia/tospage/membersPictures/profileChloe.png"
|
||||
alt="Chloé Beaugrand">
|
||||
<div style="margin: 10px;">
|
||||
<v-typography class="name" style="font-size: 1.5rem; font-weight: bold;">Chloé
|
||||
</v-typography>
|
||||
<br>
|
||||
<v-typography class="name" style="font-size: 1.5rem; font-weight: bold;">
|
||||
Beaugrand
|
||||
</v-typography>
|
||||
<br>
|
||||
<v-typography class="task" style="font-size: 1rem;">Responsable
|
||||
Marketing
|
||||
</v-typography>
|
||||
<br>
|
||||
<br>
|
||||
<p class="text" style="hyphens: auto; font-size: 0.8rem; text-align: justify;">Elle
|
||||
façonne
|
||||
l'image d’Hutopy et engage notre communauté à travers des campagnes innovantes
|
||||
et
|
||||
impactantes.</p>
|
||||
</div>
|
||||
</v-card>
|
||||
|
||||
<v-card max-width="250px" style="margin: 10px;">
|
||||
<img class="member-profile-picture"
|
||||
src="/images/hutopymedia/tospage/membersPictures/profileEdouard.png"
|
||||
alt="Édouard Letarte">
|
||||
<div style="margin: 10px;">
|
||||
<v-typography class="name" style="font-size: 1.5rem; font-weight: bold;">Édouard
|
||||
</v-typography>
|
||||
<br>
|
||||
<v-typography class="name" style="font-size: 1.5rem; font-weight: bold;">
|
||||
Letarte
|
||||
</v-typography>
|
||||
<br>
|
||||
<v-typography class="task" style="font-size: 1rem;">Intégrateur
|
||||
</v-typography>
|
||||
<br><br>
|
||||
<p class="text" style="hyphens: auto; font-size: 0.8rem; text-align: justify;">Son
|
||||
expertise nous permet d'intégrer des fonctionnalités qui permettent à Hutopy de
|
||||
devenir réalité.</p>
|
||||
</div>
|
||||
</v-card>
|
||||
|
||||
</v-row>
|
||||
|
||||
<p>
|
||||
Chez Hutopy, nous sommes plus qu'une plateforme ; nous sommes une famille dédiée à la
|
||||
réussite de nos créateurs. Nous vous invitons à nous joindre dans cette aventure
|
||||
passionnante, à partager votre créativité et votre expertise avec le monde et à faire
|
||||
d’Hutopy votre utopie. Merci de faire partie de notre histoire.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
.important {
|
||||
@apply m-2 text-red-500 my-4
|
||||
}
|
||||
|
||||
.document {
|
||||
@apply flex flex-col mx-10 space-y-4
|
||||
}
|
||||
|
||||
h1 {
|
||||
@apply self-center my-20 text-6xl font-bold
|
||||
}
|
||||
|
||||
h2 {
|
||||
@apply text-lg font-normal font-semibold font-sans
|
||||
}
|
||||
|
||||
p {
|
||||
@apply text-base font-normal font-sans
|
||||
}
|
||||
|
||||
.member-profile-picture {
|
||||
width: 250px;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
</style>
|
||||
<script setup lang="ts">
|
||||
</script>
|
||||
324
src/views/documentation/ContentPolicy.vue
Normal file
324
src/views/documentation/ContentPolicy.vue
Normal file
@@ -0,0 +1,324 @@
|
||||
<template>
|
||||
|
||||
<div class="document">
|
||||
|
||||
<h1>
|
||||
Politique de Contenu
|
||||
</h1>
|
||||
|
||||
<h2>
|
||||
Introduction
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Hutopy vise à offrir une plateforme sécurisée, inclusive et respectueuse où les créateurs
|
||||
peuvent partager leur travail et interagir avec une communauté engagée. Pour maintenir cet
|
||||
environnement, nous avons établi des lignes directrices claires concernant le type de
|
||||
contenu autorisé sur notre plateforme. En utilisant Hutopy, vous acceptez de respecter cette
|
||||
politique de contenu.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Contenu Autorisé
|
||||
</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
Hutopy encourage la publication de contenu créatif, éducatif et inspirant dans divers
|
||||
formats, y compris :
|
||||
</li>
|
||||
|
||||
<li>Arts visuels et design : Illustrations, photographies, designs graphiques respectant le
|
||||
droit d'auteur.
|
||||
</li>
|
||||
|
||||
<li>Éducation et apprentissage : Tutoriels, cours en ligne, webinaires qui favorisent
|
||||
l'apprentissage et le développement personnel.
|
||||
</li>
|
||||
|
||||
<li>Contenu écrit : Articles, blogs, poésies qui enrichissent les discussions et partagent
|
||||
des connaissances.
|
||||
</li>
|
||||
|
||||
<li>Multimédia : Vidéos, podcasts et musique originales qui respectent les droits d'auteur
|
||||
et encouragent l'expression créative.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
Contenu Interdit
|
||||
</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
Pour protéger notre communauté, certains types de contenu ne sont pas autorisés sur Hutopy,
|
||||
incluant mais non limité à :
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Contenu illégal : Tout contenu promouvant des activités illégales ou fournissant des
|
||||
instructions pour commettre des actes illégaux.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Harcèlement et discours de haine : Contenu visant à harceler, menacer, ou promouvoir la
|
||||
haine contre des individus ou des groupes basés sur la race, l'ethnie, la religion, le
|
||||
genre, l'orientation sexuelle, l'identité de genre ou tout autre caractéristique
|
||||
distinctive.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Contenu pour adultes : Matériel pornographique ou explicitement sexuel.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Violence et contenu graphique : Images ou descriptions de violence excessive, gore ou
|
||||
choquantes.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Publicité mensongère et spam : Contenu trompeur, frauduleux ou spammy.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
Droits d'Auteur et Propriété Intellectuelle
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Respect des Droits : Vous devez posséder les droits sur le contenu que vous publiez sur
|
||||
Hutopy ou avoir l'autorisation expresse du détenteur des droits pour utiliser ce contenu.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Attribution : Lorsque vous utilisez ou adaptez le contenu protégé par des droits d'auteur
|
||||
appartenant à autrui, une attribution claire et correcte doit être fournie.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Modération et Signalement
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Modération : Hutopy utilise à la fois des modérateurs humains et des outils automatisés pour
|
||||
surveiller et évaluer le contenu publié, garantissant le respect de cette politique.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Signalement : Les utilisateurs de Hutopy sont encouragés à signaler tout contenu qu'ils
|
||||
considèrent comme enfreignant notre politique de contenu via les outils de signalement
|
||||
disponibles sur la plateforme.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Conséquences des Violations
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
La violation de notre politique de contenu peut entraîner des actions allant de
|
||||
l'avertissement à la suppression du contenu ou à la suspension, voire à la résiliation du
|
||||
compte utilisateur.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Révisions de la Politique
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Hutopy se réserve le droit de modifier cette politique de contenu à tout moment pour
|
||||
refléter les changements dans nos pratiques ou pour se conformer à de nouvelles
|
||||
réglementations légales.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>
|
||||
Dans le cas d’une non conformité aux politiques de contenus :
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
1. Suspension des Fonds : Les montants accumulés sur le compte de l'utilisateur en question
|
||||
seront suspendus temporairement le temps de l'évaluation.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
2. Redistribution à des Œuvres de Charité : Si, après évaluation, le contenu est
|
||||
définitivement jugé non conforme à nos clauses de conformité, les fonds suspendus seront
|
||||
redistribués à des œuvres de charité choisies par Hutopy. L'utilisateur concerné sera
|
||||
informé de cette décision et des raisons de la non-conformité de son contenu.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Cette mesure vise à renforcer la responsabilité des créateurs quant au type de contenu
|
||||
partagé sur Hutopy, tout en soutenant des causes bénéfiques en cas de violation de nos
|
||||
directives.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Section Anti-Exploitation d’Hutopy
|
||||
</h2>
|
||||
|
||||
<h2 style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Engagement d’Hutopy
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Hutopy s'engage fermement à maintenir une plateforme sûre et respectueuse pour tous ses
|
||||
utilisateurs. Nous prenons une position intransigeante contre toute forme d'exploitation
|
||||
humaine et nous travaillons activement pour prévenir, identifier et combattre les
|
||||
comportements et contenus exploitants. Notre mission est de créer un environnement où la
|
||||
créativité et l'expression personnelle peuvent s'épanouir sans crainte d'exploitation ou
|
||||
d'abus.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Politique de Tolérance Zéro
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Nous appliquons une politique de tolérance zéro à l'égard de :
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
Exploitation sexuelle : Cela inclut, mais n'est pas limité à, la pornographie infantile,
|
||||
le trafic sexuel, et le harcèlement sexuel.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Travail forcé : Nous nous opposons à toute forme de travail forcé ou de servitude, y
|
||||
compris le travail des enfants.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Exploitation financière : Cela comprend les arnaques, la fraude et tout autre type
|
||||
d'exploitation financière.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
Politique de Tolérance Zéro
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Signalement et Actions
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>Mécanismes de Signalement : Hutopy fournit des outils faciles à utiliser pour signaler
|
||||
rapidement tout contenu ou comportement suspect d'exploitation. Nous encourageons
|
||||
vivement les utilisateurs à utiliser ces outils s'ils rencontrent ou soupçonnent des cas
|
||||
d'exploitation.
|
||||
</li>
|
||||
|
||||
<li>Réponse Rapide : Notre équipe dédiée examine tous les signalements avec la plus grande
|
||||
attention et prend des mesures immédiates pour adresser les problèmes signalés. Cela
|
||||
peut inclure la suppression de contenu, la suspension de comptes, et, si nécessaire, le
|
||||
signalement aux autorités compétentes.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
Collaboration avec les Autorités
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Nous collaborons étroitement avec les autorités et les organisations spécialisées pour
|
||||
combattre l'exploitation sous toutes ses formes. Hutopy est déterminé à respecter toutes les
|
||||
lois applicables et à coopérer avec les autorités dans leurs efforts de lutte contre
|
||||
l'exploitation et l'abus.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Engagements des Utilisateurs
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
En rejoignant Hutopy, les utilisateurs s'engagent à respecter nos principes
|
||||
anti-exploitation et à contribuer à la création d'un espace sûr pour tous. Tout manquement à
|
||||
ces engagements entraînera des conséquences sérieuses, conformément à notre politique de
|
||||
tolérance zéro.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Modération et Signalement
|
||||
</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
Modération : Hutopy utilise à la fois des modérateurs humains et des outils automatisés
|
||||
pour surveiller et évaluer le contenu publié, garantissant le respect de cette
|
||||
politique.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
Signalement : Les utilisateurs d’Hutopy sont encouragés à signaler tout contenu qu'ils
|
||||
considèrent comme enfreignant notre politique de contenu via les outils de signalement
|
||||
disponibles sur la plateforme.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
Conséquences des Violations
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
La violation de notre politique de contenu peut entraîner des actions allant de
|
||||
l'avertissement à la suppression du contenu ou à la suspension, voire à la résiliation du
|
||||
compte utilisateur.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Révisions de la Politique
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Hutopy se réserve le droit de modifier cette politique de contenu à tout moment pour
|
||||
refléter les changements dans nos pratiques ou pour se conformer à de nouvelles
|
||||
réglementations légales.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Contact
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Si vous avez des questions sur cette politique de contenu ou sur la manière dont nous
|
||||
l'appliquons, veuillez contacter notre équipe d'assistance à <a
|
||||
href="mailto:support@hutopy.com">support@hutopy.com</a>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
.document {
|
||||
@apply flex flex-col mx-10 space-y-4
|
||||
}
|
||||
|
||||
h1 {
|
||||
@apply self-center my-20 text-6xl font-bold
|
||||
}
|
||||
|
||||
h2 {
|
||||
@apply text-lg font-normal font-semibold font-sans
|
||||
}
|
||||
|
||||
p {
|
||||
@apply text-base font-normal font-sans
|
||||
}
|
||||
|
||||
</style>
|
||||
<script setup lang="ts">
|
||||
</script>
|
||||
108
src/views/documentation/CreatorGuide.vue
Normal file
108
src/views/documentation/CreatorGuide.vue
Normal file
@@ -0,0 +1,108 @@
|
||||
<template>
|
||||
|
||||
<div class="document">
|
||||
|
||||
<h1>Guide pour les Créateurs</h1>
|
||||
|
||||
<h2>
|
||||
Bienvenue dans la Communauté de Créateurs d’Hutopy
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Félicitations pour avoir choisi Hutopy pour partager votre créativité et votre savoir ! Ce
|
||||
guide est conçu pour vous aider à maximiser votre présence sur la plateforme, à engager
|
||||
votre audience et à tirer le meilleur parti des outils à votre disposition.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
1. Création de Votre Profil de Créateur :
|
||||
</h2>
|
||||
|
||||
<ul>
|
||||
<li>Personnalisez Votre Profil : Ajoutez une photo de profil, une bannière et une bio
|
||||
qui
|
||||
reflète votre personnalité et votre marque de créateur.
|
||||
</li>
|
||||
<li> Liens et Contacts : Intégrez des liens vers vos autres plateformes sociales</li>
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
2. Publication de Contenu :
|
||||
</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>Diversifiez Votre Contenu : Explorez différents formats – vidéos, articles, podcasts –
|
||||
pour captiver divers segments d'audience.
|
||||
</li>
|
||||
|
||||
<li> Planification et Consistance : Publiez régulièrement pour garder votre audience
|
||||
engagée. Utilisez l'outil de planification d’Hutopy pour organiser vos publications à
|
||||
l'avance.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
3. Engagement avec Votre Audience :
|
||||
</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>Interagissez : Répondez aux commentaires, participez à des discussions et créez des
|
||||
sondages pour encourager l'interaction.
|
||||
</li>
|
||||
|
||||
<li> Analysez Vos Performances : Utilisez les outils d'analyse d’Hutopy pour comprendre ce
|
||||
qui résonne avec votre audience et ajustez votre stratégie en conséquence.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
4. Monétisation :
|
||||
</h2>
|
||||
|
||||
<ul>
|
||||
<li>Explorez les Options : Hutopy offre plusieurs voies de monétisation, y compris les
|
||||
abonnements payants, les dons et le programme d'ambassadeur. Choisissez ce qui convient
|
||||
le mieux à votre contenu et à votre audience.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
5. Croissance et Développement :
|
||||
</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
Continuez à Apprendre : Utilisez le Centre de Ressources Éducatives d’Hutopy pour
|
||||
améliorer vos compétences et rester à jour sur les tendances du secteur. ( À venir )
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
.document {
|
||||
@apply flex flex-col mx-10 space-y-4
|
||||
}
|
||||
|
||||
h1 {
|
||||
@apply self-center my-20 text-6xl font-bold
|
||||
}
|
||||
|
||||
h2 {
|
||||
@apply text-lg font-normal font-semibold font-sans
|
||||
}
|
||||
|
||||
p {
|
||||
@apply text-base font-normal font-sans
|
||||
}
|
||||
|
||||
</style>
|
||||
<script setup lang="ts">
|
||||
</script>
|
||||
193
src/views/documentation/FAQ.vue
Normal file
193
src/views/documentation/FAQ.vue
Normal file
@@ -0,0 +1,193 @@
|
||||
<template>
|
||||
|
||||
<div class="content">
|
||||
|
||||
<h1>FAQ</h1>
|
||||
|
||||
<blockquote class="important">
|
||||
Certaines fonctionnalités ne sont pas encore implémentées, donc certains libellés sont
|
||||
prévus pour la v1.0.
|
||||
</blockquote>
|
||||
|
||||
<h2>
|
||||
Foire Aux Questions
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
La section FAQ de Hutopy est votre ressource essentielle pour trouver des réponses rapides
|
||||
aux questions les plus fréquemment posées sur notre plateforme. Explorez nos réponses
|
||||
détaillées pour optimiser votre utilisation de Hutopy et résoudre vos problèmes en un
|
||||
instant. Consultez régulièrement notre FAQ pour rester informé des dernières
|
||||
fonctionnalités.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
1. Comment puis-je créer un compte sur Hutopy ?
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Créer un compte est
|
||||
simple !
|
||||
Visitez notre page
|
||||
d'inscription, remplissez les
|
||||
informations requises, et suivez les instructions pour confirmer votre adresse e-mail ou
|
||||
vous connecter via les partenaires de connexion. Vous pourrez commencer à explorer et à
|
||||
interagir avec la communauté Hutopy immédiatement après.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
2. Quels types de contenu puis-je publier sur Hutopy ?
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Hutopy accueille une
|
||||
large
|
||||
variété de contenus créatifs, incluant mais non limité à des vidéos, articles, podcasts, et
|
||||
illustrations. Nous encourageons la diversité et l'originalité, tant que le contenu respecte
|
||||
nos valeurs.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
3. Comment Hutopy rémunère-t-il les créateurs de contenu ?
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Les créateurs peuvent monétiser leur
|
||||
contenu de plusieurs façons, notamment via des abonnements payants et des dons de la part
|
||||
des utilisateurs.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
4. Comment puis-je modifier mon profil ?
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Connectez-vous à votre compte, accédez à
|
||||
votre profil, puis cliquez sur "Éditer le profil" pour modifier vos informations, ajouter
|
||||
une bio, changer votre photo de profil, et plus encore.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
5. Est-il possible de supprimer mon compte ?
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Oui, vous pouvez faire la suppression de
|
||||
votre compte sur votre profil dans la section plus. Notez que cette action est irréversible.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
6. Que faire si j'oublie mon mot de passe ?
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Sur la page de connexion, cliquez sur "Mot
|
||||
de passe oublié ?" et suivez les instructions pour réinitialiser votre mot de passe via
|
||||
votre adresse courriel.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
7. Comment signaler un contenu inapproprié ?
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Si vous rencontrez du contenu qui viole nos
|
||||
directives, cliquer sur les trois petits points en haut de la publication et cliqué sur le
|
||||
bouton "Signaler" associé au contenu en question pour alerter notre équipe de modération.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
8. Comment puis-je contacter le support Hutopy ?
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Pour toute assistance, vous pouvez nous
|
||||
contacter via notre formulaire en ligne ou par e-mail à support@hutopy.com, ou via nos
|
||||
réseaux sociaux. Notre équipe s'efforce de répondre rapidement à toutes les demandes.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
9. Quels sont les frais pour les créateurs sur Hutopy ?
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Hutopy prélève une commission de 12% +
|
||||
0,30$ sur chaque transaction réalisée sur la plateforme, que ce soit pour les abonnements,
|
||||
les dons ou tout autre revenu généré par les créateurs. Cette commission nous aide à couvrir
|
||||
les coûts de maintenance de la plateforme, de la bande passante, d'assistance utilisateur,
|
||||
des frais de transaction de Stripe et le développement continu pour améliorer votre
|
||||
expérience sur Hutopy.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
10. Y a-t-il des frais pour s'inscrire ou pour maintenir mon compte sur Hutopy ?
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Non, l'inscription sur Hutopy est gratuite,
|
||||
et il n'y a pas de frais mensuels ou annuels pour maintenir votre compte. Vous pouvez
|
||||
commencer à utiliser Hutopy et à partager votre contenu sans aucun coût initial.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
11. Les utilisateurs doivent-ils payer pour accéder au contenu sur Hutopy ?
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Hutopy offre à la fois du contenu gratuit
|
||||
et du contenu premium. Les utilisateurs peuvent accéder gratuitement à une partie du contenu
|
||||
sur la plateforme. Cependant, certains créateurs peuvent choisir de rendre leur contenu
|
||||
accessible uniquement via un abonnement payant ou un achat unique pour soutenir leur
|
||||
travail.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
12. Existe-t-il des frais pour retirer mes gains de la plateforme ?
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Les créateurs peuvent retirer leurs gains
|
||||
sans frais supplémentaires de la part d’Hutopy. Cependant, les transactions bancaires ou les
|
||||
transferts vers des portefeuilles électroniques peuvent être soumis aux frais standards
|
||||
imposés par ces services ou institutions financières, mais pas par Hutopy.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
13. Les frais Hutopy sont-ils les mêmes pour tous les types de contenu ?
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Oui, les frais de commission d’Hutopy sont
|
||||
uniformément appliqués à tous les types de contenu et de transactions sur la plateforme pour
|
||||
maintenir la simplicité et la transparence et ce peut importe le montant.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
.important {
|
||||
@apply m-2 text-red-500 my-4
|
||||
}
|
||||
|
||||
.document {
|
||||
@apply flex flex-col mx-10 space-y-4
|
||||
}
|
||||
|
||||
h1 {
|
||||
@apply self-center my-20 text-6xl font-bold
|
||||
}
|
||||
|
||||
h2 {
|
||||
@apply text-lg font-normal font-semibold font-sans
|
||||
}
|
||||
|
||||
p {
|
||||
@apply text-base font-normal font-sans
|
||||
}
|
||||
|
||||
</style>
|
||||
<script setup lang="ts">
|
||||
</script>
|
||||
86
src/views/documentation/HelpAndContact.vue
Normal file
86
src/views/documentation/HelpAndContact.vue
Normal file
@@ -0,0 +1,86 @@
|
||||
<template>
|
||||
|
||||
<div class="content">
|
||||
|
||||
<h1>Aide et Contact</h1>
|
||||
|
||||
<p>
|
||||
Bienvenue dans notre espace d'assistance ! Que vous soyez un créateur à la recherche de
|
||||
conseils pour optimiser votre présence sur Hutopy, ou un utilisateur curieux d'en apprendre
|
||||
plus sur notre plateforme, vous êtes au bon endroit. Notre objectif est de vous fournir tout
|
||||
le soutien nécessaire pour que votre expérience sur Hutopy soit aussi enrichissante et
|
||||
agréable que possible.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
FAQ (Foire Aux Questions)
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Retrouvez les réponses aux questions les plus fréquemment posées concernant l'utilisation
|
||||
d’Hutopy, les fonctionnalités de la plateforme, les options de monétisation, et plus encore.
|
||||
Consulter la FAQ
|
||||
</p>
|
||||
|
||||
<h2>Contactez-Nous</h2>
|
||||
|
||||
<p>Nous sommes toujours ravis d'entendre nos utilisateurs ! Que ce
|
||||
soit pour partager vos retours, poser une question spécifique, ou demander des
|
||||
renseignements sur des partenariats, n'hésitez pas à nous contacter.</p>
|
||||
|
||||
<p>
|
||||
- Par E-mail : <a href="mailto:info@hutopy.com" style="color: #a30e79;">info@hutopy.com</a>
|
||||
<br>
|
||||
- Réseaux Sociaux : Nous sommes actifs sur <a href="https://www.facebook.com/Hutopy"
|
||||
style="color: #a30e79;">Facebook</a>, et <a
|
||||
href="https://www.instagram.com/hutopy.inc"
|
||||
style="color: #a30e79;">Instagram</a> <br>
|
||||
- Suivez-nous pour rester informé et interagir avec notre communauté.
|
||||
</p>
|
||||
|
||||
<h2>Assistance Technique</h2>
|
||||
|
||||
<p>
|
||||
Rencontrez-vous un problème technique ? <br>
|
||||
Notre équipe d'assistance est là pour vous aider :
|
||||
<a href="mailto:support@hutopy.com" style="color: #a30e79;">support@hutopy.com</a>
|
||||
</p>
|
||||
|
||||
<p>Nous sommes là pour rendre votre expérience sur Hutopy aussi fluide
|
||||
et positive que possible. N'hésitez pas à nous contacter pour toute aide supplémentaire !
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
.important {
|
||||
@apply m-2 text-red-500 my-4
|
||||
}
|
||||
|
||||
.document {
|
||||
@apply flex flex-col mx-10 space-y-4
|
||||
}
|
||||
|
||||
h1 {
|
||||
@apply self-center my-20 text-6xl font-bold
|
||||
}
|
||||
|
||||
h2 {
|
||||
@apply text-lg font-normal font-semibold font-sans
|
||||
}
|
||||
|
||||
p {
|
||||
@apply text-base font-normal font-sans
|
||||
}
|
||||
|
||||
.member-profile-picture {
|
||||
width: 250px;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
</style>
|
||||
<script setup lang="ts">
|
||||
</script>
|
||||
68
src/views/documentation/Pricing.vue
Normal file
68
src/views/documentation/Pricing.vue
Normal file
@@ -0,0 +1,68 @@
|
||||
<template>
|
||||
|
||||
<div class="document">
|
||||
|
||||
<h1>Frais</h1>
|
||||
|
||||
<h2>
|
||||
Frais
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Découvrez Hutopy, l'endroit où la valorisation de votre travail atteint son apogée. Avec une
|
||||
commission réduite à seulement 9 %, notre engagement envers votre succès est palpable.
|
||||
Chaque pourcentage prélevé est réinvesti avec soin pour catalyser votre croissance afin de
|
||||
développer des fonctionnalités innovantes, maintenir une infrastructure technologique de
|
||||
pointe, et un support utilisateur de premier ordre. Notre objectif ? Amplifier votre
|
||||
expansion et garantir une expérience utilisateur sans précédent.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Pour chaque transaction, un frais minime assure la sécurité et la fiabilité des paiements,
|
||||
grâce à un partenaire de confiance mondialement reconnu. Ce dernier sécurise des milliards
|
||||
en transactions chaque année pour une diversité d'entreprises, à des entreprises en
|
||||
démarrage aux conglomérats établis. Ce gage de sécurité est disponible pour une somme de 2,9
|
||||
% plus un 0,30 $ par transaction, une petite contribution pour la tranquillité d'esprit et
|
||||
la protection de vos revenus.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Notre modèle tarifaire, pensé pour la simplicité et la transparence, a pour ambition ultime
|
||||
d'optimiser vos gains. Chez Hutopy, la notion de partenariat prend tout son sens : votre
|
||||
épanouissement est au cœur de nos préoccupations. Bénéficiez d'une plateforme qui élargit
|
||||
votre horizon créatif et entrepreneurial, tout en vous assurant que vos intérêts et ceux de
|
||||
vos donnateurs sont précieusement gardés.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Hutopy est plus qu'une plateforme ; c'est une communauté où la transformation de la passion
|
||||
en profit devient réalité, grâce au soutien indéfectible d'une équipe dévouée à enrichir
|
||||
votre parcours. Nous vous invitons à nous rejoindre pour explorer ensemble les avenues de
|
||||
succès, tout en vous garantissant une part conséquente de vos revenus. Embarquez dans une
|
||||
aventure où votre présence en ligne ne connaît pas de limites, soutenue par Hutopy, votre
|
||||
allié dans la quête du succès.
|
||||
</p>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
.document {
|
||||
@apply flex flex-col mx-10 space-y-4
|
||||
}
|
||||
|
||||
h1 {
|
||||
@apply self-center my-20 text-6xl font-bold
|
||||
}
|
||||
|
||||
h2 {
|
||||
@apply text-lg font-normal font-semibold font-sans
|
||||
}
|
||||
|
||||
p {
|
||||
@apply text-base font-normal font-sans
|
||||
}
|
||||
|
||||
</style>
|
||||
<script setup lang="ts">
|
||||
</script>
|
||||
151
src/views/documentation/TermsAndConditions.vue
Normal file
151
src/views/documentation/TermsAndConditions.vue
Normal file
@@ -0,0 +1,151 @@
|
||||
<template>
|
||||
|
||||
<div class="document">
|
||||
|
||||
<h1>Conditions générales</h1>
|
||||
|
||||
<h2>
|
||||
Bienvenue sur Hutopy
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
En accédant à la plateforme Hutopy et en l'utilisant, vous acceptez de vous conformer aux
|
||||
conditions générales d'utilisation suivantes, qui sont conçues pour assurer une expérience
|
||||
sûre, respectueuse et positive pour tous les utilisateurs. Ces conditions s'appliquent à
|
||||
tous les visiteurs, utilisateurs et autres personnes qui accèdent ou utilisent le
|
||||
service.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Utilisation Acceptable
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
1. Contenu : Vous vous engagez à ne pas publier de contenu illégal, diffamatoire,
|
||||
abusif, pornographique, haineux, raciste ou de toute autre nature susceptible de causer
|
||||
du tort. Tout contenu publié reste sous votre responsabilité.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
2. Comportement : Tout comportement visant à nuire à d'autres utilisateurs, à la
|
||||
plateforme ou à ses opérations est strictement interdit. Cela inclut le piratage, la
|
||||
diffusion de logiciels malveillants et les tentatives d'hameçonnage.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Droits de Propriété Intellectuelle
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Le contenu publié sur Hutopy par les utilisateurs reste la propriété de leurs créateurs
|
||||
respectifs. En publiant du contenu sur Hutopy, vous accordez à la plateforme une licence non
|
||||
exclusive, transférable, libre de droits et mondiale pour utiliser, reproduire, modifier,
|
||||
publier, traduire et distribuer ce contenu dans tout média.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Confidentialité
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
La protection de vos données personnelles est de la plus haute importance pour Hutopy. Votre
|
||||
information est collectée et utilisée conformément à notre politique de confidentialité.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Limitation de Responsabilité
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Hutopy et ses affiliés ne seront pas responsables des dommages indirects, accidentels,
|
||||
spéciaux, consécutifs ou punitifs, y compris sans limitation, la perte de profits, de
|
||||
données ou d'usage, que ce soit dans une action contractuelle, délictuelle y compris la
|
||||
négligence ou autre, découlant de ou en relation avec l'accès ou l'utilisation de la
|
||||
plateforme Hutopy.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Clause de Non-Poursuite
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
En acceptant ces conditions générales d'utilisation, vous convenez qu'en aucun cas Hutopy,
|
||||
ses dirigeants, employés, partenaires, agents, fournisseurs ou affiliés ne pourront être
|
||||
tenus responsables de dommages directs, indirects, accidentels, spéciaux, consécutifs ou
|
||||
exemplaires résultant de votre utilisation de la plateforme Hutopy. Par conséquent, vous
|
||||
renoncez expressément à tout droit de poursuivre Hutopy et ses affiliés pour toute
|
||||
réclamation liée à votre utilisation de la plateforme.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Gestion du Contenu Inapproprié et Sanctions Financières
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Hutopy s'engage à maintenir un environnement sûr et respectueux pour tous ses utilisateurs.
|
||||
Ainsi, tout contenu publié sur la plateforme est sujet à une évaluation de conformité avec
|
||||
nos directives et nos standards éthiques. Dans l'éventualité où le contenu d'un utilisateur
|
||||
est jugé inapproprié, offensant ou en violation avec nos Acceptation des Conditions<br>
|
||||
<br>
|
||||
Votre accès et votre utilisation continue de la plateforme Hutopy constituent votre
|
||||
acceptation des présentes conditions générales et de toutes les modifications futures. Il
|
||||
est de votre responsabilité de vous tenir informé des mises à jour de ces conditions. <br>
|
||||
<br>
|
||||
Nous vous encourageons à utiliser Hutopy de manière responsable et conforme à nos
|
||||
directives, afin de contribuer à une communauté positive et enrichissante pour tous.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Modifications des Conditions
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Hutopy se réserve le droit de modifier ou de remplacer ces conditions à tout moment. Il est
|
||||
de votre responsabilité de revoir régulièrement ces conditions pour vous tenir informé des
|
||||
mises à jour.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Résiliation
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Hutopy peut résilier ou suspendre votre accès à la plateforme immédiatement, sans préavis ni
|
||||
responsabilité, pour quelque raison que ce soit, y compris, sans limitation, si vous violez
|
||||
les conditions.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
Loi Applicable
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
Ces conditions seront régies et interprétées conformément aux lois du pays/juridiction où
|
||||
est basée la plateforme, sans égard à ses conflits de dispositions légales.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
.document {
|
||||
@apply flex flex-col mx-10 space-y-4
|
||||
}
|
||||
|
||||
h1 {
|
||||
@apply self-center my-20 text-6xl font-bold
|
||||
}
|
||||
|
||||
h2 {
|
||||
@apply text-lg font-normal font-semibold font-sans
|
||||
}
|
||||
|
||||
p {
|
||||
@apply text-base font-normal font-sans
|
||||
}
|
||||
|
||||
</style>
|
||||
<script setup lang="ts">
|
||||
</script>
|
||||
111
src/views/main/Aboutyou.vue
Normal file
111
src/views/main/Aboutyou.vue
Normal file
@@ -0,0 +1,111 @@
|
||||
<template>
|
||||
<div class="py-8" ref="container">
|
||||
<div class="text-center text-2xl py-4 border-t-4">À propos de vous</div>
|
||||
<div class="px-5 relative">
|
||||
<div class="flex flex-col space-y-4">
|
||||
<div>
|
||||
<div class="flex justify-between items-center mb-2">
|
||||
<label class="text-lg">Prénom</label>
|
||||
</div>
|
||||
<v-text-field v-model="firstName" label="Prénom" variant="outlined"></v-text-field>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex justify-between items-center mb-2">
|
||||
<label class="text-lg">Nom</label>
|
||||
</div>
|
||||
<v-text-field v-model="lastName" label="Nom" variant="outlined"></v-text-field>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex justify-between items-center mb-2">
|
||||
<label class="text-lg">Occupation</label>
|
||||
</div>
|
||||
<v-text-field v-model="occupation" label="Occupation" variant="outlined"></v-text-field>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex justify-between items-center mb-2">
|
||||
<label class="text-lg">Courriel</label>
|
||||
</div>
|
||||
<v-text-field v-model="email" label="Courriel" variant="outlined"></v-text-field>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex justify-between items-center mb-2">
|
||||
<label class="text-lg">Téléphone</label>
|
||||
</div>
|
||||
<v-text-field v-model="phone" label="Téléphone" variant="outlined"></v-text-field>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex justify-between items-center mb-2">
|
||||
<label class="text-lg">Date de naissance (JJ/MM/AAAA)</label>
|
||||
</div>
|
||||
<v-text-field v-model="birthDate" label="Date de naissance" variant="outlined"
|
||||
:rules="[dateRule]"></v-text-field>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex justify-between items-center mb-2">
|
||||
<label class="text-lg">Pays</label>
|
||||
</div>
|
||||
<v-text-field v-model="country" label="Pays" variant="outlined"></v-text-field>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex justify-between items-center mb-2">
|
||||
<label class="text-lg">Ville</label>
|
||||
</div>
|
||||
<v-text-field v-model="city" label="Ville" variant="outlined"></v-text-field>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex justify-between items-center mb-2">
|
||||
<label class="text-lg">Adresse</label>
|
||||
</div>
|
||||
<v-text-field v-model="address" label="Adresse" variant="outlined"></v-text-field>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex justify-between items-center mb-2">
|
||||
<label class="text-lg">Titre A propos</label>
|
||||
</div>
|
||||
<v-text-field v-model="titre" label="Titre A propos" variant="outlined"></v-text-field>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="flex justify-between items-center mb-2">
|
||||
<label class="text-lg">Description</label>
|
||||
</div>
|
||||
<v-textarea v-model="description" label="Description" variant="outlined"></v-textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
|
||||
const firstName = ref('');
|
||||
const lastName = ref('');
|
||||
const occupation = ref('');
|
||||
const email = ref('');
|
||||
const phone = ref('');
|
||||
const birthDate = ref('');
|
||||
const country = ref('');
|
||||
const city = ref('');
|
||||
const address = ref('');
|
||||
const titre = ref('');
|
||||
const description = ref('');
|
||||
|
||||
const dateRule = value => {
|
||||
const datePattern = /^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[0-2])\/(19|20)\d{2}$/;
|
||||
return datePattern.test(value) || 'Format de date invalide (JJ/MM/AAAA)';
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* Votre style ici */
|
||||
</style>
|
||||
36
src/views/main/Browse.vue
Normal file
36
src/views/main/Browse.vue
Normal file
@@ -0,0 +1,36 @@
|
||||
<template>
|
||||
|
||||
<div>
|
||||
|
||||
<v-img max-height="375"
|
||||
src="images/usersmedia/HutopyProfile/banners/banner01.png"
|
||||
cover>
|
||||
</v-img>
|
||||
|
||||
<div class="text-5xl font-semibold text-center py-10">
|
||||
CRÉATEURS
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-2">
|
||||
<RouterLink v-for="(creator, index) in creators"
|
||||
:key="index"
|
||||
:to="creator.routerLink">
|
||||
<CreatorCard :creator="creator"
|
||||
class="m-2">
|
||||
</CreatorCard>
|
||||
</RouterLink>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
import CreatorCard from "@/views/main/CreatorCard.vue";
|
||||
import creators from "@/views/main/creators.json"; // Import the JSON file
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
43
src/views/main/Creator.vue
Normal file
43
src/views/main/Creator.vue
Normal file
@@ -0,0 +1,43 @@
|
||||
<template>
|
||||
<div>
|
||||
|
||||
<v-img cover
|
||||
max-height="375"
|
||||
:src="imageSrc">
|
||||
</v-img>
|
||||
|
||||
<div class="w-full border-b-2 p-6">
|
||||
<PostMessage content-id="00000001-0000-0000-0000-000000000001"></PostMessage>
|
||||
</div>
|
||||
|
||||
<div class="w-full border-b-2 p-6">
|
||||
<h2 class="font-sans font-semibold">Commentaires</h2>
|
||||
<MessageList content-id="00000001-0000-0000-0000-000000000001"></MessageList>
|
||||
</div>
|
||||
|
||||
<PostContentMenu></PostContentMenu>
|
||||
|
||||
<div class="flex">
|
||||
<PostCard v-for="post in posts"
|
||||
:post="post"
|
||||
class="m-2 bg-red w-full">
|
||||
</PostCard>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
import PostContentMenu from '@/views/main/PostContentMenu.vue'
|
||||
import PostCard from "@/views/main/PostCard.vue"
|
||||
import posts from "@/views/main/posts.json"
|
||||
import PostMessage from "@/views/messages/PostMessage.vue";
|
||||
import MessageList from "@/views/messages/MessageList.vue";
|
||||
|
||||
let imageSrc = '/images/usersmedia/guillaumeMousseau/banners/bannerGuillaumeMousseau01.png';
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
22
src/views/main/CreatorCard.vue
Normal file
22
src/views/main/CreatorCard.vue
Normal file
@@ -0,0 +1,22 @@
|
||||
<template>
|
||||
<v-card class="shadow-lg rounded-lg overflow-hidden max-w-sm">
|
||||
<v-img :src="creator.imageUrl" class="w-full h-48 object-cover"></v-img>
|
||||
<v-card-title class="text-lg font-bold">{{ creator.name }}</v-card-title>
|
||||
<v-card-subtitle class="text-sm text-gray-500">{{ creator.title }}</v-card-subtitle>
|
||||
<v-card-text class="text-base text-gray-700">{{ creator.description }}</v-card-text>
|
||||
</v-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { defineProps } from 'vue';
|
||||
|
||||
defineProps({
|
||||
creator: {
|
||||
type: Object,
|
||||
required: true,
|
||||
validator: (profile) => {
|
||||
return 'image' in profile && 'name' in profile && 'title' in profile && 'description' in profile;
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
50
src/views/main/CreatorFeed.vue
Normal file
50
src/views/main/CreatorFeed.vue
Normal file
@@ -0,0 +1,50 @@
|
||||
<template>
|
||||
|
||||
<div class="mt-28">
|
||||
|
||||
<div class="max-w-md mx-auto bg-white rounded-xl shadow-md overflow-hidden md:max-w-4xl mb-4">
|
||||
<div class="md:flex">
|
||||
<div class="md:flex-shrink-0">
|
||||
<img class="h-48 w-full object-cover md:h-full md:w-48" src="/images/usersmedia/HutopyProfile/banners/banner01.png" alt="Image">
|
||||
</div>
|
||||
<div class="p-8">
|
||||
<div class="uppercase tracking-wide text-sm text-indigo-500 font-semibold">Nom du réseau social</div>
|
||||
<p class="mt-2 text-gray-500">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam.</p>
|
||||
<p class="mt-2 text-gray-500">Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="max-w-md mx-auto bg-white rounded-xl shadow-md overflow-hidden md:max-w-4xl mb-4">
|
||||
<div class="md:flex">
|
||||
<div class="md:flex-shrink-0">
|
||||
<img class="h-48 w-full object-cover md:h-full md:w-48" src="/images/usersmedia/HutopyProfile/banners/banner01.png" alt="Image">
|
||||
</div>
|
||||
<div class="p-8">
|
||||
<div class="uppercase tracking-wide text-sm text-indigo-500 font-semibold">Nom du réseau social</div>
|
||||
<p class="mt-2 text-gray-500">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam.</p>
|
||||
<p class="mt-2 text-gray-500">Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="max-w-md mx-auto bg-white rounded-xl shadow-md overflow-hidden md:max-w-4xl mb-4">
|
||||
<div class="md:flex">
|
||||
<div class="md:flex-shrink-0">
|
||||
<img class="h-48 w-full object-cover md:h-full md:w-48" src="/images/usersmedia/HutopyProfile/banners/banner01.png" alt="Image">
|
||||
</div>
|
||||
<div class="p-8">
|
||||
<div class="uppercase tracking-wide text-sm text-indigo-500 font-semibold">Nom du réseau social</div>
|
||||
<p class="mt-2 text-gray-500">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam.</p>
|
||||
<p class="mt-2 text-gray-500">Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
</script>
|
||||
@@ -1,941 +0,0 @@
|
||||
<template>
|
||||
<div style="background-color: #f4f4f4;">
|
||||
<DefaultLayout style="margin-bottom: 30px"></DefaultLayout>
|
||||
|
||||
<!-- "Mobile -->
|
||||
<v-row class="fluid hidden-md-and-up social-mobile-container"
|
||||
style="margin-top: -10px; position: relative; z-index: 0; " hidden-md-and-down>
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375" :src="imageSrc" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- "PurpleLine" -->
|
||||
<v-row style="background-color: #6b0065; height: 5px; box-shadow: rgba(0, 0, 0, 0.7);">
|
||||
</v-row>
|
||||
|
||||
<!-- "Mobile-Profile" -->
|
||||
<!-- "Profile picture" -->
|
||||
<v-row class="d-flex justify-center align-center d-sm-none" style="margin-top: 50px; margin-bottom: -10px">
|
||||
<v-img :src="profilePicture" class="elevation-4 mobile-profile-picture-creator"></v-img>
|
||||
</v-row>
|
||||
|
||||
<!-- User Social Network Links -->
|
||||
<v-container style="margin-top: -70px; padding: 0;" class="hidden-md-and-up social-container-mobile-icons"
|
||||
hidden-md-and-down>
|
||||
|
||||
<!-- Facebook -->
|
||||
<v-row no-gutters class="d-flex justify-space-between align-center" style="margin-left: 3%; margin-right: 3%;">
|
||||
<v-col cols="2" sm="2" xs="3" style="margin-top: 60px; z-index: 50;" class="d-flex justify-center align-center">
|
||||
<a href="https://www.facebook.com/GuillaumeMousseau222">
|
||||
<v-img class="socialicons-mobile" src="/images/hutopymedia/icons/black/facebookblack.png"
|
||||
alt="Facebook"></v-img>
|
||||
</a>
|
||||
</v-col>
|
||||
<!-- Instagram -->
|
||||
<v-col cols="2" sm="2" xs="3" style="margin-top: 60px; z-index: 50;" class="d-flex justify-center align-center">
|
||||
<a href="https://www.instagram.com/guillaumeaime/">
|
||||
<v-img class="socialicons-mobile" src="/images/hutopymedia/icons/black/instagramblack.png"
|
||||
alt="Instagram"></v-img>
|
||||
</a>
|
||||
</v-col>
|
||||
<!-- Profile picture - Small -->
|
||||
<v-col cols="4" sm="4" xs="0" class="hidden-xs">
|
||||
<v-row class="d-flex justify-center align-center">
|
||||
<v-img :src="profilePicture" class="elevation-4 mobile-profile-picture-creator"></v-img>
|
||||
</v-row>
|
||||
</v-col>
|
||||
|
||||
<!-- TikTok -->
|
||||
<v-col cols="2" sm="2" xs="3" style="margin-top: 60px; z-index: 50;" class="d-flex justify-center align-center">
|
||||
<a href="https://www.tiktok.com/@guillaumeaime">
|
||||
<v-img class="socialicons-mobile invert-color" src="/images/hutopymedia/icons/white/tiktokwhite.png"
|
||||
alt="TikTok"></v-img>
|
||||
</a>
|
||||
</v-col>
|
||||
|
||||
|
||||
|
||||
|
||||
<v-spacer class="hidden-xs"> </v-spacer>
|
||||
|
||||
|
||||
</v-row>
|
||||
|
||||
<!-- User informations Name title and description -->
|
||||
<v-row class="social-container-mobile">
|
||||
<v-col cols="12" xs="12" sm="4" class="d-flex justify-center">
|
||||
<v-row class="d-flex justify-center">
|
||||
{{ name }}
|
||||
</v-row>
|
||||
</v-col>
|
||||
<v-spacer xs="12" sm="4"></v-spacer>
|
||||
<v-col cols="12" xs="12" sm="4" class="d-flex justify-center">
|
||||
<v-row class="d-flex justify-center">
|
||||
{{ title }}
|
||||
</v-row>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-container style="border-bottom-left-radius: 15px; margin-top: -12px; border-bottom-right-radius: 15px;"
|
||||
class="social-icon-group-mobile">
|
||||
<v-expansion-panels style="min-width: 320px;">
|
||||
<v-col cols="12" offset="-1">
|
||||
<v-expansion-panel class="background-pink text-justify" style="color: white;"
|
||||
text="Mettre en lumière le côté humain des entrepreneurs. Chaque service, chaque produit est porteur d’une histoire, d’une passion, d’une vision unique. Mon objectif est de faire rayonner cette unicité, de créer des connexions authentiques entre ces entrepreneurs et leurs clients potentiels. Parce que derrière chaque entreprise, il y a des personnes inspirantes qui méritent d’être entendues et comprises. Et toi, quel est ton objectif pour cette année?"
|
||||
title="À propos : Ma mission est claire :">
|
||||
|
||||
|
||||
</v-expansion-panel>
|
||||
</v-col>
|
||||
</v-expansion-panels>
|
||||
</v-container>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
<!-- Bannière Pc -->
|
||||
<v-row class="fluid hidden-sm-and-down" style="margin-top: -65px; position: relative; z-index: 0; "
|
||||
hidden-sm-and-up>
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375" :src="imageSrc" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row class="hidden-sm-and-down" style="background-color: #6b0065; height: 5px; box-shadow: rgba(0, 0, 0, 0.7);"
|
||||
hidden-sm-and-up>
|
||||
</v-row>
|
||||
|
||||
<!-- "Core (Menu / Center / Donation)" -->
|
||||
<v-row>
|
||||
<!-- "Menu" -->
|
||||
<v-col cols="2" md="3" lg="3" xl="3" xxl="2" class="hidden-sm-and-down menu-col" hidden-sm-and-down>
|
||||
<v-col style="margin: 0;">
|
||||
<v-row class="Hutopy-menu-sticky-mobile">
|
||||
<v-spacer></v-spacer>
|
||||
<v-col>
|
||||
<v-container style=" overflow-y: hidden;">
|
||||
<!-- Nav-Btn -->
|
||||
<v-col cols="12" class="px-0">
|
||||
<v-img src="/images/hutopymedia/banners/hutopy.png" alt="Description de l'image"
|
||||
style="height: 150px; width: 300px;" class="mx-auto" :elevation="10"></v-img>
|
||||
<v-list dense class="main-background">
|
||||
<v-list-item v-for="item in navigationItems" :key="item.link">
|
||||
<router-link :to="item.link">
|
||||
<v-btn text class="d-flex align-start align-center main-background" elevation="0"
|
||||
outlined="false">
|
||||
<v-icon left class="mr-4">{{ item.icon }}</v-icon>
|
||||
{{ item.text }}
|
||||
</v-btn>
|
||||
</router-link>
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
</v-col>
|
||||
</v-container>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row style="height: 3000px;"></v-row>
|
||||
</v-col>
|
||||
</v-col>
|
||||
|
||||
<!-- Profile Info Picture name title & description -->
|
||||
<v-col class="middle-col" style="z-index: 5;" cols="12" xs="12" sm="12" md="6" lg="6" xl="6" xxl="8">
|
||||
<v-row class="d-flex justify-center align-center">
|
||||
<v-col xl="10" xxl="8">
|
||||
<v-container class="profile-container hidden-sm-and-down" hidden-md-and-up>
|
||||
<v-container>
|
||||
<v-img :src="profilePicture" class="elevation-4 mobile-profile-picture-creator"></v-img>
|
||||
<!-- User informations Name & title -->
|
||||
<v-container class="background-profile-container" style="margin-top: -8%;">
|
||||
<v-row>
|
||||
<v-col style="height: 50px;" cols="7" offset="2" class="social-container">
|
||||
<h1 class="name-info">{{ name }}</h1>
|
||||
</v-col>
|
||||
<v-col></v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-col style="height: 50px;" cols="6" offset="2" class="social-container2">
|
||||
<h1 class="occupation-info">{{ title }}</h1>
|
||||
</v-col>
|
||||
<v-col></v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- User Social Network Links -->
|
||||
<v-row>
|
||||
<v-spacer></v-spacer>
|
||||
<v-col cols="7" style="margin-top: 1%; margin-bottom: -2%;">
|
||||
<v-row>
|
||||
<a href="https://www.facebook.com/GuillaumeMousseau222">
|
||||
<img class="socialicons" src="/images/hutopymedia/icons/black/facebookblack.png"
|
||||
alt="Description image 2">
|
||||
</a>
|
||||
<a href="https://www.instagram.com/p/C2f-3UnNdfX/">
|
||||
<img class="socialicons" src="/images/hutopymedia/icons/black/instagramblack.png"
|
||||
alt="Description image 2">
|
||||
</a>
|
||||
|
||||
<a href="https://www.tiktok.com/@guillaumeaime">
|
||||
<img class="socialicons invert-color" src="/images/hutopymedia/icons/white/tiktokwhite.png"
|
||||
alt="Description image 2">
|
||||
</a>
|
||||
</v-row>
|
||||
</v-col>
|
||||
<v-col background-color="primary"></v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- Description -->
|
||||
<v-row>
|
||||
<v-container
|
||||
style="border-bottom-left-radius: 15px; border-bottom-right-radius: 15px; margin-top: 15px;">
|
||||
<v-expansion-panels style="min-width: 320px;">
|
||||
<v-col cols="12" offset="-1">
|
||||
<v-expansion-panel class="background-pink text-justify" style="color: white;"
|
||||
text="Mettre en lumière le côté humain des entrepreneurs. Chaque service, chaque produit est porteur d’une histoire, d’une passion, d’une vision unique. Mon objectif est de faire rayonner cette unicité, de créer des connexions authentiques entre ces entrepreneurs et leurs clients potentiels. Parce que derrière chaque entreprise, il y a des personnes inspirantes qui méritent d’être entendues et comprises. Et toi, quel est ton objectif pour cette année?"
|
||||
title="À propos : Ma mission est claire :">
|
||||
</v-expansion-panel>
|
||||
</v-col>
|
||||
</v-expansion-panels>
|
||||
</v-container>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</v-container>
|
||||
</v-container>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<v-row class="d-flex justify-center align-center">
|
||||
<v-col xl="10" xxl="8">
|
||||
<PostContentMenu style="margin-top: -30px;"></PostContentMenu>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- Card youtube balado -->
|
||||
<v-row class="d-flex justify-center align-center">
|
||||
<v-col xl="10" xxl="8">
|
||||
<v-container>
|
||||
<v-card class="flow-menu m-0 youtube-card">
|
||||
<!-- Title, date and btn -->
|
||||
<v-col>
|
||||
<v-row>
|
||||
<v-col class="text-center">
|
||||
<h1 class="card-title">
|
||||
MON PREMIER BALADO</h1>
|
||||
</v-col>
|
||||
|
||||
<!--<v-col class="text-right">
|
||||
<v-btn class="btn-card-options" flat tile elevation="0">
|
||||
<v-icon style="color: #6e6e6e; font-size: 24px;">mdi-dots-vertical</v-icon>
|
||||
</v-btn> (a intégrer)
|
||||
</v-col> -->
|
||||
</v-row>
|
||||
|
||||
</v-col>
|
||||
|
||||
<!-- Card core Video/image & text -->
|
||||
<div style="background-color: rgba(255, 255, 255, 0.1); margin-left: -5%; margin-right: -5%">
|
||||
<v-container>
|
||||
<iframe class="card-youtube" style="margin-left: 2.1%; width: 96%;"
|
||||
src="https://www.youtube.com/embed/pf95whtA_xs?start=0" title="Guillaumem" frameborder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowfullscreen></iframe>
|
||||
|
||||
<!-- Date -->
|
||||
<v-row class="text-right">
|
||||
<v-col>
|
||||
<h1 style=" margin-right: 40px; margin-top: 10px" class="card-date">
|
||||
24-04-2024
|
||||
</h1>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
|
||||
<p class="text-justify pa-10" style="margin-bottom: -50px; font-size: 1em">C’est un honneur de vous
|
||||
présenter
|
||||
mon tout premier balado. Dans ce premier épisode, les passionnés de cinéma et de gadgets seront
|
||||
particulièrement gâtés, car je dévoile les gadgets que j'utilise professionnellement. Par la
|
||||
suite,
|
||||
je
|
||||
partage mon itinéraire professionnel peu conventionnel : de mes débuts dans le secteur bovin à
|
||||
travers
|
||||
le
|
||||
Canada, à mon poste actuel comme directeur marketing chez Journal Mobile, jusqu'à la direction de
|
||||
mon
|
||||
agence
|
||||
créative, Alliés. Enfin, je vous invite à découvrir un autre aspect de ma vie à travers ma page
|
||||
personnelle,
|
||||
"Guillaume aime", où je partage tout ce qui me passionne.</p>
|
||||
|
||||
|
||||
<!-- Like dislike commment Section -->
|
||||
<div style="height: 20px;"></div>
|
||||
<div
|
||||
style="z-index: 500; margin-bottom: 2%; background-color: rgba(0, 0, 0, 1); height: 3px; width: 100%; margin-top: 20px;">
|
||||
</div>
|
||||
<div style="background-color: rgba(0, 0, 0, 1); height: 3px; width: 100%; margin-top: 20px;">
|
||||
</div>
|
||||
|
||||
<!-- Comments -->
|
||||
<v-text-field style="margin-left: 2%; margin-bottom: 15px; margin-bottom: -20px"
|
||||
placeholder="Commentaire (Arrive bientôt)"></v-text-field>
|
||||
</v-container>
|
||||
</div>
|
||||
</v-card>
|
||||
</v-container>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-col>
|
||||
|
||||
<!-- "Large-Monitor-RightCol" Donation -->
|
||||
<v-col cols="2" md="3" lg="3" xl="2" xxl="2" class="hidden-sm-and-down" hidden-sm-and-up>
|
||||
<v-row>
|
||||
<v-col>
|
||||
<v-container class="sticky-bottom-label Je-soutien-container" style="max-width: 400px ; bottom: 0;">
|
||||
<!-- Donnation -->
|
||||
<v-card style="border-radius: 20px;">
|
||||
<v-container>
|
||||
<v-row class="mb-0"
|
||||
style="background-color: #6b0065; margin-left: -24px; margin-right: -24px; margin-top: -20px; justify-content: center;">
|
||||
<v-card-title class="text-soutiens" style="margin-top: 15px;">
|
||||
JE SOUTIENS!
|
||||
</v-card-title>
|
||||
</v-row>
|
||||
<StripePayment></StripePayment>
|
||||
</v-container>
|
||||
</v-card>
|
||||
</v-container>
|
||||
<v-container style="height: 3000px;">
|
||||
</v-container>
|
||||
</v-col>
|
||||
<v-spacer>
|
||||
</v-spacer>
|
||||
</v-row>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- "Mobile" Donation -->
|
||||
<v-col class="hidden-md-and-up sticky-bottom-label" hidden-sm-and-down
|
||||
style="background-color: #6b0065; margin-top: 30px; text-align: center;">
|
||||
|
||||
<!-- Barre cliquable pour ouvrir le drawer -->
|
||||
<v-btn @click="drawerbottom = !drawerbottom" elevation="0"
|
||||
style="background-color: #6b0065; color: white; text-align: center;" class="text-soutiens ">
|
||||
JE SOUTIENS
|
||||
</v-btn>
|
||||
</v-col>
|
||||
|
||||
<!-- Drawer du bas -->
|
||||
<template>
|
||||
<div>
|
||||
<v-bottom-sheet v-model="drawerbottom" class="sticky-bottom-label" hide-overlay>
|
||||
<v-container style="background-color: #6b0065; color: white; padding: 20px; text-align: center;">
|
||||
<h1 class="text-soutiens">JE SOUTIENS</h1>
|
||||
<StripePayment></StripePayment>
|
||||
</v-container>
|
||||
</v-bottom-sheet>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<FooterLayout></FooterLayout>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import DefaultLayout from '@/layouts/DefaultLayout.vue';
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
import PostContentMenu from '@/layouts/PostContentMenu.vue';
|
||||
import { ref } from 'vue';
|
||||
import StripePayment from '../StripePayment.vue';
|
||||
let imageSrc = '/images/usersmedia/guillaumeMousseau/banners/bannerGuillaumeMousseau01.png';
|
||||
let profilePicture = '/images/usersmedia/guillaumeMousseau/profilepictures/profileGuillaumeMousseau01.png';
|
||||
let name = 'Guillaume Mousseau'
|
||||
let title = 'Créateur de contenus'
|
||||
let drawerbottom = ref(false)
|
||||
|
||||
let navigationItems = [
|
||||
{ icon: 'mdi-home', text: 'Accueil', link: 'home' },
|
||||
{ icon: 'mdi-account-group', text: 'Utilisateur', link: '/userbrowser' },
|
||||
{ icon: 'mdi-handshake', text: 'Aidez-nous', link: '/contact' },
|
||||
];
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.invert-color {
|
||||
filter: invert(1);
|
||||
}
|
||||
|
||||
|
||||
.Hutopy-menu-sticky-mobile {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
margin-top: -40px;
|
||||
}
|
||||
|
||||
.sticky-bottom-label {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.sticky-top-label {
|
||||
position: sticky;
|
||||
bottom: 0;
|
||||
right: 10%;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.text-soutiens {
|
||||
margin-bottom: 15px;
|
||||
color: white;
|
||||
font-size: 1.5rem;
|
||||
letter-spacing: 7px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
margin-top: -10px;
|
||||
margin-left: 15%;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
margin-left: 15%;
|
||||
font-size: large;
|
||||
}
|
||||
|
||||
.name-info-mobile {
|
||||
margin-left: 22px;
|
||||
font-size: 1.3rem
|
||||
}
|
||||
|
||||
.main-background {
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -16%;
|
||||
}
|
||||
|
||||
.btn-custom {
|
||||
width: 100%;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.background-profile-container {
|
||||
background-color: #ececec;
|
||||
color: white;
|
||||
border-top: 3px solid #a30e79;
|
||||
border-right: 3px solid #a30e79;
|
||||
font-weight: 700;
|
||||
font-size: 1.15rem;
|
||||
border-radius: 25px;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3)
|
||||
}
|
||||
|
||||
.background-pink {
|
||||
background-color: #cc6f91;
|
||||
color: white;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.label-text {
|
||||
font-weight: 400;
|
||||
margin-left: 3%;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.profile-name {
|
||||
margin-top: -15%;
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 35px;
|
||||
max-width: 100px;
|
||||
margin-top: 3px;
|
||||
margin-left: 40px;
|
||||
}
|
||||
|
||||
.socialicons-mobile {
|
||||
width: 35px;
|
||||
max-width: 100px;
|
||||
margin-top: 27px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.youtube-card {
|
||||
margin-left: 2%;
|
||||
margin-right: 2%;
|
||||
border-radius: 15px;
|
||||
background-color: #f4f4f4;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4)
|
||||
}
|
||||
|
||||
.card-title {
|
||||
font-size: 1.4rem;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.card-date {
|
||||
margin-left: 10px;
|
||||
margin-top: -18px;
|
||||
margin-bottom: -20px;
|
||||
font-size: .8rem;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.social-container {
|
||||
background-color: #006d77;
|
||||
border-top-right-radius: 30px;
|
||||
border-bottom-right-radius: 30px;
|
||||
font-size: 1.7rem;
|
||||
font-weight: 600;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
background-color: #0baab2;
|
||||
border-bottom-right-radius: 30px;
|
||||
font-size: 1.4rem;
|
||||
font-weight: 500;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.social-container-mobile {
|
||||
background-color: #006d77;
|
||||
font-size: 1.4rem;
|
||||
font-weight: 600;
|
||||
color: white;
|
||||
z-index: 1000;
|
||||
margin: auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.social-container2-mobile {
|
||||
background-color: #0baab2;
|
||||
z-index: 1000;
|
||||
font-size: 1.2rem;
|
||||
font-weight: 500;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.social-icon-group-mobile {
|
||||
background-color: #0baab2;
|
||||
}
|
||||
|
||||
.mini-profile-picture {
|
||||
border-radius: 100px;
|
||||
}
|
||||
|
||||
.btn-card-options {
|
||||
background-color: #f4f4f4;
|
||||
width: 50px;
|
||||
margin-left: -12px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
border-radius: 100px;
|
||||
height: 150px;
|
||||
width: 150px;
|
||||
border-radius: 50%;
|
||||
max-width: 150px;
|
||||
border: 4px solid white;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.mobile-header {
|
||||
height: 50px;
|
||||
margin-left: -13%;
|
||||
margin-top: 6%;
|
||||
}
|
||||
|
||||
.h1-navigation {
|
||||
text-align: center;
|
||||
font-weight: 600;
|
||||
margin-bottom: 10%;
|
||||
}
|
||||
|
||||
.mobile-profile-picture {
|
||||
height: 40px;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
|
||||
border: 2px solid #a30e79;
|
||||
margin-right: 10px
|
||||
}
|
||||
|
||||
.profile-banner {
|
||||
margin-top: 25px;
|
||||
min-height: 200px
|
||||
}
|
||||
|
||||
.v-navigation-drawer {
|
||||
max-height: 100vh;
|
||||
}
|
||||
|
||||
@media (min-width: 150px) and (max-width: 474px) {
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.5) translateY(-30%) translateX(0%);
|
||||
}
|
||||
|
||||
.socialicons-mobile {
|
||||
width: 35px;
|
||||
max-width: 100px;
|
||||
margin-top: 0px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media (min-width: 475px) and (max-width: 599px) {
|
||||
.socialicons-mobile {
|
||||
width: 35px;
|
||||
max-width: 100px;
|
||||
margin-top: 0px;
|
||||
margin-left: px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.5) translateY(-30%) translateX(0%);
|
||||
}
|
||||
|
||||
.profile-container-mobile {
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
margin-top: -112px;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 250px;
|
||||
}
|
||||
|
||||
.name-info-mobile {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 599px) and (max-width: 749px) {
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.5) translateY(25%) translateX(0%);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
}
|
||||
|
||||
.profile-container-mobile {
|
||||
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
margin-top: -110px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 330px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 750px) and (max-width: 960px) {
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.8) translateY(25%) translateX(0%);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
}
|
||||
|
||||
.profile-container-mobile {
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
margin-top: -110px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 425px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 960px) and (max-width: 1280px) {
|
||||
.middle-col {
|
||||
margin-left: -30px;
|
||||
}
|
||||
|
||||
.text-soutiens {
|
||||
font-size: 1.2rem;
|
||||
letter-spacing: 5px;
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -185px;
|
||||
min-width: 480px
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 270px;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 325px;
|
||||
margin-left: -35px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.3) translateY(25%) translateX(-50px);
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
margin-left: 20px;
|
||||
margin-top: -6px
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
margin-left: 40px;
|
||||
margin-top: -8px
|
||||
}
|
||||
|
||||
.social-container {
|
||||
margin-left: 80px;
|
||||
min-width: 270px;
|
||||
max-height: 40px
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
margin-left: 50px;
|
||||
min-width: 250px;
|
||||
max-height: 35px
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 34px;
|
||||
max-width: 100px;
|
||||
margin-top: 15px;
|
||||
margin-left: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1280px) and (max-width: 1600px) {
|
||||
.text-soutiens {
|
||||
font-size: 1.3rem;
|
||||
letter-spacing: 8px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.3) translateY(25%) translateX(-50px);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -180px;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 290px;
|
||||
}
|
||||
|
||||
.menu-col {
|
||||
margin-left: -4%;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 350px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
margin-left: 20px;
|
||||
margin-top: -6px
|
||||
}
|
||||
|
||||
.social-container {
|
||||
margin-left: 90px;
|
||||
min-width: 350;
|
||||
max-height: 40px
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
margin-left: 70px;
|
||||
margin-top: -8px
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
|
||||
margin-left: 40px;
|
||||
min-width: 290px;
|
||||
max-height: 35px
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 34px;
|
||||
max-width: 100px;
|
||||
margin-top: 15px;
|
||||
margin-left: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1600px) and (max-width: 1919px) {
|
||||
.text-soutiens {
|
||||
font-size: 1.3rem;
|
||||
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.4) translateY(25%) translateX(-40px);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -171px;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 355px;
|
||||
}
|
||||
|
||||
.menu-col {
|
||||
margin-left: -4%;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 400px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.5rem;
|
||||
margin-top: -4px;
|
||||
margin-left: 35px;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1.3rem;
|
||||
margin-left: 75px;
|
||||
margin-top: -2px
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
margin-left: 70px;
|
||||
min-width: 300px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1920px) and (max-width: 2559px) {
|
||||
.text-soutiens {
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -160px;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 380px;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 400px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.4) translateY(25%) translateX(-40px);
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.5rem;
|
||||
margin-left: 35px;
|
||||
margin-top: -4px;
|
||||
}
|
||||
|
||||
.social-container {
|
||||
margin-left: 100px;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1.3rem;
|
||||
margin-left: 110px;
|
||||
margin-top: -4px
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
margin-left: 30px;
|
||||
min-width: 360px;
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 38px;
|
||||
max-width: 100px;
|
||||
margin-top: 13px;
|
||||
margin-left: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 2560px) {
|
||||
|
||||
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.5) translateY(25%) translateX(-20px);
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 380px;
|
||||
}
|
||||
|
||||
.text-soutiens {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 2rem;
|
||||
|
||||
}
|
||||
|
||||
.social-container {
|
||||
margin-left: 140px;
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
margin-left: 130px;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1.5rem;
|
||||
margin-left: 65px;
|
||||
margin-top: -6px
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 45px;
|
||||
max-width: 100px;
|
||||
margin-top: 15px;
|
||||
margin-left: 40px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
73
src/views/main/DonationPopup.vue
Normal file
73
src/views/main/DonationPopup.vue
Normal file
@@ -0,0 +1,73 @@
|
||||
<template>
|
||||
<div class="fixed z-50 bottom-10 right-10 flex flex-column">
|
||||
<div
|
||||
v-if="showPopup"
|
||||
ref="popup"
|
||||
class="z-50 shadow-md shadow-gray-500 rounded-2xl"
|
||||
>
|
||||
<div class="bg-fuchsia-900 p-4 rounded-t-2xl font-semibold self-center text-white text-center">
|
||||
Je Soutiens!
|
||||
</div>
|
||||
<div class="bg-gray-100 rounded-b-2xl p-4">
|
||||
<div class="mx-2">
|
||||
<StripePayment></StripePayment>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
@click="togglePopup"
|
||||
ref="popupButton"
|
||||
class="bg-purple rounded-full w-16 h-16 flex justify-center items-center self-end mt-4 cursor-pointer"
|
||||
style="background: radial-gradient(circle, rgba(163,14,121,1) 50%, rgba(107,0,101,1) 100%); border: 2px solid white;"
|
||||
>
|
||||
<v-icon class="text-2xl">mdi-gift-outline</v-icon>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, onMounted, onUnmounted } from 'vue';
|
||||
import StripePayment from "@/views/StripePayment.vue";
|
||||
|
||||
const showPopup = ref(false);
|
||||
const popup = ref(null);
|
||||
const popupButton = ref(null);
|
||||
|
||||
const togglePopup = () => {
|
||||
showPopup.value = !showPopup.value;
|
||||
};
|
||||
|
||||
const handleClickOutside = (event) => {
|
||||
if (
|
||||
popup.value &&
|
||||
!popup.value.contains(event.target) &&
|
||||
!popupButton.value.contains(event.target) &&
|
||||
!event.target.closest('.bg-purple')
|
||||
) {
|
||||
showPopup.value = false;
|
||||
}
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
document.addEventListener('click', handleClickOutside);
|
||||
});
|
||||
|
||||
onUnmounted(() => {
|
||||
document.removeEventListener('click', handleClickOutside);
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.bg-fuchsia-900 {
|
||||
background-color: #9c27b0;
|
||||
}
|
||||
|
||||
.bg-gray-100 {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
.bg-purple {
|
||||
background-color: #9c27b0;
|
||||
}
|
||||
</style>
|
||||
10
src/views/main/Footer.vue
Normal file
10
src/views/main/Footer.vue
Normal file
@@ -0,0 +1,10 @@
|
||||
<template>
|
||||
<footer>
|
||||
<div class="bg-black/5 p-6 text-center">
|
||||
{{ new Date().getFullYear() }} — <strong>Hutopy v.01</strong>
|
||||
</div>
|
||||
</footer>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
</script>
|
||||
181
src/views/main/Header.vue
Normal file
181
src/views/main/Header.vue
Normal file
@@ -0,0 +1,181 @@
|
||||
<template>
|
||||
<header
|
||||
class="py-1 flex items-center justify-between bg-white shadow-md shadow-gray-700 z-20"
|
||||
@click.stop
|
||||
>
|
||||
<div class="flex items-center">
|
||||
<v-app-bar-nav-icon @click.stop="toggleSidebar">
|
||||
</v-app-bar-nav-icon>
|
||||
|
||||
<RouterLink to="/" class="hidden md:block">
|
||||
<v-img
|
||||
src="/medias/hutopy.png"
|
||||
ref="popupButtonRef"
|
||||
alt="Hutopy Logo"
|
||||
class="mr-2 h-10 w-20"
|
||||
></v-img>
|
||||
</RouterLink>
|
||||
|
||||
<RouterLink to="/" class="block md:hidden">
|
||||
<v-img
|
||||
src="/images/hutopymedia/icons/logohutopy.png"
|
||||
ref="popupButtonRef"
|
||||
alt="Hutopy Logo"
|
||||
class="mr-2 h-10 w-10"
|
||||
></v-img>
|
||||
</RouterLink>
|
||||
</div>
|
||||
|
||||
<div class="flex items-center ml-auto space-x-4 search-container">
|
||||
<template v-if="showSearch">
|
||||
<v-text-field
|
||||
density="compact"
|
||||
rounded
|
||||
variant="outlined"
|
||||
v-model="searchQuery"
|
||||
placeholder="Recherche"
|
||||
hide-details
|
||||
clearable
|
||||
class="rounded-full w-32 md:w-64 lg:w-96 mx-2"
|
||||
append-inner-icon="mdi-magnify"
|
||||
@click.stop
|
||||
@click:append-inner="onSearch">
|
||||
</v-text-field>
|
||||
</template>
|
||||
<template v-else>
|
||||
<v-icon class="mx-2 cursor-pointer" @click.stop="toggleSearch">mdi-magnify</v-icon>
|
||||
</template>
|
||||
|
||||
<v-icon class="mx-2">mdi-bell-outline</v-icon>
|
||||
|
||||
<div class="text-center">
|
||||
<v-menu open-on-hover>
|
||||
<template v-slot:activator="{ props }">
|
||||
<v-btn variant="plain" v-bind="props" class=" d-flex align-center text-capital-none">
|
||||
<span class="normal-case max-w-xs hidden md:block">
|
||||
{{ currentUserName }}
|
||||
</span>
|
||||
<img src="/images/usersmedia/anonyme/profilepictures/profileAnonymeSquare.png" alt="Profile Image"
|
||||
class="ml-2 rounded-full" style="width: 32px; height: 32px;">
|
||||
</v-btn>
|
||||
</template>
|
||||
|
||||
<v-list min-width="200px" class=" align-center mt-3 left-3">
|
||||
<div v-if="!currentUser">
|
||||
<v-list-item class="nav-button">
|
||||
<v-list-item-title>
|
||||
<v-btn to="/login" class="w-100 " variant="plain">Connexion</v-btn>
|
||||
</v-list-item-title>
|
||||
</v-list-item>
|
||||
</div>
|
||||
|
||||
<div v-if="currentUser">
|
||||
<v-list-item class="nav-button">
|
||||
<router-link :to="`/${currentUserName}`">
|
||||
<v-btn class="w-100 " variant="plain"> {{ currentUserName }}</v-btn>
|
||||
</router-link>
|
||||
</v-list-item>
|
||||
<v-list-item class="nav-button">
|
||||
<v-list-item-title >
|
||||
<v-btn to="/profile" class="w-100 " variant="plain">Mon profil</v-btn>
|
||||
</v-list-item-title>
|
||||
</v-list-item>
|
||||
<v-list-item class="nav-button">
|
||||
<v-list-item-title>
|
||||
<v-btn to="/wallet" class="w-100 " variant="plain"> Portefeuille</v-btn>
|
||||
</v-list-item-title>
|
||||
</v-list-item>
|
||||
<v-list-item class="nav-button">
|
||||
<v-list-item-title>
|
||||
<v-btn @click="logout" to="/wallet" class="w-100 " variant="plain"> Déconnexion</v-btn>
|
||||
</v-list-item-title>
|
||||
</v-list-item>
|
||||
</div>
|
||||
</v-list>
|
||||
</v-menu>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</header>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import MyUserModel from "@/models/myUserModel.js";
|
||||
import {useClient} from "@/plugins/api.js";
|
||||
import {ref, onMounted, onBeforeUnmount} from "vue";
|
||||
import {eventBus} from '@/eventBus.js';
|
||||
import {useRouter} from 'vue-router';
|
||||
|
||||
const router = useRouter();
|
||||
const currentUserName = ref("Anonyme");
|
||||
const searchQuery = ref("");
|
||||
const showSearch = ref(false);
|
||||
let currentUser = null;
|
||||
const client = useClient();
|
||||
|
||||
const toggleSidebar = () => {
|
||||
eventBus.value.toggleSidebar();
|
||||
};
|
||||
|
||||
const onSearch = () => {
|
||||
const query = searchQuery.value.trim();
|
||||
if (!query) {
|
||||
router.push("/browse");
|
||||
} else {
|
||||
const words = query.split(" ");
|
||||
if (words.length === 1) {
|
||||
router.push(`/@${words[0]}`);
|
||||
} else {
|
||||
router.push({name: "browse", query: {q: query}});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const toggleSearch = () => {
|
||||
showSearch.value = !showSearch.value;
|
||||
};
|
||||
|
||||
const handleClickOutside = (event) => {
|
||||
if (!event.target.closest('.search-container')) {
|
||||
showSearch.value = false;
|
||||
}
|
||||
};
|
||||
|
||||
const navigateToMessages = () => {
|
||||
router.push('/messages');
|
||||
};
|
||||
|
||||
const logout = () => {
|
||||
localStorage.removeItem('jwt');
|
||||
window.location.reload();
|
||||
};
|
||||
|
||||
onMounted(async () => {
|
||||
try {
|
||||
const myUser = await client.get("/api/GetMyUser");
|
||||
const currentUserModel = MyUserModel.createFromApiResult(myUser.data);
|
||||
currentUser = currentUserModel;
|
||||
currentUserName.value = currentUserModel.userName;
|
||||
} catch (error) {
|
||||
console.log("User not logged");
|
||||
}
|
||||
document.addEventListener('click', handleClickOutside);
|
||||
});
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
document.removeEventListener('click', handleClickOutside);
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<style scoped>
|
||||
.search-container {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.nav-button:hover {
|
||||
@apply bg-[#903175] text-gray-200;
|
||||
}
|
||||
|
||||
</style>
|
||||
104
src/views/main/Home.vue
Normal file
104
src/views/main/Home.vue
Normal file
@@ -0,0 +1,104 @@
|
||||
<template>
|
||||
<div class="bg-gray-100 min-h-screen">
|
||||
|
||||
<!-- Header Section -->
|
||||
<div class="px-6 py-12">
|
||||
<div class="max-w-4xl mx-auto flex items-center justify-center">
|
||||
<img src="/images/hutopymedia/banners/hutopy.png" alt="Hutopy Logo" class="h-24">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Banner Section -->
|
||||
<div class="relative">
|
||||
<img src="/images/hutopymedia/homepage/bannierehomepage.png" alt="Hutopy Banner" class="w-full rounded-xl shadow-lg">
|
||||
</div>
|
||||
|
||||
<!-- Call-to-Action Section -->
|
||||
<div class="flex justify-center py-8 space-x-4 overflow-auto">
|
||||
<img src="/images/hutopymedia/homepage/creer.png" alt="Create CallToAction" class="rounded-xl shadow-lg w-1/4 sm:w-1/6 md:w-1/8 lg:w-1/12">
|
||||
<img src="/images/hutopymedia/homepage/partager.png" alt="Share CallToAction" class="rounded-xl shadow-lg w-1/4 sm:w-1/6 md:w-1/8 lg:w-1/12">
|
||||
<img src="/images/hutopymedia/homepage/inspirer.png" alt="Inspire CallToAction" class="rounded-xl shadow-lg w-1/4 sm:w-1/6 md:w-1/8 lg:w-1/12">
|
||||
</div>
|
||||
|
||||
<!-- Main Content Section -->
|
||||
<div class="max-w-4xl mx-auto px-6 py-8 space-y-6">
|
||||
<img src="/images/hutopymedia/homepage/votrehutopy.png" alt="YourHutopy" class="mx-auto mb-8">
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-8">
|
||||
<div class="space-y-4">
|
||||
<p class="text-lg leading-relaxed text-gray-800">
|
||||
Bienvenue sur Hutopy, votre nouvelle frontière de création, de connexion et d'innovation. Au
|
||||
cœur de notre mission réside une ambition audacieuse : transformer l'espace numérique en un
|
||||
écosystème où chaque créateur, chaque rêveur, chaque professionnel, peut non seulement imaginer,
|
||||
mais concrétiser son utopie personnelle. Hutopy est plus qu'une simple plateforme c'est une
|
||||
communauté vibrante qui défie les conventions de l’éducation, encourage l'originalité et célèbre
|
||||
la créativité.
|
||||
</p>
|
||||
|
||||
<p class="text-lg leading-relaxed text-gray-800">
|
||||
Chez Hutopy, nous croyons en la puissance de la créativité sans limites. Notre environnement est
|
||||
conçu pour inspirer, soutenir et propulser chaque membre vers de nouveaux sommets de
|
||||
réalisation. Qu'il s'agisse de vidéo, d'art, de musique, d'écriture, de formation ou de toute
|
||||
autre forme d'expression, Hutopy offre les outils nécessaires pour que chaque vision puisse
|
||||
prendre vie.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-2 md:grid-cols-2 gap-4">
|
||||
<img src="/images/hutopymedia/homepage/grinding.png" alt="Grinding" class="rounded-lg shadow-lg">
|
||||
<img src="/images/hutopymedia/homepage/microphone.png" alt="Microphone" class="rounded-lg shadow-lg">
|
||||
<img src="/images/hutopymedia/homepage/girlarmy.png" alt="Girl Army" class="rounded-lg shadow-lg">
|
||||
<img src="/images/hutopymedia/homepage/girlvr.png" alt="Girl VR" class="rounded-lg shadow-lg">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Profile Section -->
|
||||
<div class="bg-white py-12">
|
||||
<div class="max-w-4xl mx-auto px-6 space-y-8">
|
||||
<h1 class="text-4xl font-bold text-center text-purple-900">Ils sont sur Hutopy.</h1>
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
||||
<div class="flex justify-center items-center">
|
||||
<RouterLink to="/">
|
||||
<img src="/images/usersmedia/HutopyProfile/profilepictures/profileHutopyProfile02.png" alt="Profile Image" class="rounded-2xl shadow-lg">
|
||||
</RouterLink>
|
||||
</div>
|
||||
<div class="flex justify-center items-center">
|
||||
<RouterLink to="/@guillaumeaime">
|
||||
<img src="/images/usersmedia/guillaumeMousseau/profilepictures/profileGuillaumeMousseau01.jpg" alt="Profile Image" class="rounded-2xl shadow-lg">
|
||||
</RouterLink>
|
||||
</div>
|
||||
<div class="flex justify-center items-center">
|
||||
<RouterLink to="/@chloebeaugrand">
|
||||
<img src="/images/usersmedia/chloebeaugrand/profilepictures/profileChloeBeaugrand02.png" alt="Profile Image" class="rounded-2xl shadow-lg">
|
||||
</RouterLink>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-center">
|
||||
<RouterLink to="/browse">
|
||||
<button class="px-6 py-3 bg-purple-700 text-white rounded-lg hover:bg-purple-600 focus:outline-none focus:ring-2 focus:ring-purple-500 transition duration-300 ease-in-out">Découvre les autres créateurs</button>
|
||||
</RouterLink>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.overlay p {
|
||||
color: white;
|
||||
font-size: 1.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #F4F4F4;
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -1,672 +0,0 @@
|
||||
<template>
|
||||
<div style="background-color: #F4F4F4;">
|
||||
<DefaultLayout></DefaultLayout>
|
||||
<!--PC ---------------------------------------------------------------------------------------------->
|
||||
<div class="md:flex hidden items-center justify-between flex-col" style=" margin-top: 3%;">
|
||||
|
||||
<!--Logo & bouttons -->
|
||||
<v-container class="d-flex justify-center align-center container-spacer header-container">
|
||||
<v-row justify="center" align="center">
|
||||
<v-col></v-col>
|
||||
<v-col cols="5" xl="4" xxl="4">
|
||||
<v-img class="profile-banner" src="/images/hutopymedia/banners/hutopy.png"></v-img>
|
||||
</v-col>
|
||||
<v-col>
|
||||
<v-row>
|
||||
<RouterLink :to="{ name: 'contact' }">
|
||||
<v-btn size="large" style="border-radius: 40px;" color="rgb(107, 0, 101)" outlined elevation="0">
|
||||
Inscription
|
||||
</v-btn>
|
||||
</RouterLink>
|
||||
</v-row>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
<!--Header -->
|
||||
<v-container class="container-spacer">
|
||||
<v-row>
|
||||
<v-spacer></v-spacer>
|
||||
<v-col cols="7" xs="12" sm="10" md="12" lg="10" xl="7" xxl="6">
|
||||
<v-img class="profile-banner banner-homepage" src="/images/hutopymedia/homepage/bannierehomepage.png"
|
||||
style="border-radius: 20px;"></v-img>
|
||||
</v-col>
|
||||
<v-spacer></v-spacer>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
<!-- Créer Profiter Inspirer -->
|
||||
<v-container class="container-spacer">
|
||||
<v-row class="d-flex justify-center creer-profiter-inspirer-row">
|
||||
<v-col cols="10" xs="12" sm="10" md="12" lg="10" xl="7" xxl="6">
|
||||
<v-row justify="center" align="center" class="créer-profiter-inspirer-row">
|
||||
<v-col cols="4" sm="4" md="4">
|
||||
<v-hover v-slot="{ isHovering, props }">
|
||||
<v-card style="border-radius: 20px; min-width: 325px;" class="mx-auto card-size" v-bind="props">
|
||||
<v-img src="/images/hutopymedia/homepage/creer.png"
|
||||
style="min-width: 325px; border-radius: 20px; width: 80vw;"></v-img>
|
||||
<v-overlay :model-value="isHovering" class="align-center justify-center" scrim="#6b0065" contained>
|
||||
<v-container>
|
||||
<v-card class="mx-auto" :max-width="600" v-bind="props" color="#a30e79">
|
||||
<h3 class="white--text" style="text-align: center; margin-top: 10%; font-size: 1.5em;">CRÉER
|
||||
</h3>
|
||||
<p class="text-justify pa-4" style="font-size: 1.2em;">Libérez votre créativité sur Hutopy,
|
||||
où
|
||||
chaque idée trouve sa place et chaque créateur détient la clé d'un monde rempli de
|
||||
possibilités infinies. Rejoignez-nous et transformez votre passion en réalité.</p>
|
||||
</v-card>
|
||||
</v-container>
|
||||
</v-overlay>
|
||||
</v-card>
|
||||
</v-hover>
|
||||
</v-col>
|
||||
|
||||
<v-col cols="4" sm="4" md="4">
|
||||
<v-hover v-slot="{ isHovering, props }">
|
||||
<v-card style="min-width: 325px; border-radius: 20px;" class="mx-auto card-size " v-bind="props">
|
||||
<v-img src="/images/hutopymedia/homepage/partager.png"
|
||||
style="min-width: 325px; border-radius: 20px; width: 80vw;"></v-img>
|
||||
<v-overlay :model-value="isHovering" class="align-center justify-center" scrim="#6b0065" contained>
|
||||
<v-container>
|
||||
<v-card class="mx-auto" :max-width="600" v-bind="props" color="#a30e79">
|
||||
<h3 class="white--text" style="text-align: center; margin-top: 10%; font-size: 1.5em;">
|
||||
PROFITER
|
||||
</h3>
|
||||
<p class="text-justify pa-4" style="font-size: 1.2em;">Plongez dans l'univers Hutopy et
|
||||
découvrez un espace où profiter rime avec s'enrichir. Savourez des contenus uniques, des
|
||||
interactions authentiques et une expérience personnalisée conçue pour éveiller vos sens et
|
||||
enrichir votre quotidien.</p>
|
||||
</v-card>
|
||||
</v-container>
|
||||
</v-overlay>
|
||||
</v-card>
|
||||
</v-hover>
|
||||
</v-col>
|
||||
|
||||
<v-col cols="4" sm="4" md="4">
|
||||
<v-hover v-slot="{ isHovering, props }">
|
||||
<v-card style="min-width: 325px; border-radius: 20px;" class="mx-auto card-size" v-bind="props">
|
||||
<v-img src="/images/hutopymedia/homepage/inspirer.png"
|
||||
style="border-radius: 20px; width: 80vw;"></v-img>
|
||||
<v-overlay :model-value="isHovering" class="align-center justify-center" scrim="#6b0065" contained>
|
||||
<v-container>
|
||||
<v-card class="mx-auto" :max-width="600" v-bind="props" color="#a30e79">
|
||||
<h3 class="white--text" style="text-align: center; margin-top: 10%; font-size: 1.5em;">
|
||||
INSPIRER
|
||||
</h3>
|
||||
<p class="text-justify pa-4" style="font-size: 1.2em;">Devenez une source d'inspiration sur
|
||||
Hutopy, en partageant votre vision, votre talent et vos histoires. Influencez positivement
|
||||
la
|
||||
communauté, éveillez la curiosité et inspirez les autres à poursuivre leurs rêves dans un
|
||||
cercle vertueux de créativité et d'inspiration.</p>
|
||||
</v-card>
|
||||
</v-container>
|
||||
</v-overlay>
|
||||
</v-card>
|
||||
</v-hover>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
<!-- Votre Hutopy -->
|
||||
<v-container class="container-spacer">
|
||||
<v-row justify="center">
|
||||
<v-col cols="7" xs="12" sm="11" md="12" lg="10" xl="7" xxl="6">
|
||||
<v-row justify="center">
|
||||
<v-col cols="6" md="7" lg="6">
|
||||
|
||||
<!-- Subtitle : Votre Hutopy -->
|
||||
<v-img cols="12" style="margin-top: -5%; min-width: 350px;"
|
||||
src="/images/hutopymedia/homepage/votrehutopy.png"></v-img>
|
||||
|
||||
<!-- Your Hutopy text-->
|
||||
<p class="text-center text-justify votre_hutopy_fontsize"
|
||||
style="margin-top: 3%; margin-bottom: 5%; max-width: 900px;">
|
||||
Bienvenue sur Hutopy, votre nouvelle frontière de création, de connexion et d'innovation. Au
|
||||
cœur de notre mission réside une ambition audacieuse : transformer l'espace numérique en un
|
||||
écosystème où chaque créateur, chaque rêveur, chaque professionnel, peut non seulement imaginer,
|
||||
mais concrétiser son utopie personnelle. Hutopy est plus qu'une simple plateforme c'est une
|
||||
communauté vibrante qui défie les conventions de l’éducation, encourage l'originalité et célèbre
|
||||
la créativité.
|
||||
</p>
|
||||
|
||||
<p class="text-center text-justify votre_hutopy_fontsize"
|
||||
style="margin-top: 3%; margin-bottom: 5%; max-width: 900px;">
|
||||
Chez Hutopy, nous croyons en la puissance de la créativité sans limites. Notre environnement est
|
||||
conçu pour inspirer, soutenir et propulser chaque membre vers de nouveaux sommets de
|
||||
réalisation. Qu'il s'agisse de vidéo, d'art, de musique, d'écriture, de formation ou de toute
|
||||
autre forme d'expression, Hutopy offre les outils nécessaires pour que chaque vision puisse
|
||||
prendre vie.
|
||||
</p>
|
||||
|
||||
<v-col cols="12" class="text-center">
|
||||
<RouterLink style="width: 450px;" :to="{ name: 'contact' }">
|
||||
<v-btn size="x-large" style="width: 300px; border-radius: 40px;" color="rgb(107, 0, 101)" outlined
|
||||
elevation="0">
|
||||
Inscription
|
||||
</v-btn>
|
||||
</RouterLink>
|
||||
</v-col>
|
||||
</v-col>
|
||||
|
||||
<!-- 4 pictures -->
|
||||
<v-col cols="6" md="5" lg="6">
|
||||
<v-row justify="center" class="votre-hutopy-img">
|
||||
<v-col cols="6" sm="12" md="12" lg="6">
|
||||
<v-img style="border-radius: 30px;" src="/images/hutopymedia/homepage/grinding.png"
|
||||
class="hidden-md-and-down" hidden-and-down></v-img>
|
||||
</v-col>
|
||||
<v-col cols="6" sm="12" md="12" lg="6">
|
||||
<v-img style="border-radius: 30px;" src="/images/hutopymedia/homepage/microphone.png"></v-img>
|
||||
</v-col>
|
||||
<v-col cols="6" sm="12" md="6" lg="6">
|
||||
<v-img style="border-radius: 30px;" src="/images/hutopymedia/homepage/girlarmy.png"></v-img>
|
||||
</v-col>
|
||||
<v-col cols="6" sm="6" md="6" lg="6">
|
||||
<v-img style="border-radius: 30px;" class="d-none d-md-block"
|
||||
src="/images/hutopymedia/homepage/girlvr.png"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
|
||||
<!-- They are on the Hutopy section -->
|
||||
<v-row style="margin-top: 20px; margin-bottom: 10px;">
|
||||
<v-spacer></v-spacer>
|
||||
|
||||
<!-- Subtitle :Ils sont sur Hutopy -->
|
||||
<v-col cols="9" xs="12" sm="12" md="12" lg="10" xl="8" xxl="7">
|
||||
<h1 style=" margin-bottom: 20px; text-align: center; font-size: 4rem; font-weight: bold; color: #24393c">
|
||||
Ils sont sur Hutopy.</h1>
|
||||
<v-spacer></v-spacer>
|
||||
<v-col>
|
||||
|
||||
<!-- Account links -->
|
||||
<v-row justify="center" class="profile-images">
|
||||
<v-col>
|
||||
<router-link :to="{ name: 'Hutopy' }">
|
||||
<img src="/images/usersmedia/HutopyProfile/profilepictures/profileHutopyProfile02.png"
|
||||
alt="Profile Image" class="profile-image ">
|
||||
</router-link>
|
||||
</v-col>
|
||||
<v-col>
|
||||
<router-link :to="{ name: 'guillaumeaime' }">
|
||||
<img src="/images/usersmedia/guillaumeMousseau/profilepictures/profileGuillaumeMousseau01.jpg"
|
||||
alt="Profile Image" class="profile-image">
|
||||
</router-link>
|
||||
</v-col>
|
||||
<v-col>
|
||||
<router-link :to="{ name: 'chloebeaugrand' }">
|
||||
<img src="/images/usersmedia/chloebeaugrand/profilepictures/profileChloeBeaugrand02.png"
|
||||
alt="Profile Image" class="profile-image">
|
||||
</router-link>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-col>
|
||||
<v-row justify='center'>
|
||||
<router-link :to="{ name: 'userbrowser' }">
|
||||
<v-btn style="border-radius:10px; background-color:#a30e79; color:white">Découvre les autres créateurs
|
||||
</v-btn>
|
||||
</router-link>
|
||||
</v-row>
|
||||
<v-spacer></v-spacer>
|
||||
</v-col>
|
||||
<v-spacer></v-spacer>
|
||||
</v-row>
|
||||
</div>
|
||||
|
||||
<!-- Mobile ---------------------------------------------------------------------------------------->
|
||||
<div class="md:hidden flex flex-col items-center justify-center">
|
||||
<div>
|
||||
<!--Banner -->
|
||||
<img src="/images/hutopymedia/homepage/bannierehomepage.png" class="banner-image" alt="Bannière">
|
||||
|
||||
<!-- Créer -->
|
||||
<v-row style="margin-top: 30px;" align="center">
|
||||
<v-col cols="6">
|
||||
<v-img style="margin-left: 25px; border-radius: 20px; width: 85%;"
|
||||
src="/images/hutopymedia/homepage/creer.png"></v-img>
|
||||
</v-col>
|
||||
<v-col>
|
||||
<p style="margin: 20px; text-align: justify;" class="center-vertical">Libérez votre créativité sur Hutopy,
|
||||
où chaque idée trouve sa
|
||||
place et chaque
|
||||
créateur détient la clé
|
||||
d'un monde rempli de possibilités infinies. Rejoignez-nous et transformez votre passion en réalité.</p>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- Partager -->
|
||||
<v-row align="center">
|
||||
<v-col>
|
||||
<p style=" margin: 20px; text-align: justify;" class="center-vertical">Devenez une source d'inspiration sur
|
||||
Hutopy, en partageant
|
||||
votre vision, votre
|
||||
talent et vos histoires.
|
||||
Influencez positivement la communauté, éveillez la curiosité et inspirez les autres à poursuivre leurs
|
||||
rêves dans un cercle vertueux de créativité et d'inspiration.</p>
|
||||
</v-col>
|
||||
<v-col cols="6">
|
||||
<v-img style="margin-right: 25px; border-radius: 20px; width: 85%;"
|
||||
src="/images/hutopymedia/homepage/partager.png"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- Inspirer -->
|
||||
<v-row align="center">
|
||||
<v-col cols="6">
|
||||
<v-img style="margin-left: 25px; border-radius: 20px; width: 85%;"
|
||||
src="/images/hutopymedia/homepage/inspirer.png"></v-img>
|
||||
</v-col>
|
||||
<v-col>
|
||||
<p style="margin: 20px; text-align: justify;" class="center-vertical">Devenez une source d'inspiration sur
|
||||
Hutopy, en partageant
|
||||
votre vision, votre
|
||||
talent et vos histoires.
|
||||
Influencez positivement la communauté, éveillez la curiosité et inspirez les autres à poursuivre leurs
|
||||
rêves dans un cercle vertueux de créativité et d'inspiration.</p>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- Votre Hutopy : Title -->
|
||||
<v-img style="margin-top: 50px; margin-bottom: 25px; min-width: 350px;"
|
||||
src="/images/hutopymedia/homepage/votrehutopy.png"></v-img>
|
||||
|
||||
<!-- Votre Hutopy : Text -->
|
||||
<v-row align="center">
|
||||
<v-col cols="11" style="margin: 4%;">
|
||||
<p style="margin-top: 3%; margin-bottom: 5%; text-align: justify;" class="center-vertical">
|
||||
Bienvenue sur Hutopy, votre nouvelle frontière de création, de connexion et d'innovation. Au
|
||||
cœur de notre mission réside une ambition audacieuse : transformer l'espace numérique en un
|
||||
écosystème où chaque créateur, chaque rêveur, chaque professionnel, peut non seulement imaginer,
|
||||
mais concrétiser son utopie personnelle. Hutopy est plus qu'une simple plateforme c'est une
|
||||
communauté vibrante qui défie les conventions de l’éducation, encourage l'originalité et célèbre
|
||||
la créativité.
|
||||
</p>
|
||||
<p style="margin-top: 3%; margin-bottom: 5%; text-align: justify;" class="center-vertical">
|
||||
Chez Hutopy, nous croyons en la puissance de la créativité sans limites. Notre environnement est
|
||||
conçu pour inspirer, soutenir et propulser chaque membre vers de nouveaux sommets de
|
||||
réalisation. Qu'il s'agisse de vidéo, d'art, de musique, d'écriture, de formation ou de toute
|
||||
autre forme d'expression, Hutopy offre les outils nécessaires pour que chaque vision puisse
|
||||
prendre vie.
|
||||
</p>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- 4 pictures -->
|
||||
<v-row style="margin-left: 15px; margin-right: 15px;">
|
||||
<v-col cols="6" style="padding-left: 15px; padding-right: 15px;">
|
||||
<v-img style="border-radius: 30px; width: 100%;" src="/images/hutopymedia/homepage/microphone.png"></v-img>
|
||||
</v-col>
|
||||
<v-col cols="6" style="padding-left: 15px; padding-right: 15px;">
|
||||
<v-img style="border-radius: 30px; width: 100%;" src="/images/hutopymedia/homepage/grinding.png"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row style="margin-left: 15px; margin-right: 15px;">
|
||||
<v-col style="padding-left: 15px; padding-right: 15px;">
|
||||
<v-img style="border-radius: 30px; width: 100%;" src="/images/hutopymedia/homepage/girlarmy.png"></v-img>
|
||||
</v-col>
|
||||
<v-col style="padding-left: 15px; padding-right: 15px;">
|
||||
<v-img style="border-radius: 30px; width: 100%;" src="/images/hutopymedia/homepage/girlvr.png"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- Inscription Btn -->
|
||||
<v-container align="center">
|
||||
<RouterLink :to="{ name: 'contact' }">
|
||||
<v-btn block size="x-large" style="margin-top: 60px; border-radius: 10px;" color="rgb(107, 0, 101)" outlined
|
||||
elevation="4">
|
||||
Inscription
|
||||
</v-btn>
|
||||
</RouterLink>
|
||||
</v-container>
|
||||
|
||||
|
||||
<!-- They are on the Hutopy section -->
|
||||
<h1
|
||||
style="margin-top: 50px; margin-bottom: 50px; text-align: center; font-size: 3rem; font-weight: bold; color: #24393c">
|
||||
Ils sont sur Hutopy.</h1>
|
||||
|
||||
<v-col>
|
||||
<v-row justify="center" class="profile-images">
|
||||
<v-col cols="8">
|
||||
<router-link :to="{ name: 'Hutopy' }">
|
||||
<img src="/images/usersmedia/HutopyProfile/profilepictures/profileHutopyProfile02.png"
|
||||
alt="Profile Image" class="profile-image ">
|
||||
</router-link>
|
||||
</v-col>
|
||||
<v-col cols="8">
|
||||
<router-link :to="{ name: 'guillaumeaime' }">
|
||||
<img src="/images/usersmedia/guillaumeMousseau/profilepictures/profileGuillaumeMousseau01.jpg"
|
||||
alt="Profile Image" class="profile-image">
|
||||
</router-link>
|
||||
</v-col>
|
||||
<v-col cols="8">
|
||||
<router-link :to="{ name: 'chloebeaugrand' }">
|
||||
<img src="/images/usersmedia/chloebeaugrand/profilepictures/profileChloeBeaugrand02.png"
|
||||
alt="Profile Image" class="profile-image">
|
||||
</router-link>
|
||||
</v-col>
|
||||
<v-row justify='center'>
|
||||
<router-link :to="{ name: 'userbrowser' }">
|
||||
<v-btn style="margin-top:30px; border-radius:10px; background-color:#a30e79; color:white">Découvre les autres créateurs
|
||||
</v-btn>
|
||||
</router-link>
|
||||
</v-row>
|
||||
</v-row>
|
||||
</v-col>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<v-snackbar v-model="errorNoAccessSnackBar">
|
||||
Vous n'etes pas connecter !
|
||||
<template v-slot:actions>
|
||||
<v-btn color="red" variant="text" @click="errorNoAccessSnackBar = false">
|
||||
Fermer
|
||||
</v-btn>
|
||||
<v-btn color="green" variant="text" @click="goToLoginPage()">
|
||||
Se connecter
|
||||
</v-btn>
|
||||
</template>
|
||||
</v-snackbar>
|
||||
|
||||
<v-list style="background-color: #F4F4F4;" lines="one">
|
||||
<v-list-item v-for=" item in itemList " :key="item" :title="item.firstName"
|
||||
:subtitle="item.lastName"></v-list-item>
|
||||
</v-list>
|
||||
<FooterLayout></FooterLayout>
|
||||
</div>
|
||||
|
||||
|
||||
</template>
|
||||
|
||||
<script async setup>
|
||||
import DefaultLayout from '@/layouts/DefaultLayout.vue';
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
import { ref } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
const router = useRouter()
|
||||
let itemList = ref([]);
|
||||
let errorNoAccessSnackBar = ref(false);
|
||||
|
||||
const goToLoginPage = () => {
|
||||
router.push('/login');
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.center-vertical {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.layer1-backgroundmobile {
|
||||
background-color: rgba(163, 14, 121, 0.1);
|
||||
border-radius: 20px;
|
||||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.layer2-backgroundmobile {
|
||||
border-radius: 20px;
|
||||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.container-spacer {
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
.profile-images {
|
||||
gap: 15px;
|
||||
transform: scale(.92);
|
||||
}
|
||||
|
||||
.profile-image {
|
||||
width: auto;
|
||||
border-radius: 35px;
|
||||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
.image {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.overlay {
|
||||
position: absolute;
|
||||
border-radius: 8px;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(163, 14, 121, 0.80);
|
||||
display: flex;
|
||||
text-align: left;
|
||||
font-size: 1.5rem;
|
||||
align-items: center;
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
.banner-image {
|
||||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.4);
|
||||
margin-top: 60px;
|
||||
}
|
||||
|
||||
.image-container:hover .overlay {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.overlay p {
|
||||
color: white;
|
||||
font-size: 1.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.custom-container {
|
||||
position: relative;
|
||||
max-width: 100vw;
|
||||
}
|
||||
|
||||
.v-card {
|
||||
max-width: calc(100% - 20px);
|
||||
}
|
||||
|
||||
.v-card-imagecontainerpos {
|
||||
margin-top: 55px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #F4F4F4;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.votre_hutopy_fontsize {
|
||||
font-size: 0.55em;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media (min-width: 601px) and (max-width: 889px) {
|
||||
.votre_hutopy_fontsize {
|
||||
font-size: 1.06em;
|
||||
}
|
||||
|
||||
.créer-profiter-inspirer-row {
|
||||
margin-left: -120px;
|
||||
margin-top: -120px
|
||||
}
|
||||
|
||||
.card-size {
|
||||
transform: scale(.7);
|
||||
}
|
||||
|
||||
.banner-homepage {
|
||||
transform: scale(1.19)
|
||||
}
|
||||
|
||||
.votre-hutopy-img {
|
||||
margin-top: -30px;
|
||||
}
|
||||
|
||||
.header-container {
|
||||
margin-top: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media (min-width: 890px) and (max-width: 960px) {
|
||||
|
||||
.header-container {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.votre_hutopy_fontsize {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
.card-size {
|
||||
transform: scale(.75);
|
||||
}
|
||||
|
||||
.créer-profiter-inspirer-row {
|
||||
margin-left: -80px;
|
||||
margin-top: -130px
|
||||
}
|
||||
|
||||
.banner-homepage {
|
||||
transform: scale(1.07)
|
||||
}
|
||||
|
||||
.votre-hutopy-img {
|
||||
margin-top: -40px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media (min-width: 961px) and (max-width: 1280px) {
|
||||
.votre_hutopy_fontsize {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.banner-homepage {
|
||||
transform: scale(1.06)
|
||||
}
|
||||
|
||||
.card-size {
|
||||
transform: scale(.90);
|
||||
}
|
||||
|
||||
.créer-profiter-inspirer-row {
|
||||
margin-left: -55px;
|
||||
margin-top: -90px
|
||||
}
|
||||
|
||||
.in-between-image {
|
||||
margin-left: -100px;
|
||||
}
|
||||
|
||||
.profile-images {
|
||||
gap: 15px;
|
||||
transform: scale(.72);
|
||||
}
|
||||
|
||||
.votre-hutopy-img {
|
||||
margin-top: -30px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media (min-width: 1281px) and (max-width: 1920px) {
|
||||
.votre_hutopy_fontsize {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
.card-size {
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
.banner-homepage {
|
||||
transform: scale(1.03)
|
||||
}
|
||||
|
||||
.créer-profiter-inspirer-row {
|
||||
margin-left: -25px;
|
||||
margin-top: -70px
|
||||
}
|
||||
|
||||
.profile-images {
|
||||
gap: 15px;
|
||||
transform: scale(.64);
|
||||
}
|
||||
|
||||
.votre-hutopy-img {
|
||||
margin-top: 65px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1921px) and (max-width: 2560px) {
|
||||
.votre_hutopy_fontsize {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
.créer-profiter-inspirer-row {
|
||||
margin-top: -60px;
|
||||
}
|
||||
|
||||
.banner-homepage {
|
||||
transform: scale(1.0)
|
||||
}
|
||||
|
||||
.profile-images {
|
||||
gap: 15px;
|
||||
transform: scale(.90);
|
||||
}
|
||||
|
||||
.votre-hutopy-img {
|
||||
margin-top: 65px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 2561px) {
|
||||
.votre_hutopy_fontsize {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
.créer-profiter-inspirer-row {
|
||||
margin-top: -50px;
|
||||
}
|
||||
|
||||
.card-size {
|
||||
transform: scale(.98);
|
||||
}
|
||||
|
||||
.banner-homepage {
|
||||
transform: scale(.98)
|
||||
}
|
||||
|
||||
.profile-images {
|
||||
gap: 15px;
|
||||
transform: scale(.978);
|
||||
}
|
||||
|
||||
.votre-hutopy-img {
|
||||
margin-top: -10px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,24 +1,12 @@
|
||||
<template>
|
||||
<DefaultLayout></DefaultLayout>
|
||||
<!--PC -->
|
||||
<div class="hutopy-backgroud-color">
|
||||
<div class="hidden-xs flex-col items-center page-margin">
|
||||
<v-container>
|
||||
|
||||
<div class="flex hidden-xs flex-col items-center page-margin">
|
||||
|
||||
<!-- Banner -->
|
||||
<v-row class="text-center align-center row-between-logo-text home-row">
|
||||
<v-col xl="7" lg="9" md="11" sm="12" xs="12"> </v-col>
|
||||
<img class="hutopy-header-image" src="/images/hutopymedia/banners/hutopy.png">
|
||||
<v-col class="ml-0 text-left ">
|
||||
<!-- Home btn -->
|
||||
<RouterLink :to="{ name: 'home' }">
|
||||
<v-btn class="home-btn" size="large" color="rgb(107, 0, 101)" outlined elevation="0"> Accueil</v-btn>
|
||||
</RouterLink>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-container>
|
||||
<img class="h-20"
|
||||
src="/images/hutopymedia/banners/hutopy.png" />
|
||||
|
||||
<!-- Home btn -->
|
||||
<v-container class="row-between-logo-text">
|
||||
<v-row>
|
||||
<v-spacer></v-spacer>
|
||||
@@ -152,10 +140,6 @@
|
||||
dans le ciel de notre utopie partagée.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<FooterLayout></FooterLayout>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -185,8 +169,6 @@
|
||||
|
||||
|
||||
<script setup>
|
||||
import DefaultLayout from '@/layouts/DefaultLayout.vue';
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
import { useClient } from "@/plugins/api.js";
|
||||
import { ref } from 'vue';
|
||||
|
||||
44
src/views/main/PostCard.vue
Normal file
44
src/views/main/PostCard.vue
Normal file
@@ -0,0 +1,44 @@
|
||||
<template>
|
||||
|
||||
|
||||
<div class=" shadow-lg rounded-lg max-w-sm">
|
||||
|
||||
<div class="h-48 object-cover bg-purple">
|
||||
|
||||
<v-img :src="props.post.banner"
|
||||
v-if="!isHttpUrl">
|
||||
</v-img>
|
||||
|
||||
<iframe v-if="isHttpUrl"
|
||||
:src="props.post.banner"
|
||||
title="YouTube video player"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
referrerpolicy="strict-origin-when-cross-origin"
|
||||
allowfullscreen>
|
||||
</iframe>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="text-lg font-bold">{{ props.post.title }}</div>
|
||||
<div class="text-sm text-gray-500">{{ props.post.title }}</div>
|
||||
<div class="text-base text-gray-700">{{ props.post.content }}</div>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {defineProps, computed} from 'vue';
|
||||
|
||||
const isHttpUrl = computed(() => props.post.banner.startsWith('http'))
|
||||
|
||||
const props = defineProps({
|
||||
post: {
|
||||
type: Object,
|
||||
required: true,
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
38
src/views/main/Profile.vue
Normal file
38
src/views/main/Profile.vue
Normal file
@@ -0,0 +1,38 @@
|
||||
<template>
|
||||
<div class="px-2">
|
||||
<div class="flex flex-col max-w-2xl mx-auto rounded-3xl shadow-2xl mt-2 mb-16">
|
||||
|
||||
<H1 class="text-center text-4xl bg-fuchsia-900 p-3 rounded-t-3xl border-b-4 border-b-gray-200 font-sans text-white">
|
||||
Personnaliser votre profil
|
||||
</H1>
|
||||
|
||||
<ProfileBanner></ProfileBanner>
|
||||
<Aboutyou></Aboutyou>
|
||||
<SocialLinks></SocialLinks>
|
||||
|
||||
<div class="sticky inset-x-0 bottom-0 flex justify-center px-4 pb-4">
|
||||
<div class="flex space-x-2">
|
||||
<v-btn class="save-btn" @click="saveAll">Enregistrer</v-btn>
|
||||
<router-link :to="`/${currentUserName}`">
|
||||
<v-btn class="save-btn">Retour</v-btn>
|
||||
</router-link>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script async setup>
|
||||
import Aboutyou from "@/views/main/Aboutyou.vue";
|
||||
import SocialLinks from "@/views/main/SocialLinks.vue";
|
||||
import ProfileBanner from "@/views/main/ProfileBanner.vue";
|
||||
import DonationPopup from "@/views/main/DonationPopup.vue";
|
||||
</script>
|
||||
|
||||
|
||||
<style scoped>
|
||||
.save-btn {
|
||||
z-index: 10;
|
||||
}
|
||||
</style>
|
||||
171
src/views/main/ProfileBanner.vue
Normal file
171
src/views/main/ProfileBanner.vue
Normal file
@@ -0,0 +1,171 @@
|
||||
<template>
|
||||
<div>
|
||||
<div>
|
||||
<div class="px-5 py-2 bg-fuchsia-800 text-white" :style="{ backgroundColor: accent2Color }" >
|
||||
<div class="flex justify-center text-2xl">Photo de couverture</div>
|
||||
</div>
|
||||
<div>
|
||||
<div :style="{ backgroundColor: topColor }" class="flex h-4"></div>
|
||||
<img :src="bannerImageUrl" alt="Banner Image" class="w-full object-cover">
|
||||
<div :style="{ backgroundColor: bottomColor }" class="h-4">
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<div class="space-x-4 flex justify-center py-2">
|
||||
<v-btn @click="openColorPicker('top')"
|
||||
:style="{ backgroundColor: topColor, color: getTextColor(topColor) }">Haut
|
||||
</v-btn>
|
||||
<v-btn @click="openColorPicker('bottom')"
|
||||
:style="{ backgroundColor: bottomColor, color: getTextColor(bottomColor) }">Bas
|
||||
</v-btn>
|
||||
<v-btn @click="openColorPicker('accent')"
|
||||
:style="{ backgroundColor: accentColor, color: getTextColor(accentColor) }">Accent1
|
||||
</v-btn>
|
||||
<v-btn @click="openColorPicker('accent2')"
|
||||
:style="{ backgroundColor: accent2Color, color: getTextColor(accent2Color) }">Menu
|
||||
</v-btn>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="px-3 py-3">
|
||||
<v-file-input v-model="bannerImage" label="Téléverser une nouvelle bannière"
|
||||
@change="onBannerFileChange"></v-file-input>
|
||||
</div>
|
||||
|
||||
<!-- Profile -->
|
||||
<div>
|
||||
<div class="border-t-4 items-center px-5 py-4">
|
||||
<div class="flex justify-center text-2xl ">Photo de profil</div>
|
||||
</div>
|
||||
<div class="flex justify-center py-4">
|
||||
<img :src="profilePictureUrl"
|
||||
:style="{ borderColor: accentColor, borderWidth: '3px', borderStyle: 'solid' }"
|
||||
class="rounded-full max-w-48 max-w-48"
|
||||
alt="Profile Image">
|
||||
</div>
|
||||
<div class="px-3">
|
||||
<v-file-input v-model="profilePicture" label="Téléverser une nouvelle photo de profil"
|
||||
@change="onProfileFileChange"></v-file-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Color Picker Dialog -->
|
||||
<v-dialog v-model="showColorPicker" max-width="400px" class="d-flex justify-center align-center">
|
||||
<v-card>
|
||||
<v-card-title class="justify-center text-center">Choisir une couleur</v-card-title>
|
||||
<v-card-text class="d-flex justify-center">
|
||||
<v-color-picker v-model="selectedColor"></v-color-picker>
|
||||
</v-card-text>
|
||||
<v-card-actions class="justify-center">
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn color="primary" @click="applyColor">OK</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {ref} from 'vue';
|
||||
|
||||
export default {
|
||||
props: {
|
||||
initialTopColor: {type: String, default: '#6B0065'},
|
||||
initialBottomColor: {type: String, default: '#A30E79'},
|
||||
initialAccentColor: {type: String, default: '#282286'},
|
||||
initialAccent2Color: {type: String, default: '#A526B6'},
|
||||
initialBannerImageUrl: {type: String, default: '/images/usersmedia/HutopyProfile/banners/banner01.png'},
|
||||
initialProfilePictureUrl: {
|
||||
type: String,
|
||||
default: '/images/usersmedia/HutopyProfile/profilepictures/profileHutopyProfile01.png'
|
||||
},
|
||||
},
|
||||
setup(props) {
|
||||
const topColor = ref(props.initialTopColor);
|
||||
const bottomColor = ref(props.initialBottomColor);
|
||||
const accentColor = ref(props.initialAccentColor);
|
||||
const accent2Color = ref(props.initialAccent2Color);
|
||||
|
||||
const bannerImageUrl = ref(props.initialBannerImageUrl);
|
||||
const profilePictureUrl = ref(props.initialProfilePictureUrl);
|
||||
|
||||
const bannerImage = ref(null);
|
||||
const profilePicture = ref(null);
|
||||
|
||||
const showColorPicker = ref(false);
|
||||
const selectedColor = ref('#F4F4F4');
|
||||
const colorTarget = ref('');
|
||||
|
||||
const onBannerFileChange = (event) => {
|
||||
const file = event.target.files[0];
|
||||
if (file) {
|
||||
const reader = new FileReader();
|
||||
reader.onload = (e) => {
|
||||
bannerImageUrl.value = e.target.result;
|
||||
};
|
||||
reader.readAsDataURL(file);
|
||||
}
|
||||
};
|
||||
|
||||
const onProfileFileChange = (event) => {
|
||||
const file = event.target.files[0];
|
||||
if (file) {
|
||||
const reader = new FileReader();
|
||||
reader.onload = (e) => {
|
||||
profilePictureUrl.value = e.target.result;
|
||||
};
|
||||
reader.readAsDataURL(file);
|
||||
}
|
||||
};
|
||||
|
||||
const openColorPicker = (target) => {
|
||||
colorTarget.value = target;
|
||||
showColorPicker.value = true;
|
||||
};
|
||||
|
||||
const applyColor = () => {
|
||||
if (colorTarget.value === 'top') {
|
||||
topColor.value = selectedColor.value;
|
||||
} else if (colorTarget.value === 'bottom') {
|
||||
bottomColor.value = selectedColor.value;
|
||||
} else if (colorTarget.value === 'accent') {
|
||||
accentColor.value = selectedColor.value;
|
||||
} else if (colorTarget.value === 'accent2') {
|
||||
accent2Color.value = selectedColor.value; // Appliquer la nouvelle couleur
|
||||
}
|
||||
showColorPicker.value = false;
|
||||
};
|
||||
|
||||
const getTextColor = (bgColor) => {
|
||||
// Simple function to determine if the text should be white or black based on the background color
|
||||
const color = bgColor.replace('#', '');
|
||||
const r = parseInt(color.substr(0, 2), 16);
|
||||
const g = parseInt(color.substr(2, 2), 16);
|
||||
const b = parseInt(color.substr(4, 2), 16);
|
||||
const brightness = (r * 299 + g * 587 + b * 114) / 1000;
|
||||
return brightness > 155 ? '#000' : '#fff';
|
||||
};
|
||||
|
||||
return {
|
||||
topColor,
|
||||
bottomColor,
|
||||
accentColor,
|
||||
accent2Color,
|
||||
bannerImageUrl,
|
||||
profilePictureUrl,
|
||||
bannerImage,
|
||||
profilePicture,
|
||||
showColorPicker,
|
||||
selectedColor,
|
||||
colorTarget,
|
||||
onBannerFileChange,
|
||||
onProfileFileChange,
|
||||
openColorPicker,
|
||||
applyColor,
|
||||
getTextColor,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
88
src/views/main/SideBar.vue
Normal file
88
src/views/main/SideBar.vue
Normal file
@@ -0,0 +1,88 @@
|
||||
<template>
|
||||
<aside class="relative h-full overflow-y-auto custom-scrollbar">
|
||||
|
||||
<nav class="h-full grid grid-rows-[60px_1fr_auto]">
|
||||
<div></div>
|
||||
<div class="pt-4 px-4">
|
||||
<h2>Subscriptions</h2>
|
||||
|
||||
<ul class="space-y">
|
||||
<li>
|
||||
<RouterLink to="/@hutopy">
|
||||
<div class="nav-button">
|
||||
<v-icon class="mx-2">mdi-account</v-icon>
|
||||
Hutopy
|
||||
</div>
|
||||
</RouterLink>
|
||||
|
||||
<RouterLink to="/@leffet">
|
||||
<div class="nav-button">
|
||||
<v-icon class="mx-2">mdi-account</v-icon>
|
||||
L'Effet
|
||||
</div>
|
||||
</RouterLink>
|
||||
|
||||
<RouterLink to="/@chloebeaugrand">
|
||||
<div class="nav-button">
|
||||
<v-icon class="mx-2">mdi-account</v-icon>
|
||||
Chloe Beaugrand
|
||||
</div>
|
||||
</RouterLink>
|
||||
|
||||
<RouterLink to="/@guillaumeaime">
|
||||
<div class="nav-button">
|
||||
<v-icon class="mx-2">mdi-account</v-icon>
|
||||
Guillaume Aime
|
||||
</div>
|
||||
</RouterLink>
|
||||
|
||||
<RouterLink to="/@mathieucaron">
|
||||
<div class="nav-button">
|
||||
<v-icon class="mx-2">mdi-account</v-icon>
|
||||
Mathieu Caron
|
||||
</div>
|
||||
</RouterLink>
|
||||
|
||||
<RouterLink to="/@arps">
|
||||
<div class="nav-button">
|
||||
<v-icon class="mx-2">mdi-account</v-icon>
|
||||
ARPS
|
||||
</div>
|
||||
</RouterLink>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="border-t w-full py-10">
|
||||
<SiteMenu></SiteMenu>
|
||||
</div>
|
||||
</nav>
|
||||
</aside>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.nav-button {
|
||||
@apply rounded p-1 m-1 text-gray-800 font-sans;
|
||||
}
|
||||
|
||||
.nav-button:hover {
|
||||
@apply bg-[#903175] text-gray-200;
|
||||
}
|
||||
|
||||
h2 {
|
||||
@apply font-sans font-bold ml-2;
|
||||
}
|
||||
|
||||
aside {
|
||||
@apply relative;
|
||||
}
|
||||
|
||||
.custom-scrollbar {
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: #903175 #f1f1f1;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script setup lang="ts">
|
||||
import SiteMenu from "@/views/main/SiteMenu.vue";
|
||||
</script>
|
||||
51
src/views/main/SiteMenu.vue
Normal file
51
src/views/main/SiteMenu.vue
Normal file
@@ -0,0 +1,51 @@
|
||||
<template>
|
||||
<div class="flex flex-col">
|
||||
|
||||
<div class="flex flex-row justify-center pb-4 pt-2 py-4">
|
||||
<!-- Facebook -->
|
||||
<a href="https://www.facebook.com/profile.php?id=61556819217561">
|
||||
<img src="/images/hutopymedia/icons/pink/facebookpink.png" alt="Facebook Logo">
|
||||
</a>
|
||||
<!-- Instagram -->
|
||||
<a href="https://www.instagram.com/hutopy.inc/">
|
||||
<img src="/images/hutopymedia/icons/pink/instagrampink.png" alt="Instagram Logo">
|
||||
</a>
|
||||
<!-- X / Twitter -->
|
||||
<a href="https://twitter.com/Hutopyinc">
|
||||
<img src="/images/hutopymedia/icons/pink/xpink.png" alt="X Logo">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="py-4">
|
||||
<RouterLink class="nav-button font-weight-bold" to="/join">Aidez-nous</RouterLink>
|
||||
</div>
|
||||
|
||||
<div class="text-center ">
|
||||
<RouterLink class="nav-button" to="/helpandcontact">Aide & Contact</RouterLink>
|
||||
<RouterLink class="nav-button" to="/faq">FAQ</RouterLink>
|
||||
<RouterLink class="nav-button" to="/guideforcreators">Guide pour les créateurs</RouterLink>
|
||||
<RouterLink class="nav-button" to="/termsandconditions">Conditions générales</RouterLink>
|
||||
<RouterLink class="nav-button" to="/contentpolicy">Politique de Contenu</RouterLink>
|
||||
<RouterLink class="nav-button" to="/about">À Propos</RouterLink>
|
||||
<RouterLink class="nav-button" to="/pricing">Frais</RouterLink>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.nav-button {
|
||||
@apply rounded flex justify-center font-sans py-1;
|
||||
}
|
||||
|
||||
.nav-button:hover {
|
||||
@apply text-purple-800 bg-gray-50;
|
||||
}
|
||||
|
||||
img {
|
||||
@apply m-2 w-10 h-10;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
<script setup lang="ts">
|
||||
</script>
|
||||
56
src/views/main/SocialLinks.vue
Normal file
56
src/views/main/SocialLinks.vue
Normal file
@@ -0,0 +1,56 @@
|
||||
<template>
|
||||
<div ref="container">
|
||||
<div class="text-center text-2xl py-4 border-t-4">Liens des réseaux sociaux et de votre site</div>
|
||||
<div class="px-5 py-2 flex flex-col space-y-4">
|
||||
<div v-for="network in socialNetworks" :key="network.field">
|
||||
<div class="flex justify-between items-center mb-2">
|
||||
<label class="text-lg">{{ network.label }}</label>
|
||||
</div>
|
||||
<v-text-field v-model="network.value" :label="network.label" variant="outlined"></v-text-field>
|
||||
</div>
|
||||
<div class="flex flex-col space-y-4">
|
||||
<div class="flex items-center mb-2">
|
||||
<label class="text-lg mr-4">Icône pour votre site web *svg</label>
|
||||
<v-file-input v-model="iconFile" label="Téléverser une icône" @change="onFileChange"></v-file-input>
|
||||
</div>
|
||||
<div v-if="iconUrl" class="flex justify-center">
|
||||
<img :src="iconUrl" alt="Icon" class="icon-preview">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
|
||||
const socialNetworks = ref([
|
||||
{ label: 'Instagram', field: 'instagram', value: '' },
|
||||
{ label: 'TikTok', field: 'tiktok', value: '' },
|
||||
{ label: 'Facebook', field: 'facebook', value: '' },
|
||||
{ label: 'X', field: 'X', value: '' },
|
||||
{ label: 'LinkedIn', field: 'linkedin', value: '' },
|
||||
{ label: 'Site Web', field: 'website', value: '' }
|
||||
]);
|
||||
|
||||
const iconUrl = ref('');
|
||||
const iconFile = ref(null);
|
||||
|
||||
const onFileChange = (event) => {
|
||||
const file = event.target.files[0];
|
||||
if (file) {
|
||||
const reader = new FileReader();
|
||||
reader.onload = (e) => {
|
||||
iconUrl.value = e.target.result;
|
||||
};
|
||||
reader.readAsDataURL(file);
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.icon-preview {
|
||||
max-width: 250px;
|
||||
max-height: 250px;
|
||||
}
|
||||
</style>
|
||||
@@ -1,883 +0,0 @@
|
||||
<template>
|
||||
<div style="background-color: #f4f4f4;">
|
||||
<DefaultLayout style="margin-bottom: 30px"></DefaultLayout>
|
||||
|
||||
<!-- "Mobile -->
|
||||
<v-row class="fluid hidden-md-and-up social-mobile-container"
|
||||
style="margin-top: -10px; position: relative; z-index: 0; " hidden-md-and-down>
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375" :src="imageSrc" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- "PurpleLine" -->
|
||||
<v-row style="background-color: #6b0065; height: 5px; box-shadow: rgba(0, 0, 0, 0.7);">
|
||||
</v-row>
|
||||
|
||||
<!-- "Mobile-Profile" -->
|
||||
<!-- "Profile picture" -->
|
||||
<v-row class="d-flex justify-center align-center d-sm-none" style="margin-top: 50px; margin-bottom: -10px">
|
||||
<v-img :src="profilePicture" class="elevation-4 mobile-profile-picture-creator"></v-img>
|
||||
</v-row>
|
||||
|
||||
<!-- User Social Network Links -->
|
||||
<v-container style="margin-top: -70px; padding: 0;" class="hidden-md-and-up social-container-mobile-icons"
|
||||
hidden-md-and-down>
|
||||
|
||||
<!-- Facebook -->
|
||||
<v-row no-gutters class="d-flex justify-space-between align-center"
|
||||
style="margin-left: 3%; margin-right: 3%;">
|
||||
<v-col cols="2" sm="2" xs="3" style="margin-top: 60px; z-index: 50;"
|
||||
class="d-flex justify-center align-center">
|
||||
<a href="https://www.facebook.com/Hutopy">
|
||||
<v-img class="socialicons-mobile" src="/images/hutopymedia/icons/black/facebookblack.png"
|
||||
alt="Facebook"></v-img>
|
||||
</a>
|
||||
</v-col>
|
||||
<!-- Instagram -->
|
||||
<v-col cols="2" sm="2" xs="3" style="margin-top: 60px; z-index: 50;"
|
||||
class="d-flex justify-center align-center">
|
||||
<a href="https://www.instagram.com/hutopy.inc/">
|
||||
<v-img class="socialicons-mobile" src="/images/hutopymedia/icons/black/instagramblack.png"
|
||||
alt="Instagram"></v-img>
|
||||
</a>
|
||||
</v-col>
|
||||
<!-- Profile picture - Small -->
|
||||
<v-col cols="4" sm="4" xs="0" class="hidden-xs">
|
||||
<v-row class="d-flex justify-center align-center">
|
||||
<v-img :src="profilePicture" class="elevation-4 mobile-profile-picture-creator"></v-img>
|
||||
</v-row>
|
||||
</v-col>
|
||||
|
||||
<v-col cols="2" sm="2" xs="3" style="margin-top: 60px; z-index: 50;"
|
||||
class="d-flex justify-center align-center">
|
||||
<a href="https://twitter.com/Hutopyinc">
|
||||
<v-img class="socialicons-mobile" src="/images/hutopymedia/icons/black/xblack.png"
|
||||
alt="X"></v-img>
|
||||
</a>
|
||||
</v-col>
|
||||
|
||||
<v-spacer class="hidden-xs"> </v-spacer>
|
||||
|
||||
|
||||
|
||||
</v-row>
|
||||
|
||||
<!-- User informations Name title and description -->
|
||||
<v-row class="social-container-mobile">
|
||||
<v-col cols="12" xs="12" sm="4" class="d-flex justify-center">
|
||||
<v-row class="d-flex justify-center">
|
||||
{{ name }}
|
||||
</v-row>
|
||||
</v-col>
|
||||
<v-spacer xs="12" sm="4"></v-spacer>
|
||||
<v-col cols="12" xs="12" sm="4" class="d-flex justify-center">
|
||||
<v-row class="d-flex justify-center">
|
||||
{{ title }}
|
||||
</v-row>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-container
|
||||
style="border-bottom-left-radius: 15px; margin-top: -12px; border-bottom-right-radius: 15px;"
|
||||
class="social-icon-group-mobile">
|
||||
<v-expansion-panels style="min-width: 320px;">
|
||||
<v-col cols="12" offset="-1">
|
||||
<v-expansion-panel class="background-pink text-justify" style="color: white;"
|
||||
text="Notre mission chez Hutopy est d'aider les gens à s'épanouir en leur proposant un environnement de partage unique qui va leur permettre de se surpasser. Nous travaillons étroitement avec la communauté d'Hutopy afin de concentrer notre développement sur ce que vous demandez et sur vos besoins, afin d'offrir les meilleurs outils. Le tout en gardant à l'esprit l'aspect humain de chacun. Il est important pour nous de contribuer à créer un monde meilleur."
|
||||
title="À propos d'Hutopy :">
|
||||
</v-expansion-panel>
|
||||
</v-col>
|
||||
</v-expansion-panels>
|
||||
</v-container>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
<!-- Bannière Pc -->
|
||||
<v-row class="fluid hidden-sm-and-down" style="margin-top: -65px; position: relative; z-index: 0; "
|
||||
hidden-sm-and-up>
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375" :src="imageSrc" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row class="hidden-sm-and-down"
|
||||
style="background-color: #6b0065; height: 5px; box-shadow: rgba(0, 0, 0, 0.7);" hidden-sm-and-up>
|
||||
</v-row>
|
||||
|
||||
<!-- "Core (Menu / Center / Donation)" -->
|
||||
<v-row>
|
||||
<!-- "Menu" -->
|
||||
<v-col cols="2" md="3" lg="3" xl="3" xxl="2" class="hidden-sm-and-down menu-col" hidden-sm-and-down>
|
||||
<v-col style="margin: 0;">
|
||||
<v-row class="Hutopy-menu-sticky-mobile">
|
||||
<v-spacer></v-spacer>
|
||||
<v-col>
|
||||
<v-container style=" overflow-y: hidden;">
|
||||
<!-- Nav-Btn -->
|
||||
<v-col cols="12" class="px-0">
|
||||
<v-img src="/images/hutopymedia/banners/hutopy.png" alt="Description de l'image"
|
||||
style="height: 150px; width: 300px;" class="mx-auto" :elevation="10"></v-img>
|
||||
<v-list dense class="main-background">
|
||||
<v-list-item v-for="item in navigationItems" :key="item.link">
|
||||
<router-link :to="item.link">
|
||||
<v-btn text class="d-flex align-start align-center main-background"
|
||||
elevation="0" outlined="false">
|
||||
<v-icon left class="mr-4">{{ item.icon }}</v-icon>
|
||||
{{ item.text }}
|
||||
</v-btn>
|
||||
</router-link>
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
</v-col>
|
||||
</v-container>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row style="height: 400px;"></v-row>
|
||||
</v-col>
|
||||
</v-col>
|
||||
|
||||
<!-- creators -->
|
||||
<v-col class="middle-col" style="z-index: 5;" cols="12" xs="12" sm="12" md="6" lg="6" xl="6" xxl="8">
|
||||
<v-container fluid style="margin-bottom: -40px; font-size: 3rem;">
|
||||
<v-row justify="center" class="text-center">
|
||||
<v-row justify="center">
|
||||
<v-col cols="12" class="text-left d-flex justify-center ">
|
||||
<div class="headline font-weight-bold">CRÉATEURS</div>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
<v-container>
|
||||
<v-row justify="center">
|
||||
<v-col cols="12">
|
||||
<v-container class="mt-10">
|
||||
<v-row justify="center">
|
||||
<router-link v-for="(profile, index) in profiles" :key="index"
|
||||
:to="profile.routerLink" class="text-decoration-none">
|
||||
<v-col>
|
||||
<v-card class="mb-4 card-equal-width"
|
||||
style="max-width: 250px; height: 300px;">
|
||||
<v-img :src="profile.imageUrl" height="200px" width="300px"
|
||||
style="margin-top: 10px;"></v-img>
|
||||
<v-card-title style="font-weight: 600;" class="text-center">{{
|
||||
profile.name
|
||||
}}</v-card-title>
|
||||
<v-card-text class="text-center">{{ profile.description }}</v-card-text>
|
||||
</v-card>
|
||||
</v-col>
|
||||
</router-link>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</v-col>
|
||||
|
||||
<!-- "Large-Monitor-RightCol" Donation -->
|
||||
<v-col cols="2" md="3" lg="3" xl="2" xxl="2" class="hidden-sm-and-down" hidden-sm-and-up>
|
||||
<v-row>
|
||||
<v-col>
|
||||
<v-container class="sticky-bottom-label Je-soutien-container"
|
||||
style="max-width: 400px ; bottom: 0;">
|
||||
<!-- Donnation -->
|
||||
<v-card style="border-radius: 20px;">
|
||||
<v-container>
|
||||
<v-row class="mb-0"
|
||||
style="background-color: #6b0065; margin-left: -24px; margin-right: -24px; margin-top: -20px; justify-content: center;">
|
||||
<v-card-title class="text-soutiens" style="margin-top: 15px;">
|
||||
JE SOUTIENS!
|
||||
</v-card-title>
|
||||
</v-row>
|
||||
<StripePayment creator-id="3c4317c6-af4d-475a-a382-6d0a675cc67f"></StripePayment>
|
||||
</v-container>
|
||||
</v-card>
|
||||
</v-container>
|
||||
<v-container style="height: 400px;">
|
||||
</v-container>
|
||||
</v-col>
|
||||
<v-spacer>
|
||||
</v-spacer>
|
||||
</v-row>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- "Mobile" Donation -->
|
||||
<v-col class="hidden-md-and-up sticky-bottom-label" hidden-sm-and-down
|
||||
style="background-color: #6b0065; margin-top: 30px; text-align: center;">
|
||||
|
||||
<!-- Barre cliquable pour ouvrir le drawer -->
|
||||
<v-btn @click="drawerbottom = !drawerbottom" elevation="0"
|
||||
style="background-color: #6b0065; color: white; text-align: center;" class="text-soutiens ">
|
||||
JE SOUTIENS
|
||||
</v-btn>
|
||||
</v-col>
|
||||
|
||||
<!-- Drawer du bas -->
|
||||
<template>
|
||||
<div>
|
||||
<v-bottom-sheet v-model="drawerbottom" class="sticky-bottom-label" hide-overlay>
|
||||
<v-container style="background-color: #6b0065; color: white; padding: 20px; text-align: center;">
|
||||
<h1 class="text-soutiens">JE SOUTIENS</h1>
|
||||
<StripePayment creator-id="3c4317c6-af4d-475a-a382-6d0a675cc67f"></StripePayment>
|
||||
</v-container>
|
||||
</v-bottom-sheet>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<FooterLayout></FooterLayout>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import DefaultLayout from '@/layouts/DefaultLayout.vue';
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
import { ref } from 'vue';
|
||||
import StripePayment from '../StripePayment.vue';
|
||||
let imageSrc = '/images/usersmedia/HutopyProfile/banners/banner01.png';
|
||||
let profilePicture = '/images/usersmedia/HutopyProfile/profilepictures/profileHutopyProfile01.png';
|
||||
let name = 'Hutopy'
|
||||
let title = 'Page officiel'
|
||||
let drawerbottom = ref(false)
|
||||
|
||||
let navigationItems = [
|
||||
{ icon: 'mdi-home', text: 'Accueil', link: 'home' },
|
||||
{ icon: 'mdi-account-group', text: 'Créateurs', link: '/userbrowser' },
|
||||
{ icon: 'mdi-handshake', text: 'Aidez-nous', link: '/contact' },
|
||||
];
|
||||
|
||||
const profiles = ref([
|
||||
{
|
||||
id: 1,
|
||||
name: "Hutopy",
|
||||
description: "Page officielle",
|
||||
imageUrl: '/images/usersmedia/HutopyProfile/profilepictures/profileHutopyProfile01.png',
|
||||
routerLink: 'Hutopy'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: "L'effet",
|
||||
description: "Fondation",
|
||||
imageUrl: '/images/usersmedia/leffet/profilepictures/leffetProfile01.png',
|
||||
routerLink: 'leffet'
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: "Guillaume M",
|
||||
description: "Créateur de contenus",
|
||||
imageUrl: '/images/usersmedia/guillaumeMousseau/profilepictures/profileGuillaumeMousseau01.png',
|
||||
routerLink: 'guillaumeaime'
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
name: "Chloé Beaugrand",
|
||||
description: "Spécialiste en médias sociaux",
|
||||
imageUrl: '/images/usersmedia/chloebeaugrand/profilepictures/profileChloeBeaugrand01.png',
|
||||
routerLink: 'chloebeaugrand'
|
||||
},
|
||||
|
||||
{
|
||||
id: 5,
|
||||
name: "Mathieu Caron",
|
||||
description: "Entrevue Atypique",
|
||||
imageUrl: '/images/usersmedia/mathieuCaron/profilepictures/profileMathieuCaron01.png',
|
||||
routerLink: 'mathieuCaron'
|
||||
},
|
||||
|
||||
{
|
||||
id: 6,
|
||||
name: "ARPS",
|
||||
description: "Agence créative",
|
||||
imageUrl: '/images/usersmedia/ARPS/profilepictures/profileARPS.png',
|
||||
routerLink: 'ARPS'
|
||||
}
|
||||
]);
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.invert-color {
|
||||
filter: invert(1);
|
||||
}
|
||||
|
||||
|
||||
.Hutopy-menu-sticky-mobile {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
margin-top: -40px;
|
||||
}
|
||||
|
||||
.sticky-bottom-label {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.sticky-top-label {
|
||||
position: sticky;
|
||||
bottom: 0;
|
||||
right: 10%;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.text-soutiens {
|
||||
margin-bottom: 15px;
|
||||
color: white;
|
||||
font-size: 1.5rem;
|
||||
letter-spacing: 7px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
margin-top: -10px;
|
||||
margin-left: 15%;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
margin-left: 15%;
|
||||
font-size: large;
|
||||
}
|
||||
|
||||
.name-info-mobile {
|
||||
margin-left: 22px;
|
||||
font-size: 1.3rem
|
||||
}
|
||||
|
||||
.main-background {
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -16%;
|
||||
}
|
||||
|
||||
.btn-custom {
|
||||
width: 100%;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.background-profile-container {
|
||||
background-color: #ececec;
|
||||
color: white;
|
||||
border-top: 3px solid #a30e79;
|
||||
border-right: 3px solid #a30e79;
|
||||
font-weight: 700;
|
||||
font-size: 1.15rem;
|
||||
border-radius: 25px;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3)
|
||||
}
|
||||
|
||||
.background-pink {
|
||||
background-color: #23393b;
|
||||
color: white;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.label-text {
|
||||
font-weight: 400;
|
||||
margin-left: 3%;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.profile-name {
|
||||
margin-top: -15%;
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 35px;
|
||||
max-width: 100px;
|
||||
margin-top: 3px;
|
||||
margin-left: 40px;
|
||||
}
|
||||
|
||||
.socialicons-mobile {
|
||||
width: 35px;
|
||||
max-width: 100px;
|
||||
margin-top: 27px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.youtube-card {
|
||||
margin-left: 2%;
|
||||
margin-right: 2%;
|
||||
border-radius: 15px;
|
||||
background-color: #f4f4f4;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4)
|
||||
}
|
||||
|
||||
.card-title {
|
||||
font-size: 1.4rem;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.card-date {
|
||||
margin-left: 10px;
|
||||
margin-top: -18px;
|
||||
margin-bottom: -20px;
|
||||
font-size: .8rem;
|
||||
}
|
||||
|
||||
.social-container {
|
||||
background-color: #6b0065;
|
||||
border-top-right-radius: 30px;
|
||||
border-bottom-right-radius: 30px;
|
||||
font-size: 1.7rem;
|
||||
font-weight: 600;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
background-color: #a30e79;
|
||||
border-bottom-right-radius: 30px;
|
||||
font-size: 1.4rem;
|
||||
font-weight: 500;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.social-container-mobile {
|
||||
background-color: #a30e79;
|
||||
font-size: 1.4rem;
|
||||
font-weight: 600;
|
||||
color: white;
|
||||
z-index: 1000;
|
||||
margin: auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.social-container2-mobile {
|
||||
background-color: #0baab2;
|
||||
z-index: 1000;
|
||||
font-size: 1.2rem;
|
||||
font-weight: 500;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.social-icon-group-mobile {
|
||||
background-color: #6b0065;
|
||||
}
|
||||
|
||||
.mini-profile-picture {
|
||||
border-radius: 100px;
|
||||
}
|
||||
|
||||
.btn-card-options {
|
||||
background-color: #f4f4f4;
|
||||
width: 50px;
|
||||
margin-left: -12px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
border-radius: 100px;
|
||||
height: 150px;
|
||||
width: 150px;
|
||||
border-radius: 50%;
|
||||
max-width: 150px;
|
||||
border: 4px solid white;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.mobile-header {
|
||||
height: 50px;
|
||||
margin-left: -13%;
|
||||
margin-top: 6%;
|
||||
}
|
||||
|
||||
.h1-navigation {
|
||||
text-align: center;
|
||||
font-weight: 600;
|
||||
margin-bottom: 10%;
|
||||
}
|
||||
|
||||
.mobile-profile-picture {
|
||||
height: 40px;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
|
||||
border: 2px solid #a30e79;
|
||||
margin-right: 10px
|
||||
}
|
||||
|
||||
.profile-banner {
|
||||
margin-top: 25px;
|
||||
min-height: 200px
|
||||
}
|
||||
|
||||
.v-navigation-drawer {
|
||||
max-height: 100vh;
|
||||
}
|
||||
|
||||
@media (min-width: 150px) and (max-width: 474px) {
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.5) translateY(-30%) translateX(0%);
|
||||
}
|
||||
|
||||
.socialicons-mobile {
|
||||
width: 35px;
|
||||
max-width: 100px;
|
||||
margin-top: 0px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media (min-width: 475px) and (max-width: 599px) {
|
||||
.socialicons-mobile {
|
||||
width: 35px;
|
||||
max-width: 100px;
|
||||
margin-top: 0px;
|
||||
margin-left: px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.5) translateY(-30%) translateX(0%);
|
||||
}
|
||||
|
||||
.profile-container-mobile {
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
margin-top: -112px;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 250px;
|
||||
}
|
||||
|
||||
.name-info-mobile {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 599px) and (max-width: 749px) {
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.5) translateY(25%) translateX(0%);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
}
|
||||
|
||||
.profile-container-mobile {
|
||||
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
margin-top: -110px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 330px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 750px) and (max-width: 960px) {
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.8) translateY(25%) translateX(0%);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
}
|
||||
|
||||
.profile-container-mobile {
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
margin-top: -110px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 425px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 960px) and (max-width: 1280px) {
|
||||
.middle-col {
|
||||
margin-left: -30px;
|
||||
}
|
||||
|
||||
.text-soutiens {
|
||||
font-size: 1.2rem;
|
||||
letter-spacing: 5px;
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -185px;
|
||||
min-width: 480px
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 270px;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 325px;
|
||||
margin-left: -35px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.3) translateY(25%) translateX(-50px);
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
margin-left: 20px;
|
||||
margin-top: -6px
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
margin-left: 40px;
|
||||
margin-top: -8px
|
||||
}
|
||||
|
||||
.social-container {
|
||||
margin-left: 80px;
|
||||
min-width: 270px;
|
||||
max-height: 40px
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
margin-left: 50px;
|
||||
min-width: 250px;
|
||||
max-height: 35px
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 34px;
|
||||
max-width: 100px;
|
||||
margin-top: 15px;
|
||||
margin-left: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1280px) and (max-width: 1600px) {
|
||||
.text-soutiens {
|
||||
font-size: 1.3rem;
|
||||
letter-spacing: 8px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.3) translateY(25%) translateX(-50px);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -180px;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 290px;
|
||||
}
|
||||
|
||||
.menu-col {
|
||||
margin-left: -4%;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 350px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
margin-left: 20px;
|
||||
margin-top: -6px
|
||||
}
|
||||
|
||||
.social-container {
|
||||
margin-left: 90px;
|
||||
min-width: 350;
|
||||
max-height: 40px
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
margin-left: 70px;
|
||||
margin-top: -8px
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
|
||||
margin-left: 40px;
|
||||
min-width: 290px;
|
||||
max-height: 35px
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 34px;
|
||||
max-width: 100px;
|
||||
margin-top: 15px;
|
||||
margin-left: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1600px) and (max-width: 1919px) {
|
||||
.text-soutiens {
|
||||
font-size: 1.3rem;
|
||||
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.4) translateY(25%) translateX(-40px);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -171px;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 355px;
|
||||
}
|
||||
|
||||
.menu-col {
|
||||
margin-left: -4%;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 400px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.5rem;
|
||||
margin-top: -4px;
|
||||
margin-left: 35px;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1.3rem;
|
||||
margin-left: 75px;
|
||||
margin-top: -2px
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
margin-left: 70px;
|
||||
min-width: 300px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1920px) and (max-width: 2559px) {
|
||||
.text-soutiens {
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -160px;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 380px;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 400px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.4) translateY(25%) translateX(-40px);
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.5rem;
|
||||
margin-left: 35px;
|
||||
margin-top: -4px;
|
||||
}
|
||||
|
||||
.social-container {
|
||||
margin-left: 100px;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1.3rem;
|
||||
margin-left: 110px;
|
||||
margin-top: -4px
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
margin-left: 30px;
|
||||
min-width: 360px;
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 38px;
|
||||
max-width: 100px;
|
||||
margin-top: 13px;
|
||||
margin-left: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 2560px) {
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.5) translateY(25%) translateX(-20px);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -150px
|
||||
}
|
||||
|
||||
.profile-banner {
|
||||
margin-top: 25px;
|
||||
min-height: 450px;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 380px;
|
||||
}
|
||||
|
||||
.text-soutiens {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 2rem;
|
||||
|
||||
}
|
||||
|
||||
.social-container {
|
||||
margin-left: 140px;
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
margin-left: 130px;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1.5rem;
|
||||
margin-left: 65px;
|
||||
margin-top: -6px
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 45px;
|
||||
max-width: 100px;
|
||||
margin-top: 15px;
|
||||
margin-left: 40px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
57
src/views/main/Wallet.vue
Normal file
57
src/views/main/Wallet.vue
Normal file
@@ -0,0 +1,57 @@
|
||||
<template>
|
||||
<v-container class="mt-10 bg-gray-100 py-10 rounded-lg shadow-lg border border-fuchsia-500 mb-15">
|
||||
<div class="flex justify-center text-6xl mb-4 font-sans font-weight-bold">Portefeuille</div>
|
||||
<div class="flex justify-between mb-4">
|
||||
<div class="text-left">
|
||||
<span class="font-bold">Montant Total : </span>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<span class="font-bold">Nombre total de transactions : </span>
|
||||
</div>
|
||||
</div>
|
||||
<v-data-table
|
||||
:headers="headers"
|
||||
:items="transactions"
|
||||
class="elevation-1 text-black"
|
||||
:items-per-page="5"
|
||||
show-group-by
|
||||
>
|
||||
</v-data-table>
|
||||
</v-container>
|
||||
|
||||
|
||||
|
||||
</template>
|
||||
|
||||
<script async setup>
|
||||
import { onBeforeMount, ref } from 'vue';
|
||||
import {useClient} from "@/plugins/api.js";
|
||||
import MyUserModel from "@/models/myUserModel.js";
|
||||
const client = useClient();
|
||||
|
||||
const total = ref(false);
|
||||
const drawer = ref(false);
|
||||
const currentUserName = ref("INVITÉ");
|
||||
let currentUser = null;
|
||||
|
||||
onBeforeMount(async () => {
|
||||
try {
|
||||
const myUser = await client.get("/api/GetMyUser");
|
||||
const currentUserModel = MyUserModel.createFromApiResult(myUser.data);
|
||||
currentUser = currentUserModel;
|
||||
currentUserName.value = currentUserModel.firstName + " " + currentUserModel.lastName
|
||||
|
||||
} catch(error) {
|
||||
console.log("User not logged")
|
||||
}
|
||||
})
|
||||
|
||||
function logout(){
|
||||
localStorage.removeItem('jwt');
|
||||
window.location.reload();
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
@@ -1,118 +0,0 @@
|
||||
<template>
|
||||
|
||||
<body style="background-color:#f4f4f4">
|
||||
<DefaultLayout></DefaultLayout>
|
||||
|
||||
<v-row style="background-color: #6b0065; height: 100px; margin-top: -50px; margin-bottom: -25px;">
|
||||
</v-row>
|
||||
|
||||
<v-row justify="center">
|
||||
<v-col cols="12">
|
||||
<v-img class="profile-banner" max-height="375" :src="bannerImageUrl" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row style="background-color: #6b0065; height: 100px; margin-top: 0;" align="center">
|
||||
<v-col cols="12" class="text-right">
|
||||
<v-btn style="margin-right: 3%;"> <v-icon>mdi-pencil</v-icon></v-btn>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<v-container style="max-width: 800px; margin-top: -100px" class="d-flex justify-center align-center">
|
||||
<v-container>
|
||||
<v-row justify="center">
|
||||
<v-col style="background-color: white; border-radius: 30px;" class="col-shadow" cols="12">
|
||||
<v-row justify="center" style="margin-bottom: 20px;">
|
||||
<v-col cols="auto" class="d-flex justify-center">
|
||||
<v-img class="your-profile-picture" :src="profilePictureUrl"></v-img>
|
||||
</v-col>
|
||||
<v-col cols="auto" class="d-flex justify-center align-center">
|
||||
<v-btn style="margin-top: -30px;">
|
||||
<v-icon>mdi-pencil</v-icon>
|
||||
</v-btn>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<p class="text-center" style="margin-bottom: 10px; font-size: 2.5rem; font-weight: 600;">
|
||||
{{ userName }}
|
||||
</p>
|
||||
<p class="text-center" style="margin-bottom: 50px; font-size: 1.2rem">
|
||||
{{ firstName }} {{ lastName }}
|
||||
</p>
|
||||
|
||||
<v-form>
|
||||
<v-text-field variant="solo" v-model="firstName" label="Prénom" :readonly="!isEditing"></v-text-field>
|
||||
<v-text-field variant="solo" v-model="lastName" label="Nom" :readonly="!isEditing"></v-text-field>
|
||||
<v-text-field variant="solo" v-model="titre" label="Titre" :readonly="!isEditing"></v-text-field>
|
||||
<v-text-field variant="solo" v-model="description" label="Description"
|
||||
:readonly="!isEditing"></v-text-field>
|
||||
</v-form>
|
||||
<v-col class="text-right">
|
||||
<router-link :to="{ name: 'creatorfolio' }" class="">
|
||||
<v-btn style="margin-right: 20px;">Retour</v-btn>
|
||||
</router-link>
|
||||
<v-btn @click="toggleEdit">{{ isEditing ? 'Sauvegarder' : 'Éditer' }}</v-btn>
|
||||
</v-col>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</v-container>
|
||||
|
||||
<FooterLayout></FooterLayout>
|
||||
</body>
|
||||
</template>
|
||||
|
||||
<script async setup>
|
||||
import DefaultLayout from '@/layouts/DefaultLayout.vue';
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
import MyUserModel from "@/models/myUserModel.js";
|
||||
import { useClient } from "@/plugins/api.js";
|
||||
import { onBeforeMount, ref } from 'vue';
|
||||
|
||||
const client = useClient();
|
||||
|
||||
const profilePictureUrl = ref('/images/usersmedia/guillaumeMousseau/profilepictures/profileGuillaumeMousseau01.png');
|
||||
const bannerImageUrl = ref('/images/usersmedia/guillaumeMousseau/banners/bannerGuillaumeMousseau01.png');
|
||||
|
||||
const firstName = ref('');
|
||||
const lastName = ref('');
|
||||
const userName = ref('');
|
||||
const titre = ref('');
|
||||
const description = ref('');
|
||||
|
||||
const isEditing = ref(false);
|
||||
|
||||
const fetchUserData = async () => {
|
||||
try {
|
||||
const myUser = await client.get("/api/GetMyUser");
|
||||
const currentUserModel = MyUserModel.createFromApiResult(myUser.data);
|
||||
firstName.value = currentUserModel.firstName;
|
||||
lastName.value = currentUserModel.lastName;
|
||||
userName.value = currentUserModel.userName;
|
||||
// Assignez d'autres champs si nécessaire
|
||||
} catch (error) {
|
||||
console.error('Error fetching user data:', error);
|
||||
}
|
||||
};
|
||||
|
||||
const toggleEdit = () => {
|
||||
isEditing.value = !isEditing.value;
|
||||
};
|
||||
|
||||
onBeforeMount(fetchUserData);
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.your-profile-picture {
|
||||
width: 300px;
|
||||
border-radius: 40px;
|
||||
box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
.row-shadow {
|
||||
box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
.col-shadow {
|
||||
box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
</style>
|
||||
51
src/views/main/creators.json
Normal file
51
src/views/main/creators.json
Normal file
@@ -0,0 +1,51 @@
|
||||
[
|
||||
{
|
||||
"ìd": 1,
|
||||
"name": "Hutopy",
|
||||
"title": "Page officielle",
|
||||
"description": "Site officiel pour Hutopy. Venez-nous-y retrouver avec tous vos fans!",
|
||||
"imageUrl": "/images/usersmedia/HutopyProfile/profilepictures/profileHutopyProfile01.png",
|
||||
"routerLink": "@hutopy",
|
||||
"about": "Notre mission chez Hutopy est d'aider les gens à s'épanouir en leur proposant un environnement de partage unique qui va leur permettre de se surpasser. Nous travaillons étroitement avec la communauté d'Hutopy afin de concentrer notre développement sur ce que vous demandez et sur vos besoins, afin d'offrir les meilleurs outils. Le tout en gardant à l'esprit l'aspect humain de chacun. Il est important pour nous de contribuer à créer un monde meilleur.",
|
||||
"contacts": {
|
||||
"twitter": "https://twitter.com/Hutopyinc",
|
||||
"facebook": "https://www.facebook.com/Hutopy",
|
||||
"instagram": "https://www.instagram.com/hutopy.inc/"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "L'effet",
|
||||
"description": "Fondation",
|
||||
"imageUrl": "/images/usersmedia/leffet/profilepictures/leffetProfile01.png",
|
||||
"routerLink": "@leffet"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "Guillaume M",
|
||||
"description": "Créateur de contenus",
|
||||
"imageUrl": "/images/usersmedia/guillaumeMousseau/profilepictures/profileGuillaumeMousseau01.png",
|
||||
"routerLink": "@guillaumeaime"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "Chloé Beaugrand",
|
||||
"description": "Spécialiste en médias sociaux",
|
||||
"imageUrl": "/images/usersmedia/chloebeaugrand/profilepictures/profileChloeBeaugrand01.png",
|
||||
"routerLink": "@chloebeaugrand"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "Mathieu Caron",
|
||||
"description": "Entrevue Atypique",
|
||||
"imageUrl": "/images/usersmedia/mathieuCaron/profilepictures/profileMathieuCaron01.png",
|
||||
"routerLink": "@mathieuCaron"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "ARPS",
|
||||
"description": "Agence créative",
|
||||
"imageUrl": "/images/usersmedia/ARPS/profilepictures/profileARPS.png",
|
||||
"routerLink": "@ARPS"
|
||||
}
|
||||
]
|
||||
34
src/views/main/posts.json
Normal file
34
src/views/main/posts.json
Normal file
@@ -0,0 +1,34 @@
|
||||
[
|
||||
{
|
||||
"id": 1,
|
||||
"creatorId": 1,
|
||||
"title": "Déploiement de la version 0.10 d'Hutopy",
|
||||
"date": "24-04-2024",
|
||||
"banner": "https://www.youtube.com/embed/neKWqjE0eSs?si=Bo7xbYaw9-56w3lU",
|
||||
"content": "Bonjour, Nous sommes fiers de vous présenter la version 0.10 d'Hutopy. Nous sommes au début d'une aventure visant à transformer la sphère des médias sociaux. Notre objectif est d'apporter un souffle de fraîcheur en favorisant des interactions plus constructives entre les individus. Dans cette première version, seuls nos utilisateurs testeurs ont accès à la plateforme comme créateur. Dans un futur proche, avec le déploiement de la version 0.2, nous contacterons les personnes qui se sont inscrites via l'onglet d'inscription et ont rempli quelques questions. Si vous souhaitez soutenir le développement de la plateforme, deux options s'offrent à vous. La première consiste à nous apporter un soutien financier, tandis que la seconde est de nous contacter pour faire partie de l'équipe de développement. Nous recherchons actuellement un programmeur supplémentaire pour faire progresser certaines fonctionnalités. Merci de visiter Hutopy."
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"creatorId": 1,
|
||||
"title": "Déploiement de la version 0.10 d'Hutopy",
|
||||
"date": "24-04-2024",
|
||||
"banner": "/images/usersmedia/HutopyProfile/pictures/version.png",
|
||||
"content": "Bonjour, Nous sommes fiers de vous présenter la version 0.10 d'Hutopy. Nous sommes au début d'une aventure visant à transformer la sphère des médias sociaux. Notre objectif est d'apporter un souffle de fraîcheur en favorisant des interactions plus constructives entre les individus. Dans cette première version, seuls nos utilisateurs testeurs ont accès à la plateforme comme créateur. Dans un futur proche, avec le déploiement de la version 0.2, nous contacterons les personnes qui se sont inscrites via l'onglet d'inscription et ont rempli quelques questions. Si vous souhaitez soutenir le développement de la plateforme, deux options s'offrent à vous. La première consiste à nous apporter un soutien financier, tandis que la seconde est de nous contacter pour faire partie de l'équipe de développement. Nous recherchons actuellement un programmeur supplémentaire pour faire progresser certaines fonctionnalités. Merci de visiter Hutopy."
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"creatorId": 1,
|
||||
"title": "Déploiement de la version 0.10 d'Hutopy",
|
||||
"date": "24-04-2024",
|
||||
"banner": "/images/usersmedia/HutopyProfile/pictures/version.png",
|
||||
"content": "Bonjour, Nous sommes fiers de vous présenter la version 0.10 d'Hutopy. Nous sommes au début d'une aventure visant à transformer la sphère des médias sociaux. Notre objectif est d'apporter un souffle de fraîcheur en favorisant des interactions plus constructives entre les individus. Dans cette première version, seuls nos utilisateurs testeurs ont accès à la plateforme comme créateur. Dans un futur proche, avec le déploiement de la version 0.2, nous contacterons les personnes qui se sont inscrites via l'onglet d'inscription et ont rempli quelques questions. Si vous souhaitez soutenir le développement de la plateforme, deux options s'offrent à vous. La première consiste à nous apporter un soutien financier, tandis que la seconde est de nous contacter pour faire partie de l'équipe de développement. Nous recherchons actuellement un programmeur supplémentaire pour faire progresser certaines fonctionnalités. Merci de visiter Hutopy."
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"creatorId": 1,
|
||||
"title": "Déploiement de la version 0.10 d'Hutopy",
|
||||
"date": "24-04-2024",
|
||||
"banner": "/images/usersmedia/HutopyProfile/pictures/version.png",
|
||||
"content": "Bonjour, Nous sommes fiers de vous présenter la version 0.10 d'Hutopy. Nous sommes au début d'une aventure visant à transformer la sphère des médias sociaux. Notre objectif est d'apporter un souffle de fraîcheur en favorisant des interactions plus constructives entre les individus. Dans cette première version, seuls nos utilisateurs testeurs ont accès à la plateforme comme créateur. Dans un futur proche, avec le déploiement de la version 0.2, nous contacterons les personnes qui se sont inscrites via l'onglet d'inscription et ont rempli quelques questions. Si vous souhaitez soutenir le développement de la plateforme, deux options s'offrent à vous. La première consiste à nous apporter un soutien financier, tandis que la seconde est de nous contacter pour faire partie de l'équipe de développement. Nous recherchons actuellement un programmeur supplémentaire pour faire progresser certaines fonctionnalités. Merci de visiter Hutopy."
|
||||
}
|
||||
]
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,936 +0,0 @@
|
||||
<template>
|
||||
<div style="background-color: #f4f4f4;">
|
||||
<DefaultLayout style="margin-bottom: 30px"></DefaultLayout>
|
||||
|
||||
<!-- "Mobile -->
|
||||
<v-row class="fluid hidden-md-and-up social-mobile-container"
|
||||
style="margin-top: -10px; position: relative; z-index: 0; " hidden-md-and-down>
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375" :src="imageSrc" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- "PurpleLine" -->
|
||||
<v-row style="background-color: #6b0065; height: 5px; box-shadow: rgba(0, 0, 0, 0.7);">
|
||||
</v-row>
|
||||
|
||||
<!-- "Mobile-Profile" -->
|
||||
<!-- "Profile picture" -->
|
||||
<v-row class="d-flex justify-center align-center d-sm-none" style="margin-top: 50px; margin-bottom: -10px">
|
||||
<v-img :src="profilePicture" class="elevation-4 mobile-profile-picture-creator"></v-img>
|
||||
</v-row>
|
||||
|
||||
<!-- User Social Network Links -->
|
||||
<v-container style="margin-top: -70px; padding: 0;" class="hidden-md-and-up social-container-mobile-icons"
|
||||
hidden-md-and-down>
|
||||
|
||||
<!-- Facebook -->
|
||||
<v-row no-gutters class="d-flex justify-space-between align-center" style="margin-left: 3%; margin-right: 3%;">
|
||||
<v-col cols="2" sm="2" xs="3" style="margin-top: 60px; z-index: 50;" class="d-flex justify-center align-center">
|
||||
<a href="https://www.facebook.com/Hutopy">
|
||||
<v-img class="socialicons-mobile" src="/images/hutopymedia/icons/black/facebookblack.png"
|
||||
alt="Facebook"></v-img>
|
||||
</a>
|
||||
</v-col>
|
||||
<!-- Instagram -->
|
||||
<v-col cols="2" sm="2" xs="3" style="margin-top: 60px; z-index: 50;" class="d-flex justify-center align-center">
|
||||
<a href="https://www.instagram.com/hutopy.inc/">
|
||||
<v-img class="socialicons-mobile" src="/images/hutopymedia/icons/black/instagramblack.png"
|
||||
alt="Instagram"></v-img>
|
||||
</a>
|
||||
</v-col>
|
||||
<!-- Profile picture - Small -->
|
||||
<v-col cols="4" sm="4" xs="0" class="hidden-xs">
|
||||
<v-row class="d-flex justify-center align-center">
|
||||
<v-img :src="profilePicture" class="elevation-4 mobile-profile-picture-creator"></v-img>
|
||||
</v-row>
|
||||
</v-col>
|
||||
|
||||
<v-col cols="2" sm="2" xs="3" style="margin-top: 60px; z-index: 50;" class="d-flex justify-center align-center">
|
||||
<a href="https://twitter.com/Hutopyinc">
|
||||
<v-img class="socialicons-mobile" src="/images/hutopymedia/icons/black/xblack.png" alt="X"></v-img>
|
||||
</a>
|
||||
</v-col>
|
||||
|
||||
<v-spacer class="hidden-xs"> </v-spacer>
|
||||
|
||||
|
||||
|
||||
</v-row>
|
||||
|
||||
<!-- User informations Name title and description -->
|
||||
<v-row class="social-container-mobile">
|
||||
<v-col cols="12" xs="12" sm="4" class="d-flex justify-center">
|
||||
<v-row class="d-flex justify-center">
|
||||
{{ name }}
|
||||
</v-row>
|
||||
</v-col>
|
||||
<v-spacer xs="12" sm="4"></v-spacer>
|
||||
<v-col cols="12" xs="12" sm="4" class="d-flex justify-center">
|
||||
<v-row class="d-flex justify-center">
|
||||
{{ title }}
|
||||
</v-row>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-container style="border-bottom-left-radius: 15px; margin-top: -12px; border-bottom-right-radius: 15px;"
|
||||
class="social-icon-group-mobile">
|
||||
<v-expansion-panels style="min-width: 320px;">
|
||||
<v-col cols="12" offset="-1">
|
||||
<v-expansion-panel class="background-pink text-justify" style="color: white;"
|
||||
text="Notre mission chez Hutopy est d'aider les gens à s'épanouir en leur proposant un environnement de partage unique qui va leur permettre de se surpasser. Nous travaillons étroitement avec la communauté d'Hutopy afin de concentrer notre développement sur ce que vous demandez et sur vos besoins, afin d'offrir les meilleurs outils. Le tout en gardant à l'esprit l'aspect humain de chacun. Il est important pour nous de contribuer à créer un monde meilleur."
|
||||
title="À propos d'Hutopy :">
|
||||
|
||||
|
||||
</v-expansion-panel>
|
||||
</v-col>
|
||||
</v-expansion-panels>
|
||||
</v-container>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
<!-- Bannière Pc -->
|
||||
<v-row class="fluid hidden-sm-and-down" style="margin-top: -65px; position: relative; z-index: 0; "
|
||||
hidden-sm-and-up>
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375" :src="imageSrc" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row class="hidden-sm-and-down" style="background-color: #6b0065; height: 5px; box-shadow: rgba(0, 0, 0, 0.7);"
|
||||
hidden-sm-and-up>
|
||||
</v-row>
|
||||
|
||||
<!-- "Core (Menu / Center / Donation)" -->
|
||||
<v-row>
|
||||
<!-- "Menu" -->
|
||||
<v-col cols="2" md="3" lg="4" xl="4" xxl="4" class="hidden-sm-and-down menu-col" hidden-sm-and-down>
|
||||
<v-col style="margin: 0;">
|
||||
<v-row class="Hutopy-menu-sticky-mobile">
|
||||
<v-spacer></v-spacer>
|
||||
<v-col>
|
||||
<v-container style=" overflow-y: hidden;">
|
||||
<!-- Nav-Btn -->
|
||||
<v-col cols="12" class="px-0">
|
||||
<v-img src="/images/hutopymedia/banners/hutopy.png" alt="Description de l'image"
|
||||
style="height: 150px; width: 300px;" class="mx-auto" :elevation="10"></v-img>
|
||||
<v-list dense class="main-background">
|
||||
<v-list-item v-for="item in navigationItems" :key="item.link">
|
||||
<router-link :to="item.link">
|
||||
<v-btn text class="d-flex align-start align-center main-background" elevation="0"
|
||||
outlined="false">
|
||||
<v-icon left class="mr-4">{{ item.icon }}</v-icon>
|
||||
{{ item.text }}
|
||||
</v-btn>
|
||||
</router-link>
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
</v-col>
|
||||
</v-container>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row style="height: 1000px;"></v-row>
|
||||
</v-col>
|
||||
</v-col>
|
||||
|
||||
<!-- Profile Info Picture name title & description -->
|
||||
<v-col class="middle-col" style="z-index: 5;" cols="12" xs="12" sm="12" md="6" lg="5" xl="4" xxl="4">
|
||||
<v-container class="profile-container hidden-sm-and-down" hidden-md-and-up>
|
||||
<v-container>
|
||||
<v-img :src="profilePicture" class="elevation-4 mobile-profile-picture-creator"></v-img>
|
||||
<!-- User informations Name & title -->
|
||||
<v-container class="background-profile-container" style="margin-top: -8%;">
|
||||
<v-row>
|
||||
<v-col style="height: 50px;" cols="7" offset="2" class="social-container">
|
||||
<h1 class="name-info">{{ name }}</h1>
|
||||
</v-col>
|
||||
<v-col></v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-col style="height: 50px;" cols="6" offset="2" class="social-container2">
|
||||
<h1 class="occupation-info">{{ title }}</h1>
|
||||
</v-col>
|
||||
<v-col></v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- User Social Network Links -->
|
||||
<v-row>
|
||||
<v-spacer></v-spacer>
|
||||
<v-col cols="7" style="margin-top: 1%; margin-bottom: -2%;">
|
||||
<v-row>
|
||||
<a href="https://www.facebook.com/Hutopy">
|
||||
<img class="socialicons" src="/images/hutopymedia/icons/black/facebookblack.png"
|
||||
alt="Description image 2">
|
||||
</a>
|
||||
<a href="https://www.instagram.com/hutopy.inc/">
|
||||
<img class="socialicons" src="/images/hutopymedia/icons/black/instagramblack.png"
|
||||
alt="Description image 2">
|
||||
</a>
|
||||
|
||||
<a href="https://twitter.com/Hutopyinc">
|
||||
<img class="socialicons" src="/images/hutopymedia/icons/black/xblack.png"
|
||||
alt="Description image 2">
|
||||
</a>
|
||||
|
||||
|
||||
</v-row>
|
||||
</v-col>
|
||||
<v-col background-color="primary"></v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- Description -->
|
||||
<v-row>
|
||||
<v-container
|
||||
style="border-bottom-left-radius: 15px; border-bottom-right-radius: 15px; margin-top: 15px;">
|
||||
<v-expansion-panels style="min-width: 320px;">
|
||||
<v-col cols="12" offset="-1">
|
||||
<v-expansion-panel class="background-pink text-justify" style="color: white;"
|
||||
text="Notre mission chez Hutopy est d'aider les gens à s'épanouir en leur proposant un environnement de partage unique qui va leur permettre de se surpasser. Nous travaillons étroitement avec la communauté d'Hutopy afin de concentrer notre développement sur ce que vous demandez et sur vos besoins, afin d'offrir les meilleurs outils. Le tout en gardant à l'esprit l'aspect humain de chacun. Il est important pour nous de contribuer à créer un monde meilleur."
|
||||
title="À propos d'Hutopy :">
|
||||
</v-expansion-panel>
|
||||
</v-col>
|
||||
</v-expansion-panels>
|
||||
</v-container>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</v-container>
|
||||
</v-container>
|
||||
|
||||
<!-- <PostContentMenu style="margin-top: -30px;"></PostContentMenu> Post -->
|
||||
|
||||
<!-- Release v0.1 -->
|
||||
<v-container>
|
||||
<v-card class="flow-menu m-0 youtube-card">
|
||||
<!-- Title, date and btn -->
|
||||
<v-col>
|
||||
<v-row>
|
||||
<v-col class="text-center">
|
||||
<h1 class="card-title">
|
||||
Déploiement de la version 0.10 d'Hutopy</h1>
|
||||
</v-col>
|
||||
|
||||
<!--<v-col class="text-right">
|
||||
<v-btn class="btn-card-options" flat tile elevation="0">
|
||||
<v-icon style="color: #6e6e6e; font-size: 24px;">mdi-dots-vertical</v-icon>
|
||||
</v-btn> (a intégrer)
|
||||
</v-col> -->
|
||||
</v-row>
|
||||
|
||||
</v-col>
|
||||
|
||||
<!-- Card core Video/image & text -->
|
||||
<div style="background-color: rgba(255, 255, 255, 0.1); margin-left: -5%; margin-right: -5%">
|
||||
<v-container>
|
||||
<v-img src="images/usersmedia/HutopyProfile/pictures/version.png" title="Release v0.1"></v-img>
|
||||
|
||||
<!-- Date -->
|
||||
<v-row class="text-right">
|
||||
<v-col>
|
||||
<h1 style=" margin-right: 40px; margin-top: 10px" class="card-date">
|
||||
24-04-2024
|
||||
</h1>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
|
||||
<p class="text-justify pa-10" style="margin-bottom: -6%; font-size: 1em">
|
||||
|
||||
Bonjour, Nous sommes fiers de vous présenter la version 0.10 d'Hutopy. Nous sommes au début d'une
|
||||
aventure
|
||||
visant à transformer la sphère des médias sociaux. Notre objectif est d'apporter un souffle de
|
||||
fraîcheur en
|
||||
favorisant des interactions plus constructives entre les individus.
|
||||
|
||||
Dans cette première version, seuls nos utilisateurs testeurs ont accès à la plateforme comme créateur.
|
||||
Dans
|
||||
un futur
|
||||
proche, avec le déploiement de la version 0.2, nous contacterons les personnes qui se sont inscrites
|
||||
via
|
||||
l'onglet d'inscription et ont rempli quelques questions.
|
||||
|
||||
Si vous souhaitez soutenir le développement de la plateforme, deux options s'offrent à vous. La
|
||||
première
|
||||
consiste à nous apporter un soutien financier, tandis que la seconde est de nous contacter pour faire
|
||||
partie
|
||||
de l'équipe de développement. Nous recherchons actuellement un programmeur supplémentaire pour faire
|
||||
progresser certaines fonctionnalités.
|
||||
|
||||
Merci de visiter Hutopy.</p>
|
||||
|
||||
|
||||
<!-- Like dislike commment Section -->
|
||||
<div style="height: 20px;"></div>
|
||||
<div
|
||||
style="z-index: 500; margin-bottom: 2%; background-color: rgba(0, 0, 0, 1); height: 3px; width: 100%; margin-top: 20px;">
|
||||
</div>
|
||||
<div style="background-color: rgba(0, 0, 0, 1); height: 3px; width: 100%; margin-top: 20px;">
|
||||
</div>
|
||||
|
||||
<!-- Comments -->
|
||||
<v-text-field style="margin-left: 2%; margin-bottom: 15px; margin-bottom: -20px"
|
||||
placeholder="Commentaire (Arrive bientôt)"></v-text-field>
|
||||
</v-container>
|
||||
</div>
|
||||
</v-card>
|
||||
</v-container>
|
||||
|
||||
</v-col>
|
||||
|
||||
<!-- "Large-Monitor-RightCol" Donation -->
|
||||
<v-col cols="2" md="3" lg="3" xl="4" xxl="4" class="hidden-sm-and-down" hidden-sm-and-up>
|
||||
<v-row>
|
||||
<v-col>
|
||||
<v-container class="sticky-bottom-label Je-soutien-container" style="max-width: 400px ; bottom: 0;">
|
||||
<!-- Donnation -->
|
||||
<v-card style="border-radius: 20px;">
|
||||
<v-container>
|
||||
<v-row class="mb-0"
|
||||
style="background-color: #6b0065; margin-left: -24px; margin-right: -24px; margin-top: -20px; justify-content: center;">
|
||||
<v-card-title class="text-soutiens" style="margin-top: 15px;">
|
||||
JE SOUTIENS!
|
||||
</v-card-title>
|
||||
</v-row>
|
||||
<StripePayment creator-id="3c4317c6-af4d-475a-a382-6d0a675cc67f"></StripePayment>
|
||||
</v-container>
|
||||
</v-card>
|
||||
</v-container>
|
||||
<v-container style="height: 1000px;">
|
||||
</v-container>
|
||||
</v-col>
|
||||
<v-spacer>
|
||||
</v-spacer>
|
||||
</v-row>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- "Mobile" Donation -->
|
||||
<v-col class="hidden-md-and-up sticky-bottom-label" hidden-sm-and-down
|
||||
style="background-color: #6b0065; margin-top: 30px; text-align: center;">
|
||||
|
||||
<!-- Barre cliquable pour ouvrir le drawer -->
|
||||
<v-btn @click="drawerbottom = !drawerbottom" elevation="0"
|
||||
style="background-color: #6b0065; color: white; text-align: center;" class="text-soutiens ">
|
||||
JE SOUTIENS
|
||||
</v-btn>
|
||||
</v-col>
|
||||
|
||||
<!-- Drawer du bas -->
|
||||
<template>
|
||||
<div>
|
||||
<v-bottom-sheet v-model="drawerbottom" class="sticky-bottom-label" hide-overlay>
|
||||
<v-container style="background-color: #6b0065; color: white; padding: 20px; text-align: center;">
|
||||
<h1 class="text-soutiens">JE SOUTIENS</h1>
|
||||
<StripePayment creator-id="3c4317c6-af4d-475a-a382-6d0a675cc67f"></StripePayment>
|
||||
</v-container>
|
||||
</v-bottom-sheet>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<FooterLayout></FooterLayout>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import DefaultLayout from '@/layouts/DefaultLayout.vue';
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
import { ref } from 'vue';
|
||||
import StripePayment from '../StripePayment.vue';
|
||||
let imageSrc = '/images/usersmedia/HutopyProfile/banners/banner01.png';
|
||||
let profilePicture = '/images/usersmedia/HutopyProfile/profilepictures/profileHutopyProfile01.png';
|
||||
let name = 'Hutopy'
|
||||
let title = 'Page officiel'
|
||||
let drawerbottom = ref(false)
|
||||
|
||||
let navigationItems = [
|
||||
{ icon: 'mdi-home', text: 'Accueil', link: 'home' },
|
||||
{ icon: 'mdi-account-group', text: 'Créateurs', link: '/userbrowser' },
|
||||
{ icon: 'mdi-handshake', text: 'Aidez-nous', link: '/contact' },
|
||||
];
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.invert-color {
|
||||
filter: invert(1);
|
||||
}
|
||||
|
||||
|
||||
.Hutopy-menu-sticky-mobile {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
margin-top: -40px;
|
||||
}
|
||||
|
||||
.sticky-bottom-label {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.sticky-top-label {
|
||||
position: sticky;
|
||||
bottom: 0;
|
||||
right: 10%;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.text-soutiens {
|
||||
margin-bottom: 15px;
|
||||
color: white;
|
||||
font-size: 1.5rem;
|
||||
letter-spacing: 7px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
margin-top: -10px;
|
||||
margin-left: 15%;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
margin-left: 15%;
|
||||
font-size: large;
|
||||
}
|
||||
|
||||
.name-info-mobile {
|
||||
margin-left: 22px;
|
||||
font-size: 1.3rem
|
||||
}
|
||||
|
||||
.main-background {
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -16%;
|
||||
}
|
||||
|
||||
.btn-custom {
|
||||
width: 100%;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.background-profile-container {
|
||||
background-color: #ececec;
|
||||
color: white;
|
||||
border-top: 3px solid #a30e79;
|
||||
border-right: 3px solid #a30e79;
|
||||
font-weight: 700;
|
||||
font-size: 1.15rem;
|
||||
border-radius: 25px;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3)
|
||||
}
|
||||
|
||||
.background-pink {
|
||||
background-color: #23393b;
|
||||
color: white;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.label-text {
|
||||
font-weight: 400;
|
||||
margin-left: 3%;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.profile-name {
|
||||
margin-top: -15%;
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 35px;
|
||||
max-width: 100px;
|
||||
margin-top: 3px;
|
||||
margin-left: 40px;
|
||||
}
|
||||
|
||||
.socialicons-mobile {
|
||||
width: 35px;
|
||||
max-width: 100px;
|
||||
margin-top: 27px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.youtube-card {
|
||||
margin-left: 2%;
|
||||
margin-right: 2%;
|
||||
border-radius: 15px;
|
||||
background-color: #f4f4f4;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4)
|
||||
}
|
||||
|
||||
.card-title {
|
||||
font-size: 1.4rem;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.card-date {
|
||||
margin-left: 10px;
|
||||
margin-top: -18px;
|
||||
margin-bottom: -20px;
|
||||
font-size: .8rem;
|
||||
}
|
||||
|
||||
.social-container {
|
||||
background-color: #6b0065;
|
||||
border-top-right-radius: 30px;
|
||||
border-bottom-right-radius: 30px;
|
||||
font-size: 1.7rem;
|
||||
font-weight: 600;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
background-color: #a30e79;
|
||||
border-bottom-right-radius: 30px;
|
||||
font-size: 1.4rem;
|
||||
font-weight: 500;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.social-container-mobile {
|
||||
background-color: #a30e79;
|
||||
font-size: 1.4rem;
|
||||
font-weight: 600;
|
||||
color: white;
|
||||
z-index: 1000;
|
||||
margin: auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.social-container2-mobile {
|
||||
background-color: #0baab2;
|
||||
z-index: 1000;
|
||||
font-size: 1.2rem;
|
||||
font-weight: 500;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.social-icon-group-mobile {
|
||||
background-color: #6b0065;
|
||||
}
|
||||
|
||||
.mini-profile-picture {
|
||||
border-radius: 100px;
|
||||
}
|
||||
|
||||
.btn-card-options {
|
||||
background-color: #f4f4f4;
|
||||
width: 50px;
|
||||
margin-left: -12px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
border-radius: 100px;
|
||||
height: 150px;
|
||||
width: 150px;
|
||||
border-radius: 50%;
|
||||
max-width: 150px;
|
||||
border: 4px solid white;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.mobile-header {
|
||||
height: 50px;
|
||||
margin-left: -13%;
|
||||
margin-top: 6%;
|
||||
}
|
||||
|
||||
.h1-navigation {
|
||||
text-align: center;
|
||||
font-weight: 600;
|
||||
margin-bottom: 10%;
|
||||
}
|
||||
|
||||
.mobile-profile-picture {
|
||||
height: 40px;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
|
||||
border: 2px solid #a30e79;
|
||||
margin-right: 10px
|
||||
}
|
||||
|
||||
.profile-banner {
|
||||
margin-top: 25px;
|
||||
min-height: 200px
|
||||
}
|
||||
|
||||
.v-navigation-drawer {
|
||||
max-height: 100vh;
|
||||
}
|
||||
|
||||
@media (min-width: 150px) and (max-width: 474px) {
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.5) translateY(-30%) translateX(0%);
|
||||
}
|
||||
|
||||
.socialicons-mobile {
|
||||
width: 35px;
|
||||
max-width: 100px;
|
||||
margin-top: 0px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media (min-width: 475px) and (max-width: 599px) {
|
||||
.socialicons-mobile {
|
||||
width: 35px;
|
||||
max-width: 100px;
|
||||
margin-top: 0px;
|
||||
margin-left: px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.5) translateY(-30%) translateX(0%);
|
||||
}
|
||||
|
||||
.profile-container-mobile {
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
margin-top: -112px;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 250px;
|
||||
}
|
||||
|
||||
.name-info-mobile {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 599px) and (max-width: 749px) {
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.5) translateY(25%) translateX(0%);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
}
|
||||
|
||||
.profile-container-mobile {
|
||||
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
margin-top: -110px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 330px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 750px) and (max-width: 960px) {
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.8) translateY(25%) translateX(0%);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
}
|
||||
|
||||
.profile-container-mobile {
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
margin-top: -110px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 425px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 960px) and (max-width: 1280px) {
|
||||
.middle-col {
|
||||
margin-left: -30px;
|
||||
}
|
||||
|
||||
.text-soutiens {
|
||||
font-size: 1.2rem;
|
||||
letter-spacing: 5px;
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -185px;
|
||||
min-width: 480px
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 270px;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 325px;
|
||||
margin-left: -35px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.3) translateY(25%) translateX(-50px);
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
margin-left: 20px;
|
||||
margin-top: -6px
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
margin-left: 40px;
|
||||
margin-top: -8px
|
||||
}
|
||||
|
||||
.social-container {
|
||||
margin-left: 80px;
|
||||
min-width: 270px;
|
||||
max-height: 40px
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
margin-left: 50px;
|
||||
min-width: 250px;
|
||||
max-height: 35px
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 34px;
|
||||
max-width: 100px;
|
||||
margin-top: 15px;
|
||||
margin-left: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1280px) and (max-width: 1600px) {
|
||||
.text-soutiens {
|
||||
font-size: 1.3rem;
|
||||
letter-spacing: 8px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.3) translateY(25%) translateX(-50px);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -180px;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 290px;
|
||||
}
|
||||
|
||||
.menu-col {
|
||||
margin-left: -4%;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 350px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
margin-left: 20px;
|
||||
margin-top: -6px
|
||||
}
|
||||
|
||||
.social-container {
|
||||
margin-left: 90px;
|
||||
min-width: 350;
|
||||
max-height: 40px
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
margin-left: 70px;
|
||||
margin-top: -8px
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
|
||||
margin-left: 40px;
|
||||
min-width: 290px;
|
||||
max-height: 35px
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 34px;
|
||||
max-width: 100px;
|
||||
margin-top: 15px;
|
||||
margin-left: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1600px) and (max-width: 1919px) {
|
||||
.text-soutiens {
|
||||
font-size: 1.3rem;
|
||||
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.4) translateY(25%) translateX(-40px);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -171px;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 355px;
|
||||
}
|
||||
|
||||
.menu-col {
|
||||
margin-left: -4%;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 400px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.5rem;
|
||||
margin-top: -4px;
|
||||
margin-left: 35px;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1.3rem;
|
||||
margin-left: 75px;
|
||||
margin-top: -2px
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
margin-left: 70px;
|
||||
min-width: 300px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1920px) and (max-width: 2559px) {
|
||||
.text-soutiens {
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -160px;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 380px;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 400px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.4) translateY(25%) translateX(-40px);
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.5rem;
|
||||
margin-left: 35px;
|
||||
margin-top: -4px;
|
||||
}
|
||||
|
||||
.social-container {
|
||||
margin-left: 100px;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1.3rem;
|
||||
margin-left: 110px;
|
||||
margin-top: -4px
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
margin-left: 30px;
|
||||
min-width: 360px;
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 38px;
|
||||
max-width: 100px;
|
||||
margin-top: 13px;
|
||||
margin-left: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 2560px) {
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.5) translateY(25%) translateX(-20px);
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -150px
|
||||
}
|
||||
|
||||
.profile-banner {
|
||||
margin-top: 25px;
|
||||
min-height: 450px;
|
||||
}
|
||||
|
||||
.card-youtube {
|
||||
min-height: 380px;
|
||||
}
|
||||
|
||||
.text-soutiens {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 2rem;
|
||||
|
||||
}
|
||||
|
||||
.social-container {
|
||||
margin-left: 140px;
|
||||
}
|
||||
|
||||
.social-container2 {
|
||||
margin-left: 130px;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1.5rem;
|
||||
margin-left: 65px;
|
||||
margin-top: -6px
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 45px;
|
||||
max-width: 100px;
|
||||
margin-top: 15px;
|
||||
margin-left: 40px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,478 +1,264 @@
|
||||
<template>
|
||||
<div style="background-color: #f4f4f4;">
|
||||
<DefaultLayout style="margin-bottom: 30px"></DefaultLayout>
|
||||
|
||||
<!-- "Mobile -->
|
||||
<v-row class="fluid hidden-md-and-up social-mobile-container"
|
||||
style="margin-top: -10px; position: relative; z-index: 0; " hidden-md-and-down>
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375" :src="imageSrc" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- "PurpleLine" -->
|
||||
<v-row style="background-color: #6b0065; height: 5px; box-shadow: rgba(0, 0, 0, 0.7);">
|
||||
</v-row>
|
||||
|
||||
<!-- "Mobile-Profile" -->
|
||||
<!-- "Profile picture" -->
|
||||
<v-row class="d-flex justify-center align-center d-sm-none" style="margin-top: 50px; margin-bottom: -10px">
|
||||
<v-img :src="profilePicture" class="elevation-4 mobile-profile-picture-creator"></v-img>
|
||||
</v-row>
|
||||
|
||||
<!-- User Social Network Links -->
|
||||
<v-container style="margin-top: -70px; padding: 0;" class="hidden-md-and-up social-container-mobile-icons"
|
||||
hidden-md-and-down>
|
||||
|
||||
<!-- Facebook -->
|
||||
<v-row no-gutters class="d-flex justify-space-between align-center" style="margin-left: 3%; margin-right: 3%;">
|
||||
<v-col cols="6" sm="2" xs="3" style="margin-top: 60px; z-index: 50;" class="d-flex justify-center align-center">
|
||||
<a href="https://www.facebook.com/Hutopy">
|
||||
<v-img class="socialicons-mobile" src="/images/hutopymedia/icons/black/facebookblack.png"
|
||||
alt="Facebook"></v-img>
|
||||
</a>
|
||||
</v-col>
|
||||
|
||||
<!-- Profile picture - Small -->
|
||||
<v-col cols="4" sm="4" xs="0" class="hidden-xs">
|
||||
<v-row class="d-flex justify-center align-center">
|
||||
<v-img :src="profilePicture" class="elevation-4 mobile-profile-picture-creator"></v-img>
|
||||
</v-row>
|
||||
</v-col>
|
||||
|
||||
<!-- L'effet -->
|
||||
<v-col cols="6" sm="2" xs="3" style="margin-top: 60px; z-index: 50;" class="d-flex justify-center align-center">
|
||||
<a href="https://fondationleffet.ca/">
|
||||
<v-img class="socialicons-mobile" src="/images/hutopymedia/icons/black/leffetblack.png"
|
||||
alt="Instagram"></v-img>
|
||||
</a>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- User informations Name title and description -->
|
||||
<v-row class="social-container-mobile">
|
||||
<v-col cols="12" xs="12" sm="4" class="d-flex justify-center">
|
||||
<v-row class="d-flex justify-center" style="font-size: 2rem">
|
||||
{{ name }}
|
||||
</v-row>
|
||||
</v-col>
|
||||
<v-spacer xs="12" sm="4"></v-spacer>
|
||||
<v-col cols="12" xs="12" sm="4" class="d-flex justify-center ">
|
||||
<v-row class="d-flex justify-center">
|
||||
{{ title }}
|
||||
</v-row>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-container style="border-bottom-left-radius: 15px; margin-top: -12px; border-bottom-right-radius: 15px;"
|
||||
class="social-icon-group-mobile">
|
||||
<v-expansion-panels style="min-width: 320px;">
|
||||
<v-col cols="12" offset="-1">
|
||||
<v-expansion-panel class="background-pink text-justify" style="color: white;"
|
||||
text="La Fondation L'effet est un organisme de bienfaisance qui a trois fins principales, toutes pour prendre soin de son prochain. Notre principal objectif est de promouvoir l’éducation, en fournissant les ressources nécessaires et en donnant des conférences afin d’encourager la persévérance scolaire. Nous soulageons également les conditions des personnes atteintes d'un handicap en offrant des programmes récréatifs et d’autres services de soutien visant à appuyer leur mieux-être physique, mental et émotif afin qu’ils deviennent et demeurent des acteurs importants au sein de la collectivité. La Fondation L’effet encourage aussi les autres organismes et aide les initiatives individuelles ou corporatives à faire une différence positive dans leur communauté."
|
||||
title="Notre mission">
|
||||
|
||||
|
||||
</v-expansion-panel>
|
||||
</v-col>
|
||||
</v-expansion-panels>
|
||||
</v-container>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
<!-- Bannière Pc -->
|
||||
<v-row class="fluid hidden-sm-and-down" style="margin-top: -65px; position: relative; z-index: 0; "
|
||||
hidden-sm-and-up>
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375" :src="imageSrc" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row class="hidden-sm-and-down" style="background-color: #6b0065; height: 5px; box-shadow: rgba(0, 0, 0, 0.7);"
|
||||
hidden-sm-and-up>
|
||||
</v-row>
|
||||
|
||||
<!-- "Core (Menu / Center / Donation)" -->
|
||||
<v-row>
|
||||
<!-- "Menu" -->
|
||||
<v-col cols="2" md="3" lg="4" xl="4" xxl="4" class="hidden-sm-and-down menu-col" hidden-sm-and-down>
|
||||
<v-col style="margin: 0;">
|
||||
<v-row class="Hutopy-menu-sticky-mobile">
|
||||
<v-spacer></v-spacer>
|
||||
<v-col>
|
||||
<v-container style=" overflow-y: hidden;">
|
||||
<!-- Nav-Btn -->
|
||||
<v-col cols="12" class="px-0">
|
||||
<v-img src="/images/hutopymedia/banners/hutopy.png" alt="Description de l'image"
|
||||
style="height: 150px; width: 300px;" class="mx-auto" :elevation="10"></v-img>
|
||||
<v-list dense class="main-background">
|
||||
<v-list-item v-for="item in navigationItems" :key="item.link">
|
||||
<router-link :to="item.link">
|
||||
<v-btn text class="d-flex align-start align-center main-background" elevation="0"
|
||||
outlined="false">
|
||||
<v-icon left class="mr-4">{{ item.icon }}</v-icon>
|
||||
{{ item.text }}
|
||||
</v-btn>
|
||||
</router-link>
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
</v-col>
|
||||
</v-container>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row style="height: 3000px;"></v-row>
|
||||
</v-col>
|
||||
</v-col>
|
||||
|
||||
<!-- Profile Info Picture name title & description -->
|
||||
<v-col class="middle-col" style="z-index: 5;" cols="12" xs="12" sm="12" md="6" lg="5" xl="4" xxl="4">
|
||||
<v-container class="profile-container hidden-sm-and-down" hidden-md-and-up>
|
||||
<v-container>
|
||||
<v-img :src="profilePicture" class="elevation-4 mobile-profile-picture-creator"></v-img>
|
||||
<!-- User informations Name & title -->
|
||||
<v-container class="background-profile-container" style="margin-top: -8%;">
|
||||
<v-row>
|
||||
<v-col style="height: 50px;" cols="7" offset="2" class="social-container">
|
||||
<h1 class="name-info">{{ name }}</h1>
|
||||
</v-col>
|
||||
<v-col></v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-col style="height: 50px;" cols="6" offset="2" class="social-container2">
|
||||
<h1 class="occupation-info">{{ title }}</h1>
|
||||
</v-col>
|
||||
<v-col></v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- User Social Network Links -->
|
||||
<v-row>
|
||||
<v-spacer></v-spacer>
|
||||
<v-col cols="7" style="margin-top: 1%; margin-bottom: -2%;">
|
||||
<v-row>
|
||||
<a href="https://www.facebook.com/Hutopy">
|
||||
<img class="socialicons" src="/images/hutopymedia/icons/black/facebookblack.png"
|
||||
alt="Description image 2">
|
||||
</a>
|
||||
<a href="https://fondationleffet.ca/">
|
||||
<img class="socialicons" src="/images/hutopymedia/icons/black/leffetblack.png"
|
||||
alt="Description image 2">
|
||||
</a>
|
||||
</v-row>
|
||||
</v-col>
|
||||
<v-col background-color="primary"></v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- Description -->
|
||||
<v-row>
|
||||
<v-container
|
||||
style="border-bottom-left-radius: 15px; border-bottom-right-radius: 15px; margin-top: 15px;">
|
||||
<v-expansion-panels style="min-width: 320px;">
|
||||
<v-col cols="12" offset="-1">
|
||||
<v-expansion-panel class="background-pink text-justify" style="color: white;"
|
||||
text="La Fondation L'effet est un organisme de bienfaisance qui a trois fins principales, toutes pour prendre soin de son prochain. Notre principal objectif est de promouvoir l’éducation, en fournissant les ressources nécessaires et en donnant des conférences afin d’encourager la persévérance scolaire. Nous soulageons également les conditions des personnes atteintes d'un handicap en offrant des programmes récréatifs et d’autres services de soutien visant à appuyer leur mieux-être physique, mental et émotif afin qu’ils deviennent et demeurent des acteurs importants au sein de la collectivité. La Fondation L’effet encourage aussi les autres organismes et aide les initiatives individuelles ou corporatives à faire une différence positive dans leur communauté."
|
||||
title="Notre mission">
|
||||
</v-expansion-panel>
|
||||
</v-col>
|
||||
</v-expansion-panels>
|
||||
</v-container>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</v-container>
|
||||
</v-container>
|
||||
<v-container>
|
||||
</v-container>
|
||||
|
||||
<v-container style="margin-top: -30px"> <v-card class="flow-menu m-0 youtube-card">
|
||||
<!-- Title, date and btn -->
|
||||
<v-col>
|
||||
<v-row>
|
||||
<v-col class="text-center">
|
||||
<h1 class="card-title">
|
||||
DOCU-PODCAST</h1>
|
||||
</v-col>
|
||||
|
||||
<!--<v-col class="text-right">
|
||||
<v-btn class="btn-card-options" flat tile elevation="0">
|
||||
<v-icon style="color: #6e6e6e; font-size: 24px;">mdi-dots-vertical</v-icon>
|
||||
</v-btn> (a intégrer)
|
||||
</v-col> -->
|
||||
</v-row>
|
||||
|
||||
</v-col>
|
||||
|
||||
<!-- Card core Video/image & text -->
|
||||
<div style="background-color: rgba(255, 255, 255, 0.1); margin-left: -5%; margin-right: -5%;">
|
||||
<v-container>
|
||||
<iframe class="card-youtube" style="margin-left: 2.1%; width: 96%;"
|
||||
src="https://www.youtube.com/embed/3MqKVf1CEIQ?si=aV03Xq2ZNwlv1DWu" title="Guillaumem" frameborder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowfullscreen></iframe>
|
||||
|
||||
<!-- Date -->
|
||||
<v-row class="text-right">
|
||||
<v-col>
|
||||
<h1 style=" margin-right: 40px; margin-top: 10px">
|
||||
24-04-2024
|
||||
</h1>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
|
||||
<p class="text-justify pa-10" style="margin-bottom: -6%; font-size: 1em">
|
||||
|
||||
C’est un honneur de vous
|
||||
En exclusivité : Voici l'Épisode 8 de la Saison 2 du Docu-Podcast de Cédieu Léveillé avec le Fondateur
|
||||
de la
|
||||
Fondation l'Effet, Marc-Olivier Hébert. Cette homme est un Ange sur 2 pattes et un Master de
|
||||
l'Introspection :
|
||||
'' Quand j'ai Compris que Mon Seul Obstacle Était Moi-même '' ! Merci de continuer à faire partie de
|
||||
cette
|
||||
AVENTURE et à être les PIONNIERS de mon Docu-Podcast. Seuls vous, Fidèles PIADINS avez le DROIT à
|
||||
l'ENTIÈRETÉ
|
||||
de ces images !!!
|
||||
Marc-Olivier
|
||||
Marc-Olivier Hébert
|
||||
Le nom de la Fondation vient de l'origine du phénomène que l’on nomme ‘’L’effet Papillon’’. Cette
|
||||
théorie
|
||||
implique que le battement d’ailes d’un papillon au Brésil peut provoquer une tempête au Texas.
|
||||
|
||||
Selon l’expression, inventée par le météorologue Edward Lorenz, il suffit de modifier de façon infime
|
||||
un
|
||||
paramètre dans un modèle météo pour que celui-ci s’amplifie progressivement et provoque, à long terme,
|
||||
des
|
||||
changements colossaux. Cette notion ne concerne plus seulement la météo, mais s’applique également aux
|
||||
sciences humaines et à l’environnement. <br><br>
|
||||
|
||||
L'effet papillon est matérialisé par une chaîne d'événements qui se suivent les uns les autres et dont
|
||||
le
|
||||
précédent influe sur le suivant. Ainsi, on part d'un événement minuscule au début de la chaîne pour
|
||||
arriver à
|
||||
une chose gigantesque.
|
||||
<br><br>
|
||||
|
||||
Chaque action que nous entreprenons crée automatiquement un résultat. Il est à nous de choisir qu’il
|
||||
soit
|
||||
toujours positif.
|
||||
<br><br>
|
||||
|
||||
Donc, voici toute l’essence de la nature de cette fondation. Que de petites actions et gestes positifs
|
||||
créeront automatiquement de grandes et merveilleuses différences positives dans la vie des
|
||||
participants
|
||||
et des
|
||||
bénéficiaires.
|
||||
</p>
|
||||
|
||||
|
||||
<!-- Like dislike commment Section -->
|
||||
<div style="height: 20px;"></div>
|
||||
<div
|
||||
style="z-index: 500; margin-bottom: 2%; background-color: rgba(0, 0, 0, 1); height: 3px; width: 100%; margin-top: 20px;">
|
||||
</div>
|
||||
<div style="background-color: rgba(0, 0, 0, 1); height: 3px; width: 100%; margin-top: 20px;">
|
||||
</div>
|
||||
|
||||
<!-- Comments -->
|
||||
<v-text-field style="margin-left: 2%; margin-bottom: 15px; margin-bottom: -20px"
|
||||
placeholder="Commentaire (Arrive bientôt)"></v-text-field>
|
||||
</v-container>
|
||||
</div>
|
||||
</v-card></v-container>
|
||||
|
||||
<!-- Le nom -->
|
||||
<v-container>
|
||||
<v-card class="flow-menu m-0 youtube-card">
|
||||
<!-- Title, date and btn -->
|
||||
<v-col>
|
||||
<v-row>
|
||||
<v-col class="text-center">
|
||||
<h1 class="card-title">
|
||||
C'EST PARTI POUR 2024!</h1>
|
||||
</v-col>
|
||||
<!--
|
||||
<v-col class="text-right">
|
||||
<v-btn class="btn-card-options" flat tile elevation="0">
|
||||
<v-icon style="color: #6e6e6e; font-size: 24px;">mdi-dots-vertical</v-icon>
|
||||
</v-btn> (a intégrer)
|
||||
</v-col> -->
|
||||
</v-row>
|
||||
|
||||
</v-col>
|
||||
|
||||
<!-- Card core Video/image & text -->
|
||||
<div style="background-color: rgba(255, 255, 255, 0.1); margin-left: -5%; margin-right: -5%;">
|
||||
<v-container>
|
||||
<v-img src="images/usersmedia/leffet/profilepictures/leffetProfile01.png" title="Guillaumem"></v-img>
|
||||
|
||||
<!-- Date -->
|
||||
<v-row class="text-right">
|
||||
<v-col>
|
||||
<h1 style=" margin-right: 40px; margin-top: 10px">
|
||||
22-04-2024
|
||||
</h1>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<p class="text-justify pa-10" style="margin-bottom: -6%; font-size: 1em">Le nom de la Fondation vient de
|
||||
l'origine du phénomène que l’on nomme ‘’L’effet Papillon’’. Cette théorie implique que le battement
|
||||
d’ailes d’un papillon au Brésil peut provoquer une tempête au Texas.<br><br>
|
||||
|
||||
Selon l’expression, inventée par le météorologue Edward Lorenz, il suffit de modifier de façon infime
|
||||
un paramètre dans un modèle météo pour que celui-ci s’amplifie progressivement et provoque, à long
|
||||
terme,
|
||||
des changements colossaux. Cette notion ne concerne plus seulement la météo, mais s’applique également
|
||||
aux
|
||||
sciences humaines et à l’environnement.<br>
|
||||
<br>
|
||||
|
||||
L'effet papillon est matérialisé par une chaîne d'événements qui se suivent les uns les autres et dont
|
||||
le précédent influe sur le suivant. Ainsi, on part d'un événement minuscule au début de la chaîne pour
|
||||
arriver à une chose gigantesque.<br>
|
||||
<br>
|
||||
|
||||
|
||||
Chaque action que nous entreprenons crée automatiquement un résultat. Il est à nous de choisir qu’il
|
||||
soit toujours positif.
|
||||
|
||||
Donc, voici toute l’essence de la nature de cette fondation. Que de petites actions et gestes positifs
|
||||
créeront automatiquement de grandes et merveilleuses différences positives dans la vie des
|
||||
participants et
|
||||
des bénéficiaires.
|
||||
</p>
|
||||
|
||||
<!-- Like dislike commment Section -->
|
||||
<div style="height: 20px;"></div>
|
||||
<div
|
||||
style="z-index: 500; margin-bottom: 2%; background-color: rgba(0, 0, 0, 1); height: 3px; width: 100%; margin-top: 20px;">
|
||||
</div>
|
||||
<div style="background-color: rgba(0, 0, 0, 1); height: 3px; width: 100%; margin-top: 20px;">
|
||||
</div>
|
||||
|
||||
<!-- Comments -->
|
||||
<v-text-field style="margin-left: 2%; margin-bottom: 15px; margin-bottom: -20px"
|
||||
placeholder="Commentaire (Arrive bientôt)"></v-text-field>
|
||||
</v-container>
|
||||
</div>
|
||||
</v-card>
|
||||
</v-container>
|
||||
|
||||
|
||||
</v-col>
|
||||
|
||||
<!-- "Large-Monitor-RightCol" Donation -->
|
||||
<v-col cols="2" md="3" lg="3" xl="4" xxl="4" class="hidden-sm-and-down" hidden-sm-and-up>
|
||||
<v-row>
|
||||
<v-col>
|
||||
<v-container class="sticky-bottom-label Je-soutien-container" style="max-width: 400px ; bottom: 0;">
|
||||
<!-- Donnation -->
|
||||
<v-card style="border-radius: 20px;">
|
||||
<v-container>
|
||||
<v-row class="mb-0"
|
||||
style="background-color: #6b0065; margin-left: -24px; margin-right: -24px; margin-top: -20px; justify-content: center;">
|
||||
<v-card-title class="text-soutiens" style="margin-top: 15px;">
|
||||
JE SOUTIENS!
|
||||
</v-card-title>
|
||||
</v-row>
|
||||
<StripePayment creator-id="1578f5ee-6cd0-42ac-9959-249cd10b6bfb"></StripePayment>
|
||||
</v-container>
|
||||
</v-card>
|
||||
</v-container>
|
||||
<v-container style="height: 3000px;">
|
||||
</v-container>
|
||||
</v-col>
|
||||
<v-spacer>
|
||||
</v-spacer>
|
||||
</v-row>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- "Mobile" Donation -->
|
||||
<v-col class="hidden-md-and-up sticky-bottom-label" hidden-sm-and-down
|
||||
style="background-color: #6b0065; margin-top: 30px; text-align: center;">
|
||||
|
||||
<!-- Barre cliquable pour ouvrir le drawer -->
|
||||
<v-btn @click="drawerbottom = !drawerbottom" elevation="0"
|
||||
style="background-color: #6b0065; color: white; text-align: center;" class="text-soutiens ">
|
||||
JE SOUTIENS
|
||||
</v-btn>
|
||||
<v-row class="fluid" style="margin-top: -65px; position: relative; z-index: 0; ">
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375" :src="imageSrc" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row style="background-color: #6b0065; height: 5px; box-shadow: rgba(0, 0, 0, 0.7);">
|
||||
</v-row>
|
||||
|
||||
<!-- Drawer du bas -->
|
||||
<template>
|
||||
<div>
|
||||
<v-bottom-sheet v-model="drawerbottom" class="sticky-bottom-label" hide-overlay>
|
||||
<v-container style="background-color: #6b0065; color: white; padding: 20px; text-align: center;">
|
||||
<h1 class="text-soutiens">JE SOUTIENS</h1>
|
||||
<StripePayment creator-id="1578f5ee-6cd0-42ac-9959-249cd10b6bfb"></StripePayment>
|
||||
<!-- "Core (Menu / Center / Donation)" -->
|
||||
<v-row>
|
||||
|
||||
<!-- Profile Info Picture name title & description -->
|
||||
<v-col class="middle-col" style="z-index: 5;" cols="12" xs="12" sm="12" md="6" lg="5" xl="4" xxl="4">
|
||||
<v-container class="profile-container">
|
||||
<v-container>
|
||||
<v-img :src="profilePicture" class="elevation-4 mobile-profile-picture-creator"></v-img>
|
||||
<!-- User informations Name & title -->
|
||||
<v-container class="background-profile-container" style="margin-top: -8%;">
|
||||
<v-row>
|
||||
<v-col style="height: 50px;" cols="7" offset="2" class="social-container">
|
||||
<h1 class="name-info">{{ name }}</h1>
|
||||
</v-col>
|
||||
<v-col></v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-col style="height: 50px;" cols="6" offset="2" class="social-container2">
|
||||
<h1 class="occupation-info">{{ title }}</h1>
|
||||
</v-col>
|
||||
<v-col></v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- User Social Network Links -->
|
||||
<v-row>
|
||||
<v-spacer></v-spacer>
|
||||
<v-col cols="7" style="margin-top: 1%; margin-bottom: -2%;">
|
||||
<v-row>
|
||||
<a href="https://www.facebook.com/Hutopy">
|
||||
<img class="socialicons" src="/images/hutopymedia/icons/black/facebookblack.png"
|
||||
alt="Description image 2">
|
||||
</a>
|
||||
<a href="https://fondationleffet.ca/">
|
||||
<img class="socialicons" src="/images/hutopymedia/icons/black/leffetblack.png"
|
||||
alt="Description image 2">
|
||||
</a>
|
||||
</v-row>
|
||||
</v-col>
|
||||
<v-col background-color="primary"></v-col>
|
||||
</v-row>
|
||||
|
||||
<!-- Description -->
|
||||
<v-row>
|
||||
<v-container
|
||||
style="border-bottom-left-radius: 15px; border-bottom-right-radius: 15px; margin-top: 15px;">
|
||||
<v-expansion-panels style="min-width: 320px;">
|
||||
<v-col cols="12" offset="-1">
|
||||
<v-expansion-panel class="background-pink text-justify" style="color: white;"
|
||||
text="La Fondation L'effet est un organisme de bienfaisance qui a trois fins principales, toutes pour prendre soin de son prochain. Notre principal objectif est de promouvoir l’éducation, en fournissant les ressources nécessaires et en donnant des conférences afin d’encourager la persévérance scolaire. Nous soulageons également les conditions des personnes atteintes d'un handicap en offrant des programmes récréatifs et d’autres services de soutien visant à appuyer leur mieux-être physique, mental et émotif afin qu’ils deviennent et demeurent des acteurs importants au sein de la collectivité. La Fondation L’effet encourage aussi les autres organismes et aide les initiatives individuelles ou corporatives à faire une différence positive dans leur communauté."
|
||||
title="Notre mission">
|
||||
</v-expansion-panel>
|
||||
</v-col>
|
||||
</v-expansion-panels>
|
||||
</v-container>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</v-bottom-sheet>
|
||||
</v-container>
|
||||
</v-container>
|
||||
<v-container>
|
||||
</v-container>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<v-container style="margin-top: -30px">
|
||||
<v-card class="flow-menu m-0 youtube-card">
|
||||
<!-- Title, date and btn -->
|
||||
<v-col>
|
||||
<v-row>
|
||||
<v-col class="text-center">
|
||||
<h1 class="card-title">
|
||||
DOCU-PODCAST</h1>
|
||||
</v-col>
|
||||
|
||||
<FooterLayout></FooterLayout>
|
||||
</div>
|
||||
<!--<v-col class="text-right">
|
||||
<v-btn class="btn-card-options" flat tile elevation="0">
|
||||
<v-icon style="color: #6e6e6e; font-size: 24px;">mdi-dots-vertical</v-icon>
|
||||
</v-btn> (a intégrer)
|
||||
</v-col> -->
|
||||
</v-row>
|
||||
|
||||
</v-col>
|
||||
|
||||
<!-- Card core Video/image & text -->
|
||||
<div style="background-color: rgba(255, 255, 255, 0.1); margin-left: -5%; margin-right: -5%;">
|
||||
<v-container>
|
||||
<iframe class="card-youtube" style="margin-left: 2.1%; width: 96%;"
|
||||
src="https://www.youtube.com/embed/3MqKVf1CEIQ?si=aV03Xq2ZNwlv1DWu" title="Guillaumem"
|
||||
frameborder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowfullscreen></iframe>
|
||||
|
||||
<!-- Date -->
|
||||
<v-row class="text-right">
|
||||
<v-col>
|
||||
<h1 style=" margin-right: 40px; margin-top: 10px">
|
||||
24-04-2024
|
||||
</h1>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
|
||||
<p class="text-justify pa-10" style="margin-bottom: -6%; font-size: 1em">
|
||||
|
||||
C’est un honneur de vous
|
||||
En exclusivité : Voici l'Épisode 8 de la Saison 2 du Docu-Podcast de Cédieu Léveillé avec le Fondateur
|
||||
de la
|
||||
Fondation l'Effet, Marc-Olivier Hébert. Cette homme est un Ange sur 2 pattes et un Master de
|
||||
l'Introspection :
|
||||
'' Quand j'ai Compris que Mon Seul Obstacle Était Moi-même '' ! Merci de continuer à faire partie de
|
||||
cette
|
||||
AVENTURE et à être les PIONNIERS de mon Docu-Podcast. Seuls vous, Fidèles PIADINS avez le DROIT à
|
||||
l'ENTIÈRETÉ
|
||||
de ces images !!!
|
||||
Marc-Olivier
|
||||
Marc-Olivier Hébert
|
||||
Le nom de la Fondation vient de l'origine du phénomène que l’on nomme ‘’L’effet Papillon’’. Cette
|
||||
théorie
|
||||
implique que le battement d’ailes d’un papillon au Brésil peut provoquer une tempête au Texas.
|
||||
|
||||
Selon l’expression, inventée par le météorologue Edward Lorenz, il suffit de modifier de façon infime
|
||||
un
|
||||
paramètre dans un modèle météo pour que celui-ci s’amplifie progressivement et provoque, à long terme,
|
||||
des
|
||||
changements colossaux. Cette notion ne concerne plus seulement la météo, mais s’applique également aux
|
||||
sciences humaines et à l’environnement. <br><br>
|
||||
|
||||
L'effet papillon est matérialisé par une chaîne d'événements qui se suivent les uns les autres et dont
|
||||
le
|
||||
précédent influe sur le suivant. Ainsi, on part d'un événement minuscule au début de la chaîne pour
|
||||
arriver à
|
||||
une chose gigantesque.
|
||||
<br><br>
|
||||
|
||||
Chaque action que nous entreprenons crée automatiquement un résultat. Il est à nous de choisir qu’il
|
||||
soit
|
||||
toujours positif.
|
||||
<br><br>
|
||||
|
||||
Donc, voici toute l’essence de la nature de cette fondation. Que de petites actions et gestes positifs
|
||||
créeront automatiquement de grandes et merveilleuses différences positives dans la vie des
|
||||
participants
|
||||
et des
|
||||
bénéficiaires.
|
||||
</p>
|
||||
|
||||
|
||||
<!-- Like dislike commment Section -->
|
||||
<div style="height: 20px;"></div>
|
||||
<div
|
||||
style="z-index: 500; margin-bottom: 2%; background-color: rgba(0, 0, 0, 1); height: 3px; width: 100%; margin-top: 20px;">
|
||||
</div>
|
||||
<div style="background-color: rgba(0, 0, 0, 1); height: 3px; width: 100%; margin-top: 20px;">
|
||||
</div>
|
||||
|
||||
<!-- Comments -->
|
||||
<v-text-field style="margin-left: 2%; margin-bottom: 15px; margin-bottom: -20px"
|
||||
placeholder="Commentaire (Arrive bientôt)"></v-text-field>
|
||||
</v-container>
|
||||
</div>
|
||||
</v-card>
|
||||
</v-container>
|
||||
|
||||
<!-- Le nom -->
|
||||
<v-container>
|
||||
<v-card class="flow-menu m-0 youtube-card">
|
||||
<!-- Title, date and btn -->
|
||||
<v-col>
|
||||
<v-row>
|
||||
<v-col class="text-center">
|
||||
<h1 class="card-title">
|
||||
C'EST PARTI POUR 2024!</h1>
|
||||
</v-col>
|
||||
<!--
|
||||
<v-col class="text-right">
|
||||
<v-btn class="btn-card-options" flat tile elevation="0">
|
||||
<v-icon style="color: #6e6e6e; font-size: 24px;">mdi-dots-vertical</v-icon>
|
||||
</v-btn> (a intégrer)
|
||||
</v-col> -->
|
||||
</v-row>
|
||||
|
||||
</v-col>
|
||||
|
||||
<!-- Card core Video/image & text -->
|
||||
<div style="background-color: rgba(255, 255, 255, 0.1); margin-left: -5%; margin-right: -5%;">
|
||||
<v-container>
|
||||
<v-img src="images/usersmedia/leffet/profilepictures/leffetProfile01.png" title="Guillaumem"></v-img>
|
||||
|
||||
<!-- Date -->
|
||||
<v-row class="text-right">
|
||||
<v-col>
|
||||
<h1 style=" margin-right: 40px; margin-top: 10px">
|
||||
22-04-2024
|
||||
</h1>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<p class="text-justify pa-10" style="margin-bottom: -6%; font-size: 1em">Le nom de la Fondation vient de
|
||||
l'origine du phénomène que l’on nomme ‘’L’effet Papillon’’. Cette théorie implique que le battement
|
||||
d’ailes d’un papillon au Brésil peut provoquer une tempête au Texas.<br><br>
|
||||
|
||||
Selon l’expression, inventée par le météorologue Edward Lorenz, il suffit de modifier de façon infime
|
||||
un paramètre dans un modèle météo pour que celui-ci s’amplifie progressivement et provoque, à long
|
||||
terme,
|
||||
des changements colossaux. Cette notion ne concerne plus seulement la météo, mais s’applique également
|
||||
aux
|
||||
sciences humaines et à l’environnement.<br>
|
||||
<br>
|
||||
|
||||
L'effet papillon est matérialisé par une chaîne d'événements qui se suivent les uns les autres et dont
|
||||
le précédent influe sur le suivant. Ainsi, on part d'un événement minuscule au début de la chaîne pour
|
||||
arriver à une chose gigantesque.<br>
|
||||
<br>
|
||||
|
||||
|
||||
Chaque action que nous entreprenons crée automatiquement un résultat. Il est à nous de choisir qu’il
|
||||
soit toujours positif.
|
||||
|
||||
Donc, voici toute l’essence de la nature de cette fondation. Que de petites actions et gestes positifs
|
||||
créeront automatiquement de grandes et merveilleuses différences positives dans la vie des
|
||||
participants et
|
||||
des bénéficiaires.
|
||||
</p>
|
||||
|
||||
<!-- Like dislike commment Section -->
|
||||
<div style="height: 20px;"></div>
|
||||
<div
|
||||
style="z-index: 500; margin-bottom: 2%; background-color: rgba(0, 0, 0, 1); height: 3px; width: 100%; margin-top: 20px;">
|
||||
</div>
|
||||
<div style="background-color: rgba(0, 0, 0, 1); height: 3px; width: 100%; margin-top: 20px;">
|
||||
</div>
|
||||
|
||||
<!-- Comments -->
|
||||
<v-text-field style="margin-left: 2%; margin-bottom: 15px; margin-bottom: -20px"
|
||||
placeholder="Commentaire (Arrive bientôt)"></v-text-field>
|
||||
</v-container>
|
||||
</div>
|
||||
</v-card>
|
||||
</v-container>
|
||||
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import DefaultLayout from '@/layouts/DefaultLayout.vue';
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
import { ref } from 'vue';
|
||||
import StripePayment from '../StripePayment.vue';
|
||||
let imageSrc = '/images/usersmedia/leffet/banners/banner02.png';
|
||||
let profilePicture = '/images/usersmedia/leffet/profilepictures/leffetProfile01.png';
|
||||
let name = 'L\'EFFET'
|
||||
let title = 'Page officiel'
|
||||
let drawerbottom = ref(false)
|
||||
|
||||
let navigationItems = [
|
||||
{ icon: 'mdi-home', text: 'Accueil', link: 'home' },
|
||||
{ icon: 'mdi-account-group', text: 'Créateurs', link: '/userbrowser' },
|
||||
{ icon: 'mdi-handshake', text: 'Aidez-nous', link: '/contact' },
|
||||
];
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.invert-color {
|
||||
filter: invert(1);
|
||||
}
|
||||
|
||||
|
||||
.Hutopy-menu-sticky-mobile {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
margin-top: -40px;
|
||||
}
|
||||
|
||||
.sticky-bottom-label {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.sticky-top-label {
|
||||
position: sticky;
|
||||
bottom: 0;
|
||||
right: 10%;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.text-soutiens {
|
||||
margin-bottom: 15px;
|
||||
color: white;
|
||||
font-size: 1.5rem;
|
||||
letter-spacing: 7px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
margin-top: -10px;
|
||||
@@ -484,24 +270,10 @@ let navigationItems = [
|
||||
font-size: large;
|
||||
}
|
||||
|
||||
.name-info-mobile {
|
||||
margin-left: 22px;
|
||||
font-size: 1.3rem
|
||||
}
|
||||
|
||||
.main-background {
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -16%;
|
||||
}
|
||||
|
||||
.btn-custom {
|
||||
width: 100%;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.background-profile-container {
|
||||
background-color: #ececec;
|
||||
color: white;
|
||||
@@ -519,16 +291,6 @@ let navigationItems = [
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.label-text {
|
||||
font-weight: 400;
|
||||
margin-left: 3%;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.profile-name {
|
||||
margin-top: -15%;
|
||||
}
|
||||
|
||||
.socialicons {
|
||||
width: 35px;
|
||||
max-width: 100px;
|
||||
@@ -556,13 +318,6 @@ let navigationItems = [
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.card-date {
|
||||
margin-left: 10px;
|
||||
margin-top: -18px;
|
||||
margin-bottom: -20px;
|
||||
font-size: .8rem;
|
||||
}
|
||||
|
||||
.social-container {
|
||||
background-color: #79cc02;
|
||||
border-top-right-radius: 30px;
|
||||
@@ -590,29 +345,10 @@ let navigationItems = [
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.social-container2-mobile {
|
||||
background-color: #fcc602;
|
||||
z-index: 1000;
|
||||
font-size: 1.2rem;
|
||||
font-weight: 500;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.social-icon-group-mobile {
|
||||
background-color: #588801;
|
||||
}
|
||||
|
||||
.mini-profile-picture {
|
||||
border-radius: 100px;
|
||||
}
|
||||
|
||||
.btn-card-options {
|
||||
background-color: #f4f4f4;
|
||||
width: 50px;
|
||||
margin-left: -12px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
height: 150px;
|
||||
width: 150px;
|
||||
@@ -622,34 +358,11 @@ let navigationItems = [
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.mobile-header {
|
||||
height: 50px;
|
||||
margin-left: -13%;
|
||||
margin-top: 6%;
|
||||
}
|
||||
|
||||
.h1-navigation {
|
||||
text-align: center;
|
||||
font-weight: 600;
|
||||
margin-bottom: 10%;
|
||||
}
|
||||
|
||||
.mobile-profile-picture {
|
||||
height: 40px;
|
||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
|
||||
border: 2px solid #a30e79;
|
||||
margin-right: 10px
|
||||
}
|
||||
|
||||
.profile-banner {
|
||||
margin-top: 25px;
|
||||
min-height: 200px
|
||||
}
|
||||
|
||||
.v-navigation-drawer {
|
||||
max-height: 100vh;
|
||||
}
|
||||
|
||||
@media (min-width: 150px) and (max-width: 474px) {
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.5) translateY(-30%) translateX(0%);
|
||||
@@ -676,12 +389,6 @@ let navigationItems = [
|
||||
transform: scale(1.5) translateY(-30%) translateX(0%);
|
||||
}
|
||||
|
||||
.profile-container-mobile {
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
margin-top: -112px;
|
||||
}
|
||||
|
||||
.occupation-info {
|
||||
font-size: 1rem;
|
||||
}
|
||||
@@ -689,10 +396,6 @@ let navigationItems = [
|
||||
.card-youtube {
|
||||
min-height: 250px;
|
||||
}
|
||||
|
||||
.name-info-mobile {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 599px) and (max-width: 749px) {
|
||||
@@ -706,13 +409,6 @@ let navigationItems = [
|
||||
margin-left: -3%;
|
||||
}
|
||||
|
||||
.profile-container-mobile {
|
||||
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
margin-top: -110px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
@@ -736,12 +432,6 @@ let navigationItems = [
|
||||
margin-left: -3%;
|
||||
}
|
||||
|
||||
.profile-container-mobile {
|
||||
width: 110%;
|
||||
margin-left: -3%;
|
||||
margin-top: -110px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
@@ -760,11 +450,6 @@ let navigationItems = [
|
||||
margin-left: -30px;
|
||||
}
|
||||
|
||||
.text-soutiens {
|
||||
font-size: 1.2rem;
|
||||
letter-spacing: 5px;
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -185px;
|
||||
min-width: 480px
|
||||
@@ -774,11 +459,6 @@ let navigationItems = [
|
||||
min-height: 270px;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 325px;
|
||||
margin-left: -35px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.3) translateY(25%) translateX(-50px);
|
||||
}
|
||||
@@ -815,10 +495,6 @@ let navigationItems = [
|
||||
}
|
||||
|
||||
@media (min-width: 1280px) and (max-width: 1600px) {
|
||||
.text-soutiens {
|
||||
font-size: 1.3rem;
|
||||
letter-spacing: 8px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.3) translateY(25%) translateX(-50px);
|
||||
@@ -832,14 +508,6 @@ let navigationItems = [
|
||||
min-height: 290px;
|
||||
}
|
||||
|
||||
.menu-col {
|
||||
margin-left: -4%;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 350px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.2rem;
|
||||
margin-left: 20px;
|
||||
@@ -848,7 +516,7 @@ let navigationItems = [
|
||||
|
||||
.social-container {
|
||||
margin-left: 90px;
|
||||
min-width: 350;
|
||||
min-width: 350px;
|
||||
max-height: 40px
|
||||
}
|
||||
|
||||
@@ -873,11 +541,6 @@ let navigationItems = [
|
||||
}
|
||||
|
||||
@media (min-width: 1600px) and (max-width: 1919px) {
|
||||
.text-soutiens {
|
||||
font-size: 1.3rem;
|
||||
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.4) translateY(25%) translateX(-40px);
|
||||
}
|
||||
@@ -890,14 +553,6 @@ let navigationItems = [
|
||||
min-height: 355px;
|
||||
}
|
||||
|
||||
.menu-col {
|
||||
margin-left: -4%;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 400px;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 1.5rem;
|
||||
margin-top: -4px;
|
||||
@@ -917,9 +572,6 @@ let navigationItems = [
|
||||
}
|
||||
|
||||
@media (min-width: 1920px) and (max-width: 2559px) {
|
||||
.text-soutiens {
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
.profile-container {
|
||||
margin-top: -160px;
|
||||
@@ -929,10 +581,6 @@ let navigationItems = [
|
||||
min-height: 380px;
|
||||
}
|
||||
|
||||
.Je-soutien-container {
|
||||
min-width: 400px;
|
||||
}
|
||||
|
||||
.mobile-profile-picture-creator {
|
||||
transform: scale(1.4) translateY(25%) translateX(-40px);
|
||||
}
|
||||
@@ -979,10 +627,6 @@ let navigationItems = [
|
||||
min-height: 380px;
|
||||
}
|
||||
|
||||
.text-soutiens {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.name-info {
|
||||
font-size: 2rem;
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
65
src/views/messages/Message.vue
Normal file
65
src/views/messages/Message.vue
Normal file
@@ -0,0 +1,65 @@
|
||||
<template>
|
||||
|
||||
<div class="flex flex-column">
|
||||
|
||||
<div class="flex flex-row p-1">
|
||||
|
||||
<div class="px-2 content-center">
|
||||
<img :src="message.portrait"
|
||||
alt="Profile Image"
|
||||
class="rounded-full"
|
||||
width="32px"
|
||||
height="32px">
|
||||
</div>
|
||||
|
||||
<div class="p-2">
|
||||
|
||||
<div>
|
||||
<span class="font-semibold font-sans mr-2">{{ message.created_by }}</span>
|
||||
<span class="text-sm font-sans text-gray-700">il y a 3 heures</span>
|
||||
</div>
|
||||
|
||||
<div class="font-sans">
|
||||
{{ message.value }}
|
||||
</div>
|
||||
|
||||
<div class="flex px-4">
|
||||
|
||||
<div>
|
||||
<v-icon>mdi-thumb-up-outline</v-icon>
|
||||
{{ message.thumb_up_count }}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<v-icon>mdi-thumb-down-outline</v-icon>
|
||||
{{ message.thumb_down_count }}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<v-btn variant="flat">Reply</v-btn>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
import {defineProps} from 'vue';
|
||||
|
||||
defineProps({
|
||||
message: {
|
||||
type: Object,
|
||||
required: true
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
36
src/views/messages/MessageList.vue
Normal file
36
src/views/messages/MessageList.vue
Normal file
@@ -0,0 +1,36 @@
|
||||
<template>
|
||||
|
||||
<div v-for="(message, index) in messages" :key="index">
|
||||
<Message :message="message"></Message>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
import Message from "@/views/messages/Message.vue";
|
||||
// import posts from "@/views/posts/posts.json";
|
||||
|
||||
import {useClient} from '@/plugins/api.js';
|
||||
import {defineProps, onBeforeMount, ref} from 'vue';
|
||||
|
||||
const props = defineProps({
|
||||
contentId: {
|
||||
type: String,
|
||||
required: true
|
||||
}
|
||||
});
|
||||
|
||||
const client = useClient();
|
||||
const messages = ref();
|
||||
|
||||
onBeforeMount(async () => {
|
||||
try {
|
||||
const response = await client.get(`/api/messages/${props.contentId}`)
|
||||
messages.value = response.data
|
||||
} catch (error) {
|
||||
console.error("Failed to fetch posts", error);
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
61
src/views/messages/PostMessage.vue
Normal file
61
src/views/messages/PostMessage.vue
Normal file
@@ -0,0 +1,61 @@
|
||||
<template>
|
||||
|
||||
<div class="flex flex-column">
|
||||
|
||||
<div class="flex flex-row">
|
||||
|
||||
<div class="px-1 content-center">
|
||||
<img src="/images/usersmedia/anonyme/profilepictures/profileAnonymeSquare.png"
|
||||
alt="Profile Image"
|
||||
class="rounded-full"
|
||||
width="32px"
|
||||
height="32px">
|
||||
</div>
|
||||
|
||||
<v-text-field
|
||||
v-model="message"
|
||||
density="compact"
|
||||
variant="solo-inverted"
|
||||
placeholder="Votre commentaire..."
|
||||
hide-details
|
||||
clearable>
|
||||
</v-text-field>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="flex flex-row gap-2 p-2 justify-end">
|
||||
<v-btn style="border-radius: 20px" variant="text">Canceller</v-btn>
|
||||
<v-btn style="border-radius: 20px" @click="publish">Publier</v-btn>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
// import posts from "@/views/posts/posts.json";
|
||||
|
||||
import {useClient} from '@/plugins/api.js';
|
||||
import {defineProps, ref} from 'vue';
|
||||
|
||||
const props = defineProps({
|
||||
contentId: {
|
||||
type: String,
|
||||
required: true
|
||||
}
|
||||
});
|
||||
|
||||
const client = useClient();
|
||||
const message = ref("");
|
||||
|
||||
const publish = async () => {
|
||||
await client.post(
|
||||
`/api/messages/`,
|
||||
{
|
||||
"contentId": props.contentId,
|
||||
"message": message.value
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
29
src/views/messages/posts.json
Normal file
29
src/views/messages/posts.json
Normal file
@@ -0,0 +1,29 @@
|
||||
[
|
||||
{
|
||||
"content": "40C28A05-2262-43F4-862A-09A4246A8DDE",
|
||||
"portrait": "/images/usersmedia/anonyme/profilepictures/profileAnonymeSquare.png",
|
||||
"created_by": "@marchy",
|
||||
"created_at": "",
|
||||
"message": "Hello World!",
|
||||
"thumb_up_count": 0,
|
||||
"thumb_down_count": 0
|
||||
},
|
||||
{
|
||||
"content": "40C28A05-2262-43F4-862A-09A4246A8DDE",
|
||||
"portrait": "/images/usersmedia/anonyme/profilepictures/profileAnonymeSquare.png",
|
||||
"created_by": "@marchy",
|
||||
"created_at": "",
|
||||
"message": "Welcome to life!",
|
||||
"thumb_up_count": 0,
|
||||
"thumb_down_count": 3
|
||||
},
|
||||
{
|
||||
"content": "40C28A05-2262-43F4-862A-09A4246A8DDE",
|
||||
"portrait": "/images/usersmedia/anonyme/profilepictures/profileAnonymeSquare.png",
|
||||
"created_by": "@marchy",
|
||||
"created_at": "",
|
||||
"message": "We love you!",
|
||||
"thumb_up_count": 1,
|
||||
"thumb_down_count": 0
|
||||
}
|
||||
]
|
||||
@@ -1,259 +0,0 @@
|
||||
<template>
|
||||
|
||||
<body style="background-color: #f4f4f4;">
|
||||
<DefaultLayout></DefaultLayout>
|
||||
<div>
|
||||
<v-row class="fluid" style="margin-top: -30px; position: relative; z-index: 0;" hidden-md-and-down>
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375"
|
||||
src="/images/hutopymedia/tospage/headerbackground.png" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<v-container style="z-index: 100; position: relative;">
|
||||
<v-row justify="center" align="center" style="color:white; margin-top: -250px;"
|
||||
class="header-text-size">
|
||||
<v-typography class="headline text-center">À propos</v-typography>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
<v-row class="fluid d-flex justify-center" style="margin-bottom: 25px; margin-top: 25px;">
|
||||
<v-col cols="auto">
|
||||
<router-link :to="{ name: 'home' }">
|
||||
<v-btn flat style="background-color: #f4f4f4;">
|
||||
<v-icon left style="margin-right: 10px;">mdi-home</v-icon> Accueil
|
||||
</v-btn>
|
||||
</router-link>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
|
||||
<v-container style="z-index: 100; position: relative;">
|
||||
<v-row justify="center" align="center">
|
||||
<v-spacer></v-spacer>
|
||||
<v-col cols="7">
|
||||
<p style="font-weight: 600; font-size: 2rem; margin-bottom: 25px;">
|
||||
À propos
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Bienvenue sur la page "À Propos" d’Hutopy, où nous partageons notre histoire, notre mission,
|
||||
notre vision, et vous présentons l'équipe passionnée qui rend tout cela possible. Hutopy
|
||||
n'est pas seulement une plateforme ; c'est une communauté, un mouvement, un lieu où la
|
||||
créativité rencontre la technologie pour créer des expériences inoubliables.
|
||||
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Notre Histoire
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Hutopy a été fondée en 2024, née de l'idée simple mais puissante que chaque créateur qu'il
|
||||
soit grand ou petit, novice ou expérimenté, devrait avoir accès aux outils et au soutien
|
||||
nécessaires pour partager sa passion avec le monde.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Notre Mission
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Notre mission est de démocratiser la création de contenu numérique, en offrant une
|
||||
plateforme accessible, intuitive et puissante qui permet aux créateurs de tout horizon de
|
||||
s'exprimer, d'innover et de connecter avec une audience mondiale. Nous nous engageons à
|
||||
fournir les outils, les ressources et le soutien nécessaires pour que chaque voix puisse
|
||||
être entendue.
|
||||
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Notre Vision
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Nous envisageons un monde où la barrière entre les créateurs et leur audience est réduite au
|
||||
minimum, où les idées, l'expertise et les histoires peuvent circuler librement et sans
|
||||
entrave. Hutopy aspire à être au cœur de cet écosystème créatif et professionnel, en étant
|
||||
une source d'inspiration, une plateforme de lancement et un foyer pour tous.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Notre Équipe
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Derrière Hutopy, il y a une équipe de penseurs innovants, de créatifs passionnés et de
|
||||
technologues dévoués, tous unis par le désir de soutenir la communauté des créateurs de
|
||||
contenu. Notre équipe est notre plus grande force, chaque membre apportant une expertise
|
||||
unique et une perspective fraîche à notre mission commune.
|
||||
</p>
|
||||
<br>
|
||||
<v-row justify="center">
|
||||
<v-card max-width="250px" style="margin: 10px;">
|
||||
|
||||
<img class="member-profile-picture"
|
||||
src="/images/hutopymedia/tospage/membersPictures/profileMarco.png"
|
||||
alt="Marc-Olivier Hébert">
|
||||
|
||||
<div style="margin: 10px;">
|
||||
<v-typography class="name"
|
||||
style="font-size: 1.5rem; font-weight: bold;">Marc-Olivier
|
||||
</v-typography><br> <v-typography class="name"
|
||||
style="font-size: 1.5rem; font-weight: bold;">
|
||||
Hébert</v-typography><br>
|
||||
<v-typography class="task" style="font-size: 1rem;">Fondateur</v-typography><br><br>
|
||||
<p class="text" style="hyphens: auto; font-size: 0.8rem; text-align: justify;">Avec
|
||||
une
|
||||
vision claire et un engagement sans faille, il a lancé Hutopy pour changer la
|
||||
manière dont le contenu est créé et partagé.</p>
|
||||
</div>
|
||||
</v-card>
|
||||
<v-card max-width="250px" style="margin: 10px;">
|
||||
<img class="member-profile-picture"
|
||||
src="/images/hutopymedia/tospage/membersPictures/profileDominique.png"
|
||||
alt="Dominic Villemure">
|
||||
|
||||
<div style="margin: 10px;">
|
||||
<v-typography class="name" style="font-size: 1.5rem; font-weight: bold;">Dominic
|
||||
</v-typography><br>
|
||||
<v-typography class="name" style="font-size: 1.5rem; font-weight: bold;">
|
||||
Villemure</v-typography><br>
|
||||
<v-typography class="task" style="font-size: 1rem;">Responsable
|
||||
Technique</v-typography><br><br>
|
||||
<p class="text" style="hyphens: auto; font-size: 0.8rem; text-align: justify;">À la
|
||||
tête de notre équipe de développement, il assure qu’Hutopy reste à la pointe de
|
||||
la technologie.
|
||||
</p>
|
||||
</div>
|
||||
</v-card>
|
||||
<v-card max-width="250px" style="margin: 10px;">
|
||||
<img class="member-profile-picture"
|
||||
src="/images/hutopymedia/tospage/membersPictures/profilePascal.png"
|
||||
alt="Pascal Marchesseault">
|
||||
<div style="margin: 10px;">
|
||||
<v-typography class="name" style="font-size: 1.5rem; font-weight: bold;">Pascal
|
||||
</v-typography><br>
|
||||
<v-typography class="name" style="font-size: 1.5rem; font-weight: bold;">
|
||||
Marchesseault</v-typography><br>
|
||||
<v-typography class="task" style="font-size: 1rem;">Expérience
|
||||
utilisateur</v-typography><br>
|
||||
<br>
|
||||
|
||||
<p class="text" style="hyphens: auto; font-size: 0.8rem; text-align: justify;">Le
|
||||
champion
|
||||
de l'expérience utilisateur, il veille à ce que chaque interaction avec Hutopy
|
||||
soit
|
||||
positive et enrichissante pour tous les utilisateurs.</p>
|
||||
</div>
|
||||
</v-card>
|
||||
|
||||
<v-card max-width="250px" style="margin: 10px;">
|
||||
<img class="member-profile-picture"
|
||||
src="/images/hutopymedia/tospage/membersPictures/profileChloe.png"
|
||||
alt="Chloé Beaugrand">
|
||||
<div style="margin: 10px;">
|
||||
<v-typography class="name" style="font-size: 1.5rem; font-weight: bold;">Chloé
|
||||
</v-typography><br>
|
||||
<v-typography class="name" style="font-size: 1.5rem; font-weight: bold;">
|
||||
Beaugrand</v-typography><br>
|
||||
<v-typography class="task" style="font-size: 1rem;">Responsable
|
||||
Marketing</v-typography><br>
|
||||
<br>
|
||||
<p class="text" style="hyphens: auto; font-size: 0.8rem; text-align: justify;">Elle
|
||||
façonne
|
||||
l'image d’Hutopy et engage notre communauté à travers des campagnes innovantes
|
||||
et
|
||||
impactantes.</p>
|
||||
</div>
|
||||
</v-card>
|
||||
<v-card max-width="250px" style="margin: 10px;">
|
||||
<img class="member-profile-picture"
|
||||
src="/images/hutopymedia/tospage/membersPictures/profileEdouard.png"
|
||||
alt="Édouard Letarte">
|
||||
<div style="margin: 10px;">
|
||||
<v-typography class="name" style="font-size: 1.5rem; font-weight: bold;">Édouard
|
||||
</v-typography><br>
|
||||
<v-typography class="name" style="font-size: 1.5rem; font-weight: bold;">
|
||||
Letarte</v-typography><br>
|
||||
<v-typography class="task" style="font-size: 1rem;">Intégrateur
|
||||
</v-typography><br><br>
|
||||
<p class="text" style="hyphens: auto; font-size: 0.8rem; text-align: justify;">Son
|
||||
expertise nous permet d'intégrer des fonctionnalités qui permettent à Hutopy de
|
||||
devenir réalité.</p>
|
||||
</div>
|
||||
</v-card>
|
||||
</v-row>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Chez Hutopy, nous sommes plus qu'une plateforme ; nous sommes une famille dédiée à la
|
||||
réussite de nos créateurs. Nous vous invitons à nous joindre dans cette aventure
|
||||
passionnante, à partager votre créativité et votre expertise avec le monde et à faire
|
||||
d’Hutopy votre utopie. Merci de faire partie de notre histoire.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</v-col>
|
||||
<v-spacer></v-spacer>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<FooterLayout></FooterLayout>
|
||||
|
||||
</body>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import DefaultLayout from '@/layouts/DefaultLayout.vue';
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.header-text-size {
|
||||
font-size: 4rem;
|
||||
}
|
||||
|
||||
.member-profile-picture {
|
||||
width: 250px;
|
||||
height: auto;
|
||||
}
|
||||
</style>
|
||||
@@ -1,336 +0,0 @@
|
||||
<template>
|
||||
|
||||
<body style="background-color: #f4f4f4;">
|
||||
<DefaultLayout></DefaultLayout>
|
||||
<div>
|
||||
<v-row class="fluid" style="margin-top: -30px; position: relative; z-index: 0;" hidden-md-and-down>
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375"
|
||||
src="/images/hutopymedia/tospage/headerbackground.png" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
|
||||
|
||||
<v-container style="z-index: 100; position: relative;">
|
||||
<v-row justify="center" align="center" style="color:white; margin-top: -250px;"
|
||||
class="header-text-size">
|
||||
<v-typography class="headline text-center">Politique de Contenu</v-typography>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
<v-row class="fluid d-flex justify-center" style="margin-bottom: 25px; margin-top: 25px;">
|
||||
<v-col cols="auto">
|
||||
<router-link :to="{ name: 'home' }">
|
||||
<v-btn flat style="background-color: #f4f4f4;">
|
||||
<v-icon left style="margin-right: 10px;">mdi-home</v-icon> Accueil
|
||||
</v-btn>
|
||||
</router-link>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
|
||||
<v-container style="z-index: 100; position: relative;">
|
||||
<v-row justify="center" align="center">
|
||||
<v-spacer></v-spacer>
|
||||
<v-col cols="7">
|
||||
<p style="font-weight: 600; font-size: 2rem; margin-bottom: 25px;">
|
||||
Politique de Contenu d’Hutopy
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Introduction
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Hutopy vise à offrir une plateforme sécurisée, inclusive et respectueuse où les créateurs
|
||||
peuvent partager leur travail et interagir avec une communauté engagée. Pour maintenir cet
|
||||
environnement, nous avons établi des lignes directrices claires concernant le type de
|
||||
contenu autorisé sur notre plateforme. En utilisant Hutopy, vous acceptez de respecter cette
|
||||
politique de contenu.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Contenu Autorisé
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Hutopy encourage la publication de contenu créatif, éducatif et inspirant dans divers
|
||||
formats, y compris :<br>
|
||||
<br>
|
||||
<li>Arts visuels et design : Illustrations, photographies, designs graphiques respectant le
|
||||
droit d'auteur.</li>
|
||||
<br>
|
||||
<li>Éducation et apprentissage : Tutoriels, cours en ligne, webinaires qui favorisent
|
||||
l'apprentissage et le développement personnel.</li>
|
||||
<br>
|
||||
<li>Contenu écrit : Articles, blogs, poésies qui enrichissent les discussions et partagent
|
||||
des connaissances.</li>
|
||||
<br>
|
||||
<li>Multimédia : Vidéos, podcasts et musique originales qui respectent les droits d'auteur
|
||||
et encouragent l'expression créative.</li>
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Contenu Interdit
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Pour protéger notre communauté, certains types de contenu ne sont pas autorisés sur Hutopy,
|
||||
incluant mais non limité à : <br>
|
||||
<br>
|
||||
<li>Contenu illégal : Tout contenu promouvant des activités illégales ou fournissant des
|
||||
instructions pour commettre des actes illégaux.</li>
|
||||
<br>
|
||||
<li>Harcèlement et discours de haine : Contenu visant à harceler, menacer, ou promouvoir la
|
||||
haine contre des individus ou des groupes basés sur la race, l'ethnie, la religion, le
|
||||
genre, l'orientation sexuelle, l'identité de genre ou tout autre caractéristique
|
||||
distinctive.
|
||||
</li>
|
||||
<br>
|
||||
<li>Contenu pour adultes : Matériel pornographique ou explicitement sexuel.
|
||||
</li>
|
||||
<br>
|
||||
<li>Violence et contenu graphique : Images ou descriptions de violence excessive, gore ou
|
||||
choquantes.</li>
|
||||
<br>
|
||||
<li>Publicité mensongère et spam : Contenu trompeur, frauduleux ou spammy.
|
||||
</li>
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Droits d'Auteur et Propriété Intellectuelle
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Respect des Droits : Vous devez posséder les droits sur le contenu que vous publiez sur
|
||||
Hutopy ou avoir l'autorisation expresse du détenteur des droits pour utiliser ce contenu.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Attribution : Lorsque vous utilisez ou adaptez le contenu protégé par des droits d'auteur
|
||||
appartenant à autrui, une attribution claire et correcte doit être fournie.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Modération et Signalement
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Modération : Hutopy utilise à la fois des modérateurs humains et des outils automatisés pour
|
||||
surveiller et évaluer le contenu publié, garantissant le respect de cette politique.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Signalement : Les utilisateurs de Hutopy sont encouragés à signaler tout contenu qu'ils
|
||||
considèrent comme enfreignant notre politique de contenu via les outils de signalement
|
||||
disponibles sur la plateforme.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Conséquences des Violations
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
La violation de notre politique de contenu peut entraîner des actions allant de
|
||||
l'avertissement à la suppression du contenu ou à la suspension, voire à la résiliation du
|
||||
compte utilisateur.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Révisions de la Politique
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Hutopy se réserve le droit de modifier cette politique de contenu à tout moment pour
|
||||
refléter les changements dans nos pratiques ou pour se conformer à de nouvelles
|
||||
réglementations légales.
|
||||
</p>
|
||||
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Dans le cas d’une non conformité aux politiques de contenus :
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
1. Suspension des Fonds : Les montants accumulés sur le compte de l'utilisateur en question
|
||||
seront suspendus temporairement le temps de l'évaluation.<br>
|
||||
<br>
|
||||
2. Redistribution à des Œuvres de Charité : Si, après évaluation, le contenu est
|
||||
définitivement jugé non conforme à nos clauses de conformité, les fonds suspendus seront
|
||||
redistribués à des œuvres de charité choisies par Hutopy. L'utilisateur concerné sera
|
||||
informé de cette décision et des raisons de la non-conformité de son contenu.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Cette mesure vise à renforcer la responsabilité des créateurs quant au type de contenu
|
||||
partagé sur Hutopy, tout en soutenant des causes bénéfiques en cas de violation de nos
|
||||
directives.
|
||||
</p>
|
||||
|
||||
<p style="font-weight: 600; font-size: 2rem; margin-bottom: 25px;">
|
||||
Section Anti-Exploitation d’Hutopy
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Engagement d’Hutopy
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Hutopy s'engage fermement à maintenir une plateforme sûre et respectueuse pour tous ses
|
||||
utilisateurs. Nous prenons une position intransigeante contre toute forme d'exploitation
|
||||
humaine et nous travaillons activement pour prévenir, identifier et combattre les
|
||||
comportements et contenus exploitants. Notre mission est de créer un environnement où la
|
||||
créativité et l'expression personnelle peuvent s'épanouir sans crainte d'exploitation ou
|
||||
d'abus.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Politique de Tolérance Zéro
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Nous appliquons une politique de tolérance zéro à l'égard de :<br>
|
||||
<br>
|
||||
<li>Exploitation sexuelle : Cela inclut, mais n'est pas limité à, la pornographie infantile,
|
||||
le trafic sexuel, et le harcèlement sexuel.
|
||||
</li>
|
||||
<br>
|
||||
<li>Travail forcé : Nous nous opposons à toute forme de travail forcé ou de servitude, y
|
||||
compris le travail des enfants.
|
||||
</li>
|
||||
<br>
|
||||
<li>Exploitation financière : Cela comprend les arnaques, la fraude et tout autre type
|
||||
d'exploitation financière.</li>
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Politique de Tolérance Zéro
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Signalement et Actions<br>
|
||||
<br>
|
||||
<li>Mécanismes de Signalement : Hutopy fournit des outils faciles à utiliser pour signaler
|
||||
rapidement tout contenu ou comportement suspect d'exploitation. Nous encourageons
|
||||
vivement les utilisateurs à utiliser ces outils s'ils rencontrent ou soupçonnent des cas
|
||||
d'exploitation.
|
||||
</li>
|
||||
<br>
|
||||
<li>Réponse Rapide : Notre équipe dédiée examine tous les signalements avec la plus grande
|
||||
attention et prend des mesures immédiates pour adresser les problèmes signalés. Cela
|
||||
peut inclure la suppression de contenu, la suspension de comptes, et, si nécessaire, le
|
||||
signalement aux autorités compétentes.
|
||||
</li>
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Collaboration avec les Autorités
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Nous collaborons étroitement avec les autorités et les organisations spécialisées pour
|
||||
combattre l'exploitation sous toutes ses formes. Hutopy est déterminé à respecter toutes les
|
||||
lois applicables et à coopérer avec les autorités dans leurs efforts de lutte contre
|
||||
l'exploitation et l'abus.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Engagements des Utilisateurs
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
En rejoignant Hutopy, les utilisateurs s'engagent à respecter nos principes
|
||||
anti-exploitation et à contribuer à la création d'un espace sûr pour tous. Tout manquement à
|
||||
ces engagements entraînera des conséquences sérieuses, conformément à notre politique de
|
||||
tolérance zéro.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Modération et Signalement
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<li>Modération : Hutopy utilise à la fois des modérateurs humains et des outils automatisés
|
||||
pour surveiller et évaluer le contenu publié, garantissant le respect de cette
|
||||
politique.</li>
|
||||
<br>
|
||||
<li>Signalement : Les utilisateurs d’Hutopy sont encouragés à signaler tout contenu qu'ils
|
||||
considèrent comme enfreignant notre politique de contenu via les outils de signalement
|
||||
disponibles sur la plateforme.</li>
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Conséquences des Violations
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
La violation de notre politique de contenu peut entraîner des actions allant de
|
||||
l'avertissement à la suppression du contenu ou à la suspension, voire à la résiliation du
|
||||
compte utilisateur.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Révisions de la Politique
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Hutopy se réserve le droit de modifier cette politique de contenu à tout moment pour
|
||||
refléter les changements dans nos pratiques ou pour se conformer à de nouvelles
|
||||
réglementations légales.
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Contact
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Si vous avez des questions sur cette politique de contenu ou sur la manière dont nous
|
||||
l'appliquons, veuillez contacter notre équipe d'assistance à <a
|
||||
href="mailto:support@hutopy.com" style="color: #a30e79;">support@hutopy.com</a>
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</v-col>
|
||||
<v-spacer></v-spacer>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<FooterLayout></FooterLayout>
|
||||
|
||||
</body>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import DefaultLayout from '@/layouts/DefaultLayout.vue';
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.header-text-size {
|
||||
font-size: 4rem;
|
||||
}
|
||||
</style>
|
||||
@@ -1,244 +0,0 @@
|
||||
<template>
|
||||
|
||||
<body style="background-color: #f4f4f4;">
|
||||
<DefaultLayout></DefaultLayout>
|
||||
<div>
|
||||
<v-row class="fluid" style="margin-top: -30px; position: relative; z-index: 0;">
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375"
|
||||
src="/images/hutopymedia/tospage/headerbackground.png" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<v-container style="z-index: 100; position: relative;">
|
||||
<v-row justify="center" style="color:white;">
|
||||
<h1 class="header-text-size text-center">FAQ
|
||||
</h1>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
|
||||
<v-row class="fluid d-flex justify-center" style="margin-bottom: 25px; margin-top: 25px;">
|
||||
<v-col cols="auto">
|
||||
<router-link :to="{ name: 'home' }">
|
||||
<v-btn flat style="background-color: #f4f4f4;">
|
||||
<v-icon left style="margin-right: 10px;">mdi-home</v-icon> Accueil
|
||||
</v-btn>
|
||||
</router-link>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
|
||||
|
||||
<v-container style="z-index: 100; position: relative;">
|
||||
<v-row justify="center" align="center">
|
||||
<v-spacer></v-spacer>
|
||||
<v-col cols="7">
|
||||
<p style="font-weight: 600; font-size: 1rem; margin-bottom: 25px; color: red;">
|
||||
Certaines fonctionnalités ne sont pas encore implémentées, donc certains libellés sont
|
||||
prévus pour la v1.0.
|
||||
|
||||
</p>
|
||||
<p style="font-weight: 600; font-size: 2rem; margin-bottom: 25px;">
|
||||
Foire Aux Questions
|
||||
</p>
|
||||
|
||||
<p class="text-start text-left" style="margin-bottom: 25px;">
|
||||
La section FAQ de Hutopy est votre ressource essentielle pour trouver des réponses rapides
|
||||
aux questions les plus fréquemment posées sur notre plateforme. Explorez nos réponses
|
||||
détaillées pour optimiser votre utilisation de Hutopy et résoudre vos problèmes en un
|
||||
instant. Consultez régulièrement notre FAQ pour rester informé des dernières
|
||||
fonctionnalités.
|
||||
</p>
|
||||
|
||||
<p style="font-weight: 600; font-size: 1.4rem;">
|
||||
1. Comment puis-je créer un compte sur Hutopy ?
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<span style="font-weight: 600;">Réponse :</span> Créer un compte est
|
||||
simple !
|
||||
Visitez notre page
|
||||
d'inscription, remplissez les
|
||||
informations requises, et suivez les instructions pour confirmer votre adresse e-mail ou
|
||||
vous connecter via les partenaires de connexion. Vous pourrez commencer à explorer et à
|
||||
interagir avec la communauté Hutopy immédiatement après.
|
||||
</p>
|
||||
|
||||
<p style="font-weight: 600; font-size: 1.4rem;">
|
||||
2. Quels types de contenu puis-je publier sur Hutopy ?
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<span style="font-weight: 600;">Réponse :</span> Hutopy accueille une
|
||||
large
|
||||
variété de contenus créatifs, incluant mais non limité à des vidéos, articles, podcasts, et
|
||||
illustrations. Nous encourageons la diversité et l'originalité, tant que le contenu respecte
|
||||
nos valeurs.
|
||||
</p>
|
||||
|
||||
<p style="font-weight: 600; font-size: 1.4rem;">
|
||||
3. Comment Hutopy rémunère-t-il les créateurs de contenu ?
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<span style="font-weight: 600;">Réponse :</span> Les créateurs peuvent monétiser leur
|
||||
contenu de plusieurs façons, notamment via des abonnements payants et des dons de la part
|
||||
des utilisateurs.
|
||||
</p>
|
||||
|
||||
<p style="font-weight: 600; font-size: 1.4rem;">
|
||||
4. Comment puis-je modifier mon profil ?
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<span style="font-weight: 600;">Réponse :</span> Connectez-vous à votre compte, accédez à
|
||||
votre profil, puis cliquez sur "Éditer le profil" pour modifier vos informations, ajouter
|
||||
une bio, changer votre photo de profil, et plus encore.
|
||||
</p>
|
||||
|
||||
<p style="font-weight: 600; font-size: 1.4rem;">
|
||||
5. Est-il possible de supprimer mon compte ?
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<span style="font-weight: 600;">Réponse :</span> Oui, vous pouvez faire la suppression de
|
||||
votre compte sur votre profil dans la section plus. Notez que cette action est irréversible.
|
||||
</p>
|
||||
|
||||
<p style="font-weight: 600; font-size: 1.4rem;">
|
||||
6. Que faire si j'oublie mon mot de passe ?
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<span style="font-weight: 600;">Réponse :</span> Sur la page de connexion, cliquez sur "Mot
|
||||
de passe oublié ?" et suivez les instructions pour réinitialiser votre mot de passe via
|
||||
votre adresse courriel.
|
||||
</p>
|
||||
|
||||
<p style="font-weight: 600; font-size: 1.4rem;">
|
||||
7. Comment signaler un contenu inapproprié ?
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<span style="font-weight: 600;">Réponse :</span> Si vous rencontrez du contenu qui viole nos
|
||||
directives, cliquer sur les trois petits points en haut de la publication et cliqué sur le
|
||||
bouton "Signaler" associé au contenu en question pour alerter notre équipe de modération.
|
||||
</p>
|
||||
|
||||
<p style="font-weight: 600; font-size: 1.4rem;">
|
||||
8. Comment puis-je contacter le support Hutopy ?
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<span style="font-weight: 600;">Réponse :</span> Pour toute assistance, vous pouvez nous
|
||||
contacter via notre formulaire en ligne ou par e-mail à support@hutopy.com, ou via nos
|
||||
réseaux sociaux. Notre équipe s'efforce de répondre rapidement à toutes les demandes.
|
||||
</p>
|
||||
|
||||
<p style="font-weight: 600; font-size: 1.4rem;">
|
||||
9. Quels sont les frais pour les créateurs sur Hutopy ?
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<span style="font-weight: 600;">Réponse :</span> Hutopy prélève une commission de 12% +
|
||||
0,30$ sur chaque transaction réalisée sur la plateforme, que ce soit pour les abonnements,
|
||||
les dons ou tout autre revenu généré par les créateurs. Cette commission nous aide à couvrir
|
||||
les coûts de maintenance de la plateforme, de la bande passante, d'assistance utilisateur,
|
||||
des frais de transaction de Stripe et le développement continu pour améliorer votre
|
||||
expérience sur Hutopy.
|
||||
</p>
|
||||
|
||||
<p style="font-weight: 600; font-size: 1.4rem;">
|
||||
10. Y a-t-il des frais pour s'inscrire ou pour maintenir mon compte sur Hutopy ?
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<span style="font-weight: 600;">Réponse :</span> Non, l'inscription sur Hutopy est gratuite,
|
||||
et il n'y a pas de frais mensuels ou annuels pour maintenir votre compte. Vous pouvez
|
||||
commencer à utiliser Hutopy et à partager votre contenu sans aucun coût initial.
|
||||
</p>
|
||||
|
||||
<p style="font-weight: 600; font-size: 1.4rem;">
|
||||
11. Les utilisateurs doivent-ils payer pour accéder au contenu sur Hutopy ?
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<span style="font-weight: 600;">Réponse :</span> Hutopy offre à la fois du contenu gratuit
|
||||
et du contenu premium. Les utilisateurs peuvent accéder gratuitement à une partie du contenu
|
||||
sur la plateforme. Cependant, certains créateurs peuvent choisir de rendre leur contenu
|
||||
accessible uniquement via un abonnement payant ou un achat unique pour soutenir leur
|
||||
travail.
|
||||
</p>
|
||||
|
||||
<p style="font-weight: 600; font-size: 1.4rem;">
|
||||
12. Existe-t-il des frais pour retirer mes gains de la plateforme ?
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<span style="font-weight: 600;">Réponse :</span> Les créateurs peuvent retirer leurs gains
|
||||
sans frais supplémentaires de la part d’Hutopy. Cependant, les transactions bancaires ou les
|
||||
transferts vers des portefeuilles électroniques peuvent être soumis aux frais standards
|
||||
imposés par ces services ou institutions financières, mais pas par Hutopy.
|
||||
</p>
|
||||
|
||||
<p style="font-weight: 600; font-size: 1.4rem;">
|
||||
13. Les frais Hutopy sont-ils les mêmes pour tous les types de contenu ?
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<span style="font-weight: 600;">Réponse :</span> Oui, les frais de commission d’Hutopy sont
|
||||
uniformément appliqués à tous les types de contenu et de transactions sur la plateforme pour
|
||||
maintenir la simplicité et la transparence et ce peut importe le montant.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</v-col>
|
||||
<v-spacer></v-spacer>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</div>
|
||||
<FooterLayout></FooterLayout>
|
||||
|
||||
</body>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import DefaultLayout from '@/layouts/DefaultLayout.vue';
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.header-text-size {
|
||||
font-size: 4rem;
|
||||
margin-top: -230px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@media (min-width: 650px) and (max-width: 960px) {
|
||||
.header-text-size {
|
||||
margin-top: -200px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media (min-width: 100px) and (max-width: 649px) {
|
||||
.header-text-size {
|
||||
margin-top: -155px;
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
@@ -1,107 +0,0 @@
|
||||
<template>
|
||||
|
||||
<body style="background-color: #f4f4f4;">
|
||||
<DefaultLayout></DefaultLayout>
|
||||
<div>
|
||||
<v-row class="fluid" style="margin-top: -30px; position: relative; z-index: 0;" hidden-md-and-down>
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375"
|
||||
src="/images/hutopymedia/tospage/headerbackground.png" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<v-container style="z-index: 100; position: relative;">
|
||||
<v-row justify="center" align="center" style="color:white; margin-top: -250px;"
|
||||
class="header-text-size">
|
||||
<v-typography class="headline text-center">Frais</v-typography>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
<v-row class="fluid d-flex justify-center" style="margin-bottom: 25px; margin-top: 25px;">
|
||||
<v-col cols="auto">
|
||||
<router-link :to="{ name: 'home' }">
|
||||
<v-btn flat style="background-color: #f4f4f4;">
|
||||
<v-icon left style="margin-right: 10px;">mdi-home</v-icon> Accueil
|
||||
</v-btn>
|
||||
</router-link>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
|
||||
<v-container style="z-index: 100; position: relative;">
|
||||
<v-row justify="center" align="center">
|
||||
<v-spacer></v-spacer>
|
||||
<v-col cols="7">
|
||||
<p style="font-weight: 600; font-size: 2rem; margin-bottom: 25px;">
|
||||
Frais
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Découvrez Hutopy, l'endroit où la valorisation de votre travail atteint son apogée. Avec une
|
||||
commission réduite à seulement 9 %, notre engagement envers votre succès est palpable.
|
||||
Chaque pourcentage prélevé est réinvesti avec soin pour catalyser votre croissance afin de
|
||||
développer des fonctionnalités innovantes, maintenir une infrastructure technologique de
|
||||
pointe, et un support utilisateur de premier ordre. Notre objectif ? Amplifier votre
|
||||
expansion et garantir une expérience utilisateur sans précédent.
|
||||
|
||||
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Pour chaque transaction, un frais minime assure la sécurité et la fiabilité des paiements,
|
||||
grâce à un partenaire de confiance mondialement reconnu. Ce dernier sécurise des milliards
|
||||
en transactions chaque année pour une diversité d'entreprises, à des entreprises en
|
||||
démarrage aux conglomérats établis. Ce gage de sécurité est disponible pour une somme de 2,9
|
||||
% plus un 0,30 $ par transaction, une petite contribution pour la tranquillité d'esprit et
|
||||
la protection de vos revenus.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
|
||||
Notre modèle tarifaire, pensé pour la simplicité et la transparence, a pour ambition ultime
|
||||
d'optimiser vos gains. Chez Hutopy, la notion de partenariat prend tout son sens : votre
|
||||
épanouissement est au cœur de nos préoccupations. Bénéficiez d'une plateforme qui élargit
|
||||
votre horizon créatif et entrepreneurial, tout en vous assurant que vos intérêts et ceux de
|
||||
vos donnateurs sont précieusement gardés.
|
||||
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Hutopy est plus qu'une plateforme ; c'est une communauté où la transformation de la passion
|
||||
en profit devient réalité, grâce au soutien indéfectible d'une équipe dévouée à enrichir
|
||||
votre parcours. Nous vous invitons à nous rejoindre pour explorer ensemble les avenues de
|
||||
succès, tout en vous garantissant une part conséquente de vos revenus. Embarquez dans une
|
||||
aventure où votre présence en ligne ne connaît pas de limites, soutenue par Hutopy, votre
|
||||
allié dans la quête du succès.
|
||||
</p>
|
||||
|
||||
</v-col>
|
||||
<v-spacer></v-spacer>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<FooterLayout></FooterLayout>
|
||||
|
||||
</body>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import DefaultLayout from '@/layouts/DefaultLayout.vue';
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.header-text-size {
|
||||
font-size: 4rem;
|
||||
}
|
||||
|
||||
.member-profile-picture {
|
||||
width: 250px;
|
||||
height: auto;
|
||||
}
|
||||
</style>
|
||||
@@ -1,141 +0,0 @@
|
||||
<template>
|
||||
|
||||
<body style="background-color: #f4f4f4;">
|
||||
<DefaultLayout></DefaultLayout>
|
||||
<div>
|
||||
<v-row class="fluid" style="margin-top: -30px; position: relative; z-index: 0;">
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375"
|
||||
src="/images/hutopymedia/tospage/headerbackground.png" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<v-container style="z-index: 100; position: relative;">
|
||||
<v-row justify="center" style="color:white;">
|
||||
<h1 class="header-text-size text-center">Guide pour les Créateurs</h1>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
|
||||
<v-row class="fluid d-flex justify-center" style="margin-bottom: 25px; margin-top: 25px;">
|
||||
<v-col cols="auto">
|
||||
<router-link :to="{ name: 'home' }">
|
||||
<v-btn flat style="background-color: #f4f4f4;">
|
||||
<v-icon left style="margin-right: 10px;">mdi-home</v-icon> Accueil
|
||||
</v-btn>
|
||||
</router-link>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
|
||||
|
||||
<v-container style="z-index: 100; position: relative;">
|
||||
<v-row justify="center" align="center">
|
||||
<v-spacer></v-spacer>
|
||||
<v-col cols="7">
|
||||
<p style="font-weight: 600; font-size: 2rem; margin-bottom: 25px;">
|
||||
Guide pour les Créateurs sur Hutopy
|
||||
</p>
|
||||
<p class="text-start text-left" style="margin-bottom: 25px;">
|
||||
Bienvenue dans la Communauté de Créateurs d’Hutopy
|
||||
</p>
|
||||
<p style="margin-bottom: 25px;">
|
||||
Félicitations pour avoir choisi Hutopy pour partager votre créativité et votre savoir ! Ce
|
||||
guide est conçu pour vous aider à maximiser votre présence sur la plateforme, à engager
|
||||
votre audience et à tirer le meilleur parti des outils à votre disposition.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
1. Création de Votre Profil de Créateur :
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<li>Personnalisez Votre Profil : Ajoutez une photo de profil, une bannière et une bio
|
||||
qui
|
||||
reflète votre personnalité et votre marque de créateur.</li> <br>
|
||||
<li> Liens et Contacts : Intégrez des liens vers vos autres plateformes sociales</li>
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
2. Publication de Contenu :
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; ">
|
||||
<li>Diversifiez Votre Contenu : Explorez différents formats – vidéos, articles, podcasts –
|
||||
pour captiver divers segments d'audience.
|
||||
</li> <br>
|
||||
<li> Planification et Consistance : Publiez régulièrement pour garder votre audience
|
||||
engagée. Utilisez l'outil de planification d’Hutopy pour organiser vos publications à
|
||||
l'avance.</li>
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
3. Engagement avec Votre Audience :
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<li>Interagissez : Répondez aux commentaires, participez à des discussions et créez des
|
||||
sondages pour encourager l'interaction.
|
||||
</li> <br>
|
||||
<li> Analysez Vos Performances : Utilisez les outils d'analyse d’Hutopy pour comprendre ce
|
||||
qui résonne avec votre audience et ajustez votre stratégie en conséquence.</li>
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
4. Monétisation :
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<li>Explorez les Options : Hutopy offre plusieurs voies de monétisation, y compris les
|
||||
abonnements payants, les dons et le programme d'ambassadeur. Choisissez ce qui convient
|
||||
le mieux à votre contenu et à votre audience.
|
||||
</li>
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
5. Croissance et Développement :
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
<li>Continuez à Apprendre : Utilisez le Centre de Ressources Éducatives d’Hutopy pour
|
||||
améliorer vos compétences et rester à jour sur les tendances du secteur. ( À venir )
|
||||
</li> <br>
|
||||
</p>
|
||||
|
||||
|
||||
</v-col>
|
||||
<v-spacer></v-spacer>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</div>
|
||||
<FooterLayout></FooterLayout>
|
||||
|
||||
</body>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import DefaultLayout from '@/layouts/DefaultLayout.vue';
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.header-text-size {
|
||||
font-size: 4rem;
|
||||
margin-top: -230px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@media (min-width: 650px) and (max-width: 960px) {
|
||||
.header-text-size {
|
||||
margin-top: -200px;
|
||||
font-size: 3rem;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media (min-width: 100px) and (max-width: 649px) {
|
||||
.header-text-size {
|
||||
margin-top: -135px;
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
@@ -1,122 +0,0 @@
|
||||
<template>
|
||||
|
||||
<body style="background-color: #f4f4f4;">
|
||||
<DefaultLayout></DefaultLayout>
|
||||
<div>
|
||||
<v-row class="fluid" style="margin-top: -30px; position: relative; z-index: 0;">
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375"
|
||||
src="/images/hutopymedia/tospage/headerbackground.png" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<v-container style="z-index: 100; position: relative;">
|
||||
<v-row justify="center" style="color:white;">
|
||||
<h1 class="header-text-size text-center">Aide et Contact</h1>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
|
||||
<v-row class="fluid d-flex justify-center" style="margin-bottom: 25px; margin-top: 25px;">
|
||||
<v-col cols="auto">
|
||||
<router-link :to="{ name: 'home' }">
|
||||
<v-btn flat style="background-color: #f4f4f4;">
|
||||
<v-icon left style="margin-right: 10px;">mdi-home</v-icon> Accueil
|
||||
</v-btn>
|
||||
</router-link>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
|
||||
|
||||
<v-container style="z-index: 100; position: relative;">
|
||||
<v-row justify="center" align="center">
|
||||
<v-spacer></v-spacer>
|
||||
<v-col cols="7">
|
||||
<p style="font-weight: 600; font-size: 2rem; margin-bottom: 25px;">
|
||||
Aide et contact
|
||||
</p>
|
||||
|
||||
<p class="text-start text-left" style="margin-bottom: 25px;">
|
||||
Bienvenue dans notre espace d'assistance ! Que vous soyez un créateur à la recherche de
|
||||
conseils pour optimiser votre présence sur Hutopy, ou un utilisateur curieux d'en apprendre
|
||||
plus sur notre plateforme, vous êtes au bon endroit. Notre objectif est de vous fournir tout
|
||||
le soutien nécessaire pour que votre expérience sur Hutopy soit aussi enrichissante et
|
||||
agréable que possible.
|
||||
</p>
|
||||
|
||||
<p style="font-weight: 600; font-size: 1.4rem;">
|
||||
FAQ (Foire Aux Questions)
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; ">
|
||||
Retrouvez les réponses aux questions les plus fréquemment posées concernant l'utilisation
|
||||
d’Hutopy, les fonctionnalités de la plateforme, les options de monétisation, et plus encore.
|
||||
Consulter la FAQ
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; font-weight: 600; font-size: 1.4rem;">Contactez-Nous</p>
|
||||
|
||||
<p style="margin-top: 25px;">Nous sommes toujours ravis d'entendre nos utilisateurs ! Que ce
|
||||
soit pour partager vos retours, poser une question spécifique, ou demander des
|
||||
renseignements sur des partenariats, n'hésitez pas à nous contacter.</p>
|
||||
<p style="margin-top: 25px; color: black;">
|
||||
- Par E-mail : <a href="mailto:info@hutopy.com" style="color: #a30e79;">info@hutopy.com</a>
|
||||
<br>
|
||||
- Réseaux Sociaux : Nous sommes actifs sur <a href="https://www.facebook.com/Hutopy"
|
||||
style="color: #a30e79;">Facebook</a>, et <a href="https://www.instagram.com/hutopy.inc"
|
||||
style="color: #a30e79;">Instagram</a> <br>
|
||||
- Suivez-nous pour rester informé et interagir avec notre communauté.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; font-weight: 600; font-size: 1.4rem;">Assistance Technique</p>
|
||||
|
||||
<p style="margin-top: 25px; color: black;">
|
||||
Rencontrez-vous un problème technique ? <br>
|
||||
Notre équipe d'assistance est là pour vous aider :
|
||||
<a href="mailto:support@hutopy.com" style="color: #a30e79;">support@hutopy.com</a>
|
||||
</p>
|
||||
|
||||
|
||||
<p style="margin-top: 25px;">Nous sommes là pour rendre votre expérience sur Hutopy aussi fluide
|
||||
et positive que possible. N'hésitez pas à nous contacter pour toute aide supplémentaire !
|
||||
</p>
|
||||
</v-col>
|
||||
<v-spacer></v-spacer>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</div>
|
||||
<FooterLayout></FooterLayout>
|
||||
|
||||
</body>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import DefaultLayout from '@/layouts/DefaultLayout.vue';
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.header-text-size {
|
||||
font-size: 4rem;
|
||||
margin-top: -230px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@media (min-width: 650px) and (max-width: 960px) {
|
||||
.header-text-size {
|
||||
margin-top: -200px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media (min-width: 100px) and (max-width: 649px) {
|
||||
.header-text-size {
|
||||
margin-top: -155px;
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
@@ -1,185 +0,0 @@
|
||||
<template>
|
||||
|
||||
<body style="background-color: #f4f4f4;">
|
||||
<DefaultLayout></DefaultLayout>
|
||||
<div>
|
||||
<v-row class="fluid" style="margin-top: -30px; position: relative; z-index: 0;" hidden-md-and-down>
|
||||
<v-col cols="12" class="pa-0" style="width: 100vw; overflow: hidden;">
|
||||
<v-img class="profile-banner" max-height="375"
|
||||
src="/images/hutopymedia/tospage/headerbackground.png" cover
|
||||
style="box-shadow: 0 4px 6px rgba(0, 0, 0, 0.8);"></v-img>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<v-container style="z-index: 100; position: relative;">
|
||||
<v-row justify="center" align="center" style="color:white; margin-top: -250px;"
|
||||
class="header-text-size">
|
||||
<v-typography class="headline text-center">Conditions générales</v-typography>
|
||||
</v-row>
|
||||
</v-container>
|
||||
|
||||
<v-row class="fluid d-flex justify-center" style="margin-bottom: 25px; margin-top: 25px;">
|
||||
<v-col cols="auto">
|
||||
<router-link :to="{ name: 'home' }">
|
||||
<v-btn flat style="background-color: #f4f4f4;">
|
||||
<v-icon left style="margin-right: 10px;">mdi-home</v-icon> Accueil
|
||||
</v-btn>
|
||||
</router-link>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
|
||||
<v-container style="z-index: 100; position: relative;">
|
||||
<v-row justify="center" align="center">
|
||||
<v-spacer></v-spacer>
|
||||
<v-col cols="7">
|
||||
<p style="font-weight: 600; font-size: 2rem; margin-bottom: 25px;">
|
||||
Conditions Générales d'Utilisation d’Hutopy
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Bienvenue sur Hutopy
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
En accédant à la plateforme Hutopy et en l'utilisant, vous acceptez de vous conformer aux
|
||||
conditions générales d'utilisation suivantes, qui sont conçues pour assurer une expérience
|
||||
sûre, respectueuse et positive pour tous les utilisateurs. Ces conditions s'appliquent à
|
||||
tous les visiteurs, utilisateurs et autres personnes qui accèdent ou utilisent le
|
||||
service.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Utilisation Acceptable
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
1. Contenu : Vous vous engagez à ne pas publier de contenu illégal, diffamatoire,
|
||||
abusif, pornographique, haineux, raciste ou de toute autre nature susceptible de causer
|
||||
du tort. Tout contenu publié reste sous votre responsabilité.
|
||||
<br>
|
||||
<br>
|
||||
2. Comportement : Tout comportement visant à nuire à d'autres utilisateurs, à la
|
||||
plateforme ou à ses opérations est strictement interdit. Cela inclut le piratage, la
|
||||
diffusion de logiciels malveillants et les tentatives d'hameçonnage.
|
||||
<br>
|
||||
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Droits de Propriété Intellectuelle
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Le contenu publié sur Hutopy par les utilisateurs reste la propriété de leurs créateurs
|
||||
respectifs. En publiant du contenu sur Hutopy, vous accordez à la plateforme une licence non
|
||||
exclusive, transférable, libre de droits et mondiale pour utiliser, reproduire, modifier,
|
||||
publier, traduire et distribuer ce contenu dans tout média.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Confidentialité
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
La protection de vos données personnelles est de la plus haute importance pour Hutopy. Votre
|
||||
information est collectée et utilisée conformément à notre politique de confidentialité.
|
||||
</p>
|
||||
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Limitation de Responsabilité
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Hutopy et ses affiliés ne seront pas responsables des dommages indirects, accidentels,
|
||||
spéciaux, consécutifs ou punitifs, y compris sans limitation, la perte de profits, de
|
||||
données ou d'usage, que ce soit dans une action contractuelle, délictuelle y compris la
|
||||
négligence ou autre, découlant de ou en relation avec l'accès ou l'utilisation de la
|
||||
plateforme Hutopy.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Clause de Non-Poursuite
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
En acceptant ces conditions générales d'utilisation, vous convenez qu'en aucun cas Hutopy,
|
||||
ses dirigeants, employés, partenaires, agents, fournisseurs ou affiliés ne pourront être
|
||||
tenus responsables de dommages directs, indirects, accidentels, spéciaux, consécutifs ou
|
||||
exemplaires résultant de votre utilisation de la plateforme Hutopy. Par conséquent, vous
|
||||
renoncez expressément à tout droit de poursuivre Hutopy et ses affiliés pour toute
|
||||
réclamation liée à votre utilisation de la plateforme.
|
||||
</p>
|
||||
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Gestion du Contenu Inapproprié et Sanctions Financières
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Hutopy s'engage à maintenir un environnement sûr et respectueux pour tous ses utilisateurs.
|
||||
Ainsi, tout contenu publié sur la plateforme est sujet à une évaluation de conformité avec
|
||||
nos directives et nos standards éthiques. Dans l'éventualité où le contenu d'un utilisateur
|
||||
est jugé inapproprié, offensant ou en violation avec nos Acceptation des Conditions<br>
|
||||
<br>
|
||||
Votre accès et votre utilisation continue de la plateforme Hutopy constituent votre
|
||||
acceptation des présentes conditions générales et de toutes les modifications futures. Il
|
||||
est de votre responsabilité de vous tenir informé des mises à jour de ces conditions. <br>
|
||||
<br>
|
||||
Nous vous encourageons à utiliser Hutopy de manière responsable et conforme à nos
|
||||
directives, afin de contribuer à une communauté positive et enrichissante pour tous.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Modifications des Conditions
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Hutopy se réserve le droit de modifier ou de remplacer ces conditions à tout moment. Il est
|
||||
de votre responsabilité de revoir régulièrement ces conditions pour vous tenir informé des
|
||||
mises à jour.
|
||||
</p>
|
||||
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Résiliation
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Hutopy peut résilier ou suspendre votre accès à la plateforme immédiatement, sans préavis ni
|
||||
responsabilité, pour quelque raison que ce soit, y compris, sans limitation, si vous violez
|
||||
les conditions.
|
||||
</p>
|
||||
|
||||
<p style="margin-top: 25px; margin-bottom: 25px; font-weight: 600; font-size: 1.3rem;">
|
||||
Loi Applicable
|
||||
</p>
|
||||
<p style="margin-top: 25px; margin-bottom: 25px;">
|
||||
Ces conditions seront régies et interprétées conformément aux lois du pays/juridiction où
|
||||
est basée la plateforme, sans égard à ses conflits de dispositions légales.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</v-col>
|
||||
<v-spacer></v-spacer>
|
||||
</v-row>
|
||||
</v-container>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<FooterLayout></FooterLayout>
|
||||
|
||||
</body>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import DefaultLayout from '@/layouts/DefaultLayout.vue';
|
||||
import FooterLayout from '@/layouts/FooterLayout.vue';
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.header-text-size {
|
||||
font-size: 4rem;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user