Commit e5544326 authored by Florent Chehab's avatar Florent Chehab
Browse files

tweaked(frontend) & CGU/RGPD

Frontend:
* Changed main app template to have previous exchange button write on top,
* Moved my information for "information" to settings,
* Tweaked map ratio
* Don't render login indicator for notifier
* Removed missing picture icon from cover picture

CGU/RGPD:
* Slight clarification and uniformization
parent 58094660
Pipeline #42884 passed with stages
in 3 minutes and 51 seconds
...@@ -54,10 +54,10 @@ Toutefois, vous autorisez le traitement de ce contenu (tant qu'il est accessible ...@@ -54,10 +54,10 @@ Toutefois, vous autorisez le traitement de ce contenu (tant qu'il est accessible
### Cadre d'utilisation ### Cadre d'utilisation
Sauf mention contraire toute donnée transférée sur la plateforme REX-DRI est sous licence **REX-DRI-BY**. Sauf mention contraire toute donnée transférée sur la plateforme REX-DRI est sous licence **REX-DRIBY**.
Pour information, sont notamment concernées par la licence REX-DRI-PRIVATE les listes privées des utilisateurs, et la configuration utilisateur. Pour information, sont concernées par la licence REX-DRIPRIVATE les listes privées des utilisateurs et la configuration utilisateur.
## Données personnelles ## Données personnelles
......
...@@ -17,7 +17,7 @@ La base légale du traitement est le **consentement** (article 6 du règlement e ...@@ -17,7 +17,7 @@ La base légale du traitement est le **consentement** (article 6 du règlement e
2. Si vous les renseignez dans l'application, une adresse mail secondaire et votre pseudo, 2. Si vous les renseignez dans l'application, une adresse mail secondaire et votre pseudo,
3. Si vous en donnez l'autorisation sur l'ENT, les cours que vous avez suivis à l'étranger, associés à votre login UTC, 3. Si vous en donnez l'autorisation sur l'ENT, les cours que vous avez suivis à l'étranger, associés à votre login UTC,
4. La date de votre dernière connexion, 4. La date de votre dernière connexion,
5. Les données sous licence REX-DRI private qui contiennent des informations à caractère personnel. 5. Les données sous licence REX-DRI private (les listes privées que vous avez créées et votre configuration utilisateur).
6. Les traces de toutes les requêtes effectuées sur la plateforme. 6. Les traces de toutes les requêtes effectuées sur la plateforme.
......
...@@ -16,9 +16,14 @@ import {classNames} from "../../utils/classNames"; ...@@ -16,9 +16,14 @@ import {classNames} from "../../utils/classNames";
import Logo from "./Logo"; import Logo from "./Logo";
import BaseTemplate from "./BaseTemplate"; import BaseTemplate from "./BaseTemplate";
const styles = theme => ({ const styles = theme => {
const onDesktops = "@media (min-width:1375px)";
const onMobiles = "@media (max-width:1375px)";
return {
menuButton: { menuButton: {
[theme.breakpoints.up("lg")]: { [onDesktops]: {
display: "none", display: "none",
}, },
marginLeft: -12, marginLeft: -12,
...@@ -30,10 +35,10 @@ const styles = theme => ({ ...@@ -30,10 +35,10 @@ const styles = theme => ({
mainMenuButton: { mainMenuButton: {
fontSize: "1.2rem", fontSize: "1.2rem",
fontWeight: 700, fontWeight: 700,
[theme.breakpoints.down("md")]: { [onMobiles]: {
display: "none" display: "none"
}, },
[theme.breakpoints.up("lg")]: { [onDesktops]: {
marginLeft: theme.spacing(1), marginLeft: theme.spacing(1),
marginRight: theme.spacing(1), marginRight: theme.spacing(1),
} }
...@@ -41,7 +46,7 @@ const styles = theme => ({ ...@@ -41,7 +46,7 @@ const styles = theme => ({
mainMenuButtonIcon: { mainMenuButtonIcon: {
marginLeft: theme.spacing(1), marginLeft: theme.spacing(1),
fontSize: "1.2em", fontSize: "1.2em",
[theme.breakpoints.down("md")]: { [onMobiles]: {
display: "none" display: "none"
} }
}, },
...@@ -63,12 +68,12 @@ const styles = theme => ({ ...@@ -63,12 +68,12 @@ const styles = theme => ({
boxShadow: theme.shadows[1], boxShadow: theme.shadows[1],
}, },
desktopOnly: { desktopOnly: {
[theme.breakpoints.down("md")]: { [onMobiles]: {
display: "none" display: "none"
} }
}, },
mobileOnly: { mobileOnly: {
[theme.breakpoints.up("lg")]: { [onDesktops]: {
display: "none", display: "none",
}, },
}, },
...@@ -100,7 +105,8 @@ const styles = theme => ({ ...@@ -100,7 +105,8 @@ const styles = theme => ({
filler: { filler: {
width: "100%", width: "100%",
}, },
}); };
};
class MainAppFrame extends React.Component { class MainAppFrame extends React.Component {
state = { state = {
......
...@@ -19,7 +19,14 @@ import {RequestParams} from "../../redux/api/RequestParams"; ...@@ -19,7 +19,14 @@ import {RequestParams} from "../../redux/api/RequestParams";
*/ */
class NotifierImportantInformation extends CustomComponentForAPI { class NotifierImportantInformation extends CustomComponentForAPI {
customRender() { /**
* Use standard render method to make no loading indicator is displayed.
*/
render() {
if (this.checkPropsFailed() || !this.allApiDataIsReady()) {
return <></>;
}
const informationList = this.getLatestReadData("information"); const informationList = this.getLatestReadData("information");
return ( return (
......
...@@ -11,19 +11,17 @@ function item(label, route, Icon, hardRedirect = false) { ...@@ -11,19 +11,17 @@ function item(label, route, Icon, hardRedirect = false) {
export const mainMenuItems = [ export const mainMenuItems = [
item("Carte", APP_ROUTES.map, MapIcon), item("Carte", APP_ROUTES.map, MapIcon),
item("Université", APP_ROUTES.universityPreviousOne, LocationCityIcon),
item("Recherche", APP_ROUTES.search, SearchIcon), item("Recherche", APP_ROUTES.search, SearchIcon),
item("Listes", APP_ROUTES.lists, AssignmentIcon),
]; ];
export const mainMenuHome = item("Accueil", APP_ROUTES.base, HomeIcon); export const mainMenuHome = item("Accueil", APP_ROUTES.base, HomeIcon);
export const secondaryMenuItems = [ export const secondaryMenuItems = [
item("Listes", APP_ROUTES.lists, AssignmentIcon), item("Mes échanges", APP_ROUTES.myExchanges, LocationCityIcon),
]; ];
export const infoMenuItems = [ export const infoMenuItems = [
item("Mes informations", APP_ROUTES.userCurrent, null),
item("Mes échanges", APP_ROUTES.myExchanges, null),
// item("Mes fichiers", APP_ROUTES.userFilesCurrent, null), // WARNING BETA // item("Mes fichiers", APP_ROUTES.userFilesCurrent, null), // WARNING BETA
item("Le projet REX-DRI", APP_ROUTES.aboutProject, null), item("Le projet REX-DRI", APP_ROUTES.aboutProject, null),
item("Conditions d'utilisations", APP_ROUTES.aboutCgu, null), item("Conditions d'utilisations", APP_ROUTES.aboutCgu, null),
...@@ -31,6 +29,7 @@ export const infoMenuItems = [ ...@@ -31,6 +29,7 @@ export const infoMenuItems = [
]; ];
export const settingsMenuItems = [ export const settingsMenuItems = [
item("Mes informations", APP_ROUTES.userCurrent, null),
item("Personnalisation du thème", APP_ROUTES.themeSettings, null), item("Personnalisation du thème", APP_ROUTES.themeSettings, null),
item("Se déconnecter", APP_ROUTES.logout, null, true), item("Se déconnecter", APP_ROUTES.logout, null, true),
]; ];
import React, {Component} from "react"; import React, {Component} from "react";
import AwesomeSlider from "react-awesome-slider";
import styles from "./CoverGallery.scss"; import styles from "./CoverGallery.scss";
import withStyles from "@material-ui/core/styles/withStyles"; import withStyles from "@material-ui/core/styles/withStyles";
import {compose} from "recompose"; import {compose} from "recompose";
import PropTypes from "prop-types"; import PropTypes from "prop-types";
import PhotoSizeSelectActualIcon from "@material-ui/icons/PhotoSizeSelectActual";
import shuffle from "lodash/shuffle"; import shuffle from "lodash/shuffle";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import {AwesomeSlider} from "react-awesome-slider";
/** /**
* Component to display a cover image gallery with custom styling done in the ./CoverGallery.scss file * Component to display a cover image gallery with custom styling done in the ./CoverGallery.scss file
...@@ -23,7 +22,7 @@ class CoverGallery extends Component { ...@@ -23,7 +22,7 @@ class CoverGallery extends Component {
{ {
picturesSrc.length === 0 ? picturesSrc.length === 0 ?
<div className={classes.missingPictureDiv}> <div className={classes.missingPictureDiv}>
<PhotoSizeSelectActualIcon className={classes.missingPictureIcon}/> {/*<PhotoSizeSelectActualIcon className={classes.missingPictureIcon}/>*/}
</div> </div>
: :
<AwesomeSlider cssModule={styles}> <AwesomeSlider cssModule={styles}>
......
...@@ -103,14 +103,12 @@ class BaseMap extends Component { ...@@ -103,14 +103,12 @@ class BaseMap extends Component {
} }
const {popup} = this.state, const {popup} = this.state,
{campuses} = this.props; {campuses, classes} = this.props;
return ( return (
<Map style={`/map-server/styles/${style}/style.json`} <Map style={`/map-server/styles/${style}/style.json`}
containerStyle={{ className={classes.mapContainer}
height: "60vh",
width: "100%"
}}
zoom={mapStatus.zoom} zoom={mapStatus.zoom}
center={mapStatus.center} center={mapStatus.center}
onMoveEnd={(map) => this.saveStatus(map)} onMoveEnd={(map) => this.saveStatus(map)}
...@@ -143,7 +141,18 @@ BaseMap.propTypes = { ...@@ -143,7 +141,18 @@ BaseMap.propTypes = {
}; };
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
const styles = theme => ({}); const styles = theme => ({
mapContainer: {
width: "100%",
[theme.breakpoints.up("lg")]: {
height: "45vh",
minHeight: 600
},
[theme.breakpoints.down("md")]: {
height: "60vh",
}
}
});
export default compose( export default compose(
withStyles(styles, {withTheme: true}), withStyles(styles, {withTheme: true}),
......
...@@ -26,7 +26,7 @@ function ColorDemo(props) { ...@@ -26,7 +26,7 @@ function ColorDemo(props) {
<MainAppFrame> <MainAppFrame>
<Paper style={theme.myPaper}> <Paper style={theme.myPaper}>
<Typography variant="h3"> <Typography variant="h3">
Bienvenue sur <em><b>REX-DRI</b></em> ! Bienvenue sur <em><b>REX-DRI</b></em>
</Typography> </Typography>
<Markdown source={source}/> <Markdown source={source}/>
</Paper> </Paper>
......
...@@ -15,8 +15,6 @@ import FormControl from "@material-ui/core/FormControl"; ...@@ -15,8 +15,6 @@ import FormControl from "@material-ui/core/FormControl";
import withStyles from "@material-ui/core/styles/withStyles"; import withStyles from "@material-ui/core/styles/withStyles";
import uuid from "uuid/v4"; import uuid from "uuid/v4";
import Typography from "@material-ui/core/Typography"; import Typography from "@material-ui/core/Typography";
import CustomLink from "../../common/CustomLink";
import {APP_ROUTES} from "../../../config/appRoutes";
const undefinedVal = uuid(); const undefinedVal = uuid();
...@@ -70,12 +68,6 @@ class PreviousExchangesTab extends CustomComponentForAPI { ...@@ -70,12 +68,6 @@ class PreviousExchangesTab extends CustomComponentForAPI {
if (displayMinorSelect) minors = univMajorMinors.find(el => el.major === this.state.major).minors; if (displayMinorSelect) minors = univMajorMinors.find(el => el.major === this.state.major).minors;
return ( return (
<> <>
<div style={{textAlign: "center"}}>
<Typography variant={"caption"}>
Afin d'éditer vos avis sur vos échanges, rendez-vous directement sur <CustomLink
to={APP_ROUTES.myExchanges}>cette page</CustomLink>.
</Typography>
</div>
<form autoComplete="off" className={classes.root}> <form autoComplete="off" className={classes.root}>
<FormControl className={classes.formControl}> <FormControl className={classes.formControl}>
<InputLabel htmlFor="major-select">Branche</InputLabel> <InputLabel htmlFor="major-select">Branche</InputLabel>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment