From a2296cf03fb43cdbd6686742dd794ee61daabd54 Mon Sep 17 00:00:00 2001 From: NaVis0mple <109860906+NaVis0mple@users.noreply.github.com> Date: Thu, 21 Dec 2023 00:20:12 +0800 Subject: [PATCH] fix setButton when imageChange disabled --- modules/ui/fields/input.js | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/modules/ui/fields/input.js b/modules/ui/fields/input.js index 107e9e10f..0b0c4af1e 100644 --- a/modules/ui/fields/input.js +++ b/modules/ui/fields/input.js @@ -32,6 +32,7 @@ export function uiFieldText(field, context) { var input = d3_select(null); var outlinkButton = d3_select(null); var mapillaryViewButton = d3_select(null); + var mapillarySetButton = d3_select(null); var wrap = d3_select(null); var _lengthIndicator = uiLengthIndicator(context.maxCharsForTagValue()); var _entityIDs = []; @@ -176,7 +177,7 @@ export function uiFieldText(field, context) { if (field.id==='mapillary'){ const service = services.mapillary; // set button - wrap.selectAll('.mapillary-set-current') + mapillarySetButton = wrap.selectAll('.mapillary-set-current') .data([0]) .enter() .append('button') @@ -187,6 +188,7 @@ export function uiFieldText(field, context) { d3_event.preventDefault(); const image = service.getActiveImage(); if (!image) return; + if (image.id===utilGetSetValue(input).trim()) return; service .ensureViewerLoaded(context) .then(function() { @@ -199,7 +201,19 @@ export function uiFieldText(field, context) { }); }) .merge(wrap.selectAll('.mapillary-set-current')) - .classed('disabled', () => !service.getActiveImage()); + .classed('disabled', () => { + const image = service.getActiveImage(); + if (!image) return true; + if (image.id===utilGetSetValue(input).trim()) return true; + }); + service.on('imageChanged', function() { + mapillarySetButton.classed('disabled', () => { + const image = service.getActiveImage(); + if (!image) return true; + if (image.id===utilGetSetValue(input).trim()) return true; + return false; + }); + }); // view button mapillaryViewButton = wrap.selectAll('.mapillary-show-view') .data([0]) @@ -219,7 +233,6 @@ export function uiFieldText(field, context) { .selectImage(context, utilGetSetValue(input).trim()) .initViewer(context); }); - }) .merge(wrap.selectAll('.mapillary-show-view')) .classed('disabled', () => !utilGetSetValue(input).trim()); @@ -583,6 +596,19 @@ export function uiFieldText(field, context) { mapillaryViewButton.classed('disabled', !utilGetSetValue(input).trim()); } + if (mapillarySetButton && !mapillarySetButton.empty()) { + const service = services.mapillary; + mapillarySetButton.classed('disabled', () => { + const image = service.getActiveImage(); + if (!image) return true; + if (image.id===utilGetSetValue(input).trim()) { + return true; + } else { + return false; + } + }); + } + if (!isMixed) { _lengthIndicator.update(tags[field.key]); }