Projekt

Obecné

Profil

Stáhnout (8.2 KB) Statistiky
| Větev: | Revize:
1
{% extends 'base.html.twig' %}
2
  
3
{% block title %}Heatmap.ZČU{% endblock %}
4
{% block stylesheets %}
5
  <link rel="stylesheet" href="{{ asset('css/leaflet.css') }}">
6
  <link rel="stylesheet" href="{{ asset('css/bootstrap.min.css') }}">
7
  <link rel="stylesheet" href="{{ asset('css/style.css') }}">
8
  <link rel="stylesheet" href="{{ asset('css/bootstrap-datepicker3.css') }}">
9
{% endblock %}
10

    
11

    
12
{% block body %}
13

    
14
  <header class="map">
15
    <nav class="navbar navbar-expand-lg ml-auto">
16
      <a href="{{ path('home') }}" class="navbar-brand">
17
        <h1>Heatmap.ZČU</h1>
18
      </a>
19

    
20
      <button type="button" class="navbar-toggler" data-toggle="collapse" data-target="#navigation" aria-controls="navigation" aria-expanded="false" aria-label="Toggle navigation">
21
        <span class="navbar-toggler-icon"></span>
22
      </button>
23

    
24
      <div class="collapse navbar-collapse ml-auto" id="navigation">
25
        
26
        {{ form_start(form, {'action': path('heatmap'), 'method': 'GET'}) }}
27

    
28
          <ul class="navbar-nav">
29
            <li class="nav-item">
30
              {{ form_label(form.date, 'Vyberte datum') }}
31
              {{
32
                form_widget(form.date,
33
                {
34
                  'type' : 'text',
35
                  'id' : 'date',
36
                  'attr' : {
37
                    'class' : 'form-control',
38
                    'maxlength' : '10',
39
                    'placeholder' : 'YYYY-MM-DD',
40
                    'autocomplete' : 'off',
41
                    'onChange' : 'checkDataSetsAvailability("' ~ path('available') ~ '")'
42
                  }
43
                })
44
              }}
45
            </li>
46

    
47
            <li class="nav-item">
48
              {{ form_label(form.time, 'Vyberte čas') }}
49
              {{
50
                form_widget(form.time, {
51
                  'id' : 'time',
52
                  'attr' : {
53
                    'class' : 'custom-select'
54
                  },
55
                })
56
              }}             
57
            </li>
58

    
59
            <li class="nav-item">
60
              <div class="dropdown">
61
              {# {{ form_label(form.type, 'Vyberte datovou sadu') }} #}
62
                <button class="btn dropdown-toggle text-white font-weight-bold" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
63
                  Vyberte datovou sadu
64
              </button>
65
              <div id="dataset-dropdown" class="dropdown-menu" aria-labelledby="dropdownMenuButton">
66
              {% for oneType in form.type.children %}
67
              <label class="dropdown-item custom-dropdown-item">
68
              <div class="custom-control custom-checkbox custom-checkbox-{{oneType.vars.value}}">
69
              {{ form_widget(oneType, {
70
                attr: {'class': "custom-control-input custom-control-input-#{oneType.vars.value}"}
71
              }) }}
72
              {{ form_label(oneType, null, {
73
                'label_attr': {'class': 'custom-control-label'}
74
                }) }}
75
              </div>
76
              </label>
77
              {% endfor %}
78
              </div>
79
              </div>  
80
            </li>
81

    
82
            <li class="nav-item">
83
              {{
84
                form_widget(form.submit,
85
                {
86
                  'name' : '',
87
                  'label' : 'Potvrdit výběr',
88
                  'type' : 'submit',
89
                  'id' : 'submit-btn',
90
                  'attr' : {
91
                    'class': 'btn btn-secondary'
92
                  }
93
                })
94
              }}
95
            </li>
96
          </ul> 
97
        
98
        {{ form_end(form) }}
99

    
100
      </div>
101
    </nav>
102
  </header>
103

    
104
  <div class="map-locations">
105
    <a class="menu" data-toggle="collapse" href="#mapLocations" role="button" aria-expanded="false" aria-controls="mapLocations">
106
      <span class="desktop">Prohlédněte si jednotlivé oblasti</span>
107
      <span class="mobile">Jednotlivé oblasti</span>
108
      <div class="circle"></div>
109
    </a>
110
    <div class="locations collapse" id="mapLocations">
111
      <ul>
112
        <li onclick="setMapView(49.7248, 13.3521, 17)">Kampus ZČU</li>
113
        <li onclick="setMapView(49.7367263, 13.3709177, 18)">FPE &ndash; Pedagogická fakulta</li>
114
        <li onclick="setMapView(49.7474950, 13.3748308, 18)">FPR &ndash; Právnická fakulta</li>
115
        <li onclick="setMapView(49.7450169, 13.3702668, 18)">FZS &ndash; Fakulta zdravotnických studií</li>
116
        <li onclick="setMapView(50.0762590, 12.3640213, 17)">FEK &ndash; pracoviště Cheb</li>
117
        <li onclick="setMapView(49.7236785, 13.3353118, 18)">NTC &ndash; výzkumné centrum</li>
118
        <li onclick="setMapView(49.9590236, 13.1597114, 18)">Zámek ZČU &ndash; Nečtiny</li>
119
        <li onclick="setMapView(49.7345564, 13.3585038, 18)">Koleje Borská</li>
120
        <li onclick="setMapView(49.7250373, 13.3696772, 18)">Koleje Bory</li>
121
        <li onclick="setMapView(49.7600000, 13.3723463, 18)">Koleje Lochotín</li>
122
        <li onclick="setMapView(49.7293726, 13.3589237, 15)">Oblast s&nbsp;koloběžkami</li>
123
      </ul>
124
    </div>
125
  </div>
126

    
127
  <div class="player">
128
    <div class="prev" onclick="previous()"></div>
129
    <div class="play" id="play-pause" onclick="changeAnimationState()"></div>
130
    <div class="next" onclick="next()"></div>
131

    
132
    <div class="datetime">
133
    
134
    {% if form.vars.value.date %}
135
      <div class="date" onclick="openDatepicker()">{{ form.vars.value.date|date('j. n. Y') }}</div>
136
    {% endif %}
137

    
138
    <div class="timeline">
139
      <div class="time hour-0" id="timeline">0:00</div>
140

    
141
      <div class="hour"></div>
142
      <div class="hour"></div>
143
      <div class="hour"></div>
144
      <div class="hour"></div>
145
      <div class="hour"></div>
146
      <div class="hour"></div>
147
      <div class="hour"></div>
148
      <div class="hour"></div>
149
      <div class="hour"></div>
150
      <div class="hour"></div>
151
      <div class="hour"></div>
152
      <div class="hour"></div>
153
      <div class="hour"></div>
154
      <div class="hour"></div>
155
      <div class="hour"></div>
156
      <div class="hour"></div>
157
      <div class="hour"></div>
158
      <div class="hour"></div>
159
      <div class="hour"></div>
160
      <div class="hour"></div>
161
      <div class="hour"></div>
162
      <div class="hour"></div>
163
      <div class="hour"></div>
164
      <div class="hour"></div>
165
      <div class="end-dot"></div>
166
    </div>
167
    </div>
168
  </div>
169

    
170
  <div id="heatmap"></div>
171
  
172
{% endblock %}
173

    
174
{% block javascripts %}
175

    
176
    <script src="{{ asset('js/vendor/jquery-3.4.1.min.js') }}"></script>
177
    <script src="{{ asset('js/vendor/bootstrap.min.js') }}"></script>
178
    <script src="{{ asset('js/vendor/bootstrap-datepicker.min.js') }}"></script>
179
    <script src="{{ asset('js/vendor/bootstrap-datepicker.cs.min.js') }}" charset="UTF-8"></script>
180
    <script src="{{ asset('js/vendor/leaflet.js') }}"></script>
181
    <script src="{{ asset('js/vendor/leaflet-heat.js') }}"></script>
182
    <script src="{{ asset('js/zcu-heatmap.js') }}"></script>
183
    <script>
184
        initDatepicker("{{ path('dates') }}");
185
        initLocationsMenu();
186
        initMap();        
187
        $( document ).ready(function() {
188
          onDocumentReady();
189
          checkDataSetsAvailability("{{ path('available') }}")
190
          {% if submitted %}
191
          loadCurrentTimeHeatmap("{{ path('opendata') }}", "{{ path('positions') }}");
192
          {% endif %}
193
        });
194
        $(window).resize(function() {
195
          initLocationsMenu();
196
        });
197
  </script>
198

    
199
{% endblock %}
200

    
201
{% block style %}
202
  <style>
203
    {% for key, item in dataset_colors %}
204
      .custom-control-input-{{key}}:focus~.custom-control-label::before {
205
          border-color: {{item}} !important;
206
          box-shadow: 0 0 0 0.2rem rgba(192,192,192, 0.4) !important;
207
      }
208

    
209
      .custom-control-input-{{key}}:checked~.custom-control-label::before {
210
          border-color: {{item}} !important;
211
          background-color: {{item}} !important;
212
      }
213

    
214
      .custom-control-input-{{key}}:focus:not(:checked)~.custom-control-label::before {
215
          border-color: {{item}} !important;
216
      }
217

    
218
      .custom-control-input-{{key}}:not(:disabled):active~.custom-control-label::before {
219
          background-color: {{item}} !important;
220
          border-color: {{item}} !important;
221
      }
222

    
223
      .popup-{{key}} > .leaflet-popup-content-wrapper, .popup-{{key}} .leaflet-popup-tip{
224
        background-color: {{item}} !important;
225
      }
226
    {% endfor %}
227
  </style>
228
{% endblock %}
(2-2/3)