BugTender

In progress helper tool to provide a mobile-friendly UI for Bugzilla.

Demo

 * http://toolserver.org/~brion/BugTender/#buglist
 * very basic search & display so far, not a nice UI ;)
 * hooked up to https://bugzilla.wikimedia.org/ via local JSON-RPC proxy
 * in theory needs no proxy if hosted on actual Bugzilla site

Source

 * https://github.com/brion/BugTender

Purpose
I (brion) find that I do a lot of email and other communications catchup on my smartphone in the mornings. Some at home, some while walking, some while on a bus or train.

Connectivity comes and goes, so aiming for offline support is key -- remembering things we've seen so we can keep working on them while offline; queueing up comments & bug modifications when offline to resubmit when online.

Primary workflows expected:
 * read updated comments on bugs we're assigned/CCd on
 * read new bugs filed recently
 * reply to comments
 * resolve 'dupes', 'invalid's etc
 * file simpleish bugs directly (pick product, component, type a summary and a quick note, maybe include a screenshot or URL)
 * basic search & look
 * filtering searches on comments once a bug is open (to find part of a discussion)

Need to be able to:
 * quickly look up particular bugs
 * get URLs of bugs and comments out to a regular browser or share to other apps for email etc

Server access
BugTender uses Bugzilla's JSON-RPC interface.

When run in a regular web browser from a foreign domain, a server-side proxy needs to be used (Bugzilla sends no CORS headers on its JSON-RPC interface, so cross-origin rules prevent us from reading data back). See the config.js.sample and config.php.sample files for configuring this.

The proxy is nonfunctional when not enabled, and when enabled it only forwards JSON POSTs to the designated target site and back, so there's limited potential for abuse.

When run from elevated privilege situations such as a PhoneGap app, this shouldn't be necessary.

Choices
I'm using jQuery Mobile for user interface. I've seen Sencha Touch recommended as well, but it appears to be WebKit-only and very iOS-centric. jQuery Mobile works on Android & iOS stock browsers as well as many others, including mobile versions of Opera and Firefox, and it *doesn't break* on a regular desktop browser. :)

Should be possible to adjust jQuery Mobile themes to look more iOS-, Android-, etc-native.

Wrapping the HTML5 app in a PhoneGap native wrapper should also allow:
 * letting it connect to arbitrary bugzilla instances
 * accept file uploads (camera, screenshots)

Todo

 * AppCache support (full offline functionality of core files)
 * persistent cache database in IndexedDB/WebSQL (offline view & whatnot even across browser restarts)
 * write abilities (with offline queueing):
 * post comment / reply
 * resolve bug
 * post attachment
 * file bug
 * adjust properties, add CCs etc
 * bookmarking/flag for later?
 * read abilities:
 * better bug & comments view
 * deps etc
 * dependency trees/graphs
 * PhoneGap wrapper