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