BugMon 1.2
By Scott Nance (snance@exmsft.com)

A Yahoo (Konfabuator) Widget for Bugzilla

 

Table of Contents

  • Configuration Options
  • Custom Bug Colors

  • General Overview
    What Is BugMon?   (Back to the Top)
    BugMon is a desktop Konfabulator Widget designed to give you a continually updated view of a Bugzilla Project. In addition, it can serve as a simple Bugzilla front-end, by allowing you to create new bugs and jump to individual bugs for editing purposes.

    Background   (Back to the Top)

    The genesis of BugMon came about after I played with David Dekker's BugzMonitor widget. I needed flexability that it didn't provide and I wanted a quick way to learn JavaScript. So I combined the two. As I added more features and decided to migrate the widget to Konfab 4.0, I ended up doing a ground-up rewrite and producing a new critter entirely. Heck, even the graphics have been changed.

    Support and Feature Requests   (Back to the Top)

    First thing, support. There officially isn't any. Please let me know if you find any bugs and I'll try to fix them in a reasonable fashion. (For example, I had a bit of free time and the fix for Bug Security Groups (v1.1.1) was completed within a couple of hours of the bug being reported...) But if you really need guaranteed, mission-critical turn-around for bug fixes, I recommend you go out and learn to hack a widget. ;)

    Essentially the same thing goes for Feature Requests. If you have a good idea, and I like it, and think it'll be useful to lots of folks, I'll probably put it in. But I'm not tweaking 100 different copies for every small field text change that's out there.

    Revision History   (Back to the Top)
    BugMon 1.0 (05/09/2007)

    • Initial Limited Release
    BugMon 1.1 (05/24/2007)
    • First Full-Public Release
    • Added Filters for Component and Version
    • Made Header-Click Execute Current Query in New Bugzilla Window
    • Improved 'Clickability' of Icons
    • Improved Window Scrolling Usability
    • Added Refresh Icon to Header
    • Added Help Icon to Header
    • Added Full HTML Documentation
    BugMon 1.1.1 (07/03/2007)
    • Bug Group Security Fix
    • Fixed Queries for Systems Running Bug Group Security
    BugMon 1.2 (07/30/2007)
    • Enhanced Customization Release
    • Customizable Bug Coloring for Priority, Severity, and Status!
    • Help File Works Properly
    • Limited Header-Click to Text Area
    • Version and Component Queries Working Properly
    • Enhanced Support for Special HTML-Encoded Characters
    • Auto/Manual-Check for Newer Versions of BugMon
    • Unicode/UTF-8 Character Display Supported
    • System-Generated Samples for Custom Query String Creation

    Credits   (Back to the Top)
         Special thanks go out to the following people:

    Intava Corp.

    Builders of Cutting-Edge Tactile Digital Experiences and Touch-Screen Solutions, (http://www.intava.com) for allowing me to tinker with this in the evenings and still return it back to the public Bugzilla community.

    David Dekker

    Author of the original BugzMonitor. I hope this is something along the lines of where he would have liked to see this concept evolve.

    Mark James

    Creator of the incredible SILK Icon Set. See these fantastic (and free!) icons at http://www.famfamfam.com/lab/icons/silk/.


    Getting Started
    Installing BugMon   (Back to the Top)
    BugMon is installed in the same manner as any other Widget. You may either download it from the Yahoo Widgets Gallery and allow it to auto-install, or place the BugMon.widget file in your Widgets directory. Then add it to you desktop as usual.

    Running for the Very First Time   (Back to the Top)

    The first time you execute BugMon it will not have a connection to your Bugzilla Server. Please perform the following steps to get connected:

       1) Right-click on the BugMon widget and bring up the Widget Preferences... dialog.
       2) On the Connection tab, fill in your Bugzilla Server URL, Username and Password.
           (You will not be able to set a Project, Component, Version, or Milestone until BugMon
           has actually connected to the server and downloaded the field values.)
       3) Click Save and allow BugMon to establish a connection to your server.
       4) After the initial connection has been made, go back in to the Widget Preferences and set
           the rest of the options as desired.


    Main Display
    Header   (Back to the Top)
         The top line of the standard BugMon display shows the number of defects and some details about
         the current query. It also allows you to start Bugzilla with the current query and display the BugMon
         User Guide (this document).

    Moving BugMon Around the Screen

    Most of the BugMon widget is clickable so... to move the widget around the screen you can either click-and-drag any blank section of the Header line or most of the footer of the widget. Clicking pretty much anywhere else will call Bugzilla in some way or another.

    Count

    The first item in the Header is the number of bugs returned in the current query.

    Filter/URL

    The next item (in parens) is a short description of the current query -or- the Custom Query String currently in use.

    Clicking this description will bring up Bugzilla with the current query loaded. This is useful for modifying a lot of bugs or for troubleshooting a Custom Query String.

    Date/Time

    On the right side of the header is the date and time the bug query was last refreshed.

    Refresh Now

    Clicking the green Refresh Now icon will immediately refresh the current bug query. (Instead of waiting for the timer to elapse...) The auto-refresh timer is reset when the Refresh Now button is clicked.

    Define Custom Bug Colors

    Clicking the yellow Paint Palette icon will bring up the Define Custom Bug Colors page where you can customize the Bug Coloring behavior of BugMon. (This is described in greater detail here.)

    Help

    Clicking the blue Help icon will bring up the BugMon User's Guide. (This is the document you're reading right now...)

    Bug Body   (Back to the Top)
         The majority of the BugMon window is taken up by the main Bug Body area. This is the area of
         rows and columns that display the bug information itself. At this point you cannot select columns
         or change their order, but hey, I've gotta leave something for future releases, right?

         The columns are (in order of display):
              Bug Number
              Status
              Priority
              Severity
              Description (Summary)
              Assigned To

    Bug Number

    The Bugzilla Bug Number. Simple enough.

    Status

    The current Status of the Bug. (Bugzilla generally displays only the first 4 characters of the Status value.)

    The Standard Bugzilla Status values (NEW, OPEN, RESOLVED, etc.) are auto-colored.

    Priority

    The current Priority of the Bug. (Bugzilla only displays a limited number of charaters of the Priority.) The contents of this field will be auto-colored.

    Severity

    The current Severity of the Bug. (Bugzilla only displays a limited number of charaters of the Severity.) The contents of this field will be auto-colored.

    Status, Priority & Severity Auto-Coloring

    The default settings of BugMon will auto-color the Status, Priority and Severity fields using the following criteria:

       1) Standard Bugzilla Priority/Severity values are used (or at least the same first
           two characters...)
       2) The first character of a Custom Priority/Severity value is a digit between 1 and 5
             For Example: 1-Blocking, 5-Feature Request, etc.
       3) The first two characters of a Custom Priority/Severity value are 'P' or 'S' (for Priority
           and Severity, respectively) followed by a digit between 0 and 9
             For Example: P2-Must Fix, S3-Workaround Available, etc.

    BugMon examines the characters at the beginning of each field value. When it finds a match, it sets the text and background colors for that field. If multiple matches are possible, BugMon uses the first one it encounters.

    The default colors range from a panic-inducing Red with Yelow lettering for the most serious values, to calm greens for the opposite end of the spectrum.

    BL1P0S0
    --P1S1
    CR-P2S2
    MA2P3S3
    NO-P4S4
    -3P5S5
    MI-P6S6
    TR4P7S7
    --P8S8
    EN5P9S9
    Unknown Value

    Don't like the default colors or have different Priority & Severity values? No problem. You can customize the auto-coloring behavior here.

    Description

    Description/Summary contains the 'title' of the bug. This field is also truncated to a set number of characters by Bugzilla. (So making the Display Width really large may still not allow you to see more information in this field.)

    Assigned To

    The person the Bug is currently Assigned To.

    By default, this field will auto-color silver-blue if the bug is assigned to YOU. Don't like the color? Go here to customize it!

    Footer   (Back to the Top)
         The bottom line of the BugMon display is the footer. It contains summary information about the
         current bug set. It also allows you to create new bugs and scroll through the current bug list.

    Create New Bug

    The orange asterisk in the bottom-left of the footer is the Create Bug link. Clicking it will bring up a Bugzilla New Bug window.

    Footer Info

    Immediately to the right of the Create New Bug icon is the Summary Area of the footer. This area contains summaries of Bug Status, Priority and/or Severity, depending on the settings on the Widget Preferences, Display Tab.

    Sort Info

    Following the summary section (assuming there's room) is the Sorted By indicator. This indicates the current sort order of the bugs being displayed.

    Scroll Arrows

    If there are additional bugs before or after the set on-screen, the Scroll Up and Scroll Down arrows light up appropriately. Clicking either arrown scrolls to the next page in the current bug set. The bug query is NOT refreshed. This is simply a scroll within the current set of bugs.

    Right-Click Menu   (Back to the Top)
         Right-clicking on the BugMon window brings up a menu with additional functions plus
         the standard widget functionality.

    About

    Display a simple About screen for BugMon.

    Widget Preferences

    Display the standard Preferences Screens for a widget. The items on these screens can be found in the Configuration Options section below.

    Check For Widget Updates

    Check the Widget Gallery to see if a different (newer) version of BugMon exists. This is the same check that is performed automatically each time you start BugMon.

    Hide Widget

    Hide Widget. Standard widget functionality.

    Close Widget

    Close Widget. Again. Standard widget functionality.


    Configuration Options
    Connection   (Back to the Top)
         Options on the Connection Tab determine which Bugzilla server you connect to and how often your
         bug list is refreshed.

    Bugzilla Server URL

    The URL to your Bugzilla server. (Usually the URL of the BZ Home Page...) It should always start with 'http://'. You don't need to include the '/' at the end.

    Username

    The Username you use to connect to Bugzilla. It is appended to all Bugzilla queries in order to connect to the system even when Login Cookies are not enabled.

    Password

    The Password that goes with the Username above. Also appended to queries.

    Refresh Bug List Every XX Minutes

    This is how often the bug list will refresh. For slower systems or queries that return a lot of bugs, (thousands) choose a higher (slower) value. For a fast BZ server with a limited # of bugs, you may be able to go as fast as once a minute.

    Disable Check for New Versions

    By default, BugMon will connect to the Widget Gallery server each time it is started and look for a newer version of itself. If it finds one, you are notified. Once. If you ignore this notification, you're not going to be bothered again. But you can always use the Check For Widget Updates option on the right-click menu.

    However, sometimes you may not want this behavior (behind a corporate firewall, have to use a special web proxy, really slow connection, etc.). Selecting this box will disable the new version check on startup. You'll then need to check the gallery every so often for updates or use the Check For Widget Updates ooption on the right-click menu.

    Bug Selection   (Back to the Top)
         Options on the Bug Selection Tab determine which bugs are displayed. Think of this as a modified
         version of the Bugzilla Search screen. It works exactly the same way.

    Only Bugs Assigned To Me

    If this box is checked, only bugs currently assigned to you will be displayed.

    Product

    Selecting a value will display only bugs that are currently assigned to that Project.
    (Leave blank for all bugs.)

    Component

    Selecting a value will display only bugs that are currently assigned to that Component.
    (Leave blank for all bugs.)

    Version

    Selecting a value will display only bugs that are currently assigned to that Version.
    (Leave blank for all bugs.)

    Target Milestone

    Selecting a value will display only bugs that are currently assigned to that Target Milestone.
    (Leave blank for all bugs.)

    Bug Status Checkboxes

    Select one or more Bug Status checkboxes to display only bugs that have that status. Selecting none of the boxes (or all of them) will result in all bugs being displayed.

    Days Since

    A value here will display only bugs that have changed in the past XX days. Set to '0' for all bugs.

    Custom Query String

    If a custom Query String is specified it will override all other options on the Bug Selection tab. It is here to allow Power Users to create very complex bug queries.

    In a nutshell, here's how it works:
       1) Design a complicated bug query in Bugzilla
       2) Execute the query
       3) Make a copy of the Query String section of the URL (the first ? and everything following)
       4) Massage the query to remove unneeded arguments
       5) Test your new query in BZ to make sure it returns the bugs you're expecting
       6) Paste the query into BugMon
       7) Hope it works...

    It's not perfect. And I've had some problems with very complicated queries. But, it does allow a measure of query flexibility that's just not possible any other way.

    The best way to troubleshoot a custom query string is to click the BugMon Header to run the query in Bugzilla and go from there. Remember, if you have specified a Username and/or Password on the Connection tab, BugMon will append the following to any Custom Query String you specify:

       &Bugzilla_login=XXXXX&Bugzilla_password=XXXXX&submit=GoAheadAndLogIn

    Last System-Built Query String

    This field will always contain the LAST system-generated query string used by BugMon. It's here to use as a basic template for building your own Custom Query Strings. It has no other functionality and is overwritten each time BugMon refreshes.

    Display   (Back to the Top)
         Options on the Display Tab determine how the bugs are displayed on your screen.

    Bugs Per Screen

    This is how many bugs will be displayed on-screen at any one time. If the query contains fewer bugs, the footer bar will be moved up below the last bug. If the query contains more bugs, the Scroll Up and Scroll Down arrows will be appropriately enabled to allow you to scroll through the current bug set.

    Show Summaries in Footer Checkboxes

    If this option is selected, the footer will contain a summary of bugs broken down by Current Status, Priority, and/or Severity. You can mix and match these options as you desire.

    Display Width

    This is the width in pixels of the BugMon display. You may choose to make it larger (to support a larger font size or show more of the Bug Summary) or smaller (to take up less space on your desktop).

    Bug List Sort Options

    The three Bug List Sort option fields allow you to control the order of bugs displayed. Any combination of the three fields may be used. The first field set non-blank will be used as the Primary sort, second as Secondary, etc.

    All sorts are initially Ascending. Checking the 'Sort Descending' box will reverse the sort for that field.

    Display Font Size

    The font size of the BugMon display can be configured to allow easier reading, or to put more information in a smaller space.

    International   (Back to the Top)
         The following options are not needed if you run a boring English Bugzilla. In fact, they'll slow you
         down a bit. But if you use a Unicode language or have lots of HTML-encoded characters, they
         should be just what the doctor ordered.

    Unicode/UTF-8 Encoding Fix

    Turn this on if you are having problems displaying Unicode characters. (Chinese, Japanese, etc.) A Konfabulator bug corrupts these characters when accessing them through a URL. The workaround is (get this) to save them directly to the drive THEN load the text file. It's ugly but it works. And it may add a second or two to each bug refresh, but it's not a big hit.

    CSS Font Family

    All of the text fields in BugMon are set to follow this CSS Font Family setting. By default BugMon uses '"Arial Unicode MS",Arial,sans-serif' (Yes, you need the "s...) If you use a Unicode language not supported by this font, feel free to change the Font here. Search 'CSS Font Family' on the web for more information on constructing valid entries. (Screw it up and it'll use the default setting...)

    Enhanced Status, Pri, Sev HTML Translation

    Normally, for speed, only a few characters are decoded from the HTML string. (!, ", &, ', <, >, @, and \) But many International systems use a great deal more of these characters. Selecting this option will translate ALL HTML-encoded characters up to asc-255. In all encodings. Again, leave it off unless you find a lot of unescaped HTML in your results.

    Custom Bug Colors   (Back to the Top)
         This screen allows you to control the auto-coloring behavior of bugs on your display.

    Define Custom Bug Colors Screen

    Most of this screen is taken up by colored boxes. Each box represents a color combination for a particular Bug Status, Priortiy, or Severity value(s). Clicking on a box selects or deselects the box. Once selected, you may use the buttons below to change the Test Color, Background Color, or Text Strings for that combination.

    Bug Strings

    A Bug String is a comma-separated list of values that are used to determine if a bug should be a specific color. When each bug is displayed, it's values are compared against the values in the list of Bug Strings. (From the start of the value...) As soon as one is found that matches, the bug is set to use that color combination.

    Status Values

    Bug Strings for the standard 7 Bugzilla Statuses have been preset. These cannot be changed at this time. You may, however, change the Text Color and Background Color as desired.

    Priority Values

    There are 10 combinations available for Priority colors. You do not have to use them all. Simply leave the Bug String blank for ones you do not wish to use.

    You may change Text Color, Background Color, and Bug String for Priorities.

    Severity Values

    There are 10 combinations available for Severity colors. Same deal here as with Priority. Change what you wish. Leave them blank if you don't want to use them. Also, by default colors for Priority and Severity are essentially the same. They don't have to be. So knock yourself out. Just remember, you've got to look at them all day...

    {Unknown Value}

    At the bottom of each column (Status, Priority, and Severity) are cells labeled {Unknown Value}. Any bug that does not match one of the strings in the column will default to this color.

    Bugs Assigned To Me

    The large box immediately below the Status, Priority and Severity columns defines the color for Bugs that are currently assigned to you.

    Edit Bug Strings

    Selecting a box and clicking the Edit Bug Strings button allows you to edit the Bug Strings for that color combination. Enter strings as a comma-seperated list of values. You may specify up to 5 values for each Bug String.

    Each value will have Leading and Trailing spaces removed, be converted to UPPER-CASE, and then be truncated to 4 characters, if it's longer than that. If more that 5 values are entered, extras are discarded before saving.

    Edit Text Color

    Selecting a box and clicking the Edit Text Color button allows you to edit the text color of the current combination. It uses a standard color picker. No further explanation needed here...

    Edit BG Color

    Selecting a box and clicking the Edit BG Color button allows you to edit the background color of the current combination. Same as text Color, no further instructions should be needed.

    Reset ALL to Defaults

    Clicking this button will reset ALL Colors and Bug Strings to the default values and return you to the normal BugMon display. Not just the selected box, ALL OF THEM. You can't undo this. So be sure...

    Discard Changes

    Clicking this button will discard all Bug Color and Bug String changes you have made and return you to the normal BugMon display.

    Save Changes

    Clicking this button saves the Bug Color and String settings you have made and stores them in your Preferences for future use. You are then returned to the normal BugMon display.

       (Back to the Top)