kivi.js: CKEditor macht platz für Toolbox, …
wenn das Platzhalter-Element die Klasse 'texteditor-space-for-toolbar'gestezt hat.
kivi.serialize - javascript flatten
kivi.js: Helfsfunktion zum Formatieren eines JS-Calls als CURL-Aufruf
Nützlich, wenn man mehrfach von der Kommandozeile aus eineController-Funktion aufrufen will, ohne jedes Mal zur Maus greifen zumüssen. Aufruf grob so:
var data = $('#form').serializeArray();...
ckeditor: Rechtschreibprüfung des Browser aktivieren
MaterialComponents: Materialize modals als Ersatz für kivi.popup_dialog
Mobile: js refactored und datepicker übersetzt
ClientJS: Funktion zum Setzen der Cursorposition (z.B. in textareas)
L/P.select_tag: Unterstützung für Text-Filter
Gedacht für Selects mit size="123"-Attribut, die also als Liste undnicht als Combobox gerendert werden.
Es wird direkt oberhalb der Select eine Text-Eingabezeile angezeigt,die als dynamischer Filter für die Optionen verwendet wird. Bei jeder...
kivi.js: kivi.save_file und client_js binding
(cherry picked from commit f68ea953a6a563172f12991d2ca3f9f17ad89dd2)
Validator: time - striktere Prüfung und tests
Validator: time
js: tab-widget cookie ignorieren wenn url hash vorhanden
Unter bestimmten umständen funktioniert das direkte Springen auf einenTab sonst nicht.
kivi.js: Und den wirren "00" Sonderfall auch wiederhergestellt
kivi.js: parse_date füllt fehlende Werte aus aktuellem Datum auf
. -> heute.. -> heute..2016 -> heutiger Tag im Jahr 20016
kivi.Validator: Jahreszahlen mit mehr als 4 Stellen ablehnen
Das ist in der Praxis mehrfach vorgekommen. Ja, theoretisch ist der18.10.20017 ein korrektes Datum. In der Praxis ist es zu 100% einVertipper.
kivi.Validator: Spezialbehandlung von 0 für heute wieder hergestellt
kivi.Validator: validate_all muss Ergebnis auch zurückgeben
kivi.Validator: check_right_[number|date]_format entfernt
kivi.Validator
kivi.js: parse_amount darf "00" nicht ablehnen.
kivi.js: parse_amount und parse_date quirks
- Parsing von 1,2,4,6,8-stelligen Daten ohne Separator- Parsing von yyyy-mm-dd Format ohne Separator- Parsing von 0-Präfixen bei Zahlen
CustomerVendor Picker: auf prototype Picker umgestellt analog zu Part
CKEditor: Fixes für texteditor in popup_dialog
- data field kanonisch auf data('ckeditorInstance') geändert- jQuery style $.ckeditor hooks auf editor.on('loaded') geändert, der Adapter unterstützt kein inline- mehrfachinitialisierung unterbunden- selectall und focus Funktionalität in zwei Funktionen getrennt...
CKEditor: inline_resize plugin
AreaInputTag: kleines Icon neben Input zum Umschalten auf Textarea
In Masken, in denen es keinen »Erneuern«-Button gab (neuerArtikelcontroller), hatten die Benutzer*innen somit auch keineMöglichkeit, aus dem normalen Input eine Textarea zu machen. Dies hier...
kivi.popup_dialog: Dialog vor »custom close function« schließen
Wenn die »custom close function« den Dialog im DOM verschieben möchte,so macht sie das mit $dlg.remove().appendTo('#new_parent_id'). Dabeigeht aber die Dialog-Initialisierung flöten.
Wird also erst anschließend $dlg.dialog('close') ausgeführt, so hagelt...
kivi.run: leeres Array (keine Argumente) nutzen, wenn args nicht übergeben wird
kivi.js + kivi.Part.js: reinit_widgets verschoben
PartPicker von autocomplete_part.js nach kivi.Part.js verschoben
kivi.parse_amount: bei ungültigen mathematischen Ausdrücken 0 zurückliefern
Ansonsten würde eine Exception geworfen, was ein anderes Verhalten alsbei der Perl-Variante wäre.
kivi.parse_amount: bei ungültigen Zeichen 0 zurückgeben
Es werden nun nur noch mathematische Zeichen erlaubt.
kivi.validate_form: generische Formvalidierung anhand von data-Attributen an Elementen
kivi.js: Funktion zur Prüfung, ob mindestens eine Checkbox gecheckt ist
Kann benutzt werden, um Prüfungen vor Submits zu realisieren.
Revert "kivi.call_jquery: Funktion zum Aufrufen beliebiger jQuery-Funktionen"
Dies nimmt Commit 8c93869920ec0bf012a0f59175b39449c90a4d1f zurück. Warkein schönes Design, und die Aufrufer wurden bereits auf andereInterfaces umgestellt.
kivi.call_jquery: Funktion zum Aufrufen beliebiger jQuery-Funktionen
An vielen Stellen schicken wir vom Backend aus nur die Namenaufzurufender JavaScript-Funktionen an den Browser. Der sucht dann dieauszuführende Funktion mittels »kivi.get_function_by_name« aus dem...
kivi.history_back: wie history.back() aber über kivi.get_function_by_name auffindbar
kivi.submit_form_with_action: fügt Hidden-»action« mit Wert zu Form hinzu & submittet
Zuerst werden alle existierenden Inputs namens »action« entfernt, damitsich die Inputs nicht ins Gehege kommen. Anschließend wird ein neuesHidden namens »action« mit dem übergebenen Wert erstellt, der Form...
kivi.js: alle jshint-Warnungen beseitigt & auf strict umgestellt
kivi.detect_duplicate_ids_in_dom: Funktion zum Auffinden doppelter IDs im DOM
kivi.popup_dialog: neuer Callback »load« nach erfolgreichem AJAX-Laden des Inhalts
kivi.popup_dialog(): übergebenen close-Handler auch ausführen
Die Funktion kivi.popup_dialog() installiert ihren eigenenclose-Handler, um den in dem Moment noch vorhandenen Dialog zuentfernen (sofern der Dialog aus HTML-Code erzeugt oder von einer URLnachgeladen wurde) bzw. zu schließen (sofern ein vorher bereits im DOM...
JS: fehlende Klammern bei Konstruktor-Aufruf gefixt (von jshint)
JS: einige Scope-Fehler gefixt (von jshint)
Variablengültigheit hängt nicht von {} ab, sondern gelten immer für dieganze Funktion. Daher ergibt mehrfachess »var xyz« innerhalb einerFunktion keinen Sinn.
Project: Picker in reinit_widgets registriert
kivi.js: Support für jQueryUI-ToolTips wegen ToolTipster entfernt
Siehe Commit c0713b6. Damit nur ein ToolTip-System genutzt wird, und dajQueryUI-ToolTip bisher nirgends in Templates verwendet wird, fliegt nunder Support aus kivi.js. Grund ist auch, dass jQueryUI-ToolTip kein HTML...
wzToolTip durch jQuery ToolTipster ersetzt
wzToolTip hat ein uraltes, ist in der Benutzung ausgesprochenunkomfortabel und unflexibel und muss zwingend in jedem benutzendenTemplate manuell nach dem <body>-Tag eingebunden werden. Dadurch kannes z.B. nicht im Layout mit ausgegeben werden.
kivi.js: format/round/parse_amount, format/parse_date
kivi.js: popup_dialog unterstützt jetzt auch params.html
Neues Feature: Chartpicker
Praktisch komplett analog zum Partpicker, danke Sven für diePionierleistung!
Es gibt natürlich ein paar Unterschiede bei den Filteroptionen, z.B.kann man im Popup nur bebuchte Konten anzeigen lassen, oder dieErgebnisliste nach der Kontenart einschränken. Es wird auch immer nur...
CustomerVendor: Picker nach Art von PartPicker
- reinit_widgets fähig- Tab und Enter atomar- unterstützt onChange und set_item:CustomerVendorPicker trigger- unterstützt fat_set_item
Verkaufs-/Einkaufsmasken: HTML in Langtexten nutzen
kivi.js: ckeditor über Klasse »texteditor« nutzen können
Refactor: init_tabwidgets() in kivi-Namespace verschoben
Pflichtenheftitems & -textblöcke: Tooltips im Baum mit Inhaltsauszug anzeigen
kivi.reinit_widgets(): lokale Funktion local_reinit_widgets() aufrufen, wenn existent
kivi.popup_dialog(): Unterstützung für bereits existierende DIVs
Damit muss kein AJAX-Call mehr gemacht werden, sondern man kann denDIV initial versteckt rendern und dann beliebig oftanzeigen (öffnen)/verstecken (schließen).
JS-Setup: kivi.reinit_widgets() nutzen und dort Controls nur einmalig initialisieren
ClientJS: neue Funktionen "run()", "run_once_for()"; Dokumentation
ClientJS: AJAX-Form-Submit mit jQuery-Form-Plugin
kivi.popup_dialog: auf jQuery UI basierende Popupdialoge
kivi.js: Funktion zum Auffinden von Funktionen über ihren Namen
Funktioniert sowohl mit globalen Funktionen als auch mit solchen inNamensräumen (Objekten):
var func = kivi.get_function_by_name("kivi.t8");
ClientJS: automatisch Date- und Partpicker nach AJAX-Request initialisieren
JS-Übersetzung immer in HEAD laden
JS-Übersetzung: Fehlermeldung unterdrücken und nur eine Abfrage am Stück zulassen
JS-Übersetzungen in den js-Ordner verschoben (Teil 2)
scripts/locales.pl um JS-Übersetzung erweitert