Fixing A BAAAD Commit

This commit is contained in:
Sagi Dayan 2015-06-22 13:04:21 +03:00
parent b1de4f2875
commit 44aaa5c08f
9 changed files with 282 additions and 165 deletions

View file

@ -33,9 +33,9 @@ md-list .md-button {
https://github.com/google/material-design-icons https://github.com/google/material-design-icons
*/ */
p { /*p {
margin-left: 2em; margin-left: 2em;
} }*/
.menuBtn { .menuBtn {
background: transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGcgaWQ9IkhlYWRlciI+CiAgICA8Zz4KICAgICAgICA8cmVjdCB4PSItNjE4IiB5PSItMjIzMiIgZmlsbD0ibm9uZSIgd2lkdGg9IjE0MDAiIGhlaWdodD0iMzYwMCIvPgogICAgPC9nPgo8L2c+CjxnIGlkPSJMYWJlbCI+CjwvZz4KPGcgaWQ9Ikljb24iPgogICAgPGc+CiAgICAgICAgPHJlY3QgZmlsbD0ibm9uZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+CiAgICAgICAgPHBhdGggZD0iTTMsMThoMTh2LTJIM1YxOHogTTMsMTNoMTh2LTJIM1YxM3ogTTMsNnYyaDE4VjZIM3oiIHN0eWxlPSJmaWxsOiNmM2YzZjM7Ii8+CiAgICA8L2c+CjwvZz4KPGcgaWQ9IkdyaWQiIGRpc3BsYXk9Im5vbmUiPgogICAgPGcgZGlzcGxheT0iaW5saW5lIj4KICAgIDwvZz4KPC9nPgo8L3N2Zz4=) no-repeat center center; background: transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGcgaWQ9IkhlYWRlciI+CiAgICA8Zz4KICAgICAgICA8cmVjdCB4PSItNjE4IiB5PSItMjIzMiIgZmlsbD0ibm9uZSIgd2lkdGg9IjE0MDAiIGhlaWdodD0iMzYwMCIvPgogICAgPC9nPgo8L2c+CjxnIGlkPSJMYWJlbCI+CjwvZz4KPGcgaWQ9Ikljb24iPgogICAgPGc+CiAgICAgICAgPHJlY3QgZmlsbD0ibm9uZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+CiAgICAgICAgPHBhdGggZD0iTTMsMThoMTh2LTJIM1YxOHogTTMsMTNoMTh2LTJIM1YxM3ogTTMsNnYyaDE4VjZIM3oiIHN0eWxlPSJmaWxsOiNmM2YzZjM7Ii8+CiAgICA8L2c+CjwvZz4KPGcgaWQ9IkdyaWQiIGRpc3BsYXk9Im5vbmUiPgogICAgPGcgZGlzcGxheT0iaW5saW5lIj4KICAgIDwvZz4KPC9nPgo8L3N2Zz4=) no-repeat center center;
@ -76,28 +76,21 @@ body.noscroll
margin-top: 1em; margin-top: 1em;
margin-right: 1em; margin-right: 1em;
position: center; position: center;
-webkit-border-radius: 30%; -webkit-border-radius: 30%;
-moz-border-radius: 30%; -moz-border-radius: 30%;
border-radius: 30%; border-radius: 30%;
} }
/*.avatar { .avatar img {
background: rgba(0, 0, 0, 0.2); border-radius: 40px;
}*/ position:center;
width: 80px;
.avatar img { height: 80px;
border-radius: 40px; margin: 6px;
position:center; -webkit-box-shadow: 2px 2px 5px 0px rgba(0,0,0,0.75);
width: 80px; -moz-box-shadow: 2px 2px 5px 0px rgba(0,0,0,0.75);
height: 80px; box-shadow: 2px 2px 5px 0px rgba(0,0,0,0.75);
margin: 6px; /*centers the image in the parent element */ }
-webkit-box-shadow: 2px 2px 5px 0px rgba(0,0,0,0.75);
-moz-box-shadow: 2px 2px 5px 0px rgba(0,0,0,0.75);
box-shadow: 2px 2px 5px 0px rgba(0,0,0,0.75);
}
/* Added BY devMatan */ /* Added BY devMatan */
@ -111,14 +104,8 @@ body.noscroll
}*/ }*/
.campusAvatar img .campusAvatar img
{ {
/*
margin-top: 1em;
margin-right: 1em;
position: center;
*/
border-radius: 40px; border-radius: 40px;
position:center; position:center;
width: 80px; width: 80px;
@ -157,9 +144,24 @@ body.noscroll
margin-bottom: 10px; margin-bottom: 10px;
} }
.md-avatar img .feed
{ {
/*TODO*/ overflow-y: scroll;
height: 350px;
/*width: 100%;*/
}
/*.feedMessages
{
overflow: scroll;
height: 300px;
width: 100%;
}
.feedTasks
{
overflow: scroll;
height: 300px;
width: 100%;
} }
.feedContent .feedContent
@ -167,7 +169,7 @@ body.noscroll
padding-left: 6%; padding-left: 6%;
font-size: 15px; font-size: 15px;
display:table; display:table;
} }*/
.md-no-sticky .md-no-sticky
{ {
@ -181,7 +183,6 @@ body.noscroll
border-radius: 150px; border-radius: 150px;
-webkit-border-radius: 150px; -webkit-border-radius: 150px;
-moz-border-radius: 150px; -moz-border-radius: 150px;
/*background: url(http://i61.tinypic.com/v86f7.png) no-repeat;*/
box-shadow: 0 0 8px rgba(0, 0, 0, .8); box-shadow: 0 0 8px rgba(0, 0, 0, .8);
-webkit-box-shadow: 0 0 8px rgba(0, 0, 0, .8); -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, .8);
-moz-box-shadow: 0 0 8px rgba(0, 0, 0, .8); -moz-box-shadow: 0 0 8px rgba(0, 0, 0, .8);
@ -256,7 +257,6 @@ body.noscroll
-moz-border-radius: 100px; -moz-border-radius: 100px;
border-radius: 50px; border-radius: 50px;
width: 30%; width: 30%;
/*top: -40px;*/
position: relative; position: relative;
z-index: 50; z-index: 50;
} }
@ -282,8 +282,17 @@ body.noscroll
font-weight: bold; font-weight: bold;
cursor: pointer; cursor: pointer;
} }
.se-menu li .selected{
.se-menu li:active{
background-color: #B2B2B2;
text-shadow:#e0e0e0 1px 1px 0;
font-weight: bold;
}
.se-menu .selected{
background-color: #E2E2E2; background-color: #E2E2E2;
text-shadow:#e0e0e0 1px 1px 0;
font-weight: bold;
} }
.user-box{ .user-box{
@ -293,7 +302,6 @@ body.noscroll
.user-box img{ .user-box img{
width: 100%; width: 100%;
border: 4px #7f7f7f solid; border: 4px #7f7f7f solid;
-webkit-border-radius: 5px; -webkit-border-radius: 5px;
-moz-border-radius: 5px; -moz-border-radius: 5px;
border-radius: 5px; border-radius: 5px;
@ -342,26 +350,70 @@ body.noscroll
} }
/* md-list-item .md-no-style.md-button, md-list-item.md-no-proxy.md-button { /* Colors*/
font-size: inherit; .gray{
height: inherit; background:#f5f5f5;
text-align: left; }
text-transform: none; .aliceblue {
width: 100%; background: aliceblue;
white-space: normal; }
.green {
background: #b9f6ca;
}
.yellow {
background: #ffff8d;
}
.blue {
background: #84ffff;
}
.purple {
background: #b388ff;
}
.red {
background: #ff8a80;
}
/* End Colors */
.whiteframedemoBasicUsage md-whiteframe {
background: #fff;
margin: 20px;
padding: 20px;
} }
md-list-item, md-list-item .md-list-item-inner { .tasksContent
display: -webkit-flex; {
display: -ms-flexbox; padding-left: 4px;
display: flex; padding-right: 4px;
-webkit-justify-content: flex-start; margin: 5px;
-ms-flex-pack: start; background-color: aliceblue;
justify-content: flex-start; overflow: scroll;
-webkit-align-items: center; height:250;
-ms-flex-align: center; width:500;
align-items: center; }
min-height: 48px; .messagesContent
}*/ {
padding-left: 4px;
/*End Effects for MD*/ padding-right: 4px;
margin: 5px;
background-color: #f5f5f5;
overflow: scroll;
height:250;
width:500;
}
p.tasksFeed
{
padding-left: 4px;
margin: 5px;
width:500;
height: auto;
background-color: aliceblue;
}
p.messagesFeed
{
padding-left: 4px;
margin: 5px;
width:500;
height: auto;
background-color: #f5f5f5;
}

View file

@ -2,7 +2,7 @@ var DEBUG = true;
var welcome = angular.module('welcome', ['ngMaterial', 'seHub.services', 'ngRoute' , 'ngCookies']); var welcome = angular.module('welcome', ['ngMaterial', 'seHub.services', 'ngRoute' , 'ngCookies']);
var app = angular.module('SeHub', ['ngMaterial', 'ngRoute', 'seHub.services', 'ngCookies']); var app = angular.module('SeHub', ['ngMaterial', 'ngRoute', 'seHub.services', 'ngCookies', 'chart.js']);
welcome.config(function($mdThemingProvider) { welcome.config(function($mdThemingProvider) {
@ -41,8 +41,15 @@ app.config(['$routeProvider', '$locationProvider',
.when('/Settings', { .when('/Settings', {
templateUrl: 'templates/views/settings.html', templateUrl: 'templates/views/settings.html',
controller: 'settingsController' controller: 'settingsController'
})
.when('/tasks', {
templateUrl: 'templates/views/tasks.html',
controller: 'tasksController'
})
.when('/tasks/new', {
templateUrl: 'templates/views/newTask.html',
controller: 'newTasksController'
}); });
} }
]); ]);

View file

@ -1,71 +1,51 @@
angular.module('SeHub') angular.module('SeHub')
.controller('homeController', ['$scope', '$cookies', '$cookieStore', '$window', '$location', '$mdToast', '$mdDialog', 'apiService', '$rootScope', function ($scope, $cookies, $cookieStore, $window, $location, $mdToast, $mdDialog, apiService ,$rootScope) .controller('homeController', ['$scope', '$cookies', '$cookieStore', '$window', '$location', '$mdToast', '$mdDialog', 'apiService', '$rootScope', function ($scope, $cookies, $cookieStore, $window, $location, $mdToast, $mdDialog, apiService ,$rootScope)
{ {
var imagePath = $scope.user.avatar_url; $scope.isStudent = false;
$scope.phones = [ $scope.addMsg = false;
{ type: 'Home', number: '(972) 865-82861' }, $scope.msgToPost = "";
{ type: 'Cell', number: '(972) 5251-32309' }, $scope.oldText = "";
];
$scope.messages = [ var imagePath = $scope.user.avatar_url;
{ $scope.phones = [
face : imagePath, { type: 'Home', number: '(972) 865-82861' },
what: 'I need to go to luna-park', { type: 'Cell', number: '(972) 5251-32309' },
who: 'Matan Bar Yosef', ];
when: '3:08PM',
notes: " Lets do something"
},
{
face : imagePath,
what: 'Lets Lets Lets',
who: 'Matan Bar Yosef',
when: '4:33PM',
notes: " Lets go drink something"
},
{
face : imagePath,
what: 'Let me tell you a secret',
who: 'Sagi Dayan',
when: '4:15PM',
notes: " I am S'ein"
},
{
face : imagePath,
what: 'Listen to this!',
who: 'Aran Zaiger',
when: '6:15PM',
notes: " I am gaylord ultima!!"
},
{
face : imagePath,
what: 'Hi?',
who: 'Etye Meyer',
when: '7:45AM',
notes: " I am mega gaylord ultima"
}
];
$scope.tasks = [ if($scope.user.isLecturer)
{ {
ExNum: '1', $scope.isStudent = false;
dueDate: '23/06/15', console.log("Lecturer Mode!");
notes: " Build A Game: Scrabble" }
}, else
{ {
ExNum: '3', $scope.isStudent = true;
dueDate: '30/06/15', console.log("Student Mode!");
notes: " Static Array" }
},
{
ExNum: '4',
dueDate: '07/07/15',
notes: " Dynamic Array"
},
];
$scope.addMessageClicked = function()
{
$scope.addMsg = true; // Reveal the "POST" Button
}
$scope.postMessageClicked = function(msg) // Posting the message itself
{
if(msg != null)
{
$scope.prevText = "- " + msg;
implementText = document.getElementById("msg").value;
$scope.prevText += "<br></br>";
document.getElementById("bindText").innerHTML += $scope.prevText;
}
document.getElementById("msg").value = '';
$scope.prevText = '';
}
$scope.clearAllClicked = function() // Clear Screen from text
{
document.getElementById("bindText").innerHTML = "";
}
// animation // animation
$scope.isEnterd = top.setIsEnterd; $scope.isEnterd = top.setIsEnterd;
}]); }]);

View file

@ -53,7 +53,7 @@ angular.module('SeHub')
"title": "Tasks", "title": "Tasks",
"icon": "fa fa-clipboard", "icon": "fa fa-clipboard",
"style": "", "style": "",
"route": "/campuses" "route": "/tasks"
}, { }, {
"title": "Settings", "title": "Settings",
"icon": "fa fa-cogs", "icon": "fa fa-cogs",

View file

@ -83,7 +83,7 @@ angular.module('SeHub')
console.log("DONE - 200"); console.log("DONE - 200");
$mdDialog.show($mdDialog.alert().title('E-mail Verification').content('A verification e-mail has been sent to your email address.') $mdDialog.show($mdDialog.alert().title('E-mail Verification').content('A verification e-mail has been sent to your email address.')
.ariaLabel('Email verification alert dialog').ok('Got it!').targetEvent(ev)); // Pop-up alert for e-mail verification .ariaLabel('Email verification alert dialog').ok('Got it!').targetEvent(ev)); // Pop-up alert for e-mail verification
// TODO ADD delete cookies and redirect only after pressed 'Got it' // TODO ADD- delete cookies and redirect only after pressed 'Got it'
$cookieStore.remove("com.sehub.www"); // Removing the cookies $cookieStore.remove("com.sehub.www"); // Removing the cookies
$window.location.href = 'http://se-hub.appspot.com'; // Reference to 'welcome' page $window.location.href = 'http://se-hub.appspot.com'; // Reference to 'welcome' page
}).error(function() }).error(function()
@ -117,8 +117,6 @@ angular.module('SeHub')
var result = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; var result = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
if (!result.test(email)) // TODO Fix when success to show mdDialog until 'Got it' clicked if (!result.test(email)) // TODO Fix when success to show mdDialog until 'Got it' clicked
{ {
console.log(email + ", Error in email, should alert");
// alert('Please provide a valid e-mail address');
$mdDialog.show($mdDialog.alert().title('Error - E-mail Verification').content('An error has occured in your e-mail address.') $mdDialog.show($mdDialog.alert().title('Error - E-mail Verification').content('An error has occured in your e-mail address.')
.ariaLabel('Email verification error alert dialog').ok('Got it!').targetEvent(email)); .ariaLabel('Email verification error alert dialog').ok('Got it!').targetEvent(email));
} }

View file

@ -35,7 +35,13 @@ angular.module('SeHub')
$scope.profileMode = "Save Profile"; $scope.profileMode = "Save Profile";
$scope.profileModeIcon = "fa fa-floppy-o"; $scope.profileModeIcon = "fa fa-floppy-o";
} else { } else {
dataService.userBrodcast($scope.user); apiService.updateUser(token, $scope.user).success(function(data) {
console.info('User Saved');
dataService.userBrodcast($scope.user);
}).error(function(e) {
console.error('Fail To Save User');
});
$scope.profileMode = "Edit Profile"; $scope.profileMode = "Edit Profile";
$scope.profileModeIcon = "fa fa-pencil"; $scope.profileModeIcon = "fa fa-pencil";
} }
@ -74,5 +80,14 @@ angular.module('SeHub')
}]; }];
$scope.labels = ['Commits', 'Issues Assigned', 'Messages', 'Open Tasks'];
$scope.series = ['Project A', 'Project B'];
$scope.data = [
[54, 3, 15, 3],
[28, 48, 40, 3]
];
} }
]); ]);

View file

@ -22,47 +22,93 @@
</div> </div>
</md-card> </md-card>
</md-content> </md-content>
<md-content layout-padding> <div ng-if="user.isLecturer"> <!-- Lecturer Mode -->
<md-card> <md-content layout-padding>
<div class = "feed" ><!-- layout-align="center center"> --> <div layout="row" layout-margin layout-padding>
<div> <div>
<md-subheader class="md-no-sticky" style = "background-color:aliceblue; margin-right:0;">Messages</md-subheader> <md-card>
<md-list-item class="md-3-line" ng-repeat="item in messages"> <p class = "messagesFeed">Messages</p>
<div class="md-list-item-text" style="border: 1px solid black;"> </md-card>
<img ng-src="{{user.avatar_url}}" class="roundUserAvatar" alt="{{item.who}}" style="margin:8px"/> </div>
<!-- Instead of "user.avatar.url" suppose to be "postedUserAvatarUrl" --> <div>
<md-card>
<div class="spacer"></div> <p class = "tasksFeed">Tasks</p>
<br></br> </md-card>
<md-divider class = "feedContent"> </div>
<h4>{{ item.who }}</h4>
<h5>{{ item.what }}</h5>
<h5><b>{{ item.notes }}</b></h5>
<h6>{{ item.when }}</h6>
</md-divider>
</div>
</md-list-item>
</div> </div>
</md-card> <div layout="row" layout-margin layout-padding>
</md-content> <div>
<div class="port_spacer"></div> <md-card>
<div> <p id = "bindText" class = "messagesContent"></p>
<md-content> </md-card>
<md-card style="margin:0"> </div>
<!-- <md-list> --> <div>
<md-subheader class="md-no-sticky" style = "background-color:aliceblue; margin-right:0;">Tasks</md-subheader> <md-card>
<md-list-item class="md-3-line" ng-repeat="item in tasks"> <p class = "tasksContent">
<!-- <img ng-src="{{item.face}}?{{$index}}" class="md-avatar" alt="{{item.who}}" /> --> For Task 3 Press: <a href="http://localhost:8080/home#/tasks">Task #3</a>
<div class="md-list-item-text" style="border: 1px solid black;"> <br></br>
<md-divider class = "feedContent"> For Task 4 Press: <a href="http://localhost:8080/home#/home">Task #4</a>
<h6><u><em>Ex: {{ item.ExNum }}</em></u></h6> <br></br>
<h5>Task Title: {{ item.notes }}</h5> For Task 5 Press: <a href="http://localhost:8080/home#/home">Task #5</a>
<h6>Due Date: {{ item.dueDate }}</h6> <br></br>
</md-divider> For Task 6 Press: <a href="http://localhost:8080/home#/home">Task #6</a>
</div> <br></br>
</md-list-item> For Task 7 Press: <a href="http://localhost:8080/home#/home">Task #7</a>
</md-card> <br></br>
</md-content> For Task 8 Press: <a href="http://localhost:8080/home#/home">Task #8</a>
</div> </p>
<!-- </md-card> --> </md-card>
</div>
</div>
<div layout-margin layout padding>
<md-button ng-click="addMessageClicked()" ng class="md-raised md-primary">Add Message</md-button>
</div>
<div ng-if="addMsg">
<div layout = "row" layout-margin layout padding layout-align = "left center">
<md-button ng-click="postMessageClicked(msgToAdd)" ng class="md-raised md-primary">Post</md-button>
<md-button ng-click="clearAllClicked()" ng class="md-raised md-primary">Clear All</md-button>
</div>
<div class="port_spacer"></div>
<md-input-container>
<label> Write Your Desired Message Here And Press Post</label>
<input type="text" id="msg" md-maxlength="150" minlength="1" ng-model="msgToAdd" required>
</md-input-container>
</div>
</md-content>
</div>
<div ng-if="isStudent"> <!-- Student Mode -->
<md-content layout-padding>
<div layout="row" layout-margin layout-padding>
<div>
<md-card>
<p class = "messagesFeed">Messages</p>
</md-card>
</div>
<div>
<md-card>
<p class = "tasksFeed">Tasks</p>
</md-card>
</div>
</div>
<div layout="row" layout-margin layout-padding>
<div>
<md-card>
<p id = "bindText" class = "messagesContent"></p>
</md-card>
</div>
<div>
<md-card>
<p class = "tasksContent">
For Task 3 Press: <a href="http://localhost:8080/home#/tasks">Task #3</a>
<br></br>
For Task 4 Press: <a href="http://localhost:8080/home#/home">Task #4</a>
<br></br>
For Task 5 Press: <a href="http://localhost:8080/home#/home">Task #5</a>
</p>
</md-card>
</div>
</div>
</md-content>
</div>
</div> </div>

View file

@ -6,6 +6,10 @@
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<link rel="stylesheet" href="templates/css/theme.css"> <link rel="stylesheet" href="templates/css/theme.css">
<!--charts css-->
<link rel="stylesheet" href="templates/js/libs/angular-chart.js-0.7.2/dist/angular-chart.css"/>
<meta name="viewport" content="initial-scale=1, maximum-scale=1" /> <meta name="viewport" content="initial-scale=1, maximum-scale=1" />
</head> </head>
@ -79,6 +83,14 @@
<!-- Angular App --> <!-- Angular App -->
<script src="templates/js/app.js"></script> <script src="templates/js/app.js"></script>
<!--Angular Libs (Third Party)-->
<!--charts-->
<!--docs: http://jtblin.github.io/angular-chart.js/-->
<script src="templates/js/libs/angular-chart.js-0.7.2/dist/chart.js"></script>
<script src="templates/js/libs/angular-chart.js-0.7.2/dist/angular-chart.js"></script>
<!-- Services --> <!-- Services -->
<script src="templates/js/services/apiService.js"></script> <script src="templates/js/services/apiService.js"></script>
<script src="templates/js/services/dataService.js"></script> <script src="templates/js/services/dataService.js"></script>
@ -88,6 +100,7 @@
<script src="templates/js/controllers/homeController.js"></script> <script src="templates/js/controllers/homeController.js"></script>
<script src="templates/js/controllers/settingsController.js"></script> <script src="templates/js/controllers/settingsController.js"></script>
<script src="templates/js/controllers/registerController.js"></script> <script src="templates/js/controllers/registerController.js"></script>
<script src="templates/js/controllers/newTasksController.js"></script>
</body> </body>
</html> </html>

View file

@ -55,6 +55,12 @@
</div> </div>
</div> </div>
<!-- End Edit Div --> <!-- End Edit Div -->
<!-- Chart -->
<h4>
<i class="fa fa-bar-chart"></i> Statistics:
</h4>
<canvas id="bar" class="chart chart-bar" data="data"
labels="labels" series="series"></canvas>
</md-card> </md-card>
</div> </div>
<!-- Campuses & Classes Div --> <!-- Campuses & Classes Div -->