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.
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)
Change History (32)
Changed 15 years ago by mpotter@…
comment:1 Changed 15 years ago by cmlenz
- Description modified (diff)
(Fixed image refs in description)
comment:2 follow-up: ↓ 4 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.
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.
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; }
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: ↓ 10 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: ↓ 11 Changed 15 years ago by mpotter@…
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
comment:12 in reply to: ↑ description ; follow-up: ↓ 14 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:
comment:13 follow-up: ↓ 16 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: ↓ 17 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 </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: ↓ 18 ↓ 19 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
100 100 ${build_status(build.status)} 101 101 </py:when><py:otherwise> 102 102 <strong>$build.platform</strong> 103 <p class="nobuild">No build yet</p> 103 <p class="date"> </p> 104 <div class="system"><strong> </strong><br /> </div> 105 <div class="nobuild">No build yet</div> 104 106 </py:otherwise></py:choose> 105 107 </div> 106 108 </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: ↓ 20 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
42 42 } 43 43 #content.build table.builds div.completed { background: #9d9; border-color: #696; 44 44 color: #393; 45 width: 16em;45 width: 20em; 46 46 } 47 47 #content.build table.builds div.failed { background: #d99; border-color: #966; 48 48 color: #933; 49 width: 16em;49 width: 20em; 50 50 } 51 51 #content.build table.builds div.in-progress { background: #dd9; 52 52 border-color: #996; color: #993; 53 width: 16em;53 width: 20em; 54 54 } 55 55 #content.build table.builds div.pending { 56 width: 16em;56 width: 20em; 57 57 } 58 58 #content.build table.builds td p { font-size: smaller; margin-top: 0; } 59 59 #content.build table.builds .status { color: #000; }
comment:20 in reply to: ↑ 19 ; follow-up: ↓ 21 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
31 31 </div> 32 32 33 33 <div py:def="slave_info(slave)" class="system"> 34 <strong>$slave.name</strong> ($slave.ipnr)<br />35 $slave.os_name $slave.os_version36 <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 ' '} 38 38 </div> 39 39 40 40 <ul py:def="build_steps(steps)" py:if="steps" class="steps"> … … 101 101 </py:when><py:otherwise> 102 102 <strong>$build.platform</strong> 103 103 <p class="date"> </p> 104 <div class="system"><strong> </strong><br /> </div> 104 <div class="system"><strong> </strong> 105 <br /> <br /> <br /> 106 </div> 105 107 <div class="nobuild">No build yet</div> 106 108 </py:otherwise></py:choose> 107 109 </div>
Build Status Page with 9 platforms under Chrome