|
|
/** 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);
|
|
});
|
|
});
|
|
}
|
|
};
|