]> source.dussan.org Git - jquery-ui.git/commitdiff
Accordion: Deprecated icons.headerSelected in favor of icons.activeHeader. Fixes...
authorAlex Dovenmuehle <adovenmuehle@gmail.com>
Tue, 11 Jan 2011 20:38:47 +0000 (15:38 -0500)
committerScott González <scott.gonzalez@gmail.com>
Tue, 11 Jan 2011 20:38:47 +0000 (15:38 -0500)
tests/unit/accordion/accordion_defaults.js
tests/unit/accordion/accordion_options.js
ui/jquery.ui.accordion.js

index bf5725f3002b5f5a9eaa3f58e6f51e6b07fac457..d29c1e84852a57d9ba30d75b89768764dfe73f86 100644 (file)
@@ -13,7 +13,9 @@ var accordion_defaults = {
        fillSpace: false,
        header: "> li > :first-child,> :not(li):even",
        heightStyle: null,
-       icons: { "header": "ui-icon-triangle-1-e", "headerSelected": "ui-icon-triangle-1-s" },
+       icons: { "header": "ui-icon-triangle-1-e", 
+                       "activeHeader": null,
+                       "headerSelected": "ui-icon-triangle-1-s" },
        navigation: false,
        navigationFilter: function() {}
 };
index 26bcb19e5d48c307c5abd1eefd30768647ecc7c5..331ceb92414d634c28fd64852f334def400bdc5c 100644 (file)
@@ -163,6 +163,15 @@ test("{ icons: false }", function() {
        icons(false);
 });
 
+test("{ icons: { activeHeader : 'test' } }", function() {
+       var list = $("#list1");
+       list.accordion( { icons: { "activeHeader": "test" } } );
+       equals( $( "#list1 span.test" ).length, 1);
+       list.accordion("option", "icons", { "activeHeader": "news" } );
+       equals( $( "#list1 span.test" ).length, 0);
+       equals( $( "#list1 span.news" ).length, 1);
+});
+
 test("{ navigation: true, navigationFilter: header }", function() {
        $("#navigation").accordion({
                navigation: true,
@@ -183,4 +192,12 @@ test("{ navigation: true, navigationFilter: content }", function() {
        equals( $("#navigation .ui-accordion-content:eq(2)").size(), 1, "third content active" );
 });
 
+test("change headerSelected option after creation", function() {
+       var list = $("#list1");
+       list.accordion( { icons: { "activeHeader": "test" } } );
+       equals( $( "#list1 span.test" ).length, 1);
+       list.accordion( "option", "icons", { "headerSelected": "deprecated" } );
+       equals( $( "#list1 span.deprecated" ).length, 1);
+});
+
 })(jQuery);
index 064d8dc91ee44f5560a27c81a7b19dd2a049287c..f7d0e27b2021c0d10e9142fee9cc3eac3edc77a3 100644 (file)
@@ -24,7 +24,8 @@ $.widget( "ui.accordion", {
                heightStyle: null, // "auto"
                icons: {
                        header: "ui-icon-triangle-1-e",
-                       headerSelected: "ui-icon-triangle-1-s"
+                       // TODO: set to "ui-icon-triangle-1-s" in 2.0 (#6835)
+                       activeHeader: null // "ui-icon-triangle-1-s"
                }
        },
 
@@ -133,7 +134,7 @@ $.widget( "ui.accordion", {
                                .prependTo( this.headers );
                        this.active.children( ".ui-icon" )
                                .toggleClass(options.icons.header)
-                               .toggleClass(options.icons.headerSelected);
+                               .toggleClass(options.icons.activeHeader);
                        this.element.addClass( "ui-accordion-icons" );
                }
        },
@@ -307,7 +308,7 @@ $.widget( "ui.accordion", {
                                .removeClass( "ui-state-active ui-corner-top" )
                                .addClass( "ui-state-default ui-corner-all" )
                                .children( ".ui-icon" )
-                                       .removeClass( options.icons.headerSelected )
+                                       .removeClass( options.icons.activeHeader )
                                        .addClass( options.icons.header );
                        this.active.next().addClass( "ui-accordion-content-active" );
                        var toHide = this.active.next(),
@@ -361,7 +362,7 @@ $.widget( "ui.accordion", {
                        .removeClass( "ui-state-active ui-corner-top" )
                        .addClass( "ui-state-default ui-corner-all" )
                        .children( ".ui-icon" )
-                               .removeClass( options.icons.headerSelected )
+                               .removeClass( options.icons.activeHeader )
                                .addClass( options.icons.header );
                if ( !clickedIsActive ) {
                        clicked
@@ -369,7 +370,7 @@ $.widget( "ui.accordion", {
                                .addClass( "ui-state-active ui-corner-top" )
                                .children( ".ui-icon" )
                                        .removeClass( options.icons.header )
-                                       .addClass( options.icons.headerSelected );
+                                       .addClass( options.icons.activeHeader );
                        clicked
                                .next()
                                .addClass( "ui-accordion-content-active" );
@@ -626,6 +627,7 @@ $.extend( $.ui.accordion, {
        };
 }( jQuery, jQuery.ui.accordion.prototype ) );
 
+// height options
 (function( $, prototype ) {
        $.extend( prototype.options, {
                autoHeight: true, // use heightStyle: "auto"
@@ -640,6 +642,7 @@ $.extend( $.ui.accordion, {
                _create: function() {
                        this.options.heightStyle = this.options.heightStyle ||
                                this._mergeHeightStyle();
+
                        _create.call( this );
                },
 
@@ -668,4 +671,16 @@ $.extend( $.ui.accordion, {
        });
 }( jQuery, jQuery.ui.accordion.prototype ) );
 
+// icon options
+(function( $, prototype ) {
+       prototype.options.icons.headerSelected = "ui-icon-triangle-1-s";
+
+       var _createIcons = prototype._createIcons;
+       prototype._createIcons = function() {
+               this.options.icons.activeHeader = this.options.icons.activeHeader ||
+                       this.options.icons.headerSelected;
+               _createIcons.call( this );
+       };
+}( jQuery, jQuery.ui.accordion.prototype ) );
+
 })( jQuery );