table skeleton

This commit is contained in:
Frédéric Vachon 2015-01-19 18:10:50 -05:00
parent 906ee1b216
commit ef64445d9c
28 changed files with 1728 additions and 0 deletions

View File

@ -0,0 +1,146 @@
.nav-side-menu {
overflow: auto;
font-family: verdana;
font-size: 12px;
font-weight: 200;
background-color: #2e353d;
position: fixed;
top: 0px;
width: 300px;
height: 100%;
color: #e1ffff;
}
.nav-side-menu .brand {
background-color: #23282e;
line-height: 50px;
display: block;
text-align: center;
font-size: 14px;
}
.nav-side-menu .toggle-btn {
display: none;
}
.nav-side-menu ul,
.nav-side-menu li {
list-style: none;
padding: 0px;
margin: 0px;
line-height: 35px;
cursor: pointer;
/*
.collapsed{
.arrow:before{
font-family: FontAwesome;
content: "\f053";
display: inline-block;
padding-left:10px;
padding-right: 10px;
vertical-align: middle;
float:right;
}
}
*/
}
.nav-side-menu ul :not(collapsed) .arrow:before,
.nav-side-menu li :not(collapsed) .arrow:before {
font-family: FontAwesome;
content: "\f078";
display: inline-block;
padding-left: 10px;
padding-right: 10px;
vertical-align: middle;
float: right;
}
.nav-side-menu ul .active,
.nav-side-menu li .active {
border-left: 3px solid #d19b3d;
background-color: #4f5b69;
}
.nav-side-menu ul .sub-menu li.active,
.nav-side-menu li .sub-menu li.active {
color: #d19b3d;
}
.nav-side-menu ul .sub-menu li.active a,
.nav-side-menu li .sub-menu li.active a {
color: #d19b3d;
}
.nav-side-menu ul .sub-menu li,
.nav-side-menu li .sub-menu li {
background-color: #181c20;
border: none;
line-height: 28px;
border-bottom: 1px solid #23282e;
margin-left: 0px;
}
.nav-side-menu ul .sub-menu li:hover,
.nav-side-menu li .sub-menu li:hover {
background-color: #020203;
}
.nav-side-menu ul .sub-menu li:before,
.nav-side-menu li .sub-menu li:before {
font-family: FontAwesome;
content: "\f105";
display: inline-block;
padding-left: 10px;
padding-right: 10px;
vertical-align: middle;
}
.nav-side-menu li {
padding-left: 0px;
border-left: 3px solid #2e353d;
border-bottom: 1px solid #23282e;
}
.nav-side-menu li a {
text-decoration: none;
color: #e1ffff;
}
.nav-side-menu li a i {
padding-left: 10px;
width: 20px;
padding-right: 20px;
}
.nav-side-menu li:hover {
border-left: 3px solid #d19b3d;
background-color: #4f5b69;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
-ms-transition: all 1s ease;
transition: all 1s ease;
}
@media (max-width: 767px) {
.nav-side-menu {
position: relative;
width: 100%;
margin-bottom: 10px;
}
.nav-side-menu .toggle-btn {
display: block;
cursor: pointer;
position: absolute;
right: 10px;
top: 10px;
z-index: 10 !important;
padding: 3px;
background-color: #ffffff;
color: #000;
width: 40px;
text-align: center;
}
.brand {
text-align: left !important;
font-size: 22px;
padding-left: 20px;
line-height: 50px !important;
}
}
@media (min-width: 767px) {
.nav-side-menu .menu-list .menu-content {
display: block;
}
}
body {
margin: 0px;
padding: 0px;
}

View File

@ -0,0 +1,59 @@
<div nv-app="adagios.sidebar" class="nav-side-menu" ng-controller="SideBarCtrl">
<div class="brand">ADAGIOS</div>
<i class="fa fa-bars fa-2x toggle-btn" data-toggle="collapse" data-target="#menu-content"></i>
<div class="menu-list">
<ul id="menu-content" class="menu-content out">
<li data-toggle="collapse" data-target="#shortcut" class="collapsed menu-title">
<a href="#"> Shortcut <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="shortcut">
<li><a href="#/tactical">Dashboard</a></li>
<li><a href="#/hosts">Hosts</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Networks parents</a></li>
</ul>
<li data-toggle="collapse" data-target="#reports" class="collapsed menu-title">
<a href="#"> Reports <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="reports">
<li><a href="#">State History</a></li>
<li><a href="#">Log</a></li>
<li><a href="#">Comments</a></li>
<li><a href="#">Downtimes</a></li>
</ul>
<li data-toggle="collapse" data-target="#groups" class="collapsed menu-title">
<a href="#"> Groups <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="groups">
<li><a href="#">Hostgroups</a></li>
<li><a href="#">Servicegroups</a></li>
<li><a href="#">Contactgroups</a></li>
</ul>
<li data-toggle="collapse" data-target="#other" class="collapsed menu-title">
<a href="#"> Other <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="other">
<li><a href="#">Grafana</a></li>
<li><a href="#">Nagvis</a></li>
</ul>
<li>
<a href="#">
<i class="fa fa-user fa-lg"></i> Profile
</a>
</li>
</ul>
</div>
</div>

View File

@ -0,0 +1,14 @@
'use strict';
angular.module('adagios.table.entry.column_duration', [])
.controller('SideBarCtrl', ['$scope', '$http', function ($scope, $http) {
return;
}])
.directive('sidebar', function () {
return {
restrict: 'E',
templateUrl: "sidebar/sidebar.html"
};
});

View File

@ -0,0 +1,41 @@
'use strict';
describe('Sidebar module', function () {
var $compile,
$rootScope,
$controller,
$httpBackend;
beforeEach(module('adagios.sidebar'));
beforeEach(inject(function (_$compile_, _$rootScope_, _$controller_, _$httpBackend_) {
$compile = _$compile_;
$rootScope = _$rootScope_;
$controller = _$controller_;
$httpBackend = _$httpBackend_;
$httpBackend.expectGET('sidebar/sidebar.html').respond('<li></li>');
}));
describe('SideBarCtrl', function () {
it('should be defined', function () {
var scope = $rootScope.$new(),
ctrl = $controller('SideBarCtrl', { $scope : scope });
expect(ctrl).toBeDefined();
});
});
describe('Sidebar directive', function () {
it('should send a GET request', function () {
var element = $compile('<sidebar></sidebar>')($rootScope);
$httpBackend.flush();
expect(element.html()).toBe('<li></li>');
});
});
});

View File

@ -0,0 +1,146 @@
.nav-side-menu {
overflow: auto;
font-family: verdana;
font-size: 12px;
font-weight: 200;
background-color: #2e353d;
position: fixed;
top: 0px;
width: 300px;
height: 100%;
color: #e1ffff;
}
.nav-side-menu .brand {
background-color: #23282e;
line-height: 50px;
display: block;
text-align: center;
font-size: 14px;
}
.nav-side-menu .toggle-btn {
display: none;
}
.nav-side-menu ul,
.nav-side-menu li {
list-style: none;
padding: 0px;
margin: 0px;
line-height: 35px;
cursor: pointer;
/*
.collapsed{
.arrow:before{
font-family: FontAwesome;
content: "\f053";
display: inline-block;
padding-left:10px;
padding-right: 10px;
vertical-align: middle;
float:right;
}
}
*/
}
.nav-side-menu ul :not(collapsed) .arrow:before,
.nav-side-menu li :not(collapsed) .arrow:before {
font-family: FontAwesome;
content: "\f078";
display: inline-block;
padding-left: 10px;
padding-right: 10px;
vertical-align: middle;
float: right;
}
.nav-side-menu ul .active,
.nav-side-menu li .active {
border-left: 3px solid #d19b3d;
background-color: #4f5b69;
}
.nav-side-menu ul .sub-menu li.active,
.nav-side-menu li .sub-menu li.active {
color: #d19b3d;
}
.nav-side-menu ul .sub-menu li.active a,
.nav-side-menu li .sub-menu li.active a {
color: #d19b3d;
}
.nav-side-menu ul .sub-menu li,
.nav-side-menu li .sub-menu li {
background-color: #181c20;
border: none;
line-height: 28px;
border-bottom: 1px solid #23282e;
margin-left: 0px;
}
.nav-side-menu ul .sub-menu li:hover,
.nav-side-menu li .sub-menu li:hover {
background-color: #020203;
}
.nav-side-menu ul .sub-menu li:before,
.nav-side-menu li .sub-menu li:before {
font-family: FontAwesome;
content: "\f105";
display: inline-block;
padding-left: 10px;
padding-right: 10px;
vertical-align: middle;
}
.nav-side-menu li {
padding-left: 0px;
border-left: 3px solid #2e353d;
border-bottom: 1px solid #23282e;
}
.nav-side-menu li a {
text-decoration: none;
color: #e1ffff;
}
.nav-side-menu li a i {
padding-left: 10px;
width: 20px;
padding-right: 20px;
}
.nav-side-menu li:hover {
border-left: 3px solid #d19b3d;
background-color: #4f5b69;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
-ms-transition: all 1s ease;
transition: all 1s ease;
}
@media (max-width: 767px) {
.nav-side-menu {
position: relative;
width: 100%;
margin-bottom: 10px;
}
.nav-side-menu .toggle-btn {
display: block;
cursor: pointer;
position: absolute;
right: 10px;
top: 10px;
z-index: 10 !important;
padding: 3px;
background-color: #ffffff;
color: #000;
width: 40px;
text-align: center;
}
.brand {
text-align: left !important;
font-size: 22px;
padding-left: 20px;
line-height: 50px !important;
}
}
@media (min-width: 767px) {
.nav-side-menu .menu-list .menu-content {
display: block;
}
}
body {
margin: 0px;
padding: 0px;
}

View File

@ -0,0 +1,59 @@
<div nv-app="adagios.sidebar" class="nav-side-menu" ng-controller="SideBarCtrl">
<div class="brand">ADAGIOS</div>
<i class="fa fa-bars fa-2x toggle-btn" data-toggle="collapse" data-target="#menu-content"></i>
<div class="menu-list">
<ul id="menu-content" class="menu-content out">
<li data-toggle="collapse" data-target="#shortcut" class="collapsed menu-title">
<a href="#"> Shortcut <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="shortcut">
<li><a href="#/tactical">Dashboard</a></li>
<li><a href="#/hosts">Hosts</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Networks parents</a></li>
</ul>
<li data-toggle="collapse" data-target="#reports" class="collapsed menu-title">
<a href="#"> Reports <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="reports">
<li><a href="#">State History</a></li>
<li><a href="#">Log</a></li>
<li><a href="#">Comments</a></li>
<li><a href="#">Downtimes</a></li>
</ul>
<li data-toggle="collapse" data-target="#groups" class="collapsed menu-title">
<a href="#"> Groups <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="groups">
<li><a href="#">Hostgroups</a></li>
<li><a href="#">Servicegroups</a></li>
<li><a href="#">Contactgroups</a></li>
</ul>
<li data-toggle="collapse" data-target="#other" class="collapsed menu-title">
<a href="#"> Other <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="other">
<li><a href="#">Grafana</a></li>
<li><a href="#">Nagvis</a></li>
</ul>
<li>
<a href="#">
<i class="fa fa-user fa-lg"></i> Profile
</a>
</li>
</ul>
</div>
</div>

View File

@ -0,0 +1,14 @@
'use strict';
angular.module('adagios.table.entry.column_host', [])
.controller('SideBarCtrl', ['$scope', '$http', function ($scope, $http) {
return;
}])
.directive('sidebar', function () {
return {
restrict: 'E',
templateUrl: "sidebar/sidebar.html"
};
});

View File

@ -0,0 +1,41 @@
'use strict';
describe('Sidebar module', function () {
var $compile,
$rootScope,
$controller,
$httpBackend;
beforeEach(module('adagios.sidebar'));
beforeEach(inject(function (_$compile_, _$rootScope_, _$controller_, _$httpBackend_) {
$compile = _$compile_;
$rootScope = _$rootScope_;
$controller = _$controller_;
$httpBackend = _$httpBackend_;
$httpBackend.expectGET('sidebar/sidebar.html').respond('<li></li>');
}));
describe('SideBarCtrl', function () {
it('should be defined', function () {
var scope = $rootScope.$new(),
ctrl = $controller('SideBarCtrl', { $scope : scope });
expect(ctrl).toBeDefined();
});
});
describe('Sidebar directive', function () {
it('should send a GET request', function () {
var element = $compile('<sidebar></sidebar>')($rootScope);
$httpBackend.flush();
expect(element.html()).toBe('<li></li>');
});
});
});

View File

@ -0,0 +1,146 @@
.nav-side-menu {
overflow: auto;
font-family: verdana;
font-size: 12px;
font-weight: 200;
background-color: #2e353d;
position: fixed;
top: 0px;
width: 300px;
height: 100%;
color: #e1ffff;
}
.nav-side-menu .brand {
background-color: #23282e;
line-height: 50px;
display: block;
text-align: center;
font-size: 14px;
}
.nav-side-menu .toggle-btn {
display: none;
}
.nav-side-menu ul,
.nav-side-menu li {
list-style: none;
padding: 0px;
margin: 0px;
line-height: 35px;
cursor: pointer;
/*
.collapsed{
.arrow:before{
font-family: FontAwesome;
content: "\f053";
display: inline-block;
padding-left:10px;
padding-right: 10px;
vertical-align: middle;
float:right;
}
}
*/
}
.nav-side-menu ul :not(collapsed) .arrow:before,
.nav-side-menu li :not(collapsed) .arrow:before {
font-family: FontAwesome;
content: "\f078";
display: inline-block;
padding-left: 10px;
padding-right: 10px;
vertical-align: middle;
float: right;
}
.nav-side-menu ul .active,
.nav-side-menu li .active {
border-left: 3px solid #d19b3d;
background-color: #4f5b69;
}
.nav-side-menu ul .sub-menu li.active,
.nav-side-menu li .sub-menu li.active {
color: #d19b3d;
}
.nav-side-menu ul .sub-menu li.active a,
.nav-side-menu li .sub-menu li.active a {
color: #d19b3d;
}
.nav-side-menu ul .sub-menu li,
.nav-side-menu li .sub-menu li {
background-color: #181c20;
border: none;
line-height: 28px;
border-bottom: 1px solid #23282e;
margin-left: 0px;
}
.nav-side-menu ul .sub-menu li:hover,
.nav-side-menu li .sub-menu li:hover {
background-color: #020203;
}
.nav-side-menu ul .sub-menu li:before,
.nav-side-menu li .sub-menu li:before {
font-family: FontAwesome;
content: "\f105";
display: inline-block;
padding-left: 10px;
padding-right: 10px;
vertical-align: middle;
}
.nav-side-menu li {
padding-left: 0px;
border-left: 3px solid #2e353d;
border-bottom: 1px solid #23282e;
}
.nav-side-menu li a {
text-decoration: none;
color: #e1ffff;
}
.nav-side-menu li a i {
padding-left: 10px;
width: 20px;
padding-right: 20px;
}
.nav-side-menu li:hover {
border-left: 3px solid #d19b3d;
background-color: #4f5b69;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
-ms-transition: all 1s ease;
transition: all 1s ease;
}
@media (max-width: 767px) {
.nav-side-menu {
position: relative;
width: 100%;
margin-bottom: 10px;
}
.nav-side-menu .toggle-btn {
display: block;
cursor: pointer;
position: absolute;
right: 10px;
top: 10px;
z-index: 10 !important;
padding: 3px;
background-color: #ffffff;
color: #000;
width: 40px;
text-align: center;
}
.brand {
text-align: left !important;
font-size: 22px;
padding-left: 20px;
line-height: 50px !important;
}
}
@media (min-width: 767px) {
.nav-side-menu .menu-list .menu-content {
display: block;
}
}
body {
margin: 0px;
padding: 0px;
}

View File

@ -0,0 +1,59 @@
<div nv-app="adagios.sidebar" class="nav-side-menu" ng-controller="SideBarCtrl">
<div class="brand">ADAGIOS</div>
<i class="fa fa-bars fa-2x toggle-btn" data-toggle="collapse" data-target="#menu-content"></i>
<div class="menu-list">
<ul id="menu-content" class="menu-content out">
<li data-toggle="collapse" data-target="#shortcut" class="collapsed menu-title">
<a href="#"> Shortcut <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="shortcut">
<li><a href="#/tactical">Dashboard</a></li>
<li><a href="#/hosts">Hosts</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Networks parents</a></li>
</ul>
<li data-toggle="collapse" data-target="#reports" class="collapsed menu-title">
<a href="#"> Reports <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="reports">
<li><a href="#">State History</a></li>
<li><a href="#">Log</a></li>
<li><a href="#">Comments</a></li>
<li><a href="#">Downtimes</a></li>
</ul>
<li data-toggle="collapse" data-target="#groups" class="collapsed menu-title">
<a href="#"> Groups <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="groups">
<li><a href="#">Hostgroups</a></li>
<li><a href="#">Servicegroups</a></li>
<li><a href="#">Contactgroups</a></li>
</ul>
<li data-toggle="collapse" data-target="#other" class="collapsed menu-title">
<a href="#"> Other <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="other">
<li><a href="#">Grafana</a></li>
<li><a href="#">Nagvis</a></li>
</ul>
<li>
<a href="#">
<i class="fa fa-user fa-lg"></i> Profile
</a>
</li>
</ul>
</div>
</div>

View File

@ -0,0 +1,14 @@
'use strict';
angular.module('adagios.table.entry.column_last_check', [])
.controller('SideBarCtrl', ['$scope', '$http', function ($scope, $http) {
return;
}])
.directive('sidebar', function () {
return {
restrict: 'E',
templateUrl: "sidebar/sidebar.html"
};
});

View File

@ -0,0 +1,41 @@
'use strict';
describe('Sidebar module', function () {
var $compile,
$rootScope,
$controller,
$httpBackend;
beforeEach(module('adagios.sidebar'));
beforeEach(inject(function (_$compile_, _$rootScope_, _$controller_, _$httpBackend_) {
$compile = _$compile_;
$rootScope = _$rootScope_;
$controller = _$controller_;
$httpBackend = _$httpBackend_;
$httpBackend.expectGET('sidebar/sidebar.html').respond('<li></li>');
}));
describe('SideBarCtrl', function () {
it('should be defined', function () {
var scope = $rootScope.$new(),
ctrl = $controller('SideBarCtrl', { $scope : scope });
expect(ctrl).toBeDefined();
});
});
describe('Sidebar directive', function () {
it('should send a GET request', function () {
var element = $compile('<sidebar></sidebar>')($rootScope);
$httpBackend.flush();
expect(element.html()).toBe('<li></li>');
});
});
});

View File

@ -0,0 +1,146 @@
.nav-side-menu {
overflow: auto;
font-family: verdana;
font-size: 12px;
font-weight: 200;
background-color: #2e353d;
position: fixed;
top: 0px;
width: 300px;
height: 100%;
color: #e1ffff;
}
.nav-side-menu .brand {
background-color: #23282e;
line-height: 50px;
display: block;
text-align: center;
font-size: 14px;
}
.nav-side-menu .toggle-btn {
display: none;
}
.nav-side-menu ul,
.nav-side-menu li {
list-style: none;
padding: 0px;
margin: 0px;
line-height: 35px;
cursor: pointer;
/*
.collapsed{
.arrow:before{
font-family: FontAwesome;
content: "\f053";
display: inline-block;
padding-left:10px;
padding-right: 10px;
vertical-align: middle;
float:right;
}
}
*/
}
.nav-side-menu ul :not(collapsed) .arrow:before,
.nav-side-menu li :not(collapsed) .arrow:before {
font-family: FontAwesome;
content: "\f078";
display: inline-block;
padding-left: 10px;
padding-right: 10px;
vertical-align: middle;
float: right;
}
.nav-side-menu ul .active,
.nav-side-menu li .active {
border-left: 3px solid #d19b3d;
background-color: #4f5b69;
}
.nav-side-menu ul .sub-menu li.active,
.nav-side-menu li .sub-menu li.active {
color: #d19b3d;
}
.nav-side-menu ul .sub-menu li.active a,
.nav-side-menu li .sub-menu li.active a {
color: #d19b3d;
}
.nav-side-menu ul .sub-menu li,
.nav-side-menu li .sub-menu li {
background-color: #181c20;
border: none;
line-height: 28px;
border-bottom: 1px solid #23282e;
margin-left: 0px;
}
.nav-side-menu ul .sub-menu li:hover,
.nav-side-menu li .sub-menu li:hover {
background-color: #020203;
}
.nav-side-menu ul .sub-menu li:before,
.nav-side-menu li .sub-menu li:before {
font-family: FontAwesome;
content: "\f105";
display: inline-block;
padding-left: 10px;
padding-right: 10px;
vertical-align: middle;
}
.nav-side-menu li {
padding-left: 0px;
border-left: 3px solid #2e353d;
border-bottom: 1px solid #23282e;
}
.nav-side-menu li a {
text-decoration: none;
color: #e1ffff;
}
.nav-side-menu li a i {
padding-left: 10px;
width: 20px;
padding-right: 20px;
}
.nav-side-menu li:hover {
border-left: 3px solid #d19b3d;
background-color: #4f5b69;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
-ms-transition: all 1s ease;
transition: all 1s ease;
}
@media (max-width: 767px) {
.nav-side-menu {
position: relative;
width: 100%;
margin-bottom: 10px;
}
.nav-side-menu .toggle-btn {
display: block;
cursor: pointer;
position: absolute;
right: 10px;
top: 10px;
z-index: 10 !important;
padding: 3px;
background-color: #ffffff;
color: #000;
width: 40px;
text-align: center;
}
.brand {
text-align: left !important;
font-size: 22px;
padding-left: 20px;
line-height: 50px !important;
}
}
@media (min-width: 767px) {
.nav-side-menu .menu-list .menu-content {
display: block;
}
}
body {
margin: 0px;
padding: 0px;
}

View File

@ -0,0 +1,59 @@
<div nv-app="adagios.sidebar" class="nav-side-menu" ng-controller="SideBarCtrl">
<div class="brand">ADAGIOS</div>
<i class="fa fa-bars fa-2x toggle-btn" data-toggle="collapse" data-target="#menu-content"></i>
<div class="menu-list">
<ul id="menu-content" class="menu-content out">
<li data-toggle="collapse" data-target="#shortcut" class="collapsed menu-title">
<a href="#"> Shortcut <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="shortcut">
<li><a href="#/tactical">Dashboard</a></li>
<li><a href="#/hosts">Hosts</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Networks parents</a></li>
</ul>
<li data-toggle="collapse" data-target="#reports" class="collapsed menu-title">
<a href="#"> Reports <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="reports">
<li><a href="#">State History</a></li>
<li><a href="#">Log</a></li>
<li><a href="#">Comments</a></li>
<li><a href="#">Downtimes</a></li>
</ul>
<li data-toggle="collapse" data-target="#groups" class="collapsed menu-title">
<a href="#"> Groups <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="groups">
<li><a href="#">Hostgroups</a></li>
<li><a href="#">Servicegroups</a></li>
<li><a href="#">Contactgroups</a></li>
</ul>
<li data-toggle="collapse" data-target="#other" class="collapsed menu-title">
<a href="#"> Other <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="other">
<li><a href="#">Grafana</a></li>
<li><a href="#">Nagvis</a></li>
</ul>
<li>
<a href="#">
<i class="fa fa-user fa-lg"></i> Profile
</a>
</li>
</ul>
</div>
</div>

View File

@ -0,0 +1,14 @@
'use strict';
angular.module('adagios.table.entry.column_service_check', [])
.controller('SideBarCtrl', ['$scope', '$http', function ($scope, $http) {
return;
}])
.directive('column', function (col_type) {
return {
restrict: 'E',
templateUrl: "column/" + col_type + ".html"
};
});

View File

@ -0,0 +1,41 @@
'use strict';
describe('Sidebar module', function () {
var $compile,
$rootScope,
$controller,
$httpBackend;
beforeEach(module('adagios.sidebar'));
beforeEach(inject(function (_$compile_, _$rootScope_, _$controller_, _$httpBackend_) {
$compile = _$compile_;
$rootScope = _$rootScope_;
$controller = _$controller_;
$httpBackend = _$httpBackend_;
$httpBackend.expectGET('sidebar/sidebar.html').respond('<li></li>');
}));
describe('SideBarCtrl', function () {
it('should be defined', function () {
var scope = $rootScope.$new(),
ctrl = $controller('SideBarCtrl', { $scope : scope });
expect(ctrl).toBeDefined();
});
});
describe('Sidebar directive', function () {
it('should send a GET request', function () {
var element = $compile('<sidebar></sidebar>')($rootScope);
$httpBackend.flush();
expect(element.html()).toBe('<li></li>');
});
});
});

146
app/table/entry/entry.css Normal file
View File

@ -0,0 +1,146 @@
.nav-side-menu {
overflow: auto;
font-family: verdana;
font-size: 12px;
font-weight: 200;
background-color: #2e353d;
position: fixed;
top: 0px;
width: 300px;
height: 100%;
color: #e1ffff;
}
.nav-side-menu .brand {
background-color: #23282e;
line-height: 50px;
display: block;
text-align: center;
font-size: 14px;
}
.nav-side-menu .toggle-btn {
display: none;
}
.nav-side-menu ul,
.nav-side-menu li {
list-style: none;
padding: 0px;
margin: 0px;
line-height: 35px;
cursor: pointer;
/*
.collapsed{
.arrow:before{
font-family: FontAwesome;
content: "\f053";
display: inline-block;
padding-left:10px;
padding-right: 10px;
vertical-align: middle;
float:right;
}
}
*/
}
.nav-side-menu ul :not(collapsed) .arrow:before,
.nav-side-menu li :not(collapsed) .arrow:before {
font-family: FontAwesome;
content: "\f078";
display: inline-block;
padding-left: 10px;
padding-right: 10px;
vertical-align: middle;
float: right;
}
.nav-side-menu ul .active,
.nav-side-menu li .active {
border-left: 3px solid #d19b3d;
background-color: #4f5b69;
}
.nav-side-menu ul .sub-menu li.active,
.nav-side-menu li .sub-menu li.active {
color: #d19b3d;
}
.nav-side-menu ul .sub-menu li.active a,
.nav-side-menu li .sub-menu li.active a {
color: #d19b3d;
}
.nav-side-menu ul .sub-menu li,
.nav-side-menu li .sub-menu li {
background-color: #181c20;
border: none;
line-height: 28px;
border-bottom: 1px solid #23282e;
margin-left: 0px;
}
.nav-side-menu ul .sub-menu li:hover,
.nav-side-menu li .sub-menu li:hover {
background-color: #020203;
}
.nav-side-menu ul .sub-menu li:before,
.nav-side-menu li .sub-menu li:before {
font-family: FontAwesome;
content: "\f105";
display: inline-block;
padding-left: 10px;
padding-right: 10px;
vertical-align: middle;
}
.nav-side-menu li {
padding-left: 0px;
border-left: 3px solid #2e353d;
border-bottom: 1px solid #23282e;
}
.nav-side-menu li a {
text-decoration: none;
color: #e1ffff;
}
.nav-side-menu li a i {
padding-left: 10px;
width: 20px;
padding-right: 20px;
}
.nav-side-menu li:hover {
border-left: 3px solid #d19b3d;
background-color: #4f5b69;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
-ms-transition: all 1s ease;
transition: all 1s ease;
}
@media (max-width: 767px) {
.nav-side-menu {
position: relative;
width: 100%;
margin-bottom: 10px;
}
.nav-side-menu .toggle-btn {
display: block;
cursor: pointer;
position: absolute;
right: 10px;
top: 10px;
z-index: 10 !important;
padding: 3px;
background-color: #ffffff;
color: #000;
width: 40px;
text-align: center;
}
.brand {
text-align: left !important;
font-size: 22px;
padding-left: 20px;
line-height: 50px !important;
}
}
@media (min-width: 767px) {
.nav-side-menu .menu-list .menu-content {
display: block;
}
}
body {
margin: 0px;
padding: 0px;
}

View File

@ -0,0 +1,4 @@
<td> {{entry.host_name}} </td>
<td> {{entry.description}} </td>
<td> {{entry.last_check}} </td>
<td> {{entry.last_hard_state_change}} </td>

18
app/table/entry/entry.js Normal file
View File

@ -0,0 +1,18 @@
'use strict';
angular.module('adagios.table.entry', ['adagios.table.entry.column_duration',
'adagios.table.entry.column_host',
'adagios.table.entry.column_last_check',
'adagios.table.entry.column_service_check'
])
.controller('EntryCtrl', ['$scope', '$http', function ($scope, $http) {
noop;
}])
.directive('entry', function () {
return {
restrict: 'E',
templateUrl: "table/entry/entry.html"
};
});

View File

@ -0,0 +1,41 @@
'use strict';
describe('Sidebar module', function () {
var $compile,
$rootScope,
$controller,
$httpBackend;
beforeEach(module('adagios.sidebar'));
beforeEach(inject(function (_$compile_, _$rootScope_, _$controller_, _$httpBackend_) {
$compile = _$compile_;
$rootScope = _$rootScope_;
$controller = _$controller_;
$httpBackend = _$httpBackend_;
$httpBackend.expectGET('sidebar/sidebar.html').respond('<li></li>');
}));
describe('SideBarCtrl', function () {
it('should be defined', function () {
var scope = $rootScope.$new(),
ctrl = $controller('SideBarCtrl', { $scope : scope });
expect(ctrl).toBeDefined();
});
});
describe('Sidebar directive', function () {
it('should send a GET request', function () {
var element = $compile('<sidebar></sidebar>')($rootScope);
$httpBackend.flush();
expect(element.html()).toBe('<li></li>');
});
});
});

146
app/table/entry/table.css Normal file
View File

@ -0,0 +1,146 @@
.nav-side-menu {
overflow: auto;
font-family: verdana;
font-size: 12px;
font-weight: 200;
background-color: #2e353d;
position: fixed;
top: 0px;
width: 300px;
height: 100%;
color: #e1ffff;
}
.nav-side-menu .brand {
background-color: #23282e;
line-height: 50px;
display: block;
text-align: center;
font-size: 14px;
}
.nav-side-menu .toggle-btn {
display: none;
}
.nav-side-menu ul,
.nav-side-menu li {
list-style: none;
padding: 0px;
margin: 0px;
line-height: 35px;
cursor: pointer;
/*
.collapsed{
.arrow:before{
font-family: FontAwesome;
content: "\f053";
display: inline-block;
padding-left:10px;
padding-right: 10px;
vertical-align: middle;
float:right;
}
}
*/
}
.nav-side-menu ul :not(collapsed) .arrow:before,
.nav-side-menu li :not(collapsed) .arrow:before {
font-family: FontAwesome;
content: "\f078";
display: inline-block;
padding-left: 10px;
padding-right: 10px;
vertical-align: middle;
float: right;
}
.nav-side-menu ul .active,
.nav-side-menu li .active {
border-left: 3px solid #d19b3d;
background-color: #4f5b69;
}
.nav-side-menu ul .sub-menu li.active,
.nav-side-menu li .sub-menu li.active {
color: #d19b3d;
}
.nav-side-menu ul .sub-menu li.active a,
.nav-side-menu li .sub-menu li.active a {
color: #d19b3d;
}
.nav-side-menu ul .sub-menu li,
.nav-side-menu li .sub-menu li {
background-color: #181c20;
border: none;
line-height: 28px;
border-bottom: 1px solid #23282e;
margin-left: 0px;
}
.nav-side-menu ul .sub-menu li:hover,
.nav-side-menu li .sub-menu li:hover {
background-color: #020203;
}
.nav-side-menu ul .sub-menu li:before,
.nav-side-menu li .sub-menu li:before {
font-family: FontAwesome;
content: "\f105";
display: inline-block;
padding-left: 10px;
padding-right: 10px;
vertical-align: middle;
}
.nav-side-menu li {
padding-left: 0px;
border-left: 3px solid #2e353d;
border-bottom: 1px solid #23282e;
}
.nav-side-menu li a {
text-decoration: none;
color: #e1ffff;
}
.nav-side-menu li a i {
padding-left: 10px;
width: 20px;
padding-right: 20px;
}
.nav-side-menu li:hover {
border-left: 3px solid #d19b3d;
background-color: #4f5b69;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
-ms-transition: all 1s ease;
transition: all 1s ease;
}
@media (max-width: 767px) {
.nav-side-menu {
position: relative;
width: 100%;
margin-bottom: 10px;
}
.nav-side-menu .toggle-btn {
display: block;
cursor: pointer;
position: absolute;
right: 10px;
top: 10px;
z-index: 10 !important;
padding: 3px;
background-color: #ffffff;
color: #000;
width: 40px;
text-align: center;
}
.brand {
text-align: left !important;
font-size: 22px;
padding-left: 20px;
line-height: 50px !important;
}
}
@media (min-width: 767px) {
.nav-side-menu .menu-list .menu-content {
display: block;
}
}
body {
margin: 0px;
padding: 0px;
}

View File

@ -0,0 +1,59 @@
<div nv-app="adagios.sidebar" class="nav-side-menu" ng-controller="SideBarCtrl">
<div class="brand">ADAGIOS</div>
<i class="fa fa-bars fa-2x toggle-btn" data-toggle="collapse" data-target="#menu-content"></i>
<div class="menu-list">
<ul id="menu-content" class="menu-content out">
<li data-toggle="collapse" data-target="#shortcut" class="collapsed menu-title">
<a href="#"> Shortcut <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="shortcut">
<li><a href="#/tactical">Dashboard</a></li>
<li><a href="#/hosts">Hosts</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Networks parents</a></li>
</ul>
<li data-toggle="collapse" data-target="#reports" class="collapsed menu-title">
<a href="#"> Reports <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="reports">
<li><a href="#">State History</a></li>
<li><a href="#">Log</a></li>
<li><a href="#">Comments</a></li>
<li><a href="#">Downtimes</a></li>
</ul>
<li data-toggle="collapse" data-target="#groups" class="collapsed menu-title">
<a href="#"> Groups <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="groups">
<li><a href="#">Hostgroups</a></li>
<li><a href="#">Servicegroups</a></li>
<li><a href="#">Contactgroups</a></li>
</ul>
<li data-toggle="collapse" data-target="#other" class="collapsed menu-title">
<a href="#"> Other <span class="arrow"></span></a>
</li>
<ul class="sub-menu collapse" id="other">
<li><a href="#">Grafana</a></li>
<li><a href="#">Nagvis</a></li>
</ul>
<li>
<a href="#">
<i class="fa fa-user fa-lg"></i> Profile
</a>
</li>
</ul>
</div>
</div>

14
app/table/entry/table.js Normal file
View File

@ -0,0 +1,14 @@
'use strict';
angular.module('adagios.sidebar', [])
.controller('SideBarCtrl', ['$scope', '$http', function ($scope, $http) {
return;
}])
.directive('sidebar', function () {
return {
restrict: 'E',
templateUrl: "sidebar/sidebar.html"
};
});

View File

@ -0,0 +1,41 @@
'use strict';
describe('Sidebar module', function () {
var $compile,
$rootScope,
$controller,
$httpBackend;
beforeEach(module('adagios.sidebar'));
beforeEach(inject(function (_$compile_, _$rootScope_, _$controller_, _$httpBackend_) {
$compile = _$compile_;
$rootScope = _$rootScope_;
$controller = _$controller_;
$httpBackend = _$httpBackend_;
$httpBackend.expectGET('sidebar/sidebar.html').respond('<li></li>');
}));
describe('SideBarCtrl', function () {
it('should be defined', function () {
var scope = $rootScope.$new(),
ctrl = $controller('SideBarCtrl', { $scope : scope });
expect(ctrl).toBeDefined();
});
});
describe('Sidebar directive', function () {
it('should send a GET request', function () {
var element = $compile('<sidebar></sidebar>')($rootScope);
$httpBackend.flush();
expect(element.html()).toBe('<li></li>');
});
});
});

146
app/table/table.css Normal file
View File

@ -0,0 +1,146 @@
.nav-side-menu {
overflow: auto;
font-family: verdana;
font-size: 12px;
font-weight: 200;
background-color: #2e353d;
position: fixed;
top: 0px;
width: 300px;
height: 100%;
color: #e1ffff;
}
.nav-side-menu .brand {
background-color: #23282e;
line-height: 50px;
display: block;
text-align: center;
font-size: 14px;
}
.nav-side-menu .toggle-btn {
display: none;
}
.nav-side-menu ul,
.nav-side-menu li {
list-style: none;
padding: 0px;
margin: 0px;
line-height: 35px;
cursor: pointer;
/*
.collapsed{
.arrow:before{
font-family: FontAwesome;
content: "\f053";
display: inline-block;
padding-left:10px;
padding-right: 10px;
vertical-align: middle;
float:right;
}
}
*/
}
.nav-side-menu ul :not(collapsed) .arrow:before,
.nav-side-menu li :not(collapsed) .arrow:before {
font-family: FontAwesome;
content: "\f078";
display: inline-block;
padding-left: 10px;
padding-right: 10px;
vertical-align: middle;
float: right;
}
.nav-side-menu ul .active,
.nav-side-menu li .active {
border-left: 3px solid #d19b3d;
background-color: #4f5b69;
}
.nav-side-menu ul .sub-menu li.active,
.nav-side-menu li .sub-menu li.active {
color: #d19b3d;
}
.nav-side-menu ul .sub-menu li.active a,
.nav-side-menu li .sub-menu li.active a {
color: #d19b3d;
}
.nav-side-menu ul .sub-menu li,
.nav-side-menu li .sub-menu li {
background-color: #181c20;
border: none;
line-height: 28px;
border-bottom: 1px solid #23282e;
margin-left: 0px;
}
.nav-side-menu ul .sub-menu li:hover,
.nav-side-menu li .sub-menu li:hover {
background-color: #020203;
}
.nav-side-menu ul .sub-menu li:before,
.nav-side-menu li .sub-menu li:before {
font-family: FontAwesome;
content: "\f105";
display: inline-block;
padding-left: 10px;
padding-right: 10px;
vertical-align: middle;
}
.nav-side-menu li {
padding-left: 0px;
border-left: 3px solid #2e353d;
border-bottom: 1px solid #23282e;
}
.nav-side-menu li a {
text-decoration: none;
color: #e1ffff;
}
.nav-side-menu li a i {
padding-left: 10px;
width: 20px;
padding-right: 20px;
}
.nav-side-menu li:hover {
border-left: 3px solid #d19b3d;
background-color: #4f5b69;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
-ms-transition: all 1s ease;
transition: all 1s ease;
}
@media (max-width: 767px) {
.nav-side-menu {
position: relative;
width: 100%;
margin-bottom: 10px;
}
.nav-side-menu .toggle-btn {
display: block;
cursor: pointer;
position: absolute;
right: 10px;
top: 10px;
z-index: 10 !important;
padding: 3px;
background-color: #ffffff;
color: #000;
width: 40px;
text-align: center;
}
.brand {
text-align: left !important;
font-size: 22px;
padding-left: 20px;
line-height: 50px !important;
}
}
@media (min-width: 767px) {
.nav-side-menu .menu-list .menu-content {
display: block;
}
}
body {
margin: 0px;
padding: 0px;
}

16
app/table/table.html Normal file
View File

@ -0,0 +1,16 @@
<div ng-app="adagios.table" ng-controller="TableCtrl" id="table">
<table>
<thead>
<tr>
<th ng-repeat="(key, value) in entries[0]">
<cell cell_type="header" > {{key}} </cell>
</th>
</tr>
</thead>
<tr ng-repeat="entry in entries">
<td ng-repeat="(key, value) in entry">
<cell cell_type="{{key}}" > {{value}} </cell>
</td>
</tr>
</table>
</div>

16
app/table/table.js Normal file
View File

@ -0,0 +1,16 @@
'use strict';
angular.module('adagios.table', ['ngRoute', 'adagios.table.entry', 'adagios.live'])
.controller('TableCtrl', ['$scope', '$http', 'GetServices', function ($scope, $http, GetServices) {
$scope.entries = GetServices;
}])
.directive('servicetable', function () {
return {
restrict: 'E',
templateUrl: "table/table.html"
};
});

41
app/table/table_test.js Normal file
View File

@ -0,0 +1,41 @@
'use strict';
describe('Sidebar module', function () {
var $compile,
$rootScope,
$controller,
$httpBackend;
beforeEach(module('adagios.sidebar'));
beforeEach(inject(function (_$compile_, _$rootScope_, _$controller_, _$httpBackend_) {
$compile = _$compile_;
$rootScope = _$rootScope_;
$controller = _$controller_;
$httpBackend = _$httpBackend_;
$httpBackend.expectGET('sidebar/sidebar.html').respond('<li></li>');
}));
describe('SideBarCtrl', function () {
it('should be defined', function () {
var scope = $rootScope.$new(),
ctrl = $controller('SideBarCtrl', { $scope : scope });
expect(ctrl).toBeDefined();
});
});
describe('Sidebar directive', function () {
it('should send a GET request', function () {
var element = $compile('<sidebar></sidebar>')($rootScope);
$httpBackend.flush();
expect(element.html()).toBe('<li></li>');
});
});
});