Heray-Was-Here
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
Directory :  /var/www/bamagocr/wp-content/plugins/wpl-api/assets/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/bamagocr/wp-content/plugins/wpl-api/assets/script.js
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);
	},
}

Hry