address_suggestion-1.0.3/js/address_suggestion_widget.js

js/address_suggestion_widget.js
(function ($, Drupal, once) {
  Drupal.behaviors.address_suggestion_widget = {
    attach: function (context, settings) {

      $(once('initiate-autocomplete', 'input.address-suggestion-widget', context)).each(function () {
        const form_page = $(this).closest('form');
        let ui_autocomplete = $(this).data('ui-autocomplete');
        ui_autocomplete.options.select = function (event, ui) {
          if("location_field" in settings.address_suggestion && 'location' in  ui.item){
            let location_field = settings.address_suggestion.location_field;
            let type_field = settings.address_suggestion.type_field;
            let longitude = ui.item.location.longitude;
            let latitude = ui.item.location.latitude;
            if(type_field == 'geolocation'){
              form_page.find("input[name*='" + location_field + "[0][lat]']").val(latitude);
              form_page.find("input[name*='" + location_field + "[0][lng]']").val(longitude);
            }
            if(type_field == 'geofield'){
              form_page.find("input[name*='" + location_field + "[0][value][lat]']").val(latitude);
              form_page.find("input[name*='" + location_field + "[0][value][lon]']").val(longitude);
            }
          }
        }
      });
    }
  }
}(jQuery, Drupal, once));

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc