diff --git a/src/jsx/ui/print_modi/week.jsx b/src/jsx/ui/print_modi/week.jsx index ad72dfb..b34bb89 100644 --- a/src/jsx/ui/print_modi/week.jsx +++ b/src/jsx/ui/print_modi/week.jsx @@ -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(); + } } \ No newline at end of file