diff --git a/CHANGELOG.md b/CHANGELOG.md
index a5fd7d2..6f60366 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,11 +19,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
#### Viewer Application
- **Map**: A non-empty field list replaces the full GetFeatureInfo property table, in order, with the translated label. `T`, `N`, `F`, `U`, `P`, and `I` follow the map locale. `AUTO` keeps API-SITNA detection. `feature.data` is not rewritten ([sitmun-viewer-app#179](https://github.com/sitmun/sitmun-viewer-app/pull/179), [#77](https://github.com/sitmun/sitmun-application-stack/issues/77)).
+- **Map**: The field list follows the profile layer id, including a WMS group child. Identify highlights do not persist. The identify popup is solid white after a drag. The MIA report docks to the map and closes when the next identify has no MIA layer ([sitmun-viewer-app#187](https://github.com/sitmun/sitmun-viewer-app/pull/187)).
#### Profile-level
- **Liquibase**: PostgreSQL and Oracle changelog 27, and development changelog 74, add `PGI_OPTIONS` and format code `AUTO` ([#77](https://github.com/sitmun/sitmun-application-stack/issues/77)).
- **Liquibase**: Development changelog 75 seeds GetFeatureInfo fields on IDE genèric Menorca cartography 1304, Trams del camí de cavalls (`tu007rts_ccavalls`): route, kind, max easting, and website. Spanish and Catalan labels are translations; English is the stored default ([#77](https://github.com/sitmun/sitmun-application-stack/issues/77)).
+- **Liquibase**: Development changelog 76 seeds seven GetFeatureInfo fields on cartography 4658, RPT Sòl Rústic (`OR007RPT_solrustic`): soil class, category, qualification, settlement names, area, and perimeter. Area and perimeter use two fraction digits.
+- **Liquibase**: Development changelog 77 turns on identify for cartography 1325 (`or007tur_estades`, tree node 12047) at layer and tree level, and seeds the eleven service properties: address, category, activity start date, name, places, rooms, settlement, register number, municipality, web page, and cadastral reference.
### Fixed
diff --git a/front/viewer/sitmun-viewer-app b/front/viewer/sitmun-viewer-app
index fc7c961..2fa9e43 160000
--- a/front/viewer/sitmun-viewer-app
+++ b/front/viewer/sitmun-viewer-app
@@ -1 +1 @@
-Subproject commit fc7c961bb49eaadd4857c9247ae7a4b5a547cabe
+Subproject commit 2fa9e432ef08cd32db7e00df9cb49861aba92340
diff --git a/profiles/development/backend/liquibase/changelog/76_dev_sol_rustic_feature_info_fields.yaml b/profiles/development/backend/liquibase/changelog/76_dev_sol_rustic_feature_info_fields.yaml
new file mode 100644
index 0000000..dee4de2
--- /dev/null
+++ b/profiles/development/backend/liquibase/changelog/76_dev_sol_rustic_feature_info_fields.yaml
@@ -0,0 +1,107 @@
+databaseChangeLog:
+ - changeSet:
+ id: 76-dev-sol-rustic-feature-info-fields-h2-postgresql
+ author: sitmun
+ context: dev
+ dbms: h2,postgresql
+ comment: >
+ IDE genèric Menorca. Identify Sòl Rústic (cartography 4658,
+ layer OR007RPT_solrustic). English labels are PGI_VALUE.
+ Spanish and Catalan come from STM_TRANSLATION.
+ Area and perimeter use two fraction digits.
+ preConditions:
+ - onFail: MARK_RAN
+ sqlCheck:
+ expectedResult: 1
+ sql: >
+ SELECT CASE
+ WHEN (SELECT COUNT(*) FROM STM_PAR_GI WHERE PGI_ID = 9201) = 0
+ AND (SELECT COUNT(*) FROM STM_GEOINFO WHERE GEO_ID = 4658) = 1
+ THEN 1 ELSE 0 END
+ changes:
+ - sql:
+ sql: |
+ INSERT INTO STM_PAR_GI (
+ PGI_ID, PGI_NAME, PGI_VALUE, PGI_FORMAT, PGI_TYPE, PGI_GIID, PGI_ORDER,
+ PGI_OPTIONS
+ ) VALUES
+ (9201, 'Classe_de_sòl', 'Soil class', 'T', 'INFO', 4658, 0, NULL),
+ (9202, 'Categoria_de_sòl', 'Soil category', 'T', 'INFO', 4658, 1, NULL),
+ (9203, 'Qualificació_de_sòl', 'Soil qualification', 'T', 'INFO', 4658, 2, NULL),
+ (9204, 'Nom_de_nucli', 'Settlement name', 'T', 'INFO', 4658, 3, NULL),
+ (9205, 'Nom_del_nucli_rural', 'Rural settlement', 'T', 'INFO', 4658, 4, NULL),
+ (9206, 'superficie', 'Area', 'N', 'INFO', 4658, 5, '{"fractionDigits":2,"padFractionDigits":true}'),
+ (9207, 'perimetre', 'Perimeter', 'N', 'INFO', 4658, 6, '{"fractionDigits":2,"padFractionDigits":true}');
+ INSERT INTO STM_TRANSLATION (TRA_ID, TRA_ELEID, TRA_COLUMN, TRA_LANID, TRA_NAME) VALUES
+ (9201001, 9201, 'CartographyParameter.value', 2, 'Clase de suelo'),
+ (9201002, 9201, 'CartographyParameter.value', 3, 'Classe de sòl'),
+ (9201003, 9202, 'CartographyParameter.value', 2, 'Categoría de suelo'),
+ (9201004, 9202, 'CartographyParameter.value', 3, 'Categoria de sòl'),
+ (9201005, 9203, 'CartographyParameter.value', 2, 'Calificación de suelo'),
+ (9201006, 9203, 'CartographyParameter.value', 3, 'Qualificació de sòl'),
+ (9201007, 9204, 'CartographyParameter.value', 2, 'Nombre del núcleo'),
+ (9201008, 9204, 'CartographyParameter.value', 3, 'Nom del nucli'),
+ (9201009, 9205, 'CartographyParameter.value', 2, 'Núcleo rural'),
+ (9201010, 9205, 'CartographyParameter.value', 3, 'Nucli rural'),
+ (9201011, 9206, 'CartographyParameter.value', 2, 'Superficie'),
+ (9201012, 9206, 'CartographyParameter.value', 3, 'Superfície'),
+ (9201013, 9207, 'CartographyParameter.value', 2, 'Perímetro'),
+ (9201014, 9207, 'CartographyParameter.value', 3, 'Perímetre');
+ UPDATE STM_SEQUENCE
+ SET SEQ_COUNT = GREATEST(SEQ_COUNT, (SELECT COALESCE(MAX(PGI_ID), 0) + 1 FROM STM_PAR_GI))
+ WHERE SEQ_NAME = 'PGI_ID';
+ UPDATE STM_SEQUENCE
+ SET SEQ_COUNT = GREATEST(SEQ_COUNT, (SELECT COALESCE(MAX(TRA_ID), 0) + 1 FROM STM_TRANSLATION))
+ WHERE SEQ_NAME = 'TRA_ID';
+ - changeSet:
+ id: 76-dev-sol-rustic-feature-info-fields-oracle
+ author: sitmun
+ context: dev
+ dbms: oracle
+ comment: >
+ IDE genèric Menorca. Identify Sòl Rústic (cartography 4658,
+ layer OR007RPT_solrustic).
+ preConditions:
+ - onFail: MARK_RAN
+ sqlCheck:
+ expectedResult: 1
+ sql: >
+ SELECT CASE
+ WHEN (SELECT COUNT(*) FROM STM_PAR_GI WHERE PGI_ID = 9201) = 0
+ AND (SELECT COUNT(*) FROM STM_GEOINFO WHERE GEO_ID = 4658) = 1
+ THEN 1 ELSE 0 END
+ changes:
+ - sql:
+ sql: |
+ INSERT INTO STM_PAR_GI (
+ PGI_ID, PGI_NAME, PGI_VALUE, PGI_FORMAT, PGI_TYPE, PGI_GIID, PGI_ORDER,
+ PGI_OPTIONS
+ )
+ SELECT 9201, 'Classe_de_sòl', 'Soil class', 'T', 'INFO', 4658, 0, NULL FROM DUAL UNION ALL
+ SELECT 9202, 'Categoria_de_sòl', 'Soil category', 'T', 'INFO', 4658, 1, NULL FROM DUAL UNION ALL
+ SELECT 9203, 'Qualificació_de_sòl', 'Soil qualification', 'T', 'INFO', 4658, 2, NULL FROM DUAL UNION ALL
+ SELECT 9204, 'Nom_de_nucli', 'Settlement name', 'T', 'INFO', 4658, 3, NULL FROM DUAL UNION ALL
+ SELECT 9205, 'Nom_del_nucli_rural', 'Rural settlement', 'T', 'INFO', 4658, 4, NULL FROM DUAL UNION ALL
+ SELECT 9206, 'superficie', 'Area', 'N', 'INFO', 4658, 5, '{"fractionDigits":2,"padFractionDigits":true}' FROM DUAL UNION ALL
+ SELECT 9207, 'perimetre', 'Perimeter', 'N', 'INFO', 4658, 6, '{"fractionDigits":2,"padFractionDigits":true}' FROM DUAL;
+ INSERT INTO STM_TRANSLATION (TRA_ID, TRA_ELEID, TRA_COLUMN, TRA_LANID, TRA_NAME)
+ SELECT 9201001, 9201, 'CartographyParameter.value', 2, 'Clase de suelo' FROM DUAL UNION ALL
+ SELECT 9201002, 9201, 'CartographyParameter.value', 3, 'Classe de sòl' FROM DUAL UNION ALL
+ SELECT 9201003, 9202, 'CartographyParameter.value', 2, 'Categoría de suelo' FROM DUAL UNION ALL
+ SELECT 9201004, 9202, 'CartographyParameter.value', 3, 'Categoria de sòl' FROM DUAL UNION ALL
+ SELECT 9201005, 9203, 'CartographyParameter.value', 2, 'Calificación de suelo' FROM DUAL UNION ALL
+ SELECT 9201006, 9203, 'CartographyParameter.value', 3, 'Qualificació de sòl' FROM DUAL UNION ALL
+ SELECT 9201007, 9204, 'CartographyParameter.value', 2, 'Nombre del núcleo' FROM DUAL UNION ALL
+ SELECT 9201008, 9204, 'CartographyParameter.value', 3, 'Nom del nucli' FROM DUAL UNION ALL
+ SELECT 9201009, 9205, 'CartographyParameter.value', 2, 'Núcleo rural' FROM DUAL UNION ALL
+ SELECT 9201010, 9205, 'CartographyParameter.value', 3, 'Nucli rural' FROM DUAL UNION ALL
+ SELECT 9201011, 9206, 'CartographyParameter.value', 2, 'Superficie' FROM DUAL UNION ALL
+ SELECT 9201012, 9206, 'CartographyParameter.value', 3, 'Superfície' FROM DUAL UNION ALL
+ SELECT 9201013, 9207, 'CartographyParameter.value', 2, 'Perímetro' FROM DUAL UNION ALL
+ SELECT 9201014, 9207, 'CartographyParameter.value', 3, 'Perímetre' FROM DUAL;
+ UPDATE STM_SEQUENCE
+ SET SEQ_COUNT = GREATEST(SEQ_COUNT, (SELECT COALESCE(MAX(PGI_ID), 0) + 1 FROM STM_PAR_GI))
+ WHERE SEQ_NAME = 'PGI_ID';
+ UPDATE STM_SEQUENCE
+ SET SEQ_COUNT = GREATEST(SEQ_COUNT, (SELECT COALESCE(MAX(TRA_ID), 0) + 1 FROM STM_TRANSLATION))
+ WHERE SEQ_NAME = 'TRA_ID';
diff --git a/profiles/development/backend/liquibase/changelog/77_dev_estades_feature_info_fields.yaml b/profiles/development/backend/liquibase/changelog/77_dev_estades_feature_info_fields.yaml
new file mode 100644
index 0000000..9ca8780
--- /dev/null
+++ b/profiles/development/backend/liquibase/changelog/77_dev_estades_feature_info_fields.yaml
@@ -0,0 +1,146 @@
+databaseChangeLog:
+ - changeSet:
+ id: 77-dev-estades-feature-info-fields-h2-postgresql
+ author: sitmun
+ context: dev
+ dbms: h2,postgresql
+ comment: >
+ IDE genèric Menorca (application 12, territory 4). Make Estades
+ (cartography 1325, layer or007tur_estades, tree node 12047) queryable
+ and seed the eleven identify fields from the service property list.
+ English labels are PGI_VALUE. Spanish and Catalan come from STM_TRANSLATION.
+ preConditions:
+ - onFail: MARK_RAN
+ sqlCheck:
+ expectedResult: 1
+ sql: >
+ SELECT CASE
+ WHEN (SELECT COUNT(*) FROM STM_PAR_GI WHERE PGI_ID = 9301) = 0
+ AND (SELECT COUNT(*) FROM STM_GEOINFO WHERE GEO_ID = 1325) = 1
+ AND (SELECT COUNT(*) FROM STM_TREE_NOD WHERE TNO_ID = 12047) = 1
+ THEN 1 ELSE 0 END
+ changes:
+ - sql:
+ sql: |
+ UPDATE STM_GEOINFO
+ SET GEO_QUERYABL = TRUE, GEO_QUERYACT = TRUE
+ WHERE GEO_ID = 1325;
+ UPDATE STM_TREE_NOD
+ SET TNO_QUERYACT = TRUE
+ WHERE TNO_ID = 12047;
+ INSERT INTO STM_PAR_GI (
+ PGI_ID, PGI_NAME, PGI_VALUE, PGI_FORMAT, PGI_TYPE, PGI_GIID, PGI_ORDER,
+ PGI_OPTIONS
+ ) VALUES
+ (9301, 'Adreça', 'Address', 'T', 'INFO', 1325, 0, NULL),
+ (9302, 'Categoria', 'Category', 'T', 'INFO', 1325, 1, NULL),
+ (9303, 'Data_inici_activitat', 'Activity start date', 'F', 'INFO', 1325, 2, NULL),
+ (9304, 'Nom', 'Name', 'T', 'INFO', 1325, 3, NULL),
+ (9305, 'Nombre_Places', 'Number of places', 'N', 'INFO', 1325, 4, '{"fractionDigits":0}'),
+ (9306, 'Nombre_habitacions', 'Number of rooms', 'N', 'INFO', 1325, 5, '{"fractionDigits":0}'),
+ (9307, 'Nucli', 'Settlement', 'T', 'INFO', 1325, 6, NULL),
+ (9308, 'Numero_Registre', 'Register number', 'T', 'INFO', 1325, 7, NULL),
+ (9309, 'Població', 'Municipality', 'T', 'INFO', 1325, 8, NULL),
+ (9310, 'Pàgina_WEB', 'Web page', 'U', 'INFO', 1325, 9, NULL),
+ (9311, 'Referencia_cadastral', 'Cadastral reference', 'T', 'INFO', 1325, 10, NULL);
+ INSERT INTO STM_TRANSLATION (TRA_ID, TRA_ELEID, TRA_COLUMN, TRA_LANID, TRA_NAME) VALUES
+ (9301001, 9301, 'CartographyParameter.value', 2, 'Dirección'),
+ (9301002, 9301, 'CartographyParameter.value', 3, 'Adreça'),
+ (9301003, 9302, 'CartographyParameter.value', 2, 'Categoría'),
+ (9301004, 9302, 'CartographyParameter.value', 3, 'Categoria'),
+ (9301005, 9303, 'CartographyParameter.value', 2, 'Fecha de inicio de la actividad'),
+ (9301006, 9303, 'CartographyParameter.value', 3, 'Data d''inici de l''activitat'),
+ (9301007, 9304, 'CartographyParameter.value', 2, 'Nombre'),
+ (9301008, 9304, 'CartographyParameter.value', 3, 'Nom'),
+ (9301009, 9305, 'CartographyParameter.value', 2, 'Número de plazas'),
+ (9301010, 9305, 'CartographyParameter.value', 3, 'Nombre de places'),
+ (9301011, 9306, 'CartographyParameter.value', 2, 'Número de habitaciones'),
+ (9301012, 9306, 'CartographyParameter.value', 3, 'Nombre d''habitacions'),
+ (9301013, 9307, 'CartographyParameter.value', 2, 'Núcleo'),
+ (9301014, 9307, 'CartographyParameter.value', 3, 'Nucli'),
+ (9301015, 9308, 'CartographyParameter.value', 2, 'Número de registro'),
+ (9301016, 9308, 'CartographyParameter.value', 3, 'Número de registre'),
+ (9301017, 9309, 'CartographyParameter.value', 2, 'Población'),
+ (9301018, 9309, 'CartographyParameter.value', 3, 'Població'),
+ (9301019, 9310, 'CartographyParameter.value', 2, 'Página web'),
+ (9301020, 9310, 'CartographyParameter.value', 3, 'Pàgina web'),
+ (9301021, 9311, 'CartographyParameter.value', 2, 'Referencia catastral'),
+ (9301022, 9311, 'CartographyParameter.value', 3, 'Referència cadastral');
+ UPDATE STM_SEQUENCE
+ SET SEQ_COUNT = GREATEST(SEQ_COUNT, (SELECT COALESCE(MAX(PGI_ID), 0) + 1 FROM STM_PAR_GI))
+ WHERE SEQ_NAME = 'PGI_ID';
+ UPDATE STM_SEQUENCE
+ SET SEQ_COUNT = GREATEST(SEQ_COUNT, (SELECT COALESCE(MAX(TRA_ID), 0) + 1 FROM STM_TRANSLATION))
+ WHERE SEQ_NAME = 'TRA_ID';
+ - changeSet:
+ id: 77-dev-estades-feature-info-fields-oracle
+ author: sitmun
+ context: dev
+ dbms: oracle
+ comment: >
+ IDE genèric Menorca (application 12, territory 4). Make Estades
+ (cartography 1325, layer or007tur_estades, tree node 12047) queryable
+ and seed the eleven identify fields from the service property list.
+ preConditions:
+ - onFail: MARK_RAN
+ sqlCheck:
+ expectedResult: 1
+ sql: >
+ SELECT CASE
+ WHEN (SELECT COUNT(*) FROM STM_PAR_GI WHERE PGI_ID = 9301) = 0
+ AND (SELECT COUNT(*) FROM STM_GEOINFO WHERE GEO_ID = 1325) = 1
+ AND (SELECT COUNT(*) FROM STM_TREE_NOD WHERE TNO_ID = 12047) = 1
+ THEN 1 ELSE 0 END
+ changes:
+ - sql:
+ sql: |
+ UPDATE STM_GEOINFO
+ SET GEO_QUERYABL = 1, GEO_QUERYACT = 1
+ WHERE GEO_ID = 1325;
+ UPDATE STM_TREE_NOD
+ SET TNO_QUERYACT = 1
+ WHERE TNO_ID = 12047;
+ INSERT INTO STM_PAR_GI (
+ PGI_ID, PGI_NAME, PGI_VALUE, PGI_FORMAT, PGI_TYPE, PGI_GIID, PGI_ORDER,
+ PGI_OPTIONS
+ )
+ SELECT 9301, 'Adreça', 'Address', 'T', 'INFO', 1325, 0, NULL FROM DUAL UNION ALL
+ SELECT 9302, 'Categoria', 'Category', 'T', 'INFO', 1325, 1, NULL FROM DUAL UNION ALL
+ SELECT 9303, 'Data_inici_activitat', 'Activity start date', 'F', 'INFO', 1325, 2, NULL FROM DUAL UNION ALL
+ SELECT 9304, 'Nom', 'Name', 'T', 'INFO', 1325, 3, NULL FROM DUAL UNION ALL
+ SELECT 9305, 'Nombre_Places', 'Number of places', 'N', 'INFO', 1325, 4, '{"fractionDigits":0}' FROM DUAL UNION ALL
+ SELECT 9306, 'Nombre_habitacions', 'Number of rooms', 'N', 'INFO', 1325, 5, '{"fractionDigits":0}' FROM DUAL UNION ALL
+ SELECT 9307, 'Nucli', 'Settlement', 'T', 'INFO', 1325, 6, NULL FROM DUAL UNION ALL
+ SELECT 9308, 'Numero_Registre', 'Register number', 'T', 'INFO', 1325, 7, NULL FROM DUAL UNION ALL
+ SELECT 9309, 'Població', 'Municipality', 'T', 'INFO', 1325, 8, NULL FROM DUAL UNION ALL
+ SELECT 9310, 'Pàgina_WEB', 'Web page', 'U', 'INFO', 1325, 9, NULL FROM DUAL UNION ALL
+ SELECT 9311, 'Referencia_cadastral', 'Cadastral reference', 'T', 'INFO', 1325, 10, NULL FROM DUAL;
+ INSERT INTO STM_TRANSLATION (TRA_ID, TRA_ELEID, TRA_COLUMN, TRA_LANID, TRA_NAME)
+ SELECT 9301001, 9301, 'CartographyParameter.value', 2, 'Dirección' FROM DUAL UNION ALL
+ SELECT 9301002, 9301, 'CartographyParameter.value', 3, 'Adreça' FROM DUAL UNION ALL
+ SELECT 9301003, 9302, 'CartographyParameter.value', 2, 'Categoría' FROM DUAL UNION ALL
+ SELECT 9301004, 9302, 'CartographyParameter.value', 3, 'Categoria' FROM DUAL UNION ALL
+ SELECT 9301005, 9303, 'CartographyParameter.value', 2, 'Fecha de inicio de la actividad' FROM DUAL UNION ALL
+ SELECT 9301006, 9303, 'CartographyParameter.value', 3, 'Data d''inici de l''activitat' FROM DUAL UNION ALL
+ SELECT 9301007, 9304, 'CartographyParameter.value', 2, 'Nombre' FROM DUAL UNION ALL
+ SELECT 9301008, 9304, 'CartographyParameter.value', 3, 'Nom' FROM DUAL UNION ALL
+ SELECT 9301009, 9305, 'CartographyParameter.value', 2, 'Número de plazas' FROM DUAL UNION ALL
+ SELECT 9301010, 9305, 'CartographyParameter.value', 3, 'Nombre de places' FROM DUAL UNION ALL
+ SELECT 9301011, 9306, 'CartographyParameter.value', 2, 'Número de habitaciones' FROM DUAL UNION ALL
+ SELECT 9301012, 9306, 'CartographyParameter.value', 3, 'Nombre d''habitacions' FROM DUAL UNION ALL
+ SELECT 9301013, 9307, 'CartographyParameter.value', 2, 'Núcleo' FROM DUAL UNION ALL
+ SELECT 9301014, 9307, 'CartographyParameter.value', 3, 'Nucli' FROM DUAL UNION ALL
+ SELECT 9301015, 9308, 'CartographyParameter.value', 2, 'Número de registro' FROM DUAL UNION ALL
+ SELECT 9301016, 9308, 'CartographyParameter.value', 3, 'Número de registre' FROM DUAL UNION ALL
+ SELECT 9301017, 9309, 'CartographyParameter.value', 2, 'Población' FROM DUAL UNION ALL
+ SELECT 9301018, 9309, 'CartographyParameter.value', 3, 'Població' FROM DUAL UNION ALL
+ SELECT 9301019, 9310, 'CartographyParameter.value', 2, 'Página web' FROM DUAL UNION ALL
+ SELECT 9301020, 9310, 'CartographyParameter.value', 3, 'Pàgina web' FROM DUAL UNION ALL
+ SELECT 9301021, 9311, 'CartographyParameter.value', 2, 'Referencia catastral' FROM DUAL UNION ALL
+ SELECT 9301022, 9311, 'CartographyParameter.value', 3, 'Referència cadastral' FROM DUAL;
+ UPDATE STM_SEQUENCE
+ SET SEQ_COUNT = GREATEST(SEQ_COUNT, (SELECT COALESCE(MAX(PGI_ID), 0) + 1 FROM STM_PAR_GI))
+ WHERE SEQ_NAME = 'PGI_ID';
+ UPDATE STM_SEQUENCE
+ SET SEQ_COUNT = GREATEST(SEQ_COUNT, (SELECT COALESCE(MAX(TRA_ID), 0) + 1 FROM STM_TRANSLATION))
+ WHERE SEQ_NAME = 'TRA_ID';
diff --git a/profiles/development/backend/liquibase/master.xml b/profiles/development/backend/liquibase/master.xml
index 3af0448..a74edaf 100644
--- a/profiles/development/backend/liquibase/master.xml
+++ b/profiles/development/backend/liquibase/master.xml
@@ -82,4 +82,6 @@
+
+