Changelog (Release)

Aktuell ist die Version 4.2.2, diese wurde am 03.02.2023 veröffentlicht.

Bitte beachten Sie die folgenden Hinweise zu diesem Update

Für Betreuer

  • Verschiedene Einstellungen aus der "user.mdb" wurden in die Steuerdatenbank übernommen, die Verwaltung in den Grundeinstellungen ist damit obsolet. Bitte machen Sie sich mit den Änderungen vertraut.
  • Denken Sie daran, das SqlUpdate für die installierten cardo4 Anwendungen aufzurufen (wenn das Monitoring aktiviert ist, wird dies bei korrekter Konfiguration selbständig ausgeführt).

  • Fragen Sie ihre Hersteller weiterer cardo4 Anwendungen, ob die "Hinweise für Entwickler" umgesetzt wurden.

  • Evtl. Aktualisieren Sie ihre lokale Installation für IduIT.GeoTools.Net.

Für Entwickler

  • Beachten Sie unbedingt die Hinweise zu Update auf ES6 (ES2015) und den aufgeführten BreakingChanges.
  • Sie sollten auf die TypeScript Version 4.9 aktualisieren.
  • Ein aktualisierten Download der Entwickler-Extension enthält einen Mini-Fix bzgl. einer Fehlermeldung.

Februar 2023

4.2.2 (03.02.2023)

Schnellstart

  • Fix: Suchtreffer aus dem Schnellstart werden jetzt - bei gleicher Treffer-Relevanz aufsteigend sortiert (bisher absteigend). (#143)

Karte

  • Neu: Die Standard-Export Funktion wurde um das Format "OGC KML" erweitert.

    Export

  • Fix: Bei einigen Ebenentypen - bspw. bei DXF - fehlten in der Karte einige Funktionen (Metadaten anzeigen / bearbeiten, Desktopicon hinzufügen / entfernen, ...). Hintergrund: MapRenderingLayer wurden nur an wenigen Stellen behandelt - diese besitzen jetzt einen Basis-WKT, der behandelt wird. (#7437)

  • Neu: Das Wechseln der Grundkarte kann zur Folge haben, dass das Koordinatenbezugssystem (KBS) der Karte verändert wird, da nicht jede Grundkarte jedes KBS unterstützt. Der Wechsel zur OpenStreetMap-Grundkarte führte deshalb immer dazu, dass das OSM-KBS eingestellt wurde. Dieses ist aber nicht ideal, v.a. nicht bei der Erfassung von Daten und bei der Bestimmung von Flächengrößen oder Längen. Deswegen wurde das Verhalten beim Wechsel der Grundkarte angepasst. Ist die Karte aktuell im OSM-KBS (3857) und wechselt man anschließend die Grundkarte, so wird versucht, das Koordinatenbezugssystem zu verändern - bevorzugt auf das voreingestellte Koordinatenbezugssystem der cardo-Installation. (#7472)

  • Neu: Aus einem Maptip heraus sind jetzt zu einem Treffer auch die Aktionen möglich, die die Karte bietet. Der Haupteintrag ist "Geometrie in Karte anzeigen". Sofern man nur eine Geometrie der Ebene im Maptip getroffen hat, gibt es auch die Option "Als Freihandgeometrie übernehmen" (#7505).

    Maptip aufrufen

Datenbrowser

  • Neu: In den Ebeneneinstellungen gibt es die neue Eigenschaft "BBox undefiniert", dies ist vor allem dann sinnvoll, wenn die Quelle bearbeitbar ist und die Gesamtausdehnung sich durch die Bearbeitung potentiell ändert.

    Datenbrowser

  • Neu: Bei aus dem Datenbrowser heraus erstellten dateibasierten Ebenen entspricht der in der Karte angezeigte Ebenenname jetzt (fast) immer dem Dateinamen (Ausnahme: GeoPackage) (#7912). Zuvor wurde der Datentyp als Name mit angezeigt.

  • Neu: Über einen neuen Button können einzelne Einträge der Merkliste direkt wieder entfernt werden.

  • Neu: Beim Herunterladen der Elemente der Merkliste werden die Ordner jetzt so ins Zip integriert, dass alle Ordner ab dem ersten Unterordner, in dem sich die Pfade der Merklisten-Elemente unterscheiden, enthalten sind (#7923).

  • Fix: Beim Löschen oder Umbenennen von Dateien konnte es zu einem Timeout kommen, bzw. der Vorgang dauerte ungewöhnlich lange (Hintergründe: siehe Änderung in Iwan7.

  • Fix: Nach einem Umzug von im Datenbrowser eingebundenen Dateien auf einen neuen Server oder ein neues Laufwerk trat u.U. ein Fehler der Art ERROR: duplicate key value violates unique constraint "uix_c4fnid_1" beim Verwenden von Dateien auf.

    Die hinterlegten File-IDs werden jetzt automatisch beim ersten Zugriff aktualisiert.

AnySourceEditor

  • Fix: Beim Bearbeiten einer Ebene auf Basis PostgreSQL / Iwan wurde das Datenbank-Kennwort nicht korrekt übergeben, wenn es im Feld "password" der Ebene eingestellt war (kein Bestandteil des Connection-Strings).

  • Neu: Beim Verwenden der Teilungsfunktion (Split) in der Toolbox wird ein zusätzlicher Hinweis zum Verhalten dieser Funktion ausgegeben (#7829).

    Toolbox

  • Neu: Die Schaltfläche zum Verschieben der Ergebnisgeometrie in die Ablage hat ein anderes Symbol erhalten.

Sachdatenanzeige

  • Neu: Exportiert man alle Abfragen aus der Sachdatenanzeige in einem Zug zu DXF, so geht das nur, wenn auch alle Sachdatenabfragen als DXF-Dateien eingebunden sind (Andere Quellformate können derzeit nicht in DXF konvertiert werden!). Die Meldung, die darauf hinweist, wenn mind. eine Abfrage enthalten ist, die nicht auf DXF basiert, wurde jetzt etwas eindeutiger formuliert (#7854).

    Export DXF

  • Neu: In der Export-Funktion eines einzelnen Tabs in der Sachdatenanzeige fehlte bisher die Option 'DXF' auch für DXF-Dateien. Diese ist jetzt ergänzt. (#7853).

  • Neu: Beim DXF-Export aus der Sachdatenanzeige wird jetzt der Geometrie-Filter angewendet. Allerdings wird nur die Bounding-Box der Geometrie als Filter-Bounding-Box verwendet - ein anderer Filter ist derzeit nicht implementiert. Wurde eine Sachdatenrecherche mit einem anderen Filter ausgeführt (bspw. Layer = 'ABC'), dann kommt beim Exportieren als DXF ein Fehler, dass ein solcher Filter nicht unterstützt wird (#7853). Der Nutzer muss dann den Filter entfernen und den Export neu starten.

    Export DXF

  • Neu: Beim Export nach Excel werden beim Generieren des Worksheet-Namens Umlaute und Leerzeichen jetzt nicht mehr einfach entfernt, sondern ersetzt durch 'ae' etc. bzw. durch einen Unterstrich. Der Name der Worksheets unterliegt bestimmten Restriktionen, die auch von der Excel-Version abhängig zu sein scheinen. Deshalb verzichten wir weiterhin auf die direkte Verwendung von Umlauten (#7856).

  • Neu: Bei den berechneten Spalten wurde der Typ "Fläche / Länge" ausgebaut. Man kann sich dort jetzt zusätzlich auch den Umfang von Flächen sowie die Mittelpunktkoordinate (für alle Geometrietypen) ermitteln lassen. Welche statistischen Parameter der Geometrie ermittelt werden sollen, kann bzw. muss man angeben. Standardmäßig werden wie bisher Fläche und Länge ausgegeben (#686).

    berechnete Spalten

Systemeinstellungen (cardo4)

DTS

  • Neu: Verbesserungen beim Import-Task mit dem Loader "GeoJSON FeatureCollection aus Datei oder Url":

    • Attribute aus der JSON Datei, deren Datentyp nicht bestimmt werden konnte (weil alle Daten null sind), werden beim Import jetzt ignoriert. Bisher trat u.U. ein Fehler auf, dass der Typ "Objekt" nicht konvertiert werden konnten.
  • Fix: Beim Import in Microsoft-SQL Server trat ein Fehler auf, wenn eine Double-Spalte in der Quelle enthalten war.

  • Fix: Das SQL für die Datenaufbereitung nach dem Import wurde bisher zwar ausgeführt, aber immer wieder zurückgerollt. Jetzt werden Datenänderungen aus diesem optionalen SQL auch festgeschrieben.

  • Neu: Beim Speichern der Einstellungen werden jetzt auch die optionalen Angaben zur Ausführung validiert.

"Mein cardo"

Anwendungsverwaltung

  • Neu: In den Dateiinformationen einer Anwendung wird jetzt auch das Dateidatum der DLL mit angezeigt. (#7669)

  • Fix: Wenn beim Start des IIS ein Task zurückgesetzt wurde (d.h. zum Zeitpunkt war die Spalte current_host nicht null), dann trat beim Update in der DB ein Fehler auf, da die Spalte ds_modifier nicht korrekt befüllt wurde.

    Der Task-Scheduler wurde dadurch nicht gestartet.

Dashboard

  • Neu: Im Dashboard gibt es für die selbstregistrierten Nutzer einige neue Funktionen: an Benutzern, welche die Aktivierung verpasst haben, kann die E-Mail zur Aktivierung erneut versendet werden. Benutzer, welche die Registrierung nicht abgeschlossen haben, können gelöscht werden.

  • Neu: Die Fehlerliste im Dashbord enthält als Zeitpunkt jetzt den letzten Zeitpunkt, zu dem das Ereignis aufgetreten ist. Nach diesem ist die Liste absteigend sortiert.

Sonstiges

  • Neu: Fehlermeldungen in Formularen (die roten Texte...) werden jetzt besser dargestellt (vor allem durch Einfügen von Umbrüchen).

  • Neu: Im Kontextmenü des Startbuttons (links oben) gibt es jetzt für cardo-Admins einen neuen Eintrag zum direkten Öffnen des cardo3-Managementcenters in einem neuen Browserfenster. (#7473)

  • Neu: Die Prüfung, dass der InternetExplorer nicht mehr für cardo4 verwendet wird, wurde jetzt auf die SPA-Anwendungen ausgedehnt. In dem Zuge wurde angepasst, dass der Benutzer auch eine entsprechende Fehlermeldung erhält (#7325).

  • Neu: Für cardo Instanzen mit Basic-Authentifizierung kann jetzt das Zurücksetzen der Kennwörter durch die Benutzer aktiviert werden. (#7916) TODO: Hilfelink

Managementcenter (alte Version)

  • Fix: Das Testcenter lieferte bei der Prüfung "Implementierung IPuzzleCategorie Klassen" den Fehler "Probleme bei Klasse IDU.cardo3.CoreModules.Puzzle.WebServices.PuzzleBaseService2+AdHocPuzzleCategory erkannt: Die CategoryId der Klasse IDU.cardo3.CoreModules.Puzzle.WebServices.PuzzleBaseService2+AdHocPuzzleCategory ist leer." - dieser wurde entfernt.

  • Fix: Der alte Symboleditor im Managementcenter funktionierte nicht mehr für Stipples - das dort verwendete Control wurde nur vom InternetExplorer (bei bestimmten Sicherheitseinstellungen) unterstützt. Wir haben den Stipple-Editor dort entfernt. Sofern ein Symbol mit "Stippeln" bearbeitet und tatsächlich die Stipple-Einstellung beibehalten werden soll, sollte eine neue Legende von Typ "Script-Eingabe" verwendet werden. (#7290)

  • Fix: Das Problem mit dem "springenden" PropertyGrid bei den Ebeneneinstellungen (Managementcenter) im FireFox bestand noch beim Legendenfeld (#4848).

  • Fix: Beim Löschen eines Ebenenbaums gab es Probleme, sofern die Mehrsprachigkeit aktiviert war (#7935).

Puzzle-Workbench

  • Neu: in der Workbench ist eine neue Aktion vorhanden, die aus dem IKX Klassenmodell eines Stores passende C# Klassen für den Datenzugriff generiert.

API

Client

  • Neu: BreakingChange Das Ziel für die TypeScript Kompilierung ist jetzt ES6 (ES2015), bisher war es ES5.

    Wir haben die Hinweise für evtl. Codeanpassungen hier zusammengefasst.

    Zudem wird der Code jetzt mit "use strict" Ausgabe generiert.

    Ggf. entfernen wird diese Option für das Release.

  • Neu: BreakingChange Das Interface Kiss.IDisposable wurde um die nicht optionale Eigenschaft "disposing : boolean" erweitert.

    Leitet ihre Implementierung nicht von Kiss.Base ab, muss diese Eigenschaft entsprechend implementiert werden. Bspw.:

      /**
      * (readonly)
      * true ab dem Zeitpunkt, wo ein Aufruf an dispose erfolgt.
      */
      public get disposing(): boolean
      {
      	return this.dispose === Kiss.Constants.emptyFn;
      }
    
      /**
      * Dispose. Wird nur genau 1x ausgeführt, wiederholte Aufrufe sind wirkungslos.
      */
      public dispose(): void
      {
      	this.dispose = Kiss.Constants.emptyFn;
    
        /*YourCodeHere*/
    }
    

    Sie sollten den TypeScript Code kompilieren, achten Sie auf den Fehler:

    TS2345: Argument of type 'XXX' is not assignable to parameter of type 'Kiss.IDisposable'.

    und passen Sie den Code entsprechend obigem Beispiel an.

  • Neu: BreakingChange Die Eigenschaft _layout der Kiss.Ui.Core.Component ist jetzt privat. Vorher war diese protected. Die direkte Zuweisung führt nicht zum gewünschten Ergebnis. Es sollte immer _setLayout verwendet werden. Um diese Fehlerquelle zu begrenzen gibt es diese Änderung. Für den lesenden Zugriff steht jetzt _getLayout() zur Verfügung.

  • Neu: BreakingChange Das Interface Kiss.Ui.Form.Field.IField wurde um die nicht optionale Methode isEmpty():boolean erweitert.

    Leitet ihre Implementierung nicht von Kiss.Ui.Form.Field.Field ab, muss diese Methode entsprechend implementiert werden. Bspw.:

      /**
      * Gibt an, ob der Inhalt (logisch) leer ist.
      */
      public isEmpty(): boolean
      {
      	return this.value == null;
      }
    

    Sie sollten den TypeScript Code kompilieren, achten Sie auf den Fehler:

    TS2741: Property 'isEmpty' is missing ...

    und passen Sie den Code entsprechend obigem Beispiel an.

  • Neu: Neues Event onModified<void> an IduIT.Core.Kiss.Data.Store

  • Neu: Einige neue Predicate Methoden, die vor allem in array.filter verwendet werden können, null wird dabei aus dem Typ entfernt (TypeGuard).

    • Kiss.Predicates.notEmpty<TValue>(v:TValue|null) : TValue
    • Kiss.Predicates.notDisposed<TValue>(v:TValue|null) : TValue
    • Kiss.Predicates.isDisposed<TValue>(v:TValue|null) : TValue
    • Kiss.Predicates.stringNotEmpty<string>(v:string|null) : string
    • Kiss.Predicates.stringNotEmptyOrWhitespace<string>(v:string|null) : string
  • Neu: die Eigenschaft readOnly wurde aus IduIT.Core.PropertyModel.Ui.Form.Form entfernt.

  • Fix: Der Titel eines Windows (MessageBox, Panel) wurde nicht korrekt als Kiss.Ui.Core.IComplexTextWithContent ausgewertet.

  • Neu: Neue Methoden IduIT.Core.Kiss.Ui.Core.withCmpBatchUpdate(callback) sowie beginCmpBatchUpdate, endCmpBatchUpdate, dies kann für Optimierungen verwendet werden, wenn viele Aktionen stattfinden, die das Layout modifizieren.

  • Neu: Neue Feld-Komponenten:

    • IduIT.Core.Kiss.Ui.Form.Field.CheckboxGroup
    • IduIT.Core.Kiss.Ui.Form.Field.RadioGroup
  • Neu: Neue Eigenschaft descriptionPos (siehe Enum IduIT.Core.Kiss.Ui.Form.EDescriptionPos) für Kiss.Ui.Form.Item.

  • Neu: Bei falscher Verwendung von Menü-Buttons mit Untermenüs wird im Debug eine Warnung im Trace mit Korrekturhinweisen generiert.

  • Fix: Im PropertyModel, wenn DependentProperty mit Ziel "visible" auf einen Tab angewendet wurde, wurde dieser beim Sichtbarwerden immer sofort aktiviert, anstatt nur den Tab-Button anzuzeigen.

  • Fix: Kiss.Lang.Number.format/IduIT.Core.Localization.Format.Number/Kiss.Ui.Form.Field.Number: Bei negativen Zahlen ohne Komma (egal in welchem Format) verdoppelte sich bei der Formatierung das Minus-Zeichen. Dadurch funktionierten negative Zahlen auch im Number-Field nicht, weder per Tastatureingabe, noch per Spinner.

  • Fix: Die Methode trySetColumnStates<void> des IduIT.Core.Kiss.Ui.Grid.AbstractGrid ändert jetzt die Spaltenbreite nicht mehr, wenn die Spalte selbst nicht resizable ist. Dafür ist an der IduIT.Core.Kiss.Ui.Grid.Column.Column neu die Eigenschaft isResiable auslesbar.

  • Fix: Bei Tastaturnavigation in einer Liste wurde das Verhalten Firefox an das Verhalten Chrome angepasst: Tab selektiert den nächsten Listeneintrag.

  • Neu: Kiss.Ui.List.Selection.ItemSelectionModel erwartet jetzt optional im Konstruktor eine Konfiguration. Als optionalen Parameter kann man nun preventSelectionOnTabNavigation auf true setzen, damit bei Navigation per Tab in den Listenelementen nur noch der Fokus gesetzt, aber keine implizite Selektion ausgeführt wird. Zudem kann jetzt neben der Space-Taste auch die Enter-Taste verwendet werden, um einen fokussierten Eintrag zu selektieren. Des Weiteren wurde das Verhalten bei Tastaturnavigation per Tab-Taste verbessert. Springt man per Tab über das letzte Listenelement bzw. vor das erste Listenelement, wird jetzt das nachfolgende bzw. vorhergehende Control in der TAB-Reihenfolge fokussiert. Man kann also per Tab-Taste wieder aus dem ListControl herausspringen.

  • Neu: IduIT.Core.Kiss.Ui.Window.MessageBox hat eine neue Konfig-Einstellung: helpUrl. Damit kann auch eine MessageBox mit einem Hilfe-Button im Header versehen werden. Es ist die Url der Seite anzugeben, die beim Klick auf den Button angezeigt werden soll.

Server

  • Neu: BreakingChange Das Interface ISPAControlBaseComponent wurde um bool UseDefaultEnvironmentCheck() erweitert. Dies steuert, ob die Standard Browser-Kompatibilitätsabfrage beim Laden des Controls durchgeführt werden soll.

  • Neu: Neue statische Hilfsklasse IduIT.cardo.GlobalAsaxUtil, die in der Global.asax verwendet werden kann. Vor allem für die Ausgabe Standardisierte Fehlermeldungen (bspw. Information, dass der Nutzerzugang z.Z. gesperrt ist etc.).

    Behandelt werden hierbei auch alle Ableitungen von Ausnahmen, die von der (ebenfalls neuen) Klasse IduIT.Core.Exceptions.VisibleToClientExceptionBase ableiten.

    Grund der Anpassungen war die Einführung der BrowserNotSupportedExceptions - Klasse.

  • Neu: Anwendungen mit SQLUpdate können eine spezifische Version eines SQL Update-Handlers (generiert aus unserem XML das SQL) für bestimmte Datenbanken angeben.

  • Neu: Mit dem neuem Interface ICardoManagedApplicationWithSQLUpdateSupport2 können Anwendungen beim Ausführen des Handlers für SQLUpdates weitere Konfigurationen vornehmen (z.B. für Oracle: Festlegen der SRID für Erstellung von Geometrie-Indexen).

  • Neu: Für die Eigenschaft MergeConfig der Methode GetMerge des ORM Handler kann ein PreSQL übergeben werden (Bspw. für WITH - Klauseln).

  • Neu: Neue Extension-Methoden in IduIT.Core.Extensions:

    • AppendIf(AppendIf(this System.Text.StringBuilder bld)
    • HtmlToPlainText(this string html)

PiB

  • Neu: Performance-Optimierung der Methode GetProcessObjectsWithRelatedPibObjects (bspw. für das Abrufen der Vorgangsliste).

  • Neu: BreakingChange: Die Eigenschaft DenyReOpenAction eines WorkitemDescriptionAttribute wurde entfernt und durch die Eigenschaft EBAllowReopen ersetzt. Dabei handelt es sich um einen EnvDependendBool-Typ (String), dieser kann zur Laufzeit mit der Klasse IduIT.PiB.Tools.EnvDependendBool ausgewertet werden.

    Die Klasse steht client- und serverseitig zur Verfügung. Dabei können verschiedene Bedingungen angegeben werden, bspw. Umgebung ist Dev oder Nutzer ist Mitglied der Gruppe XYZ.

    Neben der Nutzung in den Attributwerten steht diese Eigenschaft auch an verschiedene clientseitigen Konfigurationen zur Verfügung, bspw. bei der Einstellung der Objektlisten, ob die Aktion "Löschen" angezeigt werden soll (allowDelete).

3rd Party

  • Update externer Bibliotheken:
    • TypeScript 4.8 zu 4.9
    • TSLib 2.4.0 zu 2.4.1
    • MonacoEditor 0.34.0 zu 0.34.1
    • Pako 2.0.4 zu 2.1.0
    • NodaTime 3.1.4 zu 3.1.6
    • Fontawesome 6.2.0 zu 6.2.1
    • Scriban 5.5.0 zu 5.5.2
    • JQuery 3.6.1 zu 3.6.3
    • Newtonsoft.Json 13.0.1 zu 13.0.2
    • NpgSQL: Update von 4.1.10 zu 4.1.12

Zuletzt geändert: 03.02.2023 14:40:03 (erstmals erstellt 04.03.2022)