templates/main/timelines.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig'%}
  2. {% block stylesheets %}
  3. {{ parent() }}
  4. <!--link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet@1.5.1/dist/leaflet.css"-->
  5. <link rel="preconnect" href="https://fonts.gstatic.com">
  6. <link rel="stylesheet" href="{{ asset('node_modules/leaflet/dist/leaflet.css')}}"></link>
  7. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet-timedimension@1.1.1/dist/leaflet.timedimension.control.min.css" />
  8. <link href="https://fonts.googleapis.com/css2?family=Raleway:wght@400;700&display=swap" rel="stylesheet">
  9. <link rel="stylesheet" href="{{ asset('js/easy-button/easy-button.css') }}" type="text/css" />
  10. <link rel="stylesheet" href="{{asset('css/leaflet.timedimension.control.css')}}" type="text/css" />
  11. <link rel="stylesheet" href="{{ asset('css/timelines.css') }}" type="text/css" />
  12. {% endblock %}
  13. {% block title %}Timemap {{title}}{% endblock %}
  14. {% block body%}
  15. <div class="content-w content-w-map">
  16. <div class="header-menu" data-menu="navmenuProjekte"></div>
  17. <div class="content-back"><a href="{{ path('main_sub', {sub: 'navmenuProjekte'}) }}"><span class="content-back-inner">Projekte</span></a></div>
  18. <div class="content">
  19. <div class="chapters" id="chapters">
  20. <div class="toggler"><span></span></div>
  21. <ul class="chapters-list">
  22. </ul>
  23. </div>
  24. <div class="galleria-w">
  25. <div id="map" class="map"></div>
  26. <div id="map-loading" class="map-loading is-visible" role="status" aria-live="polite" aria-busy="true">
  27. <div class="map-loading-inner">
  28. <div class="map-loading-spinner" aria-hidden="true"></div>
  29. <div class="map-loading-text">Kartendaten werden geladen…</div>
  30. </div>
  31. </div>
  32. {# % if timeline !='' %}
  33. <div id="timeline"></div>
  34. {%endif%}#}
  35. <div id="timeline"></div>
  36. </div>
  37. </div>
  38. </div>
  39. </div>
  40. {% endblock %}
  41. {% block javascripts %}
  42. {{ parent() }}
  43. {#
  44. <script type="text/javascript" src="{{asset('js/api.simile-widgets.org/timeline/2.3.1/simile-ajax-api.js?bundle=true')}}"></script>
  45. <script type="text/javascript" src="{{asset('js/api.simile-widgets.org/timeline/2.3.1/timeline-api.js?bundle=true&timeline-use-local-resources=true')}}"></script>
  46. #}
  47. <script type="text/javascript" src="{{ asset('node_modules/leaflet/dist/leaflet.js')}}"></script>
  48. {# <script type="text/javascript" src="{{ asset('js/timelines.js')}}"></script>#}
  49. <script type="text/javascript" src="{{asset('js/xml2json.js')}}"></script>
  50. <script type="text/javascript" src="{{asset('js/iso8601.js')}}"></script>
  51. <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/leaflet-timedimension@1.1.1/dist/leaflet.timedimension.min.js"></script>
  52. <script type="text/javascript" src="https://cdn.rawgit.com/tryone144/dateFormat/master/date.format.js"></script>
  53. {# <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/iso8601-js-period@0.2.1/iso8601.min.js"></script>#}
  54. <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/leaflet-omnivore/0.3.2/leaflet-omnivore.js"></script>
  55. <script type="text/javascript" src="{{asset('js/editor/togeojson.js')}}"></script>
  56. <script type="text/javascript" src="{{asset('js/timedimension/leaflet.timedimension.js')}}"></script>
  57. <script type="text/javascript" src="{{asset('js/timedimension/leaflet.timedimension.util.js')}}"></script>
  58. <script type="text/javascript" src="{{asset('js/timedimension/leaflet.timedimension.layer.js')}}"></script>
  59. {#<script type="text/javascript" src="{{asset('js/timedimension/leaflet.timedimension.layer.wms.js')}}"></script>
  60. #}<script type="text/javascript" src="{{asset('js/timedimension/leaflet.timedimension.layer.geojson.js')}}"></script>
  61. <script type="text/javascript" src="{{asset('js/timedimension/leaflet.timedimension.player.js')}}"></script>
  62. <script type="text/javascript" src="{{asset('js/timedimension/leaflet.timedimension.control.js')}}"></script>
  63. <script type="text/javascript" src="{{asset('js/timedimension/timelayer_mb.js')}}"></script>
  64. <script type="text/javascript" src="{{asset('js/timedimension/control_mb.js')}}"></script>
  65. <script type="text/javascript" src="{{asset('js/timedimension/timedimension.player.MB.js')}}"></script>
  66. <script type="text/javascript" src="{{asset('js/permalink/Permalink.js')}}"></script>
  67. <script type="text/javascript" src="{{asset('js/permalink/permalink_mb.js')}}"></script>
  68. <script type="text/javascript" src="{{asset('js/easy-button/easy-button.js')}}"></script>
  69. <script type="text/javascript" src="{{asset('js/timedimension/baselayers.js')}}"></script>
  70. <script type="text/javascript" src="{{asset('js/timedimension/TileLayer.Grayscale.js')}}"></script>
  71. <script type="text/javascript" src="{{asset('js/timelines.js')}}"></script>
  72. {% if id == 'autobahn_europa' or id == 'bahn' or id == 'bahn_europa' or id == 'bahn_de_orm' or id == 'bahn_de_hybrid' %}
  73. <script type="text/javascript" src="{{ asset('timelines/js/timeline_borders.js') }}"></script>
  74. {% endif %}
  75. {% if id == 'autobahn_europa' %}
  76. <script type="text/javascript" src="{{ asset('timelines/js/autobahn_europa_ui.js') }}"></script>
  77. {% endif %}
  78. {% if id == 'bahn' or id == 'bahn_europa' or id == 'bahn_de_orm' or id == 'bahn_de_hybrid' %}
  79. <script type="text/javascript" src="{{ asset('timelines/js/bahn_ui.js') }}"></script>
  80. {% endif %}
  81. <script type="text/javascript">
  82. var kmlSource = "{{ path('timelines_kml', {project: id, filepath: '__FILE__.kml'}) }}".replace('__FILE__.kml', '');
  83. var timelineIconSource = "{{ asset('timelines/icons/') }}";
  84. var linkPath = "{{ path('timelines')}}";
  85. $(document).ready(function() {
  86. navigateToActiveId("navmenuTimeline");
  87. $(document.body).addClass('inner-page timeline-page');
  88. if ('{{ id }}' !== '') {
  89. var projectScript = "{{ asset('timelines/js/'~id~'.js') }}";
  90. $.ajax({
  91. url: projectScript,
  92. dataType: 'script',
  93. cache: false
  94. }).done(function () {
  95. if (typeof buildtimeline === 'function') {
  96. buildtimeline();
  97. }
  98. // Info/Quellen etc. never start a KML load — clear the
  99. // default spinner so the map/content is not blocked forever.
  100. setTimeout(function () {
  101. if (typeof hideMapLoading === 'function' &&
  102. typeof _mapDataLoadPending !== 'undefined' &&
  103. _mapDataLoadPending === 0) {
  104. hideMapLoading();
  105. }
  106. }, 0);
  107. }).fail(function (jqXHR, textStatus, errorThrown) {
  108. console.error('Timeline script failed to load:', projectScript, textStatus, errorThrown);
  109. if (typeof hideMapLoading === 'function') {
  110. hideMapLoading();
  111. }
  112. });
  113. }
  114. loadChapters();
  115. // resizeCanvas();
  116. });
  117. // Firefox bfcache can restore a stale/broken map after in-RDM project switches.
  118. window.addEventListener('pageshow', function (event) {
  119. if (event.persisted) {
  120. window.location.reload();
  121. }
  122. });
  123. function loadChapters()
  124. {
  125. $("#chapters li .label-default").removeClass("label-default");
  126. $("#chapters ul #1").addClass("label-default");
  127. var chapters =[''];
  128. var data =[];
  129. try
  130. {
  131. $.get('{{asset('/timelines/')}}' + '/content.xml' , function(xml)
  132. {
  133. var route = "{{ path(app.request.attributes.get('_route'),
  134. app.request.attributes.get('_route_params')) }}";
  135. var className = "";
  136. if(route === '{{path('timelines', {id: 'info'})}}')
  137. {
  138. className = "label-default";
  139. }
  140. var i;
  141. var chapterArray = $.xml2json(xml).chapter;
  142. for(i in chapterArray) {
  143. chapters[i] = chapterArray[i].name;
  144. data[i] = chapterArray[i].data;
  145. }
  146. $("#chapters ul").append($('<li>').append($('<a>').attr('href','{{path('timelines')}}/info').attr('id', 0).append("Info").addClass(className)));
  147. for (var i in chapters)
  148. {
  149. className = "";
  150. // alert(data[i]);
  151. if(route === '{{path('timelines')}}/'+data[i])
  152. {
  153. className = "label-default";
  154. }
  155. $("#chapters ul").append(
  156. $('<li>').append(
  157. $('<a>').attr('href', '{{path('timelines')}}/'+data[i]).attr('id', 0).append(chapters[i]).addClass(className)
  158. ));
  159. }
  160. className = "";
  161. if(route === '{{path('timelines')}}/quellen' && window.location.hash !== '#spenden')
  162. {
  163. className = "label-default";
  164. }
  165. $("#chapters ul").append($('<li>').append($('<a>').attr('href','{{path('timelines')}}/quellen').attr('id', 0).append("Quellen / Links").addClass(className)));
  166. className = "";
  167. if (route === '{{path('timelines')}}/quellen' && window.location.hash === '#spenden') {
  168. className = "label-default";
  169. }
  170. $("#chapters ul").append($('<li>').append($('<a>').attr('href','{{path('timelines')}}/quellen#spenden').attr('id', 0).append("Spenden").addClass(className)));
  171. className = "";
  172. {# $("#chapters ul").append($('<li>').append($('<a>').attr('href','{{path('contact')}}/Fehler in Timeline').attr('subject', 0).append("Fehler entdeckt?")));
  173. #}
  174. });
  175. }
  176. catch(e)
  177. {
  178. console.log(e.message);
  179. }
  180. }
  181. /* function initContent()
  182. {
  183. /*canvasmenu = new Canvas('canvasmenu');
  184. canvasmenu.create(dataMenu);
  185. canvasmenu.resizeCanvas();
  186. canvasmenu.setCursor('cursor');
  187. $('#canvasmenu').on('mousedown', function (e) {
  188. $('#canvasmenu').on('mouseup mousemove', function handler(e) {
  189. if (e.type === 'mouseup') {
  190. if(dataMenu.links[0] !== null && dataMenu.links[0] !== '')
  191. {
  192. window.location = dataMenu.links[0];
  193. }
  194. }
  195. })
  196. });
  197. }*/
  198. /*function resizeContent()
  199. {
  200. if(canvasmenu !== null)
  201. {
  202. canvasmenu.resizeCanvas();
  203. }
  204. var height = $("#map").height();
  205. $(".leaflet-control-layers").css("max-height", height);
  206. $(".leaflet-control-layers").css("overflow", "auto");
  207. }*/
  208. function loadSet(set) {
  209. $("#chapters li .label-default").removeClass("label-default");
  210. $("#chapters ul #"+set).addClass("label-default");
  211. setName = set;
  212. //resizeCanvas();
  213. };
  214. /*function resizeCanvas() {
  215. var width = $('main').innerWidth();
  216. var menuWidth = parseInt($('#chapters').css("margin-left"), 10) + parseInt($('#chapters').css("width"),10);
  217. var optionWidth = 0;//parseInt($('#optioncontainer').css("width"),10);
  218. var optionHeight = 0;//parseInt($('#optioncontainer').css("width"),10);
  219. var sliderH = 0;//parseInt($('#timelinecontainer').css("height"),10);
  220. var mapWidth = width - menuWidth;
  221. var height = $('main').innerHeight();
  222. var hOptions = 0;
  223. var wOptions = 0;
  224. $('.mapcontainer').css("bottom", sliderH+ "px");
  225. if(4*height > 3* mapWidth)
  226. {
  227. $('#optioncontainer').css("width", mapWidth + "px");
  228. $('#optioncontainer').css("height", optionHeight + "px");
  229. // $('#timelinecontainer').css("width",mapWidth+ "px");
  230. $('.mapcontainer').css("right", 0 + "px");
  231. $('.mapcontainer').css("top", optionHeight + "px");
  232. }
  233. else
  234. {
  235. $('#optioncontainer').css("width", optionWidth +"px");
  236. $('#optioncontainer').css("height", "100%");
  237. // $('#timelinecontainer').css("width", (mapWidth - optionWidth)+ "px");
  238. $('.mapcontainer').css("right", (optionWidth)+ "px");
  239. $('.mapcontainer').css("top", 0 + "px");
  240. }
  241. }*/
  242. </script>
  243. {% endblock %}