Compare commits

..

2 Commits

Author SHA1 Message Date
DebaucheryLibrarian 50d280a3c9 0.41.1 2025-09-15 05:19:44 +02:00
DebaucheryLibrarian 1de174a8c4 Added network to dead site overview. 2025-09-15 05:19:42 +02:00
4 changed files with 18 additions and 5 deletions

4
package-lock.json generated
View File

@ -1,11 +1,11 @@
{ {
"name": "traxxx-web", "name": "traxxx-web",
"version": "0.41.0", "version": "0.41.1",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"version": "0.41.0", "version": "0.41.1",
"dependencies": { "dependencies": {
"@brillout/json-serializer": "^0.5.8", "@brillout/json-serializer": "^0.5.8",
"@dicebear/collection": "^7.0.5", "@dicebear/collection": "^7.0.5",

View File

@ -87,7 +87,7 @@
"overrides": { "overrides": {
"vite": "$vite" "vite": "$vite"
}, },
"version": "0.41.0", "version": "0.41.1",
"imports": { "imports": {
"#/*": "./*.js" "#/*": "./*.js"
} }

View File

@ -28,6 +28,7 @@
<thead> <thead>
<tr> <tr>
<th class="table-header">Entity</th> <th class="table-header">Entity</th>
<th class="table-header">Network</th>
<th <th
class="table-header noselect" class="table-header noselect"
@ -46,8 +47,18 @@
v-for="entity in alertEntities" v-for="entity in alertEntities"
:key="`entity-${entity.id}`" :key="`entity-${entity.id}`"
> >
<td class="table-cell table-name ellipsis">{{ entity.name }}</td> <td
:title="entity.id"
class="table-cell table-name ellipsis"
>{{ entity.name }}</td>
<td
:title="entity.parent?.id"
class="table-cell table-name ellipsis"
>{{ entity.parent?.name }}</td>
<td class="table-cell table-total">{{ entity.totalReleases }}</td> <td class="table-cell table-total">{{ entity.totalReleases }}</td>
<td <td
class="table-cell table-date" class="table-cell table-date"
:class="{ alert: entity.latestReleaseDate && entity.latestReleaseDate < alertDate }" :class="{ alert: entity.latestReleaseDate && entity.latestReleaseDate < alertDate }"

View File

@ -185,12 +185,14 @@ export async function fetchEntityHealths(options) {
const entities = await knex('entities') const entities = await knex('entities')
.select( .select(
'entities.*', 'entities.*',
knex.raw('row_to_json(parents) as parent'),
knex.raw('max(effective_date) as latest_release_date'), knex.raw('max(effective_date) as latest_release_date'),
knex.raw('count(releases.id) as total_releases'), knex.raw('count(releases.id) as total_releases'),
) )
.leftJoin('releases', 'releases.entity_id', 'entities.id') .leftJoin('releases', 'releases.entity_id', 'entities.id')
.leftJoin('entities as parents', 'parents.id', 'entities.parent_id')
.orderBy(sortMap[options.sort] || options.sort || sortMap.releases, options.order || 'desc') .orderBy(sortMap[options.sort] || options.sort || sortMap.releases, options.order || 'desc')
.groupBy('entities.id'); .groupBy('entities.id', 'parents.id');
const curatedEntities = entities.map((entity) => ({ const curatedEntities = entities.map((entity) => ({
...curateEntity(entity), ...curateEntity(entity),