From 3ea1e959f966887cb30961ba932073cf51e5555f Mon Sep 17 00:00:00 2001 From: James Brooks Date: Sat, 30 Sep 2017 11:20:09 +0100 Subject: [PATCH] Fix metrics not displaying. Closes #2737 --- app/Presenters/MetricPresenter.php | 16 +- resources/assets/js/app.js | 9 +- .../js/components/{Setup.js => Setup.vue} | 2 + .../dashboard/{Dashboard.js => Dashboard.vue} | 2 + .../{InviteTeam.js => InviteTeam.vue} | 2 + .../{ReportIncident.js => ReportIncident.vue} | 2 + .../js/components/status-page/Metric.vue | 179 ++++++++++++++++++ .../views/partials/modules/metrics.blade.php | 132 +------------ webpack.mix.js | 3 +- 9 files changed, 209 insertions(+), 138 deletions(-) rename resources/assets/js/components/{Setup.js => Setup.vue} (98%) rename resources/assets/js/components/dashboard/{Dashboard.js => Dashboard.vue} (94%) rename resources/assets/js/components/dashboard/{InviteTeam.js => InviteTeam.vue} (96%) rename resources/assets/js/components/dashboard/{ReportIncident.js => ReportIncident.vue} (98%) create mode 100644 resources/assets/js/components/status-page/Metric.vue 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 @@ + + + diff --git a/resources/views/partials/modules/metrics.blade.php b/resources/views/partials/modules/metrics.blade.php index 85279ce2..77bdbeb9 100644 --- a/resources/views/partials/modules/metrics.blade.php +++ b/resources/views/partials/modules/metrics.blade.php @@ -4,140 +4,10 @@ - @endif @endif diff --git a/webpack.mix.js b/webpack.mix.js index 61780fb8..c3fb7226 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -26,7 +26,7 @@ mix .options({ processCssUrls: false }) - .js('resources/assets/js/app.js', 'public/dist/js').extract(['vue']) + .js('resources/assets/js/app.js', 'public/dist/js').extract(['vue', 'chart.js']) .scripts([ 'public/dist/js/app.js', 'node_modules/es5-shim/es5-shim.js', @@ -40,7 +40,6 @@ mix 'node_modules/messenger/build/js/messenger.min.js', 'node_modules/sortablejs/Sortable.min.js', 'node_modules/jquery-minicolors/jquery.minicolors.min.js', - 'node_modules/chart.js/dist/Chart.min.js', 'node_modules/jquery-sparkline/jquery.sparkline.min.js', 'node_modules/sweetalert2/dist/sweetalert2.min.js', 'node_modules/livestamp/livestamp.js',