duplicate report

This commit is contained in:
denisdulici 2020-01-26 02:21:34 +03:00
parent daf46b843a
commit bb12d411df
5 changed files with 28 additions and 2 deletions

View File

@ -22,7 +22,7 @@ class Reports extends Controller
{ {
$totals = $icons = $categories = []; $totals = $icons = $categories = [];
$reports = Report::all(); $reports = Report::orderBy('name')->get();
foreach ($reports as $report) { foreach ($reports as $report) {
if (!Utility::canRead($report->class)) { if (!Utility::canRead($report->class)) {
@ -103,6 +103,24 @@ class Reports extends Controller
return response()->json($response); return response()->json($response);
} }
/**
* Duplicate the specified resource.
*
* @param Report $report
*
* @return Response
*/
public function duplicate(Report $report)
{
$clone = $report->duplicate();
$message = trans('messages.success.duplicated', ['type' => trans_choice('general.reports', 1)]);
flash($message)->success();
return redirect()->route('reports.edit', $clone->id);
}
/** /**
* Show the form for editing the specified resource. * Show the form for editing the specified resource.
* *

View File

@ -3,9 +3,12 @@
namespace App\Models\Common; namespace App\Models\Common;
use App\Abstracts\Model; use App\Abstracts\Model;
use Bkwld\Cloner\Cloneable;
class Report extends Model class Report extends Model
{ {
use Cloneable;
protected $table = 'reports'; protected $table = 'reports';
/** /**

View File

@ -82,8 +82,8 @@
</a> </a>
<div class="dropdown-menu dropdown-menu-right dropdown-menu-arrow"> <div class="dropdown-menu dropdown-menu-right dropdown-menu-arrow">
<a class="dropdown-item" href="{{ route('items.edit', $item->id) }}">{{ trans('general.edit') }}</a> <a class="dropdown-item" href="{{ route('items.edit', $item->id) }}">{{ trans('general.edit') }}</a>
<div class="dropdown-divider"></div>
@permission('create-common-items') @permission('create-common-items')
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{{ route('items.duplicate', $item->id) }}">{{ trans('general.duplicate') }}</a> <a class="dropdown-item" href="{{ route('items.duplicate', $item->id) }}">{{ trans('general.duplicate') }}</a>
@endpermission @endpermission
@permission('delete-common-items') @permission('delete-common-items')

View File

@ -29,6 +29,10 @@
<a class="dropdown-item" href="{{ route('reports.edit', $report->id) }}">{{ trans('general.edit') }}</a> <a class="dropdown-item" href="{{ route('reports.edit', $report->id) }}">{{ trans('general.edit') }}</a>
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
@endpermission @endpermission
@permission('create-common-reports')
<a class="dropdown-item" href="{{ route('reports.duplicate', $report->id) }}">{{ trans('general.duplicate') }}</a>
<div class="dropdown-divider"></div>
@endpermission
@permission('delete-common-reports') @permission('delete-common-reports')
{!! Form::deleteLink($report, 'common/reports') !!} {!! Form::deleteLink($report, 'common/reports') !!}
@endpermission @endpermission

View File

@ -37,6 +37,7 @@ Route::group(['prefix' => 'common'], function () {
Route::get('reports/{report}/print', 'Common\Reports@print')->name('reports.print'); Route::get('reports/{report}/print', 'Common\Reports@print')->name('reports.print');
Route::get('reports/{report}/export', 'Common\Reports@export')->name('reports.export'); Route::get('reports/{report}/export', 'Common\Reports@export')->name('reports.export');
Route::get('reports/{report}/duplicate', 'Common\Reports@duplicate')->name('reports.duplicate');
Route::get('reports/clear', 'Common\Reports@clear')->name('reports.clear'); Route::get('reports/clear', 'Common\Reports@clear')->name('reports.clear');
Route::get('reports/fields', 'Common\Reports@fields')->name('reports.fields'); Route::get('reports/fields', 'Common\Reports@fields')->name('reports.fields');
Route::resource('reports', 'Common\Reports'); Route::resource('reports', 'Common\Reports');