r789 - in trunk: tests ui

r789 - in trunk: tests ui


Author: klaus.hartl
Date: Wed Oct 8 03:09:55 2008
New Revision: 789
Modified:
trunk/tests/tabs.js
trunk/ui/ui.tabs.js
Log:
UI Tabs: renamed confusing "unselect" option to "deselectable"
Modified: trunk/tests/tabs.js
==============================================================================
--- trunk/tests/tabs.js    (original)
+++ trunk/tests/tabs.js    Wed Oct 8 03:09:55 2008
@@ -37,7 +37,7 @@
    test("defaults", function() {
    
        var expected = {
-            unselect: false,
+            deselectable: false,
            event: 'click',
            disabled: [],
            cookie: null,
@@ -50,7 +50,7 @@
            panelTemplate: '<div></div>',
            navClass: 'ui-tabs-nav',
            selectedClass: 'ui-tabs-selected',
-            unselectClass: 'ui-tabs-unselect',
+            deselectableClass: 'ui-tabs-deselectable',
            disabledClass: 'ui-tabs-disabled',
            panelClass: 'ui-tabs-panel',
            hideClass: 'ui-tabs-hide',
@@ -116,7 +116,7 @@
    
        el.tabs({ selected: null });
        equals( el.data('selected.tabs'), null, 'option set' );
-        equals( $('li.ui-tabs-selected', el).length, 0, 'all tabs should be
unselected' );
+        equals( $('li.ui-tabs-selected', el).length, 0, 'all tabs should be
deselected' );
        equals( $('div.ui-tabs-hide', '#tabs1').length, 3, 'all panels should be
hidden' );
    
        // TODO select == null with cookie
@@ -124,22 +124,22 @@
    
    });
-    test('unselect: true', function() {
+    test('deselectable: true', function() {
        expect(7);
    
        var el = $('#tabs1 > ul');
    
-        el.tabs({ unselect: true });
-        equals( el.data('unselect.tabs'), true, 'option set' );
-        equals( $('li.ui-tabs-unselect', el).length,
1, 'class "ui-tabs-unselect" attached once');
-        equals( $('li', el).index( $('li.ui-tabs-unselect', el) ),
0, 'class "ui-tabs-unselect" attached to first tab');
+        el.tabs({ deselectable: true });
+        equals( el.data('deselectable.tabs'), true, 'option set' );
+        equals( $('li.ui-tabs-deselectable', el).length,
1, 'class "ui-tabs-deselectable" attached once');
+        equals( $('li', el).index( $('li.ui-tabs-deselectable', el) ),
0, 'class "ui-tabs-deselectable" attached to first tab');
    
        el.tabs('select', 1);
-        equals( $('li.ui-tabs-unselect', el).length,
1, 'class "ui-tabs-unselect" attached once');
-        equals( $('li', el).index( $('li.ui-tabs-unselect', el) ),
1, 'class "ui-tabs-unselect" attached to second tab');
+        equals( $('li.ui-tabs-deselectable', el).length,
1, 'class "ui-tabs-deselectable" attached once');
+        equals( $('li', el).index( $('li.ui-tabs-deselectable', el) ),
1, 'class "ui-tabs-deselectable" attached to second tab');
    
        el.tabs('select', 1);
-        equals( $('li.ui-tabs-unselect', el).length,
0, 'class "ui-tabs-unselect" not attached');
+        equals( $('li.ui-tabs-deselectable', el).length,
0, 'class "ui-tabs-deselectable" not attached');
        defer(function() {
            equals( $('div.ui-tabs-hide', '#tabs1').length, 3, 'all panels should
be hidden' );
        });
Modified: trunk/ui/ui.tabs.js
==============================================================================
--- trunk/ui/ui.tabs.js    (original)
+++ trunk/ui/ui.tabs.js    Wed Oct 8 03:09:55 2008
@@ -134,7 +134,7 @@
            if (o.selected !== null) {
                this.$panels.eq(o.selected).show().removeClass(o.hideClass); // use
show and remove class to show in any case no matter how it has been hidden
before
                var classes = [o.selectedClass];
-                if (o.unselect) classes.push(o.unselectClass);
+                if (o.deselectable) classes.push(o.deselectableClass);
                this.$lis.eq(o.selected).addClass(classes.join(' '));
                
                // seems to be expected behavior that the show callback is fired
@@ -217,7 +217,7 @@
                $.ajaxHistory.update(clicked.hash);
            }*/
            var classes = [o.selectedClass];
-            if (o.unselect) classes.push(o.unselectClass);
+            if (o.deselectable) classes.push(o.deselectableClass);
            
$li.addClass(classes.join(' ')).siblings().removeClass(classes.join(' '));
            hideTab(clicked, $hide, $show);
        }
@@ -230,11 +230,11 @@
                $hide = self.$panels.filter(':visible'),
                $show = $(self._sanitizeSelector(this.hash));
            
-            // If tab is already selected and not unselectable or tab disabled or
+            // If tab is already selected and not deselectable or tab disabled or
            // or is already loading or click callback returns false stop here.
            // Check if click handler returns false last so that it is not executed
            // for a disabled or loading tab!
-            if (($li.hasClass(o.selectedClass) && !o.unselect)
+            if (($li.hasClass(o.selectedClass) && !o.deselectable)
                || $li.hasClass(o.disabledClass)
                || $(this).hasClass(o.loadingClass)
                || self._trigger('select', null, self.ui(this, $show[0])) === false
@@ -246,10 +246,10 @@
            o.selected = self.$tabs.index(this);
            
            // if tab may be closed
-            if (o.unselect) {
+            if (o.deselectable) {
                if ($li.hasClass(o.selectedClass)) {
                    self.options.selected = null;
-                    $li.removeClass([o.selectedClass, o.unselectClass].join(' '));
+                    $li.removeClass([o.selectedClass, o.deselectableClass].join(' '));
                    self.$panels.stop();
                    hideTab(this, $hide);
                    this.blur();
@@ -258,7 +258,7 @@
                    self.$panels.stop();
                    var a = this;
                    self.load(self.$tabs.index(this), function() {
-                        $li.addClass([o.selectedClass, o.unselectClass].join(' '));
+                        $li.addClass([o.selectedClass, o.deselectableClass].join(' '));
                        showTab(a, $show);
                    });
                    this.blur();
@@ -504,7 +504,7 @@
            if ($.data(this, 'destroy.tabs'))
                $(this).remove();
            else
-                $(this).removeClass([o.selectedClass, o.unselectClass,
+                $(this).removeClass([o.selectedClass, o.deselectableClass,
                    o.disabledClass, o.panelClass, o.hideClass].join(' '));
        });
        if (o.cookie)
@@ -512,39 +512,35 @@
    }
});
-$.ui.tabs.version = "@VERSION";
-$.ui.tabs.defaults = {
-    // basic setup
-    unselect: false,
-    event: 'click',
-    disabled: [],
-    cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com',
secure: true }
-    // TODO history: false,
-    
-    // Ajax
-    spinner: 'Loading&#8230;',
-    cache: false,
-    idPrefix: 'ui-tabs-',
-    ajaxOptions: null,
-    
-    // animations
-    fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }
-    
-    // templates
-    tabTemplate: '<li><a href="#{href}"><span>#{label}</span></a></li>',
-    panelTemplate: '<div></div>',
-    
-    // CSS classes
-    navClass: 'ui-tabs-nav',
-    selectedClass: 'ui-tabs-selected',
-    unselectClass: 'ui-tabs-unselect',
-    disabledClass: 'ui-tabs-disabled',
-    panelClass: 'ui-tabs-panel',
-    hideClass: 'ui-tabs-hide',
-    loadingClass: 'ui-tabs-loading'
-};
-
-$.ui.tabs.getter = "length";
+$.extend($.ui.tabs, {
+    version: '@VERSION',
+    getter: 'length',
+    defaults: {
+        // basic setup
+        deselectable: false,
+        event: 'click',
+        disabled: [],
+        cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com',
secure: true }
+        // Ajax
+        spinner: 'Loading&#8230;',
+        cache: false,
+        idPrefix: 'ui-tabs-',
+        ajaxOptions: null,
+        // animations
+        fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }
+        // templates
+        tabTemplate: '<li><a href="#{href}"><span>#{label}</span></a></li>',
+        panelTemplate: '<div></div>',
+        // CSS class names
+        navClass: 'ui-tabs-nav',
+        selectedClass: 'ui-tabs-selected',
+        deselectableClass: 'ui-tabs-deselectable',
+        disabledClass: 'ui-tabs-disabled',
+        panelClass: 'ui-tabs-panel',
+        hideClass: 'ui-tabs-hide',
+        loadingClass: 'ui-tabs-loading'
+    }
+});
/*
* Tabs Extensions