How to submit a fix to jQuery UI – The Easy Way

Posted on by

Now that jQuery UI is hosted on GitHub, it’s even easier to start contributing fixes to the project.

Let’s walk through the easy way, where you don’t need to learn how to really use git. In another post, we’ll cover some best practices for contributing with git.

Let’s say you want to submit a patch to the Dialog file, jquery.ui.dialog.js.

Step 1: Sign up for GitHub (jump on it)

Step 2: Fork the jQuery UI repository (become a committer of your very own copy of jQuery UI)

Step 3: Modify your fork through the GitHub web interface (commit your change without knowing git)

  • http://github.com/{your-username}/jquery-ui
  • Click on the folder and file you want to modify
    • click “ui/”
    • click “jquery.ui.dialog.js”
  • When you’re viewing the contents of the file you want to change, click the “edit” link (top right)
  • Make changes to the file in the editor
  • Enter a Commit Message to summarize the changes you’ve made and why you’ve made them.
    • This should include a reference to a Trac ticket, formatted like so
    • “Dialog: modified the foo to no longer bar. Fixed #1234 – dialog: IE6 crashed when foo is set to bar”
    • Be sure your commit message includes 4 parts: the WHERE, the WHAT, the WHY #Num, and the WHY Name. See the jQuery UI Commit Message Style Guide for more detail.
  • Click “Commit”

Step 4: Submit a Pull Request (tell the jQuery UI team why your change rocks)

  • http://github.com/{your-username}/jquery-ui/blob/{id-of-commit}/ui/jquery.ui.dialog.js
  • Click “Pull Request”
  • Enter a Message that will go with your commit to be reviewed by core committers
  • Click “Send Pull Request”

Step 5: Add a link to your commit to the ticket in Trac (tell everyone you’re on the case)

Step 6: Eat a cookie (yum)

  • You’re done!

Now if you need to change multiple files as part of one commit, the web interface will not be the way to go. In that case you’ll want to learn a little more about GitHub and git. You can start here:

jQuery UI 1.8.1

Posted on by

The first maintenance release for jQuery UI 1.8 is out. This update brings a bunch of fixes to Autocomplete and a few fixes to other plugins. For the full list of changes, see the changelog. You can download it here:

Download

File Downloads

Svn (contains final files as they are in the zip, with @VERSION replaced with 1.8.1, all themes)

Git (contains pre-build files, with @VERSION not yet replaced with 1.8.1, base theme only)

Google Ajax Libraries API (CDN)

Custom Download Builder

Changelog

See the 1.8.1 Changelog for full details on what’s included in this release.

Thanks

Thanks to all who helped with this release, specifically: andyurivecchi, AzaToth, jeresig, jzaefferer, misterakko, nigel, paul.irish, rdworth, Rwhitbeck, scott.gonzalez, scottjehl, and wewals.

jQuery UI 1.7.3

Posted on by

The third maintenance release for jQuery UI 1.7 is out. This is an update to the legacy 1.7 to make it compatible with the latest jQuery 1.4, in case you aren’t yet able to upgrade to the latest jQuery UI 1.8. You can download it here:

Download

File Downloads

Svn

Google Ajax Libraries API

Custom Download Builder

Changelog

See the 1.7.3 Changelog for full details on what’s included in this release.

Thanks

A huge thanks to Scott González for making the changes required for this release.

jQuery UI talks at the Bay Area jQuery Conference

Posted on by

Next weekend is the San Francisco Bay Area jQuery Conference that will be held at the Microsoft Silicon Valley Campus Conference Center in Mountain View, California.  There are still a few tickets remaining and tickets can be purchased up until Sunday April 18th.

In addition to the great talks that will be given on jQuery core there are quite a few talks about jQuery UI.  Here are the details on those talks:

jQuery UI Fundamentals

Richard D. WorthRichard D. Worth
Saturday 4:30p.m., Room 2

Widgets done richly. These tools work the way jQuery does, helping you build a rich user interface with ease.

jQuery UI, built on top of jQuery, is a complete set of interactions and widgets for building Rich Internet Applications. A few examples include drag-and-drop, resizing, mouse-sorting, mouse-selecting, autocomplete, button, datepicker, dialog, progressbar, slider, and tabs.

Each component adheres to a consistent standard across API, design, behavior and theming. This minimizes the surprise and makes learning all of them as easy as learning one.

This talk covers how jQuery UI is designed and how it leverages the power, flexibility, and expressiveness of the jQuery API. A live demonstration shows you how to use some of the more common jQuery UI interactions and widgets.

As an intro, this talk will be a great base for later jQuery UI talks that deal with creating or extending jQuery UI widgets and jQuery UI theming.

jQuery UI Widget Factory

Adam J. SontagAdam J. Sontag
Sunday 11a.m., Room 2

Charlie and the Widget Factory

All the delicious widgets in jQuery UI are have a sweet, creamy center: The jQuery UI Widget Factory. By encapsulating a useful infrastructure for creating complex jQuery plugins into a base class, the widget factory can be your golden ticket to creating complex (or not-that-complex), reusable components for your web app/site.

We’ll begin by exploring some common approaches to developing jQuery plugins, highlighting the strengths and weaknesses of various patterns, and identifying the shared characteristics involved in setting up robust, stateful widgets. Then, I’ll reveal the awesome secret that’s at the heart of the whole presentation: The authors of jQuery UI have already done just that, and their work is your gain. Armed with that tasty morsel, we’ll conceive, gestate, and give birth to a widget in almost no time flat.

By the time our tour concludes, you’ll have an understanding of when the widget factory is an appropriate solution to your problem, its potential drawbacks, and how to use it to create plugins that are lean, limber, and logical. If, of course, you are wise and listen to me, like the Oompa Loompa Doompety Dee.

Inside ThemeRoller 2.0: Refactoring for Speed

Doug NeinerDoug Neiner
Sunday 1:15p.m., Room 1

Doug has been working on the new version of ThemeRoller for the jQuery UI site. In his talk, Doug aims to give you a peak of the code and show off some of the speed improvements that are being made. The new version of ThemeRoller is being built on top of the latest technologies like Canvas and HTML5. You will see how you can use client side technologies to reduce server load and maximize the speed of your app.

Advanced Uses of jQuery UI

Scott GonzálezScott González
Sunday 2:45p.m., Room 1

jQuery UI provides a suite of plugins that can be used to build Rich Internet Applications. However, just like jQuery, it can’t do everything you need right out of the box. In this session we’ll cover how to extend jQuery UI plugins and how to build new plugins on top of what jQuery UI provides.

Jumping into the jQuery Community

Ralph WhitbeckRalph Whitbeck
Sunday 3:30p.m., Room 2

Are you looking to get more involved with the jQuery project but don’t know what you can do to help? Do you want to make a difference and be recognized for your contributions to jQuery? Even if you don’t have the JavaScript chops to add dazzling new features to the jQuery core, there are still plenty of direct ways for you to contribute back to the community.

In this talk, we’ll explore various options available to both designers and developers for contributing back to the jQuery Community. We’ll discuss ways to have a big impact on a great number of people—from offering help on the forum to sharing plugins to writing tutorials. And we’ll look at the proper procedures for reporting bugs and submitting patches.

This talk is meant for anyone who is interested in jQuery, from the very beginner to the more advanced user who is looking to get more involved.

jQuery UI 1.8 adds position, button, autocomplete, new widget factory, lighter core

Posted on by

The jQuery UI team is thrilled to announce the final release of jQuery UI 1.8 with 5 new plugins, 1 new effect, and hundreds of bug fixes and improvements.

We’ve worked extremely hard to make jQuery UI lighter and more modular with an even more flexible and extensible core. Now it’s even easier to build your own widgets or extend ours, whether you use the jQuery UI Widget Factory, the jQuery UI CSS Framework, or both. This release is a collective effort spanning more than 9 months with contributions from hundreds of developers, designers, testers and users. We thank you for all your help and support. And we even get personal (we’ll name names!) at the end of this post.

The code, themes, demos, and documentation are now live on jqueryui.com, the jQuery UI Download Builder, ThemeRoller, and Google’s AJAX Libraries API.

Note: There are significant (and in some cases breaking) changes in this release. If you currently use or develop jQuery UI plugins be sure to consult both the Changelog and Upgrade Guide for full details on these changes and their impact.

Download jQuery UI 1.8

I want it all:

I know just what I want:

  • The jQuery UI 1.8 Download Builder creates a custom zip with only those components you select. It also takes care of plugin dependencies, so you can chill more.

I want it always:

What’s new in jQuery UI 1.8?

This release adds two new utilities, two new widgets, an upgraded widget factory and a more modular core. For a full list of all the changes between jQuery UI 1.7.2 and jQuery UI 1.8, see the 1.8 Changelog. See below for a summary of some of the larger and more visible changes.

Position utility

Position any element relative to any other, or even relative to the window or the mouse. In true “Write Less. Do More” fashion, it’s a simple as selecting the element you want and saying which part of it should be positioned relative to which part of another element. Bam.

Button widget

The button widget creates a themable button from any imaginable element you might be using as a native button. Progressive enhancement all the way. Now your <button> will look like your <input type=”submit”> will look like your <a class=”button”>. We updated jQuery UI widgets that have buttons, such as Dialog, to use the button plugin when you’ve opted to include it. Otherwise, they’ll remain native button elements. Again thanks to PE this is as unobtrusive as possible. Thanks to Filament Group for figuring out how to do this and Jörn Zaefferer for making it happen. And of course the community as a whole for providing feedback during early design/dev and later dev/testing. We’re stoked about having pretty form elements, and button is the first step.

Autocomplete widget

Now you can make any text input pop up a menu to aid the user in completing a text entry or search box, providing suggestions or allowed values. The autocomplete is designed and built based on the popular Jörn Zaefferer’s Autocomplete. As with the button widget we’ve kept the API as minimal as possible while providing the hooks necessary to customize it based on your needs. For example, you can provide static local data using the source option, or provide a callback function as the data source which can handle getting data from a server via Ajax. Single option, overloaded. This is the new way we’ll be writing and refactoring all of our widgets going forward, and we’re excited to hear what people think. It’s quite a change, but should keep the library lean while still as flexible and powerful as possible. See the Autocomplete demos for more.

This is another new plugin that owes much of the implementation work to Jörn Zaefferer, with the API design by Jörn Zaefferer, Scott González, and Richard D. Worth. Filament Group, as always comes through with interaction design and static markup and css references.

New widget factory

Scott González and Jörn Zaefferer, with help from the community, have completed a large update to the jQuery UI Widget Factory in this release. These changes make it easier to create and extend your own widget, extend our widgets, or extend widgets others create.

Note: Some of these are breaking changes, requiring an upgrade for plugins that built on the 1.7 widget factory. A summary of these changes and their impact can be found in the widget factory section of the Upgrade Guide.

For another summary of these changes and why we’re so excited by them, see this post by David Petersen. Thanks David.

jQuery UI Core 71% smaller

The latest version of the jQuery UI Core is 71% smaller. This optimization has been achieved largely by pulling the already modular but bundled components mouse and widget.

New mouse plugin file makes jQuery UI 14% smaller on average

The mouse plugin isn’t new, but this release moves it to its own file, jquery.ui.mouse.js, where before it was inside the jQuery UI Core. This means that jQuery UI plugins that don’t depend on the mouse plugin but previously included the jQuery UI Core have less unused code to include, with an average overall file size improvement of 14%. That’s just an average. Some improvements will be as high as 36%.

File renames

All the .js and .css files have been renamed to start with a jquery.ui. prefix instead of a ui. prefix. This is to be consistent with jQuery plugin naming guidelines and is in preparation for some tools in development that will allow for easily creating custom builds that include jQuery plugins as well as jQuery UI plugins.

Note: If you write your own jQuery plugin, even if it’s based on the jQuery UI Widget Factory, please follow the jQuery plugin naming guidelines “jquery.{plugin-name}.js” not “jquery.ui.{plugin-name}.js” This will make it easier to distinguish between jQuery plugins that are and are not part of the official jQuery UI library. The same goes for widget namespacing and css class namespacing, except of course when using general jQuery UI CSS Framework classes. For example, if you write a widget called foo, the file should be named jquery.foo.js, not jquery.ui.foo.js. The widget can use classes such as ui-widget, ui-widget-content, ui-state-active (see Theming Docs for a full list) but should not use css classes such as ui-foo and other ui-foo-* classnames, as these would be reserved for the foo widget in the jQuery UI library, or jQuery UI Foo widget, which would have a filename jquery.ui.foo.js.

Latest jQuery 1.4.2

jQuery UI 1.8 includes the latest release of jQuery, 1.4.2. It’s fast.

How do I upgrade?

  1. Download jQuery UI 1.8 (see links above)
  2. If you’re going from 1.7 to 1.8, be sure to follow the latest Upgrade Guide. If you’re coming from an even older version, you’ll want to follow the legacy 1.7 Upgrade Guide first.
  3. Finally, to know just how much better every piece of jQuery UI got in 1.8, you can review the Changelog in all sorts of detail. If your favorite bug isn’t fixed yet, be sure to let us know in our bug tracker or the new Developing jQuery UI Forum.

What about jQuery UI 1.7?

The release of jQuery UI 1.8 final makes it the latest stable release of jQuery UI. This makes the previous release, 1.7.2, legacy. The jQuery UI project supports the latest stable and a single legacy release concurrently. So as of now, the jQuery UI Download Builder and ThemeRoller only contain these releases. Any release older than 1.7.2 is no longer supported and all users are encouraged to upgrade to 1.8 as soon as possible.

A few issues have been identified in attempting to use legacy jQuery UI 1.7.2 with the latest jQuery 1.4.2. These versions are not compatible. The legacy jQuery UI 1.7.2 is only compatible with jQuery 1.3.2. The coming jQuery UI 1.7.3 release will bring it up to compatibility with the latest jQuery 1.4.2. This will be the final 1.7.x release, freezing this branch.

Thanks

Thanks to all who helped with this release, specifically: 3li, 4pcbr, abaumhau, aesnn, aflynt, ajpiano, akaihola, akshell, alab1001101, albertvo, alexch, allanm051, andreas, Andrew Powell, andrew.sharpe.7.9, Aneon, antonello.pasella, aron.duby, arunpjohny, ashish879, ask, attaboy, audreyt, AzaToth, babaker, BenBlank, bhornseth, bkrausz, bman654, BMCouto, bmherold, bobbykjack, bobmajdakjr, bohdan.ganicky, bornemix, Brant Burnett, brostbeef, burhan, Ca-Phun Ung, caesar2k, carltongibson, cfrerebeau, chaos, Chealer, Chi Cheng, chrisbarr, cjwilks, coeamyd, colinclark, conkey2, crankharder, crexland, cupdike, cyberdaz360, d.wachss, d3r1v3d, dantman, danw, darkprisma, david.brooks, davidascher, davidb, defenestrator, Demphest, dhlavaty, diogobaeder, DiRN, divide, dluk, dmethvin, dmfontz, dmuir, dohsun, doublerebel, dougneiner, doutu, dpeterman, dprunier, DRHansen, dtetto, duelli, dunghopper, ecaron, eib, epascarello, epiraux, erikharrison, ethan, FDisk, FelipeMorais, fgTodd, Flany, FreakCERS, geki007, george.adamson, glipman, gotmikhail, grabanski, graemeworthy, GreyCells, guile, haayman, hatapitk, idlesign, igor.morozov, Infarinato, itfische, ivanko, jabbott7, JBeckton, jdillmann, jeffgran, jollytoad, julian.jelfs, Jörn Zaefferer, kae, ke4roh, Keith Wood, kevin.wells, klarkin, Klaus Hartl, kswedberg, lisaj, lnostdal, lunchtimemama, L_K_W, m4olivei, macarthy, Maggie Costello Wachs, marcoos, margustiru, martinkeimel, Matty, mawcs, mconway, mdiaz, menteb, mesoconcepts, mg, MikaJ, mikecapp, mikehostetler, Miroku_87, mkemmerling, mkornblum, moveax, MugeSo, mulhoon, mvermilion, neilski, nikolae, NJBR, nodster, ntoniazzi, obrie, patrick, Paul Bakaus, quasipickle, qwerty, ramaboo, raszi, rbrackett, remi, rgluga, ricardolopezrey, Richard Worth, riegens, rnbguru, RobARichardson, rsyring, Rwhitbeck, sam, Sancus, sc0rchin, SCCY, Scott González, Scott Jehl, sdavis, sebbacon, Sebmaster, seph429, sgorski, shartley, sherington, shuckster, slobo, smadep, snobo, sonu27, sosensible, spiralni, stakach, StevenBlack, TaeVjQuery, tan, Tgr, th3br41n, theojapa, thetoolman, tibi7000, timolastfm, togis, tomas, triblondon, trixta, uggedal, urkle, veronica, viraj.kanwade, vmx, vrn_shan, wakamolee, wewals, whydream, wichert, wimvl, Wolfjourn, xorax, xover, yourcelf, ZaDarkSide, ZeroMD, zeta, Zidane

jQuery UI 1.8rc3

Posted on by

The third release candidate for jQuery UI 1.8 is out and live on jqueryui.com. You can download it here:

Download

File Downloads

Svn

Changelog

See the 1.8rc3 Changelog for what’s been fixed since 1.8rc2. For a list of all issues fixed since 1.7.2, see previous 1.8 changelogs.

Upgrade Guide

A full Upgrade Guide for easing the transition between 1.7 and 1.8 is in the works. This will be ready in time for the final release. In the meantime, one of the more significant (and breaking) changes in 1.8 already documented there is a refactor of the widget factory. This means anyone that has built their own plugin that uses the widget factory will need to make a number of changes for compatibility with 1.8. For a view of these changes, see the widget factory section of the Upgrade Guide. Also, see this sample implementation of a simple widget with both the 1.7 and 1.8 widget factories, and the differences, by Scott González.

Plan for 1.8 final

We hope to release jQuery UI 1.8 final after a couple days, assuming there aren’t any blocking issues present in this release candidate.

Thanks

A big thanks to all that have worked on all the bug fixes and other improvements that have gone into this release. We’ll have a proper listing of all contributors in the final release announcement.

How to report issues

If you find any issues in this release, please do not put them in comments on this post, but instead head over to the Developing jQuery UI Forum. Thank you.

jQuery UI 1.8rc2

Posted on by

The second release candidate for jQuery UI 1.8 is out and ready for testing. You can download it here:

Download

File Downloads

Svn

Changelog

See the 1.8rc2 Changelog for what’s been fixed since 1.8rc1. For a list of all issues fixed since 1.7.2, see previous 1.8 changelogs.

Upgrade Guide

A full Upgrade Guide for easing the transition between 1.7 and 1.8 is in the works. This will be ready in time for the final release. In the meantime, one of the more significant (and breaking) changes in 1.8 already documented there is a refactor of the widget factory. This means anyone that has built their own plugin that uses the widget factory will need to make a number of changes for compatibility with 1.8. For a view of these changes, see the widget factory section of the Upgrade Guide. Also, see this sample implementation of a simple widget with both the 1.7 and 1.8 widget factories, and the differences, by Scott González.

Plan for 1.8 final

We hope to release jQuery UI 1.8 final after a couple days, assuming there aren’t any blocking issues present in this release candidate.

Thanks

A big thanks to all that have worked on all the bug fixes and other improvements that have gone into this release. We’ll have a proper listing of all contributors in the final release announcement.

How to report issues

If you find any issues in this release, please do not put them in comments on this post, but instead head over to the Developing jQuery UI Forum. Thank you.

jQuery UI Download Builder/ThemeRoller Status

Posted on by

NOTICE: The Download Builder and ThemeRoller have been restored to working order again.  Thank you all for your patience.

We are aware of the problems with the Download Builder and ThemeRoller and we apologize for any inconvenience this has caused.  We have disabled those components on our web site until the problems with these components can be resolved.  In the meantime, we would like to offer these static links for jQuery UI and jQuery UI Themes.  The Development bundle includes code for all jQuery UI plugins and the base theme.  The Themes Package includes all 21 pre-built themes from the ThemeRoller gallery.

jQuery UI 1.8rc1 (Preview)

jQuery UI 1.7.2 (Stable)

jQuery UI 1.6 (Legacy)

Google CDN

Multiple stable versions of jQuery UI are hosted on Google’s CDN as well as all the ThemeRoller themes for 1.7.2: base, black-tie, blitzer, cupertino, dark-hive, dot-luv, eggplant, excite-bike, flick, hot-sneaks, humanity, le-frog, mint-choc, overcast, pepper-grinder, redmond, smoothness, south-street, start, sunny, swanky-purse, trontastic, ui-darkness, ui-lightness, vader.

With Download Builder and ThemeRoller out of commission you will not be able to create custom downloads or themes. We understand that this is inconvenient and we are working as hard as we can to solve the problems as soon as possible. Thank you for your patience!

jQuery UI 1.8rc1

Posted on by

The first release candidate for jQuery UI 1.8 is out and is live on http://jqueryui.com/demos/. You can download it here:

Download

File Downloads

Svn

Changelog

See the 1.8rc1 Changelog for full details on what’s included in this release.
Barring any catastrophic problems this code will become jQuery UI 1.8.

How to report issues

If you find any issues in this release, please do not put them in comments on this post, but instead head over to the Developing jQuery UI Forum. Thank you.

Thanks

A big thanks to all that have worked on all the bug fixes and other improvements that have gone into this release.

jQuery UI 1.8b1

Posted on by

The first beta release for jQuery UI 1.8 is out. You can download it here:

Download

File Downloads

Svn

Changelog

See the 1.8b1 Changelog for full details on what’s included in this release.
Please help us test this and beat it up. The plan is to have one more beta release, and then an rc1 before final.

Thanks

A big thanks to all that have worked on all the bug fixes and other improvements that have gone into this release.