diff --git a/api/types/processing/schema.js b/api/types/processing/schema.js
index b65c2ac..c811e35 100644
--- a/api/types/processing/schema.js
+++ b/api/types/processing/schema.js
@@ -77,7 +77,7 @@ export default {
debug: {
type: 'boolean',
title: 'Mode debug',
- description: 'Active le mode debug pour ce traitement',
+ description: 'Capture des logs détaillés (stacks d\'erreurs, appels HTTP) réservés aux super-admins, pour diagnostiquer un plugin en erreur.',
readOnly: true
},
owner: {
diff --git a/ui/index.html b/ui/index.html
index b98b4ea..ad388a9 100644
--- a/ui/index.html
+++ b/ui/index.html
@@ -1,8 +1,9 @@
-
+
+
diff --git a/ui/src/components/processing/processing-actions.vue b/ui/src/components/processing/processing-actions.vue
index 0ea02ea..2e44382 100644
--- a/ui/src/components/processing/processing-actions.vue
+++ b/ui/src/components/processing/processing-actions.vue
@@ -1,4 +1,33 @@
+
+
+
+ {{ t('navigation') }}
+
+
+
+
+
+ {{ t('viewDataset', { title: d.title }) }}
+
+
+
+
+ {{ t('actions') }}
+
+
-
-
-
-
-
- {{ t('viewDataset') }}
-
-
(session.state.account)
const duplicateTitle = ref(`${processing.title} ${t('copy')}`)
const canSubscribeNotif = computed(() => processing?.owner.type === session.state.account.type && processing?.owner.id === session.state.account.id)
+
+const linkedDatasets = computed(() => {
+ const seen = new Set()
+ const result: { id: string, title: string }[] = []
+ const add = (d: any) => {
+ if (!d?.id || seen.has(d.id)) return
+ seen.add(d.id)
+ result.push({ id: d.id, title: d.title || d.id })
+ }
+ const cfg = processing?.config
+ if (!cfg) return result
+ add(cfg.dataset)
+ if (Array.isArray(cfg.datasets)) {
+ for (const entry of cfg.datasets) {
+ add(entry?.dataset ?? entry)
+ }
+ }
+ return result
+})
+
+const hasActions = computed(() =>
+ canAdmin || canExec ||
+ !!metadata?.documentation ||
+ !!session.state.user?.adminMode ||
+ (!!eventsSubscribeUrl.value && canSubscribeNotif.value)
+)
const ownerString = computed(() => `${processing?.owner.type}:${processing?.owner.id}${processing?.owner.department ? ':' + processing?.owner.department : ''}`)
const eventsSubscribeUrl = computed(() => {
@@ -461,7 +500,9 @@ en:
sensitiveOperation: Sensitive operation
changeOwnerWarning: Changing the owner of a processing can have consequences on the processing execution.
confirm: Confirm
- viewDataset: View the dataset
+ navigation: Navigation
+ actions: Actions
+ viewDataset: "View {title}"
tutorial: Tutorial
useApi: Use the API
notifications: Notifications
@@ -497,7 +538,9 @@ fr:
sensitiveOperation: Opération sensible
changeOwnerWarning: Changer le propriétaire d'un traitement peut avoir des conséquences sur l'execution du traitement.
confirm: Confirmer
- viewDataset: Voir le jeu de données
+ navigation: Navigation
+ actions: Actions
+ viewDataset: "Voir {title}"
tutorial: Tutoriel
useApi: Utiliser l'API
notifications: Notifications
diff --git a/ui/src/components/processing/processing-activity.vue b/ui/src/components/processing/processing-activity.vue
index a5fc6e5..991e897 100644
--- a/ui/src/components/processing/processing-activity.vue
+++ b/ui/src/components/processing/processing-activity.vue
@@ -2,6 +2,7 @@
-
+
{{ t('runStarted') }} {{ dayjs(processing.lastRun.startedAt).fromNow() }}
diff --git a/ui/src/components/run/run-list-item.vue b/ui/src/components/run/run-list-item.vue
index 87168a1..3066efb 100644
--- a/ui/src/components/run/run-list-item.vue
+++ b/ui/src/components/run/run-list-item.vue
@@ -1,6 +1,7 @@