diff --git a/app/Presenters/MetricPresenter.php b/app/Presenters/MetricPresenter.php
index 3a76abdd..c701bcdf 100644
--- a/app/Presenters/MetricPresenter.php
+++ b/app/Presenters/MetricPresenter.php
@@ -13,9 +13,10 @@ namespace CachetHQ\Cachet\Presenters;
use CachetHQ\Cachet\Presenters\Traits\TimestampsTrait;
use Illuminate\Contracts\Support\Arrayable;
+use Illuminate\Contracts\Support\Jsonable;
use McCool\LaravelAutoPresenter\BasePresenter;
-class MetricPresenter extends BasePresenter implements Arrayable
+class MetricPresenter extends BasePresenter implements Arrayable, Jsonable
{
use TimestampsTrait;
@@ -72,4 +73,17 @@ class MetricPresenter extends BasePresenter implements Arrayable
'default_view_name' => $this->default_view_name(),
]);
}
+
+ /**
+ * Convert the object to its JSON representation.
+ *
+ * @param int $options
+ * @return string
+ */
+ public function toJson($options = 0)
+ {
+ $json = json_encode($this->toArray(), $options);
+
+ return $json;
+ }
}
diff --git a/resources/assets/js/app.js b/resources/assets/js/app.js
index 38bd72c0..e3926942 100644
--- a/resources/assets/js/app.js
+++ b/resources/assets/js/app.js
@@ -42,10 +42,11 @@ window.axios.defaults.headers.common = {
}
},
components: {
- 'setup': require('./components/Setup.js'),
- 'dashboard': require('./components/dashboard/Dashboard.js'),
- 'report-incident': require('./components/dashboard/ReportIncident.js'),
- 'invite-team': require('./components/dashboard/InviteTeam.js'),
+ 'setup': require('./components/Setup'),
+ 'dashboard': require('./components/dashboard/Dashboard'),
+ 'report-incident': require('./components/dashboard/ReportIncident'),
+ 'invite-team': require('./components/dashboard/InviteTeam'),
+ 'metric-chart': require('./components/status-page/Metric'),
}
})
})()
diff --git a/resources/assets/js/components/Setup.js b/resources/assets/js/components/Setup.vue
similarity index 98%
rename from resources/assets/js/components/Setup.js
rename to resources/assets/js/components/Setup.vue
index 6bb0e73d..39eff5ea 100644
--- a/resources/assets/js/components/Setup.js
+++ b/resources/assets/js/components/Setup.vue
@@ -1,3 +1,4 @@
+
diff --git a/resources/assets/js/components/dashboard/Dashboard.js b/resources/assets/js/components/dashboard/Dashboard.vue
similarity index 94%
rename from resources/assets/js/components/dashboard/Dashboard.js
rename to resources/assets/js/components/dashboard/Dashboard.vue
index 176907f7..e8a9736f 100644
--- a/resources/assets/js/components/dashboard/Dashboard.js
+++ b/resources/assets/js/components/dashboard/Dashboard.vue
@@ -1,3 +1,4 @@
+
diff --git a/resources/assets/js/components/dashboard/InviteTeam.js b/resources/assets/js/components/dashboard/InviteTeam.vue
similarity index 96%
rename from resources/assets/js/components/dashboard/InviteTeam.js
rename to resources/assets/js/components/dashboard/InviteTeam.vue
index 20812706..fcfb203d 100644
--- a/resources/assets/js/components/dashboard/InviteTeam.js
+++ b/resources/assets/js/components/dashboard/InviteTeam.vue
@@ -1,3 +1,4 @@
+
diff --git a/resources/assets/js/components/dashboard/ReportIncident.js b/resources/assets/js/components/dashboard/ReportIncident.vue
similarity index 98%
rename from resources/assets/js/components/dashboard/ReportIncident.js
rename to resources/assets/js/components/dashboard/ReportIncident.vue
index 8d6ade64..4813d7eb 100644
--- a/resources/assets/js/components/dashboard/ReportIncident.js
+++ b/resources/assets/js/components/dashboard/ReportIncident.vue
@@ -1,3 +1,4 @@
+
diff --git a/resources/assets/js/components/status-page/Metric.vue b/resources/assets/js/components/status-page/Metric.vue
new file mode 100644
index 00000000..749aeae4
--- /dev/null
+++ b/resources/assets/js/components/status-page/Metric.vue
@@ -0,0 +1,179 @@
+
+