From 7f2798b4fc794dfffa8bf15994c233c05d26bd19 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+github@gmail.com> Date: Wed, 7 Feb 2024 10:02:57 +0100 Subject: [PATCH] fixes #52 --- assets/releases.scss | 8 ++++++++ controllers/releases.php | 27 ++++++++++++++++++--------- plugin.manifest | 2 +- views/releases/index.php | 14 ++++++++++++-- 4 files changed, 39 insertions(+), 12 deletions(-) diff --git a/assets/releases.scss b/assets/releases.scss index d1f8c10..9690dd9 100644 --- a/assets/releases.scss +++ b/assets/releases.scss @@ -5,3 +5,11 @@ tr:not(:last-child) td.table-divider { border-bottom-color: var(--light-gray-color-80); } + +.release-files { + > a:not(:first-of-type)::before { + content: '|'; + pointer-events: none; + color: var(--black) !important; + } +} diff --git a/controllers/releases.php b/controllers/releases.php index db45b61..69f47ec 100644 --- a/controllers/releases.php +++ b/controllers/releases.php @@ -104,28 +104,37 @@ final class ReleasesController extends \TracToGitlab\Controller return strcmp($a['name'], $b['name']); }); - $sources = array_map( - function (array $asset): array { - $asset['size'] = $this->getFileSize($asset['url']); - return $asset; - }, - $release['assets']['sources'] ?? [] - ); - $changelog = sprintf( 'https://gitlab.studip.de/studip/studip/-/blob/%s/ChangeLog%s', $release['tag_name'], $release['tag_name'] >= 'v5.3' ? '.md' : '' ); + try { + $file = $this->gitlab->repositoryFiles()->getFile( + $this->gitlabProjectId, + 'RELEASE-NOTES.md', + $release['tag_name'] + ); + + $release_notes = sprintf( + 'https://gitlab.studip.de/studip/studip/-/blob/%s/%s', + $release['tag_name'], + $file['file_name'] + ); + } catch (Exception $e) { + $release_notes = null; + } + return [ 'name' => $release['name'], 'description' => $release['description'], 'url' => $release['_links']['self'], 'changelog' => $changelog, + 'notes' => $release_notes, 'released' => strtotime($release['released_at']), 'sources' => $release['assets']['sources'], - 'links' => $links + 'links' => $links, ]; }, $this->gitlab->repositories()->releases($this->gitlabProjectId) diff --git a/plugin.manifest b/plugin.manifest index 0838624..1bf4a0d 100644 --- a/plugin.manifest +++ b/plugin.manifest @@ -2,6 +2,6 @@ pluginname=Trac to gitlab converter pluginclassname=TracToGitlabPlugin pluginclassname=StudipReleasesPlugin origin=UOL -version=1.4.4 +version=1.4.5 studipMinVersion=5.0 localedomain=trac2gitlab diff --git a/views/releases/index.php b/views/releases/index.php index d060e2a..8cbfefb 100644 --- a/views/releases/index.php +++ b/views/releases/index.php @@ -35,17 +35,27 @@ </span> </td> <? endforeach; ?> - <td class="hidden-small-down"> + <td class="hidden-small-down release-files"> <a href="<?= URLHelper::getLink($release['changelog']) ?>" target="_blank" rel="noopener noreferrer"> ChangeLog </a> + <? if ($release['notes']): ?> + <a href="<?= URLHelper::getLink($release['notes']) ?>" target="_blank" rel="noopener noreferrer"> + Release notes + </a> + <? endif; ?> </td> </tr> <tr class="hidden-medium-up"> - <td colspan="5" class="table-divider"> + <td colspan="5" class="table-divider release-files"> <a href="<?= URLHelper::getLink($release['changelog']) ?>" target="_blank" rel="noopener noreferrer"> ChangeLog </a> + <? if ($release['notes']): ?> + <a href="<?= URLHelper::getLink($release['notes']) ?>" target="_blank" rel="noopener noreferrer"> + Release notes + </a> + <? endif; ?> </td> </tr> <? endforeach; ?> -- GitLab