This repository has been archived on 2021-02-16. You can view files and clone it, but cannot push or open issues or pull requests.
Nodezzarella/classes/Template.class.js

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;