PageSourceSearch

https://theweldercatherine.ru/local/templates/catherine/map/js/script.js

js theweldercatherine.ru collected 2026-09-28 08:33:46 UTC 19,304 bytes, 575 lines download raw bytes

1 var modalId;
2
3function displayLocation(position) {
4    var latitude = position.coords.latitude;
5    var longitude = position.coords.longitude;
6    
7    alert("Ваши координаты. Широта: " + latitude + ", Долгота: " + longitude);
8}
9
10function setViewed(elId) {
11    var opt = {
12        'action': 'viewed',
13        'id': elId
14    };
15
16    $.ajax({
17        url: "/map/ajax/map.php",
18        type: "POST",
19        dataType: "json",
20        data: opt,
21        success: function (result) {},
22    });
23
24    var item = $('.map-item[data-id="' + elId + '"]');
25
26    selectMapItem(item);
27
28    return false;
29}
30
31function setPositionInForm(position) {
32    var form = $('form#coffee-map');
33
34    var coordinatesObject = 
35    {
36        coords : {
37            latitude: position.coords.latitude,
38            longitude: position.coords.longitude,
39        }
40    }
41
42    localStorage.setItem('coordinates', JSON.stringify(coordinatesObject));
43
44    form.find('input[name="latitude"]').eq(0).val(position.coords.latitude);
45    form.find('input[name="longitude"]').eq(0).val(position.coords.longitude);
46}
47
48function updateMap(init = false)
49{
50    var form = $('form#coffee-map');
51    
52    var controlCookEspresso = form.find('input[name="cook-espresso"]').eq(0).is(":checked");
53    var controlCookFilter = form.find('input[name="cook-filter"]').eq(0).is(":checked");
54    var controlSellGrain = form.find('input[name="sell-grain"]').eq(0).is(":checked");
55    var citySelected = form.find('select[name="town"]').eq(0).val();
56
57    if (!init) {
58        ymaps.geocode(citySelected).then(function (res) {
59                coords = res.geoObjects.get(0).geometry.getCoordinates();
60
61                coordsStr = coords.join(',');
62                $('#coffee-map input[name="selected-town-coords"]').val(coordsStr);
63        });
64    }
65
66    var latitude = form.find('input[name="latitude"]').eq(0).val();
67    var longitude = form.find('input[name="longitude"]').eq(0).val();
68
69    var opt = {
70        'action': 'map',
71        'cook-espresso': controlCookEspresso,
72        'cook-filter': controlCookFilter,
73        'sell-grain': controlSellGrain,
74        'town': citySelected,
75        'longitude': longitude,
76        'latitude': latitude
77    };
78
79    $.ajax({
80        url: "/map/ajax/map.php",
81        type: "POST",
82        dataType: "json",
83        data: opt,
84        success: function (result) {
85            $('.map-items').empty().html(result.items);
86
87            if (result.data.counters) {
88                $('.catherine-map-form .catherine-map-icon span.owner-counter').html(result.data.counters.owner);
89                $('.catherine-map-form .catherine-map-icon span.buyer-counter').html(result.data.counters.buyer);
90                $('.catherine-map-form .catherine-map-icon span.want-counter').html(result.data.counters.want);
91            }
92
93            myMap.geoObjects.removeAll();
94
95            if (result.items) {
96                var result = ymaps.geoQuery(result.map_dots)
97                        .addToMap(myMap);
98                window.myMapObjects = result;
99
100                var coords = $('#coffee-map input[name="selected-town-coords"]').val();
101                if (coords != "0") {
102                    var coordsObj = coords.split(',');
103                    myMap.setCenter(coordsObj, 10, {});
104                }
105                
106                myMap.geoObjects.events.add('balloonopen', function (e) {
107                    var idObj = e.get('target').balloon.getData().properties.get('name');
108                    setViewed(idObj);
109                });
110
111                if (init) {
112                    // Если в запросе к странице передан id
113                    const curUrlParams = new URLSearchParams(window.location.search);
114                    const id = curUrlParams.get('id');
115                    if (id) {
116                        $('.map-item[data-id="'+id+'"]').trigger('click');
117                    }
118                }
119            }
120        },
121    });
122
123    return false;
124}
125
126function selectMapItem(item) {
127    $(item).parent().prepend(item);
128    $(item).parent().find('.map-item.selected').removeClass('selected');
129    $(item).addClass('selected');
130}
131
132function setAddressToModal(data) {
133                      var modalVisible = $('#' + modalId);
134                      if (modalVisible.length > 0) {
135                          var modalTown = modalVisible.find('input[name="town"]');
136                          if (modalTown.length > 0 && data.city) {
137                              modalTown.val(data.city);
138                          }
139
140                          var modalAddress = modalVisible.find('input[name="address"]');
141                          if (modalAddress.length > 0 && data.house && data.street) {
142                              modalAddress.val(data.street + ' ' + data.house);
143                          }
144                      }
145              }
146
147              function setLocationOnForm() {
148                  if (navigator.geolocation) {
149                      navigator.geolocation.getCurrentPosition(getPositionFromDadata);
150                  }
151              }
152
153              function getPositionFromDadata(position) {
154                      var query = { lat: position.coords.latitude, lon: position.coords.longitude };
155
156                      var options = {
157                          method: "POST",
158                          headers: {
159                              "Content-Type": "application/json",
160                              "Accept": "application/json"
161                          },
162                          body: JSON.stringify(query)
163                      }
164
165                      let response = fetch("/ajax/dadata_suggest_main.php/geolocate/address", options)
166                                      .then(response => response.json())
167                                      .then(commits => setAddressToModal(commits.suggestions[0].data));
168              }
169
170
171jQuery(document).ready(function ($) {
172    //$('select.select2-init').select2({});
173    $('select.nice-select').niceSelect();
174
175    if (window.navigator && window.navigator.geolocation) {
176        $('a.geolocation').show();
177    } else {
178        $('a.geolocation').hide();
179    }
180
181    $(document).on('click', '.map-purhaces-items--item-link a' , function(e) {
182        e.stopPropagation();
183    });
184
185    $(document).on('click', '.map-purhaces--purhace' , function(e) {
186        e.preventDefault();
187
188         //if (e.target != this) {
189         //   console.log(e.target);
190         //   return false;
191         //}
192
193        if ($(this).hasClass('open')) {
194            $('.map-purhaces .map-purhaces--purhace').removeClass('open');
195            return false;
196        }
197
198        $('.map-purhaces .map-purhaces--purhace').removeClass('open');
199        $(this).addClass('open');
200
201        return false;
202    });
203
204    $(document).on('click', '.map-item-marshrut--link' , function(e) {
205        e.preventDefault();
206        var marshrut = $(this).closest('.map-item-marshrut--text');
207
208        marshrut.find('.map-item-marshrut--popup').toggle();
209        
210        return false;
211    });
212
213    $(document).on('click', '.map_popup_geo_in_form a' , function(e) {
214        e.preventDefault();
215        window.modalId = $(this).closest('.reveal-modal').attr('id');
216        setLocationOnForm();
217        return false;
218    });
219
220    $(document).on('click', '.map-popup-form-checkbox--wrap .catherine-map-checkbox-title' , function(e) {
221        e.preventDefault();
222        $(this).parent().find('.filter-dismiss label').click();
223        return false;
224    });
225
226
227    $(document).on('click', '.catherine-map-coffee-status--text' , function(e) {
228        e.preventDefault();
229
230        var parent = $(this).parent();
231
232        parent.find('.catherine-map-coffee-status--modal').show();
233
234        return false;
235    });
236
237    $(document).on('click', '.catherine-map-coffee-status-modal-header--close' , function(e) {
238        e.preventDefault();
239        var parent = $(this).parent().parent();
240        parent.hide();
241        return false;
242    });
243
244    $(document).on('click', '.catherine-map-coffee-status-modal--ok' , function(e) {
245        e.preventDefault();
246        var parent = $(this).parent();
247        parent.hide();
248        return false;
249    });
250
251    
252
253    $(document).on('click', '.catherine-map-other-checkbox .catherine-map-cook, .catherine-map-other-checkbox .catherine-map-sell' , function(e) {
254        e.preventDefault();
255        $(this).parent().find('.filter-dismiss label').click();
256        return false;
257    });
258
259    $(document).on('change', 'form#coffee-map', function () {
260        updateMap();
261    })
262
263    $(document).on('change', 'form.catherine-map-type', function () {
264        var checkboxes = $(this).find('input[type="checkbox"]');
265        if (checkboxes.length > 0) {
266            var shownObjects,
267            byTypeChecked = new ymaps.GeoQueryResult();
268
269            $('.map-items .map-item').hide();
270            var notChecked = true;
271
272            $.each(checkboxes, function(index,value) {
273                if ($(value).prop('checked')) {
274                    notChecked = false
275                    byTypeChecked = myMapObjects.search('properties.map_type = ' + $(value).val()).add(byTypeChecked)
276                    $('.map-items .map-item[data-type=' + $(value).val() + ']').show();
277                }
278            });
279
280            if (notChecked) {
281                byTypeChecked = myMapObjects.add(byTypeChecked)
282                shownObjects = byTypeChecked.addToMap(myMap);
283                myMapObjects.remove(shownObjects).removeFromMap(myMap);
284
285                $('.map-items .map-item').show();
286                return
287            }
288
289            shownObjects = byTypeChecked.addToMap(myMap);
290            myMapObjects.remove(shownObjects).removeFromMap(myMap);
291        }
292    })
293
294    $(document).on('click', '.map-add-button-a' , function(e) {
295        var modal = $('.map-add-mini-modal');
296
297        if (modal.length > 0) {
298            if (modal.hasClass("opened")) {
299                modal.removeClass('opened');
300            } else {
301                modal.addClass('opened');
302            }
303        }
304
305        return false;
306    });
307
308    $(document).on('click', '.map-item' , function(e) {
309        var coord = $(this).attr('data-coordinate');
310        var id = $(this).attr('data-id');
311        if (id) {
312            //pm = ymaps.geoQuery(myMap.geoObjects).search('properties.name == "' + id + '"').getCenter(myMap);
313            //myMap.setCenter(pm).then(function () {
314            //    objectManager.objects.balloon.open(id);
315            //});
316            myMap.setCenter(coord.split(','), 14, {
317                checkZoomRange: true
318            });
319
320            selectMapItem(this);
321
322            $([document.documentElement, document.body]).animate({
323                scrollTop: $(".catherine-map-form").offset().top - 100
324            }, 1000);
325        }
326    });
327
328    $(document).on('submit','#map_popup_error_add form.ajax-form',function(){
329        var form = $(this);
330        var url = form.attr('action');
331        var dataForm = form.serialize();
332
333        $.ajax({
334            url: url,
335            type: "POST",
336            dataType: "json",
337            data: dataForm,
338            success: function (result) {
339                if (result.type === 'error') {
340                    $.each(result.fields, function(index, value) {
341                        //if (value.name === 'photo') {
342                        //    form.find('.photo-upload').eq(0).parent().addClass('error');
343                        //    form.find('.photo-upload').eq(0).html(value.message);
344                        //} else {
345                            
346                            if (value.name === 'description') {
347                                form.find('textarea[name="' + value.name + '"]').eq(0).parent().addClass('error');
348                            } else {
349                                form.find('input[name="' + value.name + '"]').eq(0).parent().addClass('error');
350                            }
351
352                        //}
353                    });
354                } else {
355                    $('#map_popup_error_add').trigger('reveal:close');
356                    $('a[data-reveal-id="map_popup_error_ok"]').click();
357                }
358            },
359        });
360
361        return false;
362    });
363
364    $(document).on('submit','#map_popup_auto_add form.ajax-form',function(){
365        var form = $(this);
366        var url = form.attr('action');
367        var dataForm = form.serialize();
368
369        $.ajax({
370            url: url,
371            type: "POST",
372            dataType: "json",
373            data: dataForm,
374            success: function (result) {
375                //if (result.type === 'error') {
376                    
377                //} else {
378                    $('.reveal-modal').trigger('reveal:close');
379
380
381
382                    $('a[data-reveal-id="map_popup_auto_ok"]').click();
383                //}
384            },
385        });
386
387        return false;
388    });
389
390    $(document).on('submit','#map_popup_visitor_add form.ajax-form',function(){
391        var form = $(this);
392        var url = form.attr('action');
393        var dataForm = form.serialize();
394
395        $.ajax({
396            url: url,
397            type: "POST",
398            dataType: "json",
399            data: dataForm,
400            success: function (result) {
401                if (result.type === 'error') {
402                    $.each(result.fields, function(index, value) {
403                        form.find('input[name="' + value.name + '"]').eq(0).parent().addClass('error');
404                    });
405                } else {
406                    $('#map_popup_visitor_add').trigger('reveal:close');
407                    $('a[data-reveal-id="map_popup_visitor_ok"]').click();
408                }
409            },
410        });
411
412        return false;
413    });
414
415    $(document).on('submit','#map_popup_wait_add form.ajax-form',function(){
416        var form = $(this);
417        var url = form.attr('action');
418        var dataForm = form.serialize();
419
420        $.ajax({
421            url: url,
422            type: "POST",
423            dataType: "json",
424            data: dataForm,
425            success: function (result) {
426                if (result.type === 'error') {
427                    $.each(result.fields, function(index, value) {
428                        form.find('input[name="' + value.name + '"]').eq(0).parent().addClass('error');
429                    });
430                } else {
431                    $('#map_popup_wait_add').trigger('reveal:close');
432                    $('a[data-reveal-id="map_popup_wait_ok"]').click();
433                }
434            },
435        });
436
437        return false;
438    });
439
440    $(document).on('submit','.map_popup_owner_add form.ajax-form',function(){
441        var form = $(this);
442        var url = form.attr('action');
443        var dataForm = new FormData(this);
444
445        var id = $(this).find('input[name="id"]');
446
447        $.ajax({
448            url: url,
449            type: "POST",
450            dataType: "json",
451            data: dataForm,
452            processData: false,
453            contentType: false,
454            success: function (result) {
455                if (result.type === 'error') {
456                    $.each(result.fields, function(index, value) {
457                        form.find('[name="' + value.name + '"]').eq(0).parent().addClass('error');
458                    });
459                } else {
460                    if (id.length > 0) {
461                        $('#map_popup_owner_edit_' + id.val()).trigger('reveal:close');
462                    } else {
463                        $('#map_popup_owner_add').trigger('reveal:close');
464                    }
465
466                    setTimeout(() => { 
467                        $('a[data-reveal-id="map_popup_ok"]').click();
468                        
469                        setTimeout(function(){
470                            location.reload();
471                        }, 2000);
472
473                    }, 1000);
474                }
475            },
476        });
477
478        return false;
479    });
480
481    $('.map-popup-form-upload--add').on('click', function (event) {
482        var input = $(this).closest('.map_popup_yellow').find('.map-popup-form-upload--inputs input.not-selected').eq(0);
483        if (input.length > 0) {
484            input.click();
485        }
486    });
487
488    $('a.open-modal').on('click', function (event) {
489        var dataId = $(this).attr('data-id');
490        var aLink = $('a[data-popup-id="' + dataId + '"]');
491
492        $('#map_popup_view_' + dataId).trigger('reveal:close');
493
494        if (aLink.length > 0) {
495            setTimeout(() => { $('a[data-popup-id="' + dataId + '"]').click(); }, 1000);
496        }
497    });
498
499    $('.map-popup-form-input input[name="town"]').on('change', function (event) {
500        var input = $(this);
501        var inputClosest = input.closest('.map-popup-form');
502        if (input.val() === 'Москва' || input.val() === 'Питер' || input.val() === 'Санкт-Петербург') {
503            inputClosest.find('input[name="metro"]').parent().css('display', 'block');
504        } else {
505            inputClosest.find('input[name="metro"]').parent().css('display', 'none');
506        }
507    });
508
509    $('.upload-input').on('change', function (event) {
510        let idImg = $(this).attr('name');
511        let input = this;
512       
513
514            if (input.files && input.files[0]) {
515                var reader = new FileReader();
516               
517               
518                var extension = input.files[0].name.split('.').pop().toLowerCase()
519
520                if (extension == 'png' || extension == 'jpg' || extension === 'svg' || extension === 'jpeg') {
521                    reader.onload = function (e) {
522                        var imgSrc = $(input).closest('.map_popup_yellow').find('img[data-target="' + idImg + '"]');
523
524                        imgSrc.attr('src', e.target.result);
525                        imgSrc.css('display', 'block');
526
527                        $(input).removeClass('not-selected');
528                    } 
529
530                    // var gg = reader.readAsArrayBuffer(input.files[0]); 
531                 
532                 if(input.files[0].size < 614400){  console.log("ffffff4"); 
533                    console.log(input.files[0].size);
534                    reader.readAsDataURL(input.files[0]); // convert to base64 string
535                    $('#submid').prop('disabled', false);
536                    }else{    console.log("sdfsdf0ссс013344"); 
537                        $('[name="invalid_size"]').eq(0).parent().addClass('error'); 
538                        $('#submid').prop('disabled', true);
539                    }
540
541                   
542                }
543            };
544    });
545
546    //$('.ajax-form.map-popup-form').on('change', function (event) {
547    //    console.log($(this));
548    //});
549
550   
551});
552
553
554
555$(document).on('click', '.geolocation' , function(e) {
556    navigator.geolocation.getCurrentPosition(function(position) {
557
558            // Текущие координаты.
559            var lat = position.coords.latitude;
560            var lng = position.coords.longitude;
561
562            // Отрисовка карты.
563//            var map = new GMaps({
564//                el: '#map',
565//                lat: lat,
566//                lng: lng
567//            });
568
569//            map.addMarker({
570//                lat: lat,
571//                lng: lng
572//            });
573
574        });
575});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.