2015-07-20 00:09:47 -07:00
<!-- Modal developer mode -->
< div class = "modal fade" id = "developerModeChangeModal" tabindex = "-1" role = "dialog" >
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
< h4 class = "modal-title" ng-hide = "config.developerMode" > Enable Developer Mode< / h4 >
< h4 class = "modal-title" ng-show = "config.developerMode" > Disable Developer Mode< / h4 >
< / div >
< div class = "modal-body" >
< form name = "developerModeChangeForm" class = "form-signin" role = "form" novalidate ng-submit = "doChangeDeveloperMode(developerModeChangeForm)" autocomplete = "off" >
< fieldset >
< div class = "form-group" ng-class = "{ 'has-error': (developerModeChangeForm.password.$dirty && developerModeChangeForm.password.$invalid)}" >
< label class = "control-label" for = "inputDeveloperModeChangePassword" > Give your password to verify that you are performing that action< / label >
< div class = "control-label" ng-show = "(!developerModeChangeForm.password.$dirty && developerModeChange.error.password) || (developerModeChangeForm.password.$dirty && developerModeChangeForm.password.$invalid)" >
< small ng-show = "developerModeChangeForm.password.$error.required" > A password is required< / small >
< small ng-show = "developerModeChangeForm.password.$error.minlength" > The password is too short< / small >
< small ng-show = "developerModeChangeForm.password.$error.maxlength" > The password is too long< / small >
< small ng-show = "developerModeChangeForm.password.$dirty && developerModeChange.error.password" > Invalid pasword< / small >
< / div >
< input type = "password" class = "form-control" ng-model = "developerModeChange.password" id = "inputDeveloperModeChangePassword" name = "password" ng-maxlength = "512" ng-minlength = "5" required autofocus >
< / div >
< input class = "ng-hide" type = "submit" ng-disabled = "developerModeChangeForm.$invalid" / >
< / fieldset >
< / form >
< / 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-hide = "config.developerMode" ng-click = "doChangeDeveloperMode(developerModeChangeForm)" ng-disabled = "developerModeChangeForm.$invalid || developerModeChange.busy" > < i class = "fa fa-spinner fa-pulse" ng-show = "developerModeChange.busy" > < / i > Enable< / button >
< button type = "button" class = "btn btn-success" ng-show = "config.developerMode" ng-click = "doChangeDeveloperMode(developerModeChangeForm)" ng-disabled = "developerModeChangeForm.$invalid || developerModeChange.busy" > < i class = "fa fa-spinner fa-pulse" ng-show = "developerModeChange.busy" > < / i > Disable< / button >
< / div >
< / div >
< / div >
< / div >
<!-- Modal change avatar -->
< div class = "modal fade" id = "avatarChangeModal" tabindex = "-1" role = "dialog" >
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
< h4 class = "modal-title" > Change your Cloudron Avatar< / h4 >
< / div >
< div class = "modal-body settings-avatar-selector" >
< img id = "previewAvatar" width = "128" height = "128" ng-src = "{{avatarChange.avatar.data || avatarChange.avatar.url || avatar.data || avatar.url}}" / >
< input type = "file" id = "avatarFileInput" style = "display: none" accept = "image/png" / >
< br / >
< br / >
< div class = "grid" >
< div class = "item" ng-repeat = "avatar in avatarChange.availableAvatars" style = "background-image: url('{{avatar.data || avatar.url}}');" ng-click = "setPreviewAvatar(avatar)" > < / div >
< div class = "item add" ng-click = "showCustomAvatarSelector()" > < / div >
< / div >
< / div >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > Cancel< / button >
< button type = "button" class = "btn btn-success" ng-click = "doChangeAvatar()" ng-disabled = "avatarChange.busy" > < i class = "fa fa-spinner fa-pulse" ng-show = "avatarChange.busy" > < / i > Change< / button >
< / div >
< / div >
< / div >
< / div >
<!-- Modal backup -->
< div class = "modal fade" id = "createBackupModal" tabindex = "-1" role = "dialog" >
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
< h4 class = "modal-title" > Create a new Backup< / h4 >
< / div >
< div class = "modal-body" >
Do you really want to create a new backup?
< / div >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > Cancel< / button >
< button type = "button" class = "btn btn-success" ng-click = "doCreateBackup()" ng-disabled = "createBackup.busy" > < i class = "fa fa-spinner fa-pulse" ng-show = "developerModeChange.busy" > < / i > Confirm< / button >
< / div >
< / div >
< / div >
< / div >
2015-08-12 13:48:55 +02:00
< br / >
< div style = "max-width: 600px; margin: 0 auto;" >
< div class = "text-left" >
< h1 > Settings< / h1 >
< / div >
< / div >
2015-07-20 00:09:47 -07:00
< div style = "max-width: 600px; margin: 0 auto;" ng-show = "user.admin" >
< div class = "text-left" >
< h3 > Backups< / h3 >
< / div >
< / div >
< div class = "card" style = "margin-bottom: 15px;" ng-show = "user.admin" >
< div class = "row" >
< div class = "col-xs-6" >
< span class = "text-muted" > Last Backup< / span >
< / div >
< div class = "col-xs-6 text-right" >
< span ng-show = "lastBackup" > {{ lastBackup.creationTime | prettyDate }}< / span >
< span ng-hide = "lastBackup" > No backups have been created yet< / span >
< / div >
< / div >
<!-- If a backup is blocked (not triggered), the UI does not give feedback currently. This button is only available in dev at the moment! -->
< div class = "row" ng-show = "config.isDev" >
< br / >
< div class = "col-xs-9" >
< div ng-show = "createBackup.busy" class = "progress progress-striped active animateMe" >
< div class = "progress-bar progress-bar-success" role = "progressbar" style = "width: {{ createBackup.percent }}%" > Backup in progress< / div >
< / div >
< / div >
< div class = "col-xs-3 text-right" >
< button class = "btn btn-outline btn-xs btn-primary" ng-click = "showCreateBackup()" ng-disabled = "createBackup.busy" > Create Backup< / button >
< / div >
< / div >
< / div >
< div style = "max-width: 600px; margin: 0 auto;" ng-show = "user.admin" >
< div class = "text-left" >
< h3 > About< / h3 >
< / div >
< / div >
< div class = "card" style = "margin-bottom: 15px;" ng-show = "user.admin" >
< div class = "row" >
< div class = "col-xs-4" style = "min-width: 150px;" >
< div class = "settings-avatar" ng-click = "showChangeAvatar()" style = "background-image: url('{{avatar.data || avatar.url}}');" >
< div class = "overlay" > < / div >
< / div >
< / div >
< div class = "col-xs-8" >
< table width = "100%" >
< tr >
< td class = "text-muted" style = "vertical-align: top;" > Model< / td >
< td class = "text-right" style = "vertical-align: top; white-space: nowrap;" > {{ config.size }} - {{ config.region }}< / td >
< / tr >
< tr >
< td class = "text-muted" style = "vertical-align: top;" > Version< / td >
< td class = "text-right" style = "vertical-align: top; white-space: nowrap;" > {{ config.version }}< / td >
< / tr >
< / table >
< / div >
< / div >
< / div >
2015-10-27 10:39:02 +01:00
< div style = "max-width: 600px; margin: 0 auto;" ng-show = "user.admin && config.isCustomDomain" >
< div class = "text-left" >
< h3 > Default Certificates< / h3 >
< / div >
< / div >
< div class = "card" style = "margin-bottom: 15px;" ng-show = "user.admin && config.isCustomDomain" >
< div class = "row" >
< div class = "col-md-12" >
2015-10-29 11:52:53 +01:00
< form name = "defaultCertForm" ng-submit = "setDefaultCert()" >
2015-10-27 10:39:02 +01:00
< fieldset >
2015-10-29 11:52:53 +01:00
< label class = "control-label" for = "defaultCertInput" > Fallback Certificate< / label >
< p > This certificate has to be wildcard certificates and will be used for all apps, which were not configured to use a specific certificate.< / p >
2015-10-27 10:39:02 +01:00
< div class = "form-group" ng-class = "{ 'has-error': false }" >
< div class = "input-group" >
2015-10-29 11:52:53 +01:00
< input type = "file" id = "defaultCertFileInput" style = "display:none" / >
< input type = "text" class = "form-control" placeholder = "Certificate" ng-model = "defaultCert.certificateFileName" id = "defaultCertInput" name = "certificate" onclick = "getElementById('defaultCertFileInput').click();" style = "cursor: pointer;" required >
2015-10-27 10:39:02 +01:00
< span class = "input-group-addon" >
2015-10-29 11:52:53 +01:00
< i class = "fa fa-upload" onclick = "getElementById('defaultCertFileInput').click();" > < / i >
2015-10-27 10:39:02 +01:00
< / span >
< / div >
< / div >
< div class = "form-group" ng-class = "{ 'has-error': false }" >
< div class = "input-group" >
2015-10-29 11:52:53 +01:00
< input type = "file" id = "defaultKeyFileInput" style = "display:none" / >
< input type = "text" class = "form-control" placeholder = "Key" ng-model = "defaultCert.keyFileName" id = "defaultKeyInput" name = "key" onclick = "getElementById('defaultKeyFileInput').click();" style = "cursor: pointer;" required >
2015-10-27 10:39:02 +01:00
< span class = "input-group-addon" >
2015-10-29 11:52:53 +01:00
< i class = "fa fa-upload" onclick = "getElementById('defaultKeyFileInput').click();" > < / i >
2015-10-27 10:39:02 +01:00
< / span >
< / div >
< / div >
2015-10-29 12:37:59 +01:00
< button type = "submit" class = "btn btn-outline btn-success pull-right" > Upload< / button >
2015-10-29 11:52:53 +01:00
< / fieldset >
< / form >
< / div >
< / div >
< div class = "row" >
< div class = "col-md-12" >
< form name = "adminCertForm" ng-submit = "setAdminCert()" >
< fieldset >
< label class = "control-label" for = "adminCertInput" > Settings Certificate< / label >
< p > This certificate will be used for this Settings application.< / p >
< div class = "form-group" ng-class = "{ 'has-error': false }" >
< div class = "input-group" >
< input type = "file" id = "adminCertFileInput" style = "display:none" / >
< input type = "text" class = "form-control" placeholder = "Certificate" ng-model = "adminCert.certificateFileName" id = "adminCertInput" name = "certificate" onclick = "getElementById('adminCertFileInput').click();" style = "cursor: pointer;" required >
< span class = "input-group-addon" >
< i class = "fa fa-upload" onclick = "getElementById('adminCertFileInput').click();" > < / i >
< / span >
< / div >
< / div >
< div class = "form-group" ng-class = "{ 'has-error': false }" >
< div class = "input-group" >
< input type = "file" id = "adminKeyFileInput" style = "display:none" / >
2015-10-29 12:37:30 +01:00
< input type = "text" class = "form-control" placeholder = "Key" ng-model = "adminCert.keyFileName" id = "adminKeyInput" name = "key" onclick = "getElementById('adminKeyFileInput').click();" style = "cursor: pointer;" required >
2015-10-29 11:52:53 +01:00
< span class = "input-group-addon" >
< i class = "fa fa-upload" onclick = "getElementById('adminKeyFileInput').click();" > < / i >
< / span >
< / div >
< / div >
2015-10-29 12:37:59 +01:00
< button type = "submit" class = "btn btn-outline btn-success pull-right" > Upload< / button >
2015-10-27 10:39:02 +01:00
< / fieldset >
< / form >
< / div >
< / div >
< / div >
2015-07-20 00:09:47 -07:00
< div style = "max-width: 600px; margin: 0 auto;" ng-show = "user.admin" >
< div class = "text-left" >
< h3 > Developer Mode< / h3 >
< / div >
< / div >
< div class = "card" style = "margin-bottom: 15px;" ng-show = "user.admin" >
< div class = "row" >
< div class = "col-xs-12" >
The developer mode will enable additional functionality for developers. This mode allows for example the Cloudron commandline tool to control parts of the Cloudron, like installing and debugging applications.
< br / >
< br / >
If you are interested in application development, please visit the < a href = "{{ config.webServerOrigin }}/documentation.html" target = "_blank" > application developer documentation< / a > .
< / div >
< / div >
< br / >
< div class = "row" >
< div class = "col-xs-6" >
Status
< / div >
< div class = "col-xs-6 text-right" >
< a href = "" class = "text-danger" ng-show = "config.developerMode" ng-click = "showChangeDeveloperMode()" > Enabled< / a >
< a href = "" ng-hide = "config.developerMode" ng-click = "showChangeDeveloperMode()" > Disabled< / a >
< / div >
< / div >
< / div >