summaryrefslogtreecommitdiff
path: root/templates/index.html
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-02-28 00:23:20 +0100
committererdgeist <erdgeist@erdgeist.org>2026-02-28 00:23:20 +0100
commitff8a99329c9b79b3c5c8427d8f830821f13ccd32 (patch)
treed665180b82c2cf34f5d89f45c744d90225b3e084 /templates/index.html
parent54e247945dfa3a4bd80f71fce1b506bec12178a9 (diff)
multirange-ify yearsmain
Diffstat (limited to 'templates/index.html')
-rw-r--r--templates/index.html76
1 files changed, 63 insertions, 13 deletions
diff --git a/templates/index.html b/templates/index.html
index cf4e616..955d813 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -5,39 +5,89 @@
5 td { vertical-align: top; } 5 td { vertical-align: top; }
6 tr.color_1 { background: #ccc; } 6 tr.color_1 { background: #ccc; }
7 table { border: none; } 7 table { border: none; }
8 #year-slider { margin: 0.3em; width: 50vw; }
9 #slider-container { display: inline; padding: 0.3em; }
8</style> 10</style>
11<link rel="stylesheet" type="text/css" href="static/nouislider.min.css">
12<script src="static/nouislider.min.js"></script>
9</head> 13</head>
10<body> 14<body>
11<form action="/" METHOD="POST"> 15<div>Jahre: <div id="slider-container"><div id="year-slider" class="search_entry"></div></div>
16<div id="main-form"><form action="/" METHOD="POST">
17 {% set yrmin = rv.get('year_range_min', 0) | int %}
18 {% set yrmax = rv.get('year_range_max', convert.year_map | length - 1 ) | int %}
19 <label for="year-range-value-min">Ab Jahr</label>
20 <select id="year-range-value-min" name="year_range_min">
21 {%- for year in convert.year_map -%}
22 <option value="{{loop.index - 1}}" {% if loop.index - 1 == yrmin %} selected="selected"{% endif %}>{{year}}</option>
23 {%- endfor -%}
24 </select>
25 <label for="year-range-value-max">Bis Jahr</label>
26 <select id="year-range-value-max" name="year_range_max">
27 {%- for year in convert.year_map -%}
28 <option value="{{loop.index - 1}}" {% if loop.index - 1 == yrmax %} selected="selected"{% endif %}>{{year}}</option>
29 {%- endfor -%}
30 </select>
31
32 <!--p><b>Wir importieren momentan das neue Telefonbuch Herbst 2025. Wahrscheinlich wird die Suche solange nicht korrekt funktionieren.</b></p-->
33
12 {%- for field in range(1,5) -%} 34 {%- for field in range(1,5) -%}
13 <div class="search_entry"> 35 <div class="search_entry">
14 <select name="search_{{ field }}_column"> 36 <select name="s{{ field }}_col">
15 {% set column_search = request.form.get('search_'+(field|string)+'_string', '') %} 37 {% set column_search = rv.get('s'+(field|string)+'_val', '') %}
16 {% if column_search | length %} 38 {% if column_search | length %}
17 {% set column_val = request.form.get('search_'+(field|string)+'_column') %} 39 {% set column_val = rv.get('s'+(field|string)+'_col') %}
18 {% set operator_val = request.form.get('search_'+(field|string)+'_operator') %} 40 {% set operator_val = rv.get('s'+(field|string)+'_op') %}
19 {% set any_val = request.form.get('search_'+(field|string)+'_any') %} 41 {% set any_val = rv.get('s'+(field|string)+'_any') %}
20 {% else %} 42 {% else %}
21 {% set column_val = ['nachname', 'vorname', 'ort', 'rufnummer'][field-1] %} 43 {% set column_val = ['nachname', 'vorname', 'ort', 'rufnummer'][field-1] %}
22 {% set operator_val = ['equals', 'contains', 'equals', 'contains'][field-1] %} 44 {% set operator_val = ['equals', 'equals', 'equals', 'beginswith'][field-1] %}
23 {% set any_val = ['', '', 'on', ''][field-1] %} 45 {% set any_val = ['', '', 'on', ''][field-1] %}
24 {% endif %} 46 {% endif %}
25 {%- for column in [ ['vorname', 'Vorname'], ['nachname', 'Nachname'], ['zip', 'PLZ'], ['ort', 'Ort'], ['vorwahl', 'Vorwahl'], ['rufnummer', 'Rufnummer'], ['strasse', 'Straße'], ['hausnummer', 'Hausnummer'], ['zusaetze', 'Zusatz'], ['verweise', 'Verweise / Branche'], ['email', 'E-Mail'], ['web', 'Webseite'] ] -%} 47 {%- for column in [ ['vorname', 'Vorname'], ['nachname', 'Nachname'], ['zip', 'PLZ'], ['ort', 'Ort'], ['vorwahl', 'Vorwahl'], ['rufnummer', 'Rufnummer'], ['strasse', 'Straße'], ['hausnummer', 'Hausnummer'], ['zusaetze', 'Zusatz'], ['verweise', 'Verweise / Branche'], ['email', 'E-Mail'], ['web', 'Webseite'] ] -%}
26 <option value="{{ column[0] }}" {%- if column_val== column[0] -%}selected="selected"{%- endif -%}>{{ column[1] }}</option> 48 <option value="{{ column[0] }}" {%- if column_val== column[0] -%}selected="selected"{%- endif -%}>{{ column[1] }}</option>
27 {%- endfor -%} 49 {%- endfor -%}
28 </select> 50 </select>
29 <select name="search_{{ field }}_operator"> 51 <select name="s{{ field }}_op">
30 {%- for operator in [ [ 'equals', 'equals'], ['beginswith', 'begins with'], ['contains', 'contains' ], ['equalsnot', 'equals not'], ['containsnot', 'contains not'] ] -%} 52 {%- for operator in [ [ 'equals', 'equals'], ['beginswith', 'begins with'], ['beginslike', 'begins like'], ['contains', 'contains' ], ['equalsnot', 'equals not'], ['containsnot', 'contains not'] ] -%}
31 <option value="{{ operator[0] }}" {%- if operator_val == operator[0] -%}selected="selected"{%- endif -%}>{{ operator[1] }}</option> 53 <option value="{{ operator[0] }}" {%- if operator_val == operator[0] -%}selected="selected"{%- endif -%}>{{ operator[1] }}</option>
32 {%- endfor -%} 54 {%- endfor -%}
33 </select> 55 </select>
34 <input type="checkbox" name="search_{{ field }}_any" {%- if any_val == 'on' -%}checked="{%- endif -%}">any</input> 56 <input type="checkbox" name="s{{ field }}_any" {%- if any_val == 'on' -%}checked="{%- endif -%}">any</input>
35 <input type="text" name="search_{{ field }}_string" value="{{ request.form.get('search_'+(field|string)+'_string', '') }}"> 57 <input type="text" name="s{{ field }}_val" value="{{ rv.get('s'+(field|string)+'_val', '') }}">
36 </div> 58 </div>
37 {%- endfor -%} 59 {%- endfor -%}
60 <input type="checkbox" value="on" name="huge" id="huge" {%- if rv.get('huge', '') == "on" -%}checked{%- endif -%}>
61 <label for="huge">unlimited</label>
38 <input type="submit" value="Search"> 62 <input type="submit" value="Search">
39</form> 63</form>
40{% if rows | length > 0 -%}<h3>Found {{ rows | length }} matches.</h3>{% endif %} 64<script>
65 var slider = document.getElementById('year-slider');
66 var dropdownmin = document.getElementById('year-range-value-min');
67 var dropdownmax = document.getElementById('year-range-value-max');
68 noUiSlider.create(slider, {
69 start: [ {{ yrmin }}, {{ yrmax }} ],
70 connect: true,
71 step: 1,
72 range: { 'min': 0, 'max': {{ convert.year_map | length - 1}} },
73 });
74 var year_map = [
75 {%- for year in convert.year_map -%}
76 '{{ year }}',
77 {%- endfor -%}
78 ];
79 var year_range_display = document.getElementById('year-range-display');
80 var year_range_value_min = document.getElementById('year-range-value-min');
81 var year_range_value_max = document.getElementById('year-range-value-max');
82 slider.noUiSlider.on('update', function (values, handle) {
83 year_range_value_min.value = Math.floor(values[0]);
84 year_range_value_max.value = Math.floor(values[1]);
85 });
86 dropdownmin.onchange = function() { slider.noUiSlider.set( [this.value, null]); }
87 dropdownmax.onchange = function() { slider.noUiSlider.set( [null, this.value]); }
88</script>
89</div>
90<h3>Found {{ rows | length }} matches for your <a href="{{ url_for(request.endpoint,**rv) }}">query</a>. <small>You may also try <a href="/facebook">the facebook search</a></small>.</h3> <!-- *dict(request.values)) }}">query</a>.</h3-->
41{% set color = { 'value': 0 } %} 91{% set color = { 'value': 0 } %}
42<table> 92<table>
43 <thead><td>flags</td><td>zip</td></thead> 93 <thead><td>flags</td><td>zip</td></thead>
@@ -47,7 +97,7 @@
47 {% if ( r == 0 ) and ( color.update({ 'value': 1 - color.value }) ) %} {% endif %} 97 {% if ( r == 0 ) and ( color.update({ 'value': 1 - color.value }) ) %} {% endif %}
48 <tr class="color_{{ color.value }}"> 98 <tr class="color_{{ color.value }}">
49 {%- if r == 0 -%} 99 {%- if r == 0 -%}
50 <td rowspan="{{span}}">{{ convert.bits_to_years(row[0]|int) }} : {{ convert.bits_to_years(row[1]|int) }} : {{ convert.bits_to_years(row[2]|int) }}</td> 100 <td rowspan="{{span}}">{{ convert.multirange_to_years(row[0]) }} : {{ convert.multirange_to_years(row[1]) }} : {{ convert.multirange_to_years(row[2]) }}</td>
51 {%- endif -%} 101 {%- endif -%}
52 {%- for c in range(3, 16) -%} 102 {%- for c in range(3, 16) -%}
53 <td>{{ row[c][r] or '' }}</td> 103 <td>{{ row[c][r] or '' }}</td>