]> git.openstreetmap.org Git - nominatim-ui.git/blob - src/assets/js/controller.js
3c122eeae821c2273f99e93f305ce4c3222e7599
[nominatim-ui.git] / src / assets / js / controller.js
1 jQuery(document).ready(function () {
2   var myhistory = [];
3
4   function parse_url_and_load_page() {
5     // 'search', 'reverse', 'details'
6     var pagename = window.location.pathname.replace('.html', '').replace(/^\//, '');
7
8     $('body').attr('id', pagename + '-page');
9
10     if (pagename === 'search' || pagename === 'reverse') {
11       search_page_load();
12     } else if (pagename === 'details') {
13       details_page_load();
14     } else if (pagename === 'deletable') {
15       deletable_page_load();
16     } else if (pagename === 'polygons') {
17       polygons_page_load();
18     }
19   }
20
21   parse_url_and_load_page();
22
23   // load page after form submit
24   $(document).on('submit', 'form', function (e) {
25     e.preventDefault();
26
27     window.history.pushState(myhistory, '', '?' + $(this).serialize());
28
29     parse_url_and_load_page();
30   });
31
32   // load page after click on relative URL
33   $(document).on('click', 'a', function (e) {
34     var target_url = $(this).attr('href');
35     if (target_url && target_url.match(/^http/)) return;
36     if (target_url && !target_url.match(/\.html/)) return;
37
38     e.preventDefault();
39
40     window.history.pushState(myhistory, '', target_url);
41
42     parse_url_and_load_page();
43   });
44
45   // deal with back-button and other user action
46   window.onpopstate = function () {
47     parse_url_and_load_page();
48   };
49 });
50