diff --git a/app/models/task.py b/app/models/task.py index 61c5c615..530de0b0 100644 --- a/app/models/task.py +++ b/app/models/task.py @@ -156,6 +156,7 @@ class Task(models.Model): 'deferred_path': 'orthophoto_tiles.zip', 'deferred_compress_dir': 'orthophoto_tiles' }, + 'cameras.json': 'cameras.json', } STATUS_CODES = ( diff --git a/app/static/app/js/classes/AssetDownloads.js b/app/static/app/js/classes/AssetDownloads.js index c8cbf96a..948ad450 100644 --- a/app/static/app/js/classes/AssetDownloads.js +++ b/app/static/app/js/classes/AssetDownloads.js @@ -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") ]; diff --git a/app/static/app/js/components/EditTaskForm.jsx b/app/static/app/js/components/EditTaskForm.jsx index 9a603621..6026ee9c 100644 --- a/app/static/app/js/components/EditTaskForm.jsx +++ b/app/static/app/js/components/EditTaskForm.jsx @@ -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,6 +483,49 @@ class EditTaskForm extends React.Component { let taskOptions = ""; if (this.formReady()){ + const optionsSelector = (