Skip to content
Permalink
Browse files

Accordion: Move code for deprecated height options into an extension …

…at the bottom of the plugin.
  • Loading branch information...
scottgonzalez committed Dec 19, 2010
1 parent f908281 commit d6edba5a89ab5e84044666bb9d50a4663c1412c8
Showing with 47 additions and 30 deletions.
  1. +1 −0 tests/unit/accordion/accordion_defaults.js
  2. +46 −30 ui/jquery.ui.accordion.js
@@ -12,6 +12,7 @@ var accordion_defaults = {
event: "click",
fillSpace: false,
header: "> li > :first-child,> :not(li):even",
heightStyle: null,
icons: { "header": "ui-icon-triangle-1-e", "headerSelected": "ui-icon-triangle-1-s" },
navigation: false,
navigationFilter: function() {}
@@ -17,13 +17,11 @@ $.widget( "ui.accordion", {
options: {
active: 0,
animated: "slide",
autoHeight: true, //DEPRECATED - use heightStyle: "auto"
clearStyle: false, //DEPRECATED - use heightStyle: "content"
collapsible: false,
event: "click",
fillSpace: false, //DEPRECATED - use heightStyle: "fill"
//heightStyle: "auto",
header: "> li > :first-child,> :not(li):even",
// TODO: set to "auto" in 2.0 (#5868, #5872)
heightStyle: null, // "auto"
icons: {
header: "ui-icon-triangle-1-e",
headerSelected: "ui-icon-triangle-1-s"
@@ -34,9 +32,6 @@ $.widget( "ui.accordion", {
var self = this,
options = self.options;

//Merge autoheight, fillSpace and clearStyle
options.heightStyle = options.heightStyle || self._mergeHeightStyle();

self.running = 0;

self.element
@@ -176,30 +171,9 @@ $.widget( "ui.accordion", {
return $.Widget.prototype.destroy.call( this );
},

_mergeHeightStyle: function() {
var options = this.options;

if ( options.fillSpace ) {
return "fill";
}

if ( options.clearStyle ) {
return "content";
}

if ( options.autoHeight ) {
return "auto";
}
},

_setOption: function( key, value ) {
$.Widget.prototype._setOption.apply( this, arguments );

// handle deprecated options
// TODO: remove in 2.0
if ( key === "autoHeight" || key === "clearStyle" || key === "fillSpace" ) {
this.options.heightStyle = this._mergeHeightStyle();
}
if ( key == "active" ) {
this.activate( value );
}
@@ -626,7 +600,7 @@ $.extend( $.ui.accordion, {
return this.href.toLowerCase() === location.href.toLowerCase();
}
});

var _create = prototype._create;
prototype._create = function() {
if ( this.options.navigation ) {
@@ -648,6 +622,48 @@ $.extend( $.ui.accordion, {
}
_create.call( this );
};
}( jQuery, jQuery.ui.accordion.prototype ));
}( jQuery, jQuery.ui.accordion.prototype ) );

(function( $, prototype ) {
$.extend( prototype.options, {
autoHeight: true, // use heightStyle: "auto"
clearStyle: false, // use heightStyle: "content"
fillSpace: false // use heightStyle: "fill"
});

var _create = prototype._create,
_setOption = prototype._setOption;

$.extend( prototype, {
_create: function() {
this.options.heightStyle = this.options.heightStyle ||
this._mergeHeightStyle();
_create.call( this );
},

_setOption: function( key, value ) {
if ( key === "autoHeight" || key === "clearStyle" || key === "fillSpace" ) {
this.options.heightStyle = this._mergeHeightStyle();
}
_setOption.apply( this, arguments );
},

_mergeHeightStyle: function() {
var options = this.options;

if ( options.fillSpace ) {
return "fill";
}

if ( options.clearStyle ) {
return "content";
}

if ( options.autoHeight ) {
return "auto";
}
}
});
}( jQuery, jQuery.ui.accordion.prototype ) );

})( jQuery );

0 comments on commit d6edba5

Please sign in to comment.
You can’t perform that action at this time.