further work

This commit is contained in:
Thomas Ruoff
2017-02-19 23:27:53 +01:00
parent 6865a63832
commit da027191d6
8 changed files with 138 additions and 20 deletions

View File

@@ -31,6 +31,7 @@
"copy-webpack-plugin": "^4.0.1",
"eslint": "^3.15.0",
"html-webpack-plugin": "^2.28.0",
"styled-components": "^1.4.3",
"webpack": "^2.2.1",
"webpack-dashboard": "^0.3.0",
"webpack-dev-server": "^2.3.0"

View File

@@ -4,7 +4,9 @@ function convertLineBreaks(string){
module.exports = (options) => {
var {
console.log(options);
const {
template = 'brief-fam',
subject = 'Betreff',
yourRef = '',

View File

@@ -4,6 +4,7 @@
<meta charset="utf-8">
<title>PDFer</title>
<meta name="application-name" content="PDFer">
<link href="/styles.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="root">

21
webapp/static/styles.css Normal file
View File

@@ -0,0 +1,21 @@
label,
label input,
label textarea {
display: block;
}
button {
margin-top: 12px;
}
.home {
display: flex;
}
.home > div {
padding: 12px;
}
embed {
flex: 1 100%;
}

View File

@@ -0,0 +1,76 @@
import { h } from 'preact';
import Input from './Input';
import TextAreaInput from './TextAreaInput';
export default function(props) {
return (
<div>
<TextAreaInput
name="address"
text="Adresse"
onchange={props.onChange}
value={props.address}
/>
<Input
name="subject"
text="Betreff"
onchange={props.onChange}
value={props.subject}
/>
<Input
name="yourRef"
text="Ihr Zeichen"
onchange={props.onChange}
value={props.yourRef}
/>
<Input
name="yourMail"
text="Ihr Schreiben vom"
onchange={props.onChange}
value={props.yourMail}
/>
<Input
name="customer"
text="Kundernummer"
onchange={props.onChange}
value={props.customer}
/>
<Input
name="invoice"
text="Rechnung"
onchange={props.onChange}
value={props.invoice}
/>
<Input
name="yourMail"
text="Ihr Schreiben vom"
onchange={props.onChange}
value={props.yourMail}
/>
<Input
name="date"
text="Datum"
onchange={props.onChange}
value={props.date}
/>
<Input
name="opening"
text="Anrede"
onchange={props.onChange}
value={props.opening}
/>
<TextAreaInput
name="body"
text="Brieftext"
onchange={props.onChange}
value={props.body}
/>
<Input
name="closing"
text="Grußformel"
onchange={props.onChange}
value={props.closing}
/>
</div>
);
};

View File

@@ -1,11 +1,25 @@
import { Component, h } from 'preact';
export default props => {
if (props.pdfIsLoading) {
return (
<div>Lade...</div>
);
}
if (props.pdfError) {
return (
<div>{props.pdfError}</div>
);
}
if (!props.pdfUrl) {
return '';
return (
<div>Knopf drücken dann gibts hier was zu sehen!</div>
);
}
return (
<embed src={props.pdfUrl} width="100%" height="100%"/>
<embed src={props.pdfUrl} width="600px" height="1000px"/>
);
};

View File

@@ -1,8 +1,7 @@
import { Component, h } from 'preact';
import PDF from 'react-pdf';
import Input from '../components/Input';
import TextAreaInput from '../components/TextAreaInput';
import LetterOptions from '../components/LetterOptions';
import Button from '../components/Button';
import Preview from '../components/Preview';
@@ -12,35 +11,39 @@ class Home extends Component {
render(props) {
const component = this;
return (
<div>
<TextAreaInput
name="address"
text="Adresse"
onchange={this._onChange.bind(this)}
value={props.address}
/>
<Input
name="subject"
text="Betreff"
onchange={this._onChange.bind(this)}
value={props.subject}
/>
<Button onClick={this._onGenerate.bind(this)} text="Generiere"/>
<Preview pdfUrl={this.state.pdfUrl} />
<div className="home">
<div>
<LetterOptions onChange={this._onChange.bind(this)} />
<Button onClick={this._onGenerate.bind(this)} text="Generiere"/>
</div>
<div>
<Preview
pdfUrl={this.state.pdfUrl}
pdfIsLoading={this.state.pdfIsLoading}
pdfError={this.state.pdfError}
/>
</div>
</div>
);
}
_onGenerate() {
this.setState({
pdfIsLoading: true,
pdfError: null
})
generatePdf(this.state)
.then((data) => {
const {id} = data;
this.setState({
pdfIsLoading: false,
pdfUrl: `//localhost:5000/pdf/${id}`
});
})
.catch((error) => {
this.setState({
pdfIsLoading: false,
pdfError: error,
pdfUrl: null
});
});