ullia

Änderungshistorie

Änderungshistorie

fullScreen Ullia: Change-Log: Änderungshistorie
Page 10 of 17, Zeile 181-200 von Treffern, Gesamtzeilen 325
idx
 
181-200 von , Gesamtzeilen: 325
181 183 5.8v 16.08.2015 IsValidating / IsPreparing() / IsProcessing () / handleErrors / set_security_csp('on/off'); / clientConfigDetect / SELECT FROM [FILES] 16. August 2015 Neu: IsValidating / IsPreparing / IsProcessing : Über die Methode getProcessPhase() gibt den Auskunft über die aktuelle Phase des Rendering-Prozesses. Durch die beiden neuen Methoden IsPreparing() und IsProcessing() ist es nun sehr einfach möglich innerhalb von codeBehind-Funktionen unterschiedlich auf diese Phasen zu reagieren. Die Ausführung der hinterlegten Business-Logic wird in der Phase IsProcessing durchzuführen. IsPreparing kann genutzt werden um die Eigenschaften des Controls vorab zu manipulieren, so können beispielsweise die Renderoptionen eines Control währendn der IsPreparing-Phase noch geändert werden. Anwendungsbeispiel für IsPreparing: Postleitzahlen sind je nach Land sind vier oder fünstellig einzugeben. In Abhängigkeit einer zuvor getroffenen Landesauswahl kann nun die maximale Länge des Postleitzahlenfeldes über die codeBehind Funktion auf vier oder fünf angepasst werden. handleErrors : Wenn in der Validierungsphase ein Fehler festgestellt wird, werden die Controls mit der phase handleErrors durchlaufen. set_security_csp(val) : Benutzerspezifisches ausschalten (val='off') der Content Security Policy (authLevel_7 notwendig). Alle anderen Wert ungleich off schalten CSP ein. galeryImageFileList : Neuer ColDef-Datentyp : ließt die Bilder eines Verzeichnisses aus. Dieserr Typ ist durch eine bessere und generellere Art und Weise gleich wieder ersatzlos gestrichen worden (siehe unten: SELECT [DIRECTORY] clientConfigDetect : Die Erkennung des Browser stützt sich neben dem Verfahren mit der Tabelle clientConfigDetect nun im zweiten Step auch auf das Parsen der Versionsnummer aus dem userAgent. Hierdurch wird das ständige erweitern der clientConfigDetect-Tabelle bei Browserversionserhöhungen vermieden. Für spezielle Settings von einzelnen Browserversionen kann durch einen Eintrag in die Tabelle nach wie vor eine abweichende Einstellung vorgenommen werden. SELECT FROM [ DIRECTORY ] : (Änderung [FILES] ) Erweiterung des SQL Parsers. Dieser versteht nun auch die Syntax zum Scannen von Dateien in Verzeichnissen. Da der Dataprovider auch den SQL-Parser verwenden kann, ist somit möglich hierüber die gelesenen Dateinamen als Datenlieferant von ColDef-Typen wie radioList, checkboxList, dataTableList, usw. zu verwenden. Durch Definition eines geeigneten Templates kann darüber hinaus sehr einfach und elegant eine spezifische Ansicht dieser Daten gerendert werden. Eine praktische Anwendung ist das Anzeigen von Bildern aus einem Verzeichnis. Mit dem folgenden SQL werden acht Bilder aus dem Verzeichnis "bilder/testordner" gelesen, wobei die ersten beiden nicht angezeigt werden:   SELECT TOP 8 STARTAT 2 * FROM [FILES+]:bilder/testordner WHERE SUFFIX = .jpg Aktuell werden die Inhalte in einer virtuellen Tabelle im Speicher in folgendem Format aufgebaut   id_,FileName,RelPath,suffix   2,_MG_5571.jpg,bilder/testordner,jpg Im Template kann auf die Inhalte der Zeilen über die Spaltennamen zugegriffen werden.
182 184 5.8w 23.08.2015 epoch via codeBehind / css-compiler mixin / authMorph 23. August 2015 Neu: epoch via codeBehind : Mit dem neu eingeführten epoch-type codeBehind können nun über die epoch-Tabelle per Programmcode renderspezifische Bedingungen formuliert werden. Die Implementierung läuft über die bereits vorhanden codeBehind Mechanismen: die Rückgabe des hresults wird mit IsSucceeded (hResult) interpretiert, sodaß S_OK true liefert, Rückgaben wie E_FALSE oder E_FAILED als false ausgewertete werden. Mögliche Beispiele: * Anzeigen,disablen,... von Controls, Buttons "alle 15 Sekunden für 10 Sekunden" * variable Feiertage * Webservice-calls: "Nur wenn der Wechselkurs EUR/USD > 1.2 ist. ("Für 100 Euro bekomme ich mindestens 120 Dollar) * Wenn das logfile mehr als 1000 Einträge hat CSS-Compiler Mixin : Der Compiler unterstützt nun auch ein Mix von @import und css-Anweisungen in einer Datei authMorph : neue Render-Option authMorph. Wenn die Bedingung von authMorph zutrifft, dann werden Controls sowie subControls als span gerendert. Anwendung: Man kann übersichtliche Darstellungen von Datensätzen erzeugen welche auf Knopfdruck editierbar werden.
183 185 5.8x 30.08.2015 execPath / executeList / alwaysExecuteNavPath 30. August 2015 Neu: execPath : Der Navi-Type alwaysExecuteNavPath sorgt dafür das die Seite bei jedem Request gerendert wird. Neu ist das sich der dahinter befindliche Code so wie von Frames / iFrames bekannt verhält. Wenn eine Aktion einer solchen Seite aufgerufen wird, dann wird in den Context dieser Page gewechselt und darunter ausgeführt. Anwendung : Man kann hiermit Controls definieren die auf jeder Seite vorhanden sein sollen, z.B. eine persistente Checkbox zum Ein- und Ausblenden der Navigation
184 186 5.8y 06.09.2015 Performance: section translation: u_skip_translation / u_use_translation_replace / translateViaSections 06. Sepember 2015 Neu: section translation : Neue Funktion translateViaSections. Diese teilt zunächst den zu übersetzenden Content in die entsprechenden Abschnitte auf und übersetzt dann dort den definierten Sprachkey, Vorteil: es werden nur die Key's ersetzt und große Abschnitte wie z.B. Datentabellen werden bei der Übersetzung Übersprungen. Erste Tests ergaben einen leichten Geschwindigkeitsvorteil bei kleinen Seiten und einen sehr großen Geschwindigkeitszuwachs bei großen Seiten (ca. Faktor 2-5 bessere Performance für die Übersetuung) Für Abwärtskompatibilität (altes Verfahren) bodyClass u_use_translation_replace setzen u_skip_translation : Übersetzung abschalten (für Performancevergleiche) u_use_translation_replace : Zurückschalte auf das alte Verfahren mit LOOP-Replace (Ansonsten wird das neuen Abschnittsbasierte Verfahren verwendet, welches nur die auf der jeweiligen Seite vorhandenen Keys übersetzt)
185 187 5.8z 13.09.2015 exifDataUtils: readExif / getExifInfoWindow; [DIRECTORY+..] 13. Sepember 2015 Neu: exifDataUtils : Neue Wrapperfunktionen zum Auslesen von exif-daten aus Bildern readExif : liest vorhanden exif-Daten getExifInfoWindow : gibt das Datenarray der exif-Daten als dragWindow zurück CHANGE: [DIRECTORY+..] : Durch die beiden Punkte am Ende wird nun auch .. als Directory gerendert. Hiermit ist dann das Parent-Directory gemeint
186 188 5.9a 27.09.2015 excelReaderUtils: excelData_read_all / excelData_read / excelData_get_tabDef / excelData_get_dataRows / excelData_escape / addToCurrentPage / appExecNavTargets 27. Sepember 2015 Neu: excelData_read_all : liest tabDef und Rows mit Hilfe der nachfolgenden Funktionen aus einem Excel-File excelData_read : liest die xls-Datenstruktur ein. excelData_get_tabDef : ermittelt aus der ersten Zeile der xls-Datenstruktur die tabDef Spalten excelData_get_dataRows : liest ab der zweiten Zeile aus der xls-Datenstruktur die Daten-Spalten excelData_escape : Umwandlung von Sonderzeichen und escape der ullia-spezifischen Trennzeichen addToCurrentPage : neuer Navi-Page-Type (navType) aus sysConfigNavTypes. Dieser bewirkt dass bei einem Klick auf den Menüpunkt die angeklickte Seite in die aktuell dargestellte Seite integriert wird. Durch setzen der classnames "ajax ajaxDragWindow" wird erreicht dass der hinzugefügte Inhalt per ajax geholt wird und in einem DragWindow dargestellt wird. Anwendungsbeispiel : Ein Menü-Punkt mit syscommand=sitemap erstellen, navType auf addToCurrentPage sowei classnames= ajax ajaxDragWindow setzten.  appExecNavTargets : Neue Tabelle zum Speichern von anwendungsspezifischen Render-Targets (navType = alwaysExecuteNavPath). Die Pflege der Renderziele ist über den Adminbereich "customRendering" möglich. Hier können die mit collectFrom_ die Ziele TRASH, TOP, BOT und HASH ausgewählt werden)
187 189 6.0. 02.10.2015 ullia Versin 6.x ff: php 7 support 02. Oktober 2015 PHP-7 Support: php Version 7 : mit der Ullia Version 6.x ist ullia PHP7 ready und unterstützt weiterhin die PHP Versionen ab 5.x . 
188 190 6.0a 04.10.2015 emailList / sort 04. Oktober 2015 NEU: emailList : Neuer colDef-Type emailList. Dieser kann eine Liste von semikolonseparierten E-Mail adressen aufnehmen. Bugfix: Table-Sort: Type-Sort korrigiert (float, numeric, number).
189 191 6.0b 18.10.2015 dataProviderGetStateKeyValues / textInputList 18. Oktober 2015 Bugfix: dataProviderGetStateKeyValues: Beim Ersetzten von sysStateKeyVal_ - Werten werden nun auch korrekt Teilstrings berücksichtigt. Beispiel:   Die Bedingung (sysStateKeyVal_Firmenname_t OR sysStateKeyVal_Firmenname_th) wurde bei der Belegung Firmenname=t   in ([TRUE] OR [TRUE]h) und somit korekterweise auch in [TRUE] überführt.   Mit der Belegung Firmenname=th ergab das ([FALSE] OR [FALSE]h) und somit insgesamt fälschlicherweise [FALSE].   Hintergrund: die Substitution des Teilstrings sysStateKeyVal_Firmenname_t mit [FALSE] führt in der ersten Iteration dazu.   Lösung: Das Leerzeichen als Trennzeichen zwischen den logischen Teilausdrücken bei der Ersetzung mit berücksichtigen.  textInputList: Bugfix bei Ajax-Calls: Bestimmung des Grund-Controls zur weiteren Verarbeitung
190 192 6.0c 25.10.2015 ajaxPartialUpdate / findPartialUpdateList /js) 25. Oktober 2015 Bugfix: ajaxPartialUpdate : Richtext via ajax repariert durch Einbeziehung von custRenderingContent in actionScript = extraContent ( custRenderingContent (allowedContent (actionScript))); findPartialUpdateList : zunächst den classValue dataName_ checken, da dieser den vollqualifizierten Namen enthält: key = getClassValue (el.className, 'dataName_'). Erst danach das Attribut data-key auswerten. 
191 193 6.0d 11.11.2015 Beginn Karneval: onSortMoving, onSortFinished (sortable) 11. November 2015 New: Sortable-Events: onSortFinished (sortable) : Das Beenden einer Sortierung kann nun mit onSortFinished als FamGrp-Event behandelt werden.  onSortMoving (sortable) : Die Zwischenschritte einer Sortierung können nun mit onSortMoving als FamGrp-Event behandelt werden. 
192 194 6.0e 06.12.2015 Nikolaus-Release: ullia_function_html_text_encode / json_convert_utils / HTML_LT, HTML_GT 06. Dezember 2015 New: ullia_function_html_convert_utils: ullia_function_html_text_encode : Ullia- sowie HTML- spezifische Zeichen wie das Kleiner- und Größerzeichen sowie das Kaufmannsund und das Paragraph-Zeichen werden in dieser Funktion encodiert.  json_convert_utils: json_html_text_encode : json-kritische Zeichen wie einfaches und doppeltes Hochkomma, sowie der Backslash werden hier encodiert. Verwendung in guide.ullia innerhalb der codeBehind-Funktion code_modul_webforms_ullia_function_reference globalDefinitions   define('HTML_LT', '<');   define('HTML_GT', '>'); Verwendung: zum Kodieren in CodeBehind
193 195 6.0f 28.12.2015 Weihnachts-Release: CGI-Support / SQL File- und Directory- Support 28. Dezember 2015 New: SQL-DIRECTORY -Support erweitert. SELECT [CACHED 22] STARTAT 2 RelPath, DirName FROM [DIRECTORY+]:r/interaktive-panoramen SQL FILE-Support erweitert um selktierbare Spalten SELECT [CACHED 13] TOP 99 FileRelPathName, FileName, *, FileName FROM [FILES+]:sysStateKeyVal_ordner_ Unterstützung nun auch via CGI als alternative zur bisher benötigten modul-Version (htaccess Anpassung notwendig, Details siehe mediamueller Webserver: Konfiguration )
194 196 6.0g 31.12.2015 Sylvester-Release: execPath: codeBehind 31. Dezember 2015 Bugfix: execPath-controls: codeBehind wird nun auch bei execPath-Controls (alwaysExecuteNavPath) korrekt ausgeführt. Der Fehler lag im nicht korrekt gesetzten processing-State, welcher im codeBehind vorkonfiguriert durch   if (!IsProcessing()) {return 'SYS_RETURN_VALUE';} abgefragt wird. Die codeBehind-Funktion wurde somit zwar aufgerufen, es wurde jedoch gleich wieder zurückgesprungen.
195 197 6.0h 02.01.2016 Neujahrs-Release: Bugfix [TRUE] 02. Januar 2016 Bugfix: authCondition [TRUE]: Wenn [TRUE] als einzige Bedingung angegeben wurde, dann wurde diese nicht korrekt interpretiert. Als Fix kann in Ullia-Versionen < 6.0h alternativ der bool gleichwertige Ausdruck NOT [FALSE] verwendet werden.
196 198 6.0i 10.01.2016 codeBehind: IsPreparing, IsHandleErrors / PushValidationError / getColDefClientId / 403_FORBIDDEN Kontextabhängig 10. Januar 2016 Change: codeBehind: Ausführungsphasen weiter differenziert: Statt !IsProcessing() wird nun standardmäßig   IsPreparing() und   IsHandleErrors() unterschieden. Hiermit kann z.B. das verarbeiten des Codes bei vorangegangenen Validierungsfehlern trotzdem ausgeführt werden. PushValidationError : die Funktion PushValidationError setzt nun den Validation-Status auf Error, ruft also die Methode  setSysState ('Validation', 'Error'); auf. Hierdurch funktioniert nun auch Conditional-Rendering wenn via codeBehind ein Validierungsfehler gesetzt wird. getColDefClientId : neue Funktion zum erzeugen oder auslesen der Client-ID eines Controls. Verwendung: Wenn in codeBehind ein Validierungsfehler bezüglich eines Feldes gesetzt wird, dann kann mit der ClientId des entsprechenden Feldes auch die label-for Verknüpfung erzeugt werden. 403_FORBIDDEN Kontextabhängig: der HTTP-Status 403 Forbidden wird nicht mehr bei den Navigationstypen alwaysExecuteNavPath und addToCurrentPage gesetzt. Hiermit können diese Seiten auch als Kontrols mit Conditional Rendering verwendet werden. Beispiel: auf allen Seiten soll ein Textfeld mit einer Zeitlimitierten Hinweismeldung angezeigt werden (z.B. Bestellpause in einem Shop während der Urlaubszeit). Implementierung: Seite vom Type alwaysExecuteNavPath  anlegen und mit einem Zeitbegrenzten Anzeigerecht versehen (epoch)
197 199 6.0j 12.01.2016 colDef_history / sysStateKeyVal: pathInfo-ulliaSys & pageName-ulliaSys 12. Januar 2016 New: colDef_history: Vorbereitung für die Historisierung von Datensätzen beim Speichern. Hierz wurde der neue ColDef-Typ history in der ColDef-Definitionstabelle dsnTabColumn_Definitions eingeführt. Dieser kann als Option bei den zu historisierenden Daten ausgewählt werden. Hinweis : aktuell fehlt noch die Implemtenierung für die Historisierung. Möglicherweise ist hierzu das dynamische Anlegen von Historisierungstabellen notwendig (womöglich analog zu i18nContent). Um die Historie in bereits bestehenden Projektdatenbanken einzusetzten ist nur eine aktuelle all_applications ins Projekt einzubinden und refreshAll durchzuführen. Der History-Type steht anschließend im Projekt für die jeweiligen sysConfigSiteExpert zur Verfügung. Definition der History-Option:   name = colDef_history   type = zeroOne   maxlen = 1 sysStateKeyVal : Ullia-Version 6.0j setzt nun den Ullia-Systemstatus pageName -ulliaSys und pathInfo -ulliaSys. Diese können zu conditional Rendering verwendet werden. Hilfreich ist das z.B. für Controls die via navType alwaysEcecuteNavPath und addToCurrentPage auf allen Seiten gerendert werden. Bugfix: copyDsnTabContent: fehlendes close ergänzt
198 200 6.0k 24.01.2016 handle_404 / setLanguage in appInfo / epoch_secondsExceeded- (login,inactivity) / lockScreen / checkboxLabelNavi 24. Januar 2016 New: INVALID_PAGE prüft nun zusätzlich ob  "_handle_404" das eigentliche Ziel war und verwendet im Positiv-Fall dann das Modul. Hiermit wird dann auch die fpm-fcgi -Variante unterstützt. AppInfo : Erweiterung zur Sprachumschaltung (authLevel_2 notwendig) epoch_secondsExceeded-login Neuer Werte für conditional-Rendering: epoch_secondsExceeded-login_ valueInSeconds Bsp: epoch_secondsExceeded-login_7200 wird nach genau zwei Stunden zu [TRUE] epoch_secondsExceeded-inactivity Neuer Werte für conditional-Rendering: epoch_secondsExceeded-inactivity_ valueInSeconds Bsp: epoch_secondsExceeded- inactivity_60 wird nach genau einer Minute zu [TRUE] Anwendungsbeispiel:  (auto-logout wenn eine maximale Zeit seit dem Login oder zwischen zwei Klicks vergangen ist. Realsierung über den Typen sysCommand-Content mit data=logout  welcher über eine Renderbedingung wie   authRender = epoch_secondsExceeded- inactivity_60 ausgeführt wird. sysState lockScreen (Experimental): Die action "lockScreen" soll Mechanismen bereitstellen um die Anwendung vorübergehend zu sperren (Ananlog zum "Bildschirm sperren bei Windows"). Im Unterschied zu logout bleibt hierbei jedoch der Systemstatus des angemeldeten Anwenders erhalten. Nach Eingabe eines Kennworts kann anschließend weiter gearbeitet werden. Anwendungsbeispiel: ein button mit der data-action lockState führt zum Setzen des sysStates sysStateKeyVal_lockScreen-ulliaSys_on. Dieser soll bewirken dass anstelle des eigentlichen Contents ein Dialog mit Kennworteingabe zur Wiederanmeldung und vollständigen Abmeldung erscheint. Weitere Elemente wie Navi, Footer usw. sollen nicht dargestellt werden. checkboxLabelNavi (Experimental): AppPersistState zum Rendern von checkboxen vor Navigationslinks. Wird style-individuell in sysConfigUsedLayoutComponents konfiguriert
199 201 6.0l 31.01.2016 Bugfix Error-Translator, performControlRenderHash / Form Child-Container / GetInBetweenTagName 31. Januar 2016 Bugfix: Error-Translator: bei nicht gesetzter Option "u_use_translation_replace" wurden die Fehlertexte nicht übersetzt. Dies wird nun in getRenderedMessages durchgeführt. performControlRenderHash: collectFrom aus mehreren controls in einen Container übernahm bisher nur das erste Control. New: Form Child-Container (F:) : CustomRendering unterstützt nun auch einen Ziel-Container direkt unter dem ersten form-Element. Hiermit ist es nun beispielsweise möglich seitenspezifische Einstellungen unter Ullia-Frameworkkontrolle direkt am Anfang der HTML-Seite zu platzieren. Anwendugsbeispiel: Zuklappbares Seitenmenü. Es wird eine Seite vom Typ individualPageForm erstellt auf welcher ein checkbox-Control mit der Persistenz-Option definiert wird. Die checkbox besteht aus der eigentlichen Checkbox (dem Control kurz C) und der zugehörenden Beschriftung (Label kurz L). Das Control wird nun mit Hilfe von customRendering an den Beginn der HTML-Seite verschoben, das Label kann an zunächst an der default Renderposition bleiben.  Folgende Einstellung auf der customRendering-Seite ist hierfür zu konfigurieren: Im Container FRMCHLD_ wird das Control (C) mit dem Befehl collectFrom aus dem eingentlichen Element verschoben collectCtrlFrom-z. Alias : FRMCHLD_ ( FormChild-container_ ) GetInBetweenTagName ($str, $tagName) Verwendungsbeispiel: GetInBetweenTagName ( someHtmlPage , 'body') // gibt das HTML-Fragment innerhalb des body-TAG's zurück
200 202 6.0m 07.02.2016 New: STYLE EXEC 07. Februar 2016 NEW: STYLE EXEC: Unterstützung von stylespezifischem  execPath