Edgewall Software
Modify

Opened 15 years ago

Last modified 12 years ago

#515 new enhancement

[PATCH] Build Status page with many platforms.

Reported by: mpotter@… Owned by:
Priority: major Milestone: 0.6.1
Component: General Version: 0.6b2
Keywords: patch css Cc: mpotter@…, felix.schwarz@…
Operating System:

Description (last modified by cmlenz)

If one has many platforms, lets say 9, the Build status page for that target appears very crowded, actually clipping information in IE.

Build Status Page with 9 platforms under Chrome

Build Status Page with 9 platforms under IE

Suggestion: Instead of laying out all of the platforms one row, break them up into multiple rows.

i.e. Instead of laying out as:

CI info Plat1 Plat2 Plat3 Plat4 Plat5 Plat6 Plat7 Plat8 Plat9

Break up, say every 3 platforms:

CI info Plat1 Plat2 Plat3
Plat4 Plat5 Plat6
Plat7 Plat8 Plat9

How often to break up should probably be a configurable. At 9 breaking every 3 looks good, but at 8 or 16 platforms I would probably want to break every 4

Attachments (11)

BuildStatusChrome.PNG (27.3 KB) - added by mpotter@… 15 years ago.
Build Status Page with 9 platforms under Chrome
BuildStatusIE.PNG (39.6 KB) - added by mpotter@… 15 years ago.
Build Status Page with 9 platforms under IE
bitten.css.diff (1.2 KB) - added by mpotter@… 15 years ago.
Possible changes
bitten_config.html.diff (231 bytes) - added by mpotter@… 15 years ago.
Possible changes
bitten_config.html.2.diff (1.2 KB) - added by mpotter@… 15 years ago.
Possible changes, redone with context
bitten.css.2.diff (2.0 KB) - added by mpotter@… 15 years ago.
Possible changes, redone with context
bitten.css.patch (1.8 KB) - added by mpotter@… 15 years ago.
Possible changes, redone as unified diff
bitten_config.html.patch (860 bytes) - added by mpotter@… 15 years ago.
Possible changes, redone as unified diff
t515-platform_css_reflow-r803.diff (2.1 KB) - added by osimons 15 years ago.
Single-file patch. Slightly cleaner using a new shared style class for the div.
OddFloat.PNG (5.1 KB) - added by mpotter@… 15 years ago.
Odd Floating result
t515-platform-reflow-12-30-2010.diff (2.6 KB) - added by mpotter@… 14 years ago.
patch file, t515-platform_css_reflow-r803.diff plus comments since, as applied to 0.6b3

Download all attachments as: .zip

Change History (32)

Changed 15 years ago by mpotter@…

Build Status Page with 9 platforms under Chrome

Changed 15 years ago by mpotter@…

Build Status Page with 9 platforms under IE

comment:1 Changed 15 years ago by cmlenz

  • Description modified (diff)

(Fixed image refs in description)

comment:2 follow-up: Changed 15 years ago by cboos

See similar situation in the Trac admin panel for permission, maybe the same approach could be reused (div with fixed width + float).

comment:3 Changed 15 years ago by mpotter@…

  • Cc mpotter@… added

comment:4 in reply to: ↑ 2 Changed 15 years ago by mpotter@…

Replying to cboos:

See similar situation in the Trac admin panel for permission, maybe the same approach could be reused (div with fixed width + float).

I am assuming you are referring to trac:ticket:8866.

Changed 15 years ago by mpotter@…

Possible changes

Changed 15 years ago by mpotter@…

Possible changes

comment:5 Changed 15 years ago by mpotter@…

Using a technique given here I have constructed a possible solution.

  • This solution does not have a configurable, instead it just allows the platforms to wrap as needed.
  • There may be some minor cosmetic issues if the Platform boxes are of different width.

I am not very versed at CSS, so:

  • there may be a better way to encode what is desired.
  • there may be some rendering changes that may be desired.

Changed 15 years ago by mpotter@…

Possible changes, redone with context

Changed 15 years ago by mpotter@…

Possible changes, redone with context

comment:6 Changed 15 years ago by mpotter@…

Issue discovered, pending were not rendering correctly. Need to add a CSS entry for it. Something like:

#content.build table.build td.platforms div.pending {
  float: left;
  margin: 1px;
  padding: 2px;
  border: 1px solid #333;
}

Changed 15 years ago by mpotter@…

Possible changes, redone as unified diff

Changed 15 years ago by mpotter@…

Possible changes, redone as unified diff

comment:7 Changed 15 years ago by mpotter@…

The bitten.css.patch attachment also:

  • Incorporates the changes from the above comment.
  • Corrects the border color and padding size to be more like the original table style.

comment:8 Changed 15 years ago by mpotter@…

  • Keywords patch css added; UI removed
  • Summary changed from Build Status page with many platforms. to [PATCH] Build Status page with many platforms.

comment:9 follow-up: Changed 15 years ago by osimons

That's the right general idea. Tested the patces, and it flows nicely!

What do we do about the listing on the individual build config page - the one that lists all platforms for all revisions? Any way of redesigning this in an efficient and useful way? mpotter, interested in giving this a shot too? :-)

comment:10 in reply to: ↑ 9 ; follow-up: Changed 15 years ago by mpotter@…

Replying to osimons:

What do we do about the listing on the individual build config page - the one that lists all platforms for all revisions? Any way of redesigning this in an efficient and useful way?

I assume you are talking about #516. Taking the conversation there.

Changed 15 years ago by osimons

Single-file patch. Slightly cleaner using a new shared style class for the div.

comment:11 in reply to: ↑ 10 Changed 15 years ago by osimons

Replying to mpotter@…:

I assume you are talking about #516.

Ah. Two tickets. I see :-)

I've updated the patch slightly - and also joined the diff's into a single file. Please diff on an enclosing folder and make diffs that cover several files - less prone to error and confusion.

Changed 15 years ago by mpotter@…

Odd Floating result

comment:12 in reply to: ↑ description ; follow-up: Changed 15 years ago by mpotter@…

Have removed my changes and applied the last patch. Looks good.

However, just bumped into a minor issue. Sometimes the way the platforms float is a little odd. Example:

Odd Floating result

comment:13 follow-up: Changed 15 years ago by mpotter@…

Just to make others aware, another oddness:

  • Chrome appears to be trying to give equal space to CI-Info area and to each of the platforms.
[_CI-Info_][Platform1][Platform2][Platform3]
  • IE appears to be trying to give equal space to the CI-Info area and to all of the platforms together.
[____________CI-Info____________][Platform1][Platform2][Platform3]

comment:14 in reply to: ↑ 12 ; follow-up: Changed 15 years ago by mpotter@…

Replying to mpotter@…:

Sometimes the way the platforms float is a little odd.

A partial fix. In bitten_config.html, circa line 87, change:

          <p class="date">$build.stopped</p>

to

          <p class="date">$build.stopped&nbsp;</p>

This will make the in-progress platforms be the same size as the completed platforms and thus these will float around each other better. The pending platforms are still small in comparison and may float in an odd way, but I feel acceptable.

comment:15 Changed 15 years ago by Felix Schwarz <felix.schwarz@…>

  • Cc felix.schwarz@… added

comment:16 in reply to: ↑ 13 Changed 15 years ago by mpotter@…

Replying to mpotter@…:

Just to make others aware, another oddness:

  • Chrome appears to be trying to give equal space to CI-Info area and to each of the platforms.

[_CI-Info_][Platform1][Platform2][Platform3]

  • IE appears to be trying to give equal space to the CI-Info area and to all of the platforms together.

[____________CI-Info____________][Platform1][Platform2][Platform3]

The following addition to the bitten.css helps:

#content.build table.builds tbody tr th {
  width: 25%;
}

Changed 14 years ago by mpotter@…

patch file, t515-platform_css_reflow-r803.diff plus comments since, as applied to 0.6b3

comment:17 in reply to: ↑ 14 ; follow-ups: Changed 14 years ago by mpotter@…

Replying to mpotter@…:

Replying to mpotter@…:

Sometimes the way the platforms float is a little odd.

A partial fix. In bitten_config.html, circa line 87, change:
[...]
This will make the in-progress platforms be the same size as the completed platforms and thus these will float around each other better. The pending platforms are still small in comparison and may float in an odd way, but I feel acceptable.

To make the pending builds the same height as the others, apply the following additional change:

  • templates/bitten_config.html

     
    100100          ${build_status(build.status)}
    101101        </py:when><py:otherwise>
    102102          <strong>$build.platform</strong>
    103           <p class="nobuild">No build yet</p>
     103          <p class="date">&nbsp;</p>
     104          <div class="system"><strong>&nbsp;</strong><br />&nbsp;</div>
     105          <div class="nobuild">No build yet</div>
    104106        </py:otherwise></py:choose>
    105107        </div>
    106108        </td>

comment:18 in reply to: ↑ 17 Changed 13 years ago by anonymous

Replying to mpotter@…:

To make the pending builds the same height as the others, apply the following additional change:
...

Minor issue: With the above change, pending builds are normally the same size as the in-progress and completed builds. However, right after a new check-in, before the new builds have been scheduled, the pending builds appear small. Examining the HTML I see that these unscheduled builds have a div of

<div class="build-platform ">

Where as once scheduled they have a div of:

<div class="build-platform pending">

comment:19 in reply to: ↑ 17 ; follow-up: Changed 12 years ago by Mark Potter <mpotter@…>

Bumped into a minor issue today. I have renamed all of by slave clients so the they contain more information on what they are. Now when rendering the boxes for each build some are taller than others. This causes the layout to look odd again. This height difference is cause by sometimes the slave info line wraps and sometimes it doesn't depending on the length of the slave name. I see two possible approaches:

  • Change the width of the box in the CSS.
  • Change the slave info line to always be on two lines.

I tried a combination of the two, inserting a <br/> and narrowing the blocks from 16em to 14em, but I realized, because of the optional parts of slave_info, more changes would be needed for this and the issue patched in comment:17. Therefore, instead I opted for the simpler fix of just changing the width to 20em (below). This looks good in my case, and should look okay for others. If someone wants to fine tune it for their site they should be able to insert an override in their site.css file.

  • htdocs/bitten.css

     
    4242}
    4343#content.build table.builds div.completed { background: #9d9; border-color: #696;
    4444  color: #393;
    45   width: 16em;
     45  width: 20em;
    4646}
    4747#content.build table.builds div.failed { background: #d99; border-color: #966;
    4848  color: #933;
    49   width: 16em;
     49  width: 20em;
    5050}
    5151#content.build table.builds div.in-progress { background: #dd9;
    5252  border-color: #996; color: #993;
    53   width: 16em;
     53  width: 20em;
    5454}
    5555#content.build table.builds div.pending {
    56  width: 16em;
     56 width: 20em;
    5757}
    5858#content.build table.builds td p { font-size: smaller; margin-top: 0; }
    5959#content.build table.builds .status { color: #000; }

comment:20 in reply to: ↑ 19 ; follow-up: Changed 12 years ago by Mark Potter <mpotter@…>

Replying to Mark Potter <mpotter@…>:

Therefore, instead I opted for the simpler fix of just changing the width to 20em [...]. This looks good in my case, and should look okay for others. If someone wants to fine tune it for their site they should be able to insert an override in their site.css file.

I just looked here, I realized the os-version-processor line is quite long

Windows 2003Server / x86 Family 6 Model 26 Stepping 5, GenuineIntel

Therefore 20em is not enough, but a value large enough would look terrible on sites with short slave names and short os-version-processor lines. Therefore, back to trying a mixed solution.

comment:21 in reply to: ↑ 20 Changed 12 years ago by Mark Potter <mpotter@…>

Replying to Mark Potter <mpotter@…>:

Therefore, back to trying a mixed solution.

To accommodate a long processor line that would be used here I went with 25em and then patched templates/bitten_config.html as follows:

  • bitten_config.html

     
    3131    </div>
    3232
    3333    <div py:def="slave_info(slave)" class="system">
    34       <strong>$slave.name</strong> ($slave.ipnr)<br />
    35       $slave.os_name $slave.os_version
    36       <py:if test="slave.machine or slave.processor"> / </py:if>
    37       ${slave.processor or slave.machine or ''}
     34      <strong>$slave.name</strong><br />
     35      ($slave.ipnr)<br />
     36      $slave.os_name $slave.os_version<br />
     37      ${slave.processor or slave.machine or '&nbsp;'}
    3838    </div>
    3939   
    4040    <ul py:def="build_steps(steps)" py:if="steps" class="steps">
     
    101101        </py:when><py:otherwise>
    102102          <strong>$build.platform</strong>
    103103          <p class="date">&nbsp;</p>
    104           <div class="system"><strong>&nbsp;</strong><br />&nbsp;</div>
     104          <div class="system"><strong>&nbsp;</strong>
     105            <br />&nbsp;<br />&nbsp;<br />&nbsp;
     106          </div>
    105107          <div class="nobuild">No build yet</div>
    106108        </py:otherwise></py:choose>
    107109        </div>

Add Comment

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The ticket will remain with no owner.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.