(function( $, seoSettings ) {
'use strict';
Vue.component( 'jet-engine-seo-settings', {
template: '#jet_engine_seo_settings',
data: function() {
return {
fields: seoSettings.fields,
settings: seoSettings.settings,
nonce: seoSettings._nonce,
saving: false,
result: false,
errorMessage: '',
successMessage: '',
};
},
methods: {
saveSettings: function() {
var self = this;
self.saving = true;
jQuery.ajax({
url: window.ajaxurl,
type: 'POST',
dataType: 'json',
data: {
action: 'jet_engine_seo_save_settings',
nonce: self.nonce,
settings: self.settings,
},
} ).done( function( response ) {
self.saving = false;
if ( response.success ) {
self.result = 'success';
self.successMessage = response.data.message;
} else {
self.result = 'error';
self.errorMessage = response.data.message;
}
self.hideNotice();
} ).fail( function( jqXHR, textStatus, errorThrown ) {
self.saving = false;
self.result = 'error';
self.errorMessage = jqXHR.statusText;
self.hideNotice();
} );
},
hideNotice: function() {
var self = this;
setTimeout( function() {
self.result = false;
self.successMessage = '';
self.errorMessage = '';
}, 8000 );
},
}
} );
})( jQuery, window.JetEngineSeoSettings );