![]() 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/vendor/magento/module-cms/view/adminhtml/web/js/ |
/** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ 'jquery', 'jquery/ui', 'jquery/jstree/jquery.jstree' ], function ($) { 'use strict'; $.widget('mage.folderTree', { options: { root: 'root', rootName: 'Root', url: '', currentPath: ['root'], tree: { core: { themes: { dots: false }, // jscs:disable requireCamelCaseOrUpperCaseIdentifiers check_callback: true // jscs:enable requireCamelCaseOrUpperCaseIdentifiers } } }, /** @inheritdoc */ _create: function () { var options = this.options, treeOptions = $.extend( true, {}, options.tree, { core: { data: { url: options.url, type: 'POST', dataType: 'text', dataFilter: $.proxy(function (data) { return this._convertData(JSON.parse(data)); }, this), /** * @param {HTMLElement} node * @return {Object} */ data: function (node) { return { node: node.id === 'root' ? null : node.id, 'form_key': window.FORM_KEY }; } } } } ); this.element.jstree(treeOptions) .on('ready.jstree', $.proxy(this.treeLoaded, this)) .on('load_node.jstree', $.proxy(this._createRootNode, this)); }, /** * Tree loaded. */ treeLoaded: function () { var path = this.options.currentPath, tree = this.element, lastExistentFolderEl, /** * Recursively open folders specified in path array. */ recursiveOpen = function () { var folderEl = $('[data-id="' + path.pop() + '"]'); // if folder doesn't exist, select the last opened folder if (!folderEl.length) { tree.jstree('select_node', lastExistentFolderEl); return; } lastExistentFolderEl = folderEl; if (path.length) { tree.jstree('open_node', folderEl, recursiveOpen); } else { tree.jstree('open_node', folderEl, function () { tree.jstree('select_node', folderEl); }); } }; recursiveOpen(); }, /** * Create tree root node * * @param {jQuery.Event} event * @param {Object} data * @private */ _createRootNode: function (event, data) { var rootNode, children; // jscs:disable requireCamelCaseOrUpperCaseIdentifiers if (data.node.id === '#') { rootNode = { id: this.options.root, text: this.options.rootName, li_attr: { 'data-id': this.options.root } }; children = data.node.children; data.instance.element.jstree().create_node(null, rootNode, 'first', function () { data.instance.element.jstree().move_node(children, rootNode.id); }); } // jscs:enable requireCamelCaseOrUpperCaseIdentifiers }, /** * @param {*} data * @return {*} * @private */ _convertData: function (data) { return $.map(data, function (node) { return { id: node.id, text: node.text, path: node.path, // jscs:disable requireCamelCaseOrUpperCaseIdentifiers li_attr: { 'data-id': node.id }, // jscs:enable requireCamelCaseOrUpperCaseIdentifiers children: node.children }; }); } }); return $.mage.folderTree; });