diff --git a/src/DocxInserter.js b/src/DocxInserter.js index b2a7d04..a86b0dd 100644 --- a/src/DocxInserter.js +++ b/src/DocxInserter.js @@ -15,7 +15,6 @@ import ObjektkatalogApi from './ObjektkatalogApi'; //////////////////// export async function fillTemplate(log, objectData) { - let buffer; // Create docx document. if (objectData.httpStatus === 200) { @@ -26,24 +25,23 @@ export async function fillTemplate(log, objectData) { buffer = await createReport({ template, data: { - inventarnummer: objectData.inventarnummer, - titel: objectData.titel, - hersteller: objectData.hersteller, - herstellungsort: objectData.herstellungsort, - herstellungsdatum: objectData.herstellungsdatum, - materialTechnik: objectData.materialTechnik, - masse: objectData.masse + inventarnummer: objectData.inventarnummer ? objectData.inventarnummer : 'unbekannt' , + titel: objectData.titel ? objectData.titel : 'unbekannt', + hersteller: objectData.hersteller ? objectData.hersteller : 'unbekannt', + herstellungsort: objectData.herstellungsort ? objectData.herstellungsort : 'unbekannt', + herstellungsdatum: objectData.herstellungsdatum ? objectData.herstellungsdatum : 'unbekannt', + materialTechnik: objectData.materialTechnik ? objectData.materialTechnik : 'unbekannt' , + masse: objectData.masse ? objectData.masse : 'unbekannt' } }); } catch (err) { log = { ...log, status: 'red', - message: 'Konnte Template nicht öffnen: ' + err, + message: 'Konnte Template nicht erstellen: ' + err, tip: 'Ist das Template vorhanden?', }; } - const folderPath = path.join(config.rootDir, objectData.inventarnummer); // Create Folder if necessary. try { @@ -51,20 +49,23 @@ export async function fillTemplate(log, objectData) { } catch (err) { log = { ...log, - status: 'green', + status: 'red', message: 'Konnte den Pfad nicht erstellen' + err, tip: 'Bestehen Schreibrechte auf dem Ordner?' } } // Write document to disk. + if (buffer) { - fs.writeFileSync(path.join(folderPath, 'report.docx'), buffer) + console.log(objectData) + fs.writeFileSync(path.join(folderPath, objectData.titel), buffer) log = { ...log, status: 'green', message: 'Dokument erstellt', }; } + } else { log = { status: 'red', diff --git a/src/assets/css/App.css b/src/assets/css/App.css deleted file mode 100644 index 9411970..0000000 --- a/src/assets/css/App.css +++ /dev/null @@ -1,3 +0,0 @@ -/* Main CSS file */ - -@import '_example/_example.css'; diff --git a/src/assets/css/_example/_example.css b/src/assets/css/_example/_example.css deleted file mode 100644 index 472ead8..0000000 --- a/src/assets/css/_example/_example.css +++ /dev/null @@ -1,22 +0,0 @@ -/* Example stylesheet */ -@media screen and (prefers-color-scheme: light), screen and (prefers-color-scheme: no-preference) { - /* Light theme */ - body{ - color: #000; - background-color: #fff; - } -} - -@media screen and (prefers-color-scheme: dark) { - /* Dark theme */ - body { - color: #fff; - background-color: #000; - } -} - -h1 { - font-family: Helvetica, Arial, sans-serif; - font-size: 21px; - font-weight: 200; -} diff --git a/src/styles.css b/src/assets/css/styles.css similarity index 86% rename from src/styles.css rename to src/assets/css/styles.css index efa39dc..820c2de 100644 --- a/src/styles.css +++ b/src/assets/css/styles.css @@ -20,6 +20,16 @@ body { margin: 0 auto; } +.checkup { + transition: height 1s; + height: 0; +} + +.closed{ + height: 0; + position: relative; +} + .column { flex-direction: column; } @@ -82,6 +92,14 @@ input { border-radius: 3px; } +input[type="date"]::-webkit-calendar-picker-indicator { + color: #d5d5d5; + width: 20px; + height: 20px; + border-width: thin; + filter: invert(1); +} + input:focus { background-color: #d5d5d5; color: #00152E; @@ -97,7 +115,7 @@ input.edit-input:not(:disabled) { background-color: #00152E ; color: #d5d5d5; font-size: medium; - + font-family: roboto, sans-serif; } @@ -118,7 +136,14 @@ label { font-size: 0.75em; height: 5em; } +.no-overflow { + overflow: hidden; + height: inherit; +} +.open { + height: 700px; +} p { margin: 0; } diff --git a/src/components/App.js b/src/components/App.js index 1b28051..5b0b2b5 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -1,9 +1,6 @@ // Components import {DataForm} from "./DataForm"; import {Log} from "./Log" - -// Modules -import {fillTemplate} from "../DocxInserter"; import SettingsIcon from '@mui/icons-material/Settings'; // React @@ -11,7 +8,7 @@ import { Link } from "react-router-dom"; import React, {useState} from 'react' // CSS -import '../styles.css' +import '../assets/css/styles.css' import ObjektkatalogApi from "../ObjektkatalogApi"; @@ -19,10 +16,8 @@ import ObjektkatalogApi from "../ObjektkatalogApi"; // Main // //////////////////// - - export const App = () => { - let log; + // States @@ -42,6 +37,7 @@ export const App = () => { const [objectData, setObjectData] = useState( { + datum: '', inventarnummer: '', titel: '', hersteller: '', @@ -65,18 +61,38 @@ export const App = () => { // Get objectId from user input. let objectId = document.getElementById('object-id').value - // Get object data from objektkatalog.gnm.de - let objektkatalogApi = new ObjektkatalogApi(); - let objectData = await objektkatalogApi.getData(objectId); + if (objectId) { - console.log(objectData) - - log = await fillTemplate(log, objectData); - // Set new state of log div with message and visibility class + // Get object data from objektkatalog.gnm.de + let objektkatalogApi = new ObjektkatalogApi(); + let receivedObjectData = await objektkatalogApi.getData(objectId); + if (receivedObjectData.httpStatus === 404) { + setLogState({ + log: { + status: 'red', + message: 'Kein Objekt mit dieser Inventarnummer gefunden!', + code: '', + tip:'', + }, // with message, code, tip + logClass: 'active' + }) + } else { + console.log(receivedObjectData) + // Fill and open check up form + setObjectData(receivedObjectData) + setCheckUpVisibility(true) + } + } else { setLogState({ - log: log, - logStatus: 'active' - }); + log: { + status: 'red', + message: 'Bitte Inventarnummer eingeben!', + code: '', + tip:'', + }, // with message, code, tip + logClass: 'active' + }) + } } return ( @@ -108,7 +124,13 @@ export const App = () => { - +