From c9933331eccfc0dbd8c2608cf5581633b415656c Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Mon, 12 Feb 2018 14:55:56 +0200 Subject: [PATCH] Proposals --- app/Http/Controllers/ProposalController.php | 32 ++++++++++++------- resources/lang/en/texts.php | 4 +++ resources/views/proposals/edit.blade.php | 2 +- .../views/proposals/templates/edit.blade.php | 5 ++- 4 files changed, 30 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/ProposalController.php b/app/Http/Controllers/ProposalController.php index 71ddb3cd22bf..7d06ac274bc0 100644 --- a/app/Http/Controllers/ProposalController.php +++ b/app/Http/Controllers/ProposalController.php @@ -58,19 +58,15 @@ class ProposalController extends BaseController public function create(ProposalRequest $request) { - $account = auth()->user()->account; - - $data = [ - 'account' => $account, + $data = array_merge($this->getViewmodel(), [ 'proposal' => null, 'method' => 'POST', 'url' => 'proposals', 'title' => trans('texts.new_proposal'), '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); } @@ -84,24 +80,38 @@ class ProposalController extends BaseController public function edit(ProposalRequest $request) { - $account = auth()->user()->account; $proposal = $request->entity(); - $data = [ - 'account' => $account, + $data = array_merge($this->getViewmodel(), [ 'proposal' => $proposal, 'method' => 'PUT', 'url' => 'proposals/' . $proposal->public_id, 'title' => trans('texts.edit_proposal'), 'invoices' => Invoice::scope()->with('client.contacts', 'client.country')->unapprovedQuotes($proposal->invoice_id)->orderBy('id')->get(), - 'templates' => ProposalTemplate::whereAccountId($account->id)->orWhereNull('account_id')->orderBy('name')->get(), 'invoicePublicId' => $proposal->invoice ? $proposal->invoice->public_id : null, 'templatePublicId' => $proposal->proposal_template ? $proposal->proposal_template->public_id : null, - ]; + ]); return View::make('proposals.edit', $data); } + private function getViewmodel() + { + $account = auth()->user()->account; + $templates = ProposalTemplate::whereAccountId($account->id)->orderBy('name')->get(); + + if (! $templates->count()) { + $templates = ProposalTemplate::whereNull('account_id')->orderBy('name')->get(); + } + + $data = [ + 'templates' => $templates, + 'account' => $account, + ]; + + return $data; + } + public function store(CreateProposalRequest $request) { $proposal = $this->proposalService->save($request->input()); diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php index dc89429d56f7..366e9fe8a94a 100644 --- a/resources/lang/en/texts.php +++ b/resources/lang/en/texts.php @@ -2677,6 +2677,7 @@ $LANG = array( 'archived_proposals' => 'Successfully archived :count proposals', 'deleted_proposals' => 'Successfully archived :count proposals', 'restored_proposal' => 'Successfully restored proposal', + 'restore_proposal' => 'Restore Proposal', 'snippet' => 'Snippet', 'snippets' => 'Snippets', 'proposal_snippet' => 'Snippet', @@ -2693,6 +2694,7 @@ $LANG = array( 'archived_proposal_snippets' => 'Successfully archived :count snippets', 'deleted_proposal_snippets' => 'Successfully archived :count snippets', 'restored_proposal_snippet' => 'Successfully restored snippet', + 'restore_proposal_snippet' => 'Restore Snippet', 'template' => 'Template', 'templates' => 'Templates', 'proposal_template' => 'Template', @@ -2709,6 +2711,7 @@ $LANG = array( 'archived_proposal_templates' => 'Successfully archived :count templates', 'deleted_proposal_templates' => 'Successfully archived :count templates', 'restored_proposal_template' => 'Successfully restored template', + 'restore_proposal_template' => 'Restore Template', 'proposal_category' => 'Category', 'proposal_categories' => 'Categories', 'new_proposal_category' => 'New Category', @@ -2723,6 +2726,7 @@ $LANG = array( 'archived_proposal_categories' => 'Successfully archived :count categories', 'deleted_proposal_categories' => 'Successfully archived :count categories', 'restored_proposal_category' => 'Successfully restored category', + 'restore_proposal_category' => 'Restore Category', 'delete_status' => 'Delete Status', 'standard' => 'Standard', 'icon' => 'Icon', diff --git a/resources/views/proposals/edit.blade.php b/resources/views/proposals/edit.blade.php index 69e3b32c1e22..6201711f4a9d 100644 --- a/resources/views/proposals/edit.blade.php +++ b/resources/views/proposals/edit.blade.php @@ -128,7 +128,7 @@ var html = mergeTemplate(template.html); - // grapesjsEditor.CssComposer.getAll().reset(); + grapesjsEditor.CssComposer.getAll().reset(); grapesjsEditor.setComponents(html); grapesjsEditor.setStyle(template.css); } diff --git a/resources/views/proposals/templates/edit.blade.php b/resources/views/proposals/templates/edit.blade.php index 0cc185ec89dd..df10a0171934 100644 --- a/resources/views/proposals/templates/edit.blade.php +++ b/resources/views/proposals/templates/edit.blade.php @@ -100,7 +100,10 @@ var template = customTemplateMap[templateId]; } - + grapesjsEditor.CssComposer.getAll().reset(); + grapesjsEditor.setComponents(template.html); + grapesjsEditor.setStyle(template.css); + $('.template-select').val(null).blur(); }