Skip to content

Commit a890590

Browse files
committed
add usage section to dashboard, implement charts
- fix dashboard grid - adjust top navbar styles - move panel-widget directive to separate file
1 parent 4f369f3 commit a890590

File tree

7 files changed

+91
-34
lines changed

7 files changed

+91
-34
lines changed

bower.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
"angular-sanitize": "~1.3.4",
1313
"angular-ui-router": "~0.2.13",
1414
"angular-material": "~0.8.3",
15-
"angular": "~1.3.4"
15+
"angular": "~1.3.4",
16+
"angular-google-chart": "~0.0.11"
1617
},
1718
"devDependencies": {
1819
"angular-mocks": "~1.3.4"
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
(function(){
2+
angular
3+
.module('app')
4+
.controller('UsageController', [
5+
UsageController
6+
]);
7+
8+
function UsageController() {
9+
var vm = this;
10+
11+
vm.chartOptions = {
12+
pieHole: 0.5,
13+
pieSliceTextStyle: { color: 'black' },
14+
legend: 'none',
15+
tooltip : { isHtml: true },
16+
pieSliceText: 'none',
17+
slices: { 0: { color: 'rgb(62, 164, 152)' }, 1: { color: '#E75753' }, 2: { color: 'rgb(235, 235, 235)' } }
18+
};
19+
vm.ramChart = {
20+
type: 'PieChart',
21+
options: vm.chartOptions,
22+
data: [ ['usedBy', 'percent'], ['Memory', 768660], ['Cache', 367404], ['Swap', 41924] ]
23+
};
24+
vm.storageChart = {
25+
type: 'PieChart',
26+
options: vm.chartOptions,
27+
data: [ ['usedBy', 'percent'], ['System', 126560], ['Other', 224365] ]
28+
};
29+
}
30+
})();

src/app/index.js

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use strict';
22

33
angular.module('angularMaterialAdmin', ['ngAnimate', 'ngCookies', 'ngTouch',
4-
'ngSanitize', 'ui.router', 'ngMaterial', 'app'])
4+
'ngSanitize', 'ui.router', 'ngMaterial', 'googlechart', 'app'])
55

66
.config(function ($stateProvider, $urlRouterProvider, $mdThemingProvider,
77
$mdIconProvider) {
@@ -84,34 +84,4 @@ angular.module('angularMaterialAdmin', ['ngAnimate', 'ngCookies', 'ngTouch',
8484
.defaultIconSet('assets/images/icons.svg', 128)
8585
.icon('menu', 'assets/images/menu.svg', 24)
8686
.icon('user', 'assets/images/user.svg', 64);
87-
})
88-
89-
90-
.directive('panelWidget', function() {
91-
return {
92-
restrict: 'E',
93-
replace: true,
94-
transclude: true,
95-
scope: { title: '@', template: '@', options: '@' },
96-
template: '' +
97-
'<section layout-margin class="md-whiteframe-z1">' +
98-
' <md-toolbar md-theme="white" class="panel-widget">' +
99-
' <div class="md-toolbar-tools">' +
100-
' <h3>{{title}}</h3>' +
101-
' <span flex></span>' +
102-
' <md-button ng-show="options" ng-click="$showOptions = !$showOptions" class="md-icon-button" aria-label="Show options">' +
103-
' <md-icon md-svg-icon="show"></md-icon>' +
104-
' </md-button>' +
105-
' </div>' +
106-
' </md-toolbar>' +
107-
' <div ng-include="template"/>' +
108-
'</section>',
109-
compile: function(element, attrs, linker) {
110-
return function(scope, element) {
111-
linker(scope, function(clone) {
112-
element.append(clone);
113-
});
114-
};
115-
}
116-
};
11787
});

src/app/stylesheets/_custom.scss

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ $orange: #ffdb2b;
44
$green: #269f19;
55
$main-bg: #ECECEC;
66
$text-color: #7A7A7A;
7+
$accent-color: #E75753;
78

89
.blue {
910
background-color: $blue;
@@ -29,6 +30,8 @@ $text-color: #7A7A7A;
2930
// VARIABLES
3031
$left-sidenav-width: 120px;
3132

33+
$font-weight-normal: 400;
34+
3235

3336
// PANEL-WIDGET
3437
.panel-widget {
@@ -79,3 +82,14 @@ body {
7982
.sidenav-button {
8083
text-transform: none;
8184
}
85+
86+
h1 {
87+
color: $accent-color;
88+
font-weight: $font-weight-normal;
89+
}
90+
91+
92+
// CHARTS
93+
.donut-chart-title{
94+
text-align: center;
95+
}

src/app/views/dashboard.html

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,12 @@ <h2 layout-padding>Memory load</h2>
3939
</md-grid-list>
4040

4141
<div layout-gt-md="row">
42-
<panel-widget flex-gt-md="50" title="Information Panel" template="app/views/partials/infoPanel.html" theme="white"></panel-widget>
42+
<panel-widget flex title="Information Panel" template="app/views/partials/infoPanel.html" theme="white"></panel-widget>
43+
<panel-widget flex title="Usage Stats" template="app/views/partials/usage.html" theme="white"></panel-widget>
4344
<panel-widget flex title="Autocomplete Input" template="app/views/partials/autocomplete.html" options="true" theme="white"></panel-widget>
4445
</div>
4546

4647
<div layout-gt-md="row">
47-
<panel-widget flex-gt-md="50" title="Performance" template="app/views/partials/progress.html" options="true" theme="white"></panel-widget>
48+
<panel-widget flex title="Performance" template="app/views/partials/progress.html" options="true" theme="white"></panel-widget>
4849
<panel-widget flex title="TODO list" template="app/views/partials/checkboxes.html" theme="white"></panel-widget>
4950
</div>

src/app/views/partials/usage.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<md-content ng-controller="UsageController as vm" class="md-padding" layout="row">
2+
<div flex>
3+
<div google-chart chart="vm.ramChart" style="height:150px;" />
4+
<h4 class="donut-chart-title">RAM</h4>
5+
</div>
6+
<div flex>
7+
<div google-chart chart="vm.storageChart" style="height:150px;" />
8+
<h4 class="donut-chart-title">Storage</h4>
9+
</div>
10+
</md-content>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
'use strict';
2+
3+
angular.module('app')
4+
.directive('panelWidget', function() {
5+
return {
6+
restrict: 'E',
7+
replace: true,
8+
transclude: true,
9+
scope: { title: '@', template: '@', options: '@' },
10+
template: '' +
11+
'<section layout-margin class="md-whiteframe-z1">' +
12+
' <md-toolbar md-theme="white" class="panel-widget">' +
13+
' <div class="md-toolbar-tools">' +
14+
' <h3>{{title}}</h3>' +
15+
' <span flex></span>' +
16+
' <md-button ng-show="options" ng-click="$showOptions = !$showOptions" class="md-icon-button" aria-label="Show options">' +
17+
' <md-icon md-svg-icon="show"></md-icon>' +
18+
' </md-button>' +
19+
' </div>' +
20+
' </md-toolbar>' +
21+
' <div ng-include="template"/>' +
22+
'</section>',
23+
compile: function(element, attrs, linker) {
24+
return function(scope, element) {
25+
linker(scope, function(clone) {
26+
element.append(clone);
27+
});
28+
};
29+
}
30+
};
31+
});

0 commit comments

Comments
 (0)