131 lines
4.2 KiB
JavaScript
131 lines
4.2 KiB
JavaScript
import {Templates} from '../components/templates';
|
|
import { DB } from '../../static/storage';
|
|
//import 'react-infinite-calendar/styles.css'; // only needs to be imported once
|
|
const moment = require('moment');
|
|
const nunjucks = require('nunjucks');
|
|
|
|
export class Modi_Week{
|
|
/**
|
|
*
|
|
* @param {*} name
|
|
* @param {*} anfang
|
|
* @param {*} start
|
|
* @param {*} end
|
|
* @param {*} me
|
|
* @param {*} choosenTemplate
|
|
*/
|
|
static preview(name,anfang,start,end,me,choosenTemplate){
|
|
var sql = 'SELECT * FROM days WHERE date BETWEEN '+(moment(me.state.start).unix()*1000)+' AND '+(moment(me.state.end).unix()*1000);
|
|
var days = DB.cdb.exec(sql);
|
|
//for(var result = []; days.step();) result.push(days.getAsObject({':start':me.state.start,':end':me.state.end}));
|
|
|
|
var d = days[0].values;
|
|
var weeks = {};
|
|
for(var i in d){
|
|
var md = d[i];
|
|
var week =moment(md[4]).diff(start,'weeks');
|
|
if(typeof weeks[week] === 'undefined'){
|
|
weeks[week] = {};
|
|
weeks[week].data = [];
|
|
weeks[week].start = md[1];
|
|
weeks[week].num = moment(md[1]).diff(moment(anfang).startOf('isoWeek'),'weeks')+1;
|
|
weeks[week].end = "";
|
|
}
|
|
var tasks = md[5].split(',');
|
|
for(var t in tasks){
|
|
sql = 'SELECT * FROM tasks WHERE id=:id';
|
|
var stmt = DB.cdb.prepare(sql);
|
|
var res = stmt.getAsObject({':id':tasks[t]});
|
|
stmt.free();
|
|
tasks[t] = res.taskName;
|
|
}
|
|
md[5] = tasks;
|
|
md[1] = moment(md[1]).format('dddd');
|
|
md[2] = moment(md[2]).format('HH:mm');
|
|
md[4] = moment(md[4]).format('HH:mm');
|
|
|
|
if( md[2] === "00:00" && md[4] === "00:00"){
|
|
md[2] = "";
|
|
md[4] = "";
|
|
}
|
|
|
|
var wnum = 0;
|
|
switch(md[1]){
|
|
case 'Monday':
|
|
md[1] = 'Montag';
|
|
break;
|
|
case 'Tuesday':
|
|
md[1] = 'Dienstag';
|
|
wnum = 1;
|
|
break;
|
|
case 'Wednesday':
|
|
md[1] = 'Mittwoch';
|
|
wnum = 2;
|
|
break;
|
|
case 'Thursday':
|
|
md[1] = 'Donnerstag';
|
|
wnum = 3;
|
|
break;
|
|
case 'Friday':
|
|
md[1] = 'Freitag';
|
|
wnum = 4
|
|
break;
|
|
case 'Saturday':
|
|
md[1] = 'Samstag';
|
|
wnum = 5;
|
|
break;
|
|
case 'Sunday' :
|
|
md[1] = 'Sonntag';
|
|
wnum = 6;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
weeks[week].data[wnum] = md;
|
|
}
|
|
|
|
for(var w in weeks){
|
|
if(choosenTemplate != "wochenbericht"){
|
|
var tmp = weeks[w].start;
|
|
weeks[w].start = moment(weeks[w].start).add(0, "days").format('DD/MM/YYYY');
|
|
weeks[w].end = moment(moment(tmp).day(7)).format('DD/MM/YYYY');
|
|
}else{
|
|
weeks[w].start = moment(weeks[w].start).add(0, "days").format('YYYY-MM-DD');
|
|
weeks[w].end = moment(moment(weeks[w].start).day(7)).format('YYYY-MM-DD');
|
|
}
|
|
|
|
|
|
for(d in weeks[w].data){
|
|
for(t in weeks[w].data[d][5]){
|
|
if(weeks[w].data[d][5][t].trim()===""){
|
|
weeks[w].data[d][5].splice(t,1);
|
|
}
|
|
}
|
|
if(weeks[w].data[d][5].length <=0){
|
|
weeks[w].data.splice(d,1);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* @INFO
|
|
* Putting all Templates together for the print
|
|
*/
|
|
var build = Templates.template.header+Templates.template[choosenTemplate]+Templates.template.footer;
|
|
|
|
var html = nunjucks.renderString(build, {name:name,weeks:weeks});
|
|
|
|
//console.log(html);
|
|
//var printWindow = window.open('', '', 'height=400,width=800');
|
|
//printWindow.document.write(html);
|
|
//printWindow.document.close();
|
|
//printWindow.print()
|
|
var ifrm = document.getElementById('pdf');
|
|
ifrm = ifrm.contentWindow || ifrm.contentDocument.document || ifrm.contentDocument;
|
|
ifrm.document.open();
|
|
ifrm.document.write(html);
|
|
ifrm.document.close();
|
|
ifrm.focus();
|
|
}
|
|
} |