Jifty

 view release on metacpan or  search on metacpan

Changelog  view on Meta::CPAN

    - WikiToolbar
    - WyzzEditor
 * Added ViewDeclarePage plugin, for more advanced Template::Declare
   pages.
 * Several deprecated plugins have been removed:
    - AuthCAS (replaced by Authentication::CAS)
    - AuthLDAP (replaced by Authentication::LDAP)
    - EditInPlace
    - Debug (replaced by AccessLog)
    - Nothing
 * Authentication::Password: Extend Login action so people can use
   username to login, though email takes precedence of username
 * OnlineDocs: Cleanup and dispatcher-ize
 * OnlineDocs: Link to local application pod directly
 * OnlineDocs: Allow linking to specific page within documentation
   using /__jifty/online_docs/?n=Jifty::Manual
 * REST: Include the "by" column attribute in the REST interface for
   Net::Jifty
 * REST: Some doc for extending your REST interface's object dump
 * REST: Propagate output format across REST redirection
 * REST: Give help under /= as well
 * REST: Better errors from the REST API for hidden/denied actions
 * SinglePage: Added history support for links; we use the "Really
   Simple History" javascript library to make the magic work.
   (http://code.google.com/p/reallysimplehistory/)
 * SinglePage: Add a temporary variable for disabling spa in runtime.
 * SQLQueries: Also clear slow/halo queries on "clear queries"
 * SQLQueries: Avoid undef warnings from undef bindings
 * User: Since it is internally used as a flag to store if one has
   valid email address, the column "email_confirmed" should never be
   rendered.


TESTING
=======
 * Move a skip_all from compile time to runtime. some cpantesters
   failed a test file with no actual tests :(
 * Move t/lib/Jifty/SubTest.pm to lib/Jifty/Test/Dist.pm Additionally,
   make it descend from Jifty::Test, so you don't need to use both
 * Add test app from Peter Mottram to uncover this valid_values bug
 * TODOify some tests that need some virtual-column discussion
 * Depend on the $$ for ports, not on random numbers.  This reduces
   the likelihood of port conflict.
 * Add a test helper module for matching notification email sent
   during a test.
 * Fixes for updated LWP, WWW::Mechanize; ->get and ->post are not
   ->get_ok and ->post_ok
 * Add a TestServerWarnings plugin during tests, which allows us to
   have a warnings_like test, which checks warnings on the server
   side.
 * Bail early with exit value, if database drop or create fails
 * Do not load po files by default anymore.  You can provide l10n => 1
   for tests requiring po loading.


VIEW
====
 * Better integration between views, using a common
   String::BufferStack.  This allows cross-calling between
   Template::Declare and HTML::Mason templates.
 * Kill our custom popup notifications in favor of jGrowl.
   Additionally, use Behavior to change full-page action messages into
   sticky jGrowl messages.
 * Added a 'multiple' flag for select form field
 * Make the default "Loading..." display as an animated gif spinner
 * Support for "loading" fragments for lazy regions.
 * Add, and respect, the calendar-starts-monday element class for
   calendar javascript.
 * Add a render_hidden to Jifty::View::Declare::Helpers



-------------------------------
Jifty 0.80408 - April 8th, 2008
-------------------------------

I18N
====

 * Make account confirmation error message translatable - alech

 * r4925 removed loc.js from jifty::web, which should have been added to the
   i18n plguin. - clkao

 * random l10n. - clkao

 * typo in zh_tw.po. - clkao

 * updated zh_cn po - sunnavy

BACKWARD-COMPATIBILITY-PROBLEM
==============================

 * THE FOLLOWING CHANGE BREAKS BACK COMPATABILITY:
 * 'set' in T::D templates and the dispatcher no longer alters the
   values in the request itself.  It alters values that are not stored
   if the request is saved as a continuation.  This saves us from
   contiuation bloat due to objects getting stored in the
   continuation.  This does not lose us much, because any arguments
   set via 'set' will get a chance to be set again when the
   continuation is called.
   Due to the implementation, however, 'set' cannot be used any more
   to alter or add actions, state variables, or the like.  Some might
   view this new restriction as a feature, though, given how much of a
   kludge it felt like before. - alexmv

 * Complain loudly about back-compat when an action is denied. Changelog the
   Jifty::API changes. - sartak

 * Update YUI from 2.2.1 to 2.4.1 *** Please check your apps for
   incompatibilities as there have been *** many changes between these YUI
   versions. - trs

BUGFIX
======

 * add a check for the op to the dispatcher condition cache because on and the
   other ops generate different regexps - falcone

 * Check validity of PID in the lock file - alexmv

Changelog  view on Meta::CPAN

 * When doing new region creation, make sure we get the new value of the
   element that we're applying Behavior, etc, to. - alexmv

 * YUI classes weren't getting properly attached because $class changed to
   $args{class} (why didn't strict/warnings catch this?) - trs

 * Attach the proper yuimenu(bar)?itemlabel class to links - trs

 * You no longer have to manually register an action if the only place it's
   used in a form is in a submit. exception: if you use a moniker rather than
   an action object, we don't have a way to convert that into the action, so
   that still requires a manual registration - jesse

 * _current_collection shouldn't ever be able to get an object passed as
   search_collection - alexmv

 * app_behaviour.js was not enable in IE6. jQuery less than 1.2.2 has problem
   in .ready() (We have 1.2.1). - bokutin

 * cleaning up some old templates - jesse

- Merge /bps/jifty/jifty/branches/cssquery-refactor to
  /bps/jifty/jifty/trunk - clkao

- When form_field() are called with render_as in cached mode, Make sure it
  requires the widget class. - clkao

- Refactor and put all the Form::Field blessing logic into one place. - clkao

 * A prototype.js fix for IE6 throwing object errors on Hiveminder task
   creation - sartak

 * Add a canonicalize_value to Jifty::Web::Form::Field. Override it in Date to
   output just the YMD part. - sartak

 * Add a class to read mode spans to allow them to be selected separately.
   - sterling

 * Convert clickable tooltip to button title and make sure buttonToLink()
   passes on the title attribute. - sterling

 * Don't auto register field's action unless we are in an open form. This
   fixes the case where actions aren't properly registered to the correct
   form: my $foo = $action->form_field('foo')->element_id; form {
   render_action($action); form_submit; } - clkao

 * Fix a bug that if you use $action->form_field('foo'); $action-
   >form_field('foo', render_as => 'hidden') you get a ::hidden object which
   is useless, as opposed to normal Hidden object which returns from the
   following without cache: $action->form_field('foo', render_as =>
   'hidden') - clkao

 * Fix menu activation for menu items which are defined with link instead of
   url/label - trs

 * Fix title handling in Web::Form::Field::Select - sartak

 * Fixed missing HTML escaping on option value attributes in select form
   fields. - sterling

 * Inserted the missing jifty-result-popup DIV on the Mason page wrapper.
   - sterling

 * Jifty::Web: removed long-gone loc.js (deleted at #4324) from
   javascript_libs - ishigaki

 * Make dropdown/context menus a reasonable fixed width - trs

 * Make the YUI menu.css usable - trs

 * Move our own Form.Element.* methods to Jifty.Form.Element.* and mark the
   old ones as deprecated. This is a forward-compatible change in preparation
   for the jquery branch merge. After the merge, the old methods will no
   longer exists, and the Jifty.Form.Element.* ones will be provided by the
   Prototypism plugin. Patch by hlb. - clkao

 * Normalize placeholder text because sometimes one has \r\n and the other has
   \n. Ugh. - sartak

 * Only call ->url on link if it supports it - trs

 * Some style changes and minor fixes (that damn quote in onclick.. !) -
   sartak

 * Support group headings for YUI menubar rendering - trs

 * Support menu grouping for YUI - trs

 * Totally redo menu grouping. The way it works now is you build up menus and
   submenus as normal and then for submenus that you want inline, you set
   render_children_inline => 1 for the parent. - trs

 * Turns out turning off ajax canonicalization for a single form field was
   just ignored. We need more JS tests. :( - sartak

 * Updated the chart image behaviour JavaScript since it broke with the
   Prototype 1.6 update. - sterling

 * Updating so that simple bars work again (broke with Prototype 1.6) and also
   ported to use jQuery. - sterling

 * jifty.js: Work around placeholders not being properly cleared and causing
   (small) data loss - sartak

 * re-merge r5120 given now regions know if they are in a opened form. - clkao

 * refactor handlers Jifty::Web::Form::Element to use our
   mk_normalising_accessor. - clkao


Jifty 0.71129

I18N
====

 * Delay i18n handle init until we have session. SkeletonApp dispatcher rule
   to set language in session. - clkao

 * I18N plugin: log when user is somehow able to pass in disallowed lang.
   inline the initial dictionary json. - clkao

Changelog  view on Meta::CPAN

 * Jifty::I18N - POD fixup. - audreyt

 * Jifty::I18N: Implement the L10N.AllowedLang key to limit the set of
   languages available to the user. Use case: ja.po is incomplete and we wish
   to hide it from users. Requested by: clkao - audreyt

 * Jifty::I18N: provide available_languages method. - clkao

 * Jifty::I18N::promote_encoding - r4286 by yours truly broke auto- decoding
   for POST requests. This is a better fix to avoid the "Unquoted / not
   allowed in Content-Type" warning (which arugably is a
   Email::MIME::ContentType glitch), by scanning the Content- Type header for
   the substring "charset" before parsing it. This way, when "charset" is not
   found in that header, we still fallback to Encode::Guess, regardless of
   whether the request was of type "multipart/form-data". - audreyt

 * Jifty::I18N::promote_encoding: Multi-part form data have no notion of
   charsets, so we return the string verbatim here, to avoid the "Unquoted /
   not allowed in Content-Type" warnings when the Base64- encoded MIME
   boundary string contains "/". Prompted by this Content- Type header found
   in real world: multipart/form-data; boundary=----
   WebKitFormBoundaryRqXyEnBQ/5VSsexe which triggered this error: --
   2007/10/22 04:19:30 WARN> Carp.pm:46 Carp::carp Unquoted / not allowed in
   Content-Type! at /usr/local/lib/perl5/site_perl/5.9.5/Jifty/I18N.pm line
   226 -- 2007/10/22 04:19:30 WARN> Carp.pm:46 Carp::carp Illegal Content-
   Type parameter /5VSsexe at
   /usr/local/lib/perl5/site_perl/5.9.5/Jifty/I18N.pm line 226 - audreyt

 * Jifty::Plugin::I18N: provides SetLang action. provides loc.js and other
   facilities to l10n your javascript along with po. - clkao

 * Provide get_current language method in Jifty::I18N. - clkao

 * Support serving json version of po and localization in javascript
   space. - clkao

 * Update zh-tw po to include translations for authentication::password
   plugin. - clkao

 * allow switching current language for Localization. - clkao

 * bin/jifty po now takes two more options: --dir for additional directories
   to look at so javascript files can be scanned. --js for generating json
   dictionaries for messages appeared in javascript files declared with
   Jifty::Web. - clkao

 * loc.js cleanups. - clkao

 * updated ja.po - ishigaki

 * zh_tw l10n for Authenication::Password plugin. - clkao

BUGFIX
======

 * A temporary fix for rico.js, which is defining the obsoleted (in
   Prototype) Object.prototype.extend which and then breaks all calls
   to jQuery.fn.extend.  That means all methods with jQuery.fn.extend
   were simply not there. For instance, jQuery("div.secret").show() - gugod

 * Added missing jifty-result-popup div to the page detritus section of
   Jifty::View::Declare::Page. - sterling

 * Allow users to name their apps in lowercase (as pragmas ?!). Reported by
   SteveH++ - jesse

 * Bring the default back, but at 0.0.0 to prevent uninitialized complaints.
   - sterling

 * Class::Accessor::Fast cleanups - jesse

 * Clean up Jifty::Web initialization a bit. - jesse

 * Clean up the masonXXXXXXXXXX temp directory after each test run. - sterling

 * Do not do clever & broken input_name for buttons when preserve_state is
   false. - clkao

 * Don't do weird things with loading model subclasses - jesse

 * Don't send cookies for static files. We suspect that doing so was screwing up
   non-compliant proxies that were caching the cookie and causing.. "amusing"
   security problems - sartak

 * Fix compatibility with Test::WWW::Mechanize - jesse

 * Fix mismerge.. - sartak

 * Fixes to several of my fixes for
   Jifty::Request::load_from_data_structure - jesse

 * Fixing a bug that prevents any but the first plugin being checked for
   schema updates. - sterling

 * Fixing a typo in the plugin DB version metadata key affecting upgrades.
   - sterling

 * Horrible Hash::Merge workaround, part 2 - alexmv

 * Improving schema setup for plugins that are turned on after the application
   is initially deployed. - sterling

 * Jifty::Request::Mapper - Avoid uninitialized warnings when
   $args{destination} ends up undefined. - audreyt

 * Make sure Jifty::Filter::DateTime doesn't disturb Floating datetimes
   Otherwise, dates would get set to the current_user's timezone, throwing a
   wrench in the works - sartak

 * Menu class is undef by default; fall back to the empty string - alexmv

 * Minor edit: fixing reference to Jifty::Request::Action to Jifty::Action
   - sterling

 * Pg wants to connect to template1, but CREATE DATABASE foo TEMPLATE
   template0 - alexmv

 * Plugin upgrade incorrectly assumes a DB version of 0.0.1 when none is
   found. - sterling

 * Rather than helpfully failing to load model classes that have
   compiletime errors, actually die with the error that caused the class
   not to load. - jesse

 * Remove debug info. - clkao

 * Remove debugging statement - alexmv

 * Removing the display style from the jifty-result-popup, which is breaking
   it. - sterling

 * Revert clkao's fixes for now because they break apps :/ - sartak

 * Revert r4117 as the element readiness state is not compatible with what it
   was. - clkao

 * Revert r4435 because it breaks Safari 3.0.4 - sartak

 * Reverting the addition of these files which were added by a push error.
   - sterling

 * Some databases have schema creation single-threadedness. If they block,
   wait and retry for up to a minute - jesse

 * Some parts of that last commit to use only one Module::Pluggable weren't as
   hot as they appeared to be; - jesse

 * The JIFTY_SITE_CONFIG environment variable was silently ignored. - audreyt

 * Undoing 4302. There is such a class. Thanks to chmrr. - sterling

 * Undoing previous accidental patch to Jifty::Continuation because I have not
   finished proofing it. - sterling

 * Use ->clone on DateTime objects to avoid possible DST issues, etc - sartak

 * Use blessed() instead of ref() to keep an if statement from tripping on
   ->isa(). - sterling

 * We depend on the bugfix that
   File::Spec->rel2abs("/foo","/foo") eq "." - alexmv

 * When it's a ::Create action, $event_info won't have a record_id there,
   cause a fatal error when it's published latter. - gugod

 * When loading a web request from a data structure, don't totally throw away
   the path it was requested at. - jesse

 * Work around a "feature" in Hash::Merge < 0.10 - alexmv

 * carp, don't warn, for a "title" Mason/TD warning - sartak

 * collection generator may be called when we're loading models and not all
   models have been loaded to the moment, so we have to try to require the
   model before testing if it esists. - ruz

 * don't gen a collection class if there is no model - ruz

 * don't warn if database doesn't exist when dropping database - sunnavy

 * friendly_date should be relative to the user, not floating - sartak

 * make a looser check for Content-Type since firefox 3 will append charset
   stuff to it sometimes - sunnavy

 * merged prototpe-1.6 to trunk again, wish it's all right this time :) -
   sunnavy

 * no need to print STDERR, we can warn in $SIG{__WARN__} - sunnavy

Changelog  view on Meta::CPAN

 * make a chdir conform to the rest of the test suite and use Jifty::SubTest
   chdir noticed by Andreas Koenig during his cleanups - falcone

 * add tests for UTF-8 related things - ruz

 * a failing test about utf8 when using T::D - yves

*                 we need bytes in escape_uri then 'use bytes'
* resulting string is always valid ascii string,
  so we shouldn't forcibly set utf flag - ruz

 * fast test support: truncate tables rather than recreating database when
   JIFTY_FAST_TEST is specified. - clkao

VIEW
====

 * update tabview plugin to use new relative path syntax for td show(). -
   clkao

 * don't use pager to determine items as list_items might be called directly
   and no pager has been set on the collection. - clkao

 * Jifty::Plugin::SkeletonApp::Dispatcher - Do not override the 'Home' menu
   item if the app had set it already. - audreyt

 * Jifty::View::Declare::CRUD - I18N. - audreyt

 * Fixed a problem where some disabled elements weren't re-enabled after a
   submission when the disabled elements were outside of the fragment being
   refreshed. - efunneko

 * Added a new helper, new_record_action(), that wraps new_action() with
   additional help creating Create, Update, Delete, and Search actions for
   models. - sterling

 * Fixes to use_mason_wrapper():
  * Added a test to make sure use_mason_wrapper() works.
  * Added $jifty_internal_request to note whether a Mason request is internal or not.
  * Altered the autohandler to use $jifty_internal_request when blocking access to /_elements/
  * Fixed error handling in the autohandler to redirect to /__jifty/error/requested_private_component rather than /errors/requested_private_component - sterling

 * Give the browser (particularly Safari) some more "settle time" - trs

 * Added support for more javascript triggers for most form elements: onclick
   onchange ondblclick onmousedown onmouseup onmouseover onmousemove
   onmouseout onfocus onblur onkeypress onkeydown onkeyup onselect - efunneko

 * Fix to a JavaScript bug performing the rerendering of IMG graphs. -
   sterling

 * Without the conditional we'll hide errors as soon as we display them - trs

 * Add explicit hide/show for the error, warning, and canonicalization note
   divs. This solves some long time ugliness on IE. However, it is not perfect
   as I am still getting some rendering issues on IE. Does not seem to break
   anything on FF. - sterling

 * Fix a fragment update regression caused by the trimclient merge. - clkao

*              Make enter key submit in the address search popup.
* Fix the close link in ambigious address popup. - clkao

 * Add some classes - trs

 - CRUD view: Minor refactoring for easy wording change
 - Provide the D in CRUD - trs

 * CRUD: Don't bother showing edit link if current user can't - clkao

 - Plugin CSS and JS (which should be put in
   share/plugin/Jifty/Plugin/Foo/web/static/{css,js}) is now compressed by
   CCJS
 - CCJS can compress more than just main.css by calling Jifty->web->add_css("file.css") - trs

 * in REST record_to_data, skip container columns. - clkao

 * r60264@102: jesse | 2007-07-08 21:52:09 -0700
  * Template::Declare behaviour change for "show 'foo'" to now show foo at the current template depth. - jesse

 * r24794@zot: tom | 2007-06-21 02:46:02 -0400 Restore and update the OOM
   patch to the YUI calendar - trs

 * Convert to using the form of declaring titles that works when using the
   mason wrapper with TD - trs

 * CRUD plugin cleanup and refactoring - jesse

 * CRUD View: Also export display_columns so it's not required to
   override it - trs

*       New Template::Declare page syntax for additional code block run
         before wrapper, and have the returned value passed to wrapper:

template foo => 
  page { title => 'this is title', other => 'foo' }
  content {
    h1 { 'blah }
  }; - clkao

 * Fix jifty->web->out from without td used with mason wrapper. - clkao

 * try not to interfere when a user clicks on a link with a modifier key
   pressed - jesse

 * YourApp::View->use_mason_wrapper now lets your write page {} in TD but uses
   your mason wrapper. - clkao

 * Do not call update() when ctrl-clicked - clkao

 * Fix javascript emission when CompressedCSSandJS plugin is not loaded
   noticed by dpavlin++. - clkao

 * Refactor the CRUD view to make it easier to customize the output - jesse

 * when rendering the keybindings div, reset Jifty.KeyBindings. Ideally we
   might want to keep the state with the div so it resets itself when
   replaced. - clkao

 * For post fragment update script evaluation, use YUI OnAvailable rather than
   hardcoded setTimeout. - clkao

Changelog  view on Meta::CPAN

  parameters/arguments concept split.
* Introduce aliases.  See Jifty::Param::Schema for the table.
* Declarative Jifty Parameters.
* See Jifty::Param and Jifty::Param::Schema for the new syntax.
* Also added dependencies for Jifty::Script::Deps and declarative parameters.
* Also updated test applications to use declarative parameters. 
* Adding the CSS browser selector trick from http://rafael.adm.br/css_browser_selector/ to Jifty
* After autocomplete, trigger a validation.
* Upping JSON::Syck version dependency. 0.14 fixes escaping in single-quoted strings.
* Add a tooltip to the dismiss link and hide the dotted border
* Trailing commas are not good for JS in Safari
* Let's not blow up if we have placeholders on an input without a form
* Don't fade autocomplete in and out, just show and hide it
* Not submitting placeholder values when we submit forms or AJAX
* Add the class before we set the text, so that it appears grayed-out, rather than appearing and *then* graying out
* Support multi-line placeholders
* textareas can have placeholders, too; Style them appropriately as well
* Adding support for placeholders, grayed-out text in form fields that is written in with JS and vanishes on focus
* Auto-accept cpan's wisdom about prompts (Jifty::Deps)
* 0th sketch at "jifty deps"
* packaging plan updates
* J::Web::redirect can take a Clickable as arg, so make goto do that, instead of passing a URL with parameters, which doesn't work right
* Proper port support on urls. Thanks to jpeacock.
*  Resolve inconsistent filenames vs packages (Plugins)
* Switched Jifty::Web::url to use uri.pm rather than "heuristics"
* Let's not blow up if an action has a result that's an unblessed reference.
* Don't upgrade the database versions with schema --print. I'm not sure
  if there's a good way to persuade JDBI to give us the SQL to print, so
  we're just spitting out a warning for now, but that's better than the
  old behavior.
* Stop notification from flipping out if you use a scalar as the To:
* basic smoke test for jifty's notifications 
* Only set active child on create if we have a request
* More serious failure message, and don't imply that it's necessarily the server's fault.
* update .po files
* Jifty::Dispatcher - there's no call_next, remove it from POD, fnord.
* Refactoring message rendering slightly
* Fix Jifty-Win32 by having canonicalize_path always returning
  /-separated paths, never \-separated paths.
* Let classes be set on menu items
* Adding a warning about our slow Rico.Corner.round
* Documenting how to write sane Behaviours that don't leak memory (leak
  less memory, probably) in IE and aren't dog-slow.
* Fix JS memory leak in IE
* Make jifty tests respect the current given @INC, so it doesn't
  use lib when you are supposed to use blib during make test.
* Make the subtest system less painful.
* Use Jifty::Script to invoke test server, so it doesn't depend on
  bin/jifty.
* Fix a Safari display bug
* Fix calendar positioning bug and make sure it works when the date field is within a relative or absolutely positioned element
* Test file for Jifty::Client
* First pass at a Jifty client module.
*  English orthography fixes.
* Trailing commas in Perl are good.  In Javascript, they aren't, and sometimes cause IE to barf (like this one).
*  Hide focus border
* Lowering the autocomplete delay
* first-pass editorial run over Continuations.pod.
* Sketchy sketchy handwavy descriptions of page region backend.
  Ramblings totally not expected to be interpretable.
* Wrap the popup notification div in dropshadow wrapper hooks
* Mention webservices in Actions doc
* Double fallback goes the way of the dodo
* Continuation manual
* Set up the output API for mapping of request parameters (input API
  already existed)
* Change method of getting results out of response on continuation RETURN
* Fewer calls to ->arguments, though they might be cached already.
* Not all CurrentUser classes may have a "nobody"
* Jifty::Web::Form:Clickable - provide a bit more info on how to use
  the "returns" field.
* jifty-dispatcher.graffle that shows the dispatch chain.
* Nicer "server down" message
* Re-enable form inputs after failure
* toggleable page region clickables weren't doing the right thing when used in non-ajax mode
* Fix the validation and autocomplete race condition
* Skip nobody and superuser when we do notifications


060707

  * Minor build fixes

060706
  * SECURITY UPDATE: Previous versions of Jifty did not 
  protect users against a class of remote data access vulnerability. If an
  attacker knew the structure of your local filesystem and you were using 
  the "standalone" webserver in production, the attacker could gain read
  only access to local files. 
  
  We found this vulnerability on 6 July 2006 during an internal Security 
  scan. We've added new tests to ensure that these and other similar
  vulnerabilities don't recur.

  We recommend that ALL users of Jifty UPGRADE to 0.60706 IMMEDIATELY.


060616
  * The last CPAN release was broken. No real changes.

060615 (15 June 2006)

The following incompatible changes were made to Jifty. For a complete changelog,
please see the "Changes" file.

 * Removed the ActionBasePath and CurrentUserClass configuration
   variables.  This breaks backwards compatibility.

 * If you've overridden /_elements/javascript in your app, you'll want to 
   take a look at the new stock version to see what has changed.

 * The JS method document.getElementsBySelector() no longer exists.  Use 
   cssQuery() instead.

 * Jifty::Record now returns empty objects for related objects that can't be 
   loaded, rather than undef


 * The keybinding JS code is now a more proper library 
   (Jifty.KeyBindings) and less intrusive.  If you've overridden the 
   default /_elements/wrapper in your app, you'll want to make sure you get 



( run in 1.079 second using v1.01-cache-2.11-cpan-364913b4093 )