Card Protocoles: count fixe + section opérationnelle toujours visible
- Home: card Protocoles affiche "2 protocoles" (count fixe) + modalités dynamiques - Protocols: section "Protocoles opérationnels" déplacée hors template conditionnel Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -59,9 +59,9 @@ const entryCards = computed(() => [
|
|||||||
title: 'Protocoles et fonctionnement',
|
title: 'Protocoles et fonctionnement',
|
||||||
icon: 'i-lucide-settings',
|
icon: 'i-lucide-settings',
|
||||||
to: '/protocols',
|
to: '/protocols',
|
||||||
count: protocols.protocols.length,
|
count: 2,
|
||||||
countLabel: `${protocols.protocols.length} modalité${protocols.protocols.length > 1 ? 's' : ''}`,
|
countLabel: '2 protocoles',
|
||||||
totalLabel: 'Boîte à outils de vote + workflows',
|
totalLabel: `${protocols.protocols.length} modalités de vote`,
|
||||||
description: 'Modalités de vote, formules, workflows',
|
description: 'Modalités de vote, formules, workflows',
|
||||||
color: 'var(--mood-tertiary, var(--mood-accent))',
|
color: 'var(--mood-tertiary, var(--mood-accent))',
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -294,65 +294,6 @@ const n8nWorkflows = [
|
|||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Operational protocols (workflow templates) -->
|
|
||||||
<div class="proto-ops">
|
|
||||||
<h3 class="proto-ops__title">
|
|
||||||
<UIcon name="i-lucide-git-branch" class="text-sm" />
|
|
||||||
Protocoles opérationnels
|
|
||||||
<span class="proto-ops__count">{{ operationalProtocols.length }}</span>
|
|
||||||
</h3>
|
|
||||||
|
|
||||||
<div
|
|
||||||
v-for="op in operationalProtocols"
|
|
||||||
:key="op.slug"
|
|
||||||
class="proto-ops__card"
|
|
||||||
>
|
|
||||||
<div class="proto-ops__card-head">
|
|
||||||
<div class="proto-ops__card-icon">
|
|
||||||
<UIcon :name="op.icon" class="text-lg" />
|
|
||||||
</div>
|
|
||||||
<div class="proto-ops__card-info">
|
|
||||||
<h4 class="proto-ops__card-name">{{ op.name }}</h4>
|
|
||||||
<p class="proto-ops__card-desc">{{ op.description }}</p>
|
|
||||||
<span class="proto-ops__card-meta">{{ op.instancesLabel }}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Linked references -->
|
|
||||||
<div v-if="op.linkedRefs.length > 0" class="proto-ops__refs">
|
|
||||||
<NuxtLink
|
|
||||||
v-for="ref in op.linkedRefs"
|
|
||||||
:key="ref.to"
|
|
||||||
:to="ref.to"
|
|
||||||
class="proto-ops__ref"
|
|
||||||
:class="`proto-ops__ref--${ref.kind}`"
|
|
||||||
>
|
|
||||||
<UIcon :name="ref.icon" class="text-xs" />
|
|
||||||
<span>{{ ref.label }}</span>
|
|
||||||
<UIcon name="i-lucide-arrow-right" class="text-xs proto-ops__ref-arrow" />
|
|
||||||
</NuxtLink>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Step timeline -->
|
|
||||||
<div class="proto-ops__timeline">
|
|
||||||
<div
|
|
||||||
v-for="(step, idx) in op.steps"
|
|
||||||
:key="idx"
|
|
||||||
class="proto-ops__step"
|
|
||||||
>
|
|
||||||
<div class="proto-ops__step-dot" :class="`proto-ops__step-dot--${step.type}`">
|
|
||||||
<UIcon :name="step.icon" class="text-xs" />
|
|
||||||
</div>
|
|
||||||
<div class="proto-ops__step-body">
|
|
||||||
<span class="proto-ops__step-label">{{ step.label }}</span>
|
|
||||||
<span class="proto-ops__step-actor">{{ step.actor }}</span>
|
|
||||||
</div>
|
|
||||||
<div v-if="idx < op.steps.length - 1" class="proto-ops__step-line" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Formulas table -->
|
<!-- Formulas table -->
|
||||||
<div class="proto-formulas">
|
<div class="proto-formulas">
|
||||||
<h3 class="proto-formulas__title">
|
<h3 class="proto-formulas__title">
|
||||||
@@ -389,6 +330,65 @@ const n8nWorkflows = [
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!-- Operational protocols (always visible, frontend-only data) -->
|
||||||
|
<div class="proto-ops">
|
||||||
|
<h3 class="proto-ops__title">
|
||||||
|
<UIcon name="i-lucide-git-branch" class="text-sm" />
|
||||||
|
Protocoles opérationnels
|
||||||
|
<span class="proto-ops__count">{{ operationalProtocols.length }}</span>
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-for="op in operationalProtocols"
|
||||||
|
:key="op.slug"
|
||||||
|
class="proto-ops__card"
|
||||||
|
>
|
||||||
|
<div class="proto-ops__card-head">
|
||||||
|
<div class="proto-ops__card-icon">
|
||||||
|
<UIcon :name="op.icon" class="text-lg" />
|
||||||
|
</div>
|
||||||
|
<div class="proto-ops__card-info">
|
||||||
|
<h4 class="proto-ops__card-name">{{ op.name }}</h4>
|
||||||
|
<p class="proto-ops__card-desc">{{ op.description }}</p>
|
||||||
|
<span class="proto-ops__card-meta">{{ op.instancesLabel }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Linked references -->
|
||||||
|
<div v-if="op.linkedRefs.length > 0" class="proto-ops__refs">
|
||||||
|
<NuxtLink
|
||||||
|
v-for="ref in op.linkedRefs"
|
||||||
|
:key="ref.to"
|
||||||
|
:to="ref.to"
|
||||||
|
class="proto-ops__ref"
|
||||||
|
:class="`proto-ops__ref--${ref.kind}`"
|
||||||
|
>
|
||||||
|
<UIcon :name="ref.icon" class="text-xs" />
|
||||||
|
<span>{{ ref.label }}</span>
|
||||||
|
<UIcon name="i-lucide-arrow-right" class="text-xs proto-ops__ref-arrow" />
|
||||||
|
</NuxtLink>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Step timeline -->
|
||||||
|
<div class="proto-ops__timeline">
|
||||||
|
<div
|
||||||
|
v-for="(step, idx) in op.steps"
|
||||||
|
:key="idx"
|
||||||
|
class="proto-ops__step"
|
||||||
|
>
|
||||||
|
<div class="proto-ops__step-dot" :class="`proto-ops__step-dot--${step.type}`">
|
||||||
|
<UIcon :name="step.icon" class="text-xs" />
|
||||||
|
</div>
|
||||||
|
<div class="proto-ops__step-body">
|
||||||
|
<span class="proto-ops__step-label">{{ step.label }}</span>
|
||||||
|
<span class="proto-ops__step-actor">{{ step.actor }}</span>
|
||||||
|
</div>
|
||||||
|
<div v-if="idx < op.steps.length - 1" class="proto-ops__step-line" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- Toolbox sidebar -->
|
<!-- Toolbox sidebar -->
|
||||||
<template #toolbox>
|
<template #toolbox>
|
||||||
<!-- Simulateur -->
|
<!-- Simulateur -->
|
||||||
|
|||||||
Reference in New Issue
Block a user