# HG changeset patch # User dfraser # Date 1242033970 0 # Node ID b4d3d9cbf20033ca857e4be2e16d4c50490166d3 # Parent 12747ea5e6a5095c439adaef2950b30f861a9888 Alter the appearance of the ''Build Status'' button, to show the current build status [eblot] - fixes #373 This is off by default and can be enabled with the `bitten.quick_status` option in `trac.ini` diff --git a/bitten/admin.py b/bitten/admin.py --- a/bitten/admin.py +++ b/bitten/admin.py @@ -14,7 +14,7 @@ from trac.core import * from trac.admin import IAdminPanelProvider -from trac.web.chrome import add_stylesheet +from trac.web.chrome import add_stylesheet, add_script from bitten.model import BuildConfig, TargetPlatform from bitten.recipe import Recipe, InvalidRecipeError @@ -71,6 +71,12 @@ self.config['bitten'].set('slave_timeout', str(slave_timeout)) changed = True + quick_status = 'quick_status' in req.args + if quick_status != master.quick_status: + self.config['bitten'].set('quick_status', + quick_status and 'yes' or 'no') + changed = True + logs_dir = req.args.get('logs_dir', None) if logs_dir != master.logs_dir: self.config['bitten'].set('logs_dir', str(logs_dir)) diff --git a/bitten/htdocs/bitten.css b/bitten/htdocs/bitten.css --- a/bitten/htdocs/bitten.css +++ b/bitten/htdocs/bitten.css @@ -181,3 +181,16 @@ #content.build table.listing :link, #content.build table.listing :visited { border: none; } +#mainnav .bitteninprogress, #mainnav .bitteninprogress :hover { + border-right: 4px solid #edd400 !important; +} +#mainnav .bittencompleted, #mainnav .bittencompleted :hover { + border-right: 4px solid #0b0 !important; +} +#mainnav .bittenfailed, #mainnav .bittenfailed :hover { + border-right: 4px hidden !important; + background-color: #d99; +} +#mainnav .bittenpending, #mainnav .bittenpending :hover { + border-right: 4px hidden !important; +} diff --git a/bitten/master.py b/bitten/master.py --- a/bitten/master.py +++ b/bitten/master.py @@ -60,6 +60,10 @@ logs_dir = PathOption('bitten', 'logs_dir', "log/bitten", doc= """The directory on the server in which client log files will be stored.""") + quick_status = BoolOption('bitten', 'quick_status', False, doc= + """Whether to show the current build status withing the Trac main + navigation bar""") + # IRequestHandler methods def match_request(self, req): diff --git a/bitten/templates/bitten_admin_master.html b/bitten/templates/bitten_admin_master.html --- a/bitten/templates/bitten_admin_master.html +++ b/bitten/templates/bitten_admin_master.html @@ -53,6 +53,19 @@
+
+

+ Show the latest build status within the Trac navigation bar.
+ The Bitten button appearance reflects the build status. +

+
+
+