dist_templates_jobs_modules_DATA = \
src/templates/jobs/modules/list.html \
- src/templates/jobs/modules/log-stream.html
+ src/templates/jobs/modules/log-stream.html \
+ src/templates/jobs/modules/queue.html
templates_jobs_modulesdir = $(templates_jobsdir)/modules
<section class="section">
<div class="container">
- {% module JobsList(queue) %}
+ {% module JobsQueue(queue) %}
</div>
</section>
{% end block %}
<div class="level-item has-text-centered">
<div>
<p class="heading">{{ _("Queued Jobs") }}</p>
- <p class="title">{{ queue_length }}</p>
+ <p class="title">
+ <a href="/builds/queue">
+ {{ queue_length }}
+ </a>
+ </p>
</div>
</div>
{% end %}
</div>
- <nav class="panel has-background-white">
- {# Show running jobs #}
- {% for job in running_jobs %}
- <a class="panel-block is-active"
- href="/builds/{{ job.build.uuid }}">
- <span class="panel-icon">
- <i class="fa-solid fa-gear fa-spin" aria-hidden="true"></i>
- </span>
-
- {{ job }}
- </a>
- {% end %}
-
- {# Show queued jobs #}
- {% for job in queued_jobs %}
- <a class="panel-block"
- href="/builds/{{ job.build.uuid }}">
- <span class="panel-icon">
- <i class="fa-solid fa-clock" aria-hidden="true"></i>
- </span>
-
- {{ job }}
- </a>
- {% end %}
-
- {# Show link to see entire queue #}
- {% if queue_length > len(queued_jobs) %}
- <a class="panel-block is-justify-content-center" href="/builds/queue">
- {{ _("Show All Queued Jobs") }}
- </a>
- {% end %}
- </nav>
+ {% module JobsQueue(running_jobs + queued_jobs) %}
</div>
</div>
</section>
--- /dev/null
+<nav class="panel has-background-white">
+ {% for job in jobs %}
+ <a class="panel-block {% if job.is_running() %}is-active{% end %}"
+ href="/builds/{{ job.build.uuid }}">
+ <span class="panel-icon">
+ {% if job.is_running() %}
+ <i class="fa-solid fa-gear fa-spin" aria-hidden="true"></i>
+ {% elif job.is_queued() %}
+ <i class="fa-solid fa-clock" aria-hidden="true"></i>
+ {% end %}
+ </span>
+
+ {{ job }}
+ </a>
+ {% end %}
+</nav>
# Jobs
"JobsList" : jobs.ListModule,
"JobsLogStream" : jobs.LogStreamModule,
+ "JobsQueue" : jobs.QueueModule,
# Mirrors
"MirrorsList" : mirrors.ListModule,
show_arch_only=show_arch_only, show_packages=show_packages)
+class QueueModule(ui_modules.UIModule):
+ def render(self, jobs):
+ return self.render_string("jobs/modules/queue.html", jobs=jobs)
+
+
class LogStreamModule(ui_modules.UIModule):
def render(self, job, limit=None, small=False):
return self.render_string("jobs/modules/log-stream.html",