1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /**
- * @file
- * Attaches behaviors for the Domain Source module.
- *
- * If Domain Access is present, we show/hide selected publishing domains. This approach
- * currently only works with a select field.
- */
- (function ($) {
- "use strict";
- /**
- *
- * @type {Drupal~behavior}
- */
- Drupal.behaviors.domainSourceAllowed = {
- attach: function () {
- // Get the initial setting so that it can be reset.
- var initialOption = $("#edit-field-domain-source").val();
- // Onload, fire initial show/hide.
- getDomains();
- // Get the domains selected by the domain access field.
- function getDomains() {
- var domains = new Array();
- $("#edit-field-domain-access :checked").each(function(index, obj) {
- domains.push(obj.value);
- });
- setOptions(domains);
- }
- // Based on selected domains, show/hide the selection options.
- function setOptions(domains) {
- $("#edit-field-domain-source option").each(function(index, obj) {
- if (jQuery.inArray(obj.value, domains) == -1 && obj.value != '_none') {
- // If the current selection is removed, reset the selection to _none.
- if ($("#edit-field-domain-source").val() == obj.value) {
- $("#edit-field-domain-source").val('_none');
- }
- $("#edit-field-domain-source option[value=" + obj.value + "]").hide();
- }
- else {
- $("#edit-field-domain-source option[value=" + obj.value + "]").show();
- // If we reselected the initial value, reset the select option.
- if (obj.value == initialOption) {
- $("#edit-field-domain-source").val(obj.value);
- }
- }
- });
- }
- // When the selections change, recalculate the select options.
- $( "#edit-field-domain-access" ).on( "change", getDomains );
- }
- };
- })(jQuery);
|