Skip to content

Commit 9e76208

Browse files
committed
Update TollGates.vue
1 parent facb154 commit 9e76208

1 file changed

Lines changed: 60 additions & 8 deletions

File tree

‎frontend/src/views/TollGates.vue‎

Lines changed: 60 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -148,15 +148,15 @@
148148
</div>
149149
</div>
150150

151-
<ul class="artefact-list">
151+
<ul :id="`artefact-list-${stage.id}`" class="artefact-list">
152152
<li
153-
v-for="item in stage.items"
153+
v-for="item in stage.items.slice(0, isArtefactStageExpanded(stage.id) ? stage.items.length : 4)"
154154
:key="item.label"
155155
class="artefact-item"
156156
:class="`artefact-item--${item.status}`"
157157
>
158158
<button
159-
v-if="item.source === 'business_case'"
159+
v-if="item.source && TILE_ROUTES[item.source]"
160160
type="button"
161161
class="artefact-item__link"
162162
:disabled="!canNavigate(item.source, 'tile')"
@@ -182,6 +182,16 @@
182182
</template>
183183
</li>
184184
</ul>
185+
<button
186+
v-if="stage.items.length > 4"
187+
:aria-controls="`artefact-list-${stage.id}`"
188+
:aria-expanded="isArtefactStageExpanded(stage.id)"
189+
class="artefact-list__toggle"
190+
type="button"
191+
@click="toggleArtefactStage(stage.id)"
192+
>
193+
{{ isArtefactStageExpanded(stage.id) ? 'Show fewer' : `Show all ${stage.items.length} items` }}
194+
</button>
185195
</div>
186196

187197
<footer class="artefact-card__foot">
@@ -386,6 +396,17 @@ const ARTEFACT_STATUS_LABEL = {
386396
not_started: 'Not started'
387397
}
388398
399+
const expandedArtefactStages = ref(new Set())
400+
401+
const isArtefactStageExpanded = (stageId) => expandedArtefactStages.value.has(stageId)
402+
403+
const toggleArtefactStage = (stageId) => {
404+
const expanded = new Set(expandedArtefactStages.value)
405+
if (expanded.has(stageId)) expanded.delete(stageId)
406+
else expanded.add(stageId)
407+
expandedArtefactStages.value = expanded
408+
}
409+
389410
// `source` links an artefact to an existing tracked step id; artefacts without a
390411
// source have no system of record yet and stay "Not started".
391412
const ARTEFACT_STAGES = [
@@ -397,10 +418,17 @@ const ARTEFACT_STAGES = [
397418
icon: 'mi-play-circle',
398419
color: '#2d8cff',
399420
items: [
400-
{ label: 'Project Charter / mandate', source: 'intake' },
401-
{ label: 'Business case', source: 'business_case' },
402-
{ label: 'Stakeholder register', source: 'approvals' },
403-
{ label: 'High-level scope statement', source: 'opportunity' }
421+
{ label: 'Opportunity Assessment/Task details', source: 'opportunity' },
422+
{ label: 'Scope Statement', source: null },
423+
{ label: 'Stakeholder Registration', source: 'approvals' },
424+
{ label: 'Business Case', source: 'business_case' },
425+
{ label: 'Project Charter', source: 'intake' },
426+
{ label: 'Tollgate Automation', source: null },
427+
{ label: 'People Consultation & Compliance', source: null },
428+
{ label: 'Resources', source: null },
429+
{ label: 'Access & Enablement Requirements', source: null },
430+
{ label: 'Business Impact Analysis', source: null },
431+
{ label: 'Gantt', source: 'gantt' }
404432
]
405433
},
406434
{
@@ -502,7 +530,7 @@ const QUICK_STATUS_LABEL = {
502530
pending: 'Not started'
503531
}
504532
505-
// Ids reuse TILE_ROUTES so clicking a card opens the same page as the stepper below.
533+
// Ids reuse TILE_ROUTES so cards open the existing destination for each artefact.
506534
const quickCards = [
507535
{
508536
id: 'opportunity',
@@ -986,6 +1014,30 @@ onBeforeUnmount(() => {
9861014
padding: 0;
9871015
}
9881016
1017+
.artefact-list__toggle {
1018+
background: transparent;
1019+
border: 0;
1020+
color: #0077b8;
1021+
cursor: pointer;
1022+
font: inherit;
1023+
font-size: 11px;
1024+
font-weight: 700;
1025+
margin-top: 8px;
1026+
padding: 4px 0;
1027+
text-align: left;
1028+
}
1029+
1030+
.artefact-list__toggle:hover {
1031+
color: #005f93;
1032+
text-decoration: underline;
1033+
}
1034+
1035+
.artefact-list__toggle:focus-visible {
1036+
border-radius: 3px;
1037+
outline: 2px solid rgba(0, 119, 184, 0.45);
1038+
outline-offset: 2px;
1039+
}
1040+
9891041
.artefact-item {
9901042
align-items: flex-start;
9911043
background: #f7f9fa;

0 commit comments

Comments
 (0)