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 = (