Version 4.1.8
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
- Evtl. Aktualisieren Sie ihre lokalen Installation für IduIT.GeoTools.Net
Für Entwickler
Wir empfehlen auf die TypeScript Version 4.4 zu aktualisieren
Wir empfehlen auf die neue Version unserer Visual Studio Extension zu aktualisieren
Beachten Sie die mit BreakingChanges markierten Einträge.
Januar 2022
Release 4.1.8.56837 (17.01.2022)
- Bereitstellung von Änderungen an einer kundenspezifischen Anwendung. Keine Änderungen an Kernkomponenten.
Release 4.1.8.49967 (05.01.2022)
- Fix: Im Schnellsuchfeld wurden verschiedene Probleme bezüglich der Bedienung behoben.
Dezember 2021
Release 4.1.8.49848 (16.12.2021)
Fix: Fehlerbehebung im AnysourceEditor, wenn die Bearbeitung einer Warehouse Ebene als Nichtadministrator gestartet wurde. Der Geodateneditor öffnete sich mit folgender Fehlermeldung (Cannot read properties of null (reading 'wk')) und blieb leer.
Change: Für ArcGisRest-Ebenen ist es aktuell nicht möglich einen Filter zu erstellen. Wir haben daher die Funktion aus dem Kontextmenü entfernt.
Release 4.1.8.49770 (10.12.2021)
Neu: In der Sachdatentabelle kann in "Plugins" jetzt auch auf Spalten zugegriffen werden, die ausgeblendet sind.
Fix: Bei Ebenen, die aus dem Datenbrowser geladen werden, fehlte u.U. die Funktion zum Daten bearbeiten im Kontextmenü.
Fix: Wenn die Karte minimiert war und im Sitzungsstatus gespeichert wurde, war beim Wiederherstellen der Karte die Ausdehnung am Nullpunkt.
Release 4.1.8.49737 (07.12.2021)
Neu: Als zusätzliche Option bei der Funktion "Klickpunkt kopieren" (Rechtsklick auf Karte) gibt es nun noch die Möglichkeit, die Koordinate in einem Format in die Zwischenablage zu kopieren, die im Programm ProBAUG der Firma ProSOZ komfortabel eingefügt werden kann.
Achtung: Die Nutzer müssen selbst dafür Sorge tragen, die Koordinaten in dem in ProBAUG verwendeten KBS zu kopieren!
Neu: Die Anzeige von Dateien über die Aktion "Datenbrowser" in der Sachdatentabelle wurde verbessert:
- größeres Fenster, abhängig von der momentanen Größe des Desktops
- Schaltflächen zum Maximieren und Minimieren des Fensters hinzugefügt
- Sonderbehandlung für Bild-Dateien, d.h. ein Bild wird in das Fenster eingepasst, wenn es größer als das Fenster ist
Fix: Sketch - Die angezeigten Bezeichnungen von Sketch-Objekten im Kontextmenü auf der Karte waren in bestimmten Konstellationen nicht korrekt, z.B. nach dem Duplizieren von Objekten oder von Objekten ohne explizitem Titel, die mit der Standardbenennung angezeigt wurden.
Fix: An einigen Stellen wurden Marker in der Karte nicht mehr im Druck mit ausgegeben.
Fix: In der Nutzer-Selbst-Registrierung können jetzt E-Mail-Adressen mit bis zu 200 Zeichen verwendet werden (bisher maximal 50 Zeichen).
Fix: Die Datenermittlung über "Gazetteer" in der Funktion "berechnete Spalten" der Sachdatenanzeige brachte den Fehler
Der Zugriff auf die cardo4 Umgebung setzt einen Http-Context voraus
. Der Fehler ist behoben.
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 Kennworts 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.
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.
Neu: Es gibt jetzt einen Sichtbarkeitsknopf, der die gesamte Sketch-Zeichnung ein-/ausblendet.
Neu: Wird ein Sketch-Objekt in der Karte selektiert, so wird jetzt auch das entsprechende Objekt im Sketch selber markiert und fokussiert.
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.
Karte
Neu: Selektionswerkzeug: Für die Kreisselektion wird jetzt der Radius angezeigt.
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.
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
- 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.
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.
GeoSQL
Neu: Über eine Anwendungseinstellung kann jetzt festgelegt werden, ob die Kategoriegruppen der Abfrageliste beim Start auf- oder zugeklappt werden soll.
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.
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.
Fix: Beim Extrahieren von hochgeladenen ZIP-Archiven wurden Umlaute in Dateinamen nicht korrekt dargestellt.
System
Neu: In der Anwendungsverwaltung werden zu jeder Anwendung im Tab Registrierung Dateiinformationen wie Version und Dateiname gezeigt.
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 }
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
Neu: In den Einstellungen zur Karte werden nun verfügbare Startkarten als Auswahlliste gezeigt.
Neu: Der Dialog "Informationen zur Geometrie" wurde überarbeitet. Es werden nun Längen- / Flächenangaben bezogen auf das eingestellte Standard-KBS von cardo sowie für das ausgewählte KBS dargestellt.
Neu: Mit <ENTER> wird in Baumansichten bei der Tastaturbedienung der Knoten expandiert/kollabiert, mit der Kontext-Menü-Taste kann für die aktuelle Zeile das Kontext-Menü (sofern dort implementiert) aufgerufen werden.
Fix: In Formularfeldern die nur der Anzeige dienen (DisplayField) konnte der Text nicht selektiert werden.
Neu: Änderung in unserer Visual-Studio Extension:
Das Ermitteln der TypeScript Version erfolgte bisher mit dem Festlegen der Umgebungsvariable IDU_TS_VERSION, jetzt ist in der Extension ein Mechanismus integriert, der beim Laden einer Solution im Pfad der .sln Datei nach "oben" schaut, ob eine TypeScriptVersion.txt vorhanden ist und die (2-stellige) Version dann dort ausliest und als Umgebungsvariable setzt.
Der große Vorteil dabei (für uns) ist, dass die Versionsangabe damit Bestandteil der Quellcodeverwaltung ist. Die Variable wird sowohl in den csproj-Dateien und der Extension für "Generate TS Code" ausgewertet.
Wichtiger Hinweis: Es ist scheinbar nicht möglich unter Verwendung der asynchronen Package-Extension einen Einstiegspunkt zu finden, der vor dem Laden der Solution aufgerufen wird. Daher mussten wir dieses Package als synchron belassen.
Lange Rede: Damit es funktioniert, muss in den Visual-Studio Einstellungen (Tools => Options => die Option "Allow synchronous autoload of extensions..." aktiviert werden.
Beachten Sie, dass die Visual Studio Version >= 16.11 sein muss. Für Visual Studio 2022 gibt es eine eigene Version.
Den aktualisierten Download finden unter Entwickler-Extension.
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.
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 VarianteGetManyCTE
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 vonIDU.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 clientseitigenhandleUnknownBrowserAuthentication
der KlasseIduIT.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.
- Neue Methode
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 HilfsfunktionenformatLength(...)
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
gegenKiss.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 ine.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 EnumKiss.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 TypKiss.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 aufkeyCode
odercharCode
zugreifen. Bei KeyDown- / KeyUp-Events wird diekeyCode
-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 inkeyCodeOrCharCode
ebenfalls einekeyCode
-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: 16.04.2024 08:43:33 (erstmals erstellt 07.05.2021)