audiofield-8.x-1.x-dev/js/wordpress.builder.es6.js
js/wordpress.builder.es6.js
/**
* @file
* Audiofield build WordPress audio player.
*/
(($, Drupal, once) => {
'use strict';
Drupal.AudiofieldWordpress = {};
/**
* Generate a wordpress player.
*
* @param {jQuery} context
* The Drupal context for which we are finding and generating this player.
* @param {array} file
* The audio file for which we are generating a player.
* @param {jQuery} settings
* The Drupal settings for this player.
*/
Drupal.AudiofieldWordpress.generate = (context, file, settings) => {
let autostartSetting = 'no';
if (!!settings.autoplay) {
autostartSetting = 'yes';
}
const elements = once('generate-waveform', '#wordpressaudioplayer_' + file.unique_id, context);
$.each(elements, (index, item) => {
AudioPlayer.embed($(item).attr('id'), {
soundFile: file.file,
titles: file.title,
autostart: autostartSetting,
loop: 'no',
initialvolume: settings.volume,
checkpolicy: 'yes',
animation: settings.animate,
});
});
};
/**
* Attach the behaviors to generate the audio player.
*
* @type {Drupal~behavior}
*
* @prop {Drupal~behaviorAttach} attach
* Attaches generation of Wordpress audio players.
*/
Drupal.behaviors.audiofieldwordpress = {
attach: function buildWordpressPlayers(context, settings) {
$.each(settings.audiofieldwordpress, (key, settingEntry) => {
// Initialize the audioplayer.
AudioPlayer.setup('/libraries/wordpress-audio/player.swf', {
width: 400,
initialvolume: settingEntry.volume,
transparentpagebg: 'yes',
});
// Loop over the files.
$.each(settingEntry.files, (key2, fileEntry) => {
// Generate the player for each file.
Drupal.AudiofieldWordpress.generate(context, fileEntry, settingEntry);
});
});
},
};
})(jQuery, Drupal, once);
