Clientcide 3.2, MooTools Bootstrap 3.1

Good stuff!

Behavior 1.3.0 > 1.4.0

  • Minor bug fixes.
  • Delegator: Adding ability to skip checking the event object for type match. This allows you to progromatically invoke a trigger without a valid event for that trigger.
  • api.getElement/getElements now work with 'window' and 'self' selectors
  • Delegator: Adding new included triggers: 'multi''any', and 'first', as well as support for filter conditionals.
  • Delegator.addEventTypes now works even if the named trigger is not found (this allows the custom filters like multi and the switches work for things like blur and focus).
  • Behavior now fires a new event – apply – when it finishes applying all the filters. This allows you to do things like api.addEvent('apply:once', function...) in a filter to invoke something after all the other filters are applied.
  • Updating specs to work with the latest mootools test runner.
  • Behavior: Adding new cloneFilter method. Great for making “canned” defaults for often reused configurations.
  • Delegator: Adding setTriggerDefaults and cloneTrigger method to Delegator.
  • Preventing values that are objects set as defaults from being linked to each other for each instance of the API.
  • Merging declared options with the defaults to allow for options that are objects having partially set defaults.

Bootstrap 3.0.1 > 3.1.0

  • Minor bug fixes.
  • Tooltip behavior now supports Object offsets
  • Making it an option to specify where bootstrap tooltips get injected.
  • Bootstrap.Affix can now monitor elements other than the window.
  • Adding new static version of the tooltip behavior that just shows up in the right spot without requiring user interaction.
  • using .hide class instead of .hidden per Bootstrap 3.0.1 which deprecated it
  • Popups now hide when you click outside the model-content, which allows you to click the mask above the popup to hide it.
  • Adding new features to Bootstrap.Affix – persistence and the ability to specify an element for the top/bottom boundaries.
  • Bootstrap 3.1

Clientcide 3.1.0 > 3.2.0

  • Minor bug fixes.

More Behaviors 1.0.8 > 1.1.0

  • Minor bug fixes.
  • Adding checkToggleAll to CheckAllOrNone.js
  • Fixing throttling in Delegator.Ajax

Get it:

Bootstrap 3.0, Clientcide 3.1.0, Behavior 1.3.0, and More Behaviors 1.0.8

It’s update time! The good news is that most of these changes are non-breaking. Specifically, all of the changes except Bootstrap. Bootstrap 3.0 came out a week or two ago and I’ve updated my MooTools Bootstrap implementation to match it. Bootstrap itself changed the way that the modals work and that forced a breaking change in my library. It’s not so bad though; you can just define “Bootstrap.version = 2” in your code and you’ll get the old setup.

If you want to see all this stuff in action, just mosey on over to and check it out. Be sure to select the “Bootstrap” option from the select list at the top if you want to see that stuff. Here’s the demo of all the Bootstrap stuff.


Clientcide 3.1.0

  • Fixes #87 – Stickywin.Ajax update error
  • Correction of options and cachedRequest.
  • Corrected offset.
  • Fixes #88 – StickyWin.UI with non-integer width options
  • removing redundant option definition
  • Updated version string 3.0.10 > 3.0.12
  • Removed unused var left. Removed unnessecary semicolons (the right ones this time).
  • Changed mask style background color to official camel case, to prevent default option overwrite problems.
  • Removed unnessecary semicolon.
  • Add click event for hideOnClick, only if necessary.
  • Check for this.visible to prevent accidently mutliple execution of hide (close, destroy)
  • Adding cookie option to Tabswapper behavior
  • Adding TabSwapper.Hash
  • Adding ability for links that reference a section with a #href name to change the tabs.
  • fixing reference error in tabs / hash work
  • tabswapper’s reference to its tabs is an Array, not an Elements collection
  • Fixing dependency for MooHash; fixing destroy handler for Tabswapper.Hash when the hash option isn’t in use.

Behavior 1.3.0

  • adding getElement and getElements helpers to the api object.
  • Fixing Delegator specs; small typo in expect statement.

More Behaviors 1.0.8

  • removing useless function wrapper
  • Updating Delegator.Ajax to allow for setting method of AJAX call.
  • Adding logic to prevent forms in FormRequest submitting w/o ajax if their `.submit` method is called. Adding some controls to prevent flooding if this happens.
  • Adding the textOverride option to the OverText behavior api
  • not using the element setter for Fx.Reveal so that it doesn’t reset the state of the class.
  • Adding loadOnce to Ajax delegator.
  • Adding option to HtmlTable Behavior to specify reverse sort on startup.
  • Adding the ability to encode content into an Ajax request as well as the ability to throttle an Ajax Delegator.
  • Allow addRemoveClass delegator to target multiple elements.

Bootstrap 3.0

  • new class: Bootstrap.Affix and the associated behavior
  • Popovers (and tooltips if you like) can now have their ‘trigger’ option set to ‘click’ which allows you to show them on click instead of mouseover if you like.
  • Delegator.BS.ShowPopup now allows you to just use a #href reference to the id of the popup to show.
  • Dropdown now allows for you to have its behavior on the Dropdown itself instead of a container.
  • Bootstrap.Popup now expects that the layout matches Bootstrap 3. *This is a breaking change* but compatibility has been left in place for Bootstrap 2. For this to work, you must set `Bootstrap.version = 2` in your code.
  • Bootstrap.Popover’s offset defaults are now zero unless `Bootstrap.version` == 2

MooTools pour le français

Got an email from Xavier Lecomte this morning that his MooTools book is now available. In French. As my French is terrible I’m a poor judge of it’s quality, but Xavier has been emailing me questions and details over the past several months and seems like a bright guy. If French is your native tongue and you’ve been waiting for some MooTools knowledge, I’d say this is worth checking out. Here’s an excerpt if you care to peruse it.

Clientcide 3.0.12

Rolling a quick release to get some bug fixes out the door. Nothing major here. This is a drop-in release that shouldn’t require you to change anything.

Bootstrap 2.0.1

  • Added support for dropdown buttons (thanks to Fabien Pennequin for the contribution)
  • Fixed tab behavior to add the “active” class to the right elements; makes tabs w/ dropdown menus work more betters.
  • Modals now close in Safari

Clientcide 3.0.12

  • StickyWin.UI no longer freaks out when you use non-integer width options (i.e. ‘500px’ works).

Other, quite minor, bug fixes.

MooTools Bootstrap 2.0

Twitter’s Bootstrap continues to bring the awesome and I’m falling behind. The 2.0 version of Bootstrap (which is not backwards compatible) brings a lot of great refinements and consistencies as well as a few new features. In particular, the JavaScript features continue to grow at a lovely pace.

Alas, it’s all jQuery stuff, which is fine if you aren’t already using MooTools (really, if you just want Bootstrap and nothing else, use jQuery). But if you’re hooked on MooTools and want to use Bootstrap 2.0, I’m apparently still the only game in town.

So what’s new in MooTools Bootstrap? Mostly just support for all the breaking changes in Bootstrap 2.0. If you’ve already got a project running Bootstrap, you don’t need to upgrade unless you want some of the new features there (like the flexible layouts for mobile and whatnot.

Updating for Bootstrap 2.0

  • All the “*.Twipsy” files are now “*.Tooltip” to reflect the change in Bootstrap
  • Numerous conventions changed in Bootstrap 2.0. In particular things like tabs, tables, and dropdowns now prefix their component name to all their classes (table-striped instead of zebra-striped, “btn btn-primary” instead of “btn primary”)
  • Added support for drop down lists in tabs

Clientcide 3.0.10

Another maintenance release for the most part. What’s new?

* StickyWin.Ajax now can cache requests (useful for tips and whatnot); thanks @zipz
* New class: StickyWin.PointyTip.Ajax – provides for ajax tips. Again, thanks @zipz
* Fixed errant reference to old Browser property. This was breaking when used with MooTools 1.4* w/o compat.
* Tabswapper now allows you to specify if it should call preventDefault on tab clicks (useful if you’re being good with your HTML and using hrefs for the tabs).

* Delegator no longer throws an error if it encounters a trigger for a different event type. This means that if you have a click delegator and, say, a focus delegator, you won’t get errors in your console when the click event encounters the delegator for the focus event and vice versa. This isn’t a functional change, it just means you aren’t notified in the console.

As always, you can get all this at

j (or z) and gr (git root) For Command Line Awesomeness

Here’s a little command line utility I use the hell out of:

Basically, this script tracks the directories you cd into on the command line and builds a rank order of their locations. Here’s a chunk of mine (with some fake directory names to protect the innocent):

8.93693 /Users/aaron/Development/mootools-development
17.5369 /Users/aaron/Development/foo
36.132 /Users/aaron/Development/bar
36.6632 /Users/aaron/Development/i/like/cookies
52 /Users/aaron/Development/what/do/we/have/here
97.5176 /Users/aaron/Development
270.192 /Users/aaron/Development/clientcide/Source/Interface
483.024 /Users/aaron/Development/clientcide/Source

If I type “z Source” I’ll automatically jump to that last line because it’s the highest ranked entry that matches that string. “z interface” will take me to the line above it. “z Devel” will take me to the line above that. It’s remarkably smart; it’s very rare that I end up somewhere other than what I want to be, even when I only use one or two characters from the location I’m after (“z clientcide” takes me to clientcide/Source, which may not be what I wanted).

Note: Originally it was called “j” ( and I got so used to using that alias that I have “j” aliased to this script. z is the more recent implementation.

Oh, and here’s another one:

alias gr='[ ! -z `git rev-parse --show-cdup` ] && cd `git rev-parse --show-cdup || pwd`'

That command (gr) will take me to the root of any git repo I’m in.


Clientcide 3.0.9: The IE Edition

In my previous release of bootstrap I complained about my inability to test in IE. A few of you were kind enough to hit my specs and let me know that my low expectations of IE were not unfounded. Well, I finally got bootcamp and VMWare installed and went through the super-happy-fun-time that is IE debugging and this release has all my latest stuff working in IE8 at least.

In today’s release:


  • Various IE fixes to Autocompleter, Behavior filters for Autocompleter and StickyWin
  • Updated specs expectations which were ignored because I can’t remember the names of my own options signatures.
  • StickyWin.Fx is nerfed for IE. IE users don’t get fading! Deal with it!


  • Various fixes for IE
  • Updating docs for inline JSON options – they previously stated that you didn’t have to quote the names in the JSON object; this was never true.

More Behaviors

  • Updated for MooTools More
  • Various fixes for IE support


  • Dropdowns no longer hide when inputs or labels in the menu are clicked.
  • More support for browsers w/o CSS animations (they don’t get any animation at all, but they don’t break either). Old versions of Firefox and IE for example.
  • Various IE fixes.

There you has it. Nothing really sexy, but hey, you get what you pay for.

Clientcide Libs for MooTools 1.4.1

A few weeks ago MooTools released version 1.4. I held off on pushing it to my repos here because I knew there were one or two (very minor) issues and that 1.4.1 was forthcoming and I I didn’t want to go through the work of releasing for it twice.

Now that 1.4.1 is out I’ve pulled it in and updated the few things that required it and it’s now available. The Clientcide release didn’t iterate because nothing changed. There were a few minor changes in some of the other repos (More Behaviors, Bootstrap) that had to do with things like dependencies moving around. Nothing major. If you were running 3.0.8 of Clientcide already, you don’t need to do anything.

If you’ve been playing with Bootstrap or Behavior in general, there have been a few changes over the past week or two. Since my last post:


  • Delegator now passes the ammendDom and destroyDom events to its behavior instance.


  • Popup now uses CSS animations for sliding in, mimicking precisely the same behavior that is found in Bootstrap’s js for jQuery/Ender.
  • Twipsy and Popover now have options to only display when the text is cropped. This works great with text-overflow: ellipsis in your css.
  • You can now add a .dismiss class to anything in a Popup that will close it. This was true of adding a .close class already, but Bootstrap adds styles to .close elements in the popup that you may not want.

I’ve made a few updates here and fixed a few issues. For starters, there was a misconfiguration in one of the Bootstrap files that broke the builder, so that’s fixed. Also, I’ve fixed the benchmarks; those weren’t working because my server was having issues with github’s SSL certificate and wouldn’t update the submodule for benchmark.js.