2018-01-22 13:01:38 -08:00
<!DOCTYPE html>
< html ng-app = "Application" ng-controller = "MainController" >
< 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" / >
<!-- this gets changed once we get the config (because angular has not loaded yet, we see template string for a flash) -->
< title > Cloudron < / title >
2018-04-10 14:49:49 +02:00
< link id = "favicon" type = "image/png" rel = "icon" href = "/api/v1/cloudron/avatar" >
2018-07-30 22:05:20 +02:00
< link rel = "apple-touch-icon" href = "/api/v1/cloudron/avatar" >
< link rel = "icon" href = "/api/v1/cloudron/avatar" >
2018-01-22 13:01:38 -08:00
<!-- CSS -->
2018-04-10 14:49:49 +02:00
< link type = "text/css" rel = "stylesheet" href = "/3rdparty/slick.css?<%= revision %>" / >
2019-01-07 17:23:26 +01:00
< link type = "text/css" rel = "stylesheet" href = "/3rdparty/angular-ui-notification.css?<%= revision %>" / >
2018-04-10 14:49:49 +02:00
< link type = "text/css" rel = "stylesheet" href = "/3rdparty/bootstrap-slider/bootstrap-slider.min.css?<%= revision %>" / >
< link type = "text/css" rel = "stylesheet" href = "/theme.css?<%= revision %>" >
2018-01-22 13:01:38 -08:00
<!-- Custom Fonts -->
2018-11-15 17:42:29 +01:00
< link type = "text/css" rel = "stylesheet" href = "/3rdparty/fontawesome/css/all.min.css?<%= revision %>" >
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?<%= revision %>" > < / script >
2018-01-22 13:01:38 -08:00
<!-- toBlob() polyfill -->
2018-04-10 14:49:49 +02:00
< script type = "text/javascript" src = "/3rdparty/js/canvas-to-blob.min.js?<%= revision %>" > < / 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?<%= revision %>" > < / script >
2018-01-22 13:01:38 -08:00
<!-- Slick carousel -->
2018-04-10 14:49:49 +02:00
< script type = "text/javascript" src = "/3rdparty/js/slick.js?<%= revision %>" > < / 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?<%= revision %>" > < / script >
< script type = "text/javascript" src = "/3rdparty/js/angular-loader.min.js?<%= revision %>" > < / script >
< script type = "text/javascript" src = "/3rdparty/js/angular-route.min.js?<%= revision %>" > < / script >
< script type = "text/javascript" src = "/3rdparty/js/angular-animate.min.js?<%= revision %>" > < / script >
< script type = "text/javascript" src = "/3rdparty/js/angular-base64.min.js?<%= revision %>" > < / script >
< script type = "text/javascript" src = "/3rdparty/js/angular-md5.min.js?<%= revision %>" > < / script >
< script type = "text/javascript" src = "/3rdparty/js/angular-sanitize.min.js?<%= revision %>" > < / script >
< script type = "text/javascript" src = "/3rdparty/js/angular-slick.min.js?<%= revision %>" > < / script >
2019-01-07 17:23:26 +01:00
< script type = "text/javascript" src = "/3rdparty/js/angular-ui-notification.js?<%= revision %>" > < / script >
2018-04-10 14:49:49 +02:00
< script type = "text/javascript" src = "/3rdparty/js/angular-fittext.min.js?<%= revision %>" > < / script >
< script type = "text/javascript" src = "/3rdparty/js/autofill-event.js?<%= revision %>" > < / script >
2018-01-22 13:01:38 -08:00
<!-- Angular directives for tldjs -->
2018-04-10 14:49:49 +02:00
< script type = "text/javascript" src = "/3rdparty/js/tld.js?<%= revision %>" > < / script >
< script type = "text/javascript" src = "/3rdparty/js/angular-tld.js?<%= revision %>" > < / 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?<%= revision %>" > < / script >
2018-01-22 13:01:38 -08:00
2018-04-12 11:45:12 +02:00
< script type = "text/javascript" src = "/3rdparty/js/Chart.min.js?<%= revision %>" > < / script >
2018-04-10 14:49:49 +02:00
< script type = "text/javascript" src = "/3rdparty/js/ansi_up.js?<%= revision %>" > < / script >
< script type = "text/javascript" src = "/3rdparty/js/clipboard.min.js?<%= revision %>" > < / script >
2018-01-22 13:01:38 -08:00
<!-- Showdown (markdown converter) -->
2018-04-10 14:49:49 +02:00
< script type = "text/javascript" src = "/3rdparty/js/showdown-1.6.4.min.js?<%= revision %>" > < / script >
< script type = "text/javascript" src = "/3rdparty/js/showdown-target-blank.min.js?<%= revision %>" > < / script >
2018-01-22 13:01:38 -08:00
<!-- Bootstrap slider -->
2018-04-06 00:11:08 +02:00
< script type = "text/javascript" src = "/3rdparty/bootstrap-slider/bootstrap-slider.min.js?<%= revision %>" > < / script >
< script type = "text/javascript" src = "/3rdparty/bootstrap-slider/slider.js?<%= revision %>" > < / script >
2018-01-22 13:01:38 -08:00
2018-04-10 14:49:49 +02:00
<!-- Anugular Multiselect https://github.com/sebastianha/angular - bootstrap - multiselect -->
< script type = "text/javascript" src = "/3rdparty/js/angular-bootstrap-multiselect.js?<%= revision %>" > < / script >
2018-01-22 13:01:38 -08:00
<!-- colors -->
2018-04-10 14:49:49 +02:00
< script type = "text/javascript" src = "/3rdparty/js/colors.js?<%= revision %>" > < / script >
2018-01-22 13:01:38 -08:00
<!-- moment -->
2018-04-10 14:49:49 +02:00
< script type = "text/javascript" src = "/3rdparty/js/moment.min.js?<%= revision %>" > < / script >
2018-01-22 13:01:38 -08:00
<!-- Main Application -->
2018-04-10 14:49:49 +02:00
< script type = "text/javascript" src = "/js/index.js?<%= revision %>" > < / script >
2018-01-22 13:01:38 -08:00
< / head >
< body >
< script type = "text/ng-template" id = "notification.html" >
< div class = "ui-notification" >
< h3 ng-show = "title" ng-bind-html = "title" > < / h3 >
< div class = "message" >
< a href = "{{action}}" ng-show = "action" ng-bind-html = "message" > < / a >
< span ng-hide = "action" ng-bind-html = "message" > < / span >
< / div >
< / div >
< / script >
2018-12-11 18:17:53 +01:00
< div class = "offline-banner animateMe" ng-show = "client.offline" > < i class = "fa fa-circle-notch fa-spin" > < / i > Cloudron is offline. Reconnecting...< / div >
2018-01-22 13:01:38 -08:00
<!-- Modal setup subscription -->
< div class = "modal fade" id = "setupSubscriptionModal" tabindex = "-1" role = "dialog" >
< div class = "modal-dialog" >
< div class = "modal-content" >
< div class = "modal-header" >
< button type = "button" class = "close" data-dismiss = "modal" > × < / button >
2018-03-30 15:12:14 +02:00
< h4 class = "modal-title" > Setup Subscription< / h4 >
2018-01-22 13:01:38 -08:00
< / div >
< div class = "modal-body" >
< p ng-show = "config.update.box" >
2018-04-18 21:29:38 +02:00
You can update to the next version once you have < a ng-href = "{{ config.webServerOrigin + '/console.html#/userprofile?view=subscriptions&email=' + appstoreConfig.profile.emailEncoded + '&cloudronId=' + appstoreConfig.cloudronId }}" target = "_blank" > setup billing< / a > .
2018-01-22 13:01:38 -08:00
< / p >
< p >
2018-06-11 11:29:31 -07:00
Our paid plans allow you to install more apps and create more users.
2018-01-22 13:01:38 -08:00
< / div >
< div class = "modal-footer" >
2018-11-16 17:03:21 +01:00
< a class = "btn btn-success" ng-click = "waitForPlanSelection()" ng-href = "{{ config.webServerOrigin + '/console.html#/userprofile?view=subscriptions&email=' + appstoreConfig.profile.emailEncoded + '&cloudronId=' + appstoreConfig.cloudronId }}" target = "_blank" ng-disabled = "waitingForPlanSelection" > < i class = "fa fa-circle-notch fa-spin" ng-show = "waitingForPlanSelection" > < / i > Setup Subscription< / a >
2018-01-22 13:01:38 -08:00
< / div >
< / div >
< / div >
< / div >
< div class = "animateMe ng-hide layout-root" ng-show = "initialized" >
<!-- Navigation -->
< nav class = "navbar navbar-default navbar-static-top shadow" role = "navigation" style = "margin-bottom: 0" >
< div class = "container-fluid" >
< div class = "navbar-header" >
< button type = "button" class = "navbar-toggle" data-toggle = "collapse" data-target = ".navbar-collapse" >
< span class = "sr-only" > Toggle navigation< / span >
< span class = "icon-bar" > < / span >
< span class = "icon-bar" > < / span >
< span class = "icon-bar" > < / span >
< / button >
< a class = "navbar-brand navbar-brand-icon" href = "#/" > < img ng-src = "{{ client.avatar }}" width = "40" height = "40" / > < / a >
< a class = "navbar-brand" href = "#/" > {{ config.cloudronName || 'Cloudron' }}< / a >
< / div >
<!-- /.navbar - header -->
< div class = "collapse navbar-collapse" >
< ul class = "nav navbar-nav navbar-right" ng-hide = "hideNavBarActions" >
2018-03-28 14:18:58 +02:00
< li ng-show = "ready && subscription.plan.id === 'free'" >
2018-01-22 13:01:38 -08:00
< a ng-href = "" ng-click = "showSubscriptionModal()" style = "cursor: pointer" >
2018-05-18 22:30:39 -07:00
< span class = "badge badge-success" > Setup Subscription< / span >
2018-01-22 13:01:38 -08:00
< / a >
< / li >
< li >
2018-11-15 17:42:29 +01:00
< a ng-class = "{ active: isActive('/apps')}" href = "#/apps" > < i class = "fa fa-cloud-download-alt fa-fw" > < / i > My Apps< / a >
2018-01-22 13:01:38 -08:00
< / li >
2018-08-28 21:35:17 -07:00
< li ng-show = "user.admin || config.features.spaces" >
2018-11-15 17:42:29 +01:00
< a ng-class = "{ active: isActive('/appstore')}" href = "#/appstore" > < i class = "fa fa-th fa-fw" > < / i > App Store< / a >
2018-01-22 13:01:38 -08:00
< / li >
2018-08-03 10:09:04 -07:00
< li ng-show = "user.admin" >
2018-01-22 13:01:38 -08:00
< a ng-class = "{ active: isActive('/users')}" href = "#/users" > < i class = "fa fa-users fa-fw" > < / i > Users< / a >
< / li >
< li class = "dropdown" >
2019-01-08 13:42:13 +01:00
< a href = "" class = "dropdown-toggle" data-toggle = "dropdown" role = "button" aria-expanded = "false" > < img ng-src = "{{user.gravatar}}" style = "margin-top: -4px;" / > {{user.username}} < span class = "badge badge-success" ng-show = "notifications.length" > {{ notifications.length }}< / span > < span class = "caret" > < / span > < / a >
2018-01-22 13:01:38 -08:00
< ul class = "dropdown-menu" role = "menu" >
2019-01-08 13:42:13 +01:00
< li > < a href = "#/account" > < i class = "fa fa-user fa-fw" > < / i > Account < span class = "badge badge-success pull-right" ng-show = "notifications.length" > {{ notifications.length }}< / span > < / a > < / li >
2019-01-08 12:42:03 +01:00
< li ng-show = "user.admin" > < a href = "#/activity" > < i class = "fa fa-list-alt fa-fw" > < / i > Eventlog< / a > < / li >
2018-08-27 15:26:52 -07:00
<!-- <li ng - show="user.admin"><a href="#/tokens"><i class="fa fa - key fa - fw"></i> API Access</a></li> -->
2018-08-03 10:09:04 -07:00
< li ng-show = "user.admin" > < a href = "#/backups" > < i class = "fa fa-archive fa-fw" > < / i > Backups< / a > < / li >
2018-10-25 13:23:42 -07:00
< li ng-show = "user.admin" > < a href = "#/domains" > < i class = "fa fa-globe fa-fw" > < / i > Domains & Certs< / a > < / li >
2018-08-03 10:09:04 -07:00
< li ng-show = "user.admin" > < a href = "#/email" > < i class = "fa fa-envelope fa-fw" > < / i > Email< / a > < / li >
2018-11-15 17:42:29 +01:00
< li ng-show = "user.admin" > < a href = "#/graphs" > < i class = "fa fa-chart-bar fa-fw" > < / i > Graphs< / a > < / li >
2018-08-03 10:09:04 -07:00
< li ng-show = "user.admin" > < a href = "#/settings" > < i class = "fa fa-wrench fa-fw" > < / i > Settings< / a > < / li >
2018-10-30 21:07:37 -07:00
< li ng-show = "user.admin" class = "divider" > < / li >
< li ng-show = "user.admin" > < a href = "#/support" > < i class = "fa fa-comment fa-fw" > < / i > Support< / a > < / li >
2018-11-30 21:11:05 -08:00
< li ng-show = "user.admin" > < a href = "#/system" > < i class = "fa fa-cogs fa-fw" > < / i > System< / a > < / li >
2018-01-22 13:01:38 -08:00
< li class = "divider" > < / li >
2018-11-15 17:42:29 +01:00
< li > < a href = "" ng-click = "logout($event)" > < i class = "fa fa-sign-out-alt fa-fw" > < / i > Logout< / a > < / li >
2018-01-22 13:01:38 -08:00
< / ul >
< / li >
< / ul >
< / div >
< / div >
< / nav >
< div ng-view id = "ng-view" class = "layout-content" > < / div >
< footer class = "text-center ng-cloak" >
2019-01-04 19:37:51 -08:00
< span class = "text-muted" > © 2019 < a href = "https://cloudron.io" target = "_blank" > Cloudron< / a > < / span >
2018-01-22 13:01:38 -08:00
< span class = "text-muted" > v{{config.version}}< / span >
2018-11-15 23:28:06 +01:00
< span class = "text-muted" > < a href = "https://twitter.com/cloudron_io" target = "_blank" > Twitter < i class = "fab 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 >
< / div >
< / body >
< / html >