templates_bugs_modulesdir = $(templates_bugsdir)/modules
dist_templates_builders_DATA = \
+ src/templates/builders/create.html \
src/templates/builders/delete.html \
src/templates/builders/edit.html \
src/templates/builders/index.html \
- src/templates/builders/new.html \
src/templates/builders/show.html
templates_buildersdir = $(templatesdir)/builders
--- /dev/null
+{% extends "../modal.html" %}
+
+{% block title %}{{ _("Create A New Builder") }}{% end block %}
+
+{% block breadcrumbs %}
+ <nav class="breadcrumb" aria-label="breadcrumbs">
+ <ul>
+ <li>
+ <a href="/builders">{{ _("Builders") }}</a>
+ </li>
+ <li class="is-active">
+ <a href="#" aria-current="page">{{ _("Create") }}</a>
+ </li>
+ </ul>
+ </nav>
+{% end block %}
+
+{% block modal_title %}
+ <h4 class="title is-4">{{ _("Create A New Builder") }}</h4>
+{% end block %}
+
+{% block modal %}
+ <form method="POST" action="">
+ {% raw xsrf_form_html() %}
+
+ {# Hostname #}
+ <div class="field">
+ <label class="label">{{ _("Hostname") }}</label>
+ <div class="control">
+ <input class="input" type="fqdn" name="hostname"
+ placeholder="{{ _("Hostname") }}" required>
+ </div>
+ </div>
+
+ {# Submit! #}
+ <div class="field">
+ <button type="submit" class="button is-success is-fullwidth">
+ {{ _("Create") }}
+ </button>
+ </div>
+ </form>
+{% end block %}
{% end %}
{% if current_user and current_user.is_admin() %}
- <a class="button is-success" href="/builders/new">
+ <a class="button is-success" href="/builders/create">
{{ _("Create Builder") }}
</a>
{% end %}
+++ /dev/null
-{% extends "../base.html" %}
-
-{% block title %}{{ _("Create new builder") }}{% 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="/builders">{{ _("Builders") }}</a></li>
- <li class="breadcrumb-item active">
- <a href="/builders/new">{{ _("Create new builder") }}</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;">
- {{ _("Create a new builder") }}
- </h2>
- </div>
- </div>
-
- <div class="row">
- <div class="col-12 col-sm-12 col-md-12 col-lg-12 col-xl-12">
- <form method="POST" action="">
- {% raw xsrf_form_html() %}
- <fieldset>
- <div class="form-group">
- <label for="name">{{ _("Hostname") }}</label>
- <input type="text" class="form-control" id="name" name="name"
- aria-describedby="nameHelp" placeholder="{{ _("Hostname") }}">
- <small id="nameHelp" class="form-text text-muted">
- {{ _("Enter the canonical hostname of the machine.") }}
- </small>
- </div>
-
- <button type="submit" class="btn btn-primary">{{ _("Create new builder") }}</button>
- </fieldset>
- </form>
- </div>
- </div>
-{% end block %}
# Builders
(r"/builders", builders.IndexHandler),
- (r"/builders/new", builders.BuilderNewHandler),
+ (r"/builders/create", builders.CreateHandler),
(r"/builders/([A-Za-z0-9\-\.]+)", builders.ShowHandler),
(r"/builders/([A-Za-z0-9\-\.]+)/delete", builders.BuilderDeleteHandler),
(r"/builders/([A-Za-z0-9\-\.]+)/edit", builders.BuilderEditHandler),
self.render("builders/show.html", builder=builder)
-class BuilderNewHandler(base.BaseHandler):
+class CreateHandler(base.BaseHandler):
+ @tornado.web.authenticated
def get(self):
- self.render("builders/new.html")
+ # Must be admin
+ if not self.current_user.is_admin():
+ raise tornado.web.HTTPError(403)
+
+ self.render("builders/create.html")
@tornado.web.authenticated
def post(self):
- # Check permissions
- if not builder.has_perm(self.current_user):
+ # Must be admin
+ if not self.current_user.is_admin():
raise tornado.web.HTTPError(403)
- name = self.get_argument("name")
+ hostname = self.get_argument("hostname")
# Create a new builder
with self.db.transaction():
- builder = self.backend.builders.create(name, user=self.current_user)
+ builder = self.backend.builders.create(hostname, user=self.current_user)
- self.redirect("/builders/%s" % builder.hostname)
+ self.redirect("/builders/%s/edit" % builder.hostname)
class BuilderEditHandler(base.BaseHandler):
if not builder:
raise tornado.web.HTTPError(404, "Builder not found")
+ # Check permissions
+ if not builder.has_perm(self.current_user):
+ raise tornado.web.HTTPError(403)
+
self.render("builders/edit.html", builder=builder)
@tornado.web.authenticated