pip-webui
Version:
HTML5 UI for LOB applications
98 lines (77 loc) • 3.29 kB
JavaScript
(function (angular) {
var thisModule = angular.module('eventsModule', []);
thisModule.controller('eventsController', function($scope, $interval, $mdMedia, $http, pipAppBar, pipToasts) {
var req,
stopTime,
EVENTS_MAX = 200, // The maximum number of events that can be generated
events;
// Show page title
pipAppBar.showTitleText('Events');
// Show menu icon to open sidenav
pipAppBar.showMenuNavIcon();
// Show local page actions
pipAppBar.showLocalActions();
// Add shadow under the appbar
pipAppBar.hideShadow();
// Initialize service for changing layouts when the screen size changed
$scope.$mdMedia = $mdMedia;
// Get test data
events = $scope.dataSet.get('EventsTestCollection');
// Prepare request
req = {method: 'GET', url: 'http://fakeserver.net' + '/api/events'};
// Get data from the server
$http(req)
.success(function (result) {
$scope.events = result;
stopTime = $interval(addNextToast, 10000); // use angular $interval for imitation receiving messages every 10 sec.
})
.error(function (error) {
console.log('Error: get events error! ', error);
});
$scope.iconColors = {
'warn-circle': '#EF5350',
'info-circle-outline': '#8BC34A',
'warn-triangle': '#FFD54F'
};
$scope.onReload = onReload;
$scope.$on('$destroy', function() {
$interval.cancel(stopTime);
});
return;
function addNextToast() {
var event,
i = $scope.events.length;
if (i > EVENTS_MAX) {
$interval.cancel(stopTime);
} else {
// generate event
event = events.create();
// get event from server
// Prepare request
req = {method: 'GET', url: 'http://fakeserver.net' + '/api/events/' + event.id};
// Get data from the server
$http(req)
.success(function (result) {
$scope.events.push(result);
})
.error(function (error) {
console.log('Error: get events error! ', error);
});
// Function to display notification
pipToasts.showNotification('Node ' + event.node_name + ' (' + event.node_id + '): ' + event.description);
i++;
}
}
function onReload() {
var req = {method: 'GET', url: 'http://fakeserver.net' + '/api/events'};
$http(req)
.success(function (result) {
$scope.events = result;
pipToasts.showNotification('Events data are reloaded!');
})
.error(function (error) {
console.log('Error: get events error! ', error);
});
}
});
})(window.angular);