Commit 87a7cb10 by Muhammad Usman

generate share link

parent 7ec81660
...@@ -265,6 +265,19 @@ function vq_add_review_subscribers() { ...@@ -265,6 +265,19 @@ function vq_add_review_subscribers() {
exit; exit;
} }
function vq_get_saved_speed_results() {
$batchId = $_POST['batchId'];
global $wpdb;
$speed_table_name = $wpdb->prefix . "speed_results";
$oldResutls = $wpdb->get_results("SELECT server_response_time, page_load_time FROM $speed_table_name WHERE batch_id != '$batchId'");
$newResutls = $wpdb->get_results("SELECT * FROM $speed_table_name WHERE batch_id = '$batchId'");
echo json_encode(['oldData' => $oldResutls, 'newData' => $newResutls]);
exit;
}
// Actions // Actions
add_action( 'customize_register', 'vq_theme_customize_register' ); add_action( 'customize_register', 'vq_theme_customize_register' );
...@@ -274,6 +287,9 @@ add_action( 'init', 'vq_add_theme_default_pages' ); ...@@ -274,6 +287,9 @@ add_action( 'init', 'vq_add_theme_default_pages' );
add_action( 'wp_ajax_nopriv_get_speed_results', 'vq_get_hosting_speed' ); add_action( 'wp_ajax_nopriv_get_speed_results', 'vq_get_hosting_speed' );
add_action( 'wp_ajax_get_speed_results', 'vq_get_hosting_speed' ); add_action( 'wp_ajax_get_speed_results', 'vq_get_hosting_speed' );
add_action( 'wp_ajax_nopriv_get_saved_speed_results', 'vq_get_saved_speed_results' );
add_action( 'wp_ajax_get_saved_speed_results', 'vq_get_saved_speed_results' );
add_action( 'wp_ajax_nopriv_add_review_subscribers', 'vq_add_review_subscribers' ); add_action( 'wp_ajax_nopriv_add_review_subscribers', 'vq_add_review_subscribers' );
add_action( 'wp_ajax_add_review_subscribers', 'vq_add_review_subscribers' ); add_action( 'wp_ajax_add_review_subscribers', 'vq_add_review_subscribers' );
......
...@@ -8,6 +8,11 @@ get_header(); ...@@ -8,6 +8,11 @@ get_header();
$domain = ''; $domain = '';
if ( isset( $_GET['domain'] ) ) { if ( isset( $_GET['domain'] ) ) {
$domain = $_GET['domain']; $domain = $_GET['domain'];
$domain = preg_replace('#^https?://#', '', $domain);
} else if (isset($_GET['batchId'])) {
$batchId = $_GET['batchId'];
} else {
header('Location: /');
} }
?> ?>
...@@ -99,11 +104,11 @@ if ( isset( $_GET['domain'] ) ) { ...@@ -99,11 +104,11 @@ if ( isset( $_GET['domain'] ) ) {
</div> </div>
</div> </div>
<div class="d-none d-sm-block d-md-block"> <div class="d-none d-sm-block d-md-block">
<img class="summarySocailIocn" <img class="summarySocailIocn" onclick="shareToFacebook()"
src="<?php echo get_template_directory_uri(); ?>/assets/images/facebook-icon.jpg" alt=""> src="<?php echo get_template_directory_uri(); ?>/assets/images/facebook-icon.jpg" alt="">
<img class="summarySocailIocn top-133" <img class="summarySocailIocn top-133" onclick="shareOnTwitter()"
src="<?php echo get_template_directory_uri(); ?>/assets/images/twitter-icon.jpg" alt=""> src="<?php echo get_template_directory_uri(); ?>/assets/images/twitter-icon.jpg" alt="">
<img class="summarySocailIocn top-177" <img class="summarySocailIocn top-177" onclick="shareOnLinkedIn()"
src="<?php echo get_template_directory_uri(); ?>/assets/images/linked-icon.jpg" alt=""> src="<?php echo get_template_directory_uri(); ?>/assets/images/linked-icon.jpg" alt="">
</div> </div>
<table class="table table-striped radius"> <table class="table table-striped radius">
...@@ -261,7 +266,7 @@ if ( isset( $_GET['domain'] ) ) { ...@@ -261,7 +266,7 @@ if ( isset( $_GET['domain'] ) ) {
<script> <script>
var domain_addr = '<?php echo $domain ?>'; var domain_addr = '<?php echo $domain ?>';
var requestId = '<?php echo $batchId ?>';
jQuery(document).ready(function ($) { jQuery(document).ready(function ($) {
...@@ -301,78 +306,145 @@ if ( isset( $_GET['domain'] ) ) { ...@@ -301,78 +306,145 @@ if ( isset( $_GET['domain'] ) ) {
if (response.error) { if (response.error) {
return alert(response.error); return alert(response.error);
} }
parseData(response);
});
} else if (requestId) {
var actData = {
'action': 'get_saved_speed_results',
'batchId': requestId
};
resultLoader.style.display = 'block';
reviewData.style.display = 'none';
$.post(ajax_url, actData, function(response) {
if (response.error) {
return alert(response.error);
}
parseData(response);
});
}
reviewTableDetailsBody.innerHTML = ''; function parseData(response) {
reviewData.style.display = 'flex'; let newResults = JSON.parse(response).newData;
resultLoader.style.display = 'none'; let oldData = JSON.parse(response).oldData;
let newResults = JSON.parse(response).newData;
let oldData = JSON.parse(response).oldData;
var respTime = 0; reviewTableDetailsBody.innerHTML = '';
var loadTime = 0; reviewData.style.display = 'flex';
newResults.forEach(res => { resultLoader.style.display = 'none';
var reviewRowTemplate = `<tr>
var respTime = 0;
var loadTime = 0;
newResults.forEach(res => {
var reviewRowTemplate = `<tr>
<td class="summaryTD">${res.server_location}</td> <td class="summaryTD">${res.server_location}</td>
<td class="summaryTD">${res.server_response_time} ms</td> <td class="summaryTD">${res.server_response_time} ms</td>
<td class="summaryTD">${res.page_load_time} ms</td> <td class="summaryTD">${res.page_load_time} ms</td>
</tr>`; </tr>`;
reviewTableDetailsBody.innerHTML += reviewRowTemplate; reviewTableDetailsBody.innerHTML += reviewRowTemplate;
respTime += +res.server_response_time; respTime += +res.server_response_time;
loadTime += +res.page_load_time; loadTime += +res.page_load_time;
}); });
domainNameEl.innerText = newResults[0].domain_addr; var singleRecord = newResults[0];
domainIPEl.innerText = newResults[0].domain_ip;
hostingNameEl.innerText = newResults[0].hosting_name; domainNameEl.innerText = singleRecord.domain_addr;
hostingNameEl.innerText = '-'; domainIPEl.innerText = singleRecord.domain_ip;
avgResTimeEl.innerText = Math.floor(respTime / newResults.length).toString(); hostingNameEl.innerText = singleRecord.hosting_name;
avgPageLoadTimeEl.innerText = Math.floor(loadTime / newResults.length).toString(); hostingNameEl.innerText = '-';
screenshotImgEl.src = newResults[0].imgPath; avgResTimeEl.innerText = Math.floor(respTime / newResults.length).toString();
loadVideoEl.src = newResults[0].videoPath; avgPageLoadTimeEl.innerText = Math.floor(loadTime / newResults.length).toString();
var serverResTimes = oldData.map(o => +o.server_response_time + +o.page_load_time).sort((o1, o2) => o1 - o2); const imgPath = `${singleRecord.server_name}/${singleRecord.domain_addr}/${singleRecord.timestamp}/${singleRecord.screen_shot}`;
const videoPath = `${singleRecord.server_name}/${singleRecord.domain_addr}/${singleRecord.timestamp}/${singleRecord.video}`;
screenshotImgEl.src = imgPath;
var grade = 'F'; loadVideoEl.src = videoPath;
var rank = (100 - (percentRank(serverResTimes, (respTime + loadTime) / newResults.length) * 100));
var serverResTimes = oldData.map(o => +o.server_response_time + +o.page_load_time).sort((o1, o2) => o1 - o2);
if (rank > 95) {
grade = 'A'
} else if (rank > 85) { var grade = 'F';
grade = 'B' var rank = (100 - (percentRank(serverResTimes, (respTime + loadTime) / newResults.length) * 100));
} else if (rank > 75) {
grade = 'C' if (rank > 95) {
} else if (rank > 65) { grade = 'A'
grade = 'D' } else if (rank > 85) {
} else { grade = 'B'
grade = 'E' } else if (rank > 75) {
} grade = 'C'
} else if (rank > 65) {
grade = 'D'
} else {
grade = 'E'
}
if (grade !== 'A') { if (grade !== 'A') {
hasProblems.style.display = 'block'; hasProblems.style.display = 'block';
topHostings.style.display = 'block'; topHostings.style.display = 'block';
topCachePlugins.style.display = 'block'; topCachePlugins.style.display = 'block';
} }
reviewGradeEl.innerText = grade; reviewGradeEl.innerText = grade;
reviewPerformanceEl.innerText = Math.floor(rank); reviewPerformanceEl.innerText = Math.floor(rank);
});
} }
});
function percentRank(arr, v) { function percentRank(arr, v) {
if (typeof v !== 'number') throw new TypeError('v must be a number'); if (typeof v !== 'number') throw new TypeError('v must be a number');
for (var i = 0, l = arr.length; i < l; i++) { for (var i = 0, l = arr.length; i < l; i++) {
if (v <= arr[i]) { if (v <= arr[i]) {
while (i < l && v === arr[i]) i++; while (i < l && v === arr[i]) i++;
if (i === 0) return 0; if (i === 0) return 0;
if (v !== arr[i-1]) { if (v !== arr[i-1]) {
i += (v - arr[i-1]) / (arr[i] - arr[i-1]); i += (v - arr[i-1]) / (arr[i] - arr[i-1]);
}
return i / l;
} }
return i / l;
} }
return 1;
} }
return 1; });
<?php
$base_url = ( isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on' ? 'https' : 'http' ) . '://' . $_SERVER['HTTP_HOST'];
$url = $base_url . $_SERVER["REQUEST_URI"];
$url = preg_replace('#^https?://#', '', $url);
?>
var pageUri = '<?php echo $url; ?>';
function shareToFacebook() {
var a = document.createElement('a');
a.href = `https://www.facebook.com/sharer/sharer.php?u=${decodeURI(pageUri)}`;
a.target = '_blank';
a.click();
document.body.append(a);
setTimeout(() => {
a.remove();
})
}
function shareOnTwitter(){
var a = document.createElement('a');
a.href = `https://twitter.com/intent/tweet?url=${pageUri}`;
a.target = '_blank';
a.click();
document.body.append(a);
setTimeout(() => {
a.remove();
});
}
function shareOnLinkedIn() {
var a = document.createElement('a');
a.href = `https://www.linkedin.com/sharing/share-offsite/?url=${pageUri}`;
a.target = '_blank';
a.click();
document.body.append(a);
setTimeout(() => {
a.remove();
});
} }
</script> </script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment