class PrintJob extends React.Component { constructor(props) { super(props); this.state = { printJobType: 0, clientPrinter: null, printerCommands: "", printFiles: [] }; } setPrintJobType(event) { this.setState({ printJobType: event.target.value }); } deleteJob() { this.props.removeJobHandler(this.props.jobIndex); } updateJob() { var cpj = new JSPM.ClientPrintJob(); cpj.clientPrinter = this.state.clientPrinter; cpj.printerCommands = this.state.printerCommands; if (this.state.printFiles) { let files = this.state.printFiles; for (let j = 0; j < files.length; j++) { let my_file; if (files[j].name) my_file = new JSPM.PrintFile( files[j], JSPM.FileSourceType.BLOB, files[j].name, 1 ); else my_file = new JSPM.PrintFile( files[j], JSPM.FileSourceType.URL, "myFileToPrint." + files[j].split(".").pop(), 1 ); cpj.files.push(my_file); } } this.props.updateJobHandler(this.props.jobIndex, cpj); } onPrinterChange(newPrinter) { //No need to re-render! this.state.clientPrinter = newPrinter; this.updateJob(); } onPrinterCommandsChange(newPrinterCommands) { //No need to re-render! this.state.printerCommands = newPrinterCommands; this.updateJob(); } onPrintFilesChange(newFiles) { //No need to re-render! this.state.printFiles = newFiles; this.updateJob(); } render() { let jobIndex = "collapse-" + this.props.jobIndex; let jobIndexDT = "#" + jobIndex; let jobType = ( ); if (this.state.printJobType == 1) { jobType = ( ); } return (
{jobType}

); } } window.PrintJob = PrintJob;