Übersicht aller Update-Hinweise

4.18

Result Center: Änderungen bei der Zahlenformatierung

Mit der neuen Funktion zur Steuerung der Formatierung von Datumsspalten und Zahlen ergeben sich Änderungen bei der Standardausgabe von Zahlen.

Fließkommazahlen haben nun standardmäßig drei Stellen nach dem Komma, was zu einer anderen Ausgabe als bisher führen kann. Ganzzahlige Werte haben überhaupt keine Nachkommastellen. Dieses Verhalten wird durch die Metadaten des Stores bestimmt. Wenn ein Dienst beispielsweise Integer-Werte in einem Feld des Typs "Double" speichert, erhalten diese Werte auch Nachkommastellen (Nullen am Ende).

AutoStoreRegistrierung

Wie zuvor beschrieben, werden neue Layer-Typen für die Suche und Selektion unterstützt. Wenn Sie die Auto-Store-Registrierung für eine App aktiviert haben und die Kartenkonfiguration einen der neu unterstützten Typen enthält, werden diese nun möglicherweise im räumlichen Auswahldialog angezeigt oder erzeugen Ergebnisse, wenn Sie die Suchfunktion verwenden.

Bundle layerlist umbenannt

Das Bundle layerlist wurde in test-layerlist umbenannt, um seinen Zweck deutlich zu machen. Wenn es verwendet wird, muss die App-Konfiguration entsprechend aktualisiert werden.

Änderungen im Datenbankschema der Beschreibungsspalten

Neue Installationen verwenden eine geringere Länge für die Beschreibungsspalten der Tabellen apps, apptemplates, jspacks und reporttemplates (512 Zeichen, statt 2048) als in früheren Versionen. Die bisherige Länge war für einige Datenbanken im Hinblick auf die Indizierung zu groß und konnte bei der Einrichtung zu Warnungen führen. In der Praxis werden sehr lange Beschreibungen nicht verwendet, so dass diese Änderung ohne Bedenken auf bestehende Installationen angewendet werden kann.

Um die Änderung auf Ihre bestehende Installation anzuwenden, gehen Sie manuell vor:

  • Der Datenbankbenutzer muss die Berechtigung haben, Tabellen und Indizes zu erstellen/zu ändern.

  • Nach der Aktualisierung können die Berechtigungen wieder entzogen werden.

Verwenden Sie das entsprechende SQL-Skript für die von Ihnen verwendete Datenbank. Das Skript ändert den Datentyp der betreffenden Spalten und schneidet alle vorhandenen Werte auf die neue Maximallänge ab.

Änderung der ComponentContext.getProperties Methode

Sollten Sie in eigenen Komponenten die Methode ComponentContext.getProperties verwenden, beachten Sie bitte, dass diese Methode in diesem Release geändert wurde. Die Methode gibt jetzt ein einfaches JavaScript Objekt zurück, welches die Konfigurationsoptionen der Komponente auflistet und nicht mehr ein Objekt vom Typ ct/Hash liefert.

Wir empfehlen ganz auf die Verwendung dieser Methode zu verzichten und den empfohlenen Weg über _properties zu nutzen:

activate() {
    const properties = this._properties;
    const value = properties.key;
}

Alternativ passen Sie Ihren Code wenn nötig wie folgt an:

activate(componentContext) {
    const properties = componentContext.getProperties();

    // alter Code
    const value = properties.get('key');

    // neuer Code
    const vale = properties.key;

    // alter Code
    const propertiesAsObject = properties.entries;

    // neuer Code
    const propertiesAsObject = properties;
}

4.17

Nicht benötigter Datenbank-Index

Bitte löschen Sie den Datenbank-Index apps_groupname_idx. Dieser ist nicht notwendig, da die Spalten Teil eines anderen Index sind.

Update der APP_ASSETS Tabelle bei Verwendung von Microsoft SQL Server

Sollten Sie als map.apps Datenbank einen Microsoft SQL Server verwenden, so ist ein zusätzlicher Migrationsschritt notwendig. In der Tabelle APPS_ASSETS wurde Typ der Spalte ID von binary(255) auf binary(16) geändert. Bitte führen Sie das Skript updater-app-assets-table-sqlserver.sql aus, um die Änderungen durchzuführen.

4.16

CSV-Export aus dem (alten) Result Center

Von den hier beschriebenen Änderungen ist nur das "alte" Result Center betroffen (Bundle resultcenter). Bei der Verwendung des mit map.apps 4.14 neu eingeführten Result Centers (Bundles result-ui und result-api) ist nichts zu beachten.

Die Reihenfolge der Spalten in einem CSV-Export entspricht jetzt der Reihenfolge der Felder in den zugrunde liegenden Store-Metadaten. Zuvor war dies nicht immer der Fall, so dass sich nach dem Update auf diese Version die Reihenfolge anders darstellen kann als zuvor. Außerdem wurde der Standard-Wert der Eigenschaft detectExtraFields von true auf false geändert. Dies kann dazu führen, dass nun ohne weitere Anpassung weniger Spalten im Export erscheinen als zuvor. Wenn zusätzliche Felder detektiert werden, werden diese ans Ende der Felder aus den Store-Metadaten angehängt.

4.15

Eigenständiger Identity Service für OAuth-Integration

Mit Version 4.13.0 wurde in map.apps der OAuth Authentifizierungsmodus eingeführt. In diesem Modus delegiert map.apps die Anmeldung an ArcGIS Online, ArcGIS Enterprise-Portal oder Keycloak. Dieser Modus wurde umbenannt von OAUTH in IDENTITY und erfordert ab dieser Version die Installation des separaten Dienstes Identity Service. Dieser Dienst kann aus dem con terra Download Portal heruntergeladen werden. Mehr Informationen zu dem neuen Dienst finden Sie unter Identity Service.

Wenn Sie den Identity Service nicht mit der gleichen Datenbank wie map.apps verwenden, löschen Sie die Tabellen IDENT_EXTSESSIONS, IDENT_SESSIONS und IDENT_TOKENS aus der Datenbank. Passende SQL Scripte finden Sie hier: PostgreSQL, Microsoft SQL Server und Oracle.

Wenn Sie folgende Konfigurationsparameter in der globalen Konfiguration angepasst haben, entfernen Sie diese Anpassungen:

Entfallene Optionen
security.oauth.provider
security.oauth.provider.arcgis.url
security.oauth.provider.arcgis.organizations
security.oauth.provider.arcgis.roles
security.oauth.provider.keycloak.url
security.oauth.provider.keycloak.realm
security.oauth.provider.keycloak.revokeRefreshTokens
security.oauth.provider.keycloak.scopes
security.oauth.clientId
security.oauth.clientSecret
security.oauth.tokenRules
security.sharedSecret
security.session.maxIdleTimeInSeconds
security.session.cookieName
security.session.cookieDomain
security.session.enforceSecureAndSameSiteNone

Für die Integration des neuen Dienstes wurden neue Konfigurationsparameter ergänzt. Bitte folgen Sie der Anleitung zur Authentifizierung unter ArcGIS Enterprise portal, ArcGIS Online oder Keycloak, um ihre Konfiguration zu aktualisieren.

Nicht mehr benötigte Datenbankspalten

Die Synchronisierung von Apps und App-Vorlagen wird mit diesem Release entfernt (siehe Ausgelaufene Unterstützung). Sie können daher die Spalten SYNC_TEMPL_BIN, SYNC_MODE, SYNC_AUTO, SYNC_AT aus der Tabelle APPS der Datenbank löschen. Passende SQL Scripte finden Sie hier: PostgreSQL, Microsoft SQL Server und Oracle.

Umbenennung der Konfiguration proxy.cors.trustedServers

Die Konfigurations-Option proxy.cors.trustedServers wurde umbenannt in cors.request.trustedServers. Wenn Sie in Option proxy.cors.trustedServers in der globalen Konfiguration angepasst haben, ändern Sie diese auf cors.request.trustedServers. Die Namensänderung soll deutlich machen, dass diese Konfigurationsoption nicht vom in map.apps integrierten Proxy interpretiert wird.

Zeichenkodierung von JavaScript-Dateien

Durch Änderungen im Buildsystem von map.apps werden Sonderzeichen in JavaScript-Strings nicht mehr wie zuvor in ASCII umgewandelt. Betroffen sind insbesondere Dateien, die Übersetzungsstrings enthalten (bundle.js).

Es besteht kein Handlungsbedarf, wenn Sie map.apps in der Standardkonfiguration betreiben (Auslieferung der Apps über das map.apps Backend).

Falls Sie jedoch einen eigenen Webserver zum Ausliefern von map.apps JavaScript-Dateien betreiben (z.B. im Rahmen des nativen App-Exports), stellen Sie sicher, dass diese vom Webserver mit dem HTTP-Header Content-Type: text/javascript; charset=utf-8 ausgeliefert werden.

Keine Anführungszeichen in manager.config.viewbundles verwenden

Bitte entfernen Sie die Anführungszeichen aus den Bundlenamen, die in manager.config.viewbundles aufgeführt sind.

„Keine Anführungszeichen in manager.config.viewbundles“
# Alt:
manager.config.viewbundles="appmanagement", "reportmanagement", "bundlemanagement"

# Neu (Anführungszeichen entfernt)
manager.config.viewbundles=appmanagement,reportmanagement,bundlemanagement

4.14

Aktualisierte Standard-App

Die Vorlage für die Standard-App wurde aktualisiert. Sofern Sie keine eigenen Anpassungen vorgenommen haben, entfernen Sie die Datei default-app-4.zip aus dem Arbeitsverzeichnis. Der Pfad zu diesem Verzeichnis ist im Parameter data.directory.location in der Datei %TOMCAT%\webapps\mapapps\WEBINF\classes\custom-application.properties festgelegt.

Editor Widget

Mit Upgrade der Esri ArcGIS API for JavaScript wird mit dem editing Bundle in map.apps ein komplett überarbeitetes Editing Widget bereit gestellt. Im Zuge dessen wird die Konfigurationsoption allowedWorkflows:["create"] abgekündigt. Stattdessen sollte allowedWorkflows:["create-features"] benutzt werden.

DGrid

DGrid war von einem Design-Fehler in seiner API betroffen, der als Angriffsvektor für JavaScript-Injection genutzt werden konnte. Die genutzte Bibliothek wurde auf Version 1.3.3 aktualisiert, die einen Fix für dieses Problem enthält.

Dieses Update bringt eine wichtige Änderung in Bezug auf benutzerdefinierte Formatierer mit sich: Während Werte die von einem Formatierer zurückgegeben wurden, bisher immer als HTML interpretiert wurden, werden die Rückgabewerte nun standardmäßig angemessen escaped. Nur wenn explizit { html: "…​string…​" } zurückgegeben wird, wird der Wert als HTML interpretiert. Weitere Details stehen in diesem Github-Issue .

Example:

// Before:
function makeRed(value) {
    // Was vulnerable before, will now be escaped:
    return `<span class="red">${value}</span>`
}

// After:
function makeRed(value) {
    // Ensure that value is either trusted or escaped correctly!
    return {
        html: `<span class="red">${escapeHtml(value)}</span>`
    }
}

Beachten Sie, dass map.apps-Installationen gegen diese Sicherheitslücke sicher sind, wenn Sie die Standardeinstellungen verwenden: Die Content-Security-Policy-Header verhindern die Ausführung von Inline-Skripten (unsafe-inline).

seasons-template

Entfernen von Dijit Layout Containern

Das Dijit BorderContainer-/ContentPane-basierte Layout wurde durch ein modernes CSS-Grid ersetzt. Dadurch ergeben sich deutlich mehr Möglichkeiten, das Layout per CSS (auch nachträglich per app.css) anzupassen ohne das zugrundeliegende HTML ändern zu müssen.

Durch die oben beschriebene Änderung fallen auch die CSS-Klassen .dijitContentPane und dijitBorderContainer weg. Wenn Sie eine app.css verwenden, prüfen Sie, ob es entsprechende Style-Anweisungen gibt. Hierbei sind zwei Fälle zu unterscheiden:

  • Die Style-Anweisung ist nicht mehr notwendig (paddings von .dijitContentPane und .dijitBorderContainer).

  • Die Style-Anweisung greift nicht mehr, weil sie .dijitContentPane oder .dijitBorderContainer im Selector enthält.

/*vorher*/
.ctAppRoot .ct-application-footer.dijitContentPane {
    height: 80px;
}

/*nachher*/
.ctAppRoot .ct-application-footer {
    height: 80px;
}

Harmonisierung der Attach-Points für Widgets

Die Benennung der Einhängepunkte (attach-points) für Widgets wurde überarbeitet. Dadurch stehen alle attach-points unter gleichem Namen in allen Sublayouts zur Verfügung. Im mobilen Querformat-Layout (mobile_landscape) wurde die dockingbarLeft in dockingbarBottomLeft umbenannt. app.json Dateien können Sie per Suchen und Ersetzen anpassen. Ohne diese Anpassung werden Werkzeuge in der mobilen Querformat-Ansicht ggf. nicht mehr dargestellt.

Themes und Theme-Extensions

Die manifest.json Eigenschaften CSS-Themes und CSS-Themes-Extension wurde in cssThemes und cssThemesExtension umbenannt. Die alten Werte sind abgekündigt und werden in einem der nächsten Releases nicht mehr unterstützt. Daher sind sie die neuen Werte zu ersetzen. Dies ist nur relevant, wenn Sie benutzerdefinierte Bundles haben, die ihr eigenes Css, Theme-Bundles oder Theme-Extension-Bundles bereitstellen.

4.13

Neue Datenbanktabellen

map.apps verwendet die neuen Datenbanktabellen IDENT_EXTSESSIONS, IDENT_SESSIONS und IDENT_TOKENS.

Beginnend mit dieser Version legt map.apps die Tabellen beim Start des Tomcat automatisch an, wenn sie noch nicht existieren und die Einstellung db.hibernate.schemaUpdate=update in der angewendeten Konfigurationsdatei gesetzt ist. Sollten Sie diese Einstellung bislang nicht gesetzt oder verändert haben, müssen Sie keine Änderung vornehmen.

Wenn Sie die Datenbanktabellen stattdessen manuell anlegen möchten, verwenden Sie dafür das entsprechende SQL-Skript für Ihre Datenbank:

Nutzung von ArcGIS-Rollen in map.apps

Sollten Sie bislang Rollen, die aus ArcGIS Enterprise-Portal oder ArcGIS Online Gruppen abgeleitet werden, in map.apps genutzt haben, war dafür bislang die folgende Notation erforderlich: "user@@gruppe". Die Syntax ändert sich mit diesem Release zu "gruppe::user".

Werkzeuge in der DockingBar im Footer sind nicht mehr per default in einer Toggle-Gruppe. Wenn sie nicht gleichzeitig geöffnet werden sollen, müssen sie einer Gruppe zugeordnet werden.

4.12

Aktualisierte Standard-App

Die Vorlage für die Standard-App wurde aktualisiert. Sofern Sie keine eigenen Anpassungen vorgenommen haben, entfernen Sie die Datei default-app-4.zip aus dem Arbeitsverzeichnis. Der Pfad zu diesem Verzeichnis ist im Parameter data.directory.location in der Datei %TOMCAT%\webapps\mapapps\WEBINF\classes\custom-application.properties festgelegt.

Domain-Bundles

Durch Verbesserungen am Domain-Bundle-System kommt es zu einer Verhaltensänderung. Zuvor wurden alle beim App-Start geladenen Themenkarten aus Domain-Bundles in ihrer Ladereihenfolge zur Karte hinzugefügt. Dies führte dazu, dass bei mehreren Domain-Bundles die zuerst geladenen Themenkarten unter den später geladenen lagen. Ab dieser Version wird dieses Verhalten umgekehrt, sodass zuerst geladene Themenkarten über später geladenen liegen.

Dieses neue Verhalten kann durch Änderungen der Option domainBundleOrder beeinflusst werden. Siehe dazu Domain-Bundles.

Erhöhung der maximalen URL-Länge für GET Anfragen (statt POST)

Die maximale Länge von URLs die per GET vom map.apps Server abgefragt werden, wird mit diesem Release von 2048 auf 3072 erhöht. Dadurch können auch in umfangreicheren Apps, die viele Bundles beinhalten, die Bundle-Dateien per GET statt POST abgefragt werden. Dies ist ein Vorteil, da nur GET Anfragen vom Browser gecacht werden können und somit die Performance beim erneuten Aufruf der App gesteigert wird.

Stellen Sie sicher, dass es auf Ihrem Server keine Beschränkungen gibt, die die Anfrage von längeren GET Anfragen unterbinden. Alternativ können Sie die Länge ab der von GET auf POST gewechselt wird, in der Property client.config.requestMaxUrlLength in der Datei application.properties verändern.

Import von map.apps Klassen

Im Zuge von Code-Modernisierungen wird der Build-Prozess für Bundles sukzessive auf rollup.js umgestellt. Dadurch können interne, nicht öffentliche Klassen von map.apps nicht mehr in eigenen Implementierungen importiert werden. Verwenden Sie stattdessen offizielle APIs von map.apps oder nutzen Sie map.apps Klassen als Vorlage für eigene Implementierungen. Ihr Feedback zu fehlenden Funktionen, APIs oder Konfigurations-Parametern nehmen wir wie immer gerne entgegen.

Import von ArcGIS API for JavaScript Klassen

Die ArcGIS API for JavaScript ist die größte Dependency in map.apps (im Browser), was die Anzahl der Module und auch deren kombinierte Größe angeht. Die API wurde bislang so in map.apps integriert, dass auch private, undokumentierte Module zur Laufzeit importiert werden können. Mit diesem Release wird die Anzahl der JavaScript-Module in der API auf das Notwendige minimiert, indem nur noch dokumentierte Module importiert werden. Die Anzahl der JavaScript-Module wurde dadurch um mehr als 55% reduziert. Dies kann zum Einen zu einem Performance-Gewinn führen und verhindert zum Anderen, dass bei eigenen Entwicklungen versehentlich gegen interne Schnittstellen der API programmiert wird. Sollte es nach einem Update auf diese Version zu Laufzeitfehlern in Ihren eigenen Entwicklungen kommen, prüfen Sie bitte, ob Sie interne Module der ArcGIS API for JavaScript verwenden.

4.11

Separater Rollout Linie 3 Bundles

Sollten map.apps Linie 3 Bundles benötigt werden, müssen diese ab sofort als separate Bundles installiert werden

Datenbankmodell für voroptimierte Apps

Für die Unterstützung von voroptimierten Apps müssen Änderungen am Datenbankschema vorgenommen werden.

Zwei Änderungen sind notwendig:

  1. Die Spalte PREOPTIMIZED muss der Tabelle APPS hinzugefügt werden.

  2. Die Tabelle APPS_ASSETS muss angelegt und indiziert werden.

Dies kann entweder manuell oder automatisch erfolgen.

Stellen Sie in beiden Fällen und vor dem Update sicher, dass Datenbankrechte zum erstellen/verändern und Anlegen eines Index gesetzt sind. Nach der Aktualisierung können die Datenbankrechte wieder zurückgesetzt werden.

Automatisches Update

Stellen Sie sicher, dass die Einstellung db.hibernate.schemaUpdate=update in der angewendeten Konfigurationsdatei gesetzt ist. Sollten Sie diese Einstellung bislang nicht gesetzt oder verändert haben, müssen Sie keine Änderung vornehmen. Starten Sie danach map.apps neu, damit die Änderungen automatisch angewendet werden.

Manuelles Update

Verwenden Sie hierfür das entsprechende SQL-Skript für Ihre Datenbank:

Passwort für Zugang mit Administrationsrecht

Ab sofort wird map.apps ohne vorkonfiguriertes Standard-Passwort für den Administrations-Zugang ausgeliefert. Daher muss, falls nicht bereits in einer vorherigen Installation geschehen, das Passwort gesetzt werden.

Aktualisierte Standard-App

Die Vorlage für die sog. Standard-App wurde aktualisiert. Sofern Sie keine eigenen Anpassungen vorgenommen haben, entfernen Sie die Datei default-app-4.zip aus dem Arbeitsverzeichnis. Der Pfad zu diesem Verzeichnis wird über den Parameter data.directory.location in der Datei %TOMCAT%\webapps\mapapps\WEBINF\classes\custom-application.properties definiert. Beim ersten Start von map.apps werden die neuen Vorlagen dort abgelegt.

Angepasste Splashscreens

Besitzt die map.apps Installation, welche geupdatet wird, eine eigene index.html mit angepasster init.css müssen diesen Dateien gesichert und nach erfolgreichem Update wieder angewendet werden.

4.9

Aktualisierte Standard-App

Die Vorlage für die sog. Standard-App wurde aktualisiert. Sofern Sie keine eigenen Anpassungen vorgenommen haben, entfernen Sie die Datei default-app-4.zip aus dem Arbeitsverzeichnis. Der Pfad zu diesem Verzeichnis wird über den Parameter data.directory.location in der Datei %TOMCAT%\webapps\mapapps\WEBINF\classes\custom-application.properties definiert. Beim ersten Start von map.apps werden die neuen Vorlagen dort abgelegt.

JavaScript import/export vs. AMD define

Im Zuge der Modernisierung der map.apps API wird zunehmend das im ECMAScript 6 Standard (ES6) definierte Schlüsselwort export verwendet. Dadurch ist eine Änderung bei der Verwendung des AMD Import-Stils define nötig.

Verwenden Sie die neue ES6 Syntax import, um Inkompatibilitäten zu vermeiden.

Die folgenden Abschnitte zeigen die Änderung am Beispiel von string-replace:

AMD Import (alt)
define(["apprt-core/string-replace"], function(stringReplace){

   var msg = stringReplace('Hello ${key}', { key : "World"});

});
ES6 Import (neu)
import stringReplace from "apprt-core/string-replace"

const msg = stringReplace('Hello ${key}', { key : "World"});

Code, der im AMD Format vorliegt, kann mit dem Tool amd-to-es6 konvertiert werden. Das Beispielprojekt zum Entwickeln von neuen Bundles mapapps-4-developers ist bereits für die Nutzung der neuen Syntax vorbereitet.

Theming

Neue Farbvariablen sind verfügbar um die Hintergrund- und Eingabetextfarbe der OmniSuche per LessCss zu definieren. Bei eigenen Themes müssen daher die die folgenden Variablen mit den Standardwerten ergänzt werden:

@ct-omnisearch-input-background-color: #fff;
@ct-omnisearch-input-text-color: #000;
@ct-omnisearch-drawer-button-background-color: @ct-omnisearch-input-background-color;
@ct-omnisearch-drawer-button-icon-color: darken(@disabled-text-color, 30);

4.6

Update der ArcGIS API for JavaScript auf Version 4.10 (von 4.8)

Die von map.apps als technische Basis genutzte ArcGIS API for JavaScript wird mit diesem Release auf die Version 4.10 aktualisiert. Mit diesem Release werden daher Änderungen im Umgang mit Cross-Origin Requests und Cross-Origin Resource Sharing (CORS) wirksam, die durch Esri in Version 4.9 der API eingebaut wurden. Eine detaillierte Beschreibung dieser Änderungen erfolgt im Artikel CORS and the ArcGIS API for JavaScript: Changes coming in 4.9 .

Die wichtigsten Änderungen sind:

  • Es wird nun angenommen, dass alle angefragten Server den CORS-Mechanismus unterstützen. Zuvor wurde eine Liste mit unterstützenden Servern gepflegt bzw. es wurde geprüft, ob ein Server CORS unterstützt.

  • Wird kein CORS unterstützt, wird ein Proxy benötigt. Die URL des Servers kann dazu im Parameter proxy.use.rules eingetragen werden. Der bisherige Workaround über JSONP bzw. die Unterstützung von JSONP entfällt.

Diese Änderungen beeinflussen entsprechend auch map.apps und einige Konfigurationsoptionen. Die folgenden Einstellungen sind für Apps ab der Version 4.6.0 nicht mehr wirksam (sie gelten jedoch weiterhin für Apps der Linie 3, die unter einer map.apps 4.6 Installation betrieben werden). Anpassungen an diesen Optionen können entfernt werden.

proxy.cors.enabled=true
proxy.cors.detection=true
proxy.cors.enabledServers=servicesbeta.esri.com,server.example.com
proxy.use.always=true

Die ersten drei Optionen entfallen, da nun immer von einer CORS-Unterstützung ausgegangen wird. Wurde bislang die Option proxy.use.always genutzt, müssen nun alle Server, für die immer der Proxy verwendet werden soll, über proxy.use.rules konfiguriert werden.

Für Apps ab Version 4.6.0 gilt nur die folgende Option, die der bisherigen Option proxy.cors.enabledServers mit dem Flag "|true" entspricht:

# Liste von URLs zu Backenddiensten, für die die Übergabe von sicherheitskritischen Informationen mittels CORS aktiviert wird (z.B. Cookies und Autorisierungsheader)
proxy.cors.trustedServers=https://servicesbeta.esri.com,https://server.example.com

Vuetify Update auf 1.3.8 (von 1.0.17)

map.apps 4.6 enthält eine aktualisierte Version der Vue-basierten UI-Bibliothek Vuetify. Einen vollständigen Überblick über die Änderungen erhalten Sie in den Vuetify Release Notes von 1.0.18 bis 1.3.8 .

Die folgenden Änderungen können sich auf angepasste Bundles, Themes oder Style-Überschreibungen (z.B. in app.css) auswirken.

Änderungen

  • Alle vuetify Komponenten Style-Klassen sind nun durchgehend mit v- geprefixt. Ergänzen Sie .v- an eigene CSS-Selektoren, die sich auf Vuetify-Komponenten beziehen. Zum Beispiel muss der Selektor .ctAppRoot .my-custombundle .list__tile{} geändert werden in .ctAppRoot .my-custom-bundle .vlist__tile{}

  • Die Komponenten <v-textfield textarea/>, <v-text-field autocomplete/> und <vselect combobox/> wurden zu unabhängigen Komponenten geändert und werden ersetzt durch <v-textarea/>, <v-autocomplete/> und <v-combobox/>. Ein Änderung durch Suchen und Ersetzen reicht aus, da die Eigenschaften gleich geblieben sind.

  • Die Komponenten <v-radio/> und <v-checkbox/> ohne definiertes Farbattribut erhalten die "Akzentfarbe" als Fallback zugewiesen. Alle map.apps UIs haben bereits eine Erfolgsfarbe zugewiesen (z.B. <v-checkbox color="success"/>). Bei definierten Bundles sollte dies ebenfalls geschehen.

Unterstützung neuer UI-Komponenten

v-autocomplete, v-combobox, v-textarea, v-rangeslider, v-rating, v-img, v-hover, v-item-group, v-timeline, v-treeview

Abkündigungen (funktionieren noch, aber die Unterstützung wird in zukünftigen Updates entfernt):

  • v-card-media

  • v-jumbotrons

Beide können durch v-img ersetzt werden.

Messen in 2D

In Apps der Linie 4 ist nun das Messen zusätzlich zu den bereits vorhandenen 3D-Messfunktionen auch in 2D-Karten möglich. Das bisherige Bundle measurement sorgt ab sofort dafür, dass die Bundles measurement-2d und measurement-3d geladen werden. Wenn eine App nur für den Betrieb in 2D oder 3D vorgesehen ist, kann stattdessen eines der Bundles measurement-2d und measurement-3d geladen werden.

Aktualisierte Standard-App

Die Vorlagen für die sog. Standard-Apps sind aktualisiert. Sofern Sie keine eigenen Anpassungen vorgenommen haben, entfernen Sie die vorhandenen Vorlagen (Dateien: default-app-*.zip) aus dem Arbeitsverzeichnis. Der Pfad zu diesem Verzeichnis wird über den Parameter data.directory.location in der Datei %TOMCAT%\webapps\mapapps\WEBINF\classes\custom-application.properties definiert. Beim ersten Start werden dann die neuen Vorlagen dort abgelegt.

4.4

  • Die Vorlagen für die sog. Standard-Apps sind aktualisiert. Sofern Sie keine eigenen Anpassungen vorgenommen haben, entfernen Sie die vorhandenen Vorlagen (Dateien: default-app-*.zip) aus dem Arbeitsverzeichnis. Der Pfad zu diesem Verzeichnis wird über den Parameter data.directory.location in der Datei %TOMCAT% \webapps\mapapps\WEB-INF\classes\custom-application.properties definiert. Beim ersten Start werden dann die neuen Vorlagen dort abgelegt.

  • Die Einstellung für die Verwendung von Diensten per HTTPS mit selbstsignierten Zertifikaten hat sich geändert. Es werden nur noch solche Dienste zugelassen, die ein offizielles Zertifikat besitzen. Die Einstellung kann über die Eigenschaft security.ssl.trustAny geändert werden.

  • Die Namen der Basisklassen haben sich geändert. Wenn das Template Seasons verwendet wird, müssen die selbst angelegten CSS Anweisungen entsprechend der unten stehenden Tabelle angepasst werden. Dies betrifft auch selbst angelegte Theme-Bundles.

    alter Klassenname neuer Klassenname

    .header

    .ct-application-header

    .logo

    .ct-application-header__logo

    .appTitle

    .ct-application-header__app-title

    -

    .ct-application-header__container-main

    -

    .ct-application-header__container-right

    -

    .ct-application-center

    .footer

    .ct-application-footer

    .footer_left

    .ct-application-footer__container-left

    .footer_right

    .ct-application-footer__container-right

  • Beachten Sie die angepasste Kompatibilität der ArcGIS API for JavaScript mit ES Promises. Um über die Auflösung dieser Objekte benachrichtigt zu werden, muss nun die Methode when() verwendet werden (vorher then()). Dieser BlogPost beschreibt die Änderungen im Detail.

4.2

Im Bundle-Paket 4.2.0 ist das Bundle basemaptoggler in basemapswitcher umbenannt worden.