ent en cours
This commit is contained in:
@@ -5,6 +5,7 @@ import { ReactKeycloakProvider } from '@react-keycloak/web'
|
|||||||
import keycloak from './keycloak'
|
import keycloak from './keycloak'
|
||||||
import Login from './components/login';
|
import Login from './components/login';
|
||||||
import { LocalDataProvider } from './provider/LocalDataProvider';
|
import { LocalDataProvider } from './provider/LocalDataProvider';
|
||||||
|
import ENT from './components/ent';
|
||||||
|
|
||||||
|
|
||||||
const keycloakInitOptions = {
|
const keycloakInitOptions = {
|
||||||
@@ -14,7 +15,7 @@ const keycloakInitOptions = {
|
|||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
return (
|
return (
|
||||||
<ReactKeycloakProvider authClient={keycloak} initOptions={keycloakInitOptions}>
|
<ReactKeycloakProvider authClient={keycloak} /*initOptions={keycloakInitOptions}*/>
|
||||||
<LocalDataProvider>
|
<LocalDataProvider>
|
||||||
<div className="App">
|
<div className="App">
|
||||||
<header className="App-header">
|
<header className="App-header">
|
||||||
@@ -31,6 +32,7 @@ function App() {
|
|||||||
Learn React
|
Learn React
|
||||||
</a>
|
</a>
|
||||||
<Login/>
|
<Login/>
|
||||||
|
<ENT/>
|
||||||
</header>
|
</header>
|
||||||
</div>
|
</div>
|
||||||
</LocalDataProvider>
|
</LocalDataProvider>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ export type Groupe = "Entrainement" | "Competition" | "Loisir";
|
|||||||
export class User{
|
export class User{
|
||||||
id!: number;
|
id!: number;
|
||||||
nom!: String;
|
nom!: String;
|
||||||
session!: Session[]; //nb: Admin liaison non symétrique /!\
|
sessions!: Session[]; //nb: Admin liaison non symétrique /!\
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Admin extends User{
|
export class Admin extends User{
|
||||||
|
|||||||
5
front_end/src/components/ent.css
Normal file
5
front_end/src/components/ent.css
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
.ent_colonne {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(7, 1fr);
|
||||||
|
gap: 16px;
|
||||||
|
}
|
||||||
@@ -1,15 +1,66 @@
|
|||||||
import { useState } from "react"
|
import { useState } from "react"
|
||||||
import { User } from "../classes"
|
import { Session, User } from "../classes"
|
||||||
import { useLocalData } from "../context/useLocalData"
|
import { useLocalData } from "../context/useLocalData"
|
||||||
|
import './ent.css';
|
||||||
|
//import {updateSessionsOfUser } from "../requetes";
|
||||||
|
|
||||||
export const ENT =() =>{
|
export const ENT =() =>{
|
||||||
const {user} = useLocalData()
|
const {user} = useLocalData()
|
||||||
|
const [sessions, setSessions] = useState<Session[]>([])
|
||||||
|
const [week,setWeek] = useState<Date>(new Date());
|
||||||
|
|
||||||
|
|
||||||
|
function updateSessions(){
|
||||||
|
var newWeek: Session[] = []
|
||||||
|
user.sessions.forEach(session => {
|
||||||
|
newWeek.push(session);
|
||||||
|
});
|
||||||
|
setSessions(newWeek);
|
||||||
|
}
|
||||||
|
|
||||||
|
function changeWeek(){
|
||||||
|
updateSessions()
|
||||||
|
setWeek(new Date());
|
||||||
|
}
|
||||||
|
|
||||||
|
async function updateWeek(){
|
||||||
|
//TODO updateSession
|
||||||
|
//await updateSessionsOfUser(user,null,null);
|
||||||
|
var newWeek: Session[] = []
|
||||||
|
user.sessions.forEach(session => {
|
||||||
|
newWeek.push(session);
|
||||||
|
});
|
||||||
|
setSessions(newWeek);
|
||||||
|
}
|
||||||
|
|
||||||
return(
|
return(
|
||||||
|
<div className="ent">
|
||||||
|
<div className="ent_colonne">
|
||||||
<div>
|
<div>
|
||||||
|
Lundi
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
Mardi
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
Mercredi
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
Jeudi
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
Vendredi
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
Samedi
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
Dimanche
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { useContext } from 'react'
|
import { useContext } from 'react'
|
||||||
import { LocalDataContext } from './LocalDataContext2'
|
import { LocalDataContext } from './LocalDataContext'
|
||||||
|
|
||||||
export const useLocalData = () => {
|
export const useLocalData = () => {
|
||||||
const context = useContext(LocalDataContext)
|
const context = useContext(LocalDataContext)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { useState } from 'react'
|
import { useState } from 'react'
|
||||||
import { Session, User } from '../classes'
|
import { Session, User } from '../classes'
|
||||||
import { LocalDataContext } from '../context/LocalDataContext2'
|
import { LocalDataContext } from '../context/LocalDataContext'
|
||||||
|
|
||||||
export const LocalDataProvider = ({ children }: { children: React.ReactNode }) => {
|
export const LocalDataProvider = ({ children }: { children: React.ReactNode }) => {
|
||||||
const [user, setUser] = useState<User>(new User())
|
const [user, setUser] = useState<User>(new User())
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { Activite, Athlete, Coach, Session, User } from "./classes";
|
import { Activite, Athlete, Coach, Session, User } from "./classes";
|
||||||
import { useKeycloak } from '@react-keycloak/web'
|
/*import { useKeycloak } from '@react-keycloak/web'
|
||||||
|
|
||||||
const { keycloak } = useKeycloak()
|
const { keycloak } = useKeycloak()
|
||||||
|
|
||||||
@@ -7,7 +7,7 @@ const useAuthHeader = () => {
|
|||||||
return keycloak?.token
|
return keycloak?.token
|
||||||
? { Authorization: `Bearer ${keycloak.token}` }
|
? { Authorization: `Bearer ${keycloak.token}` }
|
||||||
: {}
|
: {}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
//UPDATE /////////////////////////////////////////////////////////
|
//UPDATE /////////////////////////////////////////////////////////
|
||||||
|
|
||||||
@@ -16,55 +16,64 @@ const useAuthHeader = () => {
|
|||||||
/*
|
/*
|
||||||
retourne l'utilisateur lié à l'identifiant keyloack
|
retourne l'utilisateur lié à l'identifiant keyloack
|
||||||
*/
|
*/
|
||||||
export function getUser(id:number){
|
export async function getUser(id:number): Promise<boolean>{
|
||||||
//keycloak.id;
|
//keycloak.id;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
retourne toutes les Session dont l'user est inscrit
|
retourne toutes les Session dont l'user est inscrit
|
||||||
*/
|
*/
|
||||||
export function updateSessionsOfUser(user:Coach|Athlete, min: Date, max: Date){
|
export async function updateSessionsOfUser(user:Coach|Athlete, min: Date|null, max: Date|null){
|
||||||
//TODO
|
//TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
export function updateActivitiesOfSession(session:Session){
|
export async function updateActivitiesOfSession(session:Session){
|
||||||
//TODO
|
//TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function subscribeSession(user:User, session:Session):Promise<boolean>{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function unsubscribeSession(user:User, session:Session):Promise<boolean>{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// ADMIN :
|
// ADMIN :
|
||||||
|
|
||||||
export function updateAllSession(min: Date, max: Date){
|
export async function updateAllSession(min: Date, max: Date){
|
||||||
//TODO
|
//TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
export function updateAllUser(){
|
export async function updateAllUser(){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// POST /////////////////////////////////////////////////////////
|
// POST /////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// COACH ADMIN
|
// COACH ADMIN
|
||||||
export function postSession(session: Session){
|
export async function postSession(session: Session){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function postActivity(session: Session, activity: Activite){
|
export async function postActivity(session: Session, activity: Activite){
|
||||||
//post nouvelle activitée
|
//post nouvelle activitée
|
||||||
|
|
||||||
//associer la nouvelle activité à la session
|
//associer la nouvelle activité à la session
|
||||||
}
|
}
|
||||||
|
|
||||||
export function postUser(user: User){
|
export async function postUser(user: User):Promise<boolean>{
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// SET /////////////////////////////////////////////////////////
|
// SET /////////////////////////////////////////////////////////
|
||||||
|
|
||||||
//ADMIN
|
//ADMIN
|
||||||
export function setUserName(user: User, name: string){
|
export async function setUserName(user: User, name: string){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//COACH
|
//COACH
|
||||||
export function setSessionCreneau(session: Session, date:Date){
|
export async function setSessionCreneau(session: Session, date:Date){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user