]> git.ipfire.org Git - pbs.git/commitdiff
packages: Somewhat refactor detail page
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 21 Jun 2022 09:52:38 +0000 (09:52 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 21 Jun 2022 09:52:38 +0000 (09:52 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/templates/package-detail-list.html
src/web/__init__.py
src/web/packages.py

index 6b3104c6a7956c35853a688de9c70b59ad437ac9..43332a02724f56e4016f65e07f9e8f4ece34f0b2 100644 (file)
@@ -1,53 +1,61 @@
 {% extends "base.html" %}
 
-{% block title %}{{ _("Package") }} {{ pkg.name }}{% end block %}
+{% block title %}{{ _("Package") }} {{ pkg.name }}{% end block %}
 
-{% block body %}
-       <div class="row">
-               <div class="col-12 col-sm-12 col-md-12 col-lg-12 col-xl-12">
-                       <nav aria-label="breadcrumb" role="navigation">
-                               <ol class="breadcrumb">
-                                       <li class="breadcrumb-item"><a href="/">{{ _("Home") }}</a></li>
-                                       <li class="breadcrumb-item"><a href="/packages">{{ _("Packages") }}</a></li>
-                                       <li class="breadcrumb-item active"><a href="/package/{{ pkg.name }}">{{ pkg.name }}</a></li>
-                               </ol>
-                       </nav>
-               </div>
-       </div>
-       <div class="row">
-               <div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6">
-                       <h2>
-                               {{ pkg.name }}<br>
-                               <small>{{ pkg.summary }}</small>
-                       </h2>
-               </div>
-               <div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6">
-                       <ul class="nav justify-content-center justify-content-lg-end justify-content-xl-end">
-                               <li class="nav-item">
-                                       <a class="nav-link" href="/package/{{ pkg.name }}/builds/times">
-                                               {{ _("Build times") }}
-                                       </a>
+{% block container %}
+       <nav aria-label="{{ _("You are here:") }}" role="navigation">
+               <ul class="breadcrumbs">
+                       <li>
+                               <a href="/">{{ _("Home") }}</a>
+                       </li>
+                       <li>
+                               <a href="/packages">{{ _("Packages") }}</a>
+                       </li>
+                       <li>
+                               <span class="show-for-sr">{{ _("Current") }}: </span> {{ package.name }}
+                       </li>
+               </ul>
+       </nav>
+
+       <h2>
+               {{ package.name }}
+
+               {% if package.summary %}
+                       <small>{{ package.summary }}</small>
+               {% end %}
+       </h2>
+
+       <div class="callout">
+               {% module Text(pkg.description) %}
+
+               <ul class="menu simple">
+                       {% if pkg.url %}
+                               <li>
+                                       <a href="{{ pkg.url }}">{{ extract_hostname(pkg.url) }}</a>
                                </li>
-                               <li class="nav-item">
-                                       <a class="nav-link" href="/package/{{ pkg.name }}/builds/scratch">
-                                               {{ _("Scratch builds") }}
-                                       </a>
+                       {% end %}
+
+                       {% if pkg.license %}
+                               <li>
+                                       {{ pkg.license }}
                                </li>
-                               <li class="nav-item">
-                                       <a class="nav-link" href="/package/{{ pkg.name }}/builds/test">
-                                               {{ _("Test builds") }}
-                                       </a>
+                       {% end %}
+
+                       {% if pkg.groups %}
+                               <li>
+                                       {{ locale.list(pkg.groups) }}
                                </li>
-                       </ul>
-               </div>
-       </div>
+                       {% end %}
 
+                       {% if pkg.maintainer %}
+                               <li>
+                                       {% module LinkToUser(pkg.maintainer) %}
+                               </li>
+                       {% end %}
+               </ul>
+       </div>
 
        <div class="row">
-                       <div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6">
-                               {% module PackageHeader(pkg) %}
-                       </div>
-
                        <div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6">
                                {% module Changelog(builds=builds) %}
 
index d12726a0fde59443c62d15a3544557d7d7caa312..d3e66422293d6895738fc7e845a620771a06f09a 100644 (file)
@@ -4,6 +4,7 @@
 import logging
 import tornado.locale
 import tornado.web
+import urllib.parse
 
 from .. import Backend
 from ..constants import *
@@ -86,6 +87,7 @@ class Application(tornado.web.Application):
                                "SelectTimezone"     : ui_modules.SelectTimezoneModule,
                        },
                        ui_methods = {
+                               "extract_hostname"   : self.extract_hostname,
                                "format_time"        : self.format_time,
                        },
                        xsrf_cookies = True,
@@ -117,7 +119,7 @@ class Application(tornado.web.Application):
                        (r"/package/([\w]{8}-[\w]{4}-[\w]{4}-[\w]{4}-[\w]{12})", packages.PackageDetailHandler),
                        (r"/package/([\w]{8}-[\w]{4}-[\w]{4}-[\w]{4}-[\w]{12})/download(.*)", packages.PackageFileDownloadHandler),
                        (r"/package/([\w]{8}-[\w]{4}-[\w]{4}-[\w]{4}-[\w]{12})/view(.*)", packages.PackageFileViewHandler),
-                       (r"/package/([\w\-\+]+)", packages.PackageNameHandler),
+                       (r"/packages/([\w\-\+]+)", packages.PackageNameHandler),
                        (r"/package/([\w\-\+]+)/builds/scratch", packages.PackageScratchBuildsHandler),
                        (r"/package/([\w\-\+]+)/builds/times", packages.PackageBuildsTimesHandler),
                        (r"/package/([\w\-\+]+)/changelog", packages.PackageChangelogHandler),
@@ -216,6 +218,11 @@ class Application(tornado.web.Application):
 
        ## UI methods
 
+       def extract_hostname(self, handler, url):
+               url = urllib.parse.urlparse(url)
+
+               return url.hostname
+
        def format_time(self, handler, s, shorter=False):
                _ = handler.locale.translate
 
index 9f820b38f20c0414fd19c7019f03ae95a816e4f0..0deb5009e8448b1f0e77e05e45476f28363efb3a 100644 (file)
@@ -47,7 +47,7 @@ class PackageNameHandler(base.BaseHandler):
                bugs = self.backend.bugzilla.get_bugs_from_component(name)
 
                self.render("package-detail-list.html", name=name, builds=builds,
-                       latest_build=latest_build, pkg=latest_build.pkg, bugs=bugs)
+                       latest_build=latest_build, package=latest_build.pkg, pkg=latest_build.pkg, bugs=bugs)
 
 
 class PackageScratchBuildsHandler(base.BaseHandler):