mirror of
https://github.com/LBRYFoundation/lbry.com.git
synced 2025-08-31 09:21:26 +00:00
roadmap fixes
This commit is contained in:
parent
a441f0aa16
commit
6d7440a891
4 changed files with 52 additions and 30 deletions
|
@ -220,9 +220,9 @@ class ContentActions extends Actions
|
|||
{
|
||||
$lastItem = end($items);
|
||||
$project = $lastItem['project'];
|
||||
if (!isset($projectMaxVersions[$project]) || strnatcasecmp($lastItem['version'], $projectMaxVersions[$project]) > 0)
|
||||
if (!isset($projectMaxVersions[$project]) || $lastItem['sort_key'] > $projectMaxVersions[$project])
|
||||
{
|
||||
$projectMaxVersions[$project] = $lastItem['version'];
|
||||
$projectMaxVersions[$project] = $lastItem['sort_key'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
10
lib/thirdparty/Asana.class.php
vendored
10
lib/thirdparty/Asana.class.php
vendored
|
@ -19,7 +19,7 @@ class Asana
|
|||
$tasks = [];
|
||||
|
||||
$tags = [
|
||||
192699565737944 => 'Ongoing',
|
||||
192699565737944 => 'Open Beta',
|
||||
192699565737946 => 'Upcoming',
|
||||
192699565737948 => 'Future'
|
||||
];
|
||||
|
@ -40,12 +40,14 @@ class Asana
|
|||
else
|
||||
{
|
||||
$projectName = 'Other';
|
||||
$projectId = null;
|
||||
}
|
||||
$tasks[$tagLabel][] = array_intersect_key($fullTask, ['name' => null]) + [
|
||||
'badge' => $projectName,
|
||||
'date' => $fullTask['due_on'] ?? null,
|
||||
'body' => nl2br($fullTask['notes']) ,
|
||||
'body' => nl2br($fullTask['notes']),
|
||||
'group' => $tagLabel,
|
||||
'project_id' => $projectId,
|
||||
'assignee' => $fullTask['assignee'] ? ucwords($fullTask['assignee']['name']) : ''
|
||||
];
|
||||
}
|
||||
|
@ -64,6 +66,10 @@ class Asana
|
|||
{
|
||||
return $tA['date'] ? -1 : 1;
|
||||
}
|
||||
if ($tA['project_id'] xor $tB['project_id'])
|
||||
{
|
||||
return $tA['project_id'] ? -1 : 1;
|
||||
}
|
||||
return $tA['date'] < $tB['date'] ? -1 : 1;
|
||||
});
|
||||
}
|
||||
|
|
62
lib/thirdparty/Github.class.php
vendored
62
lib/thirdparty/Github.class.php
vendored
|
@ -106,21 +106,24 @@ class Github
|
|||
$sets = [];
|
||||
$allReleases = [];
|
||||
|
||||
$project = 'lbry';
|
||||
$page = 1;
|
||||
$projects = ['lbry' => 'Daemon', 'lbry-app' => 'App'];
|
||||
|
||||
do
|
||||
foreach($projects as $project => $projectLabel)
|
||||
{
|
||||
$releases = static::get('/repos/lbryio/' . $project . '/releases?page=' . $page, $cache);
|
||||
$page++;
|
||||
$allReleases = array_merge($allReleases, array_map(function ($release) use ($project)
|
||||
$page = 1;
|
||||
do
|
||||
{
|
||||
return $release + ['project' => $project];
|
||||
}, array_filter($releases, function ($release)
|
||||
{
|
||||
return ($release['tag_name'] ?? null) && ($release['published_at'] ?? null) && !$release['prerelease'];
|
||||
})));
|
||||
} while (count($releases) >= 30);
|
||||
$releases = static::get('/repos/lbryio/' . $project . '/releases?page=' . $page, $cache);
|
||||
$page++;
|
||||
$allReleases = array_merge($allReleases, array_map(function ($release) use ($project, $projectLabel)
|
||||
{
|
||||
return $release + ['project' => $projectLabel];
|
||||
}, array_filter($releases, function ($release)
|
||||
{
|
||||
return isset($release['tag_name']) && isset($release['published_at']) && $release['published_at'];
|
||||
})));
|
||||
} while (count($releases) >= 30);
|
||||
}
|
||||
|
||||
foreach ($allReleases as $release)
|
||||
{
|
||||
|
@ -128,23 +131,36 @@ class Github
|
|||
$matches = null;
|
||||
if (preg_match('/^v(\d+)\.(\d+)\./', $release['tag_name'] ?? '', $matches))
|
||||
{
|
||||
$group = 'v' . $matches[1] . '.' . $matches[2];
|
||||
$group = $release['project'] . ' v' . $matches[1] . '.' . $matches[2];
|
||||
}
|
||||
if ($group)
|
||||
{
|
||||
$sets[$group][] = [
|
||||
'project' => $release['project'],
|
||||
'date' => date('Y-m-d', strtotime($release['created_at'])),
|
||||
'created_at' => $release['created_at'],
|
||||
'name' => $release['name'] ?: $release['tag_name'],
|
||||
'url' => $release['html_url'],
|
||||
'version' => $release['tag_name'],
|
||||
'body' => ParsedownExtra::instance()->text($release['body'])
|
||||
];
|
||||
$sets[$group][] = array_intersect_key($release, [
|
||||
'prerelease' => null, 'tag_name' => null, 'published_at' => null, 'project' => null
|
||||
]) + [
|
||||
'date' => date('Y-m-d', strtotime($release['created_at'])),
|
||||
//I thought published_at, but GitHub displays created_at and published_at is out of sync sometimes (0.3.2, 0.3.3)
|
||||
'name' => $release['name'] ?: $release['tag_name'],
|
||||
'url' => $release['html_url'],
|
||||
'major_version' => (int)$matches[1],
|
||||
'minor_version' => (int)$matches[2],
|
||||
'patch_version' => (int)isset($matches[3]) ? $matches[3] : 0,
|
||||
'sort_key' => (int)$matches[1] * 1000000 + (int)$matches[2] * 1000 + (int)($matches[3] ?? 0),
|
||||
'version' => $matches[1] . '.' . $matches[2] . '.' . (isset($matches[3]) ? $matches[3] : ''),
|
||||
'body' => ParsedownExtra::instance()->text($release['body'])
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
uasort($sets, function ($sA, $sB) { return $sA[0]['created_at'] <=> $sB[0]['created_at']; });
|
||||
uasort($sets, function ($sA, $sB)
|
||||
{
|
||||
if ($sA[0]['project'] != $sB[0]['project'])
|
||||
{
|
||||
return $sA[0]['project'] < $sB[0]['project'] ? -1 : 1;
|
||||
}
|
||||
return $sA[0]['sort_key'] < $sB[0]['sort_key'] ? -1 : 1;
|
||||
});
|
||||
|
||||
foreach ($sets as $group => &$groupSet)
|
||||
{
|
||||
usort($groupSet, function ($rA, $rB) { return $rA['created_at'] <=> $rB['created_at']; });
|
||||
|
|
|
@ -29,15 +29,15 @@
|
|||
<div class="text-center"><a href="javascript:;" class="link-primary show-all-roadmap-groups">Show Earlier Releases</a></div>
|
||||
<?php foreach($items as $group => $groupItems): ?>
|
||||
<?php $lastItem = end($groupItems) ?>
|
||||
<?php $isOpen = !isset($lastItem['project']) || !isset($lastItem['version']) || $lastItem['version'] === $projectMaxVersions[$lastItem['project']] ?>
|
||||
<?php $isOpen = !isset($lastItem['project']) || !isset($lastItem['sort_key']) || $lastItem['sort_key'] === $projectMaxVersions[$lastItem['project']] ?>
|
||||
<h2 class="roadmap-group-title" <?php echo !$isOpen ? 'style="display: none"' : '' ?>">
|
||||
<span class="roadmap-group-title-label">
|
||||
<?php echo $group ?> <?php echo isset($lastItem['version']) && $lastItem['version'] === $projectMaxVersions[$lastItem['project']] ? '(latest)' : '' ?>
|
||||
<?php echo $group ?> <?php echo isset($lastItem['sort_key']) && $lastItem['sort_key'] === $projectMaxVersions[$lastItem['project']] ? '(latest)' : '' ?>
|
||||
</span>
|
||||
</h2>
|
||||
<div class="roadmap-group <?php echo !$isOpen ? 'roadmap-group-closed' : '' ?>">
|
||||
<?php $lastItem = end($groupItems) ?>
|
||||
<?php $maxItems = isset($lastItem['version']) ? 1 : count($groupItems) ?>
|
||||
<?php $maxItems = isset($lastItem['sort_key']) ? 1 : count($groupItems) ?>
|
||||
<?php $index = 0 ?>
|
||||
<?php if (count($groupItems) > $maxItems): ?>
|
||||
<div class="text-center spacer1"><a href="javascript:;" class="link-primary show-all-roadmap-group-items">Show All Items for <?php echo $group ?></a></div>
|
||||
|
|
Loading…
Add table
Reference in a new issue