Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/app/code/Cnc/Catalog/view/adminhtml/web/js/form/element/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/app/code/Cnc/Catalog/view/adminhtml/web/js/form/element/image-uploader.js
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

/* global Base64 */
define([
    'jquery',
    'underscore',
    'mageUtils',
    'Magento_Ui/js/modal/alert',
    'Magento_Ui/js/lib/validation/validator',
    'Magento_Ui/js/form/element/file-uploader',
    'mage/adminhtml/browser'
], function ($, _, utils, uiAlert, validator, Element, browser) {
    'use strict';

    return Element.extend({
        /**
         * {@inheritDoc}
         */
        initialize: function () {
            this._super();

            // Listen for file deletions from the media browser
            $(window).on('fileDeleted.mediabrowser', this.onDeleteFile.bind(this));
        },

        /**
         * Assign uid for media gallery
         *
         * @return {ImageUploader} Chainable.
         */
        initConfig: function () {
            var mediaGalleryUid = utils.uniqueid();

            this._super();

            _.extend(this, {
                mediaGalleryUid: mediaGalleryUid
            });

            return this;
        },

        /**
         * Add file event callback triggered from media gallery
         *
         * @param {ImageUploader} imageUploader - UI Class
         * @param {Event} e
         */
        addFileFromMediaGallery: function (imageUploader, e) {
            var $buttonEl = $(e.target),
                fileSize = $buttonEl.data('size'),
                fileMimeType = $buttonEl.data('mime-type'),
                filePathname = $buttonEl.val(),
                fileBasename = filePathname.split('/').pop();

            this.addFile({
                type: fileMimeType,
                name: fileBasename,
                size: fileSize,
                url: filePathname
            });
        },

        /**
         * Open the media browser dialog
         *
         * @param {ImageUploader} imageUploader - UI Class
         * @param {Event} e
         */
        openMediaBrowserDialog: function (imageUploader, e) {
            var $buttonEl = $(e.target),
                openDialogUrl = this.mediaGallery.openDialogUrl +
                    'target_element_id/' + $buttonEl.attr('id') +
                    '/store/' + this.mediaGallery.storeId +
                    '/type/image/?isAjax=true';

            if (this.mediaGallery.initialOpenSubpath) {
                openDialogUrl += '&current_tree_path=' + Base64.idEncode(this.mediaGallery.initialOpenSubpath);
            }

            browser.openDialog(
                openDialogUrl,
                null,
                null,
                this.mediaGallery.openDialogTitle,
                {
                    targetElementId: $buttonEl.attr('id')
                }
            );
        },

        /**
         * @param {jQuery.event} e
         * @param {Object} data
         * @returns {Object} Chainables
         */
        onDeleteFile: function (e, data) {
            var fileId = this.getFileId(),
                deletedFileIds = data.ids;

            if (fileId && $.inArray(fileId, deletedFileIds) > -1) {
                this.clear();
            }

            return this;
        },

        /**
         * {@inheritDoc}
         */
        clear: function () {
            this.value([]);

            return this;
        },

        /**
         * Gets the ID of the file used if set
         *
         * @return {String|Null} ID
         */
        getFileId: function () {
            return this.hasData() ? this.value()[0].id : null;
        },

        /**
         * Trigger native browser file upload UI via clicking on 'Upload' button
         *
         * @param {ImageUploader} imageUploader - UI Class
         * @param {Event} e
         */
        triggerImageUpload: function (imageUploader, e) {
            $(e.target).closest('.file-uploader').find('input[type="file"]').click();
        },

        /**
         * Get list of file extensions allowed in comma delimited format
         *
         * @return {String}
         */
        getAllowedFileExtensionsInCommaDelimitedFormat: function () {
            var allowedExtensions = this.allowedExtensions.toUpperCase().split(' ');

            if (!allowedExtensions.includes('WEBP')) {
                allowedExtensions.push('WEBP');
            }
            // if jpg and jpeg in allowed extensions, remove jpeg from list
            if (allowedExtensions.indexOf('JPG') !== -1 && allowedExtensions.indexOf('JPEG') !== -1) {
                allowedExtensions.splice(allowedExtensions.indexOf('JPEG'), 1);
            }

            return allowedExtensions.join(', ');
        },

        isExtensionAllowed: function (file) {
            var allowedExtensions = this.allowedExtensions.split(' ');
            if (!allowedExtensions.includes('webp')) {
                allowedExtensions.push('webp');
            }
            return validator('validate-file-type', file.name, allowedExtensions);
        }
    });
});

Spamworldpro Mini