From 6958346e8dcd7030d170f37d1693e7bc02777e8e Mon Sep 17 00:00:00 2001 From: edsheebran <damien.armillon@student-cs.fr> Date: Tue, 19 Nov 2019 14:47:56 +0100 Subject: [PATCH] Add footer --- backend/utils/oauth.js | 1 - front/src/App.js | 10 ++-- .../{view/AdminPage => utils}/FormToucan.js | 3 +- front/src/view/AdminPage/AdminPage.js | 21 ------- front/src/view/AllToucanPage/AllToucanPage.js | 57 +++++++++++-------- front/src/view/Login.js | 2 +- front/src/view/PageFooter.js | 12 ++++ front/src/view/PageHeader.js | 5 +- front/src/view/index.js | 4 ++ 9 files changed, 56 insertions(+), 59 deletions(-) rename front/src/{view/AdminPage => utils}/FormToucan.js (98%) delete mode 100644 front/src/view/AdminPage/AdminPage.js create mode 100644 front/src/view/PageFooter.js create mode 100644 front/src/view/index.js diff --git a/backend/utils/oauth.js b/backend/utils/oauth.js index 7da9d85..d8efd65 100644 --- a/backend/utils/oauth.js +++ b/backend/utils/oauth.js @@ -5,7 +5,6 @@ const env = require("../.env"); const oauth = env.oauth; const redirectUri = `${env.backURL}/oauth/callback`; -console.log(redirectUri); const getURI = (redirectUri,state) => { return `${oauth.authorizationURI}/?redirect_uri=${redirectUri}&client_id=${oauth.clientId}&response_type=code&state=${state}&scope=default`; diff --git a/front/src/App.js b/front/src/App.js index 6e9e209..b1b9315 100644 --- a/front/src/App.js +++ b/front/src/App.js @@ -1,21 +1,19 @@ import React from 'react'; import { BrowserRouter as Router, Route} from 'react-router-dom'; import './App.css'; -import AdminPage from './view/AdminPage/AdminPage'; -import AllToucanPage from './view/AllToucanPage/AllToucanPage'; -import PageHeader from './view/PageHeader' +import {PageFooter, PageHeader, AllToucanPage} from './view/index' import Login from './view/Login'; -import env from './.env'; import isLogged from './utils/Oauth'; +import env from './.env' function App() { const logged = isLogged(); return ( <Router > <PageHeader isLogged={logged} /> - <Route exact path='/admin' render={()=>logged ? <AdminPage/> : window.location=`${env.backURL}/oauth/login`}/> <Route exact path='/login/:token' component={Login} /> - <AllToucanPage isAdmin={logged}/> + <Route exact path='/' render={()=><AllToucanPage isAdmin={logged} backURL={env.backURL}/>}/> + <PageFooter/> </Router> ); } diff --git a/front/src/view/AdminPage/FormToucan.js b/front/src/utils/FormToucan.js similarity index 98% rename from front/src/view/AdminPage/FormToucan.js rename to front/src/utils/FormToucan.js index 53ae661..43372b6 100644 --- a/front/src/view/AdminPage/FormToucan.js +++ b/front/src/utils/FormToucan.js @@ -1,6 +1,5 @@ import React, {Component} from 'react' import {Form, Message} from 'semantic-ui-react' -import env from '../../.env' class FormToucan extends Component { constructor(props) { @@ -60,7 +59,7 @@ class FormToucan extends Component { form.append("title",title) form.append("toucan",toucan) form.append("cover",cover) - fetch(`${env.backURL}/toucan/toucans`,{ + fetch(`${this.props.backURL}/toucan/toucans`,{ method: 'POST', headers:{token: localStorage.getItem("token")}, body: form diff --git a/front/src/view/AdminPage/AdminPage.js b/front/src/view/AdminPage/AdminPage.js deleted file mode 100644 index 87e4cfc..0000000 --- a/front/src/view/AdminPage/AdminPage.js +++ /dev/null @@ -1,21 +0,0 @@ -import React, {Component} from 'react'; -import {Segment} from 'semantic-ui-react'; -//import ToucanTable from './showToucan/ToucanTable'; -import FormToucan from './FormToucan'; -//import LogoutButton from '../LogoutButton'; - - -class MainPage extends Component { - - render(){ - return ( - <Segment style={{margin:"3em",padding:"2em"}}> - <h2 style={{textAlign:"center"}}>Rajout de Toucan</h2> - <FormToucan /> - </Segment> - ); - } - -} - -export default MainPage; diff --git a/front/src/view/AllToucanPage/AllToucanPage.js b/front/src/view/AllToucanPage/AllToucanPage.js index 111ab5e..609202d 100644 --- a/front/src/view/AllToucanPage/AllToucanPage.js +++ b/front/src/view/AllToucanPage/AllToucanPage.js @@ -1,8 +1,8 @@ import React, {useState, useEffect} from 'react' import {Card, Segment} from 'semantic-ui-react' import SelectYear from '../../utils/yearSelector' +import FormToucan from '../../utils//FormToucan.js' import ToucanCard from './ToucanCard' -import env from '../../.env' const date = new Date() const beginYear = 1900 + (date.getMonth() < 8 ? date.getYear()-1 : date.getYear()); @@ -13,7 +13,7 @@ function AllToucan(props){ const [after, setAfter] = useState((new Date(beginYear,8,1)).getTime()); useEffect(()=>{ - fetch(`${env.backURL}/toucan/toucans?before=${before}&after=${after}`) + fetch(`${props.backURL}/toucan/toucans?before=${before}&after=${after}`) .then(result => { return result.json() }) @@ -21,7 +21,7 @@ function AllToucan(props){ setToucans(toucans) }) .catch(err => console.log(err)) - },[before,after] + },[before,after,props.backURL] ) function updateFrame(value){ @@ -30,29 +30,36 @@ function AllToucan(props){ setBefore(before) setAfter(after) } - + const formNewToucan = props.isAdmin ? + <Segment style={{margin:"3em",padding:"2em"}}> + <h2 style={{textAlign:"center"}}>Rajout de Toucan</h2> + <FormToucan backURL={props.backURL}/> + </Segment> : + null return ( - <Segment style={{textAlign:"center", margin:"3em",padding:"2em"}} > - - <SelectYear - style={{marginBottom:"2em"}} - beginYear={beginYear} - updateFrame = {updateFrame} - /> - <Card.Group centered > - {toucans.map( toucan => { - return <ToucanCard - image={`${env.backURL}/toucan/img/${toucan["_id"]}`} - link={`${env.backURL}/toucan/pdf/${toucan["_id"]}.pdf`} - header={toucan.title} - toucanId={toucan._id} - isAdmin={props.isAdmin} - date={(new Date(toucan.date).toLocaleDateString())} - key={toucan._id} - /> - })} - </Card.Group> - </Segment> + <div> + {formNewToucan} + <Segment style={{textAlign:"center", margin:"3em",padding:"2em"}} > + <SelectYear + style={{marginBottom:"2em"}} + beginYear={beginYear} + updateFrame = {updateFrame} + /> + <Card.Group centered > + {toucans.map( toucan => { + return <ToucanCard + image={`${props.backURL}/toucan/img/${toucan["_id"]}`} + link={`${props.backURL}/toucan/pdf/${toucan["_id"]}.pdf`} + header={toucan.title} + toucanId={toucan._id} + isAdmin={props.isAdmin} + date={(new Date(toucan.date).toLocaleDateString())} + key={toucan._id} + /> + })} + </Card.Group> + </Segment> + </div> )} diff --git a/front/src/view/Login.js b/front/src/view/Login.js index f000080..e1e3f45 100644 --- a/front/src/view/Login.js +++ b/front/src/view/Login.js @@ -5,7 +5,7 @@ class Login extends Component { componentDidMount(){ localStorage.setItem("token",this.props.match.params.token); console.log(localStorage.getItem("token")); - window.location = '/admin'; + window.location = '/'; } diff --git a/front/src/view/PageFooter.js b/front/src/view/PageFooter.js new file mode 100644 index 0000000..a5cc17d --- /dev/null +++ b/front/src/view/PageFooter.js @@ -0,0 +1,12 @@ +import React from 'react' + + +function PageFooter(props){ + return( + <div> + <p style={{textAlign:"right", color:"grey"}}>Site fait par Damien Armillon (alias Edsheebran) pour le Toucan Déchainé</p> + </div> + ) +} + +export default PageFooter \ No newline at end of file diff --git a/front/src/view/PageHeader.js b/front/src/view/PageHeader.js index fdb525e..5b208b4 100644 --- a/front/src/view/PageHeader.js +++ b/front/src/view/PageHeader.js @@ -3,6 +3,7 @@ import {Image, Button} from 'semantic-ui-react' import LogoutButton from '../utils/LogoutButton' import {Link} from 'react-router-dom' import logo from '../image/logo.png' +import env from './../.env' @@ -13,9 +14,7 @@ const PageHeader = (props) => { <div class="desktopItem" style={{textAlign:"center"}}> {console.log(props.isLogged)} <Image src={logo} alt="Logo" href="/" style={{ width:'40%'}} /> {props.isLogged ? <LogoutButton style={{position:"absolute",top:'2em' ,right:"2em"}}/>: - <Link to="/admin" style={{position:"absolute",top:'2em' ,right:"2em"}} > - <Button icon="male" content="Espace admin"/> - </Link> + <Button icon="male" content="Espace admin" style={{position:"absolute",top:'2em' ,right:"2em"}} onClick={() =>window.location=`${env.backURL}/oauth/login`}/> } </div>, diff --git a/front/src/view/index.js b/front/src/view/index.js new file mode 100644 index 0000000..18d9853 --- /dev/null +++ b/front/src/view/index.js @@ -0,0 +1,4 @@ +export {default as PageFooter} from './PageFooter' +export {default as PageHeader} from './PageHeader' +export {default as AllToucanPage} from './AllToucanPage/AllToucanPage' + -- GitLab