Update week.jsx

environments/production/deployments/17
Theenoro 2020-06-03 00:26:23 +02:00
parent 72a9f6c0eb
commit 41a8287d8f
1 changed files with 139 additions and 135 deletions

View File

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