86 lines
2.4 KiB
JavaScript
86 lines
2.4 KiB
JavaScript
// FIX
|
|
import React from 'react';
|
|
|
|
import {Templates} from './components/templates';
|
|
import { DB } from '../static/storage';
|
|
import { Modi_Week } from './print_modi/week';
|
|
|
|
const moment = require('moment');
|
|
|
|
export class Print extends React.Component {
|
|
constructor(props) {
|
|
super(props);
|
|
this.state={
|
|
status:"",
|
|
print_modi:"week",
|
|
start:Date(),
|
|
end:Date(),
|
|
startWeek:0,
|
|
endWeek:0,
|
|
diff:0,
|
|
html:""
|
|
}
|
|
this.preview = this.preview.bind(this);
|
|
this.print = this.print.bind(this);
|
|
this.handleChangeStart = this.handleChangeStart.bind(this);
|
|
this.handleChangeEnd = this.handleChangeEnd.bind(this);
|
|
Templates.getTemplates()
|
|
}
|
|
preview(){
|
|
var name = DB.loadSettings('name').val;
|
|
var anfang = DB.loadSettings('start').val;
|
|
|
|
var start = moment(this.state.start);
|
|
var end = moment(this.state.end);
|
|
var me = this;
|
|
Modi_Week.preview(name,anfang,start,end,me)
|
|
|
|
}
|
|
print(){
|
|
var ifrm = document.getElementById('pdf');
|
|
ifrm = ifrm.contentWindow || ifrm.contentDocument.document || ifrm.contentDocument;
|
|
ifrm.focus();
|
|
ifrm.print();
|
|
}
|
|
handleChangeStart(e){
|
|
var d = e.target.value;
|
|
var x = moment(d)
|
|
x = x.startOf('isoWeek')._d;
|
|
console.log(moment(x).week())
|
|
this.setState({startWeek:moment(x).weeks()})
|
|
this.setState({start:moment(x).format("YYYY-MM-DD")})
|
|
this.getWeeks(moment(x).weeks(),this.state.endWeek);
|
|
}
|
|
handleChangeEnd(e){
|
|
var d = e.target.value;
|
|
var x = moment(d)
|
|
x = x.endOf('isoWeek')._d;
|
|
this.setState({endWeek:moment(x).weeks()})
|
|
this.setState({end:moment(x).format("YYYY-MM-DD")})
|
|
this.getWeeks(this.state.startWeek,moment(x).weeks());
|
|
}
|
|
getWeeks(s,e){
|
|
|
|
var diff = e - s;
|
|
this.setState({diff:diff});
|
|
console.log(diff);
|
|
}
|
|
render(){
|
|
|
|
return (
|
|
<div id="print-frame">
|
|
<div className="header">
|
|
<div>
|
|
Wochen: {this.state.diff}
|
|
</div>
|
|
<div>Start: <input type="date" value={this.state.start} onChange={this.handleChangeStart}/></div>
|
|
<div>Ende: <input type="date" value={this.state.end} onChange={this.handleChangeEnd}/></div>
|
|
<div><button onClick={this.preview}>Vorschau</button><button onClick={this.print}>Drucken</button></div>
|
|
</div>
|
|
<iframe id="pdf" title="PDF OUTPUT">
|
|
</iframe>
|
|
{this.state.status}
|
|
</div>);
|
|
}
|
|
}
|