glpi-project / glpi

GLPI is a Free Asset and IT Management Software package, Data center management, ITIL Service Desk, licenses tracking and software auditing.
https://glpi-project.org
GNU General Public License v3.0
4.1k stars 1.27k forks source link

Assets UI Errors: columns sorting and rows/page not working #12864

Closed humboldtux closed 1 year ago

humboldtux commented 1 year ago

Code of Conduct

Is there an existing issue for this?

Version

10.0.3

Bug description

When on an asset page (computers, softwares, etc), the UI is not working as desired:

I have a lot of JS errors, not sure if it is related

image

This was working fine when using GLPI 9.X. I have been using GLPI 10 since 10.0.0, and this is broken since i switched to GLPI 10.0.0 (reinstalled from scratch).

Relevant log output

Nothing relevant

Page URL

all assets pages

Steps To reproduce

  1. With GLPI 10.0.X
  2. Open an assets category like 'computers'
  3. Click a column name for sorting or change dropdown menu 'rows /pages'
  4. Nothing happens, UI is not updated

Your GLPI setup information

Informations sur le système, l'installation et la configuration GLPI 10.0.3 ( => /var/www/glpi-10.0.3) Installation mode: TARBALL Current language:fr_FR

Server

Operating system: Linux GLPI-CENT-01 5.19.0-1-amd64 #1 SMP PREEMPT_DYNAMIC Debian 5.19.6-1 (2022-09-01) x86_64 PHP 8.1.5 fpm-fcgi (Core, FFI, PDO, Phar, Reflection, SPL, SimpleXML, Zend OPcache, apcu, bz2, calendar, cgi-fcgi, ctype, curl, date, dom, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, imap, intl, json, ldap, libxml, mbstring, mysqli, mysqlnd, openssl, pcre, pdo_mysql, posix, readline, session, shmop, snmp, soap, sockets, sodium, standard, sysvmsg, sysvsem, sysvshm, tokenizer, xml, xmlreader, xmlwriter, xsl, zip, zlib) Setup: max_execution_time="600" memory_limit="64M" post_max_size="8M" safe_mode="" session.save_handler="files" upload_max_filesize="2M" Software: nginx/1.22.0 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Server Software: Debian buildd-unstable Server Version: 10.6.9-MariaDB-1 Server SQL Mode: STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION Parameters: glpiusr10@localhost/glpidb Host info: Localhost via UNIX socket

PHP version (8.1.5) is supported. Sessions configuration is OK. Allocated memory is sufficient. mysqli extension is installed. Following extensions are installed: dom, fileinfo, json, simplexml. curl extension is installed. gd extension is installed. intl extension is installed. libxml extension is installed. zlib extension is installed. The constant SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES is present. Database engine version (10.6.9) is supported. The log file has been created successfully. Write access to /var/lib/glpi/_cache has been validated. Write access to /etc/glpi/ has been validated. Write access to /var/lib/glpi/_cron has been validated. Write access to /var/lib/glpi has been validated. Write access to /var/lib/glpi/_dumps has been validated. Write access to /var/lib/glpi/_graphs has been validated. Write access to /var/lib/glpi/_lock has been validated. Write access to /var/lib/glpi/_pictures has been validated. Write access to /var/lib/glpi/_plugins has been validated. Write access to /var/lib/glpi/_rss has been validated. Write access to /var/lib/glpi/_sessions has been validated. Write access to /var/lib/glpi/_tmp has been validated. Write access to /var/lib/glpi/_uploads has been validated. PHP directive "session.cookie_secure" should be set to "on" when GLPI can be accessed on HTTPS protocol. PHP directive "session.cookie_httponly" should be set to "on" to prevent client-side script to access cookie values. exif extension is installed. ldap extension is installed. openssl extension is installed. zip extension is installed. bz2 extension is installed. Zend OPcache extension is installed. Following extensions are installed: ctype, iconv, mbstring, sodium. Write access to /var/www/glpi-10.0.3/marketplace has been validated. Timezones seems loaded in database.

GLPI constants

GLPI_ROOT: /var/www/glpi-10.0.3 GLPI_CONFIG_DIR: /etc/glpi/ GLPI_VAR_DIR: /var/lib/glpi GLPI_LOG_DIR: /var/log/glpi GLPI_MARKETPLACE_DIR: /var/www/glpi-10.0.3/marketplace GLPI_USE_CSRF_CHECK: 1 GLPI_CSRF_EXPIRES: 7200 GLPI_CSRF_MAX_TOKENS: 100 GLPI_USE_IDOR_CHECK: 1 GLPI_IDOR_EXPIRES: 7200 GLPI_ALLOW_IFRAME_IN_RICH_TEXT:

PHP Warning (2): Array to string conversion in /var/www/glpi-10.0.3/src/Config.php at line 2073 GLPI_SERVERSIDE_URL_ALLOWLIST: Array GLPI_TELEMETRY_URI: https://telemetry.glpi-project.org GLPI_INSTALL_MODE: TARBALL GLPI_NETWORK_MAIL: glpi@teclib.com GLPI_NETWORK_SERVICES: https://services.glpi-network.com GLPI_MARKETPLACE_ALLOW_OVERRIDE: 1 GLPI_MARKETPLACE_MANUAL_DOWNLOADS: 1 GLPI_USER_AGENT_EXTRA_COMMENTS: GLPI_DISABLE_ONLY_FULL_GROUP_BY_SQL_MODE: 1 GLPI_AJAX_DASHBOARD: 1 GLPI_CALDAV_IMPORT_STATE: 0 GLPI_DEMO_MODE: 0 GLPI_CENTRAL_WARNINGS: 1 GLPI_DOC_DIR: /var/lib/glpi GLPI_CACHE_DIR: /var/lib/glpi/_cache GLPI_CRON_DIR: /var/lib/glpi/_cron GLPI_DUMP_DIR: /var/lib/glpi/_dumps GLPI_GRAPH_DIR: /var/lib/glpi/_graphs GLPI_LOCAL_I18N_DIR: /var/lib/glpi/_locales GLPI_LOCK_DIR: /var/lib/glpi/_lock GLPI_PICTURE_DIR: /var/lib/glpi/_pictures GLPI_PLUGIN_DOC_DIR: /var/lib/glpi/_plugins GLPI_RSS_DIR: /var/lib/glpi/_rss GLPI_SESSION_DIR: /var/lib/glpi/_sessions GLPI_TMP_DIR: /var/lib/glpi/_tmp GLPI_UPLOAD_DIR: /var/lib/glpi/_uploads GLPI_INVENTORY_DIR: /var/lib/glpi/_inventories GLPI_NETWORK_REGISTRATION_API_URL: https://services.glpi-network.com/api/registration/ GLPI_MARKETPLACE_PLUGINS_API_URI: https://services.glpi-network.com/api/glpi-plugins/ GLPI_I18N_DIR: /var/www/glpi-10.0.3/locales GLPI_VERSION: 10.0.3 GLPI_SCHEMA_VERSION: 10.0.3@a130db99c7d9b131c2e2ea59fe0d6260fe93d831 GLPI_MARKETPLACE_PRERELEASES: GLPI_MIN_PHP: 7.4.0 GLPI_MAX_PHP: 8.3.0 GLPI_YEAR: 2022

Libraries

htmlawed/htmlawed version 1.2.9 in (/var/www/glpi-10.0.3/vendor/htmlawed/htmlawed) phpmailer/phpmailer version 6.6.0 in (/var/www/glpi-10.0.3/vendor/phpmailer/phpmailer/src) simplepie/simplepie version 1.5.8 in (/var/www/glpi-10.0.3/vendor/simplepie/simplepie/library) tecnickcom/tcpdf version 6.5.0 in (/var/www/glpi-10.0.3/vendor/tecnickcom/tcpdf) michelf/php-markdown in (/var/www/glpi-10.0.3/vendor/michelf/php-markdown/Michelf) true/punycode in (/var/www/glpi-10.0.3/vendor/true/punycode/src) iamcal/lib_autolink in (/var/www/glpi-10.0.3/vendor/iamcal/lib_autolink) sabre/dav in (/var/www/glpi-10.0.3/vendor/sabre/dav/lib/DAV) sabre/http in (/var/www/glpi-10.0.3/vendor/sabre/http/lib) sabre/uri in (/var/www/glpi-10.0.3/vendor/sabre/uri/lib) sabre/vobject in (/var/www/glpi-10.0.3/vendor/sabre/vobject/lib) laminas/laminas-i18n in (/var/www/glpi-10.0.3/vendor/laminas/laminas-i18n/src) laminas/laminas-servicemanager in (/var/www/glpi-10.0.3/vendor/laminas/laminas-servicemanager/src) monolog/monolog in (/var/www/glpi-10.0.3/vendor/monolog/monolog/src/Monolog) sebastian/diff in (/var/www/glpi-10.0.3/vendor/sebastian/diff/src) donatj/phpuseragentparser in (/var/www/glpi-10.0.3/vendor/donatj/phpuseragentparser/src/UserAgent) elvanto/litemoji in (/var/www/glpi-10.0.3/vendor/elvanto/litemoji/src) symfony/console in (/var/www/glpi-10.0.3/vendor/symfony/console) scssphp/scssphp in (/var/www/glpi-10.0.3/vendor/scssphp/scssphp/src) laminas/laminas-mail in (/var/www/glpi-10.0.3/vendor/laminas/laminas-mail/src/Protocol) laminas/laminas-mime in (/var/www/glpi-10.0.3/vendor/laminas/laminas-mime/src) rlanvin/php-rrule in (/var/www/glpi-10.0.3/vendor/rlanvin/php-rrule/src) blueimp/jquery-file-upload in (/var/www/glpi-10.0.3/vendor/blueimp/jquery-file-upload/server/php) ramsey/uuid in (/var/www/glpi-10.0.3/vendor/ramsey/uuid/src) psr/log in (/var/www/glpi-10.0.3/vendor/psr/log/Psr/Log) psr/simple-cache in (/var/www/glpi-10.0.3/vendor/psr/simple-cache/src) psr/cache in (/var/www/glpi-10.0.3/vendor/psr/cache/src) league/csv in (/var/www/glpi-10.0.3/vendor/league/csv/src) mexitek/phpcolors in (/var/www/glpi-10.0.3/vendor/mexitek/phpcolors/src/Mexitek/PHPColors) guzzlehttp/guzzle in (/var/www/glpi-10.0.3/vendor/guzzlehttp/guzzle/src) guzzlehttp/psr7 in (/var/www/glpi-10.0.3/vendor/guzzlehttp/psr7/src) glpi-project/inventory_format in (/var/www/glpi-10.0.3/vendor/glpi-project/inventory_format/lib/php) wapmorgan/unified-archive in (/var/www/glpi-10.0.3/vendor/wapmorgan/unified-archive/src) paragonie/sodium_compat in (/var/www/glpi-10.0.3/vendor/paragonie/sodium_compat/src) symfony/cache in (/var/www/glpi-10.0.3/vendor/symfony/cache) html2text/html2text in (/var/www/glpi-10.0.3/vendor/html2text/html2text/src) symfony/css-selector in (/var/www/glpi-10.0.3/vendor/symfony/css-selector) symfony/dom-crawler in (/var/www/glpi-10.0.3/vendor/symfony/dom-crawler) twig/twig in (/var/www/glpi-10.0.3/vendor/twig/twig/src) twig/string-extra in (/var/www/glpi-10.0.3/vendor/twig/string-extra) symfony/polyfill-ctype not found symfony/polyfill-iconv not found symfony/polyfill-mbstring not found symfony/polyfill-php80 not found symfony/polyfill-php81 not found symfony/polyfill-php82 in (/var/www/glpi-10.0.3/vendor/symfony/polyfill-php82) phpCas version 1.3.8 in (/usr/share/php/CAS/source)

Anything else?

No response

humboldtux commented 1 year ago

I don't have this issue on the reservations page: on reservations page, sorting and rows/page dropdown are working fine.

github-actions[bot] commented 1 year ago

There has been no activity on this issue for some time and therefore it is considered stale and will be closed automatically in 10 days.

If this issue is related to a bug, please try to reproduce on latest release. If the problem persist, feel free to add a comment to revive this issue. If it is related to a new feature, please open a topic to discuss with community about this enhancement on suggestion website.

You may also consider taking a subscription to get professionnal support or contact GLPI editor team directly.

humboldtux commented 1 year ago

I am still experiencing the same issue for the latest stable version of GLPI 10.0.5

It is still not working for the displaying items under inventory.

And still working perfectly fine for displaying reservation items

cedric-anne commented 1 year ago

Hi,

It seems to be due to your webserver configuration, especially the Content-Security-Policy header that seems to be added to GLPI responses. There is nothing in GLPI that adds this header, so the only way to fix your issue is to change your webserver configuration.

See https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP#:~:text=Content%20Security%20Policy%20(CSP)%20is,site%20defacement%2C%20to%20malware%20distribution.

humboldtux commented 1 year ago

My bad, you are right. I disable 'add_header Content-Security-Policy' in my Nginx conf, and it is working now.

Any clue as to why this was messing with the inventory tabular display and not the reservation tabular display?

Issue resolved anyway, thank you.

cedric-anne commented 1 year ago

Any clue as to why this was messing with the inventory tabular display and not the reservation tabular display?

Probably because it was failing on a precise JS library and they are not all loaded on all pages.