[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/media/com_menus/js/ -> admin-item-edit-es5.js (source)

   1  (function () {
   2    'use strict';
   3  
   4    /**
   5     * @copyright  (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
   6     * @license    GNU General Public License version 2 or later; see LICENSE.txt
   7     */
   8    (function (Joomla) {
   9      Joomla.submitbutton = function (task, type) {
  10        if (task === 'item.setType' || task === 'item.setMenuType') {
  11          if (task === 'item.setType') {
  12            var list = [].slice.call(document.querySelectorAll('#item-form input[name="jform[type]"]'));
  13            list.forEach(function (item) {
  14              item.value = type;
  15            });
  16            document.getElementById('fieldtype').value = 'type';
  17          } else {
  18            var _list = [].slice.call(document.querySelectorAll('#item-form input[name="jform[menutype]"]'));
  19  
  20            _list.forEach(function (item) {
  21              item.value = type;
  22            });
  23          }
  24  
  25          Joomla.submitform('item.setType', document.getElementById('item-form'));
  26        } else if (task === 'item.cancel' || document.formvalidator.isValid(document.getElementById('item-form'))) {
  27          Joomla.submitform(task, document.getElementById('item-form'));
  28        } else {
  29          // special case for modal popups validation response
  30          var _list2 = [].slice.call(document.querySelectorAll('#item-form .modal-value.invalid'));
  31  
  32          _list2.forEach(function (field) {
  33            var idReversed = field.getAttribute('id').split('').reverse().join('');
  34            var separatorLocation = idReversed.indexOf('_');
  35            var nameId = idReversed.substr(separatorLocation).split('').reverse().join('') + "name";
  36            document.getElementById(nameId).classList.add('invalid');
  37          });
  38        }
  39      };
  40  
  41      var onChange = function onChange(_ref) {
  42        var target = _ref.target;
  43        var menuType = target.value;
  44        Joomla.request({
  45          url: "index.php?option=com_menus&task=item.getParentItem&menutype=" + menuType,
  46          headers: {
  47            'Content-Type': 'application/json'
  48          },
  49          onSuccess: function onSuccess(response) {
  50            var data = JSON.parse(response);
  51            var list = [].slice.call(document.querySelectorAll('#jform_parent_id option'));
  52            list.forEach(function (item) {
  53              if (item.value !== '1') {
  54                item.parentNode.removeChild(item);
  55              }
  56            });
  57            data.forEach(function (value) {
  58              var option = document.createElement('option');
  59              option.innerText = value.title;
  60              option.id = value.id;
  61              document.getElementById('jform_parent_id').appendChild(option);
  62            });
  63            var newEvent = document.createEvent('HTMLEvents');
  64            newEvent.initEvent('change', true, false);
  65            document.getElementById('jform_parent_id').dispatchEvent(newEvent);
  66          },
  67          onError: function onError(xhr) {
  68            Joomla.renderMessages(Joomla.ajaxErrorsMessages(xhr));
  69          }
  70        });
  71      };
  72  
  73      if (!Joomla || typeof Joomla.request !== 'function') {
  74        throw new Error('core.js was not properly initialised');
  75      }
  76  
  77      var element = document.getElementById('jform_menutype');
  78  
  79      if (element) {
  80        element.addEventListener('change', onChange);
  81      } // Menu type Login Form specific
  82  
  83  
  84      document.getElementById('item-form').addEventListener('submit', function () {
  85        if (document.getElementById('jform_params_login_redirect_url') && document.getElementById('jform_params_logout_redirect_url')) {
  86          // Login
  87          if (!document.getElementById('jform_params_login_redirect_url').closest('.control-group').classList.contains('hidden')) {
  88            document.getElementById('jform_params_login_redirect_menuitem_id').value = '';
  89          }
  90  
  91          if (!document.getElementById('jform_params_login_redirect_menuitem_name').closest('.control-group').classList.contains('hidden')) {
  92            document.getElementById('jform_params_login_redirect_url').value = '';
  93          } // Logout
  94  
  95  
  96          if (!document.getElementById('jform_params_logout_redirect_url').closest('.control-group').classList.contains('hidden')) {
  97            document.getElementById('jform_params_logout_redirect_menuitem_id').value = '';
  98          }
  99  
 100          if (!document.getElementById('jform_params_logout_redirect_menuitem_id').closest('.control-group').classList.contains('hidden')) {
 101            document.getElementById('jform_params_logout_redirect_url').value = '';
 102          }
 103        }
 104      });
 105    })(Joomla);
 106  
 107  })();


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer