301 |
303 |
7.2.v |
15.03.2020 |
Release Sigrid: SubstitudeBetween / Helper-Funktionen / Refactoring / sql_select_as_htmlTable: renderOptions=tableHeadVertical / app-resources |
15. März 2020 Release: Sigrid Neu: app-resources: App-Spezifische ressourcen, z.B. CSS-Styles die für alle Layouts greifen sollen Aufbau und Ablageort: r/app-resources/ {App-Name} /style-css r/app-resources/ {App-Name} /images usw. Helper-Funktionen : sqlQuery_cachedMemoryRowHash: normalizeLineBreaks escapeLineBreaks normalizedEscapedLineBreaks descapeLineBreaks getRawTabDefRows: gibt den Inhalt rechts von "[tabDefRows]:" zurück . Bugfix: sqlQuery_saveCachedMemory : Handling von "NextSequenceNumber" korrigiert / verbessert Refactoring: SubstitudeBetween : vierter Parameter value ist nun optional mit Default='' (leer) Hiermit kann dann ein Bereich zwischen zwei begrenzenden Texten gelöscht werden. sql_select_as_htmlTable : Erweiterung um einen zweiten optionalen Parameter renderOptions='' (Komma-Separierte Liste mit render-Optionen). Hiermit kann mit Setzten der Option "tableHeadVertical" erreicht werden dass die Spaltenüberschriften vertikal ausgegeben werden. Temporär: component_dsnTabSubForms: (muss später nochmal per refactoring überarbeitet werden!!!) IsActivatorControl('matchedSpecialLicenseDB') IsActivatorControl('openIssues') diverse Stellen bzgl. OSO-Spezifikas |
302 |
304 |
7.2.w |
15.03.2020 |
SELECT *+ / hasHashValue, getHashValue / SKIP_TABDEF_EQ_CHECK / Bugfix ID-11: omRes_setProprietaryPrefix |
15. März 2020 Release: w (nach v wie virus Covid-19) Neu: SELECT: Mit SELECT *+ werden alle Controls einer SubForm selektiert, nur mit * (ohne +) werden wie bisher Button-Controls nicht selektiert. Hash-Array Helper Funktionen: hasHashValue (aHash, key) liefert true, wenn aHash ein array ist das den key enthält, getHashValue (aHash, key, default='') liefert falls vorhanden den Wert von aHash[key] ansonsten den default. SKIP_TABDEF_EQ_CHECK: cleanup_derived_config_values gibt nun einen evt. modifizierten tabDef zurück. Aktuell wird hiermit beim Element navType das Pflichtfeld-Attribut (_req=1) zurückgesezt, wenn der Wert des navTypes aufgrund Vererbung vom Parent entfernt wird (spart etwas Daten :-). Ohne das Entfernen des Pflichtfeld-Attributs würde ansonsten der Validator den fehlenden Pflichtfeld-Wert anmeckern. Das Änderen der tabDef-Definition wurde nun aber beim Speicher in der Routine db_update bemerkt und als Fehler E_DB_UPDATE_TABDEF:DIFFERENT_1 ausgegeben. Da db_update als letzen Parameter optional eine Liste von csvOptions kennt wurde hier für diesen zur Unterdrückung des tabDef-Different-Checks der Optionale Parameter-Wert 'SKIP_TABDEF_EQ_CHECK' eingeführt. Bugfix: ID-11: omRes_setProprietaryPrefix biem zweiten Parameter (csvPropertyList) war beim Aufruf die String-Concatenation fälschlicherweise nicht mit dem Punkt sondern dem Komma codiert. ("cssGrid , ',hyphens:'" statt "cssGrid . ',hyphens:'"). Das führte im IE-11 dazu dass als CSS-Style nur noch ,hyphens: ausgeliefert wurde. Somit gab es im IE-11 hier kein relevantes CSS und die Seite wurde ungestyled ausgeliefert. FIX: das Modul omStyleCompiler in der Version 7.2.w neu deployen. |
303 |
305 |
7.2.x |
31.03.2020 |
IsRedirActivatorControl / RewriteRule root / ulliaAuthFido2 / userSelect-none_controlLabels / slideout-footer / SYSTEM_SECURITY erhöht |
25. März 2020 Covid-19 Home-Holiday Release Neu: FIDO (Fast IDentity Online): mit der neuen Application ulliaAuthFido2 ist es nun möglich bei mit Fido2 eingerichteten Konten die schnellen und komfortablen Fido2 Login Verfahren zu nutzen. IsRedirActivatorControl : Neue Methode um den ActivatorControl - syState eines Controls abzufragen. Anwendung von IsRedirActivatorControl: Wenn z.B. durch einen Button ein Rediirect auf eine andere Seite innerhalb der App ausgeläst wird, dann kann auf der Zielseite dann bei diesem Get-Request darauf speziell reagiert werden. CSS-Style: userSelect-none_controlLabels : neue CSS-Import-Datei (kann im main-css für ein spezifisches Layout eingebunden werden) Hierdurch wird das Markieren von Text unterbunden. Hilfreich ist das bei Beschriftungen von Controls (z.B. checkbox,radio-button labels). Ohne diesen Style kann es gelegentlich vorkommen das z.B. beim Klicken eines Radiobuttons Teile der Beschriftung ungewollt markiert werden. slideout-footer : feststehender Footer, der beim Scrollen hervorkommt, aktuell eingesetzt beim Layout responsiveTOC. Bugfix: RewriteRule root: Für das korrekte Setzen von pathQuery und Querystring im Server-Root (intern sysLevelRoot ) der Ullia-Anwendungen mußte noch die RewriteRule ^-/(.*)$ ergänzt werden Erweiterungen: Diverse zusätzliche Checks beim Ausführen von System-Kommando Button-Actionen, hierdurch werden bei Buttons die nicht gemanaged sind folgende Fehler ausgegeben: E_SYSTEM_SECURITY_VIOLATION_BUTTON, E_INVALID_BUTTON_SYS_CMD E_SYSTEM_SECURITY_VIOLATION Das Ausführen der Aktion wird in diesem Fall unterbunden |
304 |
306 |
7.2.y |
31.03.2020 |
line-clamp / autocomplete="new-password" / autocomplete-autofill / Webauthn mit Fido2 unter localhost verwenden |
31. März 2020 webauthn / Fido / localhost Developement mit ullia / autocomplete Neu: autocomplete="new-password" : Bei Kennwort-Feldern (password,auth_password,passwordCrypted) wird beim Setzen der ColDef-Option autocompleteOff nun anstelle des bisherigen Wertes "off" der neue Wert " new-password " gesetzt. Hierdurch soll das Vorbefüllen mit den im Browser gespeicherten Daten verhindert werden. autocomplete-autofill : Erste Implementierung der Chrome css-Eigenschaft "autofill" zum Setzen von spezifischen Styles, setzt aktuell zwingend das Vendor-Präfix -webkit- voraus und funktioniert nur in webkit Browsern (Chrome) Verwendung: Import der CSS-Datei autocomplete-autofill_varCtrl.css Nützliche CSS-Eigenschaften: min max clamp line-clamp : Mit der webkit spezifischen css-Eigenschaft "-webkit-line-clamp" kann erreicht werden, dass nur die hiermit definierte maximale Anzahl von Zeilen eines Textes angezeigt werden. Ullia bietet hierzu den appearance_Type line-clamp an. Dieser läd das zugehörige css und setzt im Control die css-Klasse line-clamp. Der Selector wird auf alle Unterelement (.line-clamp *) Entwickler-Info's: Bei der Entwicklung von Webauthn Fido2 Anmedeverfahren im Browser hat man unter localhost die Herausforderung das die Browser bei der Kommunikation eine gesicherte SSL Verbindung voraussetzen. Das Problem: Kein Zertifikat für localhost vorhanden! Mit Google Chrome kann das Problem wie folgt gelöst werden (erfolgreich getestet mit der Version 81 ): Apache auf Port 80 lauschen lassen ( Listen 80 ) Ullia local-webconfig auf konfigurieren auf g_httpRoot = 'https://localhost' in Chrome https für localhost erlauben: c hrome://flags/#allow-insecure-localhost Weitere Lösungsideen und Ansätze: https://letsencrypt.org/docs/certificates-for-localhost/chrome://flags/#allow-insecure-localhost |
305 |
307 |
7.2.z |
11.04.2020 |
Trace-Table PushTraceToTable / Get-, Has- und SetTraceMessageOptions / copy codeBehind |
11. April 2020 Oster-Samstag Release Trace-Table Neu: Trace-Table : Neue Log-Tabelle die Trace-Informationen aus den bekannten Push* Server-Aufrufen sowie aus Javascript per Ajax-Call aus debug_out zusätzlich in die neue hierfür angelegte Tabelle "traceTableLogMessages" schreibt. PushTraceToTable : neue "Push-Message" die den übergebenen Text nicht im User-Interfache ausgiebt sondern diesen nur in die neue Tabelle "traceTableLogMessages" schreibt. Get-, Has- und SetTraceMessageOptions : Lesen, Prüfen und Setzen von Trace-Message Optionen copy codeBehind : Beim Kopieren von Formular-Vorlagen (all_applications / webFormTemplates) wird nun auch die zugrundeliegende codeBehind Code mit kopiert. Hierbei wird der Modul und Funktionsname automatisch dem Ziel-Template angepasst |
306 |
308 |
7.3. |
13.04.2020 |
Security Hheader: X-Frame-Options, X-Content-Type-Options / darkmode_force-color-scheme_dark |
13. April 2020 Oster-Release Neu: appearance_tabTrapezoid-darkmode : Neu Security Header : X-Frame-Options: sameorigin X-Content-Type-Options: nosniff darkmode_force-color-scheme_dark : Neu zum Theme-Chooser hinzugefügt: darkmode_force-color-scheme_dark Hiermit kann auf Wunsch unabhängig von den Einstellungen des Betriebssystems (option: darkmode_prefers-color-scheme_dark) der Darkmode erwungen (force) werden |
307 |
309 |
7.3.a |
19.04.2020 |
fieldset-Container: neuer Coldef-Type / javascript (client): neue PushServerMessage /sql_excecute_delete |
19. April 2020 Neu: fieldset-Container : Neuer ColDef-Type Der neue Typ "fieldset-Container" erzeugt analog zum ColDef-Type "HTML-Content" ein edierbares HTML-Fragment. Initial wird dieses jedoch mit einem fieldset/legend/label HTML-Fragment vorbefüllt, wobei in label der ColDefName eingetragen ist. Anwendung : Der fieldset-Container eignet sich wunderbar um in diesem mehrere Controls mit Hilfe von Custom-Rendering via collectFrom Anweisungen zusammeln. Hierbei ist darauf zu achten das jedes eingesammelte Control selbst in einem fieldset/div Container eingebettet wird. Für eingesammelte Buttons, die in der Regel am Ende eines Fieldsets platziert werden sollen kann hierfür unter class data der Wert "/foot clear-both" angegeben werden. PushServerMessage : Neue Funktionen um vom client Messages an den Server zu senden Hierfür bestehen zwei Möglichkeiten: Einmal direkt über die Angabe des Message-Types (ERROR, INFO, WARNING,...] oder die zwei Hilfsfunktinen PushServerError und PushServerInfo . Bei PushServerMessage kann noch optional als zweiter Parameter ein authLevel angegeben werden. sql_excecute_delete : Erste einfache Unterstüzung von DELETE * FROM Die Implementierung unterstützt aktuell nur das Löschen einer einzelnen Tabellenspalte. |
308 |
310 |
7.3.b |
26.04.2020 |
getColDefAliasName, getColDefKeyName |
26. April 2020 Neu: getColDefAliasName : Neues ColDef-Attribut _aliasName. Dieses Attribut wird intern verwendet um den Alias-Namen eines "Key-Namen" zu transportieren. Anwendung : In SELECT-Statements kann der Name beim Anzeigen durch einen Aliasnamen getauscht werden. Beispiel: SELECT firstName AS MeinVorname FROM ... bewirkt das der Wert von firstName aus ener Tabelle auf der Oberfläche als MeinVorname angezeigt wird. Sowohl der Ursprungsname "firstName" als auch der AliasName "MeinVorname" kann hierbei zusätzlich noch über die i18n Tabelle weiter übersetzt werden. Nebeneffekt : Wenn auf verschiedenen Seiten der Key ein und derselben Tabellen-Spalte unterschiedlich übersetzt werden soll, dann kann hiermit auch über den AliasNamen ein separater Übersetzungsschlüssel erzeugt werden. Beispiel: auf Seite A: SELECT firstName AS firstName-Page-A ... auf Seite B: SELECT firstName AS firstName-Page-B ... getColDefKeyName : Aufgrund der Einführung von getColDefAliasName wurde die bisherige Funktion getColDefName zur besseren Unterscheidung in getColDefKeyName umbenannt |
309 |
311 |
7.3.c |
17.05.2020 |
inputmode: getColDefInputmode, autocomplete: getColDefAutocomplete |
17. Mai 2020 Neu: getColDefInputmode : Zusätzliche Renderoption für Eingabefelder, definiert über dataOptions. Syntax: inputmode={mode} mit {mode}=[text,search,tel,url,email,numeric,decimal,none] Beispiel: inputmode=tel // gibt auf dem iPhone die Telefon-Tastatur getColDefAutocomplete : analog zu getColDefInputmode kann über dataOptions das autocomplete-Attribut speziell angegeben werden Syntax: autocomplete={mode} mit {mode} = [on,off,name,honorific-prefix,given-name,additional-name,...] Kombintionsbeispiele : Email-Eingabe in einem Textfeld: input-type=text; inputmode=email,autocomplete=current-password Email-Adresse als Benutzernamen verwenden: input-type=text; inputmode=email,autocomplete=username |
310 |
312 |
7.3.d |
24.05.2020 |
webauthn / ullia_manifest_utils / ulliaPictureImageBuilder_utils |
21. Mai 2020 Neu: webauthn ullia_manifest_utils ulliaPictureImageBuilder_utils |
311 |
313 |
7.3.e |
07.06.2020 |
component_datalist: type_ -Option |
01. Juni 2020 Neu: component_datalist: type_ -Option : datalist - Controls werden standardmäßig mit dem input-type=text gerendert. Weitere html5 input-typen wie date können mit dieser Version 7.3.e nun auch mit individuellen Auswahloptionen über das datalist-Control versehen werden. Hierzu ist unter dataOptions der entsprechende type anzugeben, Beispiel type_date. Die Auswahl-Liste kann dann über den in data hinterlegten dataproviver (csv-liste, SELECT oder codeBehind) erzeugt werden. |
312 |
314 |
7.3.f |
16.08.2020 |
Summerholiday-Release: Manifest-Configurator |
16. August 2020 Neu: Manifest-Configurator : Der Konfigurator erlaubt die Auswahl des Authentication-Modes, des PWA-Display-Modes (Standalone, Fullscreen, Minimal-UI und Browser. Darüber hinaus kann das App-Icon ausgewählt und konfiguriert, sowie weitere PWA-Display-Options gewählt werden. Die Angabe des App-Namens (Short & Normal) sowie eine Beschreibung hierzu ist ebenfalls optional möglich. |
313 |
315 |
7.8. |
01.01.2021 |
Neujahrs-Release: erste Anpassungen für Vorbereitung auf PHP-8.0 |
01. Januar 2021 Neu: PHP-8.0 : Ab der Ullia-Version 7.8 wird die Unterstützung für PHP-8 vorbereitet. Serverseitig wird das jedoch vorerst noch mit PHP 7 betrieben und auf PHP-8 erst migriet wenn die lokalen Tests mit php8 erfolgreich abgeschlossen sind. |
314 |
316 |
7.8.1 |
14.03.2021 |
Serverumzug |
14. März 2021 Neu: Serverumzug : Umzug auf Ubuntu 20-Server mit PHP 8.0, Apache 2.4 (http/2, OPcache Unterstützung) Ein erster Kurztest wird über eine entsprechende Konfiguration auf die 8-ter Version über sqlStore durchgeführt. Rollback für sqlStore: auf Version 7.4: svg-history zeigt mit Version 8.0 keine Grafiken mehr an, muss daher erst noch untersucht werden. Aktuell auf Version 8 umgestellt: ullia, tmue, blende-1 |
315 |
317 |
8.0.a |
21.03.2021 |
Ullia-Version 8.0 |
21. März 2021 Bugfix: dataProviderGetStateKeyValues : Bugfix: sysStateKeyVal_ActivatorControlItem-ulliaSys_auswahl@mucke (siehe Sound-Player in ullia-guide) wurde nicht korrekt aufgelöst und führte zur Fehlerausgabe E_UNHANDLED_sysStateKeyVal & E_MAX_LOOP_COUNT_2 |
316 |
318 |
8.0.b |
05.04.2021 |
Oster-Release: Convert Secrets / Stichwortliste: highlight / ServerEntryMicroTime / insta-style/ Bugfixes |
5. April 2021 Osterrelease: Convert Secrets : Die Verschlüsselung hat sich mit der Version 8 geändert. Die notwendigen Anpassungen wurden am 25.03.2021 vorgenommen. Die Orangerie-Anteile laufen noch unter der Vorgängerversion, die Anpassungen sind aber schonmal durchgeführt und unter ..._7.4-to-8.0 publiziert insta -style: neues minimalistisches Layout, besonder für Fotogalerien geeignet. Erweiterungen: cmsGalery : Die folgenden Bild-Typen werden ab der ullia-Version 8.0.c nun in der cmsGalery unterstützt: .jpg, .png, .webp, .gif, .jpeg , (.mp4) Stichwortliste : css-apperance-class zum hervorheben (highlight) von Suchtreffern appearanceList (' ulliaSysConfigCtrl_css-selector_b.hit.css '); ServerEntryMicroTime : Zeit des Servers in Mikrosekunden, enthält den Zeitpunkt an dem der Server den Request begonnen hat zu bearbeiten. Der Wert steht als ServerValue zur Verfügung und kann somit z.B. auch in Templates und an jeder Stelle im HTML-Dokument verwendet werden Versions-Adaptierungen: SVG-Grafik : Code-Anpassungen (each: deprecated ist entfallen) um die Lauffähigkeit für PHP8 herzustellen. Bugfix: omPager : class-Attribut war zweimal im a-Tag vorhanden (für 'pagination-previous" und 'illprev'). Diese wurden in einem class-Attribut zusammengeführt. |
317 |
319 |
8.0.c |
11.04.2021 |
ullia-group-ctrl / Verfeinerung ullia-insta-layout / Bugfix-Release: PushError mit #-Zeichen |
11. April 2021 ullia Basis-Rendering:
ullia-group-ctrl : Basis-Controls wie z.B. text-Eingabefelder können gleichzeitig in Massen erzeugt werden.
Hierzu wird unter _data die gewünschte Anzahl mit dem Präfix renderCount_ eingetragen.
(für 24 Text-Eingabefelder also renderCount_ 24 ).
Die Render-Engine erzeugt hieraus eine div-Gruppe mit dem CSS-Klassennamen "ullia-group-ctrl" sowie
weitere data-Attribute wie z.B.:
data-type="text"
data-len-min="3"
data-len-max="4"
data-pattern=".{3,4}"
Diese können zum speziellen Styling der generierten Eingabefelder verwendet werden, beispielsweise können so die Felder in der Breite auf die angegebebene maximale Zeichenlänge von vier angepasst werden.
Mit CSS-Grid kann das dann wie folgt realisiert werden
.ullia-group-ctrl[data-len-max="4"] {
display: grid;
grid-gap: 4px;
grid-template-columns: repeat(auto-fill,minmax(5.2rem,1fr));
}
next ullia-insta-layout:
Verfeinerungen : Bugfix:
PushError : In Fehlermeldungen die ein #-Zeichen enthielten ging dieses verloren. Als Fix wird nun in der Fehlerdarstellung anstelle des #-Zeichens deren Mnemonik (+num;) verwendet.
|
318 |
320 |
8.0.d |
24.04.2021 |
Gaußberg (Gaussberg) Release |
Geburtstagsrelease von Carl Friedrich Gauß (Geboren am 30. April 1777) Domains gaußberg und gaussberg (Am Gaußberg in Braunscheig) registriert, Wohnung erworben. |
319 |
321 |
8.0.e |
30.04.2021 |
Geburtstagsrelease Carl Friedrich Gauß |
Geburtstagsrelease von Carl Friedrich Gauß (Geboren am 30. April 1777) Sein Denkmal steht Am Gaußberg in Braunscheig. Sein Geburtstag war auch Tag des Erwerbs der Wohnung Am Gaußberg 5 :-) |
320 |
322 |
8.0.f |
14.06.2021 |
Jonathan -Release |
Zur Geburt von Jonathan |