From a59a59ebd2ff9b5485c9490ace4fe59786a58481 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Fri, 9 Feb 2018 16:02:28 +0200 Subject: [PATCH] Proposals --- app/Http/Controllers/ProposalController.php | 1 + app/Ninja/Datatables/ProposalTemplateDatatable.php | 9 +++++++++ resources/views/proposals/edit.blade.php | 5 +++++ resources/views/proposals/templates/edit.blade.php | 1 + routes/web.php | 2 +- 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/ProposalController.php b/app/Http/Controllers/ProposalController.php index 0dfa74971fcd..0824cb51c17c 100644 --- a/app/Http/Controllers/ProposalController.php +++ b/app/Http/Controllers/ProposalController.php @@ -63,6 +63,7 @@ class ProposalController extends BaseController 'invoices' => Invoice::scope()->with('client.contacts', 'client.country')->unapprovedQuotes()->orderBy('id')->get(), 'templates' => ProposalTemplate::whereAccountId($account->id)->orWhereNull('account_id')->orderBy('name')->get(), 'invoicePublicId' => $request->invoice_id, + 'templatePublicId' => $request->proposal_template_id, ]; return View::make('proposals.edit', $data); diff --git a/app/Ninja/Datatables/ProposalTemplateDatatable.php b/app/Ninja/Datatables/ProposalTemplateDatatable.php index b7564845e89c..9b18798bbd95 100644 --- a/app/Ninja/Datatables/ProposalTemplateDatatable.php +++ b/app/Ninja/Datatables/ProposalTemplateDatatable.php @@ -62,6 +62,15 @@ class ProposalTemplateDatatable extends EntityDatatable return Auth::user()->can('editByOwner', [ENTITY_PROPOSAL_TEMPLATE, $model->user_id]); }, ], + [ + trans('texts.new_proposal'), + function ($model) { + return URL::to("proposals/create/0/{$model->public_id}"); + }, + function ($model) { + return Auth::user()->can('create', [ENTITY_PROPOSAL, $model->user_id]); + }, + ], ]; } } diff --git a/resources/views/proposals/edit.blade.php b/resources/views/proposals/edit.blade.php index d06c82ef8d0a..a67630d9bd76 100644 --- a/resources/views/proposals/edit.blade.php +++ b/resources/views/proposals/edit.blade.php @@ -174,6 +174,7 @@ @include('partials/entity_combobox', ['entityType' => ENTITY_PROPOSAL_TEMPLATE]) if (templateId) { var template = templateMap[templateId]; + $proposal_templateSelect.val(template.public_id); setComboboxValue($('.template-select'), template.public_id, template.name); } $proposal_templateSelect.change(loadTemplate); @@ -190,6 +191,10 @@ var html = mergeTemplate(grapesjsEditor.getHtml()); grapesjsEditor.setComponents(html); }); + + @if (! $proposal && $templatePublicId) + loadTemplate(); + @endif }); diff --git a/resources/views/proposals/templates/edit.blade.php b/resources/views/proposals/templates/edit.blade.php index 6dc14065dfd6..2202a5cd2510 100644 --- a/resources/views/proposals/templates/edit.blade.php +++ b/resources/views/proposals/templates/edit.blade.php @@ -62,6 +62,7 @@ @if ($template) {!! Button::primary(trans('texts.new_proposal')) + ->appendIcon(Icon::create('plus-sign')) ->asLinkTo(url('/proposals/create/0/' . $template->public_id)) !!} @endif diff --git a/routes/web.php b/routes/web.php index 8798fe47db42..241630974321 100644 --- a/routes/web.php +++ b/routes/web.php @@ -227,7 +227,7 @@ Route::group(['middleware' => ['lookup:user', 'auth:user']], function () { Route::post('proposals/proposals/bulk', 'ProposalController@bulk'); Route::get('proposals/{proposals}/edit', 'ProposalController@edit'); - Route::get('proposals/create/{invoice_id?}', 'ProposalController@create'); + Route::get('proposals/create/{invoice_id?}/{proposal_template_id?}', 'ProposalController@create'); Route::resource('proposals', 'ProposalController'); Route::get('api/proposals', 'ProposalController@getDatatable');