summaryrefslogtreecommitdiff
path: root/templates/index.html
blob: 955d813e387022080e0498ea7847807b7b099c67 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<html>
<title>AVON</title>
<head>
<style>
  td { vertical-align: top; }
  tr.color_1 { background: #ccc; }
  table { border: none; }
  #year-slider { margin: 0.3em; width: 50vw; }
  #slider-container { display: inline; padding: 0.3em; }
</style>
<link rel="stylesheet" type="text/css" href="static/nouislider.min.css">
<script src="static/nouislider.min.js"></script>
</head>
<body>
<div>Jahre: <div id="slider-container"><div id="year-slider" class="search_entry"></div></div>
<div id="main-form"><form action="/" METHOD="POST">
  {% set yrmin = rv.get('year_range_min', 0) | int %}
  {% set yrmax = rv.get('year_range_max', convert.year_map | length - 1 ) | int %}
  <label for="year-range-value-min">Ab Jahr</label>
  <select id="year-range-value-min" name="year_range_min">
    {%- for year in convert.year_map -%}
      <option value="{{loop.index - 1}}" {% if loop.index - 1 == yrmin %} selected="selected"{% endif %}>{{year}}</option>
    {%- endfor -%}
  </select>
  <label for="year-range-value-max">Bis Jahr</label>
  <select id="year-range-value-max" name="year_range_max">
    {%- for year in convert.year_map -%}
      <option value="{{loop.index - 1}}" {% if loop.index - 1 == yrmax %} selected="selected"{% endif %}>{{year}}</option>
    {%- endfor -%}
  </select>

  <!--p><b>Wir importieren momentan das neue Telefonbuch Herbst 2025. Wahrscheinlich wird die Suche solange nicht korrekt funktionieren.</b></p-->

  {%- for field in range(1,5) -%}
    <div class="search_entry">
      <select name="s{{ field }}_col">
        {% set column_search = rv.get('s'+(field|string)+'_val', '') %}
        {% if column_search | length %}
          {% set column_val = rv.get('s'+(field|string)+'_col') %}
          {% set operator_val = rv.get('s'+(field|string)+'_op') %}
          {% set any_val = rv.get('s'+(field|string)+'_any') %}
        {% else %}
          {% set column_val = ['nachname', 'vorname', 'ort', 'rufnummer'][field-1] %}
          {% set operator_val = ['equals', 'equals', 'equals', 'beginswith'][field-1] %}
          {% set any_val = ['', '', 'on', ''][field-1] %}
        {% endif %}
        {%- 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'] ] -%}
          <option value="{{ column[0] }}" {%- if column_val== column[0] -%}selected="selected"{%- endif -%}>{{ column[1] }}</option>
        {%- endfor -%}
      </select>
      <select name="s{{ field }}_op">
        {%- for operator in [ [ 'equals', 'equals'], ['beginswith', 'begins with'], ['beginslike', 'begins like'], ['contains', 'contains' ], ['equalsnot', 'equals not'], ['containsnot', 'contains not'] ] -%}
          <option value="{{ operator[0] }}" {%- if operator_val == operator[0] -%}selected="selected"{%- endif -%}>{{ operator[1] }}</option>
        {%- endfor -%}
      </select>
      <input type="checkbox" name="s{{ field }}_any" {%- if any_val == 'on' -%}checked="{%- endif -%}">any</input>
      <input type="text" name="s{{ field }}_val" value="{{ rv.get('s'+(field|string)+'_val', '') }}">
    </div>
  {%- endfor -%}
  <input type="checkbox" value="on" name="huge" id="huge" {%- if rv.get('huge', '') == "on" -%}checked{%- endif -%}>
  <label for="huge">unlimited</label>
  <input type="submit" value="Search">
</form>
<script>
  var slider = document.getElementById('year-slider');
  var dropdownmin = document.getElementById('year-range-value-min');
  var dropdownmax = document.getElementById('year-range-value-max');
  noUiSlider.create(slider, {
    start: [ {{ yrmin }}, {{ yrmax }} ],
    connect: true,
    step: 1,
    range: { 'min': 0, 'max': {{ convert.year_map | length - 1}} },
  });
  var year_map = [
  {%- for year in convert.year_map -%}
    '{{ year }}',
  {%- endfor -%}
  ];
  var year_range_display = document.getElementById('year-range-display');
  var year_range_value_min = document.getElementById('year-range-value-min');
  var year_range_value_max = document.getElementById('year-range-value-max');
  slider.noUiSlider.on('update', function (values, handle) {
    year_range_value_min.value = Math.floor(values[0]);
    year_range_value_max.value = Math.floor(values[1]);
  });
  dropdownmin.onchange = function() { slider.noUiSlider.set( [this.value, null]); }
  dropdownmax.onchange = function() { slider.noUiSlider.set( [null, this.value]); }
</script>
</div>
<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-->
{% set color = { 'value': 0 } %}
<table>
  <thead><td>flags</td><td>zip</td></thead>
{%- for row in rows -%}
{% set span = row[3:16] | reject("none") | map('length') | max %}
  {% for r in range (span) %}
    {% if ( r == 0 ) and ( color.update({ 'value': 1 - color.value }) ) %} {% endif %}
    <tr class="color_{{ color.value }}">
      {%- if r == 0 -%}
        <td rowspan="{{span}}">{{ convert.multirange_to_years(row[0]) }} : {{ convert.multirange_to_years(row[1]) }} : {{ convert.multirange_to_years(row[2]) }}</td>
      {%- endif -%}
      {%- for c in range(3, 16) -%}
        <td>{{ row[c][r] or '' }}</td>
      {%- endfor -%}
    </tr>
  {%- endfor -%}
{%- endfor -%}
</table>
</body>
</html>