|
@ -0,0 +1,71 @@ |
|
|
|
|
|
|
|
|
|
|
|
/** Whiskers template file */ |
|
|
|
|
|
const TEMPLATE_FILE = "admin/analytics.html"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const includes = require('../includes/includes.js'); |
|
|
|
|
|
|
|
|
|
|
|
//updates db
|
|
|
|
|
|
const sql = require('../utils/sql'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const generateData = function(templateContext) |
|
|
|
|
|
{ |
|
|
|
|
|
return new Promise(function(resolve, reject) |
|
|
|
|
|
{ |
|
|
|
|
|
var data = []; |
|
|
|
|
|
|
|
|
|
|
|
sql.getTraffic().then(function(traffic) |
|
|
|
|
|
{ |
|
|
|
|
|
var start = traffic[0].date; |
|
|
|
|
|
var currentMonth = new Date(start.getUTCFullYear(), start.getMonth(), 1, 0,0,0); |
|
|
|
|
|
templateContext.start = JSON.stringify(currentMonth); |
|
|
|
|
|
var monthCount = 0; |
|
|
|
|
|
for(var i = 0; i < traffic.length; i++) |
|
|
|
|
|
{ |
|
|
|
|
|
var currentDate = traffic[i].date; |
|
|
|
|
|
|
|
|
|
|
|
if(currentMonth.getMonth() != currentDate.getMonth()) |
|
|
|
|
|
{ |
|
|
|
|
|
var foo = new Object(); |
|
|
|
|
|
foo.x = currentMonth; |
|
|
|
|
|
foo.y = monthCount; |
|
|
|
|
|
data.push(foo); |
|
|
|
|
|
monthCount = 0; |
|
|
|
|
|
currentMonth = new Date(currentDate.getUTCFullYear(), currentDate.getMonth(), 1, 0,0,0); |
|
|
|
|
|
} |
|
|
|
|
|
monthCount = monthCount + 1; |
|
|
|
|
|
} |
|
|
|
|
|
templateContext.finish = JSON.stringify(currentMonth); |
|
|
|
|
|
templateContext.dataset = JSON.stringify(data); |
|
|
|
|
|
resolve(); |
|
|
|
|
|
}); |
|
|
|
|
|
}); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
module.exports= |
|
|
|
|
|
{ |
|
|
|
|
|
/** |
|
|
|
|
|
* Fetches context information for the admin blog page and handles post |
|
|
|
|
|
* data sent regarding editing blog. |
|
|
|
|
|
* |
|
|
|
|
|
* @param postData posted by user |
|
|
|
|
|
* @param templateContext json object used as the template context |
|
|
|
|
|
* @returns {Promise} renders the template used for this page |
|
|
|
|
|
*/ |
|
|
|
|
|
main: function(postData, templateContext) |
|
|
|
|
|
{ |
|
|
|
|
|
return new Promise(function(resolve, reject) |
|
|
|
|
|
{ |
|
|
|
|
|
Promise.all([includes.fetchTemplate(TEMPLATE_FILE), generateData(templateContext)]).then(function(template) |
|
|
|
|
|
{ |
|
|
|
|
|
resolve(template[0]); |
|
|
|
|
|
}).catch(function(error) |
|
|
|
|
|
{ |
|
|
|
|
|
console.log("error in add admin blog.js"); |
|
|
|
|
|
reject(error); |
|
|
|
|
|
}); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
}; |