Mantieni aperto il gestore livelli al refresh
This commit is contained in:
1 parent
3856a9f675
commit
49ed7d5f0e
4 files changed
+40
-5
No files matched your search
@@ -28,8 +28,8 @@
|
|||||||
<ApplicationId>com.companyname.lmemappecatastaliapp</ApplicationId>
|
<ApplicationId>com.companyname.lmemappecatastaliapp</ApplicationId>
|
||||||
|
|
||||||
<!-- Versions -->
|
<!-- Versions -->
|
||||||
<ApplicationDisplayVersion>0.2.20</ApplicationDisplayVersion>
|
<ApplicationDisplayVersion>0.2.21</ApplicationDisplayVersion>
|
||||||
<ApplicationVersion>24</ApplicationVersion>
|
<ApplicationVersion>25</ApplicationVersion>
|
||||||
|
|
||||||
<!-- To develop, package, and publish an app to the Microsoft Store, see: https://aka.ms/MauiTemplateUnpackaged -->
|
<!-- To develop, package, and publish an app to the Microsoft Store, see: https://aka.ms/MauiTemplateUnpackaged -->
|
||||||
<WindowsPackageType>None</WindowsPackageType>
|
<WindowsPackageType>None</WindowsPackageType>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public sealed class AzureMapsService
|
|||||||
|
|
||||||
public AzureMapsService()
|
public AzureMapsService()
|
||||||
{
|
{
|
||||||
_httpClient.DefaultRequestHeaders.UserAgent.ParseAdd("LMEMappeCatastali/0.2.20");
|
_httpClient.DefaultRequestHeaders.UserAgent.ParseAdd("LMEMappeCatastali/0.2.21");
|
||||||
_httpClient.DefaultRequestHeaders.Accept.ParseAdd("application/json");
|
_httpClient.DefaultRequestHeaders.Accept.ParseAdd("application/json");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public sealed class NetworkLocationService
|
|||||||
|
|
||||||
public NetworkLocationService()
|
public NetworkLocationService()
|
||||||
{
|
{
|
||||||
httpClient.DefaultRequestHeaders.UserAgent.ParseAdd("LMEMappeCatastali/0.2.20");
|
httpClient.DefaultRequestHeaders.UserAgent.ParseAdd("LMEMappeCatastali/0.2.21");
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<NetworkLocationSnapshot?> GetApproximateLocationAsync(
|
public async Task<NetworkLocationSnapshot?> GetApproximateLocationAsync(
|
||||||
|
|||||||
+36
-1
@@ -55,7 +55,8 @@ const lmeState = {
|
|||||||
managerHiddenObjects: new Map(),
|
managerHiddenObjects: new Map(),
|
||||||
managerHiddenObjectIds: new Set(),
|
managerHiddenObjectIds: new Set(),
|
||||||
managerHiddenCategories: new Set(),
|
managerHiddenCategories: new Set(),
|
||||||
managerObjectOrder: {}
|
managerObjectOrder: {},
|
||||||
|
managerExpandedRows: new Set()
|
||||||
};
|
};
|
||||||
|
|
||||||
// AdE publishes the cadastral WMS in ETRS89. WMS 1.1.1 keeps the longitude,
|
// AdE publishes the cadastral WMS in ETRS89. WMS 1.1.1 keeps the longitude,
|
||||||
@@ -1180,6 +1181,9 @@ function refreshLayerManager() {
|
|||||||
if (!container || !lmeState.map) {
|
if (!container || !lmeState.map) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
captureLayerManagerExpansion(container);
|
||||||
|
const scrollHost = container.closest(".map-layer-panel");
|
||||||
|
const scrollTop = scrollHost?.scrollTop || 0;
|
||||||
applyStoredLayerManagerVisibility();
|
applyStoredLayerManagerVisibility();
|
||||||
container.innerHTML = "";
|
container.innerHTML = "";
|
||||||
lmeState.managerRecords = new Map();
|
lmeState.managerRecords = new Map();
|
||||||
@@ -1200,6 +1204,12 @@ function refreshLayerManager() {
|
|||||||
applyManagedVisualOrder(container);
|
applyManagedVisualOrder(container);
|
||||||
bindLayerManagerDrag(container);
|
bindLayerManagerDrag(container);
|
||||||
bindLayerManagerMoveButtons(container);
|
bindLayerManagerMoveButtons(container);
|
||||||
|
if (scrollHost) {
|
||||||
|
scrollHost.scrollTop = scrollTop;
|
||||||
|
window.requestAnimationFrame(() => {
|
||||||
|
scrollHost.scrollTop = scrollTop;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderLayerManagerCategory(category, records) {
|
function renderLayerManagerCategory(category, records) {
|
||||||
@@ -1207,6 +1217,7 @@ function renderLayerManagerCategory(category, records) {
|
|||||||
group.className = "layer-manager-group";
|
group.className = "layer-manager-group";
|
||||||
group.dataset.dragType = "category";
|
group.dataset.dragType = "category";
|
||||||
group.dataset.categoryKey = category.key;
|
group.dataset.categoryKey = category.key;
|
||||||
|
bindLayerManagerExpansion(group, `category:${category.key}`);
|
||||||
const visibleCount = records.filter(record => !lmeState.managerHiddenObjectIds.has(record.id)).length;
|
const visibleCount = records.filter(record => !lmeState.managerHiddenObjectIds.has(record.id)).length;
|
||||||
const categoryVisible = !lmeState.managerHiddenCategories.has(category.key)
|
const categoryVisible = !lmeState.managerHiddenCategories.has(category.key)
|
||||||
&& (!category.roots.length || category.roots.some(layer => lmeState.map.hasLayer(layer)));
|
&& (!category.roots.length || category.roots.some(layer => lmeState.map.hasLayer(layer)));
|
||||||
@@ -1237,6 +1248,7 @@ function renderLayerManagerBlock(category, source, records) {
|
|||||||
block.dataset.dragType = "block";
|
block.dataset.dragType = "block";
|
||||||
block.dataset.categoryKey = category.key;
|
block.dataset.categoryKey = category.key;
|
||||||
block.dataset.blockKey = source;
|
block.dataset.blockKey = source;
|
||||||
|
bindLayerManagerExpansion(block, `block:${category.key}:${source}`);
|
||||||
const visibleCount = records.filter(record => !lmeState.managerHiddenObjectIds.has(record.id)).length;
|
const visibleCount = records.filter(record => !lmeState.managerHiddenObjectIds.has(record.id)).length;
|
||||||
const visible = visibleCount === records.length;
|
const visible = visibleCount === records.length;
|
||||||
block.innerHTML = `<summary><button type="button" class="layer-drag-handle" aria-label="Trascina blocco">☰</button><input type="checkbox" ${visible ? "checked" : ""} aria-label="Mostra blocco"><span class="layer-manager-title">${escapeHtml(source)}</span>${layerManagerMoveButtons("blocco")}<span class="layer-manager-count">${records.length}</span></summary><div class="layer-manager-children"></div>`;
|
block.innerHTML = `<summary><button type="button" class="layer-drag-handle" aria-label="Trascina blocco">☰</button><input type="checkbox" ${visible ? "checked" : ""} aria-label="Mostra blocco"><span class="layer-manager-title">${escapeHtml(source)}</span>${layerManagerMoveButtons("blocco")}<span class="layer-manager-count">${records.length}</span></summary><div class="layer-manager-children"></div>`;
|
||||||
@@ -1260,6 +1272,7 @@ function renderLayerManagerObject(record, index) {
|
|||||||
}
|
}
|
||||||
object.dataset.dragType = "object";
|
object.dataset.dragType = "object";
|
||||||
object.dataset.objectId = record.id;
|
object.dataset.objectId = record.id;
|
||||||
|
bindLayerManagerExpansion(object, `object:${record.id}`);
|
||||||
const visible = !lmeState.managerHiddenObjectIds.has(record.id);
|
const visible = !lmeState.managerHiddenObjectIds.has(record.id);
|
||||||
object.innerHTML = `<summary><button type="button" class="layer-drag-handle" aria-label="Trascina oggetto">☰</button><input type="checkbox" ${visible ? "checked" : ""} aria-label="Mostra oggetto"><span class="layer-manager-title">${escapeHtml(managedObjectLabel(record, index))}</span>${layerManagerMoveButtons("oggetto")}<span class="layer-manager-count">›</span></summary><div class="layer-manager-details"></div>`;
|
object.innerHTML = `<summary><button type="button" class="layer-drag-handle" aria-label="Trascina oggetto">☰</button><input type="checkbox" ${visible ? "checked" : ""} aria-label="Mostra oggetto"><span class="layer-manager-title">${escapeHtml(managedObjectLabel(record, index))}</span>${layerManagerMoveButtons("oggetto")}<span class="layer-manager-count">›</span></summary><div class="layer-manager-details"></div>`;
|
||||||
const checkbox = object.querySelector("input");
|
const checkbox = object.querySelector("input");
|
||||||
@@ -1279,6 +1292,28 @@ function renderLayerManagerObject(record, index) {
|
|||||||
return object;
|
return object;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function captureLayerManagerExpansion(container) {
|
||||||
|
container.querySelectorAll("details[data-expansion-key]").forEach(row => {
|
||||||
|
if (row.open) {
|
||||||
|
lmeState.managerExpandedRows.add(row.dataset.expansionKey);
|
||||||
|
} else {
|
||||||
|
lmeState.managerExpandedRows.delete(row.dataset.expansionKey);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function bindLayerManagerExpansion(row, key) {
|
||||||
|
row.dataset.expansionKey = key;
|
||||||
|
row.open = lmeState.managerExpandedRows.has(key);
|
||||||
|
row.addEventListener("toggle", () => {
|
||||||
|
if (row.open) {
|
||||||
|
lmeState.managerExpandedRows.add(key);
|
||||||
|
} else {
|
||||||
|
lmeState.managerExpandedRows.delete(key);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function setManagedCategoryVisible(category, visible) {
|
function setManagedCategoryVisible(category, visible) {
|
||||||
if (category.key === "imported") {
|
if (category.key === "imported") {
|
||||||
lmeState.importedVisible = visible;
|
lmeState.importedVisible = visible;
|
||||||
|
|||||||
Reference in new issue
Block a user