Uname: Linux webm005.cluster107.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
User: 6036 (villadal)
Group: 100 (users)
Disabled functions: NONE
Safe mode: On[ PHPinfo ]
//home/villadal/www/wp-admin2/js/widgets      ( Reset | Go to )
File Name: media-audio-widget.js
Edit
/**
 * @output wp-admin/js/widgets/media-audio-widget.js
 */

/* eslint consistent-this: [ "error", "control" ] */
(function( component ) {
    'use strict';

    var AudioWidgetModel, AudioWidgetControl, AudioDetailsMediaFrame;

    /**
     * Custom audio details frame that removes the replace-audio state.
     *
     * @class    wp.mediaWidgets.controlConstructors~AudioDetailsMediaFrame
     * @augments wp.media.view.MediaFrame.AudioDetails
     */
    AudioDetailsMediaFrame = wp.media.view.MediaFrame.AudioDetails.extend(/** @lends wp.mediaWidgets.controlConstructors~AudioDetailsMediaFrame.prototype */{

        /**
         * Create the default states.
         *
         * @return {void}
         */
        createStates: function createStates() {
            this.states.add([
                new wp.media.controller.AudioDetails({
                    media: this.media
                }),

                new wp.media.controller.MediaLibrary({
                    type: 'audio',
                    id: 'add-audio-source',
                    title: wp.media.view.l10n.audioAddSourceTitle,
                    toolbar: 'add-audio-source',
                    media: this.media,
                    menu: false
                })
            ]);
        }
    });

    /**
     * Audio widget model.
     *
     * See WP_Widget_Audio::enqueue_admin_scripts() for amending prototype from PHP exports.
     *
     * @class    wp.mediaWidgets.modelConstructors.media_audio
     * @augments wp.mediaWidgets.MediaWidgetModel
     */
    AudioWidgetModel = component.MediaWidgetModel.extend({});

    /**
     * Audio widget control.
     *
     * See WP_Widget_Audio::enqueue_admin_scripts() for amending prototype from PHP exports.
     *
     * @class    wp.mediaWidgets.controlConstructors.media_audio
     * @augments wp.mediaWidgets.MediaWidgetControl
     */
    AudioWidgetControl = component.MediaWidgetControl.extend(/** @lends wp.mediaWidgets.controlConstructors.media_audio.prototype */{

        /**
         * Show display settings.
         *
         * @type {boolean}
         */
        showDisplaySettings: false,

        /**
         * Map model props to media frame props.
         *
         * @param {Object} modelProps - Model props.
         * @return {Object} Media frame props.
         */
        mapModelToMediaFrameProps: function mapModelToMediaFrameProps( modelProps ) {
            var control = this, mediaFrameProps;
            mediaFrameProps = component.MediaWidgetControl.prototype.mapModelToMediaFrameProps.call( control, modelProps );
            mediaFrameProps.link = 'embed';
            return mediaFrameProps;
        },

        /**
         * Render preview.
         *
         * @return {void}
         */
        renderPreview: function renderPreview() {
            var control = this, previewContainer, previewTemplate, attachmentId, attachmentUrl;
            attachmentId = control.model.get( 'attachment_id' );
            attachmentUrl = control.model.get( 'url' );

            if ( ! attachmentId && ! attachmentUrl ) {
                return;
            }

            previewContainer = control.$el.find( '.media-widget-preview' );
            previewTemplate = wp.template( 'wp-media-widget-audio-preview' );

            previewContainer.html( previewTemplate({
                model: {
                    attachment_id: control.model.get( 'attachment_id' ),
                    src: attachmentUrl
                },
                error: control.model.get( 'error' )
            }));
            wp.mediaelement.initialize();
        },

        /**
         * Open the media audio-edit frame to modify the selected item.
         *
         * @return {void}
         */
        editMedia: function editMedia() {
            var control = this, mediaFrame, metadata, updateCallback;

            metadata = control.mapModelToMediaFrameProps( control.model.toJSON() );

            // Set up the media frame.
            mediaFrame = new AudioDetailsMediaFrame({
                frame: 'audio',
                state: 'audio-details',
                metadata: metadata
            });
            wp.media.frame = mediaFrame;
            mediaFrame.$el.addClass( 'media-widget' );

            updateCallback = function( mediaFrameProps ) {

                // Update cached attachment object to avoid having to re-fetch. This also triggers re-rendering of preview.
                control.selectedAttachment.set( mediaFrameProps );

                control.model.set( _.extend(
                    control.model.defaults(),
                    control.mapMediaToModelProps( mediaFrameProps ),
                    { error: false }
                ) );
            };

            mediaFrame.state( 'audio-details' ).on( 'update', updateCallback );
            mediaFrame.state( 'replace-audio' ).on( 'replace', updateCallback );
            mediaFrame.on( 'close', function() {
                mediaFrame.detach();
            });

            mediaFrame.open();
        }
    });

    // Exports.
    component.controlConstructors.media_audio = AudioWidgetControl;
    component.modelConstructors.media_audio = AudioWidgetModel;

})( wp.mediaWidgets );

All system for education purposes only. For more tools: Telegram @jackleet

Mr.X Private Shell

Logo
-
New File | New Folder
Command
SQL