Mercurial > hg > orthanc-wsi
changeset 523:6d59a08bdfc7 annotations
add user note per feature
| author | Sebastien Jodogne <s.jodogne@gmail.com> |
|---|---|
| date | Wed, 26 Aug 2026 20:00:28 +0200 |
| parents | 018fa7f3bd4f |
| children | 23d3f07a2314 |
| files | ViewerPlugin/WebApplication/viewer.html ViewerPlugin/WebApplication/viewer.js |
| diffstat | 2 files changed, 18 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/ViewerPlugin/WebApplication/viewer.html Wed Aug 26 19:47:36 2026 +0200 +++ b/ViewerPlugin/WebApplication/viewer.html Wed Aug 26 20:00:28 2026 +0200 @@ -418,17 +418,17 @@ <div> <template v-for="prop in annotationProperties"> <div v-if="prop.type === 'readonly'" class="d-flex align-items-baseline border-bottom py-1 gap-2"> - <span class="text-muted small flex-shrink-0" style="width:8em">{{prop.label}}</span> + <span class="text-muted small flex-shrink-0" style="width:5em">{{prop.label}}</span> <span class="text-break small">{{prop.value}}</span> </div> <div v-else-if="prop.type === 'editable'" class="d-flex align-items-center border-bottom py-1 gap-2"> - <label class="text-muted small flex-shrink-0 mb-0" style="width:8em">{{prop.label}}</label> + <label class="text-muted small flex-shrink-0 mb-0" style="width:5em">{{prop.label}}</label> <input type="text" class="form-control form-control-sm small flex-grow-1" v-model="prop.value" v-on:change="UpdateAnnotationProperty(prop)"> </div> <div v-else-if="prop.type === 'dropdown'" class="d-flex align-items-center border-bottom py-1 gap-2"> - <label class="text-muted small flex-shrink-0 mb-0" style="width:8em">{{prop.label}}</label> + <label class="text-muted small flex-shrink-0 mb-0" style="width:5em">{{prop.label}}</label> <select class="form-select form-select-sm small flex-grow-1" v-model="prop.value" v-on:change="UpdateAnnotationProperty(prop)">
--- a/ViewerPlugin/WebApplication/viewer.js Wed Aug 26 19:47:36 2026 +0200 +++ b/ViewerPlugin/WebApplication/viewer.js Wed Aug 26 20:00:28 2026 +0200 @@ -241,6 +241,12 @@ if (geometry !== null) { var feature = new ol.Feature(geometry); feature.set('layer-id', layerId); + + var note = response.data.features[i]['note']; + if (note !== undefined) { + feature.set('note', note); + } + that.drawSource.addFeature(feature); } } @@ -275,6 +281,12 @@ if (item !== null) { item['layer-id'] = feature.get('layer-id'); + + var note = feature.get('note'); + if (note !== undefined) { + item['note'] = note; + } + features.push(item); } }); @@ -418,6 +430,7 @@ UpdateAnnotationProperty: function(prop) { if (this.selectedFeature && prop.featureProp) { this.selectedFeature.set(prop.featureProp, prop.value); + this.SaveUserFeatures(); } }, @@ -973,6 +986,8 @@ that.AddReadOnlyProperty('Area', FormatArea(geometry.getArea(), that.map.getView().getProjection())); } + that.AddEditableProperty('Note', feature.get('note') || '', 'note'); + /* // TODO that.AddReadOnlyProperty('Length', '1.23 mm');
