entity_browser-8.x-2.x-dev/js/entity_browser.iframe.js
js/entity_browser.iframe.js
/**
* @file entity_browser.iframe.js
*
* Defines the behavior of the entity browser's iFrame display.
*/
(function ($, Drupal, drupalSettings, once) {
'use strict';
/**
* Registers behaviours related to iFrame display.
*/
Drupal.behaviors.entityBrowserIFrame = {
attach: function (context) {
$(once('iframe-click', '.entity-browser-handle.entity-browser-iframe', context)).on('click', Drupal.entityBrowserIFrame.linkClick);
$(once('iframe-auto-open', '.entity-browser-handle.entity-browser-iframe', context)).each(function () {
var uuid = $(this).attr('data-uuid');
if (drupalSettings.entity_browser.iframe[uuid].auto_open) {
$(this).click();
}
});
}
};
Drupal.entityBrowserIFrame = {};
/**
* Handles click on "Select entities" link.
*/
Drupal.entityBrowserIFrame.linkClick = function () {
var uuid = $(this).attr('data-uuid');
var original_path = $(this).attr('data-original-path');
var iframeSettings = drupalSettings['entity_browser']['iframe'][uuid];
var iframe = $(
'<iframe />',
{
'src': iframeSettings['src'],
'width': '100%',
'height': iframeSettings['height'],
'data-uuid': uuid,
'data-original-path': original_path,
'name': 'entity_browser_iframe_' + iframeSettings['entity_browser_id'],
'id': 'entity_browser_iframe_' + iframeSettings['entity_browser_id']
}
);
var throbber = $(Drupal.theme('ajaxProgressIndicatorFullscreen'));
$(this).parent().css('width', iframeSettings['width']);
// Register callbacks.
if (drupalSettings.entity_browser.iframe[uuid].js_callbacks || false) {
Drupal.entityBrowser.registerJsCallbacks(this, drupalSettings.entity_browser.iframe[uuid].js_callbacks, 'entities-selected');
}
$(this).parent().append(throbber).append(iframe).trigger('entityBrowserIFrameAppend');
$(this).hide();
};
}(jQuery, Drupal, drupalSettings, once));
