Skip to content

Commit

Permalink
chore: résolution de conflits #517
Browse files Browse the repository at this point in the history
  • Loading branch information
ocruze committed Oct 22, 2024
2 parents 4835c58 + dff31fb commit e4b2b58
Show file tree
Hide file tree
Showing 13 changed files with 1,422 additions and 71 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,7 @@ const DatasheetUploadForm: FC<DatasheetUploadFormProps> = ({ datastoreId }) => {

{addUploadMutation.isSuccess && addUploadMutation.data?._id !== undefined && (
<Wait>
<DatasheetUploadIntegrationDialog datastoreId={datastoreId} uploadId={addUploadMutation.data?._id} />
<DatasheetUploadIntegrationDialog datastoreId={datastoreId} uploadId={addUploadMutation.data?._id} datasheetName={datasheetName} />
</Wait>
)}
</DatastoreLayout>
Expand Down Expand Up @@ -394,7 +394,8 @@ export const DatasheetUploadFormFrTranslations: Translations<"fr">["DatasheetUpl
"datasheet.name_already_exists_error": ({ datasheetName }) => `Une fiche de donnée existe déjà avec le nom "${datasheetName}"`,
"datasheet.creation_running": "Création de la fiche en cours ...",
upload: "Déposez votre fichier de données",
upload_hint: "Formats de fichiers autorisés : Geopackage ou archive zip contenant un Geopackage (recommandé)",
// NB: la taille maximale doit correspondre à celle effectivement implémentée dans DatasheetUploadForm
upload_hint: "Taille maximale : 1 Go. Formats de fichiers autorisés : Geopackage ou archive zip contenant un Geopackage (recommandé)",
upload_nofile_error: "Aucun fichier téléversé",
upload_extension_error: ({ filename }) => `L’extension du fichier ${filename} n'est pas correcte`,
upload_max_size_error: ({ maxSize }) => `La taille maximale pour un fichier est de ${maxSize}`,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,15 @@ const getStepStatusText = (status: string) => {
return statusText;
};

type IntegrationStatus = "at_lease_one_failure" | "proc_int_launched" | "all_successful";
type IntegrationStatus = "at_least_one_failure" | "proc_int_launched" | "all_successful";

type DatasheetUploadIntegrationDialogProps = {
datastoreId: string;
datasheetName: string | undefined;
uploadId: string;
};

const DatasheetUploadIntegrationDialog: FC<DatasheetUploadIntegrationDialogProps> = ({ datastoreId, uploadId }) => {
const DatasheetUploadIntegrationDialog: FC<DatasheetUploadIntegrationDialogProps> = ({ datastoreId, datasheetName, uploadId }) => {
const [shouldPingIntProg, setShouldPingIntProg] = useState<boolean>(true);

const queryClient = useQueryClient();
Expand Down Expand Up @@ -100,7 +101,7 @@ const DatasheetUploadIntegrationDialog: FC<DatasheetUploadIntegrationDialogProps
const integrationStatus: IntegrationStatus | undefined = useMemo(() => {
if (integrationProgress && Object.values(integrationProgress).includes("failed")) {
// au moins une étape a échoué
return "at_lease_one_failure";
return "at_least_one_failure";
}

if (integrationProgress && integrationProgress?.["integration_processing"] === "in_progress") {
Expand All @@ -116,7 +117,7 @@ const DatasheetUploadIntegrationDialog: FC<DatasheetUploadIntegrationDialogProps

useEffect(() => {
switch (integrationStatus) {
case "at_lease_one_failure":
case "at_least_one_failure":
setShouldPingIntProg(false);
break;
case "proc_int_launched":
Expand All @@ -143,7 +144,7 @@ const DatasheetUploadIntegrationDialog: FC<DatasheetUploadIntegrationDialogProps

return (
<div className={fr.cx("fr-container")}>
{integrationStatus === "at_lease_one_failure" ? (
{integrationStatus === "at_least_one_failure" ? (
<div className={fr.cx("fr-grid-row")}>
<div className={fr.cx("fr-col")}>
<h6 className={fr.cx("fr-h6")}>
Expand Down Expand Up @@ -204,13 +205,17 @@ const DatasheetUploadIntegrationDialog: FC<DatasheetUploadIntegrationDialogProps
</div>
)}

{integrationStatus === "at_lease_one_failure" && uploadQuery.data?.tags?.vectordb_id !== undefined && (
{integrationStatus === "at_least_one_failure" && uploadQuery.data?.tags?.vectordb_id !== undefined && (
<div className={fr.cx("fr-grid-row")}>
<ButtonsGroup
buttons={[
{
children: "Voir le rapport d’erreur",
linkProps: routes.datastore_stored_data_details({ datastoreId, storedDataId: uploadQuery.data?.tags?.vectordb_id }).link,
linkProps: routes.datastore_stored_data_details({
datastoreId,
storedDataId: uploadQuery.data?.tags?.vectordb_id,
datasheetName,
}).link,
},
{
children: "Revenir à mes données",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,16 @@ import DatasheetUploadIntegrationDialog from "./DatasheetUploadIntegrationDialog
type DatasheetUploadIntegrationPageProps = {
datastoreId: string;
uploadId: string;
datasheetName: string | undefined;
};
const DatasheetUploadIntegrationPage: FC<DatasheetUploadIntegrationPageProps> = ({ datastoreId, uploadId }) => {
const DatasheetUploadIntegrationPage: FC<DatasheetUploadIntegrationPageProps> = ({ datastoreId, uploadId, datasheetName }) => {
return (
<DatastoreLayout datastoreId={datastoreId} documentTitle="Intégration des données">
<div className={fr.cx("fr-grid-row")}>
<h1>Intégration des données</h1>
</div>
<div className={fr.cx("fr-grid-row", "fr-grid-row--middle", "fr-grid-row--center", "fr-mt-2v")}>
<DatasheetUploadIntegrationDialog datastoreId={datastoreId} uploadId={uploadId} />
<DatasheetUploadIntegrationDialog datastoreId={datastoreId} uploadId={uploadId} datasheetName={datasheetName} />
</div>
</DatastoreLayout>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ const PyramidVectorListItem: FC<PyramidVectorListItemProps> = ({ datasheetName,
{
text: t("show_details"),
iconId: "fr-icon-file-text-fill",
linkProps: routes.datastore_stored_data_details({ datastoreId, storedDataId: pyramid._id }).link,
linkProps: routes.datastore_stored_data_details({ datastoreId, datasheetName, storedDataId: pyramid._id }).link,
},
{
text: tCommon("delete"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ const VectorDbListItem: FC<VectorDbListItemProps> = ({ datasheetName, datastoreI
{
text: t("show_details"),
iconId: "fr-icon-file-text-fill",
linkProps: routes.datastore_stored_data_details({ datastoreId, storedDataId: vectorDb._id }).link,
linkProps: routes.datastore_stored_data_details({ datastoreId, datasheetName, storedDataId: vectorDb._id }).link,
},
{
text: tCommon("delete"),
Expand Down
6 changes: 6 additions & 0 deletions assets/modules/entrepot/breadcrumbs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,12 @@ const getBreadcrumb = (route: Route<typeof routes>, datastore?: Datastore): Brea
{ label: datastore?.name, linkProps: routes.datasheet_list({ datastoreId: route.params.datastoreId }).link },
],
];
if ("datasheetName" in route.params && route.params.datasheetName) {
defaultProps.segments.push({
label: route.params.datasheetName,
linkProps: routes.datastore_datasheet_view({ datastoreId: route.params.datastoreId, datasheetName: route.params.datasheetName }).link,
});
}
return { ...defaultProps, currentPageLabel: t("datastore_stored_data_details") };

case "datastore_wfs_service_new":
Expand Down
121 changes: 72 additions & 49 deletions assets/pages/Home.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { fr } from "@codegouvfr/react-dsfr";
import Alert from "@codegouvfr/react-dsfr/Alert";
import Badge from "@codegouvfr/react-dsfr/Badge";
import ButtonsGroup from "@codegouvfr/react-dsfr/ButtonsGroup";
import CallOut from "@codegouvfr/react-dsfr/CallOut";
import Tile from "@codegouvfr/react-dsfr/Tile";
import { useEffect } from "react";

Expand Down Expand Up @@ -74,64 +76,85 @@ const Home = () => {
)}

{/* Section : Présentation */}
<div className="c-section c-section--gray">
<div className="c-section">
<div className={fr.cx("fr-container--fluid")}>
<div className={fr.cx("fr-container")}>
<div className={fr.cx("fr-grid-row", "fr-grid-row--gutters")}>
<div className={fr.cx("fr-col-12", "fr-col-lg-6", "fr-px-0", "fr-pl-md-14v")}>
<p className={fr.cx("fr-mt-4w", "fr-mt-md-7w") + " frx-display--xxs"}>
Bienvenue sur le service public des cartes et données du territoire
</p>
<div className={fr.cx("fr-grid-row", "fr-grid-row--gutters")}>
<div className={fr.cx("fr-col-12", "fr-col-lg-7")}>
<p className={fr.cx("fr-mt-4w", "fr-mt-md-7w") + " frx-display--xxs"}>Le service public des cartes et données du territoire</p>
<p className={fr.cx("fr-text--lg", "fr-pr-10v")}>
Déposez et diffusez vos données géographiques en toute autonomie, c’est simple grâce aux outils de cartes.gouv.fr
</p>
<ul>
<li>Je dépose ma donnée et configure mon service</li>
<li>Je publie dans le catalogue</li>
<li>Je visualise sur une carte</li>
</ul>
<ButtonsGroup
buttons={[
{
iconId: "fr-icon-cursor-line",
linkProps: routes.dashboard_pro().link,
children: "Je dépose ma donnée",
priority: "primary",
},
{
iconId: "fr-icon-file-download-line",
linkProps: {
href: "./catalogue",
},
children: "J’accède au catalogue",
priority: "secondary",
},
]}
inlineLayoutWhen="always"
buttonsEquisized={true}
className={fr.cx("fr-mt-2w")}
/>
</div>

<p className={fr.cx("fr-text--lg", "fr-pr-10v")}>
La carte et le territoire enfin réunis&nbsp;? Le besoin en données explose pour connaître la réalité terrain, analyser des
phénomènes, piloter des activités multiples.
</p>
<p className={fr.cx("fr-text--lg", "fr-pr-10v")}>
Collectivités territoriales, acteurs publics, entreprises, associations, citoyens…
</p>
<p className={fr.cx("fr-text--lg", "fr-pr-10v")}>
<strong>Cartes.gouv.fr</strong> offre à tous les bases de données et les outils utiles pour se saisir de ces opportunités,
avec en premier lieu des cartes et données publiques librement accessibles sur de nombreux thèmes (topographie, écologie,
sécurité, foncier, réglementations…) ainsi que la diffusion en toute autonomie de vos propres données géographiques.
</p>
</div>
<div className={fr.cx("fr-col-12", "fr-col-lg-6", "fr-pb-4w", "fr-pl-md-8w", "fr-pr-md-2w", "fr-mt-4w")}>
<figure
className={fr.cx("fr-content-media")}
role="group"
aria-label="Carte des grandes régions écologiques (GRECO), IGN - 2023"
>
<div className={fr.cx("fr-content-media__img")}>
<img
className={fr.cx("fr-responsive-img", "fr-ratio-1x1")}
src={homeImgUrl}
alt=""
role="presentation"
data-fr-js-ratio="true"
/>
</div>
<figcaption className={fr.cx("fr-content-media__caption")}>
Source : Carte des grandes régions écologiques (GRECO), IGN - 2023
</figcaption>
</figure>
</div>
<div className={fr.cx("fr-col-12", "fr-col-lg-5", "fr-pb-4w", "fr-pl-md-8w", "fr-pr-md-2w", "fr-mt-4w")}>
<figure
className={fr.cx("fr-content-media", "fr-mt-0", "fr-mb-0")}
role="group"
aria-label="Carte des grandes régions écologiques (GRECO), IGN - 2023"
>
<div className={fr.cx("fr-content-media__img")}>
<img
className={fr.cx("fr-responsive-img", "fr-ratio-1x1")}
src={homeImgUrl}
alt=""
role="presentation"
data-fr-js-ratio="true"
/>
</div>
<figcaption className={fr.cx("fr-content-media__caption")}>
Source : Carte des grandes régions écologiques (GRECO), IGN - 2023
</figcaption>
</figure>
</div>
</div>

<div className={fr.cx("fr-grid-row", "fr-grid-row--gutters")}>
<div className={fr.cx("fr-col-12", "fr-px-0", "fr-px-md-14v")}>
<p className={fr.cx("fr-text--lg")}>
Le site s’enrichira de nouveaux services pour la contribution, le partage et la visualisation des données et cartes, en
s’appuyant sur les besoins et attentes des utilisateurs.
</p>
</div>
<div className={fr.cx("fr-grid-row", "fr-grid-row--center", "fr-mt-2w")}>
<div className={fr.cx("fr-col-10")}>
<CallOut colorVariant="blue-cumulus">
Le site ne cesse de s’enrichir de nouveaux services en s’appuyant sur les besoins et attentes des utilisateurs, n’hésitez pas à
nous faire part de vos retours d’expérience en rejoignant{" "}
<a
href="https://www.ign.fr/geoplateforme/rejoindre-la-communaute"
target="_blank"
rel="noreferrer"
title="Rejoindre la communauté Géoplateforme - ouvre une nouvelle fenêtre"
>
la communauté Géoplateforme
</a>
</CallOut>
</div>
</div>
</div>
</div>

{/* Section proposition de valeur : Ce que vous pouvez faire avec cartes.gouv.fr */}
<div className={fr.cx("fr-container", "fr-mt-8v", "fr-pb-3v", "fr-mt-md-10v", "fr-mb-2v", "fr-mb-md-8v")}>
<div className={fr.cx("fr-container--fluid", "fr-mt-8v", "fr-pb-3v", "fr-mt-md-10v", "fr-mb-2v", "fr-mb-md-8v")}>
<div className={fr.cx("fr-grid-row", "fr-grid-row--gutters", "fr-grid-row--center", "fr-px-md-8w")}>
<div className={fr.cx("fr-col-12")}>
<h2 className={fr.cx("fr-my-5w") + " frx-text--center"}>Ce que vous pouvez faire avec cartes.gouv.fr</h2>
Expand All @@ -143,7 +166,7 @@ const Home = () => {
</div>
</div>

<div className={fr.cx("fr-grid-row", "fr-grid-row--gutters", "fr-grid-row--center", "fr-px-md-8w")}>
<div className={fr.cx("fr-grid-row", "fr-grid-row--gutters", "fr-grid-row--center")}>
<div className={fr.cx("fr-col-12", "fr-col-md-6", "fr-col-lg-4") + " frx-text--center"}>
<Tile
title="Stockez, traitez et partagez vos données"
Expand Down
7 changes: 2 additions & 5 deletions assets/pages/Offer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -93,12 +93,9 @@ const Offer = () => {

<div className={fr.cx("fr-grid-row", "fr-grid-row--gutters")}>
<div className={fr.cx("fr-col-12", "fr-col-lg-8")}>
<p>Un « bac à sable » permet de tester gratuitement les fonctions d’alimentation et de diffusion de la Géoplateforme en quelques clics.</p>
<p>
Un « bac à sable » permet de tester gratuitement les fonctions d’alimentation et de diffusion de la Géoplateforme en quelques clics
(disponible à l’automne 2024).
</p>
<p>
<a {...routes.terms_of_service().link}>Conditions générales d’utilisation : à venir</a>
<a {...routes.terms_of_service().link}>Conditions générales d’utilisation</a>
</p>
<p>
<a {...routes.contact().link}>Nous contacter.</a>
Expand Down
Loading

0 comments on commit e4b2b58

Please sign in to comment.