-
Notifications
You must be signed in to change notification settings - Fork 102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SYNTHESE][FRONTEND] Evolution / amélioration du routing frontend pour l'information d'une observation #3155
Comments
C'est pas ce qu'on a déjà avec les permaliens vers les fiches détail d'une observation ? |
Yes effectivement , à l'initialisation du composant Du coup , l'idée est de réfléchir à ajouter des enfants à cette route de type Soit ça : {
path: 'occurrence/:id_synthese',
component: SyntheseComponent,
children: [
{
path: 'details',
component: SyntheseComponent,
data: { tabIndex: 0 }
},
{
path: 'metadata',
component: SyntheseComponent,
data: { tabIndex: 1 }
},
{
path: 'taxonomie',
component: SyntheseComponent,
data: { tabIndex: 2 }
},
......
]
} Ou alors du type : {
path: 'occurrence/:id_synthese',
component: SyntheseComponent,
children: [
{
path: ':tab', // Chemin dynamique pour l'onglet
component: SyntheseComponent,
}
]
} et gérer le valeur de openInfoModal(idSynthese) {
const modalRef = this._ngModal.open(SyntheseInfoObsComponent, {
size: 'lg',
windowClass: 'large-modal',
});
modalRef.componentInstance.idSynthese = idSynthese;
modalRef.componentInstance.header = true;
modalRef.componentInstance.useFrom = 'synthese';
// Extraire l'onglet à partir du paramètre de route
const tab = this.route.snapshot.firstChild?.paramMap.get('tab');
// On converti le nom de l'onglet en index ou on le passe directement s'il est numérique
let tabIndex;
switch (tab) {
case 'details':
tabIndex = 0;
break;
case 'metadata':
tabIndex = 1;
break;
case 'taxonomie':
tabIndex = 2;
break;
default:
tabIndex = 0; // Par défaut, ouvrir le premier onglet si le paramètre est invalide
}
modalRef.componentInstance.activeTabIndex = tabIndex;
} |
Salut, ça me va. |
Salut, Du coup est ce qu'on s'appuierait sur un truc du genre (source: https://stackoverflow.com/questions/70690991/angular-mat-tabs-set-default-active-tab-based-on-label-get-label-index/76567715#76567715) goToTabByLabel(label: string) {
if (this.tabsgroup) {
const tabs = (this.tabsgroup?._tabs as any)._results,
match = tabs?.find(x => x.textLabel?.toUpperCase() === label.toUpperCase());
if (match) {
this.tabsgroup.selectedIndex = match.position;
}
}
} Et ajouter un attribut à chaque onglet où on précise urlRoute pour associer chaque tab à des champs plus appropriés pour avoir des url associées ? Et comme ça on est pas dépendant de l'ordre des onglets |
Salut, J’éviterais (quand c'est possible) d'utiliser les propriété privé des objets. public tabs = ["tab1", "tab2", "tab3"] -> qu'on utilise pour générer le HTML. et le |
La correspondance label <--> index peut-être faite en se basant sur la position dans le tableau. Mais côté html, comment tu fais pour respecter l'ordre du tableau ? Je suis pas convaincu par les différentes solutions que je vois
|
Version
Version de GN depuis que la modale "Information sur l'observation" existe.
Description de l'état actuel
Le fonctionnement actuel est l'ouverture d'une modale "Information sur l'observation" lorsqu'on clique sur l'icone "i" dans le tableau des observations du module synthese . Le chemin associé reste "https://demo.geonature.fr/geonature/#/synthese" .
Discussion
Dans le cadre d'évolution / amélioration de l'utilisation des informations liées à une observation (notamment dans le cadre du projet initié avec l'ARB IDF) , est ce qu'il serait envisageable d'associer les informations d'une observation à une route définie coté frontend .
Implémentation d'une nouvelle route ici :
GeoNature/frontend/src/app/syntheseModule/synthese.module.ts
Lines 19 to 22 in 3adc7b4
Comment reproduire
Images concernant le parcours utilisateurs depuis le module de synthese pour afficher la modale
The text was updated successfully, but these errors were encountered: