Moritz Bunkus [Tue, 24 Jan 2017 13:44:39 +0000 (14:44 +0100)]
ClientJS: »pattern:« nur bei Abschnittskommentaren
Bei einem Kommentar hinter der Action ist der Kommentar selber bereits
das Pattern und darf das Stichwort »pattern:« nicht mehr
enthalten. Andernfalls würde es 1:1 in den JS-Code kopiert.
Moritz Bunkus [Mon, 23 Jan 2017 12:59:38 +0000 (13:59 +0100)]
arap.pl entfernt
Sie enthielt nur noch drei Funktionen:
• select_project — wurde nirgends mehr verwendet
• project_selected — war nur eine Helferfunktion für select_project
• continue — diese wurde nach common.pl verschoben
Moritz Bunkus [Fri, 20 Jan 2017 14:54:05 +0000 (15:54 +0100)]
Artikelsuche: überflüssige Fallunterscheidungen nach Artikeltyp entfernen
Seit der Einführung der Artikelklassifizierung gibt es nur noch eine
Suchmaske für Artikel, in der über Checkboxen gesteuert wird, nach
welchen Typen gesucht wird. Daher ergibt es keinen Sinn, im Template
danach zu unterscheiden, vor allem, da der aufrufende Code die Checks so
setzt, dass immer alle Controls angezeigt werden.
Moritz Bunkus [Fri, 20 Jan 2017 14:38:22 +0000 (15:38 +0100)]
Einkaufsrechnungssuche: Inputs gleich lang gemacht
Naja gut… so gleich lang, wie Inputs nun mal werden, wenn man sie alle
auf eine einheitliche Breite setzt. Comboboxes werden trotzdem leicht
schmaler gerendert.
Moritz Bunkus [Fri, 20 Jan 2017 14:18:27 +0000 (15:18 +0100)]
Verkaufsrechnungssuche: Inputs gleich lang gemacht
Naja gut… so gleich lang, wie Inputs nun mal werden, wenn man sie alle
auf eine einheitliche Breite setzt. Comboboxes werden trotzdem leicht
schmaler gerendert.
Jan Büren [Sat, 21 Jan 2017 13:20:18 +0000 (14:20 +0100)]
Wiederkehrende Rechnungen, um neue Periode 'einmalig' erweitert.
Wiederkehrenden Rechnungen die aus einem Auftrag automatisch generiert
werden können jetzt die Periode 'einmalig' (engl. 'one time') mit dem
Zeitwert 0 haben.
Falls diese Periode angewählt wird, wird die Konfiguration des Auftrags
nach Erzeugen der einmaligen Rechnung auf inaktiv gesetzt (s.a.
perldoc SL/DB/PeriodicInvoicesConfigs.pm).
Der Empfänger der Rechnungslauf-Mail bekommt in diesem Fall zusätzlich
die Auftragsnummer, bei welchem die wiederkehrenden Rechnungen deaktiviert
wurden mitgeteilt.
Zusätzlich ist diese Benachrichtigung per Mail erweitert, sodass jetzt
auch eine Liste der versandten Rechnungen per E-Mail mitgeteilt wird.
Moritz Bunkus [Fri, 20 Jan 2017 11:44:04 +0000 (12:44 +0100)]
ProjectPicker: Taskendrücke auf Shift, Ctrl & Alt ignorieren
Andernfalls wird schon beim Drücken eines der Modifier eine Suche
ausgelöst. Das kann besonders nervig sein, wenn man den Focus vom
Browser wegnimmt:
• Alt+Tab drücken, um zum anderen Fenster zu wechseln
• Schon bei Alt wird eine Suche ausgelöst.
• Durch den Focus-Verlust wird ein Blur-Event ausgelöst.
• Und schon ist der interne Zustand ungültig, und das Element wird rot
dargestellt.
Analoges passiert, wenn man z.B. mit Ctrl+F2 zu einem anderen virtuellen
Desktop wechselt.
Noch schlimmer ist, dass bei Shift+Tab ebenfalls zuerst eine Suche
ausgelöst und anschließend verhindert wird, dass der Focus das Element
verlässt.
Moritz Bunkus [Fri, 20 Jan 2017 11:40:33 +0000 (12:40 +0100)]
CustomerVendorPicker: Taskendrücke auf Shift, Ctrl & Alt ignorieren
Andernfalls wird schon beim Drücken eines der Modifier eine Suche
ausgelöst. Das kann besonders nervig sein, wenn man den Focus vom
Browser wegnimmt:
• Alt+Tab drücken, um zum anderen Fenster zu wechseln
• Schon bei Alt wird eine Suche ausgelöst.
• Durch den Focus-Verlust wird ein Blur-Event ausgelöst.
• Und schon ist der interne Zustand ungültig, und das Element wird rot
dargestellt.
Analoges passiert, wenn man z.B. mit Ctrl+F2 zu einem anderen virtuellen
Desktop wechselt.
Noch schlimmer ist, dass bei Shift+Tab ebenfalls zuerst eine Suche
ausgelöst und anschließend verhindert wird, dass der Focus das Element
verlässt.
Sven Schöling [Thu, 19 Jan 2017 13:34:02 +0000 (14:34 +0100)]
t/backgorund_job/known_jobs.t
Dieser Test hat noch nie einen Fehler gefunden, aber produzierst ständig
false positives wenn jemand einen neuen Hintergrundjob einfügt und
vergisst den hier einzutragen. Weg damit.
Das funktioniert so nicht. Grundsätzlich passiert das Scrollen passiert bei Fokus
automatisch. Bei force-reload kann es aber passieren, dass js/common
ausgeführt wird, bevor alle css Dateien geladen sind. Dann ändert sich
nachträglich die Größe der Elemente und das Element wird wieder aus dem
Bildschirm geschoben.
Ausserdem können Browser kein scroll offset, focus scrollt nur exakt
soweit dass das Element auf dem Screen ist, auch wenn das bedeutet, dass
es dann in den letzten 3% des Screen liegt.
Ich habe versucht das zu fixen, aber es wird dadurch nur komplizierter,
nicht besser. Also raus damit.
G. Richardson [Tue, 17 Jan 2017 07:41:38 +0000 (08:41 +0100)]
SL::DB::Part - neue Methode get_stock
um den aktuellen Lagerbestand eines Artikels in einem bestimmten
Lagerplatz oder in einem bestimmten Lager zu einem bestimmten Stichtag
in der Standardeinheit auszulesen.
Moritz Bunkus [Wed, 18 Jan 2017 12:50:08 +0000 (13:50 +0100)]
Flash bei ReportGenerator-Verwendung nicht manuell anzeigen
Der ReportGenerator zeigt den Flash inzwischen selber an. Daher muss,
nein sollte, oder sogar darf der Aufrufer den Flash im Top-Info-Text
vorher nicht mehr anzeigen. Andernfalls erscheint er doppelt.
Paginierung schneller machen für Lager(Paginierung repariert)
Lagerbuchungen und Lagerbestand optimieren
1. Auf Rose umstellen grosser Aufwand.
2. Roseverhalten nachimplementieren:
2.1. Nur einen Query haben, danach kein herausnehmen von Zeilen
2.2. Dann funktioniert Paginierung mit LIMIT und OFFSET (wie Rose)
2.3. Rose macht ein zu Beginn ein COUNT(*) um die Gesamtmenge zu ermitteln,wir merken uns das nach dem ersten Query
Der Mengenfilter kann schlecht in SQL integriert werden wegen Einheitenumrechnung (eventuell später noch eine PSQL Funktion einbauen)
Moritz Bunkus [Wed, 18 Jan 2017 11:42:23 +0000 (12:42 +0100)]
jQuery-resetForm() anstelle von selbst geschriebenem Reset-Code nutzen
Unsere bisherigen Reset-Implementationen haben die Inputs alle auf leer
gesetzt. Die Standard-Reset-Routinen der Browser setzen die Inputs
allerdings auf ihren Zustand zurück, den sie beim Laden hatten, was auch
mehr Sinn ergibt.
Der Funktion $::form->redirect kann eine Nachricht übergeben
werden. Diese wird bisher nur dann angezeigt, wenn es keinen
aufzurufenden Callback gibt. Gibt es einen Callback, verschwindet die
Nachricht bisher im Nirvana.
Mit dieser Änderung wird die Nachricht im Flash gespeichert. Damit
besteht zumindest eine Chance, dass die nachfolgend angezeigte Maske die
Nachricht auch anzeigt, sofern sie den Flash einbindet. Da das
langfristig eh alle Masken machen sollen, ergibt diese Übergabe auch
jetzt schon Sinn.
Moritz Bunkus [Tue, 17 Jan 2017 16:26:29 +0000 (17:26 +0100)]
Hintergrundjob zum Schließen bei geschlossenen Aufträgen verlinkten Projekten
Der Job ist per Default deaktiviert. Wenn eine solche Funktionalität für
eine Installation benötigt wird, so muss der Admin manuell einen
Hintergrundjob dafür anlegen.
Der Funktion kann man eine spezifische Action mitgeben, damit ein Button
mit der Action anstelle des normalen Zurück-Buttons angezeigt wird. Es
gibt allerdings (schon lange?) keinen einzigen Aufruf mehr, der dieses
Feature »Action übergeben« nutzt.
Daher wird es hiermit entfernt.
Im Umkehrschluss gibt es keine Situation, wo der Zurück-Button nicht
angezeigt werden soll. Daher wird auch dieser Parameter entfernt.
Jan Büren [Mon, 16 Jan 2017 11:03:18 +0000 (12:03 +0100)]
SelfTests: check_overpayments verbessert
i)
chart_link muss nicht mehr über JOIN chart c c.link mit der
acc_trans vereint werden
ii)
Der Test hat keine sinnvollen Daten an den Benutzer zurück-
gegeben. Jetzt wird die Kunden- und die Rechnungsnummer gemeldet
iii)
Die Datenmenge nach aktuellem Geschäftsjahr zu filtern ist ent-
sprechend angepasst (aktuelle Zahlungen -> Analyse aller vorhergenden
Daten (trans_id) unabhängig vom Zeitraum).