| Server IP : 172.173.179.141 / Your IP : 216.73.216.196 Web Server : Apache System : Linux mail.lomejor.cr 6.8.0-1059-azure #65~22.04.1-Ubuntu SMP Thu May 28 16:59:19 UTC 2026 x86_64 User : www-data ( 33) PHP Version : 8.2.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/bamagocr/wp-content/plugins/wpl-api/assets/ |
Upload File : |
jQuery(function($){
$('.wplapi-sidebar-menu > li').click(function () {
$('.wplapi-sidebar-menu > li > a').removeClass('active');
$(this).find('>a').addClass('active');
$('#tab-contents > div').addClass('d-none');
const target = $('#tab-contents > div#' + $(this).attr('id') + '-content');
target.removeClass('d-none');
if(target.hasClass('initialized') === false) {
const callback = target.attr('init-callback');
if(callback) {
eval(callback);
target.addClass('initialized');
}
}
});
WPL_API.checkToken().then(function () {
const currentHash = window.location.hash;
if (!currentHash) {
$('#token-setting').trigger('click');
} else {
$(`${currentHash.replace('-tab', '-setting')}`).trigger('click');
}
});
})
const WPL_API_ROUTES = {
checkToken: ['GET', '/wp-json/wpl_api/v2/check-token'],
createToken: ['POST', '/wp-json/wpl_api/v2/create-token'],
resetToken: ['GET', '/wp-json/wpl_api/v2/reset-token'],
checkSmsSetting: ['GET', '/wp-json/wpl_api/v2/sms-setting'],
saveSmsSetting: ['POST', '/wp-json/wpl_api/v2/save-sms-setting'],
resetSmsSetting: ['GET', '/wp-json/wpl_api/v2/reset-sms-setting'],
checkMapSettings: ['GET', '/wp-json/wpl_api/v2/map-settings'],
saveMapSetting: ['POST', '/wp-json/wpl_api/v2/save-map-setting'],
checkAbout: ['GET', '/wp-json/wpl_api/v2/get-about'],
addAbout: ['POST', '/wp-json/wpl_api/v2/add-about'],
checkOneSignal: ['GET', '/wp-json/wpl_api/v2/get-onesignal-setting'],
saveOneSignal: ['POST', '/wp-json/wpl_api/v2/save-onesignal'],
}
const WPL_API = {
showError: function(message) {
iziToast.error({
title: 'Error',
message:message
});
},
showSuccess: function(message) {
iziToast.success({
title: 'Success',
message:message
});
},
request: async function (req, body) {
const $this = this;
const method = req[0];
let url = req[1];
if(this.getToken()) {
url = url + '?access_token=' + this.getToken();
}
return new Promise((resolve, reject) => {
if(method === 'GET') {
jQuery.get(url, function(response) {
if(!response.success) {
$this.showError(response.data.message);
} else if(response.data && response.data.message) {
$this.showSuccess(response.data.message);
}
resolve(response);
}).fail(function(response) {
if(response.responseJSON.message) {
$this.showError(response.responseJSON.message);
}
resolve({error: response.responseJSON})
});
} else if(method === 'POST') {
jQuery.post(url, body, function(response) {
if(!response.success) {
$this.showError(response.data.message);
} else if(response.data && response.data.message) {
$this.showSuccess(response.data.message);
}
resolve(response);
}).fail(function(response) {
if(response.responseJSON.message) {
$this.showError(response.responseJSON.message);
}
resolve({error: response.responseJSON})
});
} else {
reject('invalid method')
}
});
},
setLoading: (button) => {
jQuery(button).attr('disabled', 'disabled');
jQuery(button).html('<i class="fa form-control-feedback fa-circle-o-notch fa-spin fa-3x fa-fw"></i>');
},
removeLoading: (button, buttonTitle) => {
jQuery(button).removeAttr('disabled', 'disabled');
jQuery(button).text(buttonTitle);
},
checkToken: async function () {
const response = await this.request(WPL_API_ROUTES.checkToken);
if(response.success) {
this.setToken(response.data);
jQuery('#token').val(response.data);
jQuery('.has-token-inputs').removeClass('d-none');
jQuery('.generate-token-inputs').addClass('d-none');
} else {
jQuery('.has-token-inputs').addClass('d-none');
jQuery('.generate-token-inputs').removeClass('d-none');
}
},
copyToken: async function () {
var copyText = document.getElementById("token");
copyText.select();
copyText.setSelectionRange(0, 99999);
navigator.clipboard.writeText(copyText.value);
this.showSuccess('Token copied');
},
generateToken: async function(button) {
const buttonTitle = jQuery(button).text();
this.setLoading(button);
const email = jQuery('#token-email').val();
const username = jQuery('#token-username').val();
const password = jQuery('#token-password').val();
const response = await this.request(WPL_API_ROUTES.createToken, {email, username, password});
this.removeLoading(button, buttonTitle);
if(response.error) {
return;
}
if(response.success) {
this.setToken(response.data.token);
jQuery('#token').val(response.data.token);
jQuery('.has-token-inputs').removeClass('d-none');
jQuery('.generate-token-inputs').addClass('d-none');
}
},
resetToken: async function(button) {
const buttonTitle = jQuery(button).text();
this.setLoading(button);
const response = await this.request(WPL_API_ROUTES.resetToken);
this.removeLoading(button, buttonTitle);
if(response.error) {
return;
}
if(response.success) {
this.setToken(null);
jQuery('.has-token-inputs').addClass('d-none');
jQuery('.generate-token-inputs').removeClass('d-none');
}
},
getToken: function () {
return this.savedToken || null;
},
setToken: function (token) {
this.savedToken = token;
},
checkSmsSetting: async function () {
const response = await this.request(WPL_API_ROUTES.checkSmsSetting);
if(response.success) {
jQuery('#sms-sid').val(response.data.AccountSID);
jQuery('#sms-token').val(response.data.TokenID);
jQuery('#sms-number').val(response.data.SenderNumber);
}
},
saveSmsSetting: async function(button) {
const buttonTitle = jQuery(button).text();
this.setLoading(button);
const AccountSID = jQuery('#sms-sid').val();
const TokenID = jQuery('#sms-token').val();
const SenderNumber = jQuery('#sms-number').val();
await this.request(WPL_API_ROUTES.saveSmsSetting, {AccountSID, TokenID, SenderNumber});
this.removeLoading(button, buttonTitle);
},
resetSmsSetting: async function(button) {
const buttonTitle = jQuery(button).text();
this.setLoading(button);
const response = await this.request(WPL_API_ROUTES.resetSmsSetting);
this.removeLoading(button, buttonTitle);
if(response.success) {
jQuery('#sms-sid').val('');
jQuery('#sms-token').val('');
jQuery('#sms-number').val('');
}
},
checkMapSettings: async function () {
const defaultLatitude = 40.710927466073635;
const defaultLongitude = -74.0121863113269;
const defaultZoom = 10;
await google.maps.importLibrary("maps");
this.map = new google.maps.Map(document.getElementById('wpl-map'), {
center: {lat: defaultLatitude, lng: defaultLongitude},
zoom: defaultZoom
})
this.marker = new google.maps.Marker({
position: {lat: defaultLatitude, lng: defaultLongitude},
map: this.map,
});
const response = await this.request(WPL_API_ROUTES.checkMapSettings);
if(response.success) {
jQuery('#map-longitude').val(response.data.longitude);
jQuery('#map-latitude').val(response.data.latitude);
jQuery('#map-zoom').val(response.data.zoom);
} else {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(position => {
const initialLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude)
this.map.setCenter(initialLocation);
this.marker.setPosition(initialLocation);
jQuery('#map-longitude').val(position.coords.longitude);
jQuery('#map-latitude').val(position.coords.latitude);
})
}
jQuery('#map-longitude').val(defaultLongitude);
jQuery('#map-latitude').val(defaultLatitude);
jQuery('#map-zoom').val(defaultZoom);
}
this.geocoder = new google.maps.Geocoder();
google.maps.event.addListener(this.map, 'click', (args) => {
const lat = args.latLng.lat()
const lng = args.latLng.lng()
const newLatLng = new google.maps.LatLng(lat, lng)
this.marker.setPosition(args.latLng)
jQuery('#map-latitude').val(lat);
jQuery('#map-longitude').val(lng);
this.geocoder.geocode({ 'location': newLatLng }, (results, status) => {
if (status === 'OK') {
jQuery('#map-point').val(results[0].formatted_address);
} else if (status === 'ZERO_RESULTS') {
jQuery('#map-point').val('Not Found');
}
})
})
},
findLocation: async function (button) {
const buttonTitle = jQuery(button).text();
this.setLoading(button);
this.geocoder.geocode({'address': jQuery('#map-point').val()}, (results, status) => {
this.removeLoading(button, buttonTitle);
if (status === 'OK') {
jQuery('#map-latitude').val(String(results[0].geometry.location.lat()));
jQuery('#map-longitude').val(String(results[0].geometry.location.lng()));
this.map.setCenter(results[0].geometry.location)
this.marker.setPosition(results[0].geometry.location)
}
})
},
saveMapSetting: async function(button) {
const buttonTitle = jQuery(button).text();
this.setLoading(button);
const latitude = jQuery('#map-latitude').val();
const longitude = jQuery('#map-longitude').val();
const zoom = jQuery('#map-zoom').val();
await this.request(WPL_API_ROUTES.saveMapSetting, {latitude, longitude, zoom});
this.removeLoading(button, buttonTitle);
},
checkAbout: async function () {
const response = await this.request(WPL_API_ROUTES.checkAbout);
if(response.success) {
jQuery('#about-name').val(response.data.company_name);
jQuery('#about-address').val(response.data.company_address);
jQuery('#about-phone').val(response.data.company_phone);
jQuery('#about-description').val(response.data.company_about);
}
},
saveAbout: async function(button) {
const buttonTitle = jQuery(button).text();
this.setLoading(button);
const company_name = jQuery('#about-name').val();
const company_address = jQuery('#about-address').val();
const company_phone = jQuery('#about-phone').val();
const company_about = jQuery('#about-description').val();
await this.request(WPL_API_ROUTES.addAbout, {company_name, company_address, company_phone, company_about});
this.removeLoading(button, buttonTitle);
},
checkOneSignal: async function () {
const response = await this.request(WPL_API_ROUTES.checkOneSignal);
if(response.success) {
jQuery('#one-signal-id').val(response.data.appId);
jQuery('#one-signal-key').val(response.data.AuthKey);
}
},
saveOneSignal: async function(button) {
const buttonTitle = jQuery(button).text();
this.setLoading(button);
const appId = jQuery('#one-signal-id').val();
const AuthKey = jQuery('#one-signal-key').val();
await this.request(WPL_API_ROUTES.saveOneSignal, {appId, AuthKey});
this.removeLoading(button, buttonTitle);
},
}