Allow download of camera models, display options during task review

pull/688/head
Piero Toffanin 2019-06-26 10:20:22 -04:00
rodzic 7e1705017d
commit 10e00405e1
6 zmienionych plików z 67 dodań i 42 usunięć

Wyświetl plik

@ -156,6 +156,7 @@ class Task(models.Model):
'deferred_path': 'orthophoto_tiles.zip',
'deferred_compress_dir': 'orthophoto_tiles'
},
'cameras.json': 'cameras.json',
}
STATUS_CODES = (

Wyświetl plik

@ -44,6 +44,7 @@ const api = {
new AssetDownload("Point Cloud (PLY)","georeferenced_model.ply","fa fa-cube"),
new AssetDownload("Point Cloud (CSV)","georeferenced_model.csv","fa fa-cube"),
new AssetDownload("Textured Model","textured_model.zip","fa fa-connectdevelop"),
new AssetDownload("Camera Parameters","cameras.json","fa fa-camera"),
new AssetDownloadSeparator(),
new AssetDownload("All Assets","all.zip","fa fa-file-archive-o")
];

Wyświetl plik

@ -13,6 +13,7 @@ class EditTaskForm extends React.Component {
selectedNode: null,
task: null,
onFormChanged: () => {},
inReview: false
};
static propTypes = {
@ -22,6 +23,7 @@ class EditTaskForm extends React.Component {
]),
onFormLoaded: PropTypes.func,
onFormChanged: PropTypes.func,
inReview: PropTypes.bool,
task: PropTypes.object
};
@ -323,7 +325,9 @@ class EditTaskForm extends React.Component {
getAvailableOptionsOnlyText(options, availableOptions){
const opts = this.getAvailableOptionsOnly(options, availableOptions);
return opts.map(opt => `${opt.name}:${opt.value}`).join(", ");
let res = opts.map(opt => `${opt.name}:${opt.value}`).join(", ");
if (!res) res = "Default";
return res;
}
saveLastPresetToStorage(){
@ -479,21 +483,7 @@ class EditTaskForm extends React.Component {
let taskOptions = "";
if (this.formReady()){
taskOptions = (
<div>
<div className="form-group">
<label className="col-sm-2 control-label">Processing Node</label>
<div className="col-sm-10">
<select className="form-control" value={this.state.selectedNode.key} onChange={this.handleSelectNode}>
{this.state.processingNodes.map(node =>
<option value={node.key} key={node.key} disabled={!node.enabled}>{node.label}</option>
)}
</select>
</div>
</div>
<div className="form-group form-inline">
<label className="col-sm-2 control-label">Options</label>
<div className="col-sm-10">
const optionsSelector = (<div>
<select
title={this.getAvailableOptionsOnlyText(this.state.selectedPreset.options, this.state.selectedNode.options)}
className="form-control"
@ -534,6 +524,27 @@ class EditTaskForm extends React.Component {
</div>
: <i className="preset-performing-action-icon fa fa-cog fa-spin fa-fw"></i>}
<ErrorMessage className="preset-error" bind={[this, 'presetError']} />
</div>);
taskOptions = (
<div>
<div className="form-group">
<label className="col-sm-2 control-label">Processing Node</label>
<div className="col-sm-10">
<select className="form-control" value={this.state.selectedNode.key} onChange={this.handleSelectNode}>
{this.state.processingNodes.map(node =>
<option value={node.key} key={node.key} disabled={!node.enabled}>{node.label}</option>
)}
</select>
</div>
</div>
<div className="form-group form-inline">
<label className="col-sm-2 control-label">Options</label>
<div className="col-sm-10">
{!this.props.inReview ? optionsSelector :
<div className="review-options">
{this.getAvailableOptionsOnlyText(this.state.selectedPreset.options, this.state.selectedNode.options)}
</div>}
</div>
</div>

Wyświetl plik

@ -121,6 +121,7 @@ class NewTaskPanel extends React.Component {
<EditTaskForm
onFormLoaded={this.handleFormTaskLoaded}
onFormChanged={this.handleFormChanged}
inReview={this.state.inReview}
ref={(domNode) => { if (domNode) this.taskForm = domNode; }}
/>

Wyświetl plik

@ -14,4 +14,9 @@
.system-preset{
background-color: #eee;
}
.review-options{
margin-top: 10px;
margin-bottom: 14px;
}
}

6
dev-worker.sh 100755
Wyświetl plik

@ -0,0 +1,6 @@
#!/bin/bash
# Launch a development worker so that changes in a dev
# environment can be refreshed
docker stop worker
docker-compose -f docker-compose.yml -f docker-compose.dev.yml run --entrypoint bash worker