roundabout,
created on Tuesday, 3 September 2024, 09:41:11 (1725356471),
received on Wednesday, 4 September 2024, 09:03:53 (1725440633)
Author identity: vlad <vlad.muntoiu@gmail.com>
4f679887ad3defd8f49f646ae11c082af5e14564
static/picture-annotation.py
@@ -10,12 +10,14 @@ zone = document.getElementById("annotation-zone")
confirm_button = document.getElementById("annotation-confirm")
cancel_button = document.getElementById("annotation-cancel")
backspace_button = document.getElementById("annotation-backspace")
delete_button = document.getElementById("annotation-delete")
object_list = document.getElementById("object-types")
confirm_button.style.display = "none"
cancel_button.style.display = "none"
backspace_button.style.display = "none"
delete_button.style.display = "none"
shape_type = ""
bbox_pos = None
new_shape = None
@@ -60,6 +62,8 @@ async def select_shape(event):
objects = await get_all_objects()
delete_button.style.display = "block"
object_list.innerHTML = ""
new_radio = document.createElement("input")
@@ -100,10 +104,25 @@ def unselect_shape(event):
selected_shape = None
object_list.innerHTML = ""
delete_button.style.display = "none"
def delete_shape(event):
global selected_shape
if selected_shape is None:
return
# Shape is SVG shape inside SVG so we need to remove the parent SVG
selected_shape.parentNode.remove()
selected_shape = None
object_list.innerHTML = ""
delete_button.style.display = "none"
select_shape_proxy = create_proxy(select_shape)
unselect_shape_proxy = create_proxy(unselect_shape)
delete_shape_proxy = create_proxy(delete_shape)
delete_button.addEventListener("click", delete_shape_proxy)
# These are functions usable in JS
static/style.css
@@ -3,6 +3,13 @@
:root {
--gap-navbar: 1rem;
--width-navbar-button: 0;
--text-soft: #000000C0;
--text-softer: #0000009A;
--text-faint: #00000066;
}
p {
color: var(--text-soft);
}
iconify-icon {
@@ -63,3 +70,7 @@ iconify-icon {
.shape-container {
pointer-events: none;
}
#annotation-helper-message {
min-height: 2lh;
}
templates/picture-annotation.html
@@ -51,6 +51,9 @@
<button class="button-flat" title="remove last point" id="annotation-backspace">
<iconify-icon icon="mdi:backspace"></iconify-icon>
</button>
<button class="button-flat" title="delete shape" id="annotation-delete">
<iconify-icon icon="mdi:delete"></iconify-icon>
</button>
</x-buttonbox>
<x-vbox id="object-types" style="--gap-box: 0.25rem; --padding-box: 1rem;">
</x-vbox>