From 0bbc31bec4a67f36713d938d5157f53ac8adb5d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Tue, 15 Jun 2021 12:37:13 +0300 Subject: [PATCH] Report page cache own widget.. --- app/Abstracts/Report.php | 2 +- app/Console/Commands/ReportReminder.php | 2 ++ app/Http/Controllers/Common/Reports.php | 18 ++++++++------- resources/assets/js/views/common/reports.js | 16 ++++++++++++- .../views/common/reports/index.blade.php | 23 ++++++++++++++++--- routes/admin.php | 2 +- 6 files changed, 49 insertions(+), 14 deletions(-) diff --git a/app/Abstracts/Report.php b/app/Abstracts/Report.php index 48caea891..800189f22 100644 --- a/app/Abstracts/Report.php +++ b/app/Abstracts/Report.php @@ -142,7 +142,7 @@ abstract class Report $sum += is_array($total) ? array_sum($total) : $total; } - $total = money($sum, setting('default.currency'), true); + $total = money($sum, setting('default.currency'), true)->format(); } else { $total = trans('general.na'); } diff --git a/app/Console/Commands/ReportReminder.php b/app/Console/Commands/ReportReminder.php index 510e74656..ba858824d 100644 --- a/app/Console/Commands/ReportReminder.php +++ b/app/Console/Commands/ReportReminder.php @@ -67,6 +67,8 @@ class ReportReminder extends Command $ttl = 3600 * 6; // 6 hours + Cache::forget('reports.totals.' . $report->id); + Cache::remember('reports.totals.' . $report->id, $ttl, function () use ($class) { return $class->getGrandTotal(); }); diff --git a/app/Http/Controllers/Common/Reports.php b/app/Http/Controllers/Common/Reports.php index fb8361b01..1aa468798 100644 --- a/app/Http/Controllers/Common/Reports.php +++ b/app/Http/Controllers/Common/Reports.php @@ -24,6 +24,7 @@ class Reports extends Controller $this->middleware('permission:update-common-reports')->only('edit', 'update', 'enable', 'disable'); $this->middleware('permission:delete-common-reports')->only('destroy'); } + /** * Display a listing of the resource. * @@ -271,16 +272,17 @@ class Reports extends Controller * * @return Response */ - public function clear() + public function clear(Report $report) { - Report::all()->each(function ($report) { - if (!Utility::canShow($report->class)) { - return; - } + $data = Utility::getClassInstance($report)->getGrandTotal(); - Cache::put('reports.totals.' . $report->id, Utility::getClassInstance($report)->getGrandTotal()); - }); + Cache::put('reports.totals.' . $report->id, $data); - return redirect()->back(); + return response()->json([ + 'success' => true, + 'error' => false, + 'data' => $data, + 'message' => '', + ]); } } diff --git a/resources/assets/js/views/common/reports.js b/resources/assets/js/views/common/reports.js index bcd084f29..d515ccff2 100644 --- a/resources/assets/js/views/common/reports.js +++ b/resources/assets/js/views/common/reports.js @@ -30,9 +30,14 @@ const app = new Vue({ form: new Form('report'), bulk_action: new BulkAction('reports'), report_fields: '', + reports_total: [], } }, + created() { + this.reports_total = reports_total; + }, + methods: { onChangeClass(class_name) { axios.get(url + '/common/reports/fields', { @@ -76,6 +81,15 @@ const app = new Vue({ onChangeReportFields(event) { this.form = event; - } + }, + + onRefreshTotal(report_id) { + axios.get(url + '/common/reports/' + report_id + '/clear') + .then(response => { + this.reports_total[report_id] = response.data.data; + }) + .catch(error => { + }); + }, } }); diff --git a/resources/views/common/reports/index.blade.php b/resources/views/common/reports/index.blade.php index f891d8489..1ef67a888 100644 --- a/resources/views/common/reports/index.blade.php +++ b/resources/views/common/reports/index.blade.php @@ -6,7 +6,6 @@ @can('create-common-reports') {{ trans('general.add_new') }} @endcan - {{ trans('general.clear_cache') }} @endsection @section('content') @@ -25,14 +24,17 @@ +