picture-annotation.html
HTML document, ASCII text
1{% extends "default.html" %} 2 3{% block nav_title %}{{ resource.title }}{% endblock %} 4{% block title %}Annotating picture {{ resource.title }} | {{ site_name }}{% endblock %} 5{% set back_url = "/picture/" + resource.id|string %} 6 7{% block content %} 8<style> 9py-script { 10display: none; 11} 12/* Full PyScript style is too much, but we still need to hide the Python code */ 13</style> 14<script type="module" src="https://pyscript.net/releases/2024.8.2/core.js"></script> 15 16<x-frame style="--width: 768px"> 17<h1>Annotating: {{ resource.title }}</h1> 18<p id="annotation-helper-message">Please wait for Python to load...</p> 19</x-frame> 20<x-frame id="main-area"> 21<x-buttonbox id="shape-selector"> 22<button class="button-flat" title="selection" id="select"> 23<iconify-icon icon="mdi:cursor-default"></iconify-icon> 24</button> 25<button class="button-flat" title="rectangle" id="shape-bbox"> 26<iconify-icon icon="mdi:square"></iconify-icon> 27</button> 28<button class="button-flat" title="polygon" id="shape-polygon"> 29<iconify-icon icon="mdi:pentagon"></iconify-icon> 30</button> 31<button class="button-flat" title="polyline" id="shape-polyline"> 32<iconify-icon icon="mdi:graph-line-variant"></iconify-icon> 33</button> 34<button class="button-flat" title="point" id="shape-point"> 35<iconify-icon icon="mdi:crosshairs-gps"></iconify-icon> 36</button> 37</x-buttonbox> 38<div id="annotation-zone"> 39<img id="annotation-image" src="/raw/picture/{{ resource.id }}" alt=""> 40<div id="annotation-ruler-vertical" class="annotation-ruler"></div> 41<div id="annotation-ruler-horizontal" class="annotation-ruler"></div> 42<div id="annotation-ruler-vertical-secondary" class="annotation-ruler"></div> 43<div id="annotation-ruler-horizontal-secondary" class="annotation-ruler"></div> 44</div> 45<x-buttonbox style="display: none;" id="shape-options"> 46<button class="button-flat" title="cancel" id="annotation-cancel"> 47<iconify-icon icon="mdi:close"></iconify-icon> 48</button> 49<button class="button-flat" title="apply" id="annotation-confirm"> 50<iconify-icon icon="mdi:check"></iconify-icon> 51</button> 52<button class="button-flat" title="remove last point" id="annotation-backspace"> 53<iconify-icon icon="mdi:backspace"></iconify-icon> 54</button> 55<button class="button-flat" title="delete shape" id="annotation-delete"> 56<iconify-icon icon="mdi:delete"></iconify-icon> 57</button> 58<button class="button-flat" title="select previous shape" id="annotation-previous"> 59<iconify-icon icon="mdi:chevron-left"></iconify-icon> 60</button> 61<button class="button-flat" title="select next shape" id="annotation-next"> 62<iconify-icon icon="mdi:chevron-right"></iconify-icon> 63</button> 64<div class="flexible-space"></div> 65<button id="annotation-save"> 66Save 67</button> 68</x-buttonbox> 69<x-vbox id="object-types" style="--gap-box: 0.25rem; --padding-box: 1rem;"> 70</x-vbox> 71</x-frame> 72<input type="hidden" id="resource-id" name="resource-id" value="{{ resource.id }}"> 73<script type="mpy" src="/static/picture-annotation.py"></script> 74{% endblock %} 75