sqStorage Webbasierte Mini-Lagerverwaltung

Re: Webbasierte Mini-Lagerverwaltung

So, es gab nochmal ein paar Änderungen:

1) Setzen des aktiven Bereichs im Fenstertitel des Browsers

2) Hervorhebung des aktiven Navigationspunktes - um bei der Fragestellung zu helfen, "wo bin ich in in der Software?"

3) Selbsterstelle dynamische Datenfelder - das Feature ist zu 3/4 komplett Bedarf aber eines Datenbankupdates (also im in jedem Fall über phpmyadmin oder ähnlcihem die Tabellen "customFields" und "fieldData" droppen/rauswerfen und dba.php ausführen damit die Tabellen neu und mit erforderlichen Feldern neu angelegt werden)

4) Custom Dropdowns haben nun ein Highlighting für die ausgewählte Selektion

5) Custom Dropdowns sind nun in der Höhe maximiert, damit diese nicht über den sichtbaren Fensterbereich hinausgehen

6) Übersetzungen wurden ergänzt für die Datenfelder und auch für den Rest der Anwendung, Singular und Plural brauchen allerdings noch Arbeit an einigen Stellen. Hilfe ist ausdrücklich erwünscht!

7) Ersetzt von "alert-info" zu "statusDisplay green" um gemachte Änderungen wie Erstellungen anzuzeigen,

8) die Sprachauswahl wurde verbessert da diese in manchen Fällen nicht korrekt funktioniert hatte

Code:
Änderungen:
Vorschläge und Probleme:

Neu, ein Matrix Chat (room) auf Tilde.fun, zu finden auf:


PS: Eine Version nach SemVer.org Standard wird released, sobald das CustomDataFields-Feature fertig ist. Was genau fehlt? Die Anzeige in der Inventory Übersicht so fern das Feld als "immer sichtbar" angezeigt wird und wenn nicht "immer sichtbar", ein Bereich zum Ausklappen für die Custom Fields vorhanden sind, dass diese auf Knopfdruck betrachtet werden können.

Und vielen Dank an die Helfer, die das Projekt verbessern und einen Ansporn geben! :T
 
Zuletzt bearbeitet:
Re: Webbasierte Mini-Lagerverwaltung

Update batch zwei:

1) Das Positionieren innerhalb der Oberkategorien, von Unterkategorien, war zwar möglich, veränderte jedoch nicht die Anzahl der Gegenstände - dies schien im Laufe der Entwicklung gebrochen zu sein und ist nun wieder integriert.

2) Clean URLs everywhere, Dank .htacces Rewrites und etwas Voodoo - aktuell mittels Apache's mod_rewrite

3) Dropdowns zeigen nun Standardmäßig die erste selektierte Option als Platzhalter für die Dropdowns, so war es möglich das bereits gehighlighte Inhalte angezeigt werden.

4) [kw]support/urlBase.php[/kw] erstellt den Parameter [kw]$urlBase[/kw], was den aktuell Pfad zu den Inhalten konstruiert. (Clean Urls)
 
Zuletzt bearbeitet:
Heute war der Tag, ganz voll, mit einem Feature Request: Bilder für Gegenstände ( Github Issue: )

In Kurzform:
Inventarübersicht:
- Klick auf dem Namen eines Gegenstandes in der "Inventarübersicht" öffnet das editieren, dies war vorher nur über die Aktionen-Schaltfläche möglich, ist aber kein Overhead dies auch so zu Handhaben.

Neu Bilder für Gegenstände:
- einem Gegenständ können nun png und jpeg Dateien angehangen werden. Dies funktioniert beim Editieren, also wenn der Gegenstand schon anlegt ist
- Anzeige das ein Eintrag Bilder hat in der Inventaransicht
- Bilder der Gegenstände laufen über Thumbnails können aber auch in Vollbild angezeigt werden
- Entfernen der Bilder mittels Klick auf "Remove"-Icon mit zusätzlicher Abfrage


Was nicht geht: Bilder können nicht beim erstellen angehangen werden, der Gegenstand muß erst angelegt und editiert werden, damit die Bilder aktuell zugeordnet werden können.

Und hier zwei Screenshots wie das aussieht.

Anzeige im Inventar das Bilder vorhanden sind:



Detailansicht beim Editieren mit Option Bilder hinzuzufügen, die Bilder in "groß" zu betrachten mit Klick auf Thumbnails und auch zu entfernen.



Wer das Feature ausprobieren will, findet die (ohne Release).
Außerdem muß dafür einmalig die [kw]bootDB.php[/kw] ausgeführt werden damit die SQL-Tabelle für die Fotos angelegt wird.
 
Zuletzt bearbeitet:
Es gab ein paar kleine Updates:

  • Das Usermanagement bzw. Registrierung und Login sind nun standardmäßig deaktiviert in der Konfigurationsdatei [kw]/support/dba-example.php[/kw] über die PHP Variable [kw]$useRegistration[/kw] mit [kw]false[/kw] oder wieder zum aktiveren/einschalten auf [kw]true[/kw] . Denkt dran die Datei [kw]/support/dba.php[/kw] entsprechend anzupassen bei einer vorhandenen Installation.

    Also:
    [src=php]$useRegistration = false; // false or true[/src]
  • Nginx Konfiguration für pretty/schöne URLs in [kw]nginx.conf[/kw]
  • Custom Dropdowns (Mulitple Select) schließt nun nicht mehr wenn auf die Eingabefläche und dann auf den Dropdown Text und nicht die Checkbox geklickt wird und der Input den Fokus verliert
  • [kw]/support/urlBase.php[/kw] etwas verbessert das keine tripple Slashes in Nginx mit pretty URLs landen
  • Anzahl der Positionen werden, zusätzlich zu der Anzahl der Gegenstände, nun in den Kategorien angezeigt
  • Styling des Interfaces für Opera und auch in Firefox verbessert
  • Das Umbenennen von Unterkategorien funktionierte nicht, dies ist behoben.
 
Zuletzt bearbeitet:
Heute stand der "Transfer" auf dem Prüfstand.

Das verhält sich nun wie folgt:
Über Transfer lassen sich "Gegenstäde" verschieben. Das funktionierte bisher auch anstandslos. War aber nicht genug.
Neu ist jetzt, eine Position (Gegenstand) mit mehr als 1ner Einheit kann entweder komplett oder mit selbstbestimmter Anzahl, in ein anderes Lager verschoben werden.
Dabei wird die Anzahl abgefragt und die Eingabe auf Gültigkeit geprüft. Ist alles okay landet nach Klick auf "Transferrieren" der Gegenstand mit der gewählten Anzahl im Ziel.

Noch ein kleiner Clou dabei: Wenn ein gleichnamiger Gegenstand im Ziel besteht, werden diese beim Transferrieren zusammengeführt.

Und hier eine Demo:

Die Version findet sich auch schon auf Github.

Update 02.07.2020:
- bei dem Zusammenfassen durch das Transferieren von Gegenständen mit gleichen Namen werden Bilder zusammengefügt und fieldData mit umgeschrieben, siehe Notiz ob ein extra Check/Anfrage gemacht werden soll - wie zusammengeführt werden soll...
 
Zuletzt bearbeitet:
Mal ein großer Dank an @theSplit für die ganze mühe.
Ich bin schon lange auf der Suche nach einer einfachen Lagerverwaltung und bin per zufall auf sqStorage gestoßen.

Nu hab ich dies von GitHub als *zip gedownloadet und entpackt. Hochgeladen auf einem WebServer (RPi4 mit Apache2, MySql (MariaDB) und PHP 7.3.19-1). Nach anpassung der Datei "dba.php" mit den richtigen DB-Daten, funktioniert das ganze leider nicht. Die tabellen in der DB sind auch richtig angelegt, aber jede weitere Seite, wie index.php, bringt mit nur die meldung "HTTP Error 500, kann diese Anfrage momentan nicht verarbeiten.
Schreibrechte für languages/locale/ und smartyfiles/ laut Readme-file habe ich gesetzt.

Hab ich da einen Fehler gemacht? Eigendlich sollte es funktionieren....

Hoffe doch, das ich euch niht nerve.. ;) LG Maya
 
Die bootDB.php hast Du also auch aufgerufen?

ja, das habe ich.

ich bin so vorgegangen:

- zip auf festplatte entpackt,
- dba-example.php mit edior (notepad++) geöffnet und SQL-daten eingetragen und gespeichert,
- dba-example.php in dba.php umbenant
- das ganze packet dann auf den Server hochgeladen
- Schreibrechte für languages/locale/ und smartyfolder/ laut Readme-file gesetzt (chmod www-data ...)
- bootDB.php aufgerufen (hat auch geklappt, konnte dann in der datenbank die erstellten Tabellen sehen)
- index.php aufgerufen ) ab hier "HTML Error 500"

:(

hier irgendwo ein fehler?

LG Maya
 
- index.php aufgerufen ) ab hier "HTML Error 500"

Ich habe das mal hier auf einem Pi4 getestet und dort hat das Routing für die "Pretty Urls" nicht funktioniert.

Um das zu beheben ist nun in [kw]support/dba-example.php[/kw] eine neue Option [kw]$usePrettyURLs[/kw]:
Siehe hier:

Damit dies funktioniert muss das Repo neu ausgescheckt bzw. heruntergelanden werden, da sich einige Dateien verändert haben.

Und so muß die Option aussehen, damit dann [kw].php[/kw] angefügt wird bei allen URLs.
[src=php]// Make use of pretty urls, might raise 404 errors on Pi4
$usePrettyURLs = false; // true OR false[/src]

Teste bitte mit dieser Version und ausgeschalteten Pretty URLs.

Hier ist auch der Commit dazu:
 
Error 500

Damit der Fehler 500 bzw, Error 500 verschwindet, muß der Webserver Lese- und Schreibzugriff auf [kw]smartyfolders[/kw] und [kw]languages/locale/[/kw] haben.

Zum Beispiel so:
[src=bash]chown -R www-data smartyfolders/
chgrp -R www-data smartyfolders/

chown -R www-data languages/locale/
chgrp -R www-data languages/locale/
[/src]

Das sollte das Problem mit Error 500 beheben. Es ist ratsam die Logs des Webservers zu überprüfen. Also im Falle von Apache2 [kw]access.log[/kw] und [kw]error.log[/kw].
 
Zuletzt bearbeitet:
Mal ne doofe Frage:
Wieso chown auf smartyfiles? Das Verzeichnis gibt es doch gar nicht.
 
Doof ist die Frage nicht. Ich hatte da zwar diesen Folder, aber der war leer. Keine Ahnung was sich das eingeschlichen hat.. Hab die Hinweise entsprechend korrigiert.
 
Guten Tag,

zunächst einmal ein großes Lob an die Community die dieses Programm geschaffen hat.
Nun, ich versuche jetzt seit einiger Zeit die Lagerverwaltung zum Laufen zu bringen, aber es will einfach nicht. Das liegt mit Sicherheit an meinen diletantischen Kenntnissen, trotzdem Versuche ich mich mal daran.

Fehlermeldung:

Fatal error: Uncaught Error: Class 'Locale' not found in D:\xampp\htdocs\support\language_tools.php:55 Stack trace: #0 D:\xampp\htdocs\support\language_tools.php(21): initLang('deu') #1 D:\xampp\htdocs\includer.php(14): require_once('D:\\xampp\\htdocs...') #2 D:\xampp\htdocs\install.php(29): require('D:\\xampp\\htdocs...') #3 {main} thrown in D:\xampp\htdocs\support\language_tools.php on line 55

System: Win10 Home

Was habe ich getan:
-XAMPP installiert
-Apache Server gestartet
-MySQL Server gestartet
-PHP Version überprüft V7.4.10
-Benutzerkontensteuerung Runter
-Vollzugriff für alle Benutzer auf htdocs
-cmd.exe -> set LANG=de_DE ->d:\xampp\xampp-control.exe

Sicherlich irgendein Noob problem ;)

Grüße,

Zweat
 
Das wird daran liegen, dass Du die intl-Erweiterung nicht aktiviert hast.

Um die zu aktivieren, die Datei D:\xampp\php\php.ini mit einem Editor öffnen und das Semikolon vor
[src=bash];extension=php_intl.dll[/src]
entfernen. Dann speichern und den Apache neu starten.
 
Zuletzt bearbeitet:
Hallo,
ich melde mich nochmal zu Wort, ich habe die Commentzeile missbraucht um ein Verfallsdatum anzugeben. Dazu den Datentyp in Date geändert. Im Template wird dann ausgewertet ob Haltbarkeit <3 Monate oder Abgelaufen und das Feld Gelb oder Rot hinterlegt.
Jetzt rufe ich ein Plugin im inventory.tpl auf, das mir eine Mail schickt mit der Info: Item 123 läuft zum XX.XX.XXXX ab. Verwendet habe ich hier den PHPMailer. Das funktioniert soweit so gut. Jetzt habe ich einen zusätzlichen Datenpunkt in der Datenbank angelegt und diesen "emailsent" genannt und da würde ich gerne eine 1 eintragen, wenn ich die Infomail bereits erhalten habe. Sonst erhalte ich jedesmal eine Mail.
Aber, ich bin zu blöd. Könnt ihr mir sagen, was ich tun muss? Irgendwie sowas wie: DB::update('items','emailsent','id=$meinitem',1). Also wie ihr am letzten Satz erkennen könnt, habe ich keine Ahnung was ich tue ;).

Vielen Dank für die Aufmerksamkeit.
Bei interesse kann ich die codesnippets zu dem Haltbarkeitsdatum senden.

Grüße,
Zweat
 
Zuletzt bearbeitet:
Kannst Du so machen:
[src=php]

DB::update('items', ['emailsent' => 1 ], "id=%i", $meinitem);

[/src]
 
Gibt eigentlich noch eine Old-Version? Das nimmt immer mehr Überhand mit der SQL Perfektionierung. Als ich das erste mal hier reinblickte und deine Tabelle deine Datenbank sah @Split war das doch schon gut (also der Ansatz) Oder gibts eine Version-History? Meine SQL Basics sagen mir, man kann sich da auch verzetteln irgendwann. Und das Topic/Startbeitrag exisitiert nicht mehr, ich weiss nicht wer das Thema eröffnet hat, sry Name fällt mir nicht ein, aber der hatte sich dann gar nicht mehr gemeldet? Sein Feedback würde mich hier nochmal interessieren ob denn diese Lager-Verwaltungs-Software wie sie ja jetzt eine ist für dich so in Ordnung ist?

--- [2020-11-01 02:57 CET] Automatisch zusammengeführter Beitrag ---

wow ihr habt den Startbeitrag zwar als Zweites angehangen, aber den Threadersteller-Namen einfach gelöscht oder ihr erwähnt ihn nicht. Jau Mods make the Business.
 
Tjo Steev - der Threadstarter ist Thom... das passt schon so - ob du es nu glaubst oder nicht ;)

Und da das ganze auf Github liegt kannst du selbstverständlich auch alter Versionen abrufen.
 
Hier steht auch, wie man zu einem alten Git Commit wechseln kann:

TL;DR:
[kw]git checkout [revision] .[/kw] (im Stammverzeichnis des Projekts ausführen, daher der Punkt am Ende)

[kw][revision][/kw] ist der Commit Hash/Stand den du haben willst.
 
Zurück
Oben