updated widgets

This commit is contained in:
denisdulici 2020-01-16 00:42:20 +03:00
parent 546cff476d
commit 0430dc5f36
20 changed files with 79 additions and 128 deletions

View File

@ -2,7 +2,6 @@
namespace App\Abstracts; namespace App\Abstracts;
use App\Models\Sale\Invoice;
use App\Traits\Charts; use App\Traits\Charts;
use Date; use Date;
@ -12,21 +11,39 @@ abstract class Widget
public $model; public $model;
public $default_name = '';
public $default_settings = [
'width' => 'col-md-4',
];
public $views = [
'header' => 'partials.widgets.standard_header',
];
public function __construct($model = null) public function __construct($model = null)
{ {
$this->model = $model; $this->model = $model;
} }
public function getDefaultName()
{
return trans($this->default_name);
}
public function getDefaultSettings() public function getDefaultSettings()
{ {
return [ return $this->default_settings;
'width' => 'col-md-4', }
];
public function getViews()
{
return $this->views;
} }
public function view($name, $data = []) public function view($name, $data = [])
{ {
return view($name, array_merge(['model' => $this->model], (array) $data)); return view($name, array_merge(['class' => $this], (array) $data));
} }
public function applyFilters($model, $args = ['date_field' => 'paid_at']) public function applyFilters($model, $args = ['date_field' => 'paid_at'])

View File

@ -7,17 +7,7 @@ use App\Models\Banking\Account;
class AccountBalance extends Widget class AccountBalance extends Widget
{ {
public function getDefaultName() public $default_name = 'widgets.account_balance';
{
return trans('widgets.account_balance');
}
public function getDefaultSettings()
{
return [
'width' => 'col-md-4',
];
}
public function show() public function show()
{ {

View File

@ -13,17 +13,11 @@ class CashFlow extends Widget
{ {
use Currencies, DateTime; use Currencies, DateTime;
public function getDefaultName() public $default_name = 'widgets.cash_flow';
{
return trans('widgets.cash_flow');
}
public function getDefaultSettings() public $default_settings = [
{ 'width' => 'col-md-12',
return [ ];
'width' => 'col-md-12',
];
}
public function show() public function show()
{ {

View File

@ -7,17 +7,11 @@ use App\Models\Setting\Category;
class ExpensesByCategory extends Widget class ExpensesByCategory extends Widget
{ {
public function getDefaultName() public $default_name = 'widgets.expenses_by_category';
{
return trans('widgets.expenses_by_category');
}
public function getDefaultSettings() public $default_settings = [
{ 'width' => 'col-md-6',
return [ ];
'width' => 'col-md-6',
];
}
public function show() public function show()
{ {

View File

@ -7,17 +7,11 @@ use App\Models\Setting\Category;
class IncomeByCategory extends Widget class IncomeByCategory extends Widget
{ {
public function getDefaultName() public $default_name = 'widgets.income_by_category';
{
return trans('widgets.income_by_category');
}
public function getDefaultSettings() public $default_settings = [
{ 'width' => 'col-md-6',
return [ ];
'width' => 'col-md-6',
];
}
public function show() public function show()
{ {

View File

@ -7,17 +7,7 @@ use App\Models\Banking\Transaction;
class LatestExpenses extends Widget class LatestExpenses extends Widget
{ {
public function getDefaultName() public $default_name = 'widgets.latest_expenses';
{
return trans('widgets.latest_expenses');
}
public function getDefaultSettings()
{
return [
'width' => 'col-md-4',
];
}
public function show() public function show()
{ {

View File

@ -7,17 +7,7 @@ use App\Models\Banking\Transaction;
class LatestIncome extends Widget class LatestIncome extends Widget
{ {
public function getDefaultName() public $default_name = 'widgets.latest_income';
{
return trans('widgets.latest_income');
}
public function getDefaultSettings()
{
return [
'width' => 'col-md-4',
];
}
public function show() public function show()
{ {

View File

@ -8,17 +8,11 @@ use App\Models\Purchase\Bill;
class TotalExpenses extends Widget class TotalExpenses extends Widget
{ {
public function getDefaultName() public $default_name = 'widgets.total_expenses';
{
return trans('widgets.total_expenses');
}
public function getDefaultSettings() public $views = [
{ 'header' => 'partials.widgets.stats_header',
return [ ];
'width' => 'col-md-4',
];
}
public function show() public function show()
{ {

View File

@ -8,17 +8,11 @@ use App\Models\Sale\Invoice;
class TotalIncome extends Widget class TotalIncome extends Widget
{ {
public function getDefaultName() public $default_name = 'widgets.total_income';
{
return trans('widgets.total_income');
}
public function getDefaultSettings() public $views = [
{ 'header' => 'partials.widgets.stats_header',
return [ ];
'width' => 'col-md-4',
];
}
public function show() public function show()
{ {

View File

@ -9,17 +9,11 @@ use App\Models\Sale\Invoice;
class TotalProfit extends Widget class TotalProfit extends Widget
{ {
public function getDefaultName() public $default_name = 'widgets.total_profit';
{
return trans('widgets.total_profit');
}
public function getDefaultSettings() public $views = [
{ 'header' => 'partials.widgets.stats_header',
return [ ];
'width' => 'col-md-4',
];
}
public function show() public function show()
{ {

View File

@ -3,7 +3,7 @@
<div class="row align-items-center"> <div class="row align-items-center">
<div class="col-6 text-nowrap"> <div class="col-6 text-nowrap">
<h4 class="mb-0">{{ $model->name }}</h4> <h4 class="mb-0">{{ $class->model->name }}</h4>
</div> </div>
<div class="col-6 hidden-sm"> <div class="col-6 hidden-sm">
@ -19,12 +19,12 @@
'type' => 'button', 'type' => 'button',
'class' => 'dropdown-item', 'class' => 'dropdown-item',
'title' => trans('general.edit'), 'title' => trans('general.edit'),
'@click' => 'onEditWidget(' . $model->id . ')' '@click' => 'onEditWidget(' . $class->model->id . ')'
]) !!} ]) !!}
@endpermission @endpermission
@permission('delete-common-widgets') @permission('delete-common-widgets')
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
{!! Form::deleteLink($model, 'common/widgets') !!} {!! Form::deleteLink($class->model, 'common/widgets') !!}
@endpermission @endpermission
</div> </div>
</div> </div>

View File

@ -11,12 +11,12 @@
'type' => 'button', 'type' => 'button',
'class' => 'dropdown-item', 'class' => 'dropdown-item',
'title' => trans('general.edit'), 'title' => trans('general.edit'),
'@click' => 'onEditWidget(' . $model->id . ')' '@click' => 'onEditWidget(' . $class->model->id . ')'
]) !!} ]) !!}
@endpermission @endpermission
@permission('delete-common-widgets') @permission('delete-common-widgets')
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
{!! Form::deleteLink($model, 'common/widgets') !!} {!! Form::deleteLink($class->model, 'common/widgets') !!}
@endpermission @endpermission
</div> </div>
</div> </div>

View File

@ -1,6 +1,6 @@
<div id="widget-{{ $model->id }}" class="{{ $model->settings->width }}"> <div id="widget-{{ $class->model->id }}" class="{{ $class->model->settings->width }}">
<div class="card"> <div class="card">
@include('partials.widgets.standard_header', ['header_class' => 'border-bottom-0']) @include($class->views['header'], ['header_class' => 'border-bottom-0'])
<div class="table-responsive"> <div class="table-responsive">
<table class="table align-items-center table-flush"> <table class="table align-items-center table-flush">

View File

@ -1,8 +1,8 @@
<div id="widget-{{ $model->id }}" class="{{ $model->settings->width }}"> <div id="widget-{{ $class->model->id }}" class="{{ $class->model->settings->width }}">
<div class="card"> <div class="card">
@include('partials.widgets.standard_header') @include($class->views['header'])
<div class="card-body" id="widget-donut-{{ $model->id }}"> <div class="card-body" id="widget-donut-{{ $class->model->id }}">
<div class="chart-donut"> <div class="chart-donut">
{!! $chart->container() !!} {!! $chart->container() !!}
</div> </div>
@ -12,8 +12,8 @@
@push('charts') @push('charts')
<script> <script>
var widget_donut_{{ $model->id }} = new Vue({ var widget_donut_{{ $class->model->id }} = new Vue({
el: '#widget-donut-{{ $model->id }}', el: '#widget-donut-{{ $class->model->id }}',
}); });
</script> </script>
@endpush @endpush

View File

@ -1,6 +1,6 @@
<div id="widget-{{ $model->id }}" class="{{ $model->settings->width }}"> <div id="widget-{{ $class->model->id }}" class="{{ $class->model->settings->width }}">
<div class="card"> <div class="card">
@include('partials.widgets.standard_header', ['header_class' => 'border-bottom-0']) @include($class->views['header'], ['header_class' => 'border-bottom-0'])
<div class="table-responsive"> <div class="table-responsive">
<table class="table align-items-center table-flush"> <table class="table align-items-center table-flush">

View File

@ -1,6 +1,6 @@
<div id="widget-{{ $model->id }}" class="{{ $model->settings->width }}"> <div id="widget-{{ $class->model->id }}" class="{{ $class->model->settings->width }}">
<div class="card"> <div class="card">
@include('partials.widgets.standard_header', ['header_class' => 'border-bottom-0']) @include($class->views['header'], ['header_class' => 'border-bottom-0'])
<div class="table-responsive"> <div class="table-responsive">
<table class="table align-items-center table-flush"> <table class="table align-items-center table-flush">

View File

@ -1,8 +1,8 @@
<div id="widget-{{ $model->id }}" class="{{ $model->settings->width }}"> <div id="widget-{{ $class->model->id }}" class="{{ $class->model->settings->width }}">
<div class="card"> <div class="card">
@include('partials.widgets.standard_header') @include($class->views['header'])
<div class="card-body" id="widget-line-{{ $model->id }}"> <div class="card-body" id="widget-line-{{ $class->model->id }}">
<div class="chart"> <div class="chart">
{!! $chart->container() !!} {!! $chart->container() !!}
</div> </div>
@ -12,8 +12,8 @@
@push('charts') @push('charts')
<script> <script>
var widget_line_{{ $model->id }} = new Vue({ var widget_line_{{ $class->model->id }} = new Vue({
el: '#widget-line-{{ $model->id }}', el: '#widget-line-{{ $class->model->id }}',
}); });
</script> </script>
@endpush @endpush

View File

@ -1,11 +1,11 @@
<div id="widget-{{ $model->id }}" class="{{ $model->settings->width }}"> <div id="widget-{{ $class->model->id }}" class="{{ $class->model->settings->width }}">
<div class="card bg-gradient-danger card-stats"> <div class="card bg-gradient-danger card-stats">
@include('partials.widgets.stats_header', ['header_class' => 'border-bottom-0']) @include($class->views['header'], ['header_class' => 'border-bottom-0'])
<div class="card-body"> <div class="card-body">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<h5 class="text-uppercase text-white mb-0">{{ $model->name }}</h5> <h5 class="text-uppercase text-white mb-0">{{ $class->model->name }}</h5>
<span class="font-weight-bold text-white mb-0">@money($totals['current'], setting('default.currency'), true)</span> <span class="font-weight-bold text-white mb-0">@money($totals['current'], setting('default.currency'), true)</span>
</div> </div>

View File

@ -1,11 +1,11 @@
<div id="widget-{{ $model->id }}" class="{{ $model->settings->width }}"> <div id="widget-{{ $class->model->id }}" class="{{ $class->model->settings->width }}">
<div class="card bg-gradient-info card-stats"> <div class="card bg-gradient-info card-stats">
@include('partials.widgets.stats_header', ['header_class' => 'border-bottom-0']) @include($class->views['header'], ['header_class' => 'border-bottom-0'])
<div class="card-body"> <div class="card-body">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<h5 class="text-uppercase text-white mb-0">{{ $model->name }}</h5> <h5 class="text-uppercase text-white mb-0">{{ $class->model->name }}</h5>
<span class="font-weight-bold text-white mb-0">@money($totals['current'], setting('default.currency'), true)</span> <span class="font-weight-bold text-white mb-0">@money($totals['current'], setting('default.currency'), true)</span>
</div> </div>

View File

@ -1,11 +1,11 @@
<div id="widget-{{ $model->id }}" class="{{ $model->settings->width }}"> <div id="widget-{{ $class->model->id }}" class="{{ $class->model->settings->width }}">
<div class="card bg-gradient-success card-stats"> <div class="card bg-gradient-success card-stats">
@include('partials.widgets.stats_header', ['header_class' => 'border-bottom-0']) @include($class->views['header'], ['header_class' => 'border-bottom-0'])
<div class="card-body"> <div class="card-body">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<h5 class="text-uppercase text-white mb-0">{{ $model->name }}</h5> <h5 class="text-uppercase text-white mb-0">{{ $class->model->name }}</h5>
<span class="font-weight-bold text-white mb-0">@money($totals['current'], setting('default.currency'), true)</span> <span class="font-weight-bold text-white mb-0">@money($totals['current'], setting('default.currency'), true)</span>
</div> </div>