{% 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) %}
import logging
import tornado.locale
import tornado.web
+import urllib.parse
from .. import Backend
from ..constants import *
"SelectTimezone" : ui_modules.SelectTimezoneModule,
},
ui_methods = {
+ "extract_hostname" : self.extract_hostname,
"format_time" : self.format_time,
},
xsrf_cookies = True,
(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),
## 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
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):