]> git.ipfire.org Git - people/jschlag/pbs.git/commitdiff
builds: Move jobs to the side of the log.
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 25 Nov 2012 14:57:02 +0000 (15:57 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 25 Nov 2012 14:57:02 +0000 (15:57 +0100)
data/static/css/style.css
data/templates/build-detail.html
data/templates/modules/jobs/boxes.html [new file with mode: 0644]
web/__init__.py
web/ui_modules.py

index 3f10a957dc0aa70f2504ade7405c00fab0d37968..c8f1c33f426c46d43170dcbaffc9f5e502e4abec 100644 (file)
@@ -69,3 +69,31 @@ body {
 .line-through {
        text-decoration: line-through;
 }
+
+.jobs-boxes .well {
+       background: #fff;
+}
+
+.jobs-boxes h4 p {
+       font-weight: bold;
+}
+
+.jobs-boxes .warning {
+       background-color: #fcf8e3;
+}
+
+.jobs-boxes .error {
+       background-color: #f2dede;
+}
+
+.jobs-boxes .success {
+       background-color: #dff0d8;
+}
+
+.jobs-boxes .info {
+       background-color: #d9edf7;
+}
+
+.jobs-boxes .well table td {
+       width: 50%;
+}
index 219fbf741d6244255a9c2eb5355df877e5a890be..f7831fa26222042c572d629511793aa642e939ad 100644 (file)
                </div>
        {% end %}
 
-       <div class="row">
-               <div class="span12">
-                       <hr />
-               </div>
-       </div>
+       <hr>
 
        {% if build.type == "release" %}
                <div class="row">
                        </div>
                </div>
 
-               <div class="row">
-                       <div class="span12">
-                               <hr>
-                       </div>
-               </div>
+               <hr>
        {% end %}
        
        <div class="row">
        </div>
 
        <div class="row">
-               <div class="span12">
+               <div class="span8">
                        {% module Log(log) %}
                </div>
+
+               <div class="span4">
+                       {% module JobsBoxes(build) %}
+
+                       <p class="ac">
+                               <a href="/package/{{ build.pkg.uuid }}">{{ _("Source package") }}</a>
+                       </p>
+               </div>
        </div>
 
+       <hr>
+
        <div class="row">
                <div class="span12">
-                       <hr>
-
-                       <ul class="nav nav-pills">
-                               <li class="active">
-                                       <a href="#buildjobs" data-toggle="tab">
-                                               {{ _("Build jobs") }}
-                                       </a>
-                               </li>
-                               {% if build.test_jobs %}
-                                       <li>
-                                               <a href="#testjobs" data-toggle="tab">
-                                                       {{ _("Test jobs") }} ({{ len(build.test_jobs) }})
-                                               </a>
-                                       </li>
+                       <table class="table table-striped table-hover">
+                               <tr>
+                                       <td>{{ _("Created") }}</td>
+                                       <td>{{ format_date(build.created, full_format=True) }}</td>
+                               </tr>
+
+                               {% if build.owner %}
+                                       <tr>
+                                               <td>{{ _("Owner") }}</td>
+                                               <td>{{ build.owner.realname }}</td>
+                                       </tr>
                                {% end %}
-                               <li>
-                                       <a href="#properties" data-toggle="tab">
-                                               {{ _("Properties") }}
-                                       </a>
-                               </li>
-                       </ul>
-
-                       <div class="tab-content">
-                               <div class="tab-pane active" id="buildjobs">
-                                       <div class="row">
-                                               <div class="span12">
-                                                       {% module JobsTable(build) %}
-                                               </div>
-                                       </div>
-                               </div>
 
-                               {% if build.test_jobs %}
-                                       <div class="tab-pane" id="testjobs">
-                                               <div class="row">
-                                                       <div class="span12">
-                                                               {% module JobsTable(build, build.test_jobs, type="test") %}
-                                                       </div>
-                                               </div>
-                                       </div>
+                               {% if current_user and current_user.is_admin() %}
+                                       <tr>
+                                               <td>{{ _("Public?") }}</td>
+                                               <td>
+                                                       {% if build.public %}
+                                                               {{ _("Yes") }}
+                                                       {% else %}
+                                                               {{ _("No") }}
+                                                       {% end %}
+                                               </td>
+                                       </tr>
                                {% end %}
 
-                               <div class="tab-pane" id="properties">
-                                       <div class="row">
-                                               <div class="span4">
-                                                       <table class="table table-striped table-hover">
-                                                               <tr>
-                                                                       <td>{{ _("Created") }}</td>
-                                                                       <td>{{ format_date(build.created, full_format=True) }}</td>
-                                                               </tr>
-                                                               
-                                                               {% if build.owner %}
-                                                                       <tr>
-                                                                               <td>{{ _("Owner") }}</td>
-                                                                               <td>{{ build.owner.realname }}</td>
-                                                                       </tr>
-                                                               {% end %}
-
-                                                               {% if current_user and current_user.is_admin() %}
-                                                                       <tr>
-                                                                               <td>{{ _("Public?") }}</td>
-                                                                               <td>
-                                                                                       {% if build.public %}
-                                                                                               {{ _("Yes") }}
-                                                                                       {% else %}
-                                                                                               {{ _("No") }}
-                                                                                       {% end %}
-                                                                               </td>
-                                                                       </tr>
-                                                               {% end %}
-
-                                                               <tr>
-                                                                       <td>{{ _("Priority") }}</td>
-                                                                       <td>
-                                                                               <a href="/build/{{ build.uuid }}/priority">
-                                                                                       {% if build.priority >= 2 %}
-                                                                                               {{ _("Very high") }}
-                                                                                       {% elif build.priority == 1 %}
-                                                                                               {{ _("High") }}
-                                                                                       {% elif build.priority == 0 %}
-                                                                                               {{ _("Medium") }}
-                                                                                       {% elif build.priority == -1 %}
-                                                                                               {{ _("Low") }}
-                                                                                       {% elif build.priority <= -2 %}
-                                                                                               {{ _("Very low") }}
-                                                                                       {% end %}
-                                                                               </a>
-                                                                       </td>
-                                                               </tr>
-                                                       </table>
-                                               </div>
-
-                                               <div class="span8">
-                                                       <table class="table">
-                                                               <tbody>
-                                                                       <tr>
-                                                                               <td>{{ _("Source package") }}</td>
-                                                                               <td>
-                                                                                       <a href="/package/{{ build.pkg.uuid }}">{{ build.pkg.friendly_name }}</a>
-                                                                               </td>
-                                                                       </tr>
-
-                                                                       {% if build.pkg.requires %}
-                                                                               <tr>
-                                                                                       <td>{{ _("Build dependencies") }}</td>
-                                                                                       <td>
-                                                                                               {{ locale.list(["<a href=\"/search?q=%(r)s\">%(r)s</a>" % { "r" : r } for r in build.pkg.requires]) }}
-                                                                                       </td>
-                                                                               </tr>
-                                                                       {% end %}
-                                                               </tbody>
-                                                       </table>
-                                               </div>
-                                       </div>
-                               </div>
-                       </div>
+                               <tr>
+                                       <td>{{ _("Priority") }}</td>
+                                       <td>
+                                               <a href="/build/{{ build.uuid }}/priority">
+                                                       {% if build.priority >= 2 %}
+                                                               {{ _("Very high") }}
+                                                       {% elif build.priority == 1 %}
+                                                               {{ _("High") }}
+                                                       {% elif build.priority == 0 %}
+                                                               {{ _("Medium") }}
+                                                       {% elif build.priority == -1 %}
+                                                               {{ _("Low") }}
+                                                       {% elif build.priority <= -2 %}
+                                                               {{ _("Very low") }}
+                                                       {% end %}
+                                               </a>
+                                       </td>
+                               </tr>
+                       </table>
                </div>
        </div>
 {% end block %}
diff --git a/data/templates/modules/jobs/boxes.html b/data/templates/modules/jobs/boxes.html
new file mode 100644 (file)
index 0000000..504acef
--- /dev/null
@@ -0,0 +1,33 @@
+<div class="jobs-boxes">
+       {% for j in jobs %}
+               <div class="well well-small">
+                       <h4>            
+                               <small>{% module JobState(j, cls="pull-right") %}</small>
+                               <a href="/job/{{ j.uuid }}">{{ j.arch.name }}</a>
+                       </h4>
+
+                       <table class="table table-condensed table-hover">
+                               <tbody>
+                                       <tr>
+                                               <td>
+                                                       {{ _("Duration") }}
+                                               </td>
+                                               <td>
+                                                       {{ friendly_time(j.duration) }}
+                                               </td>
+                                       </tr>
+                                       {% if j.builder %}
+                                               <tr>
+                                                       <td>
+                                                               {{ _("Builder") }}
+                                                       </td>
+                                                       <td>
+                                                               <a href="/builder/{{ j.builder.name }}">{{ j.builder.name }}</a>
+                                                       </td>
+                                               </tr>
+                                       {% end %}
+                               </tbody>
+                       </table>
+               </div>
+       {% end %}
+</div>
index b3d6d952a4e185ef6d4c358e28ac9673336bf19c..73be54c8ef8910c0f70ac5ffd519d7adbddf0248 100644 (file)
@@ -48,6 +48,8 @@ class Application(tornado.web.Application):
                                "ChangelogEntry"     : ChangelogEntryModule,
 
                                "CommitsTable"       : CommitsTableModule,
+                               "JobsBoxes"          : JobsBoxesModule,
+                               "JobState"           : JobStateModule,
                                "JobsTable"          : JobsTableModule,
                                "JobsList"           : JobsListModule,
                                "CommentsTable"      : CommentsTableModule,
index 6979fd8280a61afc482d4dc9f4ff7b64b76a7702..3175f416e36e43e3323c06bc6d7996c64ec0e115 100644 (file)
@@ -181,6 +181,65 @@ class BuildStateWarningsModule(UIModule):
                return self.render_string("modules/build-state-warnings.html", build=build)
 
 
+class JobsBoxesModule(UIModule):
+       def render(self, build, jobs=None):
+               if jobs is None:
+                       jobs = build.jobs
+
+               return self.render_string("modules/jobs/boxes.html",
+                       build=build, jobs=jobs)
+
+
+class JobStateModule(UIModule):
+       def render(self, job, cls=None):
+               state = job.state
+
+               _ = self.locale.translate
+               classes = []
+
+               if state == "aborted":
+                       text = _("Aborted")
+                       classes.append("muted")
+
+               elif state == "dependency_error":
+                       text = _("Dependency problem")
+                       classes.append("text-warning")
+
+               elif state == "dispatching":
+                       text = _("Dispatching")
+                       classes.append("text-info")
+
+               elif state == "failed":
+                       text = _("Failed")
+                       classes.append("text-error")
+
+               elif state == "finished":
+                       text = _("Finished")
+                       classes.append("text-success")
+
+               elif state == "new":
+                       text = _("New")
+                       classes.append("muted")
+
+               elif state == "pending":
+                       text = _("Pending")
+                       classes.append("muted")
+
+               elif state == "running":
+                       text = _("Running")
+                       classes.append("text-info")
+
+               # Return just the string, is state is unknown.
+               else:
+                       text = _("Unknown: %s") % state
+                       classes.append("muted")
+
+               if cls:
+                       classes.append(cls)
+
+               return """<p class="%s">%s</p>""" % (" ".join(classes), text)
+
+
 class JobsTableModule(UIModule):
        def render(self, build, jobs=None, type="release"):
                if jobs is None: