Release 3.3.0
Main-Features
Technik
Kompatibel zu PHP 8.x
Statische CSS ohne Präprozessor (Bessere Performance, Kompatibilität zu PHP 8)
Aufrufe von count() werden mit is_countable() geprüft (Notwendig unter PHP 8)
Neue API-Funktionen
Ausagabe der vollständigen Daten für Listen (Bisher wurden nur ID-Listen ausgegeben)
Der Security-Key aus den Settings wird nun in allen Tools verwendet
Neue States für Checkboxen: diabled & checked in Kombination (sh. API-Doku)
Vorbereitung für eine neue Versionierungstabelle, die ausgelassene SQL-Updates erkennen und ergänzen kann
Usability
Der Anmeldestatus und die Gruppe werden farbig markiert in der Kopfzeile angezeigt
Nach einem erfolgreichen Speichervorgang wird ein Hinweis angezeigt
Die Autocomplete-Aufforderung in orange, die auf einige Nutzer*innen wie eine Fehlermeldung nach dem Speichern wirkte, wurde ersetzt
Die Merkfunktion für Tabs wurde verbessert, insbesondere für Tab-Kaskaden
Neue Beta-Version der Suche
Suche in Ressourcen nach verschiedenen Feldern, Tags und Ketagorien
Unterstützung boolscher und Vergleichs-Operatoren
Neue Workflows
Indviduelle Workflows für jeden Ressourcentyp (Auswahl im Ressourcenmanager)
Mehrere Schritte/Checks pro Workflow durch verschiedene Gruppen möglich
Individuelle Konfiguration für die Bearbeitung (Locks)
Zuweisung von Gruppen pro Schritt und Check
Individuelle Farbgebung pro Schritt
Festlegung eines abschließenden Freigabe-Schrittes (z. B. für die Webanzeige)
Workflow-Listen für Ressourcen und Projekte
Übernahme bestehender (alter) Kontrollen für Ressourcen
Freigabeanforderung abgeschlossener Workflows durch alle Benutzer*innen
Beschränkungen
Die Listen für offene bzw. zu prüfende Workflows sind momentan auf 200 Eintäge beschränkt. Sobald Workflows abgeschlossen wurden, rücken ältere Einträge nach. Je nach vorhandener Systemperformance kann der Wert auch in den Settings hochgesetzt werden.
Vorbereitung
Ein Update auf PHP 8.x und MariaDB 10.x ist für dieses Release nicht zwingend erforderlich.
Insbesondere beim Einsatz von MySQL (statt MariaDB) sind die folgenden Einzelschritte notwendig. Nach jedem Schritt muss geprüft werden, ob er erfolgreich ausgeführt wurde. Sollte Tabellen etc. bereits entfernt worden sein, kann der Schritt übersprungen werden:
-- Subtitle 2 entfernen und Subtitel verlängern (von Varchar 255 in Text)
ALTER TABLE `gris_resource` DROP COLUMN `gris_resource_subtitle_2`;
-- Changelog löschen (Tabelle ist ungenutzt)
DROP TABLE `gris_changelog`;
-- Alte Foreign Keys für Historie löschen (möglicherweise ist nur einer oder keiner vorhanden)
ALTER TABLE `gris_history` DROP FOREIGN KEY `gris_history-gris_institute_id`;
ALTER TABLE `gris_history` DROP FOREIGN KEY `gris_history-gris_history-gris_institute_id`;
-- Schlüssel neu alegen
ALTER TABLE `gris_history` ADD CONSTRAINT `gris_history-gris_institute_id`
FOREIGN KEY (`gris_institute_id`)
REFERENCES `gris_institute`(`gris_institute_id`)
ON DELETE NO ACTION ON UPDATE NO ACTION;
-- Kompatibilität für MySQL 8
SET GLOBAL sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
-- Rechte für USER gris
REVOKE ALL PRIVILEGES ON `gris_model`.* FROM 'gris'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, LOCK TABLES ON `gris_model`.* TO 'gris'@'localhost';
-- Datenbank Version zurücksetzen wegen Kompatibilität
UPDATE `gris_settings` SET `gris_settings_value` = '47' WHERE `gris_settings`.`gris_settings_key` = "version" AND `gris_settings`.`gris_settings_group` = "database";
Außerdem sollten bei allen MySQL-Installationen (nicht bei MariaDB) die SQL-Updates bis Version 51 von Hand und mit Root-Berechtigungen durchgeführt werden. Dazu zunächst GRIS manuell updaten:
# Als root bzw. via sudo -s
cd /var/www/gris
git pull
Im Ordner var/www/gris/update/sql
liegen die Update-Files. Die aktuelle DB-Version von GRIS kann im Backend (als Admin) unter Admin
> Einstellungen
und dort bei Database
> Version
ausgelesen werden. Alle SQL-Skripte mit höherer Versons-Nummer sollten ebenfalls von Hand ausgeführt werden.
Danach kann wie gewohnt auch das Update-Skript aufgrufen werden:
# Als root bzw. via sudo -s
cd /var/www/gris
./update.sh
ToDos nach der Installation
Damit der folgende Schritt funktioniert, müssen den Ressourcentypen zunächste die neuen Workflows zugeordnet werden. Die Einrichtung der neuen Workflows ist hier beschrieben Im Menü Admin
auf der Seite Ressourcenverwaltung
kann jedem Typ ein Workflow zugewiesen werden.
Warnung
Spätere Änderungen der Workflows und deren Zuordnungen können einen Verlust der bestehenden Einträge zur Folge haben.
Nach erfolgreicher Installation können die alten Workflows der Ressourcen in die entsprechenden neuen Versionen konvertiert werden. Als Admin angemeldet wird im Menü unter dem Punkt Workflows
die Seite Workflows übertragen
angezeigt.
In der Tabelle werden alle Workflow-Schritte angezeigt, die in der alten Version vorhanden waren. Mit der Checkbox in der rechten Spalte kann nun der Schritt markiert werden, der das Ende des bisherigen Workflows darstellt. Durch anklicken des Buttons Übertragen
wird der Vorgang gestartet und allen Ressourcen wird an Hand des jeweiligen Ressourcentyps der entsprechende Show-Schritt aus den neuen Workflows ausgewählt.
Hinweis
Bei einer großen Anzahl von Einträgen kann es vorkommen, dass das Skript vor Beendigung abbricht. In diesem Fall kann die Seite erneut geladen und der Vorgang einfach für die restlichen Einträge erneut durchgeführt werden. Bestehende Daten werden nicht doppelt erfasst.
Mögliche Fehler
Strikter SQL Mode noch aktiv (sh. Vorbereitung)
Falsche Berechtigungen im GRIS-Verzeichnis: Mit
CHMOD
vonroot
aufwww-data
umstellenFalsche MariaDB/PHP-Version: sh. auch Migration auf die PHP-Version 8 (min PHP 7.4, MySQL 8.x/MariaDB 10.x)
gris_init.inc: $reporting = E_ERROR; (ohne Anführungszeichen)