diff options
Diffstat (limited to 'misc')
-rw-r--r-- | misc/vertical-tabs.js | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/misc/vertical-tabs.js b/misc/vertical-tabs.js index ba43c8f88..127df5420 100644 --- a/misc/vertical-tabs.js +++ b/misc/vertical-tabs.js @@ -80,7 +80,9 @@ Drupal.verticalTab = function (settings) { }; Drupal.verticalTab.prototype = { - // Displays the tab's content pane. + /** + * Displays the tab's content pane. + */ focus: function () { this.fieldset .siblings('fieldset.vertical-tabs-pane') @@ -96,9 +98,50 @@ Drupal.verticalTab.prototype = { this.item.addClass('selected'); }, - // Updates the tab's summary. + /** + * Updates the tab's summary. + */ updateSummary: function () { this.summary.html(this.fieldset.getSummary()); + }, + + /** + * Shows a vertical tab pane. + */ + tabShow: function () { + // Display the tab. + this.item.show(); + // Update .first marker for items. We need recurse from parent to retain the + // actual DOM element order as jQuery implements sortOrder, but not as public + // method. + this.item.parent().children('.vertical-tab-button').removeClass('first') + .filter(':visible:first').addClass('first'); + // Display the fieldset. + this.fieldset.removeClass('vertical-tab-hidden').show(); + // Focus this tab. + this.focus(); + return this; + }, + + /** + * Hides a vertical tab pane. + */ + tabHide: function () { + // Hide this tab. + this.item.hide(); + // Update .first marker for items. We need recurse from parent to retain the + // actual DOM element order as jQuery implements sortOrder, but not as public + // method. + this.item.parent().children('.vertical-tab-button').removeClass('first') + .filter(':visible:first').addClass('first'); + // Hide the fieldset. + this.fieldset.addClass('vertical-tab-hidden').hide(); + // Focus the first visible tab (if there is one). + var $firstTab = this.fieldset.siblings('.vertical-tabs-pane:not(.vertical-tab-hidden):first'); + if ($firstTab.length) { + $firstTab.data('verticalTab').focus(); + } + return this; } }; |