Spade

Mini Shell

Directory:~$ /home/lmsyaran/public_html/joomla5/media/system/js/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ /home/lmsyaran/public_html/joomla5/media/system/js/list-view.js

/*
 * Apply the predefined action for the current element
 *
 * @param {Event} event
 */
function gridItemAction(event) {
  let item = event.target;
  if (item.nodeName === 'SPAN' && ['A',
'BUTTON'].includes(item.parentNode.nodeName)) {
    item = item.parentNode;
  }
  if (item.nodeName === 'A') {
    event.preventDefault();
  }
  if (item.hasAttribute('disabled') ||
!item.hasAttribute('data-item-task')) {
    return;
  }
  const {
    itemId
  } = item.dataset;
  const {
    itemTask
  } = item.dataset;
  const {
    itemFormId
  } = item.dataset;
  if (itemFormId) {
    Joomla.listItemTask(itemId, itemTask, itemFormId);
  } else {
    Joomla.listItemTask(itemId, itemTask);
  }
}

/*
 * Apply the transition state for the current element
 *
 * @param {Event} event
 */
function gridTransitionItemAction(event) {
  const item = event.target;
  if (item.nodeName !== 'SELECT' ||
item.hasAttribute('disabled')) {
    return;
  }
  const {
    itemId
  } = item.dataset;
  const {
    itemTask
  } = item.dataset;
  const {
    itemFormId
  } = item.dataset;
  item.form.transition_id.value = item.value;
  if (itemFormId) {
    Joomla.listItemTask(itemId, itemTask, itemFormId);
  } else {
    Joomla.listItemTask(itemId, itemTask);
  }
}

/*
 * Apply the transition state for the current element
 *
 * @param {Event} event
 */
function gridTransitionButtonAction(event) {
  let item = event.target;
  if (item.nodeName === 'SPAN' &&
item.parentNode.nodeName === 'BUTTON') {
    item = item.parentNode;
  }
  if (item.hasAttribute('disabled')) {
    return;
  }
  Joomla.toggleAllNextElements(item, 'd-none');
}

/*
 * Switch the check state for the current element
 *
 * @param {Event} event
 */
function applyIsChecked(event) {
  const item = event.target;
  const itemFormId = item.dataset.itemFormId || '';
  if (itemFormId) {
    Joomla.isChecked(item.checked, itemFormId);
  } else {
    Joomla.isChecked(item.checked);
  }
}

/*
 * Set up an interactive list elements
 *
 * @param {Event} event
 */
const setup = ({
  target
}) => {
 
target.querySelectorAll('.js-grid-item-check-all').forEach(element
=> element.addEventListener('click', event =>
Joomla.checkAll(event.target)));
 
target.querySelectorAll('.js-grid-item-is-checked').forEach(element
=> element.addEventListener('click', applyIsChecked));
  target.querySelectorAll('.js-grid-item-action').forEach(element
=> element.addEventListener('click', gridItemAction));
 
target.querySelectorAll('.js-grid-item-transition-action').forEach(element
=> element.addEventListener('change',
gridTransitionItemAction));
 
target.querySelectorAll('.js-grid-button-transition-action').forEach(element
=> element.addEventListener('click',
gridTransitionButtonAction));
};
setup({
  target: document
});
document.addEventListener('joomla:updated', setup);