__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
/**
 * @copyright  (C) 2019 Open Source Matters, Inc. <https://www.joomla.org>
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */
// The container where the draggable will be enabled
let url;
let direction;
let isNested;
let dragElementIndex;
let dropElementIndex;
let container = document.querySelector('.js-draggable');
let form;
let formData;
if (container) {
  /** The script expects a form with a class js-form
   *  A table with the tbody with a class js-draggable
   *                         with a data-url with the ajax request end point and
   *                         with a data-direction for asc/desc
   */
  url = container.dataset.url;
  direction = container.dataset.direction;
  isNested = container.dataset.nested;
} else if (Joomla.getOptions('draggable-list')) {
  const options = Joomla.getOptions('draggable-list');
  container = document.querySelector(options.id);
  /**
   * This is here to make the transition to new forms easier.
   */
  if (!container.classList.contains('js-draggable')) {
    container.classList.add('js-draggable');
  }
  ({
    url
  } = options);
  ({
    direction
  } = options);
  isNested = options.nested;
}
if (container) {
  // Get the form
  form = container.closest('form');
  // Get the form data
  formData = new FormData(form);
  formData.delete('task');
  formData.delete('order[]');

  // IOS 10 BUG
  document.addEventListener('touchstart', () => {}, false);
  const getOrderData = (rows, inputRows, dragIndex, dropIndex) => {
    let i;
    const result = [];

    // Element is moved down
    if (dragIndex < dropIndex) {
      rows[dropIndex].value = rows[dropIndex - 1].value;
      for (i = dragIndex; i < dropIndex; i += 1) {
        if (direction === 'asc') {
          rows[i].value = parseInt(rows[i].value, 10) - 1;
        } else {
          rows[i].value = parseInt(rows[i].value, 10) + 1;
        }
      }
    } else {
      // Element is moved up
      rows[dropIndex].value = rows[dropIndex + 1].value;
      for (i = dropIndex + 1; i <= dragIndex; i += 1) {
        if (direction === 'asc') {
          rows[i].value = parseInt(rows[i].value, 10) + 1;
        } else {
          rows[i].value = parseInt(rows[i].value, 10) - 1;
        }
      }
    }
    for (i = 0; i < rows.length - 1; i += 1) {
      result.push(`order[]=${encodeURIComponent(rows[i].value)}`);
      result.push(`cid[]=${encodeURIComponent(inputRows[i].value)}`);
    }
    return result;
  };
  const rearrangeChildren = $parent => {
    if (!$parent.dataset.itemId) {
      return;
    }
    const parentId = $parent.dataset.itemId;
    // Get children list. Each child row should have
    // an attribute data-parents=" 1 2 3" where the number is id of parent
    const $children = container.querySelectorAll(`tr[data-parents~="${parentId}"]`);
    if ($children.length) {
      $parent.after(...$children);
    }
  };
  const saveTheOrder = el => {
    let orderSelector;
    let inputSelector;
    let rowSelector;
    const groupId = el.dataset.draggableGroup;
    if (groupId) {
      rowSelector = `tr[data-draggable-group="${groupId}"]`;
      orderSelector = `[data-draggable-group="${groupId}"] [name="order[]"]`;
      inputSelector = `[data-draggable-group="${groupId}"] [name="cid[]"]`;
    } else {
      rowSelector = 'tr';
      orderSelector = '[name="order[]"]';
      inputSelector = '[name="cid[]"]';
    }
    const rowElements = [].slice.call(container.querySelectorAll(rowSelector));
    const rows = [].slice.call(container.querySelectorAll(orderSelector));
    const inputRows = [].slice.call(container.querySelectorAll(inputSelector));
    dropElementIndex = rowElements.indexOf(el);
    if (url) {
      // Detach task field if exists
      const task = document.querySelector('[name="task"]');

      // Detach task field if exists
      if (task) {
        task.setAttribute('name', 'some__Temporary__Name__');
      }

      // Prepare the options
      const ajaxOptions = {
        url,
        method: 'POST',
        data: `${new URLSearchParams(formData).toString()}&${getOrderData(rows, inputRows, dragElementIndex, dropElementIndex).join('&')}`,
        perform: true
      };
      Joomla.request(ajaxOptions);

      // Re-Append original task field
      if (task) {
        task.setAttribute('name', 'task');
      }
    }

    // Update positions for a children of the moved item
    rearrangeChildren(el);
  };

  // eslint-disable-next-line no-undef
  dragula([container], {
    // Y axis is considered when determining where an element would be dropped
    direction: 'vertical',
    // elements are moved by default, not copied
    copy: false,
    // elements in copy-source containers can be reordered
    // copySortSource: true,
    // spilling will put the element back where it was dragged from, if this is true
    revertOnSpill: true,
    // spilling will `.remove` the element, if this is true
    // removeOnSpill: false,

    accepts(el, target, source, sibling) {
      if (isNested) {
        if (sibling !== null) {
          return sibling.dataset.draggableGroup && sibling.dataset.draggableGroup === el.dataset.draggableGroup;
        }
        return sibling === null || sibling && sibling.tagName.toLowerCase() === 'tr';
      }
      return sibling === null || sibling && sibling.tagName.toLowerCase() === 'tr';
    },
    mirrorContainer: container
  }).on('drag', el => {
    let rowSelector;
    const groupId = el.dataset.draggableGroup;
    if (groupId) {
      rowSelector = `tr[data-draggable-group="${groupId}"]`;
    } else {
      rowSelector = 'tr';
    }
    const rowElements = [].slice.call(container.querySelectorAll(rowSelector));
    dragElementIndex = rowElements.indexOf(el);
  }).on('drop', el => {
    saveTheOrder(el);
  });
}

Filemanager

Name Type Size Permission Actions
fields Folder 0775
core-es5.js File 27.29 KB 0664
core-es5.min.js File 7.5 KB 0664
core-es5.min.js.gz File 3.07 KB 0664
core.js File 25.82 KB 0664
core.min.js File 7.48 KB 0664
core.min.js.gz File 3.06 KB 0664
draggable-es5.js File 6.14 KB 0664
draggable-es5.min.js File 2.27 KB 0664
draggable-es5.min.js.gz File 1.02 KB 0664
draggable.js File 5.66 KB 0664
draggable.min.js File 2.54 KB 0664
draggable.min.js.gz File 1.05 KB 0664
highlight-es5.js File 70.08 KB 0664
highlight-es5.min.js File 17.29 KB 0664
highlight-es5.min.js.gz File 5.78 KB 0664
highlight.js File 61.34 KB 0664
highlight.min.js File 15.34 KB 0664
highlight.min.js.gz File 5.33 KB 0664
inlinehelp-es5.js File 2.36 KB 0664
inlinehelp-es5.min.js File 887 B 0664
inlinehelp-es5.min.js.gz File 517 B 0664
inlinehelp.js File 2.12 KB 0664
inlinehelp.min.js File 815 B 0664
inlinehelp.min.js.gz File 489 B 0664
joomla-core-loader-es5.js File 8.62 KB 0664
joomla-core-loader-es5.min.js File 5.46 KB 0664
joomla-core-loader-es5.min.js.gz File 1.95 KB 0664
joomla-core-loader.js File 3.98 KB 0664
joomla-core-loader.min.js File 3.32 KB 0664
joomla-core-loader.min.js.gz File 1.09 KB 0664
joomla-hidden-mail-es5.js File 5.44 KB 0664
joomla-hidden-mail-es5.min.js File 2.92 KB 0664
joomla-hidden-mail-es5.min.js.gz File 1.25 KB 0664
joomla-hidden-mail.js File 2.26 KB 0664
joomla-hidden-mail.min.js File 1.53 KB 0664
joomla-hidden-mail.min.js.gz File 721 B 0664
joomla-toolbar-button-es5.js File 7.96 KB 0664
joomla-toolbar-button-es5.min.js File 4.07 KB 0664
joomla-toolbar-button-es5.min.js.gz File 1.61 KB 0664
joomla-toolbar-button.js File 3.08 KB 0664
joomla-toolbar-button.min.js File 1.85 KB 0664
joomla-toolbar-button.min.js.gz File 781 B 0664
keepalive-es5.js File 1.12 KB 0664
keepalive-es5.min.js File 594 B 0664
keepalive-es5.min.js.gz File 427 B 0664
keepalive.js File 1 KB 0664
keepalive.min.js File 741 B 0664
keepalive.min.js.gz File 430 B 0664
list-view-es5.js File 3.15 KB 0664
list-view-es5.min.js File 1.55 KB 0664
list-view-es5.min.js.gz File 539 B 0664
list-view.js File 2.75 KB 0664
list-view.min.js File 1.59 KB 0664
list-view.min.js.gz File 555 B 0664
messages-es5.js File 17.44 KB 0664
messages-es5.min.js File 8.54 KB 0664
messages-es5.min.js.gz File 2.96 KB 0664
messages.js File 10.28 KB 0664
messages.min.js File 5.47 KB 0664
messages.min.js.gz File 1.79 KB 0664
multiselect-es5.js File 4.35 KB 0664
multiselect-es5.min.js File 1.94 KB 0664
multiselect-es5.min.js.gz File 964 B 0664
multiselect.js File 3.74 KB 0664
multiselect.min.js File 1.83 KB 0664
multiselect.min.js.gz File 915 B 0664
searchtools-es5.js File 20.9 KB 0664
searchtools-es5.min.js File 10.85 KB 0664
searchtools-es5.min.js.gz File 2.63 KB 0664
searchtools.js File 18.8 KB 0664
searchtools.min.js File 10.51 KB 0664
searchtools.min.js.gz File 2.58 KB 0664
showon-es5.js File 10.55 KB 0664
showon-es5.min.js File 3.61 KB 0664
showon-es5.min.js.gz File 1.39 KB 0664
showon.js File 9.57 KB 0664
showon.min.js File 3.47 KB 0664
showon.min.js.gz File 1.36 KB 0664
table-columns-es5.js File 6.78 KB 0664
table-columns-es5.min.js File 3.56 KB 0664
table-columns-es5.min.js.gz File 1.32 KB 0664
table-columns.js File 6.01 KB 0664
table-columns.min.js File 3.4 KB 0664
table-columns.min.js.gz File 1.27 KB 0664
Filemanager