From 91bb7262162b399216eec4abe495796935f08a19 Mon Sep 17 00:00:00 2001
From: Cotes Chung <11371340+cotes2020@users.noreply.github.com>
Date: Thu, 19 Mar 2020 18:56:54 +0800
Subject: [PATCH] Format the pv number.
---
assets/js/_src/pageviews.js | 47 +++++++++++++++------------------
assets/js/dist/pageviews.min.js | 2 +-
2 files changed, 22 insertions(+), 27 deletions(-)
diff --git a/assets/js/_src/pageviews.js b/assets/js/_src/pageviews.js
index 563432d..800ab8c 100644
--- a/assets/js/_src/pageviews.js
+++ b/assets/js/_src/pageviews.js
@@ -11,9 +11,9 @@
* MIT License
*/
-function countUp(min, max, dest) {
+function countUp(min, max, destId) {
if (min < max) {
- var numAnim = new CountUp(dest, min, max);
+ var numAnim = new CountUp(destId, min, max);
if (!numAnim.error) {
numAnim.start();
} else {
@@ -22,6 +22,7 @@ function countUp(min, max, dest) {
}
}
+
function countPV(path, rows) {
/* path permalink looks like: '/posts/post-title/' */
var fileName = path.replace(/\/posts\//g, '').replace(/\//g, '.html'); /* e.g. post-title.html */
@@ -43,6 +44,21 @@ function countPV(path, rows) {
}
+function tacklePV(rows, path, elem, hasInit) {
+ var count = countPV(path, rows);
+ count = (count == 0 ? 1 : count);
+
+ if (!hasInit) {
+ elem.text(new Intl.NumberFormat().format(count));
+ } else {
+ var initCount = parseInt(elem.text().replace(/,/g, ''));
+ if (count > initCount) {
+ countUp(initCount, count, elem.attr('id'));
+ }
+ }
+}
+
+
function displayPageviews(data) {
if (data === undefined) {
return;
@@ -54,32 +70,12 @@ function displayPageviews(data) {
if ($("#post-list").length > 0) { // the Home page
$(".post-preview").each(function() {
var path = $(this).children("h1").children("a").attr("href");
- var count = countPV(path, rows);
- count = (count == 0 ? 1 : count);
-
- if (!hasInit) {
- $(this).find('.pageviews').text(count);
- } else {
- var initCount = parseInt($(this).find('.pageviews').text());
- if (count > initCount) {
- countUp(initCount, count, $(this).find('.pageviews').attr('id'));
- }
- }
+ tacklePV(rows, path, $(this).find('.pageviews'), hasInit);
});
} else if ($(".post").length > 0) { // the post
var path = window.location.pathname;
- var count = countPV(path, rows);
- count = (count == 0 ? 1 : count);
-
- if (!hasInit) {
- $('#pv').text(count);
- } else {
- var initCount = parseInt($('#pv').text());
- if (count > initCount) {
- countUp(initCount, count, 'pv');
- }
- }
+ tacklePV(rows, path, $('#pv'), hasInit);
}
}
@@ -119,5 +115,4 @@ $(function() {
});
} // endif
-
-});
\ No newline at end of file
+});
diff --git a/assets/js/dist/pageviews.min.js b/assets/js/dist/pageviews.min.js
index e302390..ce5404a 100644
--- a/assets/js/dist/pageviews.min.js
+++ b/assets/js/dist/pageviews.min.js
@@ -1 +1 @@
-function countUp(c,a,b){if(c0){$(".post-preview").each(function(){var i=$(this).children("h1").children("a").attr("href");var h=countPV(i,d);h=(h==0?1:h);if(!b){$(this).find(".pageviews").text(h)}else{var g=parseInt($(this).find(".pageviews").text());if(h>g){countUp(g,h,$(this).find(".pageviews").attr("id"))}}})}else{if($(".post").length>0){var f=window.location.pathname;var c=countPV(f,d);c=(c==0?1:c);if(!b){$("#pv").text(c)}else{var a=parseInt($("#pv").text());if(c>a){countUp(a,c,"pv")}}}}}var getInitStatus=(function(){var a=false;return function(){if(a){return true}else{a=true;return false}}})();$(function(){if($(".pageviews").length>0){$.getJSON("/assets/data/pageviews.json",displayPageviews);$.getJSON("/assets/data/proxy.json",function(a){$.ajax({type:"GET",url:a.proxyUrl,dataType:"jsonp",jsonpCallback:"displayPageviews",error:function(b,d,c){console.log("Failed to load pageviews from proxy server: "+c)}})})}});
\ No newline at end of file
+function countUp(b,a,d){if(ba){countUp(a,c,d.attr("id"))}}}function displayPageviews(c){if(c===undefined){return}var a=getInitStatus();var b=c.rows;if($("#post-list").length>0){$(".post-preview").each(function(){var e=$(this).children("h1").children("a").attr("href");tacklePV(b,e,$(this).find(".pageviews"),a)})}else{if($(".post").length>0){var d=window.location.pathname;tacklePV(b,d,$("#pv"),a)}}}var getInitStatus=(function(){var a=false;return function(){if(a){return true}else{a=true;return false}}})();$(function(){if($(".pageviews").length>0){$.getJSON("/assets/data/pageviews.json",displayPageviews);$.getJSON("/assets/data/proxy.json",function(a){$.ajax({type:"GET",url:a.proxyUrl,dataType:"jsonp",jsonpCallback:"displayPageviews",error:function(b,d,c){console.log("Failed to load pageviews from proxy server: "+c)}})})}});
\ No newline at end of file