jQuery.dashboard() Plugin

Bevan Rudge

on

February 22, 2009

jQuery.dashboard() Plugin

The jQuery.dashboard() plugin for jQuery provides a framework that makes it easy for web application developers to create highly configurable dashboard-like user interfaces (similar to iGoogle) in their web applications. Jump straight to the demo. jQuery.dashboard() requires jQuery UI 1.7's (the new 1.6rc6) Sortable library, which in turn requires jQuery UI Draggable, core and jQuery 1.3. jQuery.dashboard() requires that a number of serverside callbacks be defined where the current user's widgets per column and minimized status are made available and saved, and where settings for each widget can be retrieved and saved. Optionally, a number of event callbacks can be assigned anonymous callback functions or server-side executable javascript file callbacks. Currently jQuery.dashboard() has only been deployed on a small number of private web apps, and should be considered alpha or maybe beta at best. The code has been written quite abstractly and extensibly and may well be re-usable with little or now changes for things like Drupal's panels module, an admin/build/block overhaul or other uses.
  • You can demo jQuery.dashboard() plugin at http://drupal.geek.nz/static/dashboard/demo.html.
  • You can checkout from subversion from https://svn.civicactions.net/repos/bevan/dashboard/
  • You can download a zip of the files.
An example implementation including example server-side ajax callbacks in PHP and javascript callbacks is included. For now, the example implementation also serves as documentation for the API. UPDATE: I forgot to include license information. jQuery.dashboard(), including jquery.dashboard.js, dashboard.css, and documentation found in ajaxData.php, demo.html, demo.css, demo.js, and widgets/* are made avilable under version 2 of the GNU General Public License.

Share it!

In principle I am happy to dual license with other open source licenses if it makes this code more useful for others, but don't know enough about licensing (shown by the fact I forgot to license this at all initially) to understand what licenses I can/should avail it, what they mean and how to do it.  Currently I don't have time/incentive to learn.

Hi Bevan,

Thanks for your reply. As far as i know if you license under GPL, the projects which uses your library must open source their code under the same terms (it is required to publish the code source for instance). The BSD and MIT licenses allow you to derivate or embed the library in any project without having to publish the source code. A GPL only component, like your fine library, cannot be used in open sources projects which are licensed with the BSD or MIT license because it would require to license the open sources projects under the same terms. Practically, i think that by licensing your library also under the BSD or MIT license it could allow to reuse it in other open sources projects under the BSD or MIT licenses. And it would be fine because i think it could be really good to improve existing projects with a dashboard view. Also i'm sure (and it will be my case) that if anybody use your library and improve it it would be happy to contribute back the modifications, in a sourceforge project to host it if you didn't have time. I'm volunteer to help to maintain the project if you need and contribute sample code for usage with Java backends if you do so. Best regards,

Rastaman, I treid to email you using the email address you provided in the comment form, but it bounced.  Can you please contact me via the contact form on this website or http://drupal.geek.nz/contact

thanks!

Hi Bevan, really nice piece of software! It's fast and light. But could you release it with the same terms than JQuery ? (MIT and GPL) It's a problem if we want to use it in closed source software. Keep up the good work!

Bevan, this is GPL-ed and not BSD or some such thing? That means, if I use it in a commercial piece of software as the dashboard manager, the whole app needs to be GPL. Would you have a version with a less restrictive licensing model?
Yes I'll be in DC next week! See you there! Jérémy
Good Work. Thinking of using it but I need to know under which license its being distributed; same as jquery: GPL and MIT? There is no information whatsoever about this in the downloadable package.
Interesting, I'm currently working on such a module for a client project. My work will be contributed to the community. I've just created a project page on Drupal.org. I think my schedule to release a first version is a few weeks (let say 2 or 3 weeks from now). Jérémy
Jeremy; Cool! I'd like to see how can collaborate to make both projects better. Are you going to DrupalCon DC next week? PM me. Anonymous; Ooops! I added a license and info to all the files. While the demo implementation is GPL, contributions are only valuable if they are to improve the example or documentation. jquery.dashboard.js and dashboard.css are the core of this package and I would like to see users respecting the GPL be contributing back enhancements and bug fixes to these files. Also, is there a better license for javascript code than the GPL? What are the advantages of licenses like MIT or DOJO for javascript libraries?
The gist of both license (and I am not a lawyer so this is my understanding of it all): GPL: imposes to whoever uses the code in their software to release their software as GPL as well (i.e. open source and free). BSD\MIT: let anyone use the code and release the resulting software under any license they wish.
How does this compare to the code that will be running the new drupal.org dashboard?
Holy cow, that's cool. Seen a lot of this type of thing in different places before (panels, for one), but don't remember seeing anything that's really modular enough and/or documented that others can use. Thanks for the write-up.
This is a very nice plugin. I do think people would have a much easier time working with this if it used the jQuery UI CSS framework classes and icons because this would allow these portlets to be themable with ThemeRoller with zero effort. It's very easy to tweak your code to use the classes so it's worth a look. I'm trying to get as many devs to use the framework as possible so theming will be "built-in" to plugins which makes it a million times easier to drop a plugin into your project. There are even icons for all images you're currently using. Check out the docs: http://docs.jquery.com/UI/Theming/API This article we wrote walks through how we used the fraemwork classes to built buttons as a way to introduce the framework classes used: http://www.filamentgroup.com/lab/styling_buttons_and_toolbars_with_the_j... The UI team will be prominently featuring plugins that use the framework and are ThemeRoller ready so it's a good way to get exposure.A lit of plugins are here: http://docs.jquery.com/UI/Theming/ThemeRollerReady
Todd Parker; Thanks! I'll look into ThemeRoller and try integrating it sometime. This is my first jQuery plugin, and while I've seen ThemeRoller before I didn't know most of what you just explained to me till now. Thanks heaps! Kyle_Mathews; Unfortunately I wasn't able to make this in a Drupal environment, so the serverside example is not a Drupal module. It wouldn't be too difficult to turn it into one and create an API for drupal modules to expose new widgets etc. The server-side implementation also needs to take care of the widget-add interface. There is no support for this in jQuery.dashboard() other than the configurable link to that page.