ullia

changeLog

changeLog

fullScreen ulliaChangeLog
Page 13 of 17, Zeile 241-260 von Treffern, Gesamtzeilen 323
idx
 
241-260 von , tab_totalLength: 323
241 243 6.2.n 01.04.2017 "Enter CarNet Release": Neu: carNet-Style TAB- & Wizzard Style / appGroupLogin: Auswertung von pageBodyClass 1. April 2017 Neu: Car-Net-Style : Layout carNet inkl. abgerundetem TAB- / Wizzard- Style. appGroupLogin-pageBodyClass : Die Auswertung von pageBodyClass ermöglicht nun auch die Style-Individualisierung bem "appGroupLogin".  
242 244 6.2.o 23.04.2017 genericValues: -BtnSelfPerform- / Domain-update: mediamueller / Erweiterung baseLayout & baseApp, baseLayoutList, baseAppList () 22. April 2017 Neu: genericValues : BtnSelfPerform umbenannt in -BtnSelfPerform- , hiermit verschwindet der unzutreffende Hinweis auf die Verwendung von SelfPath beim editieren von Richedit-Texten. Domain-update: mediamueller auf aktuelle ullia-Version gehoben. Erweiterung baseLayout & baseApp : in der webconfig kann der default-style sowie die default-app als csv-liste definiert werden. Der erste Eintrag ist wie bisher der Wert welcher für die Erstinitialisierung sowie dem reset verwendet wird. Über die oprionalen weiteren Werte können allgemein zur Verfügung stehende Werte angegeben werden. baseLayoutList : Liefert die Liste der verfügbaren Basis-Styles baseAppList : Liefert die Liste der verfügbaren Basis-Apps  
243 245 6.2.p 14.05.2017 Renderconditions: hasUrlParameter, urlParameterKey, urlParameterKeyVal / treeview_data_from_json, treeview_data_from_array / clientId für radioList und checkboxList / specialPageBehaviour: kein Aufruf im Config-Mode (ulliaSys_isConfigEditMode) 14. Mai 2017 Neu: Renderconditions: hasUrlParameter, urlParameterKey, urlParameterKeyVal treeview_data_from_json: Json-String treeView-conforme Eingabedaten wandeln. treeview_data_from_array : Array treeView-conforme Eingabedaten wandeln. clientId für radioList und checkboxList Hierbei erhalten die  Listen-Elemente die ID " clientId_ n " mit n = 0,1,2,... ulliaSys_isConfigEditMode : Die neue Body-Class ulliaSys_isConfigEditMode wird gesetzt, wenn der State IsInEditMode oder u_configuration_mode gesetzt ist. specialPageBehaviour: keine Ausführung im Config-Mode. Hintergrund wenn in einem HTML-Content-Element ein Script-Tag enthalten ist wielches   specialPageBehaviour aufruft und dieses beispielsweise eine "autosubmit"-Action auslöst, dann kann das Element ggf. nicht mehr im Browser editiert werden. Daher werden ab Version 6.2.p specialPageBehaviour- Script-Calls nicht aufgerufen wenn wenn die Body-Class ulliaSys_isConfigEditMode gesetzt ist.
244 246 7.0. 26.05.2017 UTF-8 Support 26. Mai 2017 Ullia 7.0: UTF-8 Support Neu und grundlegend verändert: UTF-8, ohne BOM, Line-Endings: Unix Utf-8: Mit der Ullia-Version müssen alle Dateien im UTF-8 Format gespeichert werden. Hiermit unterstüzt Ullia internationale Zeichensätze. Beim Speichern von Ullia-Datein während der Entwicklung ist zukünftig darauf zu achten dass alle Dateien im UTF-8 Formant ohme BOM (Byte Order Mark) und die Zeilenenden im UNIX-Format (/n) gespeichert werden.
245 247 7.0a 03.06.2017 setBodyClassKeyValue / GEOIP / image-resizer: transparent png- & gif- support / setUserLocale/ strftime_utf8 / treeViewJsonCtrl / PushRawContent 03. Juni 2017 Neu: setBodyClassKeyValue: Analog zu setStateKeyValue kann hiermit eine Liste von BodyClasses gesezt werden. Wird unter data kein Wert angegeben, dann wird als ClassName der Name des Controls verwendet. GEOIP: Auslesen der vom Webserver bereitgestellten GEOIP Daten (falls vorhanden). Die Daten werden in Form eines JSON-Strings zurückgegeben. image-resizer : transparent png/gif support: Neben jpeg werden ab Ullia-Version 7.0a auch transparente png- und gif-Bilder unterstützt. strftime_utf8 : Hilfsfunction zum Konvertieren nach UTF-8   utf8_encode(strftime (format, timestamp)) setUserLocale : setzt das "locale" . Wird aktuell in Ullia nur für die Zeit-Ausgaben über strftime / strftime_utf8 verwendet. (Bildet intern auf die Funktion setlocale ab) setUserLocale(LC_TIME, 'Portuguese.utf8'); treeViewJsonCtrl : JSON-String als Treeview-Control rendern. PushRawContent : Analog zu PushInfo, jedoch ohne scanning und keine Veränderungen des gepushed-ten Contents. Hiermit können html-Schnipsel zum Testen während der Entwicklung ausgegeben werden, Beispiel:   $json = {"userLocale":"de-DE","layout":{"skin":"material-design","style":"blende-1"}};   $myCtrl = treeViewJsonCtrl ( $json, ' userSettings = div '); // Erzeugung eines Tree-View-Controls mit dem Namen " userSettings ", eingebettet in einem div -Tag   PushRawContent ($myCtrl );  // Ausgabe des controls im Message-Bereich der Anwendung.
246 248 7.0b 05.06.2017 Language: region_country (encoding_list) / colDef-Type: buttonLabelSelectorList 05. Juni 2017 Neu: encoding_list: Language: region_country (encoding_list) Tabellenname ISO-639-1_languageCodes Neuer colDef-Type: buttonLabelSelectorList : Liste von Label-Buttons, definiert über csv, dsnTab, codeBehind. Kann als scriptfreie Alternative zur radioList verwendet werden.
247 249 7.0c 18.06.2017 _level-(n)_imports, _levelMax-(n)_imports / rtrimstr / ContainsColDefSpecialChars, encodeColDefSpecialChars, decodeColDefSpecialChars / [CACHED n:suffx]-Erweiterung / sysStateKeyVal: Unterstützung auch in Templates / ullia-sdx 13. Juni 2017 Neu: _level-(n)_imports: (mindestens Level-n, Regelt den Import von CSS & JS-Dateien über den authLevel) Namenskonvention: wenn ein css-Import mit dem Präfix " _level- " beginnt, dann wird der nachfolgende Teil bis zum Unterstrich als Wert des authUserLevels gewertet. (Die Berechtigungsstufe des jeweils angemeldeten Users). Da ab dieser Version auch der Benutzer-Authentifizierungslevel In den erzeugten Links zum css-Style enthalten ist, werden nur noch _level- n imports (n=0,1,..,9) eingelesen bei denen n <= authUserLevel ist. Anwendung: eine weitere Möglichkeit zu Reduzierung von ausgelieferten Styles, welche z.B. bei nicht authentifizierten Usern (Level 0) unnötig wären. Beispielsweise Admin-Styles zum Bearbeiten / Konfigurieren der Anwendung. Realisierung: Erweiterung der Testfunktion "omRes_MustImportFile" um den zusätzlichen Parameter authUsrLvl _levelMax-(n)_imports (Analog zu _level-(*)_imports): ein mit _levelMax- beginnender Import-Dateiname wird nur importiert wenn der Benutzer höchstens den entsprechenden authUserLevel hat. Hiermit kann auch erreicht werden dass nur Styles importiert werden die exakt für einen authUserLevel oder Level-Bereich bestimmt sind. (Beispielsweise kann ein Import genau für User mit authUsrLvl= 5 erreicht werden, wenn eine Improt-Datei mit dem Namen _level- 5 _exakt.css erstellt wird, in welcher die Zieldatei _levelMax- 5 _importe.css importiert wird (funktioniert auch umgekehrt). rtrimstr : Nützliche Hilfsroutine: Analog zu rtrim schneidet rtrimstr ein ganzes Wort am Ende eines übergebenen Strings ab. (Erweiterung von rtrim, welches nur ein einzelnes Zeichen am Ende abschneidet). Anwendungsbeispiel: Entfernung von .html-Suffix am Ende von URL's:   url=http://..domain../page?key1=val1&key2=val2.html   trimstr(url, '.html') liefert http://..domain../page?key1=val1&key2=val2 ContainsColDefSpecialChars , encodeColDefSpecialChars , decodeColDefSpecialChars : Hilfsfunktionen zum codieren von geschützten ColDef-Trennzeichen (&,=,|), aktuell nur das & (ampersand) Verwendung für href-Parameter in _data - ColDef Controls wie z.b. im href-link ./a=b & c=d sysStateKeyVal: Unterstützung auch in Templates : Anwendungsfall: Beim Rendern von Bildergalerien kann mit Hilfe von gesetzten State-Variablen das Template dynamisch angepasst werden. Hiermit ist es sehr einfach möglich z.B mit Select-Boxen Bildgrößen auswählbar zu machen. [CACHED n:suffx] -Erweiterung: Der aus dem SELECT gebildete Cache-Key kann nun optional mit einem Suffix erweitert werden. Anwendungsfall: Wenn via SELECT [CACHED n] ein Template verwendet wird, welches via neuer sysStateKeyVal-Unterstützung dynamisch verändert wird, dann zieht die Änderung erst nachdem die Cache-Zeit n abgelaufen ist. Neu: hinter der Zeit kann durch einen Doppelpunkt getrennt noch ein Cache-Suffix angebeben werden. Dieser sollte dann komma-separiert alle im dynamisch verwenden sysStateKeyVal's enthalten. Beispiel: Template welches den Wert der States size und option verwendet. SELECT [CACHED 12 :sysStateKeyVal_size_,sysStateKeyVal_option_ ] ullia-sdx: Anlage einer Struktur zur Vorbereitung der zukünftigen Möglichkeit zum sicheren Austausch von Daten Stichwort SDX: (Secure Data Exchange)
248 250 7.0d 25.06.2017 Feature-Branch (experimentell): dbg_splitSection_getArrayVal: debugging enabled / splitSection, splitSection3 / getArrayVal 25. Juni 2017 Neu: debugging enabled: Anpassung der Entwicklungsumgebung zum Debuggen der Projekte: getArrayVal : Sicherer Zugriff auf Arrays, falls der key nicht vorhanden ist, wird der Default zurückgegeben. splitSection, splitSection3 : Anzalog zu explode(2), explode(3), jedoch sicher und mit defaults für nicht vorhandene Bereiche
249 251 7.0e 27.08.2017 Holiday-Release "CWP": DbDsnTabAccessGrant / IsInCsvChooseList 27. August 2017 Neu: HasDbDsnTabAccessGrant: neue webconfig Variable g_dbAccessGrantList zum Prüfen von Zugriffsrechten auf abweichende Datenbank-Domains. Beispiel: g_dbAccessGrantList = other DSN :other TAB @other DOMAIN , other DSN2 @other DOMAIN2 , @other DOMAIN3 '; Hier kann auf   alle Tabellen und Datenbanken der otherDOMAIN3   alle Tabellen der Datenbank otherDSN2 der Domain otherDOMAIN2 sowie auf   die Tabelle otherTAB der Datenbank otherDSN der Domain otherDOMAIN zuegriffen werden. IsInCsvChooseList : Analog zu IsInCsvList: hier wird nur der key vor dem Doppelpunkt berücksichtigt. Hintergrund: im Control radioList wurde "key" nicht in der Liste ",key:name" erkannt und somit _SELECT_FIRST_ITEM_ gesetzt, Das führte dazu dass das erste Element dann ans ende der Liste angehängt wurde und somit doppelt erschien.
250 252 7.0f 03.09.2017 RenderCondition: sysHasBodyClass / hasMessageLevel: allowedCondition / hasColDefClientId 3. September 2017 Neu: sysHasBodyClass: neue Rendercondition sysHasBodyClass_ geprüft wird ob hasBodyClass des classValues true ergibt Beispiel : sysHasBodyClass_u_clientstorage liefert true wenn hasBodyClass("u_clientstorage") true ergibt hasMessageLevel : wenn der erste Parameter nicht numerisch ist, dann wird dieser als authCondition ausgewertet. Hiermit kann zum Beispiel im zusammenspiel mit bodyClass-Paramtern die Ausgabe von Informationen gesteuert werden. Beispiel 1:   PushInfo("Eine Textinfo", 'sysHasBodyClass_showTextInfo');   Der Text wird nur ausgegeben wenn die BodyClass "showTextInfo") gesetzt ist Beispiel 2:   PushInfo("Einen schönen guten Dienstagmorgen", 'epoch_Dienstag [AND] epoch_Vormittags');   Der Text wird nur dienstags am Vormittag ausgegeben   hasColDefClientId: Neue ColDef-Hilfsfunktion zum abfragen ob für ein Control eine spezielle client-id gesetzt ist. Fall ein * (Stern) als Client-ID gesetzt ist, dann wird eine eindeutige ID erzeugt (gleiches Verhalten wie bei nicht gesetzter Client-ID. Verwendung: das Control buttonList rendert standartmäßig keine ID, da keine Vernüpfung mit einem zugehörigen label vorhanden ist (im Gegensatz zu buttonLabelList). Wenn dennoch eine ID gerendert werden soll, dann kann das durch ein Stern oder einen eindeutigen Wert im colDef-Parameter _clientId die Generierung forciert werden.
251 253 7.0g 24.09.2017 colDefType: linkListSelector / httpStatusCodes / http_status_info 24. September 2017 Neu: linkListSelector: neuer colDefType: linkListSelector (erste Alpha-Version) analog zur radioList und dem buttonSelector, wird hierüber mittels "selfPerform-Links" der Zusand des Controls gesteuert. Zweck: ohne Javascript kann mit Hilfe von GET-Request der Zustand manipuliert werden (Suchmaschinentauglich). httpStatusCodes : Tabelle welche zu dem HTTP-Statuscode eine message sowie einen comment enthält. Mit dem neuen Modul " http_status_info " stehen Hilfsmethoden print_httpStatus_info(statzsCode) sowie get_httpStatus_message (httpCode, &cmnd) zur Verfügung mit denen der statusCode entsprechend mit einem Text versehen kann.
252 254 7.0h 03.12.2017 Session: Persist-Options / sysPreferSSL 03. Dezember 2017 Neu: Session: Persist-Options ( Security und Sessiongröße) : Neu:  über die web-config kann mit dem Wert g_sessPersistOptions der Inhalt der gespeicherten Sessionwerte gesteuert werden (CRPT=verschlüsselt, GZ=Komprimiert, SEC=in Abschnitten abgelegt) CRPT beinhaltet GZ, SEC kann on-top verwendet werden. Ohne den Wert verhält es sich wie bisher. Für die Realisierung wurde das neues Modul authSysSessionPersist mit zwei Methoden sysSaveSessionData und sysReadSessionData erzeugt. sysPreferSSL : Neu in webconfig über den Systemwert sysPreferSSL kann generell die ssl-Verbindung für alle Seiten als Präferenz angegeben werden. Hierdurch werden auch public-pages über ssl ausgegeben wenn der Anwender noch nicht authentifiziert ist.
253 255 7.0i 31.12.2017 Sylvester-Release: E_CHECK_COOKIE fix / contactForm-basic feed / sysCommand_pagePath_ 31. Dezember 2017 Neu: E_CHECK_COOKIE: Fix: Änderung: buttons und capture forcieren nun ebenso wie bisher password eine sichere SSL-Verbindung (forcePageSSL (true)). Hierüber verschwindet die Post-Meldung E_CHECK_COOKIE. sysCommand_pagePath_ pathInfo-href : Pages vom Type sysCommand_pagePath verwenden nun direkt den hinter pagePath angegebenen href-Wert, sodaß ein Klick auf diesen Wert direkt zum href zeigt. Hiermit kann z.B. aus dem fastlink-Menu auf ein Kontaktformular der Hauptnavigation verwiesen werden. (Hinweis: im Konfigurationsmodus wird der Original-Link verwendet, sodaß so die ursprüngliche Seite bearbeitet werden kann. Hinweis / Tipp: Über den pageContentType " contactForm-basic " kann sehr einfach ein Kontaktformular generiert werden. Zur vollen Funktionalität wird hier noch ein feed-Template benötigt (contactEmailFeed). Dieses wird in ExpertConfig im Feld rendertemplate eingetragen (Beispiel: detail_contentPagesDetail,  feed_contactEmailFeed ) Das Template enthält die Form-Namen und dient somit als E-Mail Vorlage zum Versenden. Inhaltsbeispiel: Aus dem Kontaktformular [ =AppName= ] ([ =LastModifiedDate= ], [ =LastModifiedTime= ], [ =ReleaseInfo= ]) [ =HttpAbsolutRoot= ]/[ =MetaLanguage= ]/[ =SelfPath= ] ======================== [ =c_courtesytitle= ] [ =c_firstname= ] [ =c_lastname= ] ([ =c_email= ]) [ =c_subject= ] c_courtesytitle: [ =c_courtesytitle= ] c_firstname: [ =c_firstname= ] c_lastname: [ =c_lastname= ] c_email: [ =c_email= ] c_subject: [ =c_subject= ] c_mailtext: Des Weiteren existiert ein Button mit Data-Action sendContactData. Dieser sorgt dafür dass die Werte des Formulars als Mail mit dem feed-Template verschickt werden. Nach erfolgreichem E-Mail Versand wird in der Form ein subNav-Element gesucht, welches dann angezeigt wird.
254 256 7.0j 04.02.2018 imgTag / selectboxList / subFormControlsList / customRenderAddBaseControl 04. Februar 2018 Neu: imgTag:  HTML-Image-Control, unter ColDef-data wird die src via dataProvider bereitgestellt selectboxList : Liste von HTML select-Boxen, definiert über zwei SQL-SELECT Statements; Semikolon separiert. (Inspiriert von matrixControls ) subFormControlsList : Liste von subFormControls customRenderAddBaseControl : Erweiterung auf nicht in sich verteilbare controls (erster unvollständiger Prototyp)
255 257 7.0k 11.02.2018 SELECT [UNESCAPED] / applySysStateKeyVal_data / serialize_subFormControls / serialize_subFormControlsList 11. Februar 2018 Neu: SELECT [UNESCAPED] : Schlüsselwort zum Abschalten vom Escape in kommaseparierten Listen innerhalb des key-Wertes eines Elements. Anwendung: Wenn z.B. eine checkboxList aus einem Inhalt eines Tabellenwertes erzeugt werden soll und diese bereits aus einer kommaseparierten wie   eins,zwei,drei Liste besteht, dann würde durch das standardmäßige escaping hieraus    eins+#44;zwei +#44 drei entstehen und somit anstatt der erwarteten drei checkboxen lediglich eine mit dem escaped-ten Wert erzeugt, Durch Verwendung des neuen Schlüsselwortes [UNESCAPED] werden drei checkboxen erzeugt. applySysStateKeyVal_data : Anwendung von sysStateKeyVal_ KEY_NAME - Variablen in Templates serialize_subFormControls / serialize_subFormControlsList : Serialisierung aller definierten Daten-Controls
256 258 7.0l 18.02.2018 getAppStateValue / Bugfix RedirLoopCount 11. Februar 2018 Neu: getAppStateValue (key): liest den Wert von sysStateKeyVal_key_ Bugfix: RedirLoopCount: Zur Vermeidung von Endlos-Redirects existiert in ullia ein Zähler für aufeinanderfolgende Redirects welcher auf einen maximalen Schwellwert (aktuell 12) prüft. Wenn der Schwellwert überschritten ist wird die technische Fehlermeldung "E_MAX_REDIR_LOOP" ausgegeben und im nächsten Response keine Redirect-Anweisung ausgeliefert. Zum Zurücksetzen des Zählers wurde ab Version 7.0l in Post-Request welche durch eine Button-Action ausgelöst wurden mit Hilfe des Befehls delSysState ('RedirLoopCount'); dieser Zähler zurückgesetzt (Erweiterung im Modul "preparePostButton"). Hintergrund: Wenn sich beispielsweise zwei Seiten mit Hilfe des Button-Typs (button_redirect) gegenseitig "verlinken" wurde der Zähler stetig hochgesetzt, obwohl der nach jedem Redirect auf die jeweilige Seite keine automatisch Weiterleitung auftritt. Der Zähler kann somit bei jeder aktiven Betätigung eines Buttons zurückgesetzt werden.
257 259 7.0m 01.07.2018 excelExportUtils 01. July 2018 Neu: excelExportUtils: excelSqlExport($sql, $path=''); exportiert die Daten einer Tabelle als Textdatei
258 260 7.0n 29.07.2018 epoch_codeBehind-Edit / buttonRedirect (codeBehind) / templateDataRenderer 29. July 2018 Neu: epoch_codeBehind-Edit: Im Konfigurations-Reiter "renderConditions" gibt es nun die Möglichkeit zum Online-Editieren von renderConditions welche durch codeBehind definiert werden zu. Zum Neuanlegen kann hier zunächst die "epoch-definition-table" um den Namen des epoch-Rechts ergänzt werden. Anschließend wird für diesen Namen ein Link zum Editieren bereitgestellt. buttonRedirect : Der redirect-Link kann auch mit codeBehind definiert werden. templateDataRenderer : ersetzt alle Stellen eines Templates mit dem Inhalt eines assoziativen Array, Syntax: {key} Bugfix: useValidation: Falls über renderCondition das Validieren abgeschaltet ist, wird nun auch keine Validierungs-Fehlermeldung angezeigt. css-class "xOnEvent": auskommentiert. Aufruf von checkIsValidColDefValue prüft vorab auf $authRender, hiermit wird vermieden dass bei nicht gerenderten Feldern IsValidateOK korrekt gesetzt wird. Refactoring: templateDataRenderer ersetzt cn_templateRenderer aus addons und steht somit allgemein zur Verfügung
259 261 7.0o 05.08.2018 addons: certificate-utils / subForms via json / crypt_dataUtils: Erweiterung Validierung / crypt-utils / Yubico-LIB 05. August 2018 Neu: certificate-utils: Generisches Modul (addon) zum Lesen von verschlüsselten Daten, arbeitet mit " keepSecretUnderSealWraps " :-) zusammen. Zum Erzeugen der Secrets kann crypt-utils (private-ullia-app) verwendet werden. subForms via json : Erster Entwurf um aus dynamisch bereitgestellten json-daten-definitionen  dynamisch Eingabemasken zu rendern. Idee: hiermit könnten Rest-Apis generisch beschickt werden. crypt_dataUtils:  Erweiterung Validierung: Decrypt prüft nun auch auf das korrekte securePwd (könnte auch als Bugfix durchgehen) Bugfix: crypt-utils : zum Korrekten verschlüsseln über die Werte der WebApp "crypt-utils: crypt-cert-key" wurde das Lesen der Werte von csvSecureKeyHash auf keyHash umgestellt. Hiermit sind nun auch Ver- und vorallem Entschlüsselungen mit Sonderzeichen-Kennworten möglich, da keyHash keine Konvertierung der Schlüsselzeichen und kein escaping vornimmt Refactoring: Yubico-LIB : Auth_Yubico-Konstruktur auf neuesten abwärtskompatiblen Stand gebracht.  -> in allen webApps muss diese neue Version eingespielt werden.
260 262 7.0p 12.08.2018 component_boolControl / Bugfix (treeView) / renderCondition HasPathQuery 12. August 2018 Neu: component_boolControl: RenderBoolCtrl verwendet selectBox mit data (true,false). Es werden alle Attribute der selectBox unterstüzt, typeSpecificFlag ergänzt die Auswahl um "Bitte wählen" HasPathQuery : renderCondition Neue Render-Bedingung: Prüft ob der angegebene PathQuery gesetzt ist. Bsp: url = https://sample-app.ullia.de/imprint/-/ Hallo :Welt Die renderCondition "sysStateKeyVal_HasPathQuery_ Hallo " gibt in diesem Fall [TRUE] zurück. Bugfix: treeView : csvTreeViewGetSubTree berücksichtigt nun auch das Pfadtrennzeichen beim Sammeln der Unterpunkte. Hiermit werden nun die Unterpunkte korrekt zusammengesammelt. Der Bug bestand darin dass zuvor 1 /submenu und 1 0/otherSubmenu fälschlicherweise als Unterpunkte von 1 zusammengefasst wurden Refactoring: