76 lines
2.1 KiB
JavaScript
76 lines
2.1 KiB
JavaScript
const log = require('color-logs')(true, true, "Template.class.js"),
|
|
fs = require("fs"),
|
|
hbs = require('handlebars'),
|
|
promise = require('promise'),
|
|
config = require('../config.json');
|
|
|
|
var Categorie = require('../classes/Categorie.class.js');
|
|
var Article = require('../classes/Article.class.js');
|
|
|
|
hbs.registerHelper('listNav', function(tabs, options) {
|
|
var out = '';
|
|
for(var x in options['data']['root']){
|
|
console.log(x);
|
|
out = out + "" + options.fn(options['data']['root'][x]) + "";
|
|
|
|
}
|
|
return out;
|
|
});
|
|
|
|
hbs.registerHelper('listArticle', function(tabs, options) {
|
|
var i = 1;
|
|
var out = '';
|
|
for(var x in options['data']['root']){
|
|
|
|
out = out + "" + options.fn(options['data']['root'][x]) + "";
|
|
if(i == 3){
|
|
i= 1;
|
|
out = out + "</div><div class=\"row\">";
|
|
}
|
|
else{
|
|
i++;
|
|
}
|
|
}
|
|
return out;
|
|
});
|
|
|
|
class Template {
|
|
|
|
/**
|
|
*
|
|
* @returns {Promise} the navbar in html compiled
|
|
*/
|
|
|
|
getNav(){
|
|
return new Promise((resolve, reject) => {
|
|
fs.readFile('./views/_nav.hbs', 'utf-8', (error, source) => {
|
|
const articles = require("../ressources/categories.json");
|
|
hbs.registerHelper('nav', (nav) =>{
|
|
return nav;
|
|
});
|
|
var template = hbs.compile(source);
|
|
var html = template(articles);
|
|
//console.log(html);
|
|
resolve(html);
|
|
});
|
|
});
|
|
}
|
|
|
|
getHome(){
|
|
return new Promise((resolve, reject) => {
|
|
fs.readFile('./views/articles/list.hbs', 'utf-8', (error, source) => {
|
|
const data = require('../ressources/lastArticles.json');
|
|
hbs.registerHelper('articles', (articles) =>{
|
|
return articles;
|
|
});
|
|
var template = hbs.compile(source);
|
|
var html = template(data);
|
|
console.log(html);
|
|
resolve(html);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
module.exports = Template; |