]> git.ipfire.org Git - pbs.git/commitdiff
users: Refactor listing
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 5 Oct 2022 16:45:12 +0000 (16:45 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 5 Oct 2022 16:45:12 +0000 (16:45 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Makefile.am
src/templates/modules/user-table.html [deleted file]
src/templates/user-list.html [deleted file]
src/templates/users/index.html [new file with mode: 0644]
src/templates/users/modules/list.html [new file with mode: 0644]
src/web/__init__.py
src/web/ui_modules.py
src/web/users.py

index 26ab3771718cdb2b184a268166bf5d0f6b527dc9..e561681b2b1a3b63bcf7b659dc60db20f995d7aa 100644 (file)
@@ -179,10 +179,8 @@ dist_templates_DATA = \
        src/templates/source-list.html \
        src/templates/user-delete.html \
        src/templates/user-impersonation.html \
-       src/templates/user-list.html \
        src/templates/user-profile-edit-fail.html \
-       src/templates/user-profile-edit.html \
-       src/templates/user-profile-need-activation.html
+       src/templates/user-profile-edit.html
 
 templatesdir = $(datadir)/templates
 
@@ -291,7 +289,6 @@ dist_templates_modules_DATA = \
        src/templates/modules/repo-actions-table.html \
        src/templates/modules/source-table.html \
        src/templates/modules/text.html \
-       src/templates/modules/user-table.html \
        src/templates/modules/watchers-sidebar-table.html
 
 templates_modulesdir = $(templatesdir)/modules
@@ -336,10 +333,16 @@ dist_templates_packages_modules_DATA = \
 templates_packages_modulesdir = $(templates_packagesdir)/modules
 
 dist_templates_users_DATA = \
+       src/templates/users/index.html \
        src/templates/users/show.html
 
 templates_usersdir = $(templatesdir)/users
 
+dist_templates_users_modules_DATA = \
+       src/templates/users/modules/list.html
+
+templates_users_modulesdir = $(templates_usersdir)/modules
+
 # ------------------------------------------------------------------------------
 #
 dist_static_DATA = \
diff --git a/src/templates/modules/user-table.html b/src/templates/modules/user-table.html
deleted file mode 100644 (file)
index 065dc04..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<div class="table-responsive">
-       <table class="table table-striped table-hover">
-               <tbody>
-                       {% for u in users %}
-                               <tr>
-                                       <td>
-                                               <img class="float-right img-fluid" src="{{ u.avatar(64) }}" alt="{{ u.realname }}">
-
-                                               <a href="/user/{{ u.name }}">{{ u.realname }}</a>
-                                               <br>
-                                               {% if not u.name == u.realname %}
-                                                       <span class="text-muted">{{ u.name }}</span>
-                                               {% end %}
-                                       </td>
-                               </tr>
-                       {% end %}
-               </tbody>
-       </table>
-</div>
diff --git a/src/templates/user-list.html b/src/templates/user-list.html
deleted file mode 100644 (file)
index ae44015..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-{% extends "base.html" %}
-
-{% block title %}{{ _("User list") }}{% 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 active">
-                                               <a href="/users">
-                                                       {{ _("Users") }}
-                                               </a>
-                                       </li>
-                               </ol>
-                       </nav>
-               </div>
-       </div>
-
-       <div class="row">
-               <div class="col-12 col-sm-12 col-md-12 col-lg-12 col-xl-12">
-                       <h2 style="word-wrap: break-word;">
-                               {{ _("Users") }}
-                       </h2>
-               </div>
-       </div>
-
-       <div class="row">
-               <div class="col-12 col-sm-12 col-md-12 col-lg-12 col-xl-12">
-                       {% module UsersTable(users) %}
-               </div>
-       </div>
-
-{% end block %}
diff --git a/src/templates/users/index.html b/src/templates/users/index.html
new file mode 100644 (file)
index 0000000..684e479
--- /dev/null
@@ -0,0 +1,28 @@
+{% extends "../base.html" %}
+
+{% block title %}{{ _("Users") }}{% end block %}
+
+{% block container %}
+       <nav aria-label="{{ _("You are here:") }}" role="navigation">
+               <ul class="breadcrumbs">
+                       <li>
+                               <a href="/">{{ _("Home") }}</a>
+                       </li>
+                       <li>
+                               <span class="show-for-sr">{{ _("Current") }}: </span> {{ _("Users") }}
+                       </li>
+               </ul>
+       </nav>
+
+       <h1 class="text-center">{{ _("Users") }}</h1>
+
+       {#
+               XXX TODO
+               This will need to be filled with some interesting stats like new users,
+               top users, and so on...
+       #}
+
+       <section>
+               {% module UsersList(users) %}
+       </section>
+{% end block %}
diff --git a/src/templates/users/modules/list.html b/src/templates/users/modules/list.html
new file mode 100644 (file)
index 0000000..92b7e60
--- /dev/null
@@ -0,0 +1,11 @@
+{% for user in users %}
+       <div class="callout">
+               <h5 class="clearfix">
+                       <img class="float-right" src="{{ user.avatar(64) }}" alt="{{ user.realname }}">
+
+                       <a href="/users/{{ user.name }}">{{ user }}</a>
+
+                       <small>{{ user.name }}</small>
+               </h5>
+       </div>
+{% end %}
index 95b96ffc155d0f84a78cc7042a453165caf29fbf..e124b396e1b559540241b0f99506bb270bfa181f 100644 (file)
@@ -73,6 +73,9 @@ class Application(tornado.web.Application):
                                # Repositories
                                "ReposList"          : repos.ListModule,
 
+                               # Users
+                               "UsersList"          : users.ListModule,
+
                                "CommitMessage"      : ui_modules.CommitMessageModule,
                                "CommitsTable"       : ui_modules.CommitsTableModule,
                                "JobState"           : ui_modules.JobStateModule,
@@ -87,7 +90,6 @@ class Application(tornado.web.Application):
                                "PackageFilesTable"  : ui_modules.PackageFilesTableModule,
                                "RepoActionsTable"   : ui_modules.RepoActionsTableModule,
                                "SourceTable"        : ui_modules.SourceTableModule,
-                               "UsersTable"         : ui_modules.UsersTableModule,
                                "WatchersSidebarTable" : ui_modules.WatchersSidebarTableModule,
 
                                "HeadingDate"        : ui_modules.HeadingDateModule,
@@ -115,7 +117,7 @@ class Application(tornado.web.Application):
                        (r"/logout", auth.LogoutHandler),
 
                        # User profiles
-                       (r"/users", users.UsersHandler),
+                       (r"/users", users.IndexHandler),
                        (r"/users/(\w+)", users.ShowHandler),
                        (r"/users/(\w+)/repos/create", repos.CreateCustomHandler),
                        (r"/users/(?P<user_slug>\w+)/repos/(?P<distro_slug>[A-Za-z0-9\-\.]+)/(?P<repo_slug>[A-Za-z0-9\-]+)",
index a0ddc5efc008038917f65c5016a64f1b20445959..df86a3014faad59f601aecb371adf37a0313f09e 100644 (file)
@@ -359,11 +359,6 @@ class LogTableModule(UIModule):
                        messages=messages, links=links)
 
 
-class UsersTableModule(UIModule):
-       def render(self, users):
-               return self.render_string("modules/user-table.html", users=users)
-
-
 class BuildOffsetModule(UIModule):
        def render(self):
                return self.render_string("modules/build-offset.html")
index 9da1340fac22bcc9fef77b923e1a247d8ef105c5..15de10d7d7f38bfbc8e5864dff9b79edb33a6bdf 100644 (file)
@@ -4,6 +4,12 @@ import tornado.locale
 import tornado.web
 
 from . import base
+from . import ui_modules
+
+class IndexHandler(base.BaseHandler):
+       def get(self):
+               self.render("users/index.html", users=self.backend.users)
+
 
 class ShowHandler(base.BaseHandler):
        def get(self, name):
@@ -85,7 +91,6 @@ class UserEditHandler(base.BaseHandler):
                self.redirect("/user/%s" % user.name)
 
 
-class UsersHandler(base.BaseHandler):
-       @tornado.web.authenticated
-       def get(self):
-               self.render("user-list.html", users=self.backend.users)
+class ListModule(ui_modules.UIModule):
+       def render(self, users):
+               return self.render_string("users/modules/list.html", users=users)