ullia

changeLog

changeLog

fullScreen ulliaChangeLog
Page 5 of 17, Zeile 81-100 von Treffern, Gesamtzeilen 325
idx
 
81-100 von , tab_totalLength: 325
81 81 4.7s 30.06.2013 NEU: data-signature, HTML5: Unterstützung von sessionStorage, navDataOptions, js-Bugfix 30.06.2013: Neu: data-signature : neues data-Attribut im , zusammengesetzt aus authSignature sowie render-relevanten Einstellungen. Der Wert ist geeinget um Berechtigungsrelevante Caching-Key für den sessionStorage oder localStorage zu erzeugen. Anwendung: Footer-Submenu kann hierüber zwischengespeichert werden. navDataOptions : Neues Page-Attribut navDataOptions vom Typ csvList: Mit diesem kann z.B. das Attribut data-option="noClick" für Navigationselemente gesetzt werden. Mit Hilfe von geeigneten Javascript kann dann z.B. im Footer verhindert werden, daas ein Kick auf "Ansicht" zur Seite Ansicht verzweigt und nicht nur die Unterpunkte aufklappt. Weiterer Anwendungsfall: eine Seite soll als dragWindow überall eingebettet werden können, Erreicht wird das durch Setzen des Attributs navDataOptions=dragWindow. Mehrere Attribute werden durch Kommas getrennt. WICHTIG : In allen Apps die das neue Page-Attribut navDataOptions unterstützen sollen, muss dieses in der Definition für die Navigation (sysConfigSiteExpert) nachgetragen werden: typ=csvList, maxlen=256 ajaxCachedContent : javascript- / ajax-caching mit sessionStorage / localStorage Unterstützung Bugfix: js-Bugfix (Javascript / ajax): ajaxJsonUpdate removeClassName muss vor updateContainer, da ggf. der Container auch gelöscht werden kann.
82 82 4.7t 09.07.2013 securityEscapeValue 30.06.2013: Neu: securityEscapeValue : Security: Postback-Escape für input und textarea
83 83 4.7u 10.07.2013 u_clientstorage: optionale clientseitige Speicherung der Hauptnavi via sessionStorage 10.07.2013: Neu: experimental (alpha-Status) u_clientstorage : optionale Footer-Option für berechtigte Anwender: Wenn diese Option zur Verfügung steht und ausgewählt ist dann wird in Browsern die sessionStorage unterstützten die Navigation auf dem Client abgelegt und in folgenden Responses nicht mehr vom Server mitgeschickt. (Der Hinweis hierzu wird vom Client via Cookie an den Server kommuniziert). Implementierungsdetails : ist die Option u_clientstorage gesetzt, dann wird die Haupt-Navi mit absoluten Links als Sitemap gerendert, d.h. alle Links werden ausgeliefert. Wenn die Navi dann in Folgeresponses aus dem sessionStorage restauriert wird, dann erfolgt die Auszeichnung des aktuellen Pfades nachträglich auf dem Client per Javascript. Eine zukünfige Version könnte das Nachladen der zu speichernden Gesamtnavi auch per ajax Request vom Server anfordern.
84 84 4.7v 21.07.2013 renderConditions 21.07.2013: Neu: renderConditions (alpha-Status) renderConditions: Anfang einer erleichterten Pflege von statusabhängigem Rendern von Controls.
85 85 4.7w 23.07.2013 authRequired, clientId und typ label, UX - user Experience: IsSubmitButton 23.07.2013: Neu: authRequired : Status und Berechtigungsabhängige Pflichtfelder (analog zu allowed). Pflichtfleder können wie bisher fest mit dem Attribut _req gesetzt werden. Ist diese Option nicht gesetzt, und ist ein Wert im Attributs authRequired eingetragen, dann wird hieraus abgeleitet ob das Feld ein Pflichtfeld ist. label: dsnTabCombo_Types : neuer Type label mit optionalem for-Attribut (definiert über dataOptions for_ ID). dsnTabColumn_Definitions : neues Attribut colDef_clientId zum Setzen von festen ID's im client (=Browser-HTML) User Experience : OnEnter-Event markiert beim OnFocus im Feld den verknüpften Button mit der CSS Klasse IsSubmitButton . Hiermit kann über geeignete Stylesheets deutlich visualisiert werden, welcher Button bei Enter ausgeführt wird.
86 86 4.7x 24.07.2013 partial ajax replacement, stellvertreter li für nicht gerenderte elemente 24.07.2013: Change: partial ajax replacement : Bei Ajax-Updates, welche nur Teilkomponenten austauschen wird nun immer das umschließende li-tag inklusiv des zugehörigen Inhalts ausgetauscht. Hierdurch wird zwar die Datenmenge erhöht, in vielen Fällen ist das jedoch nicht vermeidbar, da auch im li-Tag renderspezifische Attribute enthalten sind. Wenn aufgrund von Berechtigungsbedingungen ein Element nicht gerendert wird, dieses  jedoch einer famGrp angehört, dann wird nun als Stellvertreter ein leeres li-Tag gerendert, welches die famGrp_, den dataName_ sowie die hidden css-class enthält. Hiermit sind nun auch partial-ajax updates möglich bei denen aktuell nicht angezeigte Elemente refreshed werden können.
87 87 4.7y 25.07.2013 NEU: GetCacheVersion / sessionVersion 25.07.2013: Client-Cache Bugfix: NEU sessionVersion : Bei client-cache relevanten Änderungen auf dem Server muss der client-Cache im Browser invalidiert werden. Hierzu wird eine sessionVersion als Suffix an das data-version Attribut angehängt. Initial ist der Wert leer, bei jeder relevanten Änderung wird nun die neue Funktion invalidateClientStorage() auf dem Server aufgerufen, welche dann den Wert der  sessionVersion inkrementiert.
88 88 4.7z 30.07.2013 Partial Update: ohne autofocus - Berücksichtigung von codeBehindProcess, submitBtnOnEvent entfernt, eventHandling für csvGroupRadio 30.07.2013: Bugfix ajax-Partial: autofocus ajax-Partial Update : Beim ajax-Partial Update muss das HTML5-Attribut  autofocus beim Rendern abgeschaltet werden, da ansonsten in Autosuggest-Feldern, welche inital das Attribut autofocus haben, dann durch die Usereingaben syntaktisch den Status valid erhalten und somit das autofocus Attribut ggf. auf ein anderes Element gesetzt wird. Das bewirkt dann beim ajax-Update dass der Focus auf eine anderes Element gesetzt wird und der Benutzer den Focus im autosuggest-Feld verliert. colDef_submitBtnOnEvent entfernt : Option gelöscht, da dieses im wesentlich mächtigeren Konzept der famGrp aufgeht. ajax-Partial Update :  Wenn die famGrp für Elemente des Types codeBehindProcess gesetzt ist dann führt Patial Ajax-Update den Prozess aus. eventHandling für csvGroupRadio Partial Update für richtext , und damit generalisiert
89 91 4.8. 04.08.2013 renderConditions: inplaceConditionEdit 04.08.2013: Neu: inplaceConditionEdit : der Edit-TabReiter "renderConditions" wurde mit hilfe von Ajax um die Funktion inplaceConditionEdit erweitert.
90 92 4.8a 06.08.2013 datalist: Erweiterung um codeBehind / get_option_list 06.08.2013: Erweiterung: datalist : Der Type datalist unterstützt nun auch direkt codeBehind. Gerendert wird ein optionales label, das Eingabefeld mit dem Attribut list sowie die zugehörige datalist mit der entsprechenden id. Inhaltlich muss codeBehind dann eine html option-list zurückliefern. Die Komponente component_datalist_codeBehind verwendet hier als type für das Eingabefeld type="seach". get_option_list : neue Funkion aus databaseEditUtils (baut auf get_csv_column_list auf) Anwendungsbeispiel in Verwendung mit der datalist: using('databaseEditUtils');   $optionCityList = get_option_list ('misc', 'cities', 'name', BASE_LANGUAGE);
91 93 4.8b 07.08.2013 ajax Handling für datalist: Part one 07.08.2013: Ajax-Datalist datalist : datalist in Verbindung mit ajax kann auch für autosuggest-Felder eingesetzt werden. Da die datalist des Eingabefeldes hier dynamisch neu via ajax nachgeladen wird muss aktuell auch das Eingabefeld per famGrp Definition neu gerendert werden. Das hat aber den entscheidenen Nachteil dass hierbei der Focus im Eingabefeld verloren geht. Hier muss nachgebessert werden: Felder des types datalist sollen zukünftig im ajax-partial Betrieb nur die Datalist-Options nachladen das Eingabefeld also nicht. datalist-partial-ajax-update : (08.08.2013) Das datalist-control (li-label-input-datalist) tauscht im ajax-partial update Betrieb nur noch die option's innerhalb der datalist aus. Hiermit bleibt der Focus im Eingabefeld, allerdings gibt es noch je nach Browser diverse Refresh-Probleme bei sich dynamisch ändernden datalist's. (Das ist wahrscheinlich bisher nicht vorgesehen) NEU: omDatabaseAutosuggestUtils : neues Modul zur Autosuggest Unterstützung function matchedTableRows (dsn, tab, col, query, ref aTableRows, ref tabDef, language='', dbDomain='') liefert alle Zeilen die auf query matchen. Erweiterung: component_csvRenderControl : neue Funktion csv_to_option hinzugefügt: rendert eine kommaseparierte Liste als option-tags die dann als Auswahlelemente einer Datalist oder select-box verwendet werden können
92 94 4.8c 11.08.2013 partial updates: Reihenfolge beim Rendering angepasst, u_inplace_authconditions, codeBehind function definition 11.08.2013: Ajax-Partial Update Renderreihenfolge: Die Reihenfolge beim Rendern kann nun unabhändig von der Reihenfolge der Definition der Controls vorgegeben werden. Zur Anwendung kommt das beim Partial-Ajax Update. Hier kann per famGrp Checkbox eingestellt werden, ob das Element welches ein Client-Event auslöst (Der Activator) auch selbst neu gerendert werden soll. Der Activator wird nun in jedem Fall als erstes Control auf dem Server ausgeführt. Hierdurch kann das Control beispielsweise Statusvariablen setzen welche den Render-Prozess aller nachfolgenden Elemente beeinflussen könnte. u_inplace_authconditions: Neue Footer-Option für Admins: mit gesetzter Option u_inplace_authconditions werden alle Controls mit authorisierungsabhängigen Renderbedingungen markiert. Bei :hover werden diese Bedingungen angezeigt.Bugfix:richtext via ajax-Update: Das einfache Hochkomma (') muß beim AJAX-Update in der JSON Repräsentation durch zwei slashes "escaped" werden ('") codeBehind function definition : Änderung: die codeBehind funktionssignatur lautet nun function Name (&$pHash, $pInfo, $aColDef)    Der namespace (ns) aus der  alten Definition function Name (&$pHash, $pInfo, $ns='') wurde bisher nicht verwendet Mit Hilfe des aColDef Hashes können nun die Feldoptionen ausgelesen werden. NEU: Die ajaxVariablen activator, activatorValue, clientEvent werden nun auch übertragen, mit Hilfe des Wertes activatorValue kann nun sehr einfach ein autosuggest implementiert werden. Hierzu ist einfach ein Eingabfeld zu definieren und diese dann z.B. mit einem output-Element via familyGroups und dem Event onKeyUp zu verbinden. Das output-Element erzeugt dann über codeBehind eine select-list.
93 95 4.8d 12.08.2013 gzip / deflate für json calls, codeBehindCreateLocalVars, getServerValue 12.08.2013: JSON Compress: json / ajax compress: ullia liefert nun bei ajax / json calls den content-type application/json zurück. Mit der Anpassung der htaccess Datei wird nun erreicht dass auch xhr-Responses komprimiert werden. AddOutputFilterByType DEFLATE text/html text/css application/javascript application/json NEU: codeBehindCreateLocalVars : User Experience bei autoCreate von codeBehind Funktionsrümpfen: Anhand er definierten colDef Namen werden für ausgewählte typen automatisch generierte variablen erzeugt, welche dann für die Benutzung nur noch einkommentiert werden müssen. function toCamelCase(txt) : Hilfsfunktion zur einheitlichen Schreibweise von Variablennamen in camelCase Notation. Wird von codeBehindCreateLocalVars verwendet. function getServerValue (key) : das Gegenstück zu setServerValue (ke, value);
94 96 4.8e 18.08.2013 refactoring: checkboxList, radioList, selectbox, datalist 18.08.2013: Refactoring: refactoring: checkboxList, radioList, selectbox, datalist: vereinheitlicht mit Hilfe eines neuen generischen dataProviders
95 97 4.8f 24.08.2013 refactoring: checkboxList, radioList, selectbox, datalist 24.08.2013: Warnhinweis: W_MISSING_OPTION_setState:Wenn renderConditions definiert sind, welche das Setzen von setState bedingen, dieser jedoch nicht gesetzt ist, dann wird ein entsprechender Warnhinweis als Fehlermeldung ausgegeben.
96 98 5.0 15.09.2013 Toskana-Release: refactoring: button, buttonList; neu buttonSelector; neu sslProxy-Unterstütung 15.09.2013: " Toskana-Release " Refactoring: Die Defition der Buttons werden nun nicht mehr auf den Client (=Browser) durchgereicht. Im Client werden nur noch die "Process-Names" verwendet. Bei POST wird hierüber der Submit-Button bestimmt und die definierte Aktion ausgeführt. NEU: HTTPS via ssl-Proxy Bei unterstützten Account kann nun auch mit einem Proxy-Zertifikat eine SSL-Kommunikation aufgebaut werden. Hier beispielsweise durch https://ssl-account.com/ullia.de/
97 99 5.1 22.09.2013 setState / persistent / Bugfix 22.09.2013: " Optimierungen " Neu Option persistent: Mit Hilfe von der neuen Option persistent können nun Werte der Controls dauerhaft in der Session gespeichert werden. controlPersistent - Info: Anzeige der dauerhaft gespeicherten Werte unter "AppInfo" Change setState: setState persistiert nicht mehr automatisch die Werte der Controls. Das muss nun der neuen Option persistent separat gewählt werden. ajax-partialUpdate: Buttons können nun auch via Ajax refreshed werden, hierzu wurde doPerform_ als eventHandling -Option zur Kennzeichnung des action-Buttons eingeführt.  Der Button selbst wird nun analog den anderen Controls via famGrp identifiziert. Bugfix: Falls Ullia mit PHP ab der Version 5.5 betrieben wird, mußte zunächst das encoding von htmlentities auf ISO-8859-1 statt dem neuen default UTF-8 gesetzt  werden. Ansonsten gab es Probleme mit Umlauten. (htmlentities gibt nun einen leeren string zurück, falls irgendein umlaut im string vorhanden ist)
98 100 5.2 24.09.2013 NEW: Touchevents / Eventgruppierung 24.09.2013: Touchevents Neue Events zur Unterstützung von Smartphone und Tablet onTouchStart, onTouchEnd, onTouchLeave, onTouchMove, onTouchCancel Generelle Aufteilung der Events in Gruppen:     KeyboardEvents = 'onKeyUp,onEnter,',     MouseEvents = 'onClick,onDblClick,OnContextMenu,onMouseOver,onMouseOut,onMouseMove,onMouseDown,onMouseUp,'     GenericEvents = 'onChange,onFocus,onBlur,onSubmit,'     TouchEvents = 'onTouchStart,onTouchEnd,onTouchLeave,onTouchMove,onTouchCancel,'     ulliaEvents = 'teamLeader,onValid,dataProvider,dataConsumer,onAutoSuggest,groupDef,minOf,maxOf';
99 101 5.3 25.09.2013 setState / setPersist: nur wenn Post-Action-Button auch die entsprechende Option hat 25.09.2013: State und Persist: Button-Abhängig CHANGE: setState eines Controls bedingt nun bei Post-Requests, dass auch der auslösende Button diese Option hat setPersist eines Controls bedingt nun bei Post-Requests, dass auch der auslösende Button diese Option hat Unverändert: Bei Get-Requests ist das Restaurieren der Werte nur vom den Optionen des Control selber abhängig
100 102 5.4. 29.09.2013 Neu: colDef Option _crypt unterstützt nun auch sichere bcrypt Hashwerte 29.09.2013: bcyrpt Erweiterung: Die Option crypt kann nun in dataOptions noch weiter spezifiziert werden: aktuell wird hier das "Wort bcrypt " unterstüzt. Der Type auth_password migriert beim Login automatisch die gespeichertern password-hashes zum neuen sicheren bcrypt-Hash.