package index: remove the "all" option and default to some repo

The page is getting very large and showing all packages for all
repos shouldn't be a common use case.

Let's filter always and default to mingw64
This commit is contained in:
Christoph Reiter
2022-04-01 17:45:16 +02:00
parent c4290f7673
commit bb4b996726
3 changed files with 8 additions and 4 deletions

View File

@@ -26,6 +26,8 @@ CONFIG = [
(REPO_URL + "/msys/x86_64/msys.files", "msys", "x86_64"),
]
DEFAULT_REPO = "mingw64"
VERSION_CONFIG = []
for repo in ["core", "extra", "community", "testing", "community-testing",
"multilib"]:

View File

@@ -11,12 +11,11 @@
<form class="row g-2 align-items-center" action="{{ url_for('package') }}" method="get">
<div class="col-auto">
Repositories:
Repository:
</div>
<div class="col-auto">
<select name="repo" class="form-select form-select-sm" onchange="this.form.submit()">
<option {{ "selected" if not repo_filter or "" }} value="">All</option>
{% for r in repos|sort(attribute='name') %}
<option value="{{ r.name }}" {{ "selected" if repo_filter == r.name or "" }}>{{ r.name }}</option>
{% endfor %}

View File

@@ -21,6 +21,7 @@ from fastapi.staticfiles import StaticFiles
from fastapi_etag import add_exception_handler as add_etag_exception_handler
from .appstate import state, get_repositories, Package, is_skipped, Source, DepType, SrcInfoPackage
from .appconfig import DEFAULT_REPO
from .utils import extract_upstream_version, version_is_newer_than
router = APIRouter(default_response_class=HTMLResponse)
@@ -271,13 +272,15 @@ async def group(request: Request, response: Response, group_name: Optional[str]
async def package(request: Request, response: Response, package_name: Optional[str] = None, repo: Optional[str] = None, variant: Optional[str] = None) -> Response:
global state
repo = repo or DEFAULT_REPO
packages = []
provides = []
for s in state.sources.values():
for k, p in sorted(s.packages.items()):
is_package_exact = (package_name is None or p.name == package_name)
if is_package_exact or package_name in p.provides:
if not repo or p.repo == repo:
if p.repo == repo:
if not variant or p.repo_variant == variant:
if is_package_exact:
packages.append((s, p))
@@ -298,7 +301,7 @@ async def package(request: Request, response: Response, package_name: Optional[s
"request": request,
"packages": packages,
"repos": repos,
"repo_filter": repo or None,
"repo_filter": repo,
}, headers=dict(response.headers))