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 { 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 = "";
}
sql = `SELECT * FROM days_have_tasks WHERE day_id=`+md[0];
var ts = DB.cdb.exec(sql);
var tasks = []
for(var x in ts[0].values){
tasks.push(ts[0].values[x][1]);
}
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();
}
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 = "";
}
sql = `SELECT * FROM days_have_tasks WHERE day_id=`+md[0];
var ts = DB.cdb.exec(sql);
var tasks = []
if(typeof ts[0] != "undefined"){
for(var x in ts[0].values){
tasks.push(ts[0].values[x][1]);
}
}
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();
}
}