/solari-board

A JavaScript solari board

Primary LanguageJavaScriptMIT LicenseMIT

Solari Board

Fog Creek has used its Big Board for close to three years...and now you can have your own!

The Solari Board jQuery application will accept JSON from any source. The support team at Fog Creek feeds in tech call information from FogBugz, but the possibilities are limitless!

The application expects a JSON array wrapped in a function call (JSONP) and filled with objects that have the following properties:

  • sDate: the day of the appointment. The Solari board can handle values like yesterday or today.
  • sTime: the time of the appointment. Format like 22:45 and remember the leading zero on the hours. If this appointment does not have a time, make it an empty string.
  • sDeparture: an arbitrary string; on our board, it's the email address of the support technition who has the support call.
  • nStatus: allows you to set the status to one of four statuses: "All Aboard" (nStatus = 1), "On Time" (nStatus = 2), "Delayed" (nStatus = 3) or "Departed"(nStatus = 4).
  • nTrack: an arbitrary integer between 0 and 99; we use it to indicate which extension the call should be on, but you can use it for whatever purpose you want.
  • fLight: should be set to true if you want the lightbulb by that row illuminated, and false otherwise.

Here's an example:

jsonpCallback(
 [
    {'sDate': 'today',
     'sTime': '13:30', 
     'sDeparture': 'foo@example.com',
     'nStatus': 1,
     'nTrack': 17,
     'fLight': true
    },
    {'sDate': 'yesterday', 
     'sTime': '16:00',
     'sDeparture': 'bar@example.com',
     'nStatus': 2,
     'nTrack': 19,
     'fLight':false
    },
    {'sDate': 'July 8th, 2013',
     'sTime': '16:30',
     'sDeparture': 'baz@example.com',
     'nStatus': 2,
     'nTrack': 23,
     'fLight':false
    }
 ]
)

How do I use it?

It's simple!

  1. Include the following lines in your HTML:

    <script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.transit.min.js"></script> <script type="text/javascript" src="js/date.js"></script> <script type="text/javascript" src="js/solari.js"></script> Your browser does not support the audio element.
  2. Add the following script to your webpage's head:

    <script> $(document).ready(function() { //remove the div parameter to append directly to body addSolariBoard("#myDIv"); }); </script>
  3. Point the board to the script that will feed it jsonp

    $.post('../example/postJson.py') // replace this with your own script

Currently, Google Chrome and Internet Explorer are the only supported browsers. This is due to an issue in animating the CSS property backgroundPositionY on other browsers. We'd welcome patches that help resolve this issue.

Additional Configuration and Examples

  • Toggle status_override in solari.js to have the board automatically change the status column using time and date due.
  • The sDate field takes any date.js parsable string (e.g. today, next monday)
  • There are two included examples, postJsonp.py is a basic script that statically sends the sample payload given above to the solari board. postFogbugz.py connects to a FogBugz installation through the xml api. To use either example, Just place all files and folders onto a Python-enabled CGI server, then edit fbsettings.py with your FogBugz URL and FogBugz token if needed.

FogBugz Solari Board

Copyright

Copyright © 2013 Fog Creek Software, Inc. All rights reserved.

Licensing

The Solari Board is licensed under the MIT license.