245 lines
10 KiB
HTML
245 lines
10 KiB
HTML
<!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 Webadmin </title>
|
|
|
|
<!-- Bootstrap Core CSS -->
|
|
<link href="3rdparty/sb-admin-2/css/bootstrap.min.css" rel="stylesheet">
|
|
|
|
<!-- MetisMenu CSS -->
|
|
<link href="3rdparty/sb-admin-2/css/plugins/metisMenu/metisMenu.min.css" rel="stylesheet">
|
|
|
|
<!-- Timeline CSS -->
|
|
<link href="3rdparty/sb-admin-2/css/plugins/timeline.css" rel="stylesheet">
|
|
|
|
<!-- Custom CSS -->
|
|
<link href="3rdparty/sb-admin-2/css/sb-admin-2.css" rel="stylesheet">
|
|
|
|
<!-- Morris Charts CSS -->
|
|
<link href="3rdparty/sb-admin-2/css/plugins/morris.css" rel="stylesheet">
|
|
|
|
<!-- Custom Fonts -->
|
|
<link href="3rdparty/sb-admin-2/font-awesome-4.1.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
|
|
|
|
|
<link href="3rdparty/rickshaw/rickshaw.min.css" rel="stylesheet">
|
|
|
|
<style>
|
|
|
|
.animateMe {
|
|
opacity: 1;
|
|
-webkit-transition: 0.25s ease all;
|
|
transition: 0.25s ease all;
|
|
}
|
|
|
|
.animateMe.ng-hide-add,
|
|
.animateMe.ng-hide-remove {
|
|
display: block !important;
|
|
transform: scale(0.9, 0.9);
|
|
opacity: 0;
|
|
}
|
|
|
|
.animateMeOpacity {
|
|
opacity: 1;
|
|
-webkit-transition: 0.25s ease all;
|
|
transition: 0.25s ease all;
|
|
}
|
|
|
|
.animateMeOpacity.ng-hide-add,
|
|
.animateMeOpacity.ng-hide-remove {
|
|
display: block !important;
|
|
opacity: 0;
|
|
}
|
|
|
|
</style>
|
|
|
|
<!-- async -->
|
|
<script src="3rdparty/js/async.js"></script>
|
|
|
|
<!-- angularjs scripts -->
|
|
<script src="3rdparty/js/angular.js"></script>
|
|
<script src="3rdparty/js/angular-loader.min.js"></script>
|
|
<script src="3rdparty/js/angular-route.min.js"></script>
|
|
<script src="3rdparty/js/angular-animate.min.js"></script>
|
|
<script src="3rdparty/js/angular-base64.min.js"></script>
|
|
<script src="3rdparty/js/angular-md5.js"></script>
|
|
<script src="3rdparty/js/autofill-event.js"></script>
|
|
|
|
<!-- jQuery Version 1.11.0 -->
|
|
<script src="3rdparty/sb-admin-2/js/jquery-1.11.0.js"></script>
|
|
|
|
<script src="3rdparty/js/ansi_up.js"></script>
|
|
|
|
<!-- Bootstrap Core JavaScript -->
|
|
<script src="3rdparty/sb-admin-2/js/bootstrap.min.js"></script>
|
|
|
|
<!-- Metis Menu Plugin JavaScript -->
|
|
<script src="3rdparty/sb-admin-2/js/plugins/metisMenu/metisMenu.min.js"></script>
|
|
|
|
<!-- Custom Theme JavaScript -->
|
|
<script src="3rdparty/sb-admin-2/js/sb-admin-2.js"></script>
|
|
|
|
<!-- yellowtent -->
|
|
<script src="/api/v1/oauth/yellowtent.js"></script>
|
|
|
|
<!-- yellowtent -->
|
|
<script src="/api/v1/oauth/yellowtent.js"></script>
|
|
|
|
<!-- application routes -->
|
|
<script src="js/index.js"></script>
|
|
|
|
<!-- Rickshaw -->
|
|
<script src="3rdparty/rickshaw/d3.js"></script>
|
|
<script src="3rdparty/rickshaw/rickshaw.js"></script>
|
|
|
|
<!-- services and factories -->
|
|
<script src="js/client.js"></script>
|
|
<script src="js/appstore.js"></script>
|
|
|
|
<!-- views -->
|
|
<script src="js/main.js"></script>
|
|
<script src="views/dashboard.js"></script>
|
|
<script src="views/userlist.js"></script>
|
|
<script src="views/usercreate.js"></script>
|
|
<script src="views/userpassword.js"></script>
|
|
<script src="views/appstore.js"></script>
|
|
<script src="views/appdetails.js"></script>
|
|
<script src="views/appinstall.js"></script>
|
|
<script src="views/appconfigure.js"></script>
|
|
<script src="views/security.js"></script>
|
|
<script src="views/settings.js"></script>
|
|
<script src="views/graphs.js"></script>
|
|
|
|
</head>
|
|
|
|
<body ng-app="Application" ng-controller="MainController">
|
|
|
|
<!-- Modal update progress -->
|
|
<div class="modal fade" id="updateProgressModal" tabindex="-1" role="dialog" aria-labelledby="updateProgressModalLabel" aria-hidden="true" data-keyboard="false" data-backdrop="static">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h4 class="modal-title" id="updateProgressModalLabel">Update in progress...</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="progress progress-striped active">
|
|
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- /.modal-content -->
|
|
</div>
|
|
<!-- /.modal-dialog -->
|
|
</div>
|
|
|
|
<!-- Modal backup progress -->
|
|
<div class="modal fade" id="backupProgressModal" tabindex="-1" role="dialog" aria-labelledby="backupProgressModalLabel" aria-hidden="true" data-keyboard="false" data-backdrop="static">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h4 class="modal-title" id="backupProgressModalLabel">Backup in progress...</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="progress progress-striped active">
|
|
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- /.modal-content -->
|
|
</div>
|
|
<!-- /.modal-dialog -->
|
|
</div>
|
|
|
|
<!-- Modal reboot progress -->
|
|
<div class="modal fade" id="rebootProgressModal" tabindex="-1" role="dialog" aria-labelledby="rebootProgressModalLabel" aria-hidden="true" data-keyboard="false" data-backdrop="static">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h4 class="modal-title" id="rebootProgressModalLabel">Reboot in progress...</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="progress progress-striped active">
|
|
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- /.modal-content -->
|
|
</div>
|
|
<!-- /.modal-dialog -->
|
|
</div>
|
|
|
|
<div id="wrapper" class="animateMe ng-hide" ng-show="initialized">
|
|
|
|
<!-- Navigation -->
|
|
<nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
|
|
<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" href="index.html">Cloudron Webadmin</a>
|
|
</div>
|
|
<!-- /.navbar-header -->
|
|
|
|
<ul class="nav navbar-top-links navbar-right">
|
|
<li><a href="" ng-click="logout($event)"><i class="fa fa-sign-out fa-fw"></i> Sign out</a></li>
|
|
<li class="navbar-text"><img ng-src="{{userInfo.gravatar}}"/> {{userInfo.username}}</li>
|
|
</ul>
|
|
<!-- /.navbar-top-links -->
|
|
|
|
<div class="navbar-default sidebar" role="navigation">
|
|
<div class="sidebar-nav navbar-collapse">
|
|
<ul class="nav" id="side-menu">
|
|
<li>
|
|
<a href=""><i class="fa fa-cloud-download fa-fw"></i> My Apps ({{installedApps.length}}) <span class="fa arrow"></span></a>
|
|
<ul class="nav nav-second-level">
|
|
<li ng-show="!installedApps.length">
|
|
<a><em>No Apps installed</em></a>
|
|
</li>
|
|
<li ng-repeat="app in installedApps">
|
|
<a href="#/app/{{ app.id }}/details">
|
|
{{ app.location || "App" }}<span class="pull-right text-muted"><em>{{ app.installationState | installationStateLabel }}</em></span>
|
|
<div ng-show="app.installationState | installationActive" class="animateMe ng-hide">
|
|
<div class="progress progress-striped active">
|
|
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%"></div>
|
|
</div>
|
|
</div>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<a ng-class="{ active: isActive('/appstore')}" href="#/appstore"><i class="fa fa-cloud fa-fw"></i> App Store</a>
|
|
</li>
|
|
<li>
|
|
<a ng-class="{ active: isActive('/userlist')}" href="#/userlist"><i class="fa fa-users fa-fw"></i> Users</a>
|
|
</li>
|
|
<li>
|
|
<a ng-class="{ active: isActive('/graphs')}" href="#/graphs"><i class="fa fa-bar-chart-o fa-fw"></i> Graphs</a>
|
|
</li>
|
|
<li>
|
|
<a ng-class="{ active: isActive('/security')}" href="#/security"><i class="fa fa-unlock-alt fa-fw"></i> Security</a>
|
|
</li>
|
|
<li>
|
|
<a ng-class="{ active: isActive('/settings')}" href="#/settings"><i class="fa fa-wrench fa-fw"></i> Settings</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<!-- /.sidebar-collapse -->
|
|
</div>
|
|
<!-- /.navbar-static-side -->
|
|
</nav>
|
|
|
|
<div id="page-wrapper">
|
|
<div ng-view id="ng-view"></div>
|
|
</div>
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|