From 1ec7bfc4b0e8d75ba9fcf4df12d2dee634a66df1 Mon Sep 17 00:00:00 2001 From: y72wvh Date: Wed, 25 Oct 2023 15:41:51 +0200 Subject: [PATCH 1/5] fix: bug upload files --- src/components/maj/bilan.js | 2 +- src/components/maj/maj.js | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/components/maj/bilan.js b/src/components/maj/bilan.js index 2c7ef0a..9018c42 100644 --- a/src/components/maj/bilan.js +++ b/src/components/maj/bilan.js @@ -7,7 +7,7 @@ export default function Bilan(props) {

Liste d'identifiants en erreur :

{props.data.listError.map(item => ( - + ))}
diff --git a/src/components/maj/maj.js b/src/components/maj/maj.js index 7e6d724..31ea29b 100644 --- a/src/components/maj/maj.js +++ b/src/components/maj/maj.js @@ -9,7 +9,8 @@ import { idContact, idUe, libellesAutorises, - longueurIdContact, + longueurIdContactMin, + longueurIdContactMax, longueurMinIdUe, nbChamps, pathEnregistrerInfoSuiviGestion, @@ -51,7 +52,8 @@ export default class Maj extends Component { return ( dataJson.data.filter( (item) => - item[idContact].length !== longueurIdContact || + item[idContact].length > longueurIdContactMax || + item[idContact].length < longueurIdContactMin || !(item[statut] in reponseAttenduDansCSV) ).length === 0 ); @@ -76,7 +78,8 @@ export default class Maj extends Component { dataJson.data.filter( (item) => item[idUe].length < longueurMinIdUe || - item[idContact].length !== longueurIdContact || + item[idContact].length > longueurIdContactMax || + item[idContact].length < longueurIdContactMin || !(item[statut] in reponseAttenduDansCSV) ).length === 0 ); @@ -192,6 +195,12 @@ export default class Maj extends Component { const { label } = this.props; return (
+ Le fichier doit être au format .csv avec la virgule comme séparateur. Il + doit contenir les trois variables suivantes : l’identifiant internet + indiqué dans le courrier de l'enquêté (idcontact), l’identifiant + échantillon (idue) et l’information à enregistrerpropre à l’unité + enquêtée (statut). + {this.validDate() === "OPEN" && ( Date: Wed, 25 Oct 2023 15:42:18 +0200 Subject: [PATCH 2/5] fix: readonly url --- package.json | 2 +- src/components/consultation/consultation.js | 22 ++++++++++++--------- src/utils/properties.js | 10 +++++----- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 86d882f..ea976cb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "front-moog", - "version": "2.2.1", + "version": "2.2.2", "private": true, "dependencies": { "@vtex/react-csv-parse": "^3.0.2", diff --git a/src/components/consultation/consultation.js b/src/components/consultation/consultation.js index be950d7..6cc1576 100644 --- a/src/components/consultation/consultation.js +++ b/src/components/consultation/consultation.js @@ -12,12 +12,11 @@ import { boutonSupprimerCondition, pathConsultationFiltre, pathContact, - pathEndSiteMiroir, + pathReadonly, pathEnregistrerInfoSuiviGestion, pathFinalCampagne, pathInfoSuiviGestions, pathMail, - pathStartSiteMiroir, pathTransmissionCampagne, pathUniteEnquete, } from "../../utils/properties"; @@ -131,13 +130,18 @@ const Consultation = ({ roles, linkQuestionnaire, urlColemanPromotion }) => { }, [motFiltre, activePage]); const linkSiteMirroir = (obj) => { - const { - campagne: { idCampagne }, - idUe, - } = obj; - window.open( - `${linkQuestionnaire}${pathStartSiteMiroir}${idCampagne}${pathEndSiteMiroir}${idUe}` - ); + const { + campagne: { idCampagne }, + idUe, + } = obj; + myAxios() + .get(`${pathReadonly}${idCampagne}/survey-unit/${idUe}`) + .then((res) => { + window.open(res.data); + }) + .catch((error) => { + console.log(error); + }); }; const appel = (history) => { diff --git a/src/utils/properties.js b/src/utils/properties.js index 19888b7..a3c84b7 100644 --- a/src/utils/properties.js +++ b/src/utils/properties.js @@ -51,13 +51,11 @@ export const libellesAutorises = [ /* longueur de l'identifiant idUe */ export const longueurMinIdUe = 1; /* longueur de l'identifiant du contact */ -export const longueurIdContact = 7; +export const longueurIdContactMin = 7; +export const longueurIdContactMax = 8; /* Nombre de colonnes dans le fichier à importer */ -export const nbChamps = [2, 3, 4]; +export const nbChamps = [3, 4, 5]; -/* path pour construire l'url du site miroir Coleman */ -export const pathStartSiteMiroir = "/readonly/questionnaire/"; -export const pathEndSiteMiroir = "/unite-enquetee/"; /* path pour recherche */ export const pathConsultationFiltre = "/survey-units?filter1="; @@ -88,3 +86,5 @@ export const pathTransmissionCampagne = "/campaigns/"; export const pathContact = "/contact"; /* path mail */ export const pathMail = "/mail"; +/*path readOnly*/ +export const pathReadonly = "/readonly/campaigns/"; From 439787c58efed7f6b87cf907ad7eba49847817bf Mon Sep 17 00:00:00 2001 From: Eric Thuaud <58465319+EricThuaud@users.noreply.github.com> Date: Tue, 14 Nov 2023 17:16:55 +0100 Subject: [PATCH 3/5] Add logout button (#26) * chore - modify scripts for local exec with node above 16 * fix - finalize PR * fix - remove build options script --- package.json | 2 +- src/actions/keycloak.js | 17 +++- src/components/home/component.js | 142 +++++++++++++++++++++---------- 3 files changed, 109 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index ea976cb..757ebc0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "front-moog", - "version": "2.2.2", + "version": "2.2.3", "private": true, "dependencies": { "@vtex/react-csv-parse": "^3.0.2", diff --git a/src/actions/keycloak.js b/src/actions/keycloak.js index 9dbd2a8..c072448 100644 --- a/src/actions/keycloak.js +++ b/src/actions/keycloak.js @@ -2,8 +2,17 @@ import { SAVE_KEYCLOAK_TOKEN, REFRESH_KEYCLOAK_TOKEN, SAVE_NO_AUTH_LOGIN, -} from './constants/keycloak'; +} from "./constants/keycloak"; -export const saveKeycloakToken = kc => ({ type: SAVE_KEYCLOAK_TOKEN, payload: kc }); -export const saveNoAuthLogin = () => ({ type: SAVE_NO_AUTH_LOGIN, payload: null }); -export const refreshKeycloakToken = kc => ({ type: REFRESH_KEYCLOAK_TOKEN, payload: kc }); +export const saveKeycloakToken = (kc) => ({ + type: SAVE_KEYCLOAK_TOKEN, + payload: kc, +}); +export const saveNoAuthLogin = () => ({ + type: SAVE_NO_AUTH_LOGIN, + payload: null, +}); +export const refreshKeycloakToken = (kc) => ({ + type: REFRESH_KEYCLOAK_TOKEN, + payload: kc, +}); diff --git a/src/components/home/component.js b/src/components/home/component.js index a5b5d23..a1aba1a 100644 --- a/src/components/home/component.js +++ b/src/components/home/component.js @@ -1,24 +1,25 @@ -import button1 from 'img/button1.jpg'; -import button2 from 'img/button2.jpg'; -import button3 from 'img/button3.jpg'; -import button4 from 'img/button4.jpg'; -import button5 from 'img/button5.jpg'; -import logo from 'img/logo.jpg'; -import React, { Component } from 'react'; -import { Link } from 'react-router-dom'; -import myAxios from 'utils/api-call'; -import estGestionnaire from 'utils/roles'; -import { pathFinalCampagne } from '../../utils/properties'; -import VersionComponent from '../version/version'; -import Campagne from './campagne'; -import MapObjects from '../utils/jsonUtils'; +import button1 from "img/button1.jpg"; +import button2 from "img/button2.jpg"; +import button3 from "img/button3.jpg"; +import button4 from "img/button4.jpg"; +import button5 from "img/button5.jpg"; +import logo from "img/logo.jpg"; +import React, { Component } from "react"; +import { Link } from "react-router-dom"; +import myAxios from "utils/api-call"; +import estGestionnaire from "utils/roles"; +import { pathFinalCampagne } from "../../utils/properties"; +import VersionComponent from "../version/version"; +import Campagne from "./campagne"; +import MapObjects from "../utils/jsonUtils"; +import store from "store/configure-store"; export default class Home extends Component { constructor(props) { super(props); this.state = { - idCampagneSelectionnee: '', - labelCampagneSelectionnee: '', + idCampagneSelectionnee: "", + labelCampagneSelectionnee: "", campagnesTrouvees: [], }; this.handleChange = this.handleChange.bind(this); @@ -31,13 +32,17 @@ export default class Home extends Component { myAxios() .get(pathFinalCampagne) - .then(res => { - const campagnesTrouvees = MapObjects(res.data.datas, 'campaign'); + .then((res) => { + const campagnesTrouvees = MapObjects(res.data.datas, "campaign"); campagnesTrouvees.sort(this.triage); this.setState({ campagnesTrouvees: campagnesTrouvees }); - if (idCampagneSelectionnee !== 'admin') { + if (idCampagneSelectionnee !== "admin") { for (let i = 0; i < campagnesTrouvees.length; i++) { - if (campagnesTrouvees[i].idCampagne.localeCompare(idCampagneSelectionnee) === 0) { + if ( + campagnesTrouvees[i].idCampagne.localeCompare( + idCampagneSelectionnee + ) === 0 + ) { this.setState({ idCampagneSelectionnee: idCampagneSelectionnee, labelCampagneSelectionnee: campagnesTrouvees[i].labelCampagne, @@ -52,7 +57,7 @@ export default class Home extends Component { } } }) - .catch(error => { + .catch((error) => { console.log(error); this.setState({ isLoading: false }); }); @@ -67,18 +72,20 @@ export default class Home extends Component { handleChange(event) { var lienFutur = event.target.value; - this.props.campagneEnCours(lienFutur, ''); + this.props.campagneEnCours(lienFutur, ""); this.setState({ idCampagneSelectionnee: lienFutur }); const lienActuel = window.location.pathname; var count = 0; - var pos = lienActuel.indexOf('/'); + var pos = lienActuel.indexOf("/"); while (pos !== -1) { count = count + 1; - pos = lienActuel.indexOf('/', pos + 1); + pos = lienActuel.indexOf("/", pos + 1); } if (count === 2) { - lienFutur = lienFutur + lienActuel.substring(lienActuel.lastIndexOf('/'), lienActuel.length); + lienFutur = + lienFutur + + lienActuel.substring(lienActuel.lastIndexOf("/"), lienActuel.length); } window.location.pathname = lienFutur; } @@ -86,20 +93,24 @@ export default class Home extends Component { estConsultation() { const lienActuel = window.location.pathname; var count = 0; - var pos = lienActuel.indexOf('/'); + var pos = lienActuel.indexOf("/"); while (pos !== -1) { count = count + 1; - pos = lienActuel.indexOf('/', pos + 1); + pos = lienActuel.indexOf("/", pos + 1); } return count === 1; } estCampagneChoisie() { - return this.state.idCampagneSelectionnee !== ''; + return this.state.idCampagneSelectionnee !== ""; } render() { - const { idCampagneSelectionnee, campagnesTrouvees, labelCampagneSelectionnee } = this.state; + const { + idCampagneSelectionnee, + campagnesTrouvees, + labelCampagneSelectionnee, + } = this.state; const { roles } = this.props; const isGestionnaire = estGestionnaire(roles); return ( @@ -108,14 +119,22 @@ export default class Home extends Component {
- {'button'} + {"button"}
  • - {'button'} + {"button"} Rechercher des enquêtés
  • @@ -125,8 +144,8 @@ export default class Home extends Component { {'button'} Enregistrer des évènements @@ -136,7 +155,11 @@ export default class Home extends Component { {this.estCampagneChoisie() && (
  • - {'button'} + {"button"} Suivre la collecte
  • @@ -147,8 +170,8 @@ export default class Home extends Component { {'button'} Relancer des enquêtés @@ -157,8 +180,8 @@ export default class Home extends Component { {'button'} Consulter les archives @@ -166,12 +189,35 @@ export default class Home extends Component { )}
-
+ + + +