2016-07-05 18:06:22 +00:00
<!doctype html>
< html class = "no-js" lang = "" >
2017-04-08 04:05:20 +00:00
< head >
< meta charset = "utf-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" >
2018-11-13 17:04:50 +00:00
< title > NodeODM< / title >
2017-04-08 04:05:20 +00:00
< meta name = "description" content = "" >
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
< link rel = "stylesheet" href = "css/bootstrap.min.css" >
< style >
body {
padding-top: 50px;
padding-bottom: 20px;
}
< / style >
< link href = "css/fileinput.css" media = "all" rel = "stylesheet" type = "text/css" / >
< link rel = "stylesheet" href = "css/main.css" >
< script src = "js/vendor/modernizr-2.8.3.min.js" > < / script >
< / head >
< body >
<!-- [if lt IE 8]>
2016-07-05 18:06:22 +00:00
< p class = "browserupgrade" > You are using an < strong > outdated< / strong > browser. Please < a href = "http://browsehappy.com/" > upgrade your browser< / a > to improve your experience.< / p >
<![endif]-->
< nav class = "navbar navbar-inverse navbar-fixed-top" role = "navigation" >
2017-04-08 04:05:20 +00:00
< div class = "container" >
< div class = "navbar-header" >
2018-11-13 17:04:50 +00:00
< a class = "navbar-brand" href = "/" > NodeODM< / a >
2017-04-08 04:05:20 +00:00
< p class = "navbar-text navbar-right" > Open Source Drone Aerial Imagery Processing< / a >
< / p >
< / div >
2016-07-05 18:06:22 +00:00
< / div >
< / nav >
< div class = "container" >
2017-04-08 04:05:20 +00:00
<!-- Example row of columns -->
< div class = "row" >
< div class = "col-md-5" >
< h2 > New Task< / h2 >
< br / >
< form enctype = "multipart/form-data" onsubmit = "return false;" >
< div class = "form-group form-inline" >
< label for = "taskName" > Project Name:< / lable > < input type = "text" class = "form-control" value = "" id = "taskName" / >
2019-01-04 16:36:14 +00:00
< / div >
< div id = "imagesInput" class = "form-group" >
< label for = "images" > Aerial Images and GCP List (optional):< / label > < input id = "images" name = "images" multiple accept = "image/*|.txt|.zip" type = "file" >
2017-04-08 04:05:20 +00:00
< / div >
< div id = "zipFileInput" class = "form-group hidden" >
2017-04-12 03:55:52 +00:00
< label for = "zipurl" > URL to zip file with Aerial Images and GCP List (optional):< / label > < input id = "zipurl" name = "zipurl" class = "form-control" type = "text" >
2017-04-08 04:05:20 +00:00
< / div >
2019-01-04 16:36:14 +00:00
< div id = "errorBlock" class = "help-block" > < / div >
2017-04-08 04:05:20 +00:00
2017-04-08 23:40:03 +00:00
< div class = "text-right" > < input type = "button" class = "btn btn-info" value = "Switch to URL" id = "btnShowImport" / >
< input type = "button" class = "btn btn-info hidden" value = "Switch to File Upload" id = "btnShowUpload" / >
2017-04-08 04:05:20 +00:00
< input type = "submit" class = "btn btn-success" value = "Start Task" id = "btnUpload" / >
< input type = "submit" class = "btn btn-success hidden" value = "Get ZIP" id = "btnImport" / > < / div >
< div id = "options" >
< div class = "form-inline form-group form-horizontal" >
< div data-bind = "visible: error(), text: error()" class = "alert alert-warning" role = "alert" > < / div >
< button style = "position: relative; top: -45px;" type = "submit" class = "btn btn-default" data-bind = "visible: !error(), click: function(){ showOptions(!showOptions()); }, text: (showOptions() ? 'Hide' : 'Show') + ' Options'" > < / button >
< div data-bind = "visible: showOptions()" >
2019-01-04 16:36:14 +00:00
< div >
< label for = "doPostProcessing" > generate 2D and potree point cloud tiles:< / label >
< br / >
< div class = "checkbox" >
< label >
< input type = "checkbox" id = "doPostProcessing" > Enable
< / label >
< / div >
< button type = "submit" class = "btn glyphicon glyphicon-info-sign btn-info" data-toggle = "tooltip" data-placement = "top" title = "Generate 2D and Potree Point Cloud Tiles" > < / button >
< button id = "resetDoPostProcessing" type = "submit" class = "btn glyphicon glyphicon glyphicon-repeat btn-default" data-toggle = "tooltip" data-placement = "top" title = "Reset to default" > < / button >
< br / > < br / >
< / div >
2018-11-13 17:04:50 +00:00
< div >
2017-04-12 03:55:52 +00:00
< label for = "webhook" > webhook callback url (optional):< / label >
< br / >
< input id = "webhook" name = "webhook" class = "form-control" type = "text" >
2019-01-04 16:36:14 +00:00
< button type = "submit" class = "btn glyphicon glyphicon-info-sign btn-info" data-toggle = "tooltip" data-placement = "top" title = "Optional webhook" > < / button >
2017-04-12 03:55:52 +00:00
< button id = "resetWebhook" type = "submit" class = "btn glyphicon glyphicon glyphicon-repeat btn-default" data-toggle = "tooltip" data-placement = "top" title = "Reset to default" > < / button >
2018-11-13 17:04:50 +00:00
< br / > < br / >
2017-04-12 03:55:52 +00:00
< / div >
2017-04-08 04:05:20 +00:00
< div data-bind = "foreach: options" >
< label data-bind = "text: properties.name + (properties.domain ? ' (' + properties.domain + ')' : '')" > < / label > < br / >
<!-- ko if: properties.type !== 'bool' -->
< input type = "text" class = "form-control" data-bind = "attr: {placeholder: properties.value}, value: value" >
<!-- /ko -->
<!-- ko if: properties.type === 'bool' -->
< div class = "checkbox" >
< label >
2018-11-13 17:04:50 +00:00
< input type = "checkbox" data-bind = "checked: value" > Enable
< / label >
2017-04-08 04:05:20 +00:00
< / div >
<!-- /ko -->
< button type = "submit" class = "btn glyphicon glyphicon-info-sign btn-info" data-toggle = "tooltip" data-placement = "top" data-bind = "attr: {title: properties.help}" > < / button >
< button type = "submit" class = "btn glyphicon glyphicon glyphicon-repeat btn-default" data-toggle = "tooltip" data-placement = "top" title = "Reset to default" data-bind = "click: resetToDefault" > < / button >
2016-07-05 18:06:22 +00:00
2017-04-08 04:05:20 +00:00
< br / > < br / >
< / div >
< / div >
< / div >
< / div >
< / form >
2016-07-26 19:20:37 +00:00
< / div >
2017-04-08 04:05:20 +00:00
< div class = "col-md-7" id = "taskList" >
< h2 > Current Tasks (< span data-bind = "text: tasks().length" > < / span > )< / h2 >
< p data-bind = "visible: tasks().length === 0" > No running tasks.< / p >
< div data-bind = "foreach: tasks" >
< div class = "task" data-bind = "css: {pulsePositive: info().status && info().status.code === 40, pulseNegative: info().status && info().status.code === 30}" >
< p data-bind = "visible: loading()" > Retrieving < span data-bind = "text: uuid" > < / span > ... < span class = "glyphicon glyphicon-refresh spinning" > < / span > < / p >
< div data-bind = "visible: !loading() && !info().error" >
< div class = "taskItem" > < strong > UUID:< / strong >
2018-12-03 02:39:11 +00:00
< a data-bind = "text: info().uuid, click: openInfo" href = "#" > < / a >
2017-04-08 04:05:20 +00:00
< / div >
< div class = "taskItem" > < strong > Name:< / strong > < span data-bind = "text: info().name" > < / span > < / div >
< div class = "taskItem" > < strong > Images:< / strong > < span data-bind = "text: info().imagesCount" > < / span > < / div >
< div class = "taskItem" > < strong > Status:< / strong > < span data-bind = "text: statusDescr()" > < / span > < / div >
< div class = "taskItem" > < strong > Time Elapsed:< / strong > < span data-bind = "text: timeElapsed()" > < / span > < / div >
2018-11-30 18:47:03 +00:00
< div class = "taskItem" > < strong > Output:< / strong > < a href = "javascript:void(0);" data-bind = "click: viewOutput, visible: !viewingOutput()" > View< / a > < a href = "javascript:void(0);" data-bind = "click: hideOutput, visible: viewingOutput()" > Hide< / a > | < a href = "#" data-bind = "click: downloadOutput" > Download< / a > < / a > < / div >
2018-04-08 19:08:31 +00:00
< textarea class = "consoleOutput" data-bind = "value: output().join('\n'), visible: viewingOutput(), event: {mouseover: consoleMouseOver, mouseout: consoleMouseOut}, attr: {id: 'console_' + uuid}" > < / textarea >
2017-04-08 04:05:20 +00:00
< span data-bind = "css: 'statusIcon glyphicon ' + icon()" > < / span >
< div class = "actionButtons" >
< button data-bind = "click: download, visible: showDownload()" type = "button" class = "btn btn-primary btn-sm" >
2016-11-05 18:46:32 +00:00
< span class = "glyphicon glyphicon-download-alt" > < / span > Download All Assets
< / button >
2017-04-08 04:05:20 +00:00
< button data-bind = "click: downloadOrthophoto, visible: showDownload()" type = "button" class = "btn btn-primary btn-sm" >
2016-11-05 18:46:32 +00:00
< span class = "glyphicon glyphicon-picture" > < / span > Download Orthophoto
2016-07-18 21:00:01 +00:00
< / button >
2017-04-08 04:05:20 +00:00
< button data-bind = "click: cancel, visible: showCancel()" type = "button" class = "btn btn-primary btn-sm" >
2016-07-07 22:07:17 +00:00
< span class = "glyphicon glyphicon-remove-circle" > < / span > Cancel
< / button >
2017-04-08 04:05:20 +00:00
< button data-bind = "click: restart, visible: showRestart()" type = "button" class = "btn btn-primary btn-sm" >
2016-07-07 22:07:17 +00:00
< span class = "glyphicon glyphicon-play" > < / span > Restart
2016-07-06 18:44:20 +00:00
< / button >
2016-07-14 21:42:12 +00:00
2017-04-08 04:05:20 +00:00
< button data-bind = "click: remove, visible: showRemove()" type = "button" class = "btn btn-primary btn-sm" >
2016-07-14 21:42:12 +00:00
< span class = "glyphicon glyphicon-remove-circle" > < / span > Remove
< / button >
2017-04-08 04:05:20 +00:00
< / div >
< / div >
<!-- Error messages -->
< div data-bind = "visible: info().error !== undefined" >
< div class = "alert alert-warning" role = "alert" data-bind = "text: info().error" > < / div >
< div class = "actionButtons" >
< button data-bind = "click: remove" type = "button" class = "btn btn-primary btn-sm" >
2016-07-07 22:07:17 +00:00
< span class = "glyphicon glyphicon-remove-circle" > < / span > Remove
2016-07-06 18:44:20 +00:00
< / button >
2017-04-08 04:05:20 +00:00
< / div >
< / div >
< / div >
2016-07-06 18:44:20 +00:00
< / div >
< / div >
2016-07-05 18:06:22 +00:00
< / div >
2017-04-08 04:05:20 +00:00
< hr >
< footer >
2018-11-13 17:04:50 +00:00
< p > Links: < a href = "https://github.com/OpenDroneMap/NodeODM/blob/master/docs/index.adoc" target = "_blank" > API Docs< / a > | < a href = "https://github.com/OpenDroneMap/WebODM" target = "_blank" > WebODM< / a >
< p > This software is released under the terms of the < a href = "https://www.gnu.org/licenses/gpl-3.0.en.html" target = "_blank" > GPLv3 License< / a > . See < a href = "https://github.com/OpenDroneMap/NodeODM" target = "_blank" > NodeODM< / a > on Github for more information.< / p >
2017-04-08 04:05:20 +00:00
< / footer >
< / div >
<!-- /container -->
< script src = "//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js" > < / script >
< script >
window.jQuery || document.write('< script src = "js/vendor/jquery-1.11.2.min.js" > < \ / s c r i p t > ' )
< / script >
< script src = "js/vendor/bootstrap.min.js" > < / script >
< script src = "js/vendor/knockout-3.4.0.js" > < / script >
< script src = "js/fileinput.js" type = "text/javascript" > < / script >
< script src = "js/main.js" > < / script >
< / body >
2018-10-25 17:18:13 +00:00
< / html >