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