HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: /var/www/html/delstar/wp-content/plugins/easymega/assets/js/media.js
jQuery( document ).ready( function( $ ){
    var $document = $( document );
    var addParamsURL = function( url, data )
    {
        if ( ! $.isEmptyObject(data) )
        {
            url += ( url.indexOf('?') >= 0 ? '&' : '?' ) + $.param(data);
        }

        return url;
    };

    var MegaMenuWPMedia =  {
        setAttachment: function( attachment ){
            this.attachment = attachment;
        },
        getThumb: function( attachment ){
            if ( typeof attachment !== "undefined" ) {
                this.attachment = attachment;
            }
            var t = new Date().getTime();
            if ( typeof this.attachment.sizes !== "undefined" ) {
                if ( typeof this.attachment.sizes.medium !== "undefined" ) {
                    return addParamsURL( this.attachment.sizes.medium.url, { t : t } );
                }
            }
            return addParamsURL( attachment.url, { t : t } );
        },
        getURL: function( attachment ) {
            if ( typeof attachment !== "undefined" ) {
                this.attachment = attachment;
            }
            var t = new Date().getTime();
            return addParamsURL( this.attachment.url, { t : t } );
        },
        getID: function( attachment ){
            if ( typeof attachment !== "undefined" ) {
                this.attachment = attachment;
            }
            return this.attachment.id;
        },
        getInputID: function( attachment ){
            $( '.attachment-id', this.preview ).val( );
        },
        setPreview: function( $el ){
            this.preview = $el;
        },
        insertImage: function( attachment ){
            if ( typeof attachment !== "undefined" ) {
                this.attachment = attachment;
            }

            var url = this.getThumb();
            var full_url = this.getURL() ;
            var id = this.getID( );
            $( '.media-item-preview', this.preview ).html(  '<img src="'+url+'" alt="">' );
            $( '.attachment-id', this.preview ).val( id ).trigger( 'change' );
            $( '.attachment-url', this.preview ).val( full_url ).trigger( 'change' );
            this.preview.addClass( 'attachment-added' );

        },
        insertVideo: function(attachment ){
            if ( typeof attachment !== "undefined" ) {
                this.attachment = attachment;
            }

            var url = this.getURL();
            var id = this.getID();
            var mime = this.attachment.mime;
            var html = '<video width="100%" height="" controls><source src="'+url+'" type="'+mime+'">Your browser does not support the video tag.</video>';
            $( '.media-item-preview', this.preview ).html( html );
            $( '.attachment-id', this.preview ).val( id ).trigger( 'change' );
            $( '.attachment-url', this.preview ).val( url ).trigger( 'change' );
            this.preview.addClass( 'attachment-added' );
        },
        insertFile: function( attachment ){
            if ( typeof attachment !== "undefined" ) {
                this.attachment = attachment;
            }
            var url = attachment.url;
            var basename = url.replace(/^.*[\\\/]/, '');

            $( '.media-item-preview', this.preview ).html( '<a href="'+url+'" target="_blank">'+basename+'</a>' );
            $( '.attachment-id', this.preview ).val( this.getID() ).trigger( 'change' );
            $( '.attachment-url', this.preview ).val( url ).trigger( 'change' );
            this.preview.addClass( 'attachment-added' );

        },
        remove: function( $el ){
            if ( typeof $el !== "undefined" ) {
                this.preview = $el;
            }

            $( '.media-item-preview', this.preview ).removeAttr( 'style').html( '' );
            $( '.attachment-id, .attachment-url', this.preview ).val( '' ).trigger( 'change' );
            this.preview.removeClass( 'attachment-added' );
        }

    };

    var MegaMenuWPMediaImage = wp.media({
        title: wp.media.view.l10n.addMedia,
        multiple: false,
        library: {type: 'image' }
    });

    MegaMenuWPMediaImage.on('select', function () {
        var attachment = MegaMenuWPMediaImage.state().get('selection').first().toJSON();
        console.log( attachment );
        MegaMenuWPMedia.insertImage( attachment );
    });


    $document.on( 'click', '.easymega-wp-media .select-media, .easymega-wp-media .change-media', function () {
        var w = $( this ).closest( '.easymega-wp-media' );
        MegaMenuWPMedia.setPreview( w );
        MegaMenuWPMediaImage.open();
    } );

    $document.on( 'click', '.easymega-wp-media .remove-media', function () {
        var w = $( this ).closest( '.easymega-wp-media' );
        MegaMenuWPMedia.setPreview( w );
        MegaMenuWPMedia.remove( w );
    } );



} );