UNPKG

sheercms

Version:

Sheer Cliff CMS is a simple and powerful content management system (CMS) for Node JS.

120 lines (101 loc) 3.24 kB
app.controller('LogController', function($scope, LogService) { $scope.data = { isAuthorized: false, title: "Log Viewer", logs: [], // {name, size, modified} message: "", messageType: "", levels: [ {text: 'all levels', value: 0}, {text: 'trace +', value: 10}, {text: 'debug +', value: 20}, {text: 'info +', value: 30}, {text: 'warn +', value: 40}, {text: 'error +', value: 50}, {text: 'fatal', value: 60} ] }; $scope.selectedLog = { log: null, raw: "", entries: [], level: 40 }; $scope.selectLog = function(log) { loadLogFile(log, 40, true); //start with warn level so we don't download the whole file }; $scope.back = function() { $scope.selectedLog.log = null; $scope.selectedLog.raw = ""; $scope.selectedLog.entries = []; }; $scope.reload = function() { if ($scope.selectedLog.log) { LogService.clearLogCache($scope.selectedLog.log.name); loadLogFile($scope.selectedLog.log, $scope.selectedLog.level, false); } else { loadLogs(false); } }; $scope.toggleSort = function() { if ($scope.selectedLog.entries) { $scope.selectedLog.entries.reverse(); } }; $scope.changeLevel = function() { loadLogFile($scope.selectedLog.log, $scope.selectedLog.level, true); }; function init() { $scope.$parent.resize('.log-view'); if ($scope.global.isAdmin === true) { $scope.data.isAuthorized = true; loadLogs(true); } else { $scope.data.isAuthorized = false; } } function loadLogFile(log, level, useCache) { $scope.selectedLog.level = level; setMessage("Loading log file...", "alert-info"); LogService.getLog(log.name, level, useCache).then(function(result) { if (result.success) { clearMessage(); try { $scope.selectedLog.log = log; $scope.selectedLog.raw = JSON.stringify(result.entries); $scope.selectedLog.entries = result.entries; } catch(e) { console.error(e); setMessage("Error parsing log file.", "alert-danger"); } } else { setMessage(result.message, "alert-danger"); } }); } function loadLogs(useCache) { setMessage("Loading log files...", "alert-info"); LogService.list(useCache).then(function(data) { if (data.success) { $scope.data.logs = data.logs; clearMessage(); } else { setMessage(data.message, "alert-danger"); } }); } function clearMessage() { $scope.data.message = ""; $scope.data.messageType = ""; } function setMessage(msg, type) { $scope.data.message = msg; $scope.data.messageType = type; } init(); });