2018-01-22 13:01:38 -08:00
<!DOCTYPE html>
< html >
< head >
< meta charset = "utf-8" / >
< meta name = "viewport" content = "user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height" / >
< title > Cloudron Admin Setup < / title >
2018-04-10 14:49:49 +02:00
< link id = "favicon" href = "/api/v1/cloudron/avatar" rel = "icon" type = "image/png" >
2018-01-22 13:01:38 -08:00
<!-- Theme CSS -->
2018-04-10 14:49:49 +02:00
< link type = "text/css" rel = "stylesheet" href = "/theme.css" >
2018-01-22 13:01:38 -08:00
<!-- Custom Fonts -->
2018-04-10 14:49:49 +02:00
< link type = "text/css" rel = "stylesheet" href = "/3rdparty/css/font-awesome.min.css" >
2018-01-22 13:01:38 -08:00
<!-- jQuery -->
2018-04-10 14:49:49 +02:00
< script type = "text/javascript" src = "/3rdparty/js/jquery.min.js" > < / script >
2018-01-22 13:01:38 -08:00
<!-- Bootstrap Core JavaScript -->
2018-04-10 14:49:49 +02:00
< script type = "text/javascript" src = "/3rdparty/js/bootstrap.min.js" > < / script >
2018-01-22 13:01:38 -08:00
<!-- Angularjs scripts -->
2018-04-10 14:49:49 +02:00
< script type = "text/javascript" src = "/3rdparty/js/angular.min.js" > < / script >
< script type = "text/javascript" src = "/3rdparty/js/angular-loader.min.js" > < / script >
< script type = "text/javascript" src = "/3rdparty/js/angular-md5.min.js" > < / script >
< script type = "text/javascript" src = "/3rdparty/js/angular-ui-notification.min.js" > < / script >
< script type = "text/javascript" src = "/3rdparty/js/autofill-event.js" > < / script >
2018-01-22 13:01:38 -08:00
<!-- Angular directives for bootstrap https://angular - ui.github.io/bootstrap/ -->
2018-04-10 14:49:49 +02:00
< script type = "text/javascript" src = "/3rdparty/js/ui-bootstrap-tpls-1.3.3.min.js" > < / script >
2018-01-22 13:01:38 -08:00
<!-- Setup Application -->
2018-04-10 14:49:49 +02:00
< script type = "text/javascript" src = "/js/setup.js" > < / script >
2018-01-22 13:01:38 -08:00
< / head >
< body class = "setup" ng-app = "Application" ng-controller = "SetupController" >
< div class = "main-container ng-cloak text-center" ng-show = "provider === 'caas' && !setupToken" >
< div class = "row" >
< div class = "col-md-6 col-md-offset-3" >
< h1 > < i class = "fa fa-frown-o fa-fw text-danger" > < / i > No setup token provided. < / h1 >
Please use the setup link for this cloudron.
< / div >
< / div >
< / div >
< div class = "main-container ng-cloak text-center" ng-show = "busy" >
< div class = "row" >
< div class = "col-md-6 col-md-offset-3" >
< i class = "fa fa-circle-o-notch fa-spin fa-5x" > < / i >
< / div >
< / div >
< / div >
< div class = "main-container ng-cloak" ng-show = "initialized && !busy" >
< div class = "row" >
< div class = "col-md-6 col-md-offset-3" >
< div class = "card" style = "max-width: none; padding: 20px;" >
< form role = "form" name = "setupForm" ng-submit = "activateCloudron()" novalidate >
< div class = "row" >
< div class = "col-md-12 text-center" >
< h1 > Welcome to Cloudron< / h1 >
< h3 > Create an Admin Account< / h3 >
< / div >
< / div >
< div class = "row" >
< div class = "col-md-8 col-md-offset-2 text-center" >
< div class = "form-group" ng-class = "{ 'has-error': setupForm.displayName.$dirty && setupForm.displayName.$invalid }" >
< input type = "text" class = "form-control" ng-model = "account.displayName" id = "inputDisplayName" name = "displayName" placeholder = "Display Name" required autocomplete = "off" autofocus >
< / div >
< div ng-show = "account.requireEmail" class = "form-group" ng-class = "{ 'has-error': setupForm.email.$dirty && setupForm.email.$invalid }" >
< input type = "email" class = "form-control" ng-model = "account.email" id = "inputEmail" name = "email" placeholder = "Email" required autocomplete = "off" tooltip-trigger = "focus" uib-tooltip = "This email address is local to your Cloudron and used for notifications and password reset. A valid email is also required for Let's Encrypt certificates." >
< / div >
< div class = "form-group" ng-class = "{ 'has-error': (setupForm.username.$dirty && setupForm.username.$invalid) || (!setupForm.username.$dirty && error.username) }" >
< p ng-show = "!setupForm.username.$dirty && error.username" > {{ error.username }}< / p >
< input type = "text" class = "form-control" ng-model = "account.username" id = "inputUsername" name = "username" placeholder = "Username" ng-maxlength = "512" ng-minlength = "3" required autocomplete = "off" >
< / div >
< div class = "form-group" ng-class = "{ 'has-error': setupForm.password.$dirty && setupForm.password.$invalid }" >
< input type = "password" class = "form-control" ng-model = "account.password" id = "inputPassword" name = "password" placeholder = "Password" ng-pattern = "/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])(?!.*\s).{8,30}$/" required autocomplete = "off" >
< div class = "control-label" ng-show = "setupForm.password.$dirty && setupForm.password.$invalid" >
< small ng-show = "setupForm.password.$dirty && setupForm.password.$invalid" > Password must be 8-30 character with at least one uppercase, one numeric and one special character< / small >
< / div >
< / div >
< / div >
< / div >
< br / >
< div class = "row" >
< div class = "col-md-12 text-center" >
< input type = "submit" class = "btn btn-primary" ng-disabled = "setupForm.$invalid" value = "Done" >
< / div >
< / div >
< br / >
< div class = "row" >
< div class = "col-md-12 text-center" > < small > Looking to < a href = "/restore.html" > restore?< / a > < / small > < / div >
< / div >
< / form >
< / div >
< / div >
< / div >
< / div >
< footer class = "text-center" >
< span class = "text-muted" > © 2018 < a href = "https://cloudron.io" target = "_blank" > Cloudron< / a > < / span >
< span class = "text-muted" > < a href = "https://twitter.com/cloudron_io" target = "_blank" > Twitter < i class = "fa fa-twitter" > < / i > < / a > < / span >
2018-02-23 15:53:23 -08:00
< span class = "text-muted" > < a href = "https://forum.cloudron.io" target = "_blank" > Forum < i class = "fa fa-comments" > < / i > < / a > < / span >
2018-01-22 13:01:38 -08:00
< / footer >
< / body >
< / html >