]> git.ipfire.org Git - pbs.git/commitdiff
users: Fix editing
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 11 Feb 2025 18:32:00 +0000 (18:32 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 11 Feb 2025 18:32:00 +0000 (18:32 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/templates/users/edit.html
src/web/users.py

index d48b48c2af4c1bc8a1cfcc541c5b65e4d20ebf7a..eef14bde501481039d165925e231e2f888885ca0 100644 (file)
@@ -1,40 +1,54 @@
-{% extends "../base.html" %}
+{% extends "modal.html" %}
 
-{% block title %}{{ user }} - {{ _("Edit User") }}{% end block %}
+{% block title %}{{ _("Edit %s") % user }}{% endblock %}
 
-{% block container %}
-       <nav aria-label="{{ _("You are here:") }}" role="navigation">
-               <ul class="breadcrumbs">
-                       <li>
-                               <a href="/">{{ _("Home") }}</a>
-                       </li>
+{% block breadcrumbs %}
+       <nav class="breadcrumb" aria-label="breadcrumbs">
+               <ul>
                        <li>
                                <a href="/users">{{ _("Users") }}</a>
                        </li>
+
                        <li>
                                <a href="/users/{{ user.name }}">{{ user }}</a>
                        </li>
-                       <li>
-                               <span class="show-for-sr">{{ _("Current") }}: </span> {{ _("Edit") }}
+
+                       <li class="is-active">
+                               <a href="#" aria-current="page">{{ _("Edit") }}</a>
                        </li>
                </ul>
        </nav>
+{% endblock %}
+
+{% block modal_title %}
+       <h4 class="title is-4">{{ _("Edit %s") % user }}</h4>
+{% endblock %}
 
-       <div class="grid-x grid-padding-x">
-               <div class="cell large-6 float-center">
-                       <form method="POST" action="">
-                               <div class="callout">
-                                       {% raw xsrf_form_html() %}
+{% block modal %}
+       <form method="POST" action="">
+               {{ xsrf_form_html() | safe }}
 
-                                       {# XXX TODO there is nothing to do here right now #}
-                               </div>
+               {# Bugzilla API Key #}
+               <div class="field">
+                       <label class="label">{{ _("Bugzilla API Key") }}</label>
+
+                       <div class="control">
+                               <input class="input" type="text" name="bugzilla-api-key">
+                       </div>
+               </div>
 
-                               <button class="success button expanded" type="submit">{{ _("Save") }}</button>
+               <div class="field is-grouped">
+                       <div class="control">
+                               <button class="button is-success is-link" type="submit">
+                                       {{ _("Save") }}
+                               </button>
+                       </div>
 
-                               <a class="small danger button expanded" href="/users/{{ user.name }}/delete">
+                       <div class="control">
+                               <a class="button is-danger is-outlined is-link" href="/users/{{ user.name }}/delete">
                                        {{ _("Delete") }}
                                </a>
-                       </form>
+                       </div>
                </div>
-       </div>
-{% end block %}
+       </form>
+{% endblock %}
index 0027e7e7afc53c5355451e88d6c2825db3b7aa3f..589ed1c6d1ce082dbe0b72de2eb2c6e9493c8607 100644 (file)
@@ -54,8 +54,8 @@ class DeleteHandler(base.BaseHandler):
 
 class EditHandler(base.BaseHandler):
        @base.authenticated
-       def get(self, name):
-               user = self.backend.users.get_by_name(name)
+       async def get(self, name):
+               user = await self.backend.users.get_by_name(name)
                if not user:
                        raise tornado.web.HTTPError(404, "Could not find user %s" % name)
 
@@ -63,11 +63,11 @@ class EditHandler(base.BaseHandler):
                if not user.has_perm(self.current_user):
                        raise tornado.web.HTTPError(403)
 
-               self.render("users/edit.html", user=user)
+               await self.render("users/edit.html", user=user)
 
        @base.authenticated
        async def post(self, name):
-               user = self.backend.users.get_by_name(name)
+               user = await self.backend.users.get_by_name(name)
                if not user:
                        raise tornado.web.HTTPError(404, "Could not find user %s" % name)
 
@@ -75,7 +75,7 @@ class EditHandler(base.BaseHandler):
                if not user.has_perm(self.current_user):
                        raise tornado.web.HTTPError(403)
 
-               with self.db.transaction():
+               async with await self.db.transaction():
                        # Connect to Bugzilla
                        bugzilla_api_key = self.get_argument("bugzilla_api_key", None)
                        if bugzilla_api_key: