diff --git a/backend/utils/oauth.js b/backend/utils/oauth.js index 7da9d852be6492fa719743772456816e85bd6ba8..d8efd65864392913210dba51b3ac130de1cf862a 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 6e9e209bb191e222287d54b469fb620cc4892275..b1b9315684735dda1041c8dbe6533f4f7a2223e6 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 53ae661308445e8acbfd06de6158f7b26d4aa42b..43372b62ab634e349032673e5a514571e0e1b828 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 87e4cfc9094e80e5884dedaff77cd5ce017f0fef..0000000000000000000000000000000000000000 --- 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 111ab5e88ba36ecf781b6fd6a68f9d82517cea2e..609202dd420ccbf1509de77a1004fb8e2f68dd05 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 f00008005729e90398c81ad6897887dda3a672c0..e1e3f456aa1a2420bc5f39617263568a5e5a8d06 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 0000000000000000000000000000000000000000..a5cc17d54f753a1c6652677f711c9327fbb54cc7 --- /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 fdb525e258974be30998e646bdd8de31d56685eb..5b208b4bfedc44e3288ab6890728f72470898a6b 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 0000000000000000000000000000000000000000..18d9853c8662f9fe4d58b14c2929c66dca3a9f1d --- /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' +