acquia_dam-1.0.0-rc1/js/acquia_dam.media_library.source_menu.js
js/acquia_dam.media_library.source_menu.js
(function ($, Drupal, drupalSettings) {
Drupal.behaviors.acquiaDamDisableSourceMenu = {
attach: function attach(context, settings) {
function sourceMenuCheck() {
let source_field = document.getElementsByClassName('js-acquia-dam-source-field')[0];
if (
currentSelection.length === settings.media_library.selection_remaining
) {
source_field.classList.add('disable-select');
} else {
source_field.classList.remove('disable-select');
}
}
const currentSelection = Drupal.MediaLibrary.currentSelection;
const media_library_select_checkbox = once(
'media_library_select_checkbox',
'.media-library-item__click-to-select-checkbox input',
);
for (let i = 0; i < media_library_select_checkbox.length; i++) {
$(media_library_select_checkbox[i]).on('change', sourceMenuCheck);
}
}
};
Drupal.behaviors.MediaLibrarySourceTabs = {
attach: function attach(context) {
const source_field = once(
'js-acquia-dam-source-field',
'.js-acquia-dam-source-field',
context,
).shift();
if (source_field) {
source_field.addEventListener('change', function (e) {
// Prevent the user to re-trigger the ajax while on progress.
e.currentTarget.classList.add('disable-select')
const ajaxObject = Drupal.ajax({
wrapper: 'media-library-wrapper',
url: drupalSettings.media_library[e.target.value],
dialogType: 'ajax',
progress: {
type: 'throbber',
},
});
ajaxObject.execute();
});
}
},
};
})(jQuery, Drupal, drupalSettings);
