ullia

textdarstellung der historie

textdarstellung der historie

  • ulliaLinkList, sqlQuery_tabDefRows, output-tags, datetime-local-with-seconds / UlliaCron

    25.02.2024

    Neu

    • ulliaLinkList
    • sqlQuery_tabDefRows
    • datetime-local-with-seconds:
      neuer datentyp: analog zu datetime-local jedoch mit Sekundeneingabe (wird über das step=1 Attribut geschaltet)
    • UlliaCron: Cron-Parser
        using('Cron4Ullia/ulliaCron');
        $cron = ulliaCronExpression ($cronExpression);
        $dueDate = $cron->getNextDueDate($referenceDate, $nthDueDate, $allowDueDate, $timeZone);
    • output-tags:
      in dataOptions kann nun mehr als ein html-Render-Tag definiert werden.
      Beispiel
        dataOptions=tag_pre rendert das HTML pre Element,
        dataOptions=tag_pre/strong/i/u rendert das HTML pre, strong, i und u Element,

    Projekt seit längerer Pause wieder verwendet

    11.02.2024

    Diverse Fixes

    • NullToEmptyString-Fixes

    Audio / album-art Projektabschluss

    01.07.2022

    Audio / album-art Projektabschluss

    Diverse fixes bzgl. php 8.1

    Neujahrsrelease, php 8.1 Support

    02.01.2022

    Neujahrsrelease 2022

    PHP 8.1 Support

    Sommerurlaubsrelease

    16.08.2021

    Sommerurlaubsrelease

    Bugfixes

    Jonathan -Release

    14.06.2021

    Zur Geburt von Jonathan

    Geburtstagsrelease Carl Friedrich Gauß

    30.04.2021

    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 :-)

    Gaußberg (Gaussberg) Release

    24.04.2021

    Geburtstagsrelease von Carl Friedrich Gauß (Geboren am 30. April 1777)

    Domains gaußberg und gaussberg (Am Gaußberg in Braunscheig) registriert, Wohnung erworben.

    ullia-group-ctrl / Verfeinerung ullia-insta-layout / Bugfix-Release: PushError mit #-Zeichen

    11.04.2021

    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.

    Oster-Release: Convert Secrets / Stichwortliste: highlight / ServerEntryMicroTime / insta-style/ Bugfixes

    05.04.2021

    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.

    Ullia-Version 8.0

    21.03.2021

    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

    Serverumzug

    14.03.2021

    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

    Neujahrs-Release: erste Anpassungen für Vorbereitung auf PHP-8.0

    01.01.2021

    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.

    Summerholiday-Release: Manifest-Configurator

    16.08.2020

    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.

    component_datalist: type_ -Option

    07.06.2020

    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.

    webauthn / ullia_manifest_utils / ulliaPictureImageBuilder_utils

    24.05.2020

    21. Mai 2020

    Neu:

    • webauthn 
    • ullia_manifest_utils
    • ulliaPictureImageBuilder_utils

    inputmode: getColDefInputmode, autocomplete: getColDefAutocomplete

    17.05.2020

    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


    getColDefAliasName, getColDefKeyName

    26.04.2020

    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

    fieldset-Container: neuer Coldef-Type / javascript (client): neue PushServerMessage /sql_excecute_delete

    19.04.2020

    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.

    Security Hheader: X-Frame-Options, X-Content-Type-Options / darkmode_force-color-scheme_dark

    13.04.2020

    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



    Trace-Table PushTraceToTable / Get-, Has- und SetTraceMessageOptions / copy codeBehind

    11.04.2020

    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



    line-clamp / autocomplete="new-password" / autocomplete-autofill / Webauthn mit Fido2 unter localhost verwenden

    31.03.2020

    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: chrome://flags/#allow-insecure-localhost
    • Weitere Lösungsideen und Ansätze:
      • https://letsencrypt.org/docs/certificates-for-localhost/chrome://flags/#allow-insecure-localhost

    IsRedirActivatorControl / RewriteRule root / ulliaAuthFido2 / userSelect-none_controlLabels / slideout-footer / SYSTEM_SECURITY erhöht

    31.03.2020

    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

    SELECT *+ / hasHashValue, getHashValue / SKIP_TABDEF_EQ_CHECK / Bugfix ID-11: omRes_setProprietaryPrefix

    15.03.2020

    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.

    Release Sigrid: SubstitudeBetween / Helper-Funktionen / Refactoring / sql_select_as_htmlTable: renderOptions=tableHeadVertical / app-resources

    15.03.2020

    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