Changelog (Release)

Hier finden Sie die aktuell veröffentlichten Änderungen ("Aktuelles öffentliches Release").

Um die in Entwicklung befindlichen Anpassungen der "getesteten Vorabversion" anzusehen, siehe Changelog (Entwicklung).

Die Änderungen der Vorversionen finden Sie unter Vorgängerversionen.

Die Version 4.1.8 wurde initial im November 2021 veröffentlicht.

Bitte beachten Sie die folgenden Hinweise zu diesem Update

Für IT-Administratoren

  • Evtl. möchten Sie die mit Version 4.1.7 eingeführten Möglichkeiten zum Monitoring verwenden.

Für Betreuer

Für Entwickler

November 2021

Release 4.1.8.49648 (30.11.2021)

  • Fix: Ebenen vom Typ EsriFeatureService wurden beim Wiederherstellen einer Sitzung versucht als WFS Ebene zu laden.

  • Fix: U.U. trat ein Fehler beim Ändern des Kennwort auf.

4.1.8 (25.11.2021)

Sketch

  • Neu: Es gibt jetzt einen Umschalten-Knopf, mit dem man wählen kann, ob die Interaktionen und Selektionsrahmen bzgl. der Sketch-Objekte auf der Karte aktiv sein sollen oder nicht. Sketch

    Wenn die Interaktionen deaktiviert sind, liegen die Sketch-Objekte nur "dumm" auf der Karte und sind dort nicht selektierbar/verschiebbar, stören nicht den MapTip und es werden auch keine Markierungsrahmen gezeichnet.

    Sketch

  • Neu: Es gibt jetzt einen Sichtbarkeitsknopf, der die gesamte Sketch-Zeichnung ein-/ausblendet.

    Sketch

  • Neu: Wird ein Sketch-Objekt in der Karte selektiert, so wird jetzt auch das entsprechende Objekt im Sketch selber markiert und fokussiert.

    Sketch

  • Neu: Mittels STRG-Taste kann man mehrere Objekte in der Karte selektieren. Die Anzeige im Sketch wird synchronisiert. Ebenso kann man im Sketch mehrere Objekte selektieren.

  • Fix: Wenn ein Punkt bearbeitet wurde und dieser Punkt zusätzlich gepuffert wurde, war der gepufferte Kreis nicht in der Karte sichtbar. Auf jegliche Änderungen des Geometrietyps wird jetzt entsprechend reagiert, d.h. der Sketch-Typ ändert sich ggf. mit. In unserem Beispiel (gepufferter Punkt) wird somit aus dem Punkt-Sketch-Objekt ein Flächen-Sketch-Objekt.

  • Fix: Wenn die Geometrie im Geometriefeld geleert wird, wird gefragt, ob das Sketch-Objekt entfernt werden soll. Man darf es aber auch leer behalten.

  • Fix: Behebung des Fehlers, wenn leere Geometrieobjekte zum Sketch hinzugefügt wurden. Leere Geometrien werden jetzt mit geprüft und bei der Übernahme ins Sketch übersprungen. Potentiell könnte dies auch bei editierbaren Ebenen vorkommen, wenn zu einem Datensatz noch keine Geometrie erfasst worden ist.

    Link zur Onlinehilfe Sketch

Karte

  • Neu: Selektionswerkzeug: Für die Kreisselektion wird jetzt der Radius angezeigt.

    Kreisselektion

  • Neu: Die Ausgabe der Strecke bzw. Fläche des Messwerkzeuges berücksichtigt künftig besser das aktuell eingestellte Koordinatenbezugssystem (KBS) und macht bei Messungen in KBS, die nicht auf Metern basieren deutlich, dass es sich nur um circa-Werte handelt.

    Messwerkzeug

  • Neu: Der Button "Messwerkzeug" wird jetzt analog vom Selektionswerkzeug als aktiv mit blau markiert.

  • GeoCSS / Symboleditor:

    • Neu: Diverse Erweiterungen und Fehlerbehebungen für GeoCSS, Details finden Sie im Iwan7 Changelog. Erwähnenswert ist die neue Eigenschaft "Center" für Textplatzierungen auf der Linie. Für die Bildung von Puffern kann jetzt der "EndCap" angegeben werden.

      Neu ist auch die Funktion DateDiff für Bedingungen und Ausdrücke, Bsp.:

        [DateDiff("day",bearbeitet,"") > -3]{
        polygon {
        		text-placement: interior_point;
        		text: [Printf("Bearbeitet vor %i Tagen", -DateDiff("day",bearbeitet,""))];
        		text-font-name: "Arial";
        		text-color: black;
        		text-height: 12px;
        	}
        }
      
    • Neu: Die Vorschaubilder für das Legendensymbol werden jetzt auch angezeigt, wenn "excludeFromMapLegend" für das Element angegeben ist.

    • Fix: bei der Übernahme von Symbolen aus Iwan6 (diese wird z.B. automatisch bei Symbolik anpassen durchgeführt) wird für "Stipples" jetzt die Vordergrund-/Hintergrundfarbe korrekt übernommen und bei Klassifikationen nach Datumswerten wird das Datum korrekt als ISO Format in die Bedingung überführt.

    • Fix: u.U. trat die Meldung "Es muss ein Geometrietyp angegeben werden wenn Eigenschaften gesetzt werden sollen." beim Aufruf des Symboleditors auf.

    • Fix: Die Auswahl eines komplett transparenten Farbwertes im Symboleditor wird nun korrekt in den Farbnamen transparent umgesetzt. Bisher führte diese Auswahl dann in der Folge zu einer schwarzen Anzeige.

  • Fix: Beim Abgleich der Kartenebenen mit den aktuellen Einstellungen des Admin-Baums wurde die Einstellung "Reihenfolge herstellen" nicht ausgewertet.

  • Fix: Das Snapping konnte man nicht deaktivieren, wenn eine Toleranz außerhalb des Gültigkeitsbereichs eingestellt war. Jetzt wird notfalls eine Standardtoleranz von 10 Pixeln verwendet.

  • Fix: Im Farbauswahldialog war die Verwendung der im Dialog befindlichen Eingabefelder (RGB, HSV, ...) nicht möglich, weil sich der Dialog dabei automatisch schloss. Das ist nun korrigiert. Zudem wurde das Verhalten beim Wechsel zu anderen Eingabefeldern bei geöffnetem Farbauswahldialog überarbeitet und funktioniert nun erwartungsgemäß, d.h. das Dialogfenster wird automatisch geschlossen.

AnySourceEditor

  • Neu: Wenn in der Karte eine Selektionsebene (Snapshot-Ebene) vorhanden ist, wurden bisher bei der dort ausgeführten Aktion "Dateneditor hinzufügen" alle Zeilen der zugrundeliegenden Ebene verwendet.

    Jetzt werden die in der Selektionsebene (Snapshot-Ebene) tatsächlich enthaltenen Datenzeilen verwendet.

    Wird der Editor damit initialisiert, dann werden beim Neuladen der Datenliste die zum aktuellen Zeitpunkt in der Snapshot-Ebene enthaltenen Datensätze hinzugefügt.

  • Neu: Die Spaltenbreiten im AnySourceEditor auf der linken Seite werden jetzt anders ausgewertet / bestimmt:

    • Ist nur eine Spalte vorhanden, nimmt diese jetzt immer die volle Breite ein, egal was man an der Spalte einstellt.
    • Ist mehr als eine Spalte vorhanden, wird bevorzugt die Breite aus der Einstellung verwendet. Ist dort nichts angegeben, ergibt sich die Breite aus Datentyp und Länge des Spaltentitels "halbautomatisch".
    • Bei Spalten, die sich aus Lookups ergeben, wird für jede Anzeigespalte der Lookup-Tabelle auch eine Spalte links in den AnySourceEditor eingefügt. Diese bekommen jetzt alle die gleiche eingestellte feste Spaltenbreite bzw. wenn nichts eingestellt wird, ergibt sich die Labelbreite aus Datentyp + Titel.
  • Fix: Wenn die Einstellungen des Editors verändert wurden, während noch ungespeicherte Änderungen an einer Datenquelle vorlagen, kam es unter Umständen zu einem ungewollten Verhalten beim nachträglichen Speichern der Änderungen an der Datenquelle. Um Datenkonsistenz zu gewährleisten, müssen die Änderungen nun gespeichert oder explizit verworfen werden, bevor Änderungen an den Einstellungen vorgenommen werden.

Geometrieeditor/Geometriefeld

  • Fix: Im Geometriefeld und den damit in Zusammenhang stehenden Beschriftungen der auf der Karte dargestellten Geometrien, wurden Flächen und Längen nicht korrekt ausgegeben, wenn 'EPSG:3857 - WGS 84 / Pseudo-Mercator' als Bezugssystem ausgewählt war.

    Fortan wird die näherungsweise Umrechnung in Meter vorgenommen und deutlich gemacht, dass es sich nur um eine circa-Angabe handelt.

  • Fix: Im Freihand-Geometrie-Feld der Karte reagierten die Buttons verzögert auf das Öffnen / Schließen der Toolbox.

Sachdatenrecherche

  • Neu: In der Sachdatenrecherche war in der Auswahlliste der konkrete Feldwert nicht ersichtlich, wenn eine Formatierung für die Spalte angegeben war. Jetzt wird der echte Wert in eckiger Klammer angezeigt, wenn er sich von dem formatierten Wert unterscheidet.

  • Fix: In der Sachdatenrecherche wurde für das Datumsfeld die Feldformatierung nicht mehr korrekt ausgewertet, wenn man die Auswahlliste verwendet hat. Weitere Anpassungen fanden statt:

    • der unformatierte Wert wird angezeigt, wenn er sich vom formatierten Wert unterscheidet Sachdaten
    • Anzeige der Datumsformatierung auf Radiobuttons geändert

Sachdatenanzeige

  • Fix: Wurden zwei Sachdatenfenster von der gleichen Ebene geöffnet, so synchronisierten sich diese Fenster bei Einstellung eines Filters in einem Fenster. Das Verhalten wurde geändert, so dass in jedem Sachdatenfenster nun unabhängig von dem anderen Fenster recherchiert werden kann.

Ausdruck

  • Neu: Die verschiedenen Vektordaten (Sketch, Freihand, Messwerkzeug, Selektion, Marker) werden jetzt beim Druck wieder als separate PDF-Layer behandelt. Die Einstellung an der Vorlage, welche Arten von Vektordaten im Druck ausgegeben werden sollen, funktioniert nun auch für cardo4.

  • Neu: Am Maßstabsplugin wurde am rechten Rand die Maßeinheit u.U. abgeschnitten. Das wird jetzt genauer berechnet und bei Platzmangel wird der letzte Wert zugunsten der Maßeinheit weggelassen.

  • Neu: Druck - Beschriftungsebenen werden jetzt mit dem Ebenennamen in der Liste der Legenden-Ebenen angezeigt und sind damit besser erkennbar. An dieser Stelle kann die Legende für den Ausdruck somit auch deaktiviert werden. Beachten Sie, dass wenn die Beschriftung als Legende in der Karte gedruckt werden soll, Sie einen Legendeneintrag hinterlegen müssen.

    Druck

  • Fix: Wurde am Container 'Platz freigeben' eingestellt, konnte es u.U. dazu kommen, dass der Container komplett ausgeblendet wurde, auch wenn Inhalt vorhanden war (z.B. bei Überlauflegenden).

Einstellungen

  • Neu: Wird in der Einstellung "Übersichtskarte" beim Bearbeiten keine Geometrie gezeichnet, kommt jetzt eine Meldung, dass keine Änderungen vorgenommen wurden.

  • Neu: Bei den Einstellungen kann man eine gespeicherte Sitzung als Startsitzung festlegen. Diese Liste zur Auswahl der gespeicherten Sitzung ist jetzt alphabetisch sortiert.

  • Neu: Die Karteneinstellungen wurden erweitert. Es kann nun ein Zoom-Steuerelement auf der Karte eingeblendet werden. Die Änderung dieser Einstellung benötigt Administrationsberechtigungen.

    Zoom

GeoSQL

  • Neu: Über eine Anwendungseinstellung kann jetzt festgelegt werden, ob die Kategoriegruppen der Abfrageliste beim Start auf- oder zugeklappt werden soll.

    GeoSQL

  • Neu: Die Beschreibung der Abfrage in GeoSQL (nicht GeoSQL-Lite) kann jetzt als Markdown angegeben werden und damit entsprechende Formatierungen enthalten.

  • Neu: Neue Funktion ST_LineInterpolatePoint(geom,fraction) implementiert.

Desktop

  • Neu: Anpassungen für die Liste der eigenen und freigegebenen Sitzungen (auf dem Startbutton und in der Startseite)

    • Es wird jetzt eine Scrollbar dargestellt, alle Einträge sind nun erreichbar.

    • Die Liste auf dem Desktop mit den zu ladenden Sitzungen ist jetzt nach dem Titel sortiert, nicht mehr nach dem Erstelldatum.

  • Fix: Beim Schnellsuchfeld wird jetzt verhindert, dass nach Anklicken oder Einklappen der Ergebnisliste der Suchbegriff und der Filter gelöscht werden.

  • Fix: Das Verschieben der Reihenfolge der Desktopicons per Drag&Drop ging bisher nur im Firefox. Zudem wurden eigene Dokumente nicht korrekt beachtet (d.h. die Reihenfolge wurde dabei nicht geändert).

"Mein cardo"

  • Fix: Beim Umbenennen von Einträgen in "Mein cardo" war es schlecht bzw. gar nicht möglich (abhängig vom Browser), die Maus zu verwenden, um den Cursor im Text zu platzieren oder Teile des Textes auszuwählen.

GSS

  • Neu: Die Einstellungen "clearChildsOnUpdate" und "addSelFields" werden jetzt auch in cardo4 ausgewertet.

Datentransformationsdienst (DTS)

  • Neu: Zur Zieltabellenbeschreibung kann der neue Parameter Spaltenübereinstimmung angegeben werden, über welchen man definieren kann, wie tolerant mit Spaltendifferenzen umgegangen werden soll (Intersect, Exakt, IgnoreAdditionalColumnsInSource).

  • Neu: Zwei neue Datenquelltypen Shape Datei und Shape Verzeichnis.
    Während bei 'Shape Datei' über die Konfiguration genau eine Datei angegeben werden kann, wird bei 'Shape Verzeichnis' die Angabe eines Verzeichnisses erwartet. Alle dort hinterlegten Shape-Dateien werden in die als Ziel definierte Datenbank-Tabelle importiert. Voraussetzung ist, dass alle Shapedateien identische Spaltendefinitionen haben. Über einen zusätzlichen Parameter kann ein Dateifilter mit Platzhalter * definiert werden.

    DTS

    Link zur Onlinehilfe DTS

Datenbrowser

  • Neu: Der Eintrag WMS- oder WFS-Dienst URL wurde umbenannt zu Dienst einbinden (WMS, WFS, FeatureService).

    Es können jetzt auch Featuredienste (Vektordaten) von ArcGis Rest-Services eingebunden werden.

    Die generierten Dateinamen der ".url" Datei enthalten jetzt den Diensttyp.

    ArcGisRest

  • Fix: Beim Extrahieren von hochgeladenen ZIP-Archiven wurden Umlaute in Dateinamen nicht korrekt dargestellt.

    Link zur Onlinehilfe Datenbrowser

System

  • Neu: In der Anwendungsverwaltung werden zu jeder Anwendung im Tab Registrierung Dateiinformationen wie Version und Dateiname gezeigt.

    Dateiinformationen

  • Neu: Im Dialog zum Einstellen der Berechtigungen werden Rechte-Enumerationswerte, die auch Kombinationen enthalten, jetzt besser ausgewertet.

  • Neu: Die Routing-Anwendung unterstützt nun auch mehrere GSS-Suchtopics. Weitere Information dazu finden Sie hier.

  • Neu: Für Kennwörter können jetzt Regeln festgelegt, die das Erneuern des Kennworts erzwingen.

    Die Auswertung erfolgt dabei nur in der cardo4 Benutzeroberfläche. In der Datenbank kann für die Nutzer eine Regel erstellt werden.

    Hinweis: Die ist nur für Nutzer möglich, die cardo intern verwaltet werden, d.h. nicht für Windows-Logins oder Nutzer, die sich per SSO Provider anmelden.

    Für die Einstellungen haben wir vorerst keine UI vorgesehen. Sie können in der Datenbank diese Einstellungen für die Benutzer einfach erstellen:

    Tabelle: sec_mt_user_objects, Spalte: password_rules, Bsp.:

      {
      maxAgeInDays: 160
      }
    

    Changepwd

  • Neu: Das mit Version 4.1.7 eingeführte Tracing wurde etwas verbessert. Einige neue Aktionen werden protokolliert und einige Texte der Log-Nachrichten überarbeitet.

  • Neu: Beim Einsatz eines Reverse-Proxis zum Zugriff auf das cardo ist die Verwendung der cardo4-Nutzeroberfläche fortan auch möglich, wenn der Reverse-Proxy nicht die empfohlenen X-Forwarded-...-Header an den cardo-Server übermittelt.

  • Fix: Bei Kontext-Menüs deren Inhalt so lang war, dass ein Scrollbalken erforderlich ist, wurden beim Klicken auf den Scrollbalken das Menü sofort wieder geschlossen.

  • Fix: U.U. wurden die Cache-Nachrichten nicht von der cardo Instanz behandelt, wenn auf dem Server mehrere cardo Instanzen installiert sind.

    cardo4 legt jetzt eine eigene MessageQueue mit dem Namen ".\private$\cardo4:{projectName}:" an.

    In der Folge wurden Änderungen, die bspw. im cardo Managementcenter erfolgten, erst sehr verzögert, bzw. nach dem explizitem Leeren des Caches erkannt.

  • Fix: Bei der internen Generierung von IWAN7 WMS- bzw. WFS-Ebenen wird die Verwendung eines eingestellten Proxy-Servers im Zusammenhang mit einer Bypass-Liste nun besser gehandhabt.

Puzzle

  • Neu: Neuimplementierung der Auswertungen der Berechtigungen für Klassen und Dokumente in cardo4.

  • Neu: ReactiveForm mit Speicheroptionen und besserem Support für Listen.

  • Neu: Überarbeitungen der Daten für die Verwendung in Scriban.

Sonstiges

Porta

  • Neu: Für Portalseiten (cardo.Porta) steht ein Themebuilder zur Verfügung. Hiermit können die Variablen eines Kiss-Themes (SCSS) übersichtlich dargestellt werden.

    S C S S Theme Builder

API

Server

  • Neu: Folgende Änderungen am ORM:

    • Bei dem Table-Attribut IduIT.Core.Data.ORM.DatabaseTable kann der "Name" (Quelle in der Datenbank) jetzt optional je nach Datenbanktyp spezifiziert werden.

      [IduIT.Core.Data.ORM.DatabaseTable(
      	MsSql="SELECT * FROM A",
      	PostgreSQL="SELECT * FROM B*,
      	Oracle="SELECT * FROM C"
      )]
      class MyClass {}
      
    • Zusätzlich kann eine CTE Expression an der Eigenschaft CTE definiert werden.

    • Die Methoden GetMany() des ORM für den gefilterten Datenabruf wurde um eine Variante GetManyCTE erweitert.

      Hier kann als erster Parameter eine Common-Table-Expression mit übergeben werden. Dies ist erforderlich, da einige Datenbanken CTEs nur am Anfang einer Abfrage zulassen.

      orm.GetManyCTE<Data.PuzzleNodeInfoWithCategoryNodeId>(
      	cte: $@"WITH nodes_cte AS (
      			SELECT pzl_nodes.id, pzl_nodes.parent_id FROM pzl_nodes where id = {SubTreeNodeId}
      			UNION ALL
      			  SELECT pzl_nodes.id, pzl_nodes.parent_id FROM  nodes_cte 
      			INNER JOIN 
      			  pzl_nodes on pzl_nodes.id = nodes_cte.parent_id
      			)
                ",
      	filterSql:$@" WHERE id in ( select id from nodes_cte  )",
      	id
      
  • Neu: Neues Interface IduIT.Core.Web.IHttpHandlerRequestInfo, welches von IDU.Core.Web.IHttpHandlerRequestInfo ableitet (inkl. des Attributs IduIT.Core.Web.IHttpHandlerRequestInfo). Hier kann festgelegt werden, dass bestimmte Methoden eine Anmeldung mit der Stufe XX erfordern. Konkret geht es um die Steuerung, dass anonyme implizite Anmeldungen nicht zulässig sind (siehe Eigenschaft RequiredLoginLevel).

  • Neu: Neue Exception-Klasse AuthenticationRequiredException. Diese kann in Verbindung mit der clientseitigen handleUnknownBrowserAuthentication der Klasse IduIT.Core.Web.Ajax.settings verwendet werden, um eigene Login-Formulare zu implementieren.

    Z.Z. gibt es für Testzwecke ein Loginverfahren, welches die API von Auth0 verwendet. Hierbei ging es uns um die grundsätzliche Implementierung einer Authentication mit dem Schema Bearer i.V.m. JWT.

CodeGen
  • Neu: BreakingChange Der Typescript-Proxy-Code für Ajax-Methoden mit Binärdaten wurde erweitert. Der Datentyp ist jetzt immer Blob[]|IduIT.Core.Kiss.Data.IFileListLike|FileList|null.

    Bisher: Blob[]||FileList|null.

    Dies hängt mit einer Änderung des Kiss.Form.Field.File zusammen, wo der Typ des Feldes nun nicht mehr FileList, sondern IduIT.Core.Kiss.Data.IFileListLike ist (Hintergrund der Änderung ist eine bessere Behandlung des onChange-Ereignisses).

    Verwenden Sie "IduIT: Create .Net TypeScriptCode" für das Aktualisieren der nettypes.d.ts, Codeanpassungen sind nicht erforderlich.

  • Neu: Der Newtonsoft.Json Converter verwendet bei der Generierung auch Eigenschaften (JsonIgnore, JsonProperty), die an dem Interface der implementierenden Klasse definiert sind (sofern dort nicht überschrieben). Dieser Umstand wird jetzt auch bei der Generierung der d.ts Dateien beachtet.

    In dem Zuge wird jetzt auch das [JsonObject(MemberSerialization = MemberSerialization.OptIn)] mit ausgewertet.

    Für Entwickler: Sie sollten nach dem Update "Create .Net Typescript Code" für Ihr Projekt durchführen und auf Änderungen an der netTypes.d.ts achten.

  • Neu: Die ComboBox hat eine maxLength - Eigenschaft zur Festlegung der Maximallänge des eingegebenen Textes (analog dem Text-Field).

Client

  • Neu: Update auf TypeScript 4.4 (bisher: 4.3)

    Entwickeln Sie selber cardo Erweiterungen, sollten Sie auch auf diese TypeScript Version aktualisieren.

    Ist die Umgebungsvariable IDU_TS_VERSION gesetzt, muss der Wert zu "4.4" geändert werden, bzw. siehe auch Update der Visual Studio Extension)

  • Neu: Tab-Karten in Formularen können jetzt auch Links (bisher nur oben/unten) angeordnet werden. (Siehe Eigenschaft tabBarPosition der Klasse IduIT.Core.Kiss.Ui.Tab.TabView, Enumerationstype ETabBarPosition.Left)

  • Neu: Einige Erweiterungen für Kiss.Ui.Core.Component:

    • Neue Methode findChildComponents(predicate: (cmp: Component, depth: number) => MatchResults): Component[], zum rekursiven Suchen von Kind-Komponenten
    • Neue, überschreibbare, Methode _getCmpAnchorEl(childCmp: Kiss.Ui.Core.Component): JQuery, hiermit können Kinder die per Add hinzugefügt werden, anderen HTML-Containern als dem standardmäßigen Root-Element zugewiesen werden.
  • Neu: Mittels IduIT.Promise.Deferred.wrap<T> können native JavaScript Promises als IPromise verpackt werden.

  • Neu: Neue Klasse IduIT.Core.Web.Promise.DeferredStack, mit deren Hilfe asynchrone Aktionen als Sequenz, eine nach der anderen, abgearbeitet werden können.

  • Neu: In Geometry.GeomUtils, gibt es neue Hilfsfunktionen formatLength(...) und formatArea(...). Mit diesen Funktionen wird eine passende Ausgabe entsprechend den Eingangsdaten erzeugt (Präzision und Einheit, abhängig von der Größe des Wertes und dem KBS).

  • Neu: Die Kiss.Ui.Form.Field.FlagsSelectBox hat eine neue optionale Konfiguration: sortByLabel - damit kann die Liste der Einträge nach dem Label sortiert werden. Standard ist eine Sortierung nach den Enum-Werten.

  • Neu: BreakingChange: Die Klasse AbstractGrid (betrifft damit Grid und Tree) wurde um ein Template-Argument für das SelectionModel erweitert.

      //Alt:
      this.__tree = new Kiss.Ui.Tree.Tree<__NodeType, __KeyType>({...});
    
      private __tree: Kiss.Ui.Tree.Tree<__NodeType, __KeyType>;
    
      //Neu:
      this.__tree = new Kiss.Ui.Tree.Tree<__NodeType, __KeyType, Kiss.Ui.Grid.Selection.MultiRowSelectionModel<Kiss.Data.Tree.IViewNode<__NodeType>>>({...});
    
      private __tree: Kiss.Ui.Tree.Tree<__NodeType, __KeyType, Kiss.Ui.Grid.Selection.MultiRowSelectionModel<Kiss.Data.Tree.IViewNode<__NodeType>>>;
    
  • Neu: BreakingChange: Das Handling von Key-Events wurde umgestaltet. Bisher wurde in einem KeyEvent-Listener e.keyCode gegen Kiss.Bom.KeyBoard.EKeyCode verglichen, um zu ermitteln ob eine bestimmte Taste gedrückt wurde. Dabei kann es unter Umständen zu Problemen kommen, wenn das auslösende Event ein KeyPress-Event ist, da in jenem Fall nicht mehr sichergestellt ist, dass der Wert in e.keyCode auch einem Keycode entspricht. Dieses Problem wurde nun im Kern angegangen. Es wird jetzt intern gegen KeyCodes und auch CharCodes geprüft, je nachdem welches initiale Event gefeuert wurde. Für Entwickler vereinfacht sich größtenteils die Prüfung auf bestimmte Tastenwerte.

      //bisher
      if (e.keyCode == Kiss.Bom.KeyBoard.EKeyCode.Enter)
      {
      	this.__startSearch();
      }
    
    
      //neu
      if (e.isEnter || e.isCtrlS)
      {
      	this.__startSearch();
      }
    
      //spezielle, durch Properties nicht abgedeckte Abfrage für Shift + S
      if (e.isInput(Kiss.Bom.KeyBoard.EKeyboardInput.S, Kiss.Bom.KeyBoard.EModifier.Shift))
      {
      	this.__startSearch();
      }
    

    Die Nutzung der Properties und Methoden am Event-Objekt selbst, stellt sicher dass intern jeweils abhängig vom Event entweder ein KeyCode oder ein CharCode für die Vergleiche herangezogen wird. Die keyCode-Property am Event-Objekt, sowie das Enum Kiss.Bom.KeyBoard.EKeyCode wurden obsolet und entsprechend entfernt. Cardo4 Anwendungen, welche Tastenkombinationen auswerten, müssen entsprechend dem oberen Beispiel angepasst werden.

    Dem Event-Objekt hängt zudem eine Property keyCodeOrCharCode vom Typ Kiss.Bom.KeyBoard.KeyCodeOrCharCode an.

    Diese besitzt eine type-Property welche Aufschluss über den Typ des Codes liefert (KeyCode oder CharCode). Entsprechend des Typs kann man dann entweder auf keyCode oder charCode zugreifen. Bei KeyDown- / KeyUp-Events wird die keyCode-Property beschrieben.

    Bei KeyPress-Events wird die charCode Property beschrieben. Bedingt durch unterschiedliches Browserverhalten, werden einige KeyPress-Events im Kern aus KeyDown-Events emuliert. Diese Events besitzen in keyCodeOrCharCode ebenfalls eine keyCode-Property.

  • Fix: Beim File-Field konnten die Trigger-Felder (bspw. Leeren) nicht angeklickt werden.

3rd Party

  • Update externer Bibliotheken:
    • TypeScript 4.3 zu 4.4
    • Scriban 4.0.1 zu 5.0.0
    • Markdig 0.25.0 zu 0.26.0
    • Monaco Editor 0.26.1 zu 0.30.1 (im IE bleibt es bei der 0.18)
    • NodaTime 3.0.5 zu 3.0.9

Zuletzt geändert: 30.11.2021 16:48:04 (erstmals erstellt 07.05.2021)