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
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
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 = \
+++ /dev/null
-<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>
+++ /dev/null
-{% 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 %}
--- /dev/null
+{% 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 %}
--- /dev/null
+{% 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 %}
# Repositories
"ReposList" : repos.ListModule,
+ # Users
+ "UsersList" : users.ListModule,
+
"CommitMessage" : ui_modules.CommitMessageModule,
"CommitsTable" : ui_modules.CommitsTableModule,
"JobState" : ui_modules.JobStateModule,
"PackageFilesTable" : ui_modules.PackageFilesTableModule,
"RepoActionsTable" : ui_modules.RepoActionsTableModule,
"SourceTable" : ui_modules.SourceTableModule,
- "UsersTable" : ui_modules.UsersTableModule,
"WatchersSidebarTable" : ui_modules.WatchersSidebarTableModule,
"HeadingDate" : ui_modules.HeadingDateModule,
(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\-]+)",
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")
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):
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)