fix server
This commit is contained in:
@@ -1,9 +1,21 @@
|
||||
# MEMORY.md - Stato del Plugin UrBackup
|
||||
|
||||
## Ultima modifica: 31/08/2026
|
||||
## Ultima modifica: 02/09/2026
|
||||
|
||||
## 02/09/2026 — Pulizia capacity all'uninstall (nessun bump versione)
|
||||
- **`install/uninstall.php`**: nuova `plugin_urbackup_uninstall_cleanup_capacities(Migration, DBmysql)` — rimuove il riferimento `GlpiPlugin\Urbackup\Capacity\UrBackupCapacity` dalla colonna JSON `capacities` di `glpi_assetdefinitions` (query builder `$DB->request()/update()`, idempotente, filtrata sulle righe con `capacities <> '[]'`). Invocata in `plugin_urbackup_uninstall_process()` con `global $DB`.
|
||||
- Motivo: altrimenti resta una reference orfana dopo la disinstallazione. Il core GLPI la ignora in sicurezza (`AssetDefinition::decodeCapacities()`/`AssetDefinition.php:698-701`, "May be a previously enabled capacity from a disabled plugin"), ma ora il DB resta pulito.
|
||||
- i18n: nuova stringa "UrBackup capacity removed from asset definitions" (it "Capacità UrBackup rimossa dalle definizioni di asset", de "UrBackup-Kapazität aus Asset-Definitionen entfernt", en identica), `.po`+`.mo` ricompilati (msgfmt OK 3/3).
|
||||
- Doc aggiornate: README Changelog 0.7.3, MEMORY. Verifiche IA: `php -l` OK, msgfmt OK, git diff OK. **NESSUN bump versione** (regola 6: non tocca schemi DB del plugin). La pulizia si attiva in UI solo alla disinstallazione (azione utente, regola 7).
|
||||
|
||||
## TODO / BLOCKED (da sbloccare su PROD/SEMI-PROD — richiede output utente)
|
||||
1. **Crash globale dopo logoff su prod** (disins "uninstall" TOGLIE GLPI; riattivando il plugin torna tutto funzionante). NON riproducibile localmente, codice locale sano. Serve da prod/semi-prod:
|
||||
- `find plugins/urbackup/src plugins/urbackup/front plugins/urbackup/install -name "*.php" -exec php -l {} \; | grep -v "No syntax errors"`
|
||||
- `tail -100 files/_log/php-errors.log` + `tail -100 files/_log/php.log` (+ log Apache/PHP-FPM)
|
||||
2. **Log client mancanti su semi-prod/prod** (locali OK su localhost:55414). Fattore più probabile: verificare che l'utente API UrBackup usato dal plugin abbia il diritto **`logs`** (scope `all` o per client) — fonte backend `livelog.cpp:117-122` (i log per-client sono restituiti SOLO se l'utente API ha il diritto logs con scope all/attinente). Il parametro `clientid` è CORRETTO (confermato empiricamente + wrapper `_legacy.py:296-299` + `livelog.cpp:88-93`).
|
||||
|
||||
## 31/08/2026 — Rinominate le tab della scheda Server + grafica Missing (solo UI/testi)
|
||||
- **Rinominazione tab** (`front/server.form.php:118,123,128`): "Linked clients"→**"Managed clients" / Clienti gestiti** (asset GLPI con agent installato e collegamento attivo); "Unlinked clients"→**"Linkable clients" / Clienti Collegabili** (asset con agent installato ma non collegato a un asset GLPI); "Missing clients"→**"Clients to manage" / Clienti da gestire** (asset GLPI nella sede del server SENZA agent installato — "Connect" crea il link ma va poi installato il client). Aggiornate le traduzioni it/de/en (`.po`+`.mo` ricompilati con msgfmt) e rimosse le vecchie stringhe "Linked/Unlinked/Missing clients" dal catalogo.
|
||||
- **Rinominazione tab** (`front/server.form.php:118,123,128`): "Linked clients"→**"Managed clients" / Elementi gestiti (it)** (asset GLPI con agent installato e collegamento attivo); "Unlinked clients"→**"Linkable clients" / Elementi collegabili (it)** (asset con agent installato ma non collegato a un asset GLPI); "Missing clients"→**"Clients to manage" / Elementi da gestire (it)** (asset GLPI nella sede del server SENZA agent installato — "Connect" crea il link ma va poi installato il client). Aggiornate le traduzioni it/de/en (`.po`+`.mo` ricompilati con msgfmt) e rimosse le vecchie stringhe "Linked/Unlinked/Missing clients" dal catalogo.
|
||||
- **Grafica tab Missing** (`src/Server.php` `showMissingClientsTab`): rimossi il campo di ricerca `#missing-search`, gli header `class="sortable"`+`<span class="sort-arrow">` (stile non definito in CSS), l'id `missing-table` e tutto il blocco JS ordinamento/filtro → la tabella ora usa lo stesso `<table class="table table-striped table-hover">` delle tab Linked/Unlinked.
|
||||
- **Redirect "Connect"** (`front/server.form.php:31`): dopo il link_asset la pagina riapre sulla scheda "Clienti non collegati" (Unlinked/Clients to manage) aggiungendo `#tab-unlinked` al redirect (il JS già presente riattiva la tab dall'hash).
|
||||
- Nessun bump versione (nessuna modifica DB, regola 6). Verifiche IA: `php -l` OK, msgfmt OK, git diff autorevisione OK. **Verifica UI utente OBBLIGATORIA**: controllare etichette traduczione, grafica Missing uniforme, redirect su scheda corretta.
|
||||
@@ -292,6 +304,7 @@ La colonna `users_id` non esisteva nella tabella `glpi_plugin_urbackup_servers`.
|
||||
2. **Form server**: riga "Hardware host" con dropdown tipo (`Dropdown::showItemTypes`) + dropdown elementi AJAX (`$.get` su `front/dropdown_host.ajax.php`, vedi sezione Fix del 07/08/2026).
|
||||
3. **AssetTab**: blocco "This asset hosts the UrBackup server" (sempre visibile, anche se client).
|
||||
4. **Validazione** in `prepareInputForUpdate()` + helper `getHostAsset()` / `getServersHostingAsset()` (guard `fieldExists`).
|
||||
5. **Pulizia capacity all'uninstall**: `plugin_urbackup_uninstall_cleanup_capacities()` in `install/uninstall.php` rimuove il riferimento `GlpiPlugin\Urbackup\Capacity\UrBackupCapacity` dalla colonna JSON `capacities` di `glpi_assetdefinitions` (il core GLPI ignora in sicurezza tali capacity orfane via `decodeCapacities()`/`AssetDefinition.php:698-701`, ma ora vengono pulite). Nuova stringa i18n "UrBackup capacity removed from asset definitions" (it/de/en, `.mo` ricompilati). NESSUN bump di versione (non tocca schemi DB del plugin).
|
||||
|
||||
## 0.7.2 — Toggle Computer configurabile + lista Asset custom con capacità attiva
|
||||
1. **`enable_computer` in `glpi_plugin_urbackup_configs`** (default '1') letto da `Config::getEnableComputer()`; registrazione tab su Computer condizionale in setup.php; `isItemtypeEnabled`/`getEnabledItemtypes` rispettano il toggle.
|
||||
|
||||
Reference in New Issue
Block a user