diff --git a/frontend/src/app/modules/imports/components/action-modal/action-modal.component.html b/frontend/src/app/modules/imports/components/action-modal/action-modal.component.html
new file mode 100644
index 0000000000..905ab51c36
--- /dev/null
+++ b/frontend/src/app/modules/imports/components/action-modal/action-modal.component.html
@@ -0,0 +1,42 @@
+
+
+
{{ modalData.bodyMessage }}
+
+ {{ modalData.additionalMessage }}
+
+
+
+
+
+
diff --git a/frontend/src/app/modules/imports/components/action-modal/action-modal.component.scss b/frontend/src/app/modules/imports/components/action-modal/action-modal.component.scss
new file mode 100644
index 0000000000..52331cda3c
--- /dev/null
+++ b/frontend/src/app/modules/imports/components/action-modal/action-modal.component.scss
@@ -0,0 +1,4 @@
+.attention-message {
+ color: red;
+ font-weight: bold;
+}
diff --git a/frontend/src/app/modules/imports/components/action-modal/action-modal.component.ts b/frontend/src/app/modules/imports/components/action-modal/action-modal.component.ts
new file mode 100644
index 0000000000..1a0b03c110
--- /dev/null
+++ b/frontend/src/app/modules/imports/components/action-modal/action-modal.component.ts
@@ -0,0 +1,58 @@
+import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
+import { CommonService } from '@geonature_common/service/common.service';
+import { ImportDataService } from '../../services/data.service';
+import { Import } from '../../models/import.model';
+import { ModalData } from '../../models/modal-data.model';
+
+@Component({
+ selector: 'import-action-modal',
+ templateUrl: './action-modal.component.html',
+ styleUrls: ['./action-modal.component.scss'],
+})
+export class ModalActionImport implements OnInit {
+ @Input() data: Import;
+ @Input() c: any;
+ @Input() actionType: 'delete' | 'edit' = 'delete';
+ @Input() modalData: ModalData = {
+ title: 'Confirmation',
+ bodyMessage: 'Êtes-vous sûr de vouloir effectuer cette action ?',
+ additionalMessage: '',
+ cancelButtonText: 'Annuler',
+ confirmButtonText: 'Confirmer',
+ confirmButtonColor: 'warn',
+ headerDataQa: 'generic-modal-header',
+ confirmButtonDataQa: 'modal-confirm-action',
+ };
+ @Output() onAction = new EventEmitter<{ confirmed: boolean; actionType: string; data?: any }>();
+
+ constructor(
+ private _commonService: CommonService,
+ private _ds: ImportDataService
+ ) {}
+
+ ngOnInit() {}
+
+ // Méthode générique pour traiter les actions
+ performAction() {
+ if (this.actionType === 'delete') {
+ this.deleteImport();
+ } else if (this.actionType === 'edit') {
+ this.editImport();
+ }
+ }
+
+ // Supprimer l'import
+ deleteImport() {
+ this._ds.deleteImport(this.data.id_import).subscribe(() => {
+ this._commonService.translateToaster('success', 'Import.ImportStatus.DeleteSuccessfully');
+ this.onAction.emit({ confirmed: true, actionType: this.actionType, data: this.data });
+ this.c();
+ });
+ }
+
+ // Modifier l'import
+ editImport() {
+ this.onAction.emit({ confirmed: true, actionType: this.actionType, data: this.data });
+ this.c();
+ }
+}
diff --git a/frontend/src/app/modules/imports/components/delete-modal/delete-modal.component.html b/frontend/src/app/modules/imports/components/delete-modal/delete-modal.component.html
deleted file mode 100644
index 8766f11d0d..0000000000
--- a/frontend/src/app/modules/imports/components/delete-modal/delete-modal.component.html
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
- Supprimer cet import associé au JDD "{{ row.dataset.dataset_name }}" et commencé le
- {{ row.date_create_import }}?
-
-
Attention : cela supprimera aussi les données importées.
-
-
-
-
diff --git a/frontend/src/app/modules/imports/components/delete-modal/delete-modal.component.ts b/frontend/src/app/modules/imports/components/delete-modal/delete-modal.component.ts
deleted file mode 100644
index 029285b3c1..0000000000
--- a/frontend/src/app/modules/imports/components/delete-modal/delete-modal.component.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
-import { CommonService } from '@geonature_common/service/common.service';
-import { ImportDataService } from '../../services/data.service';
-import { TranslateService } from '@ngx-translate/core';
-import { Import } from '../../models/import.model';
-
-@Component({
- selector: 'import-delete',
- templateUrl: './delete-modal.component.html',
-})
-export class ModalDeleteImport implements OnInit {
- @Input() row: Import;
- @Input() c: any;
- @Output() onDelete = new EventEmitter();
- constructor(
- private _commonService: CommonService,
- private _ds: ImportDataService,
- private translate: TranslateService
- ) {}
-
- ngOnInit() {}
-
- deleteImport() {
- this._ds.deleteImport(this.row.id_import).subscribe(() => {
- this._commonService.translateToaster('success', 'Import.ImportStatus.DeleteSuccessfully');
- this.onDelete.emit();
- this.c();
- });
- }
-}
diff --git a/frontend/src/app/modules/imports/components/import_list/import-list.component.html b/frontend/src/app/modules/imports/components/import_list/import-list.component.html
index e69c7af8bf..eee5d7db8c 100644
--- a/frontend/src/app/modules/imports/components/import_list/import-list.component.html
+++ b/frontend/src/app/modules/imports/components/import_list/import-list.component.html
@@ -207,7 +207,7 @@