From d9c9a7f236fcfe8595181dce4ca4814138b78201 Mon Sep 17 00:00:00 2001
From: syuilo <syuilotan@yahoo.co.jp>
Date: Mon, 12 Jun 2017 02:05:23 +0900
Subject: [PATCH] :v:

---
 src/api/endpoints/meta.ts                     |  8 ++--
 src/utils/stats.ts                            |  4 +-
 .../app/desktop/tags/home-widgets/server.tag  | 47 +++++++++++++++++--
 3 files changed, 50 insertions(+), 9 deletions(-)

diff --git a/src/api/endpoints/meta.ts b/src/api/endpoints/meta.ts
index 7ab72ae8f8..a3f1d50329 100644
--- a/src/api/endpoints/meta.ts
+++ b/src/api/endpoints/meta.ts
@@ -44,12 +44,10 @@ module.exports = (params) => new Promise(async (res, rej) => {
 		version: version,
 		secure: config.https.enable,
 		machine: os.hostname(),
-		node: {
-			release: (process as any).release.name,
-			lts: (process as any).release.lts,
-			version: process.version
-		},
+		os: os.platform(),
+		node: process.version,
 		cpu: {
+			model: os.cpus()[0].model,
 			cores: os.cpus().length
 		}
 	});
diff --git a/src/utils/stats.ts b/src/utils/stats.ts
index 1615268310..cfb710f5e1 100644
--- a/src/utils/stats.ts
+++ b/src/utils/stats.ts
@@ -18,7 +18,9 @@ export default function() {
 					total: os.totalmem(),
 					free: os.freemem()
 				},
-				disk
+				disk,
+				os_uptime: os.uptime(),
+				process_uptime: process.uptime()
 			});
 		});
 	}, 1000);
diff --git a/src/web/app/desktop/tags/home-widgets/server.tag b/src/web/app/desktop/tags/home-widgets/server.tag
index 87525c3952..040ca12321 100644
--- a/src/web/app/desktop/tags/home-widgets/server.tag
+++ b/src/web/app/desktop/tags/home-widgets/server.tag
@@ -6,7 +6,8 @@
 	<mk-server-home-widget-cpu if={ !initializing } show={ view == 1 } connection={ connection } meta={ meta }/>
 	<mk-server-home-widget-memory if={ !initializing } show={ view == 2 } connection={ connection }/>
 	<mk-server-home-widget-disk if={ !initializing } show={ view == 3 } connection={ connection }/>
-	<mk-server-home-widget-info if={ !initializing } show={ view == 4 } connection={ connection } meta={ meta }/>
+	<mk-server-home-widget-uptimes if={ !initializing } show={ view == 4 } connection={ connection }/>
+	<mk-server-home-widget-info if={ !initializing } show={ view == 5 } connection={ connection } meta={ meta }/>
 	<style>
 		:scope
 			display block
@@ -76,7 +77,7 @@
 
 		this.toggle = () => {
 			this.view++;
-			if (this.view == 5) this.view = 0;
+			if (this.view == 6) this.view = 0;
 		};
 	</script>
 </mk-server-home-widget>
@@ -213,6 +214,7 @@
 	<div>
 		<p><i class="fa fa-microchip"></i>CPU</p>
 		<p>{ cores } Cores</p>
+		<p>{ model }</p>
 	</div>
 	<style>
 		:scope
@@ -247,6 +249,7 @@
 	</style>
 	<script>
 		this.cores = this.opts.meta.cpu.cores;
+		this.model = this.opts.meta.cpu.model;
 		this.connection = this.opts.connection;
 
 		this.on('mount', () => {
@@ -396,10 +399,48 @@
 	</script>
 </mk-server-home-widget-disk>
 
+<mk-server-home-widget-uptimes>
+	<p>Uptimes</p>
+	<p>Process: { process.toFixed(0) }s</p>
+	<p>OS: { os.toFixed(0) }s</p>
+	<style>
+		:scope
+			display block
+			padding 10px 14px
+
+			> p
+				margin 0
+				font-size 12px
+				color #505050
+
+				&:first-child
+					font-weight bold
+
+	</style>
+	<script>
+		this.connection = this.opts.connection;
+
+		this.on('mount', () => {
+			this.connection.on('stats', this.onStats);
+		});
+
+		this.on('unmount', () => {
+			this.connection.off('stats', this.onStats);
+		});
+
+		this.onStats = stats => {
+			this.update({
+				process: stats.process_uptime,
+				os: stats.os_uptime
+			});
+		};
+	</script>
+</mk-server-home-widget-uptimes>
+
 <mk-server-home-widget-info>
 	<p>Maintainer: <b>{ meta.maintainer }</b></p>
 	<p>Machine: { meta.machine }</p>
-	<p>Node: { meta.node.version }</p>
+	<p>Node: { meta.node }</p>
 	<style>
 		:scope
 			display block