12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- (function ($) {
- 'use strict';
- /**
- * Drupal FieldGroup object.
- */
- Drupal.FieldGroup = Drupal.FieldGroup || {};
- Drupal.FieldGroup.Effects = Drupal.FieldGroup.Effects || {};
- Drupal.FieldGroup.groupWithfocus = null;
- Drupal.FieldGroup.setGroupWithfocus = function (element) {
- element.css({display: 'block'});
- Drupal.FieldGroup.groupWithfocus = element;
- };
- /**
- * Behaviors.
- */
- Drupal.behaviors.fieldGroup = {
- attach: function (context, settings) {
- settings.field_group = settings.field_group || drupalSettings.field_group;
- if (typeof settings.field_group === 'undefined') {
- return;
- }
- // Execute all of them.
- $.each(Drupal.FieldGroup.Effects, function (func) {
- // We check for a wrapper function in Drupal.field_group as
- // alternative for dynamic string function calls.
- var type = func.toLowerCase().replace('process', '');
- if (typeof settings.field_group[type] !== 'undefined' && $.isFunction(this.execute)) {
- this.execute(context, settings, settings.field_group[type]);
- }
- });
- // Add a new ID to each fieldset.
- $('.group-wrapper fieldset').each(function () {
- // Tats bad, but we have to keep the actual id to prevent layouts to break.
- var fieldgroupID = 'field_group-' + $(this).attr('id') + ' ' + $(this).attr('id');
- $(this).attr('id', fieldgroupID);
- });
- // Set the hash in url to remember last userselection.
- $('.group-wrapper ul li').each(function () {
- var fieldGroupNavigationListIndex = $(this).index();
- $(this).children('a').click(function () {
- var fieldset = $('.group-wrapper fieldset').get(fieldGroupNavigationListIndex);
- // Grab the first id, holding the wanted hashurl.
- var hashUrl = $(fieldset).attr('id').replace(/^field_group-/, '').split(' ')[0];
- window.location.hash = hashUrl;
- });
- });
- }
- };
- })(jQuery);
|