Files
D8_rplf/modules/field_group/js/field_group.js
T
2018-04-23 21:14:46 +02:00

59 lines
1.9 KiB
JavaScript

(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);