Skip to content
 
 

Repository files navigation

Inventory Manager (osTicket 1.18 · PHP 8) — modernisierte Fassung

Ein osTicket-Plugin zur Inventarverwaltung von PCs/Servern und Telefonen, direkt im Agenten-Bereich. Diese Fassung modernisiert das ursprüngliche Plugin von bcombs18 für osTicket 1.18 und PHP 8.1–8.3, ist vollständig deutsch lokalisiert und enthält eine kombinierte Übersicht, eine verbesserte Suche sowie zahlreiche Fehlerbehebungen.

Basiert auf bcombs18:inventory v1.1.6. Die Plugin-ID bleibt bewusst unverändert, damit ein Upgrade bestehender Installationen ohne Neuinstallation funktioniert (siehe Migration).


Funktionen

  • Zwei Gerätetypen: PCs/Server und Telefone, jeweils mit eigenen Listen, Spalten und Warteschlangen (aktiv / abgeschaltet / nicht zugewiesen).
  • Kombinierte Übersicht als Startseite mit beiden Listen, Direktsuche und „Neuen Eintrag erstellen"-Menü.
  • Benutzer-Zuweisung: Geräte an Endbenutzer zuweisen; zugewiesene Geräte erscheinen als Tab am Endbenutzer und an der Organisation.
  • Benutzerdefinierte Felder über osTickets dynamische Formulare (pro Typ).
  • CSV-Import für PCs/Server und Telefone.
  • Teilstring-Suche (LIKE %…%) über mehrere Felder (Hostname, Modell, Hersteller, Seriennummer, Standort, Zugewiesen an bzw. Telefonnummer, Modell, IMEI, Zugewiesen an).
  • Notizen und optionales Audit-Log (created/updated/retired/…).
  • Deutsche Oberfläche (~590 Strings). Datenbank-Werte bleiben englisch; die Anzeige wird über einen eigenen Übersetzungskatalog gedeutscht.

Voraussetzungen

Komponente Version
osTicket 1.18.x
PHP 8.1 – 8.3
MySQL/MariaDB wie von osTicket 1.18 gefordert

Installation (Neuinstallation)

  1. Das gebaute Plugin inventory_manager.phar nach include/plugins/ im osTicket-Web-Root kopieren.
  2. Im Admin-Bereich unter Verwalten → Plugins auf Add New PluginInventory Manager installieren.
  3. Plugin aktivieren. Beim ersten Start legt es Tabellen, Formulare und Warteschlangen automatisch an.
  4. Ab- und wieder anmelden (osTicket cacht Plugin-Code und Übersetzungen).

Danach erscheint oben der Reiter Inventarverwaltung.


Migration / Upgrade von v1.1.6 → v2.8.3

Kommt es zu Datenverlust? — Nein.

Der Wechsel ist ein Upgrade, keine Neuinstallation, weil die Plugin-ID (bcombs18:inventory) unverändert bleibt. Konkret:

  • Bestehende Geräte-Daten bleiben erhalten. Die Kern-Tabellen inventory_asset und inventory_phone haben in beiden Versionen ein identisches Schema und werden nur mit CREATE TABLE IF NOT EXISTS angefasst — vorhandene Datensätze werden nicht überschrieben.
  • Benutzerdefinierte Felder bleiben erhalten. Das Upgrade führt die Installations-Skripte nicht erneut aus (diese enthalten ein DELETE FROM form …, das nur bei einer echten Neuinstallation läuft). Der Upgrade-Pfad legt lediglich die neue Audit-Tabelle an (CREATE TABLE IF NOT EXISTS).
  • Plugin-Konfiguration und -Instanz bleiben erhalten (gleiche Plugin-ID).

Technisch entscheidend: Beim Start prüft das Plugin SHOW TABLES LIKE 'inventory_asset'. Da die Tabelle existiert, läuft der Upgrade-Pfad statt der Erstinstallation.

Trotzdem: vorher Datensicherung!

Unabhängig von obiger Analyse gilt die Standardregel: Vor dem Upgrade ein Datenbank-Backup anlegen.

mysqldump -u <user> -p <osticket_db> > osticket_backup_$(date +%F).sql

Upgrade-Schritte

  1. Datenbank sichern (siehe oben).
  2. Die alte inventory*.phar in include/plugins/ durch die neue inventory_manager.phar ersetzen.
  3. osTicket öffnen — das Plugin erkennt die vorhandene Installation und führt den Upgrade-Pfad automatisch aus (legt nur die Audit-Tabelle an).
  4. Ab- und wieder anmelden, damit der neue Code und die Übersetzungen geladen werden.

Wichtiger Hinweis für den Fork

Ändere die Plugin-ID nicht. Bleibt sie bcombs18:inventory, erkennt osTicket eine bestehende 1.1.6-Installation als Upgrade. Würde die ID geändert, behandelte osTicket das Plugin als neu — dann liefe die Erstinstallation samt DELETE FROM form …, was benutzerdefinierte Felder verwerfen könnte.

Nach dem Upgrade prüfen

  • Reiter Inventarverwaltung / Übersicht lädt.
  • Bestehende PCs/Server und Telefone sind vorhanden.
  • Anlegen mehrerer Einträge (auch ohne Seriennummer/IMEI) funktioniert.
  • „Anwendungen"-Seite lädt ohne Fehler.
  • Suche findet Teilbegriffe.

Sollten benutzerdefinierte Werte nach dem Upgrade nicht sofort in der Liste erscheinen, genügt in der Regel ein einmaliges Speichern des betreffenden Datensatzes (die materialisierten Anzeigedaten werden pro Datensatz aktualisiert).


Konfiguration

Im Plugin (Instanz-Einstellungen):

  • Backend aktivieren — zeigt den Inventar-Reiter im Agenten-Bereich.
  • Telefone aktivieren — schaltet die Telefon-Verwaltung frei.
  • Audit-Log aktivieren — protokolliert Änderungen (optional).

Benutzerdefinierte Felder werden wie bei osTicket üblich über die zugehörigen dynamischen Formulare („Inventory" / „Inventory Phone") gepflegt.


Entwicklung / Build

Voraussetzung: PHP 8.3 CLI.

Syntaxprüfung aller Dateien:

find . -name '*.php' -not -path './vendor/*' -exec php -l {} \;

Natives PHAR bauen (Beispielskript):

php -d phar.readonly=0 build_phar.php <quellverzeichnis> inventory_manager.phar

Das PHAR nutzt den Stub Phar::mapPhar('inventory_manager.phar'), den Alias inventory_manager.phar und eine SHA-1-Signatur.

Hinweis zu Tests: Die Modell-Logik (z. B. Anlegen/Deduplizieren) lässt sich mit einem DB-freien PHP-Harness (ORM-Stubs) verhaltensmäßig testen. Such-/ Queue-Verhalten hängt dagegen an osTickets SQL-Schicht und sollte auf einer echten osTicket-Instanz geprüft werden.


Changelog

Siehe CHANGELOG.md für die vollständige Historie von v1.1.6 bis v2.8.3.


Danksagung / Credits

  • Ursprüngliches Plugin: bcombs18/osTicket-Inventory-Manager
  • Diese Fassung: Modernisierung für osTicket 1.18 / PHP 8, deutsche Lokalisierung, kombinierte Übersicht, verbesserte Suche, Refactoring und Fehlerbehebungen.

Lizenz

Es gilt die Lizenz des ursprünglichen Projekts (siehe LICENSE).

About

An Inventory Managment plugin for osTicket.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages