From c6dd5e9f679244920787833461861ea548863f7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn?= <cmartin@opennebula.org> Date: Mon, 15 Jun 2015 12:19:58 +0200 Subject: [PATCH] Feature #3748: Oneflow service log panel --- .../public/app/tabs/oneflow-services-tab.js | 3 +- .../tabs/oneflow-services-tab/panels/log.js | 65 +++++++++++++++++++ .../panels/log/panelId.js | 3 + 3 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 src/sunstone/public/app/tabs/oneflow-services-tab/panels/log.js create mode 100644 src/sunstone/public/app/tabs/oneflow-services-tab/panels/log/panelId.js diff --git a/src/sunstone/public/app/tabs/oneflow-services-tab.js b/src/sunstone/public/app/tabs/oneflow-services-tab.js index 66ae3b1838..a358562689 100644 --- a/src/sunstone/public/app/tabs/oneflow-services-tab.js +++ b/src/sunstone/public/app/tabs/oneflow-services-tab.js @@ -13,7 +13,8 @@ define(function(require) { var _panels = [ require('./oneflow-services-tab/panels/info'), - require('./oneflow-services-tab/panels/roles') + require('./oneflow-services-tab/panels/roles'), + require('./oneflow-services-tab/panels/log') ]; var _formPanels = [ diff --git a/src/sunstone/public/app/tabs/oneflow-services-tab/panels/log.js b/src/sunstone/public/app/tabs/oneflow-services-tab/panels/log.js new file mode 100644 index 0000000000..68a7764d69 --- /dev/null +++ b/src/sunstone/public/app/tabs/oneflow-services-tab/panels/log.js @@ -0,0 +1,65 @@ +define(function(require) { + /* + DEPENDENCIES + */ + + var Locale = require('utils/locale'); + var Humanize = require('utils/humanize'); + + /* + CONSTANTS + */ + + var TAB_ID = require('../tabId'); + var PANEL_ID = require('./log/panelId'); + var XML_ROOT = "DOCUMENT"; + var RESOURCE = "Service"; + + /* + CONSTRUCTOR + */ + + function Panel(info) { + this.title = Locale.tr("Log"); + this.icon = "fa-file-text"; + + this.element = info[XML_ROOT]; + + return this; + } + + Panel.PANEL_ID = PANEL_ID; + Panel.prototype.html = _html; + Panel.prototype.setup = _setup; + + return Panel; + + /* + FUNCTION DEFINITIONS + */ + + function _html() { + var logs = this.element.TEMPLATE.BODY.log; + var log_info = ''; + if (logs) { + log_info += '<div class="row"><div class="large-12 columns log-tab">'; + + for (var i = 0; i < logs.length; i++) { + var line = Humanize.prettyTime(logs[i].timestamp)+' ['+logs[i].severity + '] ' + logs[i].message+ '<br>'; + + if (logs[i].severity == 'E'){ + line = '<span class="vm_log_error">'+line+'</span>'; + } + + log_info += line; + } + + log_info += '</div></div>'; + } + + return log_info; + } + + function _setup(context) { + } +}); diff --git a/src/sunstone/public/app/tabs/oneflow-services-tab/panels/log/panelId.js b/src/sunstone/public/app/tabs/oneflow-services-tab/panels/log/panelId.js new file mode 100644 index 0000000000..6a914f38cf --- /dev/null +++ b/src/sunstone/public/app/tabs/oneflow-services-tab/panels/log/panelId.js @@ -0,0 +1,3 @@ +define(function(require){ + return 'service_log_tab'; +}); \ No newline at end of file