]> git.ipfire.org Git - pbs.git/commitdiff
jobs: Make tags easier to read
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 27 Apr 2023 10:46:47 +0000 (10:46 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 27 Apr 2023 10:46:47 +0000 (10:46 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/jobs.py
src/templates/builds/modules/list.html

index 7a18f87d818c71962021e2c3d29201ddb8e8cc9c..2c95eff60413622a99f712a0fba0bff9ed4a5c75 100644 (file)
@@ -431,6 +431,18 @@ class Job(base.DataObject):
                # Propagate any changes to the build
                await self.build._job_finished(job=self)
 
+       def is_pending(self):
+               if self.has_finished():
+                       return False
+
+               if self.is_aborted():
+                       return False
+
+               if self.is_running():
+                       return False
+
+               return True
+
        def is_running(self):
                """
                        Returns True if this job is running
index 54d9a678f6ff43a08d6660bdbf4cd7155687c651..16d9eeaf689e98a7fdb1e208380866e81f2b84f9 100644 (file)
 
                                {% if build.jobs %}
                                        <div class="tags">
-                                               {% for job in build.jobs %}
-                                                       <span class="tag
-                                                               {% if job.has_failed() %}
-                                                                       is-danger
-                                                               {% elif job.is_running() %}
-                                                                       is-primary
-                                                               {% elif job.has_finished() %}
-                                                                       is-success
-                                                               {% else %}
-                                                                       is-light
-                                                               {% end %}">{{ job.arch }}</span>
+                                               {% for job in sorted(build.jobs) %}
+                                                       {# Pending #}
+                                                       {% if job.is_pending() %}
+                                                               <span class="tag">
+                                                                       <span class="icon-text">
+                                                                               <span class="icon">
+                                                                                       <i class="fa-solid fa-clock"></i>
+                                                                               </span>
+
+                                                                               <span>{{ job.arch }}</span>
+                                                                       </span>
+                                                               </span>
+
+                                                       {# Running #}
+                                                       {% elif job.is_running() %}
+                                                               <span class="tag">
+                                                                       <span class="icon-text">
+                                                                               <span class="icon">
+                                                                                       <i class="fa-solid fa-gear fa-spin"></i>
+                                                                               </span>
+
+                                                                               <span>{{ job.arch }}</span>
+                                                                       </span>
+                                                               </span>
+
+                                                       {# Failed #}
+                                                       {% elif job.has_failed() %}
+                                                               <span class="tag is-danger">
+                                                                       <span class="icon-text">
+                                                                               <span class="icon">
+                                                                                       <i class="fa-solid fa-bug"></i>
+                                                                               </span>
+
+                                                                               <span>{{ job.arch }}</span>
+                                                                       </span>
+                                                               </span>
+
+                                                       {# Aborted #}
+                                                       {% elif job.is_aborted() %}
+                                                               <span class="tag is-dark">
+                                                                       <span class="icon-text">
+                                                                               <span class="icon">
+                                                                                       <i class="fa-solid fa-xmark"></i>
+                                                                               </span>
+
+                                                                               <span>{{ job.arch }}</span>
+                                                                       </span>
+                                                               </span>
+
+                                                       {# Finished #}
+                                                       {% elif job.has_finished() %}
+                                                               <span class="tag is-success">
+                                                                       <span class="icon-text">
+                                                                               <span class="icon">
+                                                                                       <i class="fa-solid fa-check"></i>
+                                                                               </span>
+
+                                                                               <span>{{ job.arch }}</span>
+                                                                       </span>
+                                                               </span>
+
+                                                       {# Unknown State #}
+                                                       {% else %}
+                                                               <span class="tag is-light">
+                                                                       {{ _("Unknown State") }} - {{ job.arch }}
+                                                               </span>
+                                                       {% end %}
                                                {% end %}
                                        </div>
                                {% end %}