]> git.ipfire.org Git - pbs.git/commitdiff
packages: Refactor showing dependencies
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 25 Jun 2022 18:40:03 +0000 (18:40 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 25 Jun 2022 18:40:03 +0000 (18:40 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Makefile.am
src/templates/modules/packages/dependency-table.html [deleted file]
src/templates/packages/modules/dependencies.html [new file with mode: 0644]
src/templates/packages/show.html
src/web/__init__.py
src/web/packages.py
src/web/ui_modules.py

index d5ff61c26c977e514dbed0c396c7ab5fbe8584c0..30c647d2ad891a30ed4a0c367b9710e370eb00d1 100644 (file)
@@ -295,11 +295,6 @@ dist_templates_modules_jobs_DATA = \
 
 templates_modules_jobsdir = $(templates_modulesdir)/jobs
 
-dist_templates_modules_packages_DATA = \
-       src/templates/modules/packages/dependency-table.html
-
-templates_modules_packagesdir = $(templates_modulesdir)/packages
-
 dist_templates_modules_select_DATA = \
        src/templates/modules/select/locale.html \
        src/templates/modules/select/timezone.html
@@ -333,6 +328,7 @@ dist_templates_packages_builds_DATA = \
 templates_packages_buildsdir = $(templates_packagesdir)/builds
 
 dist_templates_packages_modules_DATA = \
+       src/templates/packages/modules/dependencies.html \
        src/templates/packages/modules/info.html
 
 templates_packages_modulesdir = $(templates_packagesdir)/modules
diff --git a/src/templates/modules/packages/dependency-table.html b/src/templates/modules/packages/dependency-table.html
deleted file mode 100644 (file)
index 7b17d98..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<div class="row">
-       {% for name, deps in dependencies %}
-               <div class="col-12 col-sm-12 col-md-12 col-lg-12 col-xl-12">
-                       {% if name == "provides" %}
-                               <h4 style="word-wrap: break-word;" >{{ _("Provides") }}</h4>
-                       {% elif name == "requires" %}
-                               <h4 style="word-wrap: break-word;">{{ _("Requires") }}</h4>
-                       {% elif name == "prerequires" %}
-                               <h4 style="word-wrap: break-word;">{{ _("Pre-requires") }}</h4>
-                       {% elif name == "conflicts" %}
-                               <h4 style="word-wrap: break-word;">{{ _("Conflicts") }}</h4>
-                       {% elif name == "obsoletes" %}
-                               <h4 style="word-wrap: break-word;">{{ _("Obsoletes") }}</h4>
-                       {% elif name == "recommends" %}
-                               <h4 style="word-wrap: break-word;">{{ _("Recommends") }}</h4>
-                       {% elif name == "suggests" %}
-                               <h4 style="word-wrap: break-word;">{{ _("Suggests") }}</h4>
-                       {% end %}
-
-                       <ul class="unstyled">
-                               {% for d in deps %}
-                                       <li>{{ d }}</li>
-                               {% end %}
-                       </ul>
-               </div>
-       {% end %}
-</div>
diff --git a/src/templates/packages/modules/dependencies.html b/src/templates/packages/modules/dependencies.html
new file mode 100644 (file)
index 0000000..0bfe347
--- /dev/null
@@ -0,0 +1,21 @@
+<ul class="tabs" data-tabs id="dependencies">
+       {% for i, dep in enumerate((dep for dep in deps if deps[dep])) %}
+               <li class="tabs-title {% if i == 0 %}is-active{% end %}">
+                       <a href="#{{ dep.lower() }}" {% if i == 0 %}aria-selected="true"{% end %}>
+                               {{ dep }}
+                       </a>
+               </li>
+       {% end %}
+</ul>
+
+<div class="tabs-content" data-tabs-content="dependencies">
+       {% for i, dep in enumerate((dep for dep in deps if deps[dep])) %}
+               <div class="tabs-panel {% if i == 0 %}is-active{% end %}" id="{{ dep.lower() }}">
+                       <ul class="no-bullet">
+                               {% for line in deps[dep] %}
+                                       <li>{{ line }}</li>
+                               {% end %}
+                       </ul>
+               </div>
+       {% end %}
+</div>
index 3ec410a5325c89121b85f4f191a7aeba74ea576c..cf6a19016b311f6b7fd632d9fb68d1da942fca65 100644 (file)
 
        {# XXX add reference to commit for source packages #}
 
-       <div class="row">
-               <div class="col-12 col-sm-12 col-md-12 col-lg-12 col-xl-12">
-                       <h3 style="word-wrap: break-word;">
-                               {% if package.arch == "src" %}
-                                       {{ _("Build dependencies") }}
-                               {% else %}
-                                       {{ _("Dependencies") }}
-                               {% end %}
-                       </h3>
-               </div>
-       </div>
-
-       {% module PackagesDependencyTable(package) %}
+       {% module PackageDependencies(package) %}
 
        {% if package.filelist %}
                <div class="row">
index 00b91ad66be19db11a46d2898a544dfab9f08083..5219c492efa8b5161996394dc6da643257fa7fbf 100644 (file)
@@ -62,7 +62,7 @@ class Application(tornado.web.Application):
 
                                # Packages
                                "PackageInfo"        : packages.InfoModule,
-                               "PackagesDependencyTable" : ui_modules.PackagesDependencyTableModule,
+                               "PackageDependencies": packages.DependenciesModule,
 
                                # Repositories
                                "ReposList"          : repos.ListModule,
index 61c0141d7604640ce85e9ad0ab89918ea8582c09..e817552f9ab9f41852a26891d729936b64dea2f7 100644 (file)
@@ -172,6 +172,22 @@ class PackageFileViewHandler(PackageFileDownloadHandler):
                        mimetype=mimetype, content=content, filesize=f.size)
 
 
+class DependenciesModule(ui_modules.UIModule):
+       def render(self, package):
+               _ = self.locale.translate
+
+               deps = {
+                       _("Provides")   : package.provides,
+                       _("Requires")   : package.requires,
+                       _("Conflicts")  : package.conflicts,
+                       _("Obsoletes")  : package.obsoletes,
+                       _("Recommends") : package.recommends,
+                       _("Suggests")   : package.suggests,
+               }
+
+               return self.render_string("packages/modules/dependencies.html", deps=deps)
+
+
 class InfoModule(ui_modules.UIModule):
        def render(self, package, show_evr=False):
                return self.render_string("packages/modules/info.html",
index c823acde1faca0c7eafab83c2c0aa989bbb1beb1..77c6f53767136dcba7be979087fdcf6c46abc3c2 100644 (file)
@@ -108,31 +108,6 @@ class PackagesTableModule(UIModule):
                        packages=packages)
 
 
-class PackagesDependencyTableModule(UIModule):
-       def render(self, pkg):
-               if pkg.arch == "src":
-                       all_deps = [
-                               (None, pkg.requires),
-                       ]
-               else:
-                       all_deps = [
-                               ("provides", pkg.provides),
-                               ("requires", pkg.requires),
-                               ("conflicts", pkg.conflicts),
-                               ("obsoletes", pkg.obsoletes),
-                               ("recommends", pkg.recommends),
-                               ("suggests", pkg.suggests),
-                       ]
-
-               has_deps = []
-               for name, deps in all_deps:
-                       if deps:
-                               has_deps.append((name, deps))
-
-               return self.render_string("modules/packages/dependency-table.html",
-                       pkg=pkg, dependencies=has_deps)
-
-
 class PackageTable2Module(UIModule):
        def render(self, packages):
                return self.render_string("modules/package-table-detail.html",