Skip to content

Commit 5e26e99

Browse files
committed
TEMP rev history
1 parent 4cdda8f commit 5e26e99

File tree

6 files changed

+135
-55
lines changed

6 files changed

+135
-55
lines changed

assets/stylesheets/dashboard-theme.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,7 @@ body.ea-dark-scheme img.img-light {
7777
body:not(.ea-dark-scheme) img.img-dark {
7878
display: none;
7979
}
80+
81+
.text-monospace {
82+
font-family: var(--font-family-monospace);
83+
}

src/Controller/Dashboard/DashboardPackagesInfoController.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use CodedMonkey\Dirigent\Doctrine\Entity\Version;
1313
use CodedMonkey\Dirigent\Doctrine\Repository\MetadataRepository;
1414
use CodedMonkey\Dirigent\EasyAdmin\PackagePaginator;
15+
use Doctrine\Common\Collections\Order;
1516
use Doctrine\ORM\EntityManagerInterface;
1617
use Doctrine\ORM\QueryBuilder;
1718
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
@@ -50,6 +51,8 @@ public function versionInfo(#[MapPackage] Package $package, #[MapPackage] Versio
5051
$metadataRepository = $this->entityManager->getRepository(Metadata::class);
5152
$metadataRepository->fetchMetadataCollections($version->getCurrentMetadata());
5253

54+
$revisionCount = $metadataRepository->count(['version' => $version]);
55+
5356
$dependentCount = $this->entityManager->getRepository(PackageRequireLink::class)->count(['linkedPackageName' => $package->getName()]);
5457
$implementationCount = $this->entityManager->getRepository(PackageProvideLink::class)->count(['linkedPackageName' => $package->getName(), 'implementation' => true]);
5558
$providerCount = $this->entityManager->getRepository(PackageProvideLink::class)->count(['linkedPackageName' => $package->getName(), 'implementation' => false]);
@@ -63,10 +66,28 @@ public function versionInfo(#[MapPackage] Package $package, #[MapPackage] Versio
6366
'dependentCount' => $dependentCount,
6467
'implementationCount' => $implementationCount,
6568
'providerCount' => $providerCount,
69+
'revisionCount' => $revisionCount,
6670
'suggesterCount' => $suggesterCount,
6771
]);
6872
}
6973

74+
#[Route('/packages/{package}/revisions/{version}', name: 'dashboard_packages_version_revisions', requirements: ['package' => MapPackage::PACKAGE_REGEX, 'version' => '.*'])]
75+
#[IsGrantedAccess]
76+
public function versionRevisions(#[MapPackage] Package $package, #[MapPackage] Version $version): Response
77+
{
78+
$revisions = $this->entityManager->getRepository(Metadata::class)->findBy(
79+
['version' => $version],
80+
['revision' => Order::Descending->value],
81+
);
82+
83+
return $this->render('dashboard/packages/package_version_revisions.html.twig', [
84+
'package' => $package,
85+
'version' => $version,
86+
87+
'revisions' => $revisions,
88+
]);
89+
}
90+
7091
#[Route('/packages/{package}/versions', name: 'dashboard_packages_versions', requirements: ['package' => MapPackage::PACKAGE_REGEX])]
7192
#[IsGrantedAccess]
7293
public function versions(#[MapPackage] Package $package): Response

templates/dashboard/packages/_package_header.html.twig

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
{% set currentPage = currentPage|default(null) %}
2+
{% set currentVersion = currentVersion|default(null) %}
23
{% set attrActive = 'class="nav-link active" aria-current="page"' %}
34
{% set attr = 'class="nav-link text-primary"' %}
45

5-
<ul class="nav nav-pills nav-justified d-grid d-md-flex gap-1 pb-3 mb-3 border-bottom">
6+
<ul class="nav nav-pills nav-justified d-grid d-md-flex gap-1 pb-2 mb-3 border-bottom">
67
<li class="nav-item">
78
{% if package.versions|length > 0 %}
8-
{% set packageInfoUrl = path('dashboard_packages_info', {package: package.name}) %}
9+
{% set packageInfoUrl = version is defined
10+
? path('dashboard_packages_version_info', {package: package.name, version: version.name})
11+
: path('dashboard_packages_info', {package: package.name})
12+
%}
913
<a {{ (currentPage == 'info' ? attrActive : attr)|raw }} href="{{ packageInfoUrl }}">{{ 'Info'|trans }}</a>
1014
{% else %}
1115
<span class="nav-link disabled">{{ 'Info'|trans }}</span>

templates/dashboard/packages/package_info.html.twig

Lines changed: 70 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -100,66 +100,84 @@
100100
{% endif %}
101101
</div>
102102

103-
<div class="row border-bottom pb-3 mb-3">
104-
{{ _self.linkBlock('Requires', metadata.requireLinks) }}
105-
{{ _self.linkBlock('Requires (dev)', metadata.devRequireLinks) }}
106-
{{ _self.provideBlock(metadata.provideLinks) }}
107-
{{ _self.linkBlock('Suggests', metadata.suggestLinks) }}
108-
{{ _self.linkBlock('Conflicts', metadata.conflictLinks) }}
109-
{{ _self.linkBlock('Replaces', metadata.replaceLinks) }}
103+
<div class="border-bottom mb-3">
104+
<div class="row g-0">
105+
{{ _self.linkBlock('Requires', metadata.requireLinks) }}
106+
{{ _self.linkBlock('Requires (dev)', metadata.devRequireLinks) }}
107+
{{ _self.provideBlock(metadata.provideLinks) }}
108+
{{ _self.linkBlock('Suggests', metadata.suggestLinks) }}
109+
{{ _self.linkBlock('Conflicts', metadata.conflictLinks) }}
110+
{{ _self.linkBlock('Replaces', metadata.replaceLinks) }}
111+
</div>
110112
</div>
111113

112-
<div class="row border-bottom pb-3 mb-3">
113-
<div class="col-md-6">
114-
{% if metadata.hasSource() %}
115-
<div class="h5">
116-
{{ 'Source'|trans }}
117-
<span class="badge text-bg-secondary">{{ metadata.sourceType }}</span>
114+
<div class="border-bottom pb-3 mb-3">
115+
{% if revisionCount > 1 %}
116+
<div class="bg-body-secondary px-3 py-2 mb-3 rounded">
117+
<p>Multiple revisions found for version {{ version.name }} of package {{ package.name }}.</p>
118+
{% if metadata != version.currentMetadata %}
119+
<p>You're viewing an inactive revision of this package.</p>
120+
{% endif %}
121+
<div class="btn-toolbar">
122+
<a class="btn btn-sm btn-secondary" href="#">
123+
<span class="fa-solid fa-code me-1" aria-hidden="true"></span>
124+
<span class="btn-label">{{ 'View revisions'|trans }}</span>
125+
</a>
118126
</div>
127+
</div>
128+
{% endif %}
129+
<div class="row g-0">
130+
<div class="col-md-6">
131+
{% if metadata.hasSource() %}
132+
<div class="h5">
133+
{{ 'Source'|trans }}
134+
<span class="badge text-bg-secondary">{{ metadata.sourceType }}</span>
135+
</div>
119136

120-
<div class="mb-2">
121-
<code>{{ metadata.sourceUrl }}</code>
122-
</div>
137+
<div class="mb-2">
138+
<code>{{ metadata.sourceUrl }}</code>
139+
</div>
123140

124-
<div class="mb-2">
125-
{{ 'Reference'|trans }}: <code>{{ metadata.sourceReference }}</code>
126-
</div>
141+
<div class="mb-2">
142+
{{ 'Reference'|trans }}: <code>{{ metadata.sourceReference }}</code>
143+
</div>
127144

128-
<div class="mb-2">
129-
{% set browseUrl = metadata.browsableRepositoryUrl %}
130-
{% if browseUrl %}
131-
<a class="btn btn-sm btn-secondary" href="{{ browseUrl }}">
132-
<span class="fa-solid fa-code me-1" aria-hidden="true"></span>
133-
{{ 'Browse code'|trans }}
134-
</a>
135-
{% endif %}
136-
</div>
137-
{% else %}
138-
<div class="h5">{{ 'Source'|trans }}</div>
139-
-
140-
{% endif %}
141-
</div>
142-
<div class="col-md-6">
143-
{% if metadata.hasDist() %}
144-
<div class="h5">
145-
{{ 'Distribution'|trans }}
146-
<span class="badge text-bg-secondary">{{ metadata.distType }}</span>
147-
</div>
145+
<div>
146+
{% set browseUrl = metadata.browsableRepositoryUrl %}
147+
{% if browseUrl %}
148+
<a class="btn btn-sm btn-secondary" href="{{ browseUrl }}">
149+
<span class="fa-solid fa-code me-1" aria-hidden="true"></span>
150+
<span class="btn-label">{{ 'Browse code'|trans }}</span>
151+
</a>
152+
{% endif %}
153+
</div>
154+
{% else %}
155+
<div class="h5">{{ 'Source'|trans }}</div>
156+
-
157+
{% endif %}
158+
</div>
159+
<div class="col-md-6">
160+
{% if metadata.hasDist() %}
161+
<div class="h5">
162+
{{ 'Distribution'|trans }}
163+
<span class="badge text-bg-secondary">{{ metadata.distType }}</span>
164+
</div>
148165

149-
<div class="mb-2">
150-
{{ 'Reference'|trans }}: <code>{{ metadata.distReference }}</code>
151-
</div>
166+
<div class="mb-2">
167+
{{ 'Reference'|trans }}: <code>{{ metadata.distReference }}</code>
168+
</div>
152169

153-
<div class="mb-2">
154-
<a class="btn btn-sm btn-secondary" href="{{ metadata.distUrl }}" download>
155-
<span class="fa-solid fa-download me-1" aria-hidden="true"></span>
156-
{{ 'Download' }}
157-
</a>
158-
</div>
159-
{% else %}
160-
<div class="h5">{{ 'Distribution'|trans }}</div>
161-
-
162-
{% endif %}
170+
<div>
171+
<a class="btn btn-sm btn-secondary" href="{{ metadata.distUrl }}" download>
172+
<span class="fa-solid fa-download me-1" aria-hidden="true"></span>
173+
<span class="btn-label">{{ 'Download' }}</span>
174+
</a>
175+
</div>
176+
{% else %}
177+
<div class="h5">{{ 'Distribution'|trans }}</div>
178+
-
179+
{% endif %}
180+
</div>
163181
</div>
164182
</div>
165183

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{% extends 'dashboard/packages/package_base.html.twig' %}
2+
3+
{% block page_title %}
4+
{%- apply spaceless -%}
5+
{{ package.name }}
6+
<small>{{ version.extendedName }}</small>
7+
{%- endapply -%}
8+
{% endblock %}
9+
10+
{% block page_content %}
11+
{{ include('dashboard/packages/_package_header.html.twig') }}
12+
13+
<h2 class="h4">{{ 'Revisions'|trans }}</h2>
14+
15+
<div class="list-group list-group-flush border-bottom mb-3">
16+
{% for revision in revisions %}
17+
<a href="#" class="list-group-item">
18+
<div class="d-flex justify-content-between">
19+
<div>
20+
<span>{{ 'Revision'|trans }} {{ revision.revision }}: <span class="text-monospace">{{ revision.sourceReference }}</span></span>
21+
{% if revision == version.currentMetadata %}
22+
<span class="badge text-bg-secondary">{{ 'Current'|trans }}</span>
23+
{% endif %}
24+
</div>
25+
<span class="text-muted">{{ revision.releasedAt ? revision.releasedAt.format('Y-m-d') }}</span>
26+
</div>
27+
</a>
28+
{% endfor %}
29+
</div>
30+
{% endblock %}

templates/dashboard/packages/package_versions.html.twig

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,10 @@
6262
<a href="{{ packageVersionInfoUrl }}" class="list-group-item">
6363
<div class="d-flex justify-content-between">
6464
<span>{{ version.extendedName }}</span>
65-
<span class="text-muted">{{ version.currentMetadata.releasedAt ? version.currentMetadata.releasedAt.format('Y-m-d') }}</span>
65+
<span>
66+
<span class="me-1"><span class="fa-solid fa-file-alt" aria-hidden="true"></span></span>
67+
<span class="text-muted">{{ version.currentMetadata.releasedAt ? version.currentMetadata.releasedAt.format('Y-m-d') }}</span>
68+
</span>
6669
</div>
6770
</a>
6871
{% endmacro %}

0 commit comments

Comments
 (0)