• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

sqStorage Webbasierte Mini-Lagerverwaltung

X-Coder

Aktiver NGBler

Registriert
14 Juli 2013
Beiträge
149
Re: Webbasierte Mini-Lagerverwaltung

Hi, hab gerade Langeweile und setze mich gerade mal an ein einfache Benutzer/Gruppen-Funktion, wenn theSplit nichts dagegen hat.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
  • Thread Starter Thread Starter
  • #62
Re: Webbasierte Mini-Lagerverwaltung

@X-Coder: Nein nein, mach ruhig, sogar sehr sehr gerne! :T
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
  • Thread Starter Thread Starter
  • #63
Re: Webbasierte Mini-Lagerverwaltung

Die Arbeit an den Custom Fields geht voran! Die Eingabemaske für die Felder steht schon bereit.

Dazu mal zwei Videos:

Gestern: https://www.picflash.org/picture.php?key=LXI6SM&action=show
Heute: https://www.picflash.org/picture.php?key=VCWTFN&action=show

Und hier die Internas:



Was aktuell noch fehlt, das man bei Einträgen/Gegenständen entsprechend Daten mit Auswahl von einem oder mehreren Feldern einpflegen kann.
Geplant ist es so, dass man die Felder auswählen kann die man für einen Artikel braucht, und diese individuell mit Werten füllen oder nicht füllen können soll. Das funktioniert dann unabhängig für jeden Gegenstand, er kann aber muß keine Zusatzfelder haben.
 

X-Coder

Aktiver NGBler

Registriert
14 Juli 2013
Beiträge
149
Re: Webbasierte Mini-Lagerverwaltung

Habe es nun eben auch mal endlich geschafft meine Arbeit von September mit dem Benutzer-/Gruppensystem fertig zustellen und dir eben einen PR dazu geschickt. Habe auch versucht den Style von dir zu übernehmen.

Das Script versendet automatisch Einladungs-Mails beim anlegen von Benutzern über den internen Mailserver sofern eine Absender-Adresse gesetzt ist und das Mailing bei den Einstellungen eingeschaltet ist und PHP's mail-Funktion verwendet werden kann, darüber kann dann das Passwort gesetzt werden.

Todo: besser wäre es aber auch eine andere mail-lib anzuschließen wie swiftmailer damit Mails auch über externe Mailserver versendet werden können, falls die mail-Funktion nicht genutzt werden kann. Habe einen Fallback drin, damit es eingeschränkt auch ohne Mailserver geht (Admin kann Link manuell versenden). Weis nur nicht wie es damit aussieht, weil es die MIT-Lizenz verwendet und du GPL V3. Kann man das einfach inkludieren oder beißt sich dass?

Einstellungen dazu speichere ich direkt in der Datenbank in der neuen settings-Tabelle, diese kannst du auch für andere Einstellungen nutzen. Die Einstellungen werden dort json-codiert über mysql's JSON_SET-Funktion gespeichert.

Die Passwörter werden mit PHP's password_hash-Funktion in der Datenbank gespeichert, diese verwendet momentan bcrypt zum hashen und den PASSWORD_DEFAULT algo.

Hier mal ein paar Screenshots dazu:


Neue PHP Scripte müsstest du jetzt schützen, indem du die login.php per require einbindest.
Als Benutzergruppen habe ich mal Administrator, Gast und Benutzer angelegt.
 
Zuletzt bearbeitet:

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
  • Thread Starter Thread Starter
  • #65
Re: Webbasierte Mini-Lagerverwaltung

@X-Coder: Sieht super aus und hat Hand und Fuß! Vielen Dank :T
Eine Bitte dazu, kannst du die SQL Anweisungen in "updateDB.php" mit den "Create Table if not exists" (der Struktur für die Nutzer Tabelle) füllen?

Dann ließe sich die Datenbank "bootstrappen", mit Aufruf der "updateDB.php" zum Beispiel so einen Eintrag:
[src=text]DB::query('CREATE TABLE IF NOT EXISTS `customFields` ( `id` BIGINT(20) UNSIGNED NOT NULL, `label` VARCHAR(64) NOT NULL, `dataType` INT UNSIGNED NOT NULL, `default` VARCHAR(64) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;');[/src]

Die Idee dahinter ist, das man nicht die SQL importieren muß, sondern einfach die Datei aufruft, nachdem man die Einstellungen für die Datenbank getätigt hat und ein DB-Nutzer und Datenbank angelegt worden ist.


Update:

Mit den neuen Daten habe ich eine neue DB Bootstrap Datei geschrieben [kw]bootDB.php[/kw]:
https://github.com/jrie/sqstorage/blob/master/bootDB.php

Und dafür ist das "tlv_empty.sql" entfernt. Alles was an DB Arbeit gemacht werden muß kommt dann in die BootDB - und (nachträgliche) Änderungen an Datensätzen in die [kw]updateDB.php[/kw]

Die Readme passe ich entsprechend noch an.
 
Zuletzt bearbeitet:

werner

Suchtspielmacher (ehm.)

Registriert
20 Juli 2014
Beiträge
743
Ort
Mannheim
Re: Webbasierte Mini-Lagerverwaltung

Ich bekomme beim initalisieren der DB leider den Fehler "ERROR: Unknown character set: 'utf8mb4'"

Bin leider nicht so Datenbankaffin, kann es sein, dass mir eine Erweiterung fehlt?

Ansonsten wäre glaube ich der Support für SQLite3 ziemlich nice, da man dann von irgendwelchen größeren SQL System absehen kann und das ganze "on-the-fly" im Hintergrund laufen könnte.

LG
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
  • Thread Starter Thread Starter
  • #67
Re: Webbasierte Mini-Lagerverwaltung

@werner: Hi, spontan scheint es an der mySQL Version zu liegen:
https://ourcodeworld.com/articles/r...f8mb4-when-importing-a-sql-file-in-phpmyadmin

Hier gibt es auch noch einen Workaround, aber ich weiß nicht in wie weit das Konsequenzen hat:
https://stackoverflow.com/questions/21911733/error-1115-42000-unknown-character-set-utf8mb4

TLDR: Von "utf8mb4" auf "utf8" umstellen. Also müsstest du nur die [kw]bootDB.php[/kw] so ummodeln:

Zeile 9, "settings"-Tabelle:

[src=php]DB::query('CREATE TABLE IF NOT EXISTS `settings` (`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT , `namespace` varchar(64) NOT NULL, `jsondoc` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `namespace` (`namespace`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;');[/src]

zu dem hier, sollte helfen:

[src=php]DB::query('CREATE TABLE IF NOT EXISTS `settings` (`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT , `namespace` varchar(64) NOT NULL, `jsondoc` longtext CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `namespace` (`namespace`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;');[/src]

Allerdings, da mußt du X-Coder fragen, wird es wohl einen Grund haben warum er "utf8mb4" nimmt. und nicht eine andere Kodierung wie "utf8".
 

braegler

Aktiver NGBler

Registriert
14 Juli 2013
Beiträge
898
Re: Webbasierte Mini-Lagerverwaltung

Allerdings, da mußt du X-Coder fragen, wird es wohl einen Grund haben warum er "utf8mb4" nimmt. und nicht eine andere Kodierung wie "utf8".
Ist heutzutage best practise UTF8 im 4 byte Multibyte Modus zu verwenden.
Spätestens wenn mal jemand ein UTF8-Smiley eingibt, fällt einem Standard-UTF8 auf die Füsse
 

X-Coder

Aktiver NGBler

Registriert
14 Juli 2013
Beiträge
149
Re: Webbasierte Mini-Lagerverwaltung

Das Encoding war eigentlich keine Absicht sondern ist beim Export meines SQL-Dumps herein gerutscht, da meine Datenbank dies schon als Standard hatte. Es läuft auch mit einem anderen Encoding, es gehen dann halt manche Zeichen nicht.

Aber eigentlich hat braegler recht, best practice wäre heut zu Tage utf8mb4, dies wird allerdings erst ab MariaDB 10.2 / Mysql 5.5.3 unterstützt.

Allerdings habe ich auch noch die JSON_SET-Funktion genutzt, dafür wird mindestens MariaDB 10.2.3 / Mysql 5.7 benötigt.

Da theSplit heute aber eh das statische SQL-Script auf eine dynamische Methode (bootDB) umgestellt hat, könnte man dort das optimale Encoding erkennen lassen, oder sogar noch konfigurierbar machen.

Die Frage ist, sollte man das Encoding überhaupt beim Anlegen der Tabellen mitgeben? -Wenn keines angegeben wird, so wird ja automatisch das verwendet, was beim Anlegen des Datenbank-Schemas als default gesetzt wurde, bzw. kann das ja dort geändert werden, bevor bootDB aufgerufen wird, so könnte man die gesetzte Locale respektieren. @theSplit: habe dir mal ein PR dazu geschickt, wenn du es für Sinnvoll hälst, kannst du das mergen.
 
Zuletzt bearbeitet:

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
  • Thread Starter Thread Starter
  • #70
Re: Webbasierte Mini-Lagerverwaltung

Wichtig zum Encoding der Datenbank wäre auch der Punkt in der [kw]dba.php[/kw], Zeile 5:
[src=php]DB::$encoding = 'utf8';[/src]

Hier steht noch etwas dazu: https://meekro.com/docs.php#anchor_variables

Dann müsste man das Encoding an zentraler Stelle vorgeben, also in der dba.php welches dann global für die Erstellung der Tabellen genutzt wird.

Den PR würde ich daher in dieser Form noch nicht zusammenführen.

---

Da auf Github ein Issue bezüglich hübscherer und durchsuchbarer Dropdowns/Selects gefordert wurde, hab ich mich mal dazu hingesetzt:
https://www.picflash.org/picture.php?key=A8YLMW&action=show
anderes Icon: https://www.picflash.org/picture.php?key=T1ZRBO&action=show

Das einzige was dabei noch fehlt sind "Multiple" Selektionen - da würde ich, so fern ein Select das Attribute "multiple" aufweist, mit Checkboxen arbeiten die mit Klick auf den Namen des Elements an bzw. abgewählt werden.
 

werner

Suchtspielmacher (ehm.)

Registriert
20 Juli 2014
Beiträge
743
Ort
Mannheim
Re: Webbasierte Mini-Lagerverwaltung

Dann schaue ich nochmal in einer gewissen Zeit rein, eine Keller habe ich sowieso nicht :cool: #minimalist
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
  • Thread Starter Thread Starter
  • #72
Re: Webbasierte Mini-Lagerverwaltung

Nur kurz, "custom dropdowns" sind nun komplett eingebaut:

Video demo mit Multiple Select:
https://www.picflash.org/picture.php?key=TL4K7C&action=show

Das schöne daran, funktioniert alles über Javascript und die original Dropdowns bleiben erhalten.

Code:
https://github.com/jrie/sqstorage/commit/89e28958cfd0b9c9e6a3d968a9247910db7da690

Und hier ist der Issue in Github:
https://github.com/jrie/sqstorage/issues/2

Update:
Tastaturnavigation für die CustomDropdowns:
https://www.picflash.org/picture.php?key=H69UFX&action=show
 
Zuletzt bearbeitet:

venom2k6

NGBler

Registriert
15 Juli 2013
Beiträge
107
Re: Webbasierte Mini-Lagerverwaltung

sehr geil! Super arbeit. werd ich jetzt direkt mal updaten und durchchecken.. Vielen dank für eure Arbeit an diesem projekt! :)
 

braegler

Aktiver NGBler

Registriert
14 Juli 2013
Beiträge
898
Re: Webbasierte Mini-Lagerverwaltung

Tachjen,
hab gerade damit angefangen die Lagerverwaltung mit dem Template-System Smarty auszurüsten.
Werde in den nächsten Tagen einen PR dazu machen ( https://github.com/schnoog/sqstorage ) .

Hatte ja vor ca. 10 Monaten schonmal die damalige Version umgesetzt ( https://github.com/schnoog/oldsqstorage ), aber nachdem doch einiges lief, habe ich beschlossen nochmal von Null an durch zu starten.

Was mir aber gleich aufgefallen ist:
Ich arbeite bei der Entwicklung immer mit "error_log(E_ALL)".

Beim ersten Aufruf (nach der DB Installation) waren dann die 4 Felder zur Admin-Daten-Eingabe mit Fehlermeldungen zugepflastert, und auch das Formular an für sich hat nicht funktioniert, da die Action des Frms plötzlich auch die Fehlermeldung enthielt.

Betrifft aber wohl die meisten Seiten.
Notice: Undefined variable: isEdit in H:\phpDEV\sqstorage\settings.php on line 90
Notice: Undefined variable: isAdd in H:\phpDEV\sqstorage\settings.php on line 90
Notice: Undefined variable: error in H:\phpDEV\sqstorage\settings.php on line 195
Notice: Undefined property: stdClass::$senderAddress in H:\phpDEV\sqstorage\settings.php on line 242
Notice: Undefined property: stdClass::$enabled in H:\phpDEV\sqstorage\settings.php on line 242


Ich werde versuchen die Dinge gleich mit auszubügeln.


Edit: Hab mir gerade mal spasseshalber die Zip Datei (https://github.com/jrie/sqstorage - Clone or download - Download Zip) gezogen.
Auf dem Windows 10 Rechner hat WindowsDefender darin "einen Trojaner entdeckt"

Die selbe Datei entpackt auf der HD stört ihn jedoch nicht.
Eben sowenig der selbe Inhalt (als Zip Download) in der Datei templates/jsDropDown.tpl
 
Zuletzt bearbeitet:

braegler

Aktiver NGBler

Registriert
14 Juli 2013
Beiträge
898
Re: Webbasierte Mini-Lagerverwaltung

Die Seiten sind nun fast komplett umgebaut.
Muss noch die Subkategorie Tabelle im Inventar [sqstorage/inventory.php?category=1] einbauen, dann ist das geschafft.
und die Übersetzungen aktualisieren (mo-dateien).

Sollte morgen über die Bühne sein. Der aktuelle Stand kann problemlos ausgecheckt und getestet werden.
https://github.com/schnoog/sqstorage

Was soll eigentlich mit den zusätzlichen Datenfeldern in Zukunft passieren?
Automatisch (dynamisch?!?) in die entsprechenden Formulare (index.php?editItem=X) mit einblenden?

--- [2020-01-02 21:49 CET] Automatisch zusammengeführter Beitrag ---

Es ist vollbracht.

Die komplette Webapp ist nun einmal auf die Smarty-Template-Engine umgestellt.
Übersetzung ist soweit komplett, eine LANGUAGE.md mit den nötigen Informationen um die Übersetzungen up-to-date zu halten ist mit dabei.

Seit meinem Fork (Stand 25.12.) sind einige Commits bei Dir dazu gekommen, die ich nicht rebasen kann, da sie die Aufsplittung wieder zu Nichte machen würden.

Hab mir die angeschaut, und eigentlich sind nur zwei Commit wirklich "zu gebrauchen"
https://github.com/jrie/sqstorage/commit/e1562f2fef15fbcdd651623424aa8e0742e5fb11
https://github.com/jrie/sqstorage/commit/e09482ae3f14d9c87464705a0d8a4dcc165a7a67

Die restlichen ändern Dateien, die ich komplett neu strukturiert hab.

Mein Vorschlag wäre, auf den Stand 44e51ea8dbc7a93ad39b192d07b1f5165251671a zurück zu gehen, den PR (https://github.com/jrie/sqstorage/pull/15) zu mergen und die 2 Commits manuell aufzubügeln (oder patchen)
--- [2020-01-03 12:02 CET] Automatisch zusammengeführter Beitrag ---

Mahlzeit.

Hab dir mal den PR https://github.com/jrie/sqstorage/pull/16 hinterlassen.
Dein aktueller Stand, die Dateien manuell überschrieben, .editorconfig drüber laufen lassen.
 
Zuletzt bearbeitet:

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
  • Thread Starter Thread Starter
  • #76
Re: Webbasierte Mini-Lagerverwaltung

@braegler: Erst mal vielen Dank für deine Mitarbeit!

Bezüglich der Commits, können wir so machen, ich habe dir aber einen Kommentar, mit möglichen Problemen hier geschildert:
https://github.com/jrie/sqstorage/pull/16

Das Problem ist auch, wenn das Projekt in einem Unterordner gelagert wird und es die (relativen) Pfade kaputt macht oder zusätzliche "/" Slahes hinzufügt die dann Mehrfach vorkommen.

Bezüglich der Custom Fields, die wollte ich dynamisch hinzufügen lassen, also beim Eintragen/Bearbeiten ein extra Dropdown für die Feldauswahl und man kann das Gegenständen hinzufügen, dabei kann aber muß ein Artikel nicht alle Felder haben. Also wirklich dynamisch. Die Speicherung soll so aussehen das für jeden Gegenstand ein Datenfeld reserviert wird, was genutzt werden kann, aber nicht muß.
 

braegler

Aktiver NGBler

Registriert
14 Juli 2013
Beiträge
898
Re: Webbasierte Mini-Lagerverwaltung

Hab ein wenig gefixt und auf verschiedenen Systemen getestet.
Unterordner hab ich ebenfalls getestet
foldertest.jpg
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
  • Thread Starter Thread Starter
  • #78
Re: Webbasierte Mini-Lagerverwaltung

@braegler: Super Arbeit! Ich geb zu, ich war etwas überfordert den Merge zu machen..

Aber was ich dafür gelöst habe in den letzten Commits:
- Prio1 - Dropdowns werden nun korrekt erkannt anhand eines Indexes
- Sprachauswahl über Custom Dropdown mit Change Event inside "nav.tpl"
- Überflüsse Zeichen entfernt welche sich ins Display bei den Kategorien geschlichen haben (categories.tpl)

Was noch fehlt, die Sprache beim bzw. für Login einzustellen.

Und eine weitere Frage, wie funktioniert das mit der Sprachauswahl - bei mir gibt es keine Änderung. Muss da etwas am Server eingestellt sein? Oder ist das davon unabhängig und orientiert sich woran anders? Habs in Chrome und Firefox getestet, ein Wechsel ergibt aber keine Änderung der Anzeigesprache.


Edit: Lesen müsste man können: steht ja alles in der LANGUAGE.md mit dem Server.

Habe nun auch die Locales installiert, was bei mir broken war:
[src=bash]~$ sudo dpkg-reconfigure locales
Generating locales (this might take a while)...
de_DE.UTF-8... done
en_GB.UTF-8... done
en_US.UTF-8... done
Generation complete.

~$/sudo service apache2 restart
[/src]

Jetzt funktioniert auch die Sprachauswahl in Firefox und Chrome. :T



 
Zuletzt bearbeitet:

braegler

Aktiver NGBler

Registriert
14 Juli 2013
Beiträge
898
Re: Webbasierte Mini-Lagerverwaltung

Vielen Dank für die Blumen.
Hab schon gleich den nächsten PR hinterher geschoben. Beim Mergen macht ja Übung bekanntlich den Meister.
Mit dabei ist auch die Sprachauswahl auf der Login-Seite
 

X-Coder

Aktiver NGBler

Registriert
14 Juli 2013
Beiträge
149
Re: Webbasierte Mini-Lagerverwaltung

Habe da mal eine Anmerkung zur composer-Nutzung:

Eigentlich sollte der vendor-Ordner nicht in git eingecheckt werden, dieser sollte in der .gitignore aufgenommen werden. Nur die composer.lock-Datei sollte commited werden, damit alle, die das Projekt ausschecken, bei allen externen Abhängigkeiten immer auf dem gleichen Versionsstand sind. Sonst gibt es Probleme wenn ich dein Projekt z.B. als Subprojekt/require per composer in einem neuen Projekt einbinden möchte.

getcomposer.org schrieb:
Tip: If you are using git for your project, you probably want to add vendor in your .gitignore. You really don't want to add all of that third-party code to your versioned repository.
Mehr dazu findest du hier.

Zur Installation der Abhängigkeiten müssen Entwickler und Nutzer dann nur composer install aufrufen, dadurch wird der vendor-Ordner angelegt und die externen Abhängigkeiten heruntergeladen und eingebunden.

Entwickler können dann alle Abhängigkeiten mit "composer update" aktualisieren, dadurch wird eine neue composer.lock angelegt die wieder commited werden kann, nachdem auf Kompatibilität der Abhängigkeiten geprüft wurde.
 
Zuletzt bearbeitet:
Oben