2017-08-18 20:45:52 -07:00
<!-- Modal download file -->
< div class = "modal fade" id = "downloadFileModal" tabindex = "-1" role = "dialog" >
2017-08-20 18:09:43 +02:00
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
2017-08-24 13:38:50 -07:00
< h4 class = "modal-title" > Download from {{ selected.name }}< / h4 >
2017-08-20 18:09:43 +02:00
< / div >
< div class = "modal-body" >
2017-08-20 18:47:13 +02:00
< form name = "downloadFileForm" ng-submit = "downloadFile.submit()" >
< div class = "form-group" ng-class = "{ 'has-error': downloadFileForm.filePath.$dirty && downloadFile.error }" >
2017-08-24 13:38:50 -07:00
< label class = "control-label" for = "inputDownloadFilePath" > Path to file or directory< / label >
2017-08-20 18:47:13 +02:00
< div class = "control-label" ng-show = "{ 'has-error': downloadFileForm.filePath.$dirty && downloadFile.error }" >
< small > {{ downloadFile.error }}< / small >
< / div >
< input type = "text" class = "form-control" name = "filePath" ng-model = "downloadFile.filePath" required autofocus >
< / div >
2017-08-24 13:38:50 -07:00
< input id = "inputDownloadFilePath" class = "ng-hide" type = "submit" ng-disabled = "!downloadFile.filePath" / >
2017-08-20 18:09:43 +02:00
< / form >
< / div >
< div class = "modal-footer" >
2017-08-20 18:47:13 +02:00
< a id = "fileDownloadLink" class = "" ng-href = "{{ downloadFile.downloadUrl() }}" target = "_blank" > < / a >
2017-08-20 18:09:43 +02:00
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > Cancel< / button >
2017-08-20 18:47:13 +02:00
< button type = "button" class = "btn btn-success" ng-click = "downloadFile.submit()" ng-disabled = "!downloadFile.filePath" > < i class = "fa fa-circle-o-notch fa-spin" ng-show = "downloadFile.busy" > < / i > Download< / button >
2017-08-20 18:09:43 +02:00
< / div >
2017-08-18 20:45:52 -07:00
< / div >
2017-08-20 18:09:43 +02:00
< / div >
2017-08-18 20:45:52 -07:00
< / div >
2017-08-20 19:32:00 +02:00
<!-- Modal upload progress -->
< div class = "modal fade" id = "uploadProgressModal" tabindex = "-1" role = "dialog" >
2017-09-01 16:49:04 +02:00
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
< h4 class = "modal-title" > Uploading file to {{ selected.name }}< / h4 >
< / div >
< div class = "modal-body" >
< span > < b > {{ (uploadProgress.current/1000/1000).toFixed(2) }}mb< / b > (total {{ (uploadProgress.total/1000/1000).toFixed(2) }}mb)< / span >
< div class = "progress progress-striped active" >
< div class = "progress-bar progress-bar-success" role = "progressbar" style = "width: {{ 100*(uploadProgress.current/uploadProgress.total) }}%" > < / div >
2017-08-20 19:32:00 +02:00
< / div >
< / div >
2017-09-01 16:49:04 +02:00
< div class = "modal-footer" >
< / div >
2017-08-20 19:32:00 +02:00
< / div >
< / div >
2017-09-01 16:49:04 +02:00
< / div >
2017-08-20 19:32:00 +02:00
2017-09-01 18:14:59 +02:00
<!-- Modal repair info -->
< div class = "modal fade" id = "repairAppModal" tabindex = "-1" role = "dialog" >
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
< h2 > Restart app in repair mode?< / h2 >
< / div >
< div class = "modal-body" >
< p > This will restart the app in repair mode and will startup in a paused state, in order to allow fixing for example broken plugins or database content.< / p >
< p class = "text-danger text-bold" > The app will not be reachable while in repair mode!< / p >
< / div >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > Cancel< / button >
< button type = "button" class = "btn btn-danger" ng-click = "repairAppBegin()" > Repair< / button >
< / div >
< / div >
< / div >
< / div >
2017-08-18 20:45:52 -07:00
< div class = "logs-controls" >
< div class = "col-md-10 col-md-offset-1" >
< uib-tabset active = "active" >
< uib-tab index = "1" heading = "Terminal" select = "showTerminal()" > < / uib-tab >
< uib-tab index = "0" heading = "Logs" select = "showLogs()" > < / uib-tab >
< / uib-tabset >
< select class = "form-control pull-right inline" ng-options = "log.name for log in logs track by log.value" ng-model = "selected" > < / select >
2017-08-07 16:48:27 +02:00
2017-08-18 20:45:52 -07:00
<!-- logs actions -->
2017-08-19 12:29:00 -07:00
< a class = "btn btn-default pull-right" ng-href = "{{ selected.url }}&format=short&lines=800" ng-hide = "terminalVisible" > < i class = "fa fa-download" > < / i > Download Logs< / a >
2017-08-17 09:30:31 +02:00
2017-08-18 20:45:52 -07:00
< input type = "file" id = "fileUpload" class = "hide" / >
2017-08-17 09:30:31 +02:00
2017-08-18 20:45:52 -07:00
<!-- terminal actions -->
< div class = "btn-group pull-right" style = "margin-left: 10px;" >
2017-09-01 18:14:59 +02:00
< button class = "btn btn-default" ng-click = "restartApp()" ng-show = "selected.type === 'app'" ng-disabled = "restartAppBusy" > < i class = "fa fa-refresh" ng-class = "{ 'fa-spin': restartAppBusy }" > < / i > Restart< / button >
2017-08-20 19:32:00 +02:00
< button class = "btn btn-default" ng-click = "uploadFile()" ng-show = "terminalVisible && selected.type === 'app' && !uploadProgress.busy" > < i class = "fa fa-upload" > < / i > Upload to /tmp< / button >
< button class = "btn btn-default" ng-click = "uploadProgress.show()" ng-show = "uploadProgress.busy" > < i class = "fa fa-circle-o-notch fa-spin" > < / i > Uploading...< / button >
2017-08-18 20:45:52 -07:00
< button class = "btn btn-default" ng-click = "downloadFile.show()" ng-show = "terminalVisible && selected.type === 'app'" > < i class = "fa fa-download" > < / i > Download< / button >
2017-09-01 18:14:59 +02:00
< button class = "btn btn-default" ng-click = "repairApp()" ng-show = "terminalVisible && selected.type === 'app' && !selectedAppInfo.debugMode" > < i class = "fa fa-wrench" > < / i > Repair< / button >
< button class = "btn btn-danger" ng-click = "repairAppDone()" ng-show = "selectedAppInfo.debugMode" > < i class = "fa fa-wrench" > < / i > Repair Done< / button >
2017-08-07 13:50:45 +02:00
< / div >
2017-08-08 18:24:00 +02:00
2017-08-18 20:45:52 -07:00
< div class = "btn-group pull-right" style = "margin-left: 10px;" >
2017-08-19 16:45:20 -07:00
< button class = "btn btn-default" ng-click = "terminalInject('mysql')" ng-show = "terminalVisible && usesAddon('mysql')" > MySQL< / button >
2017-08-18 20:45:52 -07:00
< button class = "btn btn-default" ng-click = "terminalInject('postgresql')" ng-show = "terminalVisible && usesAddon('postgresql')" > Postgres< / button >
2017-08-19 16:45:20 -07:00
< button class = "btn btn-default" ng-click = "terminalInject('mongodb')" ng-show = "terminalVisible && usesAddon('mongodb')" > MongoDB< / button >
2017-08-18 20:45:52 -07:00
< button class = "btn btn-default" ng-click = "terminalInject('redis')" ng-show = "terminalVisible && usesAddon('redis')" > Redis< / button >
< / div >
< / div >
< / div >
2017-08-08 18:24:00 +02:00
2017-08-18 20:45:52 -07:00
< div class = "logs-and-term-container" > < / div >
2017-08-22 16:23:06 +02:00
< div class = "contextMenuBackdrop" >
< ul class = "dropdown-menu" id = "terminalContextMenu" style = "position: absolute; display:none;" >
< li > < a href = "" ng-click = "terminalCopy()" > Copy< / a > < / li >
2017-08-31 20:51:38 +02:00
< li class = "disabled" > < a > For Paste use Ctrl+v< / a > < / li >
2017-08-22 16:23:06 +02:00
< li role = "separator" class = "divider" > < / li >
< li > < a href = "" ng-click = "terminalClear()" > Clear< / a > < / li >
< / ul >
< / div >