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;
use App\Models\Sale\Invoice;
use App\Traits\Charts;
use Date;
@ -12,21 +11,39 @@ abstract class Widget
public $model;
public $default_name = '';
public $default_settings = [
'width' => 'col-md-4',
];
public $views = [
'header' => 'partials.widgets.standard_header',
];
public function __construct($model = null)
{
$this->model = $model;
}
public function getDefaultName()
{
return trans($this->default_name);
}
public function getDefaultSettings()
{
return [
'width' => 'col-md-4',
];
return $this->default_settings;
}
public function getViews()
{
return $this->views;
}
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'])

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -11,12 +11,12 @@
'type' => 'button',
'class' => 'dropdown-item',
'title' => trans('general.edit'),
'@click' => 'onEditWidget(' . $model->id . ')'
'@click' => 'onEditWidget(' . $class->model->id . ')'
]) !!}
@endpermission
@permission('delete-common-widgets')
<div class="dropdown-divider"></div>
{!! Form::deleteLink($model, 'common/widgets') !!}
{!! Form::deleteLink($class->model, 'common/widgets') !!}
@endpermission
</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">
@include('partials.widgets.standard_header', ['header_class' => 'border-bottom-0'])
@include($class->views['header'], ['header_class' => 'border-bottom-0'])
<div class="table-responsive">
<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">
@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">
{!! $chart->container() !!}
</div>
@ -12,8 +12,8 @@
@push('charts')
<script>
var widget_donut_{{ $model->id }} = new Vue({
el: '#widget-donut-{{ $model->id }}',
var widget_donut_{{ $class->model->id }} = new Vue({
el: '#widget-donut-{{ $class->model->id }}',
});
</script>
@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">
@include('partials.widgets.standard_header', ['header_class' => 'border-bottom-0'])
@include($class->views['header'], ['header_class' => 'border-bottom-0'])
<div class="table-responsive">
<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">
@include('partials.widgets.standard_header', ['header_class' => 'border-bottom-0'])
@include($class->views['header'], ['header_class' => 'border-bottom-0'])
<div class="table-responsive">
<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">
@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">
{!! $chart->container() !!}
</div>
@ -12,8 +12,8 @@
@push('charts')
<script>
var widget_line_{{ $model->id }} = new Vue({
el: '#widget-line-{{ $model->id }}',
var widget_line_{{ $class->model->id }} = new Vue({
el: '#widget-line-{{ $class->model->id }}',
});
</script>
@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">
@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="row">
<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>
</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">
@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="row">
<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>
</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">
@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="row">
<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>
</div>