File: /home/assotraipi/www/wp-content/plugins/wp-google-maps/js/v8/map-settings-page.js
/**
* @namespace WPGMZA
* @module MapSettingsPage
* @requires WPGMZA
*/
jQuery(function($) {
/**
* This class helps manage the map settings pageX
* @class WPGMZA.MapSettingsPage
* @constructor WPGMZA.MapSettingsPage
* @memberof WPGMZA
*/
WPGMZA.MapSettingsPage = function()
{
var self = this;
this.updateEngineSpecificControls();
this.updateGDPRControls();
$("select[name='wpgmza_maps_engine']").on("change", function(event) {
self.updateEngineSpecificControls();
});
$("input[name='wpgmza_gdpr_require_consent_before_load'], input[name='wpgmza_gdpr_require_consent_before_vgm_submit'], input[name='wpgmza_gdpr_override_notice']").on("change", function(event) {
self.updateGDPRControls();
});
}
WPGMZA.MapSettingsPage.createInstance = function()
{
return new WPGMZA.MapSettingsPage();
}
/**
* Updates engine specific controls, hiding irrelevant controls (eg Google controls when OpenLayers is the selected engine) and showing relevant controls.
* @method
* @memberof WPGMZA.MapSettingsPage
*/
WPGMZA.MapSettingsPage.prototype.updateEngineSpecificControls = function()
{
var engine = $("select[name='wpgmza_maps_engine']").val();
$("[data-required-maps-engine][data-required-maps-engine!='" + engine + "']").hide();
$("[data-required-maps-engine='" + engine + "']").show();
}
/**
* Updates the GDPR controls (eg visibility state) based on the selected GDPR settings
* @method
* @memberof WPGMZA.MapSettingsPage
*/
WPGMZA.MapSettingsPage.prototype.updateGDPRControls = function()
{
var showNoticeControls = $("input[name='wpgmza_gdpr_require_consent_before_load']").prop("checked");
var vgmCheckbox = $("input[name='wpgmza_gdpr_require_consent_before_vgm_submit']");
if(vgmCheckbox.length)
showNoticeControls = showNoticeControls || vgmCheckbox.prop("checked");
var showOverrideTextarea = showNoticeControls && $("input[name='wpgmza_gdpr_override_notice']").prop("checked");
if(showNoticeControls)
{
$("#wpgmza-gdpr-compliance-notice").show("slow");
}
else
{
$("#wpgmza-gdpr-compliance-notice").hide("slow");
}
if(showOverrideTextarea)
{
$("#wpgmza_gdpr_override_notice_text").show("slow");
}
else
{
$("#wpgmza_gdpr_override_notice_text").hide("slow");
}
}
/**
* Flushes the geocode cache
*/
WPGMZA.MapSettingsPage.prototype.flushGeocodeCache = function()
{
var OLGeocoder = new WPGMZA.OLGeocoder();
OLGeocoder.clearCache(function(response){
jQuery('#wpgmza_flush_cache_btn').removeAttr('disabled');
});
}
jQuery(function($) {
if(!window.location.href.match(/wp-google-maps-menu-settings/))
return;
WPGMZA.mapSettingsPage = WPGMZA.MapSettingsPage.createInstance();
jQuery(document).ready(function(){
jQuery('#wpgmza_flush_cache_btn').on('click', function(){
jQuery(this).attr('disabled', 'disabled');
WPGMZA.mapSettingsPage.flushGeocodeCache();
});
});
});
});