diff --git a/touchterrain/server/templates/index.html b/touchterrain/server/templates/index.html index 8bbe848f..24f287bc 100644 --- a/touchterrain/server/templates/index.html +++ b/touchterrain/server/templates/index.html @@ -1,3 +1,4 @@ +{% from "macros.html" import help_popover %} @@ -58,17 +59,13 @@
@@ -89,23 +86,17 @@

id="reloadform" style="margin-bottom: 0px;">
- + Terrain Settings: - + {{ help_popover('terrain_settings_popover') }}
- + {{ help_popover('elevation_data_source_popover') }} (DEM Info)
@@ -145,10 +136,7 @@

- + {{ help_popover('transparency_popover') }}

@@ -157,10 +145,7 @@

- + {{ help_popover('gamma_popover') }}

@@ -169,10 +154,7 @@

- + {{ help_popover('sun_direction_popover') }} @@ -239,13 +218,10 @@

- + - + {{ help_popover('area_selection_box_popover') }}
- 3D Printer Options: - - + 3D Printer Options: + {{ help_popover('3D_printer_options_popover') }} + {{ help_popover('3D_printer_CNC_options_popover', btn_class='btn btn-outline-secondary btn-sm', btn_text='CNC') }}
@@ -349,10 +319,7 @@

- + {{ help_popover('tile_width_popover') }}

@@ -375,10 +342,7 @@

- + {{ help_popover('print_resolution_popover') }}

@@ -412,10 +376,7 @@

- + {{ help_popover('tile_config_popover') }}

@@ -423,10 +384,7 @@

- + {{ help_popover('effective_resolution_popover') }} m,   (source DEM is:  ) @@ -451,10 +409,7 @@

- + {{ help_popover('base_thickness_popover') }}

@@ -489,10 +444,7 @@

- + {{ help_popover('zscale_popover') }}

@@ -506,10 +458,7 @@

- + {{ help_popover('fileformat_popover') }}

@@ -518,10 +467,7 @@

- + {{ help_popover('manual_settings_popover') }}
diff --git a/touchterrain/server/templates/intro.html b/touchterrain/server/templates/intro.html index f56b8de4..0e79eadc 100644 --- a/touchterrain/server/templates/intro.html +++ b/touchterrain/server/templates/intro.html @@ -41,7 +41,12 @@ {% endif %}
- Click to continue +
\ No newline at end of file diff --git a/touchterrain/server/templates/macros.html b/touchterrain/server/templates/macros.html new file mode 100644 index 00000000..65092ed6 --- /dev/null +++ b/touchterrain/server/templates/macros.html @@ -0,0 +1,35 @@ +{# Reusable Jinja macros for TouchTerrain UI components #} + +{# + Help Popover - Button for Bootstrap popover with content defined in JS + + Parameters: + id - Unique identifier, must match JS popover init (required) + btn_class - Button CSS classes (default: 'btn btn-outline-info btn-sm') + btn_text - Button inner HTML (default: question mark icon) + placement - Popover placement: auto, top, bottom, left, right (default: 'auto') + trigger - Popover trigger: 'click hover', 'click', 'hover', 'focus' (default: 'click hover') + delay_show - Delay before showing in ms (default: 500) + delay_hide - Delay before hiding in ms (default: 0) + + Usage: + {{ help_popover('my_popover') }} + {{ help_popover('custom', placement='left', delay_show=0) }} + {{ help_popover('cnc', btn_class='btn btn-outline-secondary btn-sm', btn_text='CNC ') }} +#} +{% macro help_popover(id, btn_class='btn btn-outline-info btn-sm', btn_text='', placement='auto', trigger='click hover', delay_show=500, delay_hide=0) %} + +
+{% endmacro %} diff --git a/touchterrain/server/templates/touchterrain.js b/touchterrain/server/templates/touchterrain.js index f85b03fa..1bc7d136 100644 --- a/touchterrain/server/templates/touchterrain.js +++ b/touchterrain/server/templates/touchterrain.js @@ -144,7 +144,13 @@ window.onload = function () { }); */ - eemap = create_overlay(MAPID, map); // (global) hillshade overlay from google earth engine + // Create hillshade overlay from Earth Engine (if available) + if (MAPID && MAPID !== "") { + eemap = create_overlay(MAPID, map); // (global) hillshade overlay from google earth engine + } else { + eemap = null; // EE not available, no hillshade overlay + console.log("Earth Engine not available - hillshade overlay disabled"); + } init_print_options(); //update all print option values in the GUI to what was inlined by jinja update_options_hidden(); // also store values in hidden ids SetDEM_name(); // sets DEM_name pulldown to what was inlined by jinja @@ -572,6 +578,14 @@ window.onload = function () { placement: 'auto', delay: { "show": 2000, "hide": 0 }, }); + + // Accessibility: update aria attributes on popover show/hide + $('.help-popover').on('shown.bs.popover', function() { + $(this).attr('aria-expanded', 'true'); + $(this).attr('aria-describedby', ''); + }).on('hidden.bs.popover', function() { + $(this).attr('aria-expanded', 'false'); + }); }; // end of onload() @@ -864,7 +878,9 @@ function SetDEM_name(){ // set opacity of hillshade as inverse of transparency given function updateTransparency(transparency_pct) { let op = 1.0 - transparency_pct / 100.0 // opacity - map.overlayMapTypes.getAt(0).setOpacity(op) + if (map.overlayMapTypes.getLength() > 0) { + map.overlayMapTypes.getAt(0).setOpacity(op) + } document.getElementById('hillshade_transparency_slider').value=transparency_pct; document.getElementById('transp').value=transparency_pct; // id in hidden reload 1 document.getElementById('transp3').value=transparency_pct; // id in hidden reload 2