Moritz Bunkus [Wed, 5 Sep 2012 07:18:45 +0000 (09:18 +0200)]
Sorted-Controller-Helper: Spaltentitle nicht direkt in make_sorted() übersetzen
Hintergrund ist der, dass ansonsten die Übersetzung nur einmal
passiert, nämlich dann, wenn das Modul compiliert wird. Für normales
CGI funktioniert das:
- Zuerst wird der Dispatcher geladen und ausgeführt. Der analysiert
zur Laufzeit die GET-/POST-Parameter und lädt erst dann den
erforderlichen Controller mittels "require".
- Sprich Dispatcher hat schon das für den Benutzer notwendige
$::locale-Objekt angelegt, und die Compilezeit des Controller-Moduls
liegt danach.
Für FastCGI würde das kaputt gehen:
- Zuerst wird der Dispatcher geladen und ausgeführt. Der analysiert
zur Laufzeit die GET-/POST-Parameter und lädt erst dann den
erforderlichen Controller mittels "require".
- Nach Beenden des Requests bleibt das Modul aber im Speicher.
- Beim nächsten Request auf denselben Controller wurde dieser bereits
compiliert, und die Titel wären bereits übersetzt -- in der Sprache
des Benutzers, der den Controller seit Start des FastCGI-Prozesses
das erste Mal aufgerufen hat.
In dem Verkaufsbericht gab es noch Probleme mit der Einheit in Bezug
auf den EK Preis. Dies hatte sich auch auf die Marge ausgewirkt. Beides
wird jetzt richtig berechnet.
In der Verkaufsrechnung gab es ähnliche Probleme. Hier wurde der
VK Preis nach Wechsel der Einheit umgerechnet, der EK Preis nicht.
Jetzt wird auch der EK Preis an die Einheit angepasst. Die Berechnung
war dadurch auch fehlerhaft durch unterschiedliche Einheiten
und wurde auch korrigiert.
Weiterhin wurde ein Problem mit dem Preisfaktor behoben. Wenn
ein Artikel in der Datenbank mit Preisfaktor hinterlegt war,
wurde der Preisfaktor bisher doppelt berechnet, jetzt nur
noch einmal.
Moritz Bunkus [Wed, 29 Aug 2012 15:58:14 +0000 (17:58 +0200)]
Task-Server-Control: Auch STDERR vom ausgeführten Kommando (start/stop) auslesen
Das geht leider nicht mehr mit
my $output = `$exe 2>&1`;
weil das nach dem Forken irgendwie einen Zombie-Prozess hinterlässt
und Perl aus dem `...` nicht zurückkehrt. Also die Variante mit
Umleitung in temporäre Datei wählen.
Moritz Bunkus [Mon, 27 Aug 2012 13:00:48 +0000 (15:00 +0200)]
Login-Maske: Zu Menu redirecten falls bereits eingeloggt
Wenn man bereits eingeloggt ist und irgendwo im Programm zu login.pl
redirectet wird (z.B. beim Speichern der Benutzereinstellungen), so
wurde durch die Umstellung des Loginmechanismusses neulich leider die
Loginmaske erneut angezeigt, obwohl eine anständig authentifizierte
Session vorliegt.
Moritz Bunkus [Fri, 24 Aug 2012 10:03:48 +0000 (12:03 +0200)]
Via SMTP Zeilen normalisiert verschicken
Der SMTP-Standard (RFC 821) verlangt, dass Zeilen nicht länger als
1000 Zeichen sind und mit <CRLF> abgeschlossen werden.
Anhänge kommen in der "sub print" aber als ein großer Blob an, der
zwar schon nach Zeilen aufgespalten ist, aber trotzdem zu groß ist,
sodass der annehmende Server teilweise komische Dinge mit der Eingabe
tut.
Also wirklich nur Zeile für Zeile schicken sowie dafür sorgen, dass
alle Zeilen auch wirklich mit <CRLF> aka \r\n abgeschlossen werden.
Moritz Bunkus [Fri, 24 Aug 2012 09:15:30 +0000 (11:15 +0200)]
Beim Anlegen der Auth-DB/-Tabellen Admin-Passwort mitschleifen
Solange die Auth-Strukturen nicht existieren, muss das Admin-Passwort
als Zeichen des gültigen Logins als Hiddens mitgeschliffen werden. Das
war auch vorher schon so, nur steht das vom Benutzer eingegebene
Passwort seit 670f76a für die Controller nicht mehr als Formvariable
zur Verfügung.
Moritz Bunkus [Fri, 24 Aug 2012 08:05:21 +0000 (10:05 +0200)]
Ermöglichen, dass Templates in SL/Dispatcher.pm übersetzt werden
In Dispatcher.pm erledigt die Sub "show_error" das Rendern. Ihr wird
der Name des Templates übergeben. Das erkennt aber
"scripts/locales.pl" nicht als Render-Anweisung und übersetzt die
Templates deshalb nicht automatisch. Also muss Dispatcher.pm etwas
nachhelfen und explizit erwähnen, dass diese Templates übersetzt
werden sollen.
Moritz Bunkus [Wed, 22 Aug 2012 16:24:12 +0000 (18:24 +0200)]
E-Mails auch per SMTP verschicken können
Default ist nun, via SMTP über localhost zu verschicken. Mögliche
Optionen sind: TLS oder SSL-Verschlüsselung, Authentifizierung,
Verwendung von Sendmail anstelle von SMTP (wie bisher).