49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
/**
|
|
* @file
|
|
* JavaScript behaviors for form tabs using jQuery UI.
|
|
*/
|
|
|
|
(function ($, Drupal) {
|
|
|
|
'use strict';
|
|
|
|
// @see http://api.jqueryui.com/tabs/
|
|
Drupal.webform = Drupal.webform || {};
|
|
Drupal.webform.formTabs = Drupal.webform.formTabs || {};
|
|
Drupal.webform.formTabs.options = Drupal.webform.formTabs.options || {
|
|
hide: true,
|
|
show: true
|
|
};
|
|
|
|
/**
|
|
* Initialize webform tabs.
|
|
*
|
|
* @type {Drupal~behavior}
|
|
*
|
|
* @prop {Drupal~behaviorAttach} attach
|
|
* Attaches the behavior for form tabs using jQuery UI.
|
|
*
|
|
* @see \Drupal\webform\Utility\WebformFormHelper::buildTabs
|
|
*/
|
|
Drupal.behaviors.webformFormTabs = {
|
|
attach: function (context) {
|
|
$(context).find('div.webform-tabs').once('webform-tabs').each(function () {
|
|
var $tabs = $(this);
|
|
var options = jQuery.extend({}, Drupal.webform.formTabs.options);
|
|
|
|
// Set active tab and clear the location hash once it is set.
|
|
if (location.hash) {
|
|
var active = $('a[href="' + location.hash + '"]').data('tab-index');
|
|
if (typeof active !== 'undefined') {
|
|
options.active = active;
|
|
location.hash = '';
|
|
}
|
|
}
|
|
|
|
$tabs.tabs(options);
|
|
});
|
|
}
|
|
};
|
|
|
|
})(jQuery, Drupal);
|