src/templates/job-schedule-rebuild.html \
src/templates/job-schedule-test.html \
src/templates/jobs-detail.html \
- src/templates/jobs-filter.html \
- src/templates/jobs-index.html \
src/templates/keys-delete.html \
src/templates/keys-import.html \
src/templates/keys-list.html \
src/templates/package-detail-list.html \
src/templates/package-properties.html \
src/templates/packages-list.html \
+ src/templates/queue.html \
src/templates/register-activation-fail.html \
src/templates/register-activation-success.html \
src/templates/register-fail.html \
src/templates/job-schedule-rebuild.html
src/templates/job-schedule-test.html
src/templates/jobs-detail.html
-src/templates/jobs-filter.html
-src/templates/jobs-index.html
src/templates/keys-delete.html
src/templates/keys-import.html
src/templates/keys-list.html
src/templates/packages/changelog.html
src/templates/packages-list.html
src/templates/packages/view-file.html
+src/templates/queue.html
src/templates/register-activation-fail.html
src/templates/register-activation-success.html
src/templates/register-fail.html
<ul class="nav nav-pills">
<li>
- <a href="/jobs">{{ _("Show more build jobs") }}</a>
+ <a href="/queue">
+ {{ _("Job Queue") }}
+
+ <!-- should be a badge -->
+ ({{ len(backend.jobqueue) }})
+ </a>
</li>
</ul>
{% end %}
+++ /dev/null
-{% extends "base.html" %}
-
-{% block title %}{{ _("Filter jobs") }}{% end block %}
-
-{% block body %}
- <ul class="breadcrumb">
- <li>
- <a href="/">{{ _("Home") }}</a>
- <span class="divider">/</span>
- </li>
- <li>
- <a href="/jobs">{{ _("Jobs") }}</a>
- <span class="divider">/</span>
- </li>
- <li class="active">
- <a href="/jobs/filter">{{ _("Filter") }}</a>
- </li>
- </ul>
-
- <div class="page-header">
- <h2>{{ _("Filter jobs") }}</h2>
- </div>
-
- <form class="form-horizontal" method="GET" action="/jobs">
- <fieldset>
- <div class="control-group">
- <label class="control-label">{{ _("Builder") }}</label>
- <div class="controls">
- <select name="builder">
- <option value="">{{ _("[Choose one]") }}</option>
- {% for b in builders %}
- <option value="{{ b.name }}">{{ b.name }}</option>
- {% end %}
- </select>
- <span class="help-block">
- {{ _("Only show jobs, that have been built by this builder.") }}
- </span>
- </div>
- </div>
-
- <hr>
-
- <div class="control-group">
- <label class="control-label">{{ _("Architecture") }}</label>
- <div class="controls">
- <select name="arch">
- <option value="">{{ _("[Choose one]") }}</option>
- {% for a in arches %}
- <option value="{{ a.name }}">{{ a.name }}</option>
- {% end %}
- </select>
- <span class="help-block">
- {{ _("Only show jobs, with this architecture.") }}
- </span>
- </div>
- </div>
-
- <div class="form-actions">
- <button type="submit" class="btn btn-primary">{{ _("Go!") }}</button>
- </div>
- </fieldset>
- </form>
-{% end block %}
+++ /dev/null
-{% extends "base.html" %}
-
-{% block title %}{{ _("Jobs") }}{% end block %}
-
-{% block body %}
- <ul class="breadcrumb">
- <li>
- <a href="/">{{ _("Home") }}</a>
- <span class="divider">/</span>
- </li>
- <li class="active">
- <a href="/jobs">{{ _("Jobs") }}</a>
- </li>
- </ul>
-
- <ul class="nav nav-pills pull-right">
- <li>
- <a href="/jobs/filter">{{ _("Filter jobs") }}</a>
- </li>
- </ul>
-
- <div class="page-header">
- <h2>{{ _("Jobs") }}</h2>
- </div>
-
- {% if arch or builder or date %}
- <ul>
- {% if date %}
- <li>
- {{ _("Showing only jobs from %s.") % date }}
- </li>
- {% end %}
-
- {% if builder %}
- <li>
- <a href="/builder/{{ builder.name }}">
- {{ _("Showing only builds that have been built on %s.") % builder.name }}
- </a>
- </li>
- {% end %}
-
- {% if arch %}
- <li>
- <a href="/arch/{{ arch.name }}">
- {{ _("Showing only jobs built for %s.") % arch.name }}
- </a>
- </li>
- {% end %}
- </ul>
-
- <hr>
- {% end %}
-
- {% module JobsList(jobs) %}
-{% end block %}
--- /dev/null
+{% extends "base.html" %}
+
+{% block title %}{{ _("Job Queue") }} - {{ arch or _("All Architectures") }}{% end block %}
+
+{% block body %}
+ <ul class="breadcrumb">
+ <li>
+ <a href="/">{{ _("Home") }}</a>
+ <span class="divider">/</span>
+ </li>
+ <li {% if not arch %}class="active"{% end %}>
+ <a href="/queue">{{ _("Job Queue") }}</a>
+ {% if arch %}
+ <span class="divider">/</span>
+ {% end %}
+ </li>
+ {% if arch %}
+ <li class="active">
+ <a href="/queue/{{ arch }}">{{ arch }}</a>
+ </li>
+ {% end %}
+ </ul>
+
+ <div class="page-header">
+ <h2>{{ _("Job Queue") }}</h2>
+ </div>
+
+ <ul class="nav nav-pills">
+ <li {% if not arch %}class="active"{% end %}>
+ <a href="/queue">{{ _("All") }}</a>
+ </li>
+
+ {% for a in backend.arches %}
+ <li {% if a == arch %}class="active"{% end %}>
+ <a href="/queue/{{ a }}">{{ a }}</a>
+ </li>
+ {% end %}
+ </ul>
+
+ {% module JobsList(queue) %}
+{% end block %}
(r"/build/([\w]{8}-[\w]{4}-[\w]{4}-[\w]{4}-[\w]{12})/watchers", builds.BuildWatchersHandler),
(r"/build/([\w]{8}-[\w]{4}-[\w]{4}-[\w]{4}-[\w]{12})/delete", builds.BuildDeleteHandler),
+ (r"/queue", jobs.ShowQueueHandler),
+ (r"/queue/([\w_]+)", jobs.ShowQueueHandler),
+
# Jobs
- (r"/jobs", jobs.JobsIndexHandler),
- (r"/jobs/filter", jobs.JobsFilterHandler),
(r"/job/([\w]{8}-[\w]{4}-[\w]{4}-[\w]{4}-[\w]{12})", jobs.JobDetailHandler),
(r"/job/([\w]{8}-[\w]{4}-[\w]{4}-[\w]{4}-[\w]{12})/abort", jobs.JobAbortHandler),
(r"/job/([\w]{8}-[\w]{4}-[\w]{4}-[\w]{4}-[\w]{12})/buildroot", jobs.JobBuildrootHandler),
ns = tornado.web.RequestHandler.get_template_namespace(self)
ns.update({
+ "backend" : self.backend,
"bugtracker" : self.pakfire.bugzilla,
"hostname" : self.request.host,
"format_date" : self.format_date,
from . import base
-class JobsIndexHandler(base.BaseHandler):
- def get(self):
- # Filter for a certain arch.
- arch = self.get_argument("arch", None)
- if not arch or not self.backend.arches.exists(arch):
- raise tornado.web.HTTPError(400, "Architecture does not exist")
-
- # Check if we need to filter for a certain builder.
- builder_name = self.get_argument("builder", None)
- if builder_name:
- builder = self.pakfire.builders.get_by_name(builder_name)
- else:
- builder = None
-
- # Filter for a certain date.
- date = self.get_argument("date", None)
-
- # Get all jobs, that fulfill the criteria.
- jobs = self.pakfire.jobs.get_latest(limit=50, arch=arch, builder=builder,
- date=date)
+class ShowQueueHandler(base.BaseHandler):
+ def get(self, arch=None):
+ if arch:
+ if not self.backend.arches.exists(arch):
+ raise tornado.web.HTTPError(400, "Architecture does not exist")
- self.render("jobs-index.html", jobs=jobs, arch=arch, builder=builder,
- date=date)
-
-
-class JobsFilterHandler(base.BaseHandler):
- def get(self):
- builders = self.pakfire.builders.get_all()
+ queue = self.backend.jobqueue.for_arches([arch, "noarch"])
+ else:
+ queue = self.backend.jobqueue
- self.render("jobs-filter.html", arches=self.backend.arches, builders=builders)
+ self.render("queue.html", arch=arch, queue=queue)
class JobDetailHandler(base.BaseHandler):