From 42ca35240932e51a8ca522f305e7840a964cae4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Tue, 17 Nov 2020 13:23:16 +0100 Subject: [PATCH 01/86] Fix issue with webhook handler --- app/Observers/ClientObserver.php | 6 +++--- app/Observers/ExpenseObserver.php | 6 +++--- app/Observers/InvoiceObserver.php | 6 +++--- app/Observers/PaymentObserver.php | 4 ++-- app/Observers/QuoteObserver.php | 6 +++--- app/Observers/TaskObserver.php | 6 +++--- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/app/Observers/ClientObserver.php b/app/Observers/ClientObserver.php index 6a46c9347fb3..61e2494f7b62 100644 --- a/app/Observers/ClientObserver.php +++ b/app/Observers/ClientObserver.php @@ -25,7 +25,7 @@ class ClientObserver */ public function created(Client $client) { - WebhookHandler::dispatch(Webhook::EVENT_CREATE_CLIENT, $client); + WebhookHandler::dispatch(Webhook::EVENT_CREATE_CLIENT, $client, $client->company); } /** @@ -36,7 +36,7 @@ class ClientObserver */ public function updated(Client $client) { - WebhookHandler::dispatch(Webhook::EVENT_UPDATE_CLIENT, $client); + WebhookHandler::dispatch(Webhook::EVENT_UPDATE_CLIENT, $client, $client->company); } /** @@ -47,7 +47,7 @@ class ClientObserver */ public function deleted(Client $client) { - WebhookHandler::dispatch(Webhook::EVENT_DELETE_CLIENT, $client); + WebhookHandler::dispatch(Webhook::EVENT_DELETE_CLIENT, $client, $client->company); } /** diff --git a/app/Observers/ExpenseObserver.php b/app/Observers/ExpenseObserver.php index 9c3b6b32c875..f1f3a80c672d 100644 --- a/app/Observers/ExpenseObserver.php +++ b/app/Observers/ExpenseObserver.php @@ -25,7 +25,7 @@ class ExpenseObserver */ public function created(Expense $expense) { - WebhookHandler::dispatch(Webhook::EVENT_CREATE_EXPENSE, $expense); + WebhookHandler::dispatch(Webhook::EVENT_CREATE_EXPENSE, $expense, $expense->company); } /** @@ -36,7 +36,7 @@ class ExpenseObserver */ public function updated(Expense $expense) { - WebhookHandler::dispatch(Webhook::EVENT_UPDATE_EXPENSE, $expense); + WebhookHandler::dispatch(Webhook::EVENT_UPDATE_EXPENSE, $expense, $expense->company); } /** @@ -47,7 +47,7 @@ class ExpenseObserver */ public function deleted(Expense $expense) { - WebhookHandler::dispatch(Webhook::EVENT_DELETE_EXPENSE, $expense); + WebhookHandler::dispatch(Webhook::EVENT_DELETE_EXPENSE, $expense, $expense->company); } /** diff --git a/app/Observers/InvoiceObserver.php b/app/Observers/InvoiceObserver.php index e777b807b5f2..16a735f7d775 100644 --- a/app/Observers/InvoiceObserver.php +++ b/app/Observers/InvoiceObserver.php @@ -26,7 +26,7 @@ class InvoiceObserver */ public function created(Invoice $invoice) { - WebhookHandler::dispatch(Webhook::EVENT_CREATE_INVOICE, $invoice); + WebhookHandler::dispatch(Webhook::EVENT_CREATE_INVOICE, $invoice, $invoice->expense); } /** @@ -37,7 +37,7 @@ class InvoiceObserver */ public function updated(Invoice $invoice) { - WebhookHandler::dispatch(Webhook::EVENT_UPDATE_INVOICE, $invoice); + WebhookHandler::dispatch(Webhook::EVENT_UPDATE_INVOICE, $invoice, $invoice->company); } /** @@ -48,7 +48,7 @@ class InvoiceObserver */ public function deleted(Invoice $invoice) { - WebhookHandler::dispatch(Webhook::EVENT_DELETE_INVOICE, $invoice); + WebhookHandler::dispatch(Webhook::EVENT_DELETE_INVOICE, $invoice, $invoice->company); } /** diff --git a/app/Observers/PaymentObserver.php b/app/Observers/PaymentObserver.php index c425ef1c1e20..0706c5600966 100644 --- a/app/Observers/PaymentObserver.php +++ b/app/Observers/PaymentObserver.php @@ -26,7 +26,7 @@ class PaymentObserver */ public function created(Payment $payment) { - WebhookHandler::dispatch(Webhook::EVENT_CREATE_PAYMENT, $payment); + WebhookHandler::dispatch(Webhook::EVENT_CREATE_PAYMENT, $payment, $payment->company); } /** @@ -47,7 +47,7 @@ class PaymentObserver */ public function deleted(Payment $payment) { - WebhookHandler::dispatch(Webhook::EVENT_DELETE_PAYMENT, $payment); + WebhookHandler::dispatch(Webhook::EVENT_DELETE_PAYMENT, $payment, $payment->company); } /** diff --git a/app/Observers/QuoteObserver.php b/app/Observers/QuoteObserver.php index 3dc3281159ff..0c69048d7b9e 100644 --- a/app/Observers/QuoteObserver.php +++ b/app/Observers/QuoteObserver.php @@ -25,7 +25,7 @@ class QuoteObserver */ public function created(Quote $quote) { - WebhookHandler::dispatch(Webhook::EVENT_CREATE_QUOTE, $quote); + WebhookHandler::dispatch(Webhook::EVENT_CREATE_QUOTE, $quote, $quote->company); } /** @@ -36,7 +36,7 @@ class QuoteObserver */ public function updated(Quote $quote) { - WebhookHandler::dispatch(Webhook::EVENT_UPDATE_QUOTE, $quote); + WebhookHandler::dispatch(Webhook::EVENT_UPDATE_QUOTE, $quote, $quote->company); } /** @@ -47,7 +47,7 @@ class QuoteObserver */ public function deleted(Quote $quote) { - WebhookHandler::dispatch(Webhook::EVENT_DELETE_QUOTE, $quote); + WebhookHandler::dispatch(Webhook::EVENT_DELETE_QUOTE, $quote, $quote->company); } /** diff --git a/app/Observers/TaskObserver.php b/app/Observers/TaskObserver.php index 25ebb1ea0bfc..9bbfc38d6be4 100644 --- a/app/Observers/TaskObserver.php +++ b/app/Observers/TaskObserver.php @@ -25,7 +25,7 @@ class TaskObserver */ public function created(Task $task) { - WebhookHandler::dispatch(Webhook::EVENT_CREATE_TASK, $task); + WebhookHandler::dispatch(Webhook::EVENT_CREATE_TASK, $task, $task->company); } /** @@ -36,7 +36,7 @@ class TaskObserver */ public function updated(Task $task) { - WebhookHandler::dispatch(Webhook::EVENT_UPDATE_TASK, $task); + WebhookHandler::dispatch(Webhook::EVENT_UPDATE_TASK, $task, $task->company); } /** @@ -47,7 +47,7 @@ class TaskObserver */ public function deleted(Task $task) { - WebhookHandler::dispatch(Webhook::EVENT_DELETE_TASK, $task); + WebhookHandler::dispatch(Webhook::EVENT_DELETE_TASK, $task, $task->company); } /** From 2144153e415820c5d2e2fb411155fb895ba633f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Tue, 17 Nov 2020 13:28:13 +0100 Subject: [PATCH 02/86] pass correct company --- app/Observers/InvoiceObserver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Observers/InvoiceObserver.php b/app/Observers/InvoiceObserver.php index 16a735f7d775..13310982423d 100644 --- a/app/Observers/InvoiceObserver.php +++ b/app/Observers/InvoiceObserver.php @@ -26,7 +26,7 @@ class InvoiceObserver */ public function created(Invoice $invoice) { - WebhookHandler::dispatch(Webhook::EVENT_CREATE_INVOICE, $invoice, $invoice->expense); + WebhookHandler::dispatch(Webhook::EVENT_CREATE_INVOICE, $invoice, $invoice->company); } /** From 3112efcdeddf4e94476026074bd8334868bf341d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Tue, 17 Nov 2020 14:46:22 +0100 Subject: [PATCH 03/86] Support for .description --- app/Services/PdfMaker/Design.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Services/PdfMaker/Design.php b/app/Services/PdfMaker/Design.php index 2043d73eaaa0..c5174df408b3 100644 --- a/app/Services/PdfMaker/Design.php +++ b/app/Services/PdfMaker/Design.php @@ -367,7 +367,7 @@ class Design extends BaseDesign $element['elements'][] = ['element' => 'td', 'content' => $row['$task.cost']]; } else if ($cell == '$task.hours') { $element['elements'][] = ['element' => 'td', 'content' => $row['$task.quantity']]; - } else if ($cell == '$task.notes') { + } else if ($cell == '$task.description') { $_element = ['element' => 'td', 'content' => '', 'elements' => [ ['element' => 'span', 'content' => $row[$cell]], ]]; From 1b70f24dbc6ded71c47eb62cf1d4cfefa7881265 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Tue, 17 Nov 2020 14:47:32 +0100 Subject: [PATCH 04/86] Update logic for rendering task hours --- .../PdfMaker/Designs/Utilities/DesignHelpers.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/Services/PdfMaker/Designs/Utilities/DesignHelpers.php b/app/Services/PdfMaker/Designs/Utilities/DesignHelpers.php index 94dde6b32362..c59a31ec8d2e 100644 --- a/app/Services/PdfMaker/Designs/Utilities/DesignHelpers.php +++ b/app/Services/PdfMaker/Designs/Utilities/DesignHelpers.php @@ -236,9 +236,19 @@ trait DesignHelpers return []; } - foreach (json_decode($task['time_log']) as $log) { - info($log); - $logs[] = sprintf('%s - %s', \Carbon\Carbon::createFromTimestamp($log[0])->toDateTimeString(), \Carbon\Carbon::createFromTimestamp($log[1])->toDateTimeString()); + $logs = []; + $_logs = json_decode($task->time_log); + + if (!$_logs) { + $_logs = []; + } + + foreach ($_logs as $log) { + $logs[] = sprintf( + '%s - %s', + \Carbon\Carbon::createFromTimestamp($log[0])->format($task->client->date_format() . ' h:i:s'), + \Carbon\Carbon::createFromTimestamp($log[1])->format($task->client->date_format() . ' h:i:s') + ); } return $logs; From 1bf6f34c7c8948a183642af204c921a7ca476ef2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Tue, 17 Nov 2020 15:01:28 +0100 Subject: [PATCH 05/86] Add task to PortalComposer --- app/Http/ViewComposers/PortalComposer.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/Http/ViewComposers/PortalComposer.php b/app/Http/ViewComposers/PortalComposer.php index 3ab97958eb4b..5f1a172ef57b 100644 --- a/app/Http/ViewComposers/PortalComposer.php +++ b/app/Http/ViewComposers/PortalComposer.php @@ -72,6 +72,12 @@ class PortalComposer $data[] = ['title' => ctrans('texts.payment_methods'), 'url' => 'client.payment_methods.index', 'icon' => 'shield']; $data[] = ['title' => ctrans('texts.documents'), 'url' => 'client.documents.index', 'icon' => 'download']; + if (auth()->user('contact')->client->getSetting('enable_client_portal_tasks')) { + $data[] = ['title' => ctrans('texts.tasks'), 'url' => 'client.dashboard', 'icon' => 'clock']; + + // TODO: Update when 'tasks' module is available in client portal. + } + return $data; } } From 47c6126bebe4eb5b2386d63da100a25f5c28a937 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Tue, 17 Nov 2020 15:01:34 +0100 Subject: [PATCH 06/86] add clock image for tasks --- public/images/svg/clock.svg | 1 + 1 file changed, 1 insertion(+) create mode 100644 public/images/svg/clock.svg diff --git a/public/images/svg/clock.svg b/public/images/svg/clock.svg new file mode 100644 index 000000000000..1fd1773be4a3 --- /dev/null +++ b/public/images/svg/clock.svg @@ -0,0 +1 @@ + \ No newline at end of file From 8a6873354f5fb9868e60cd6d22702e2c2820cc75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Tue, 17 Nov 2020 15:52:40 +0100 Subject: [PATCH 07/86] fix flashing cancellation modal & user dropdwon --- .../ninja2020/components/general/sidebar/header.blade.php | 2 +- .../recurring_invoices/includes/modals/cancellation.blade.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/views/portal/ninja2020/components/general/sidebar/header.blade.php b/resources/views/portal/ninja2020/components/general/sidebar/header.blade.php index e6e85fb67b74..a5e0a6f8e334 100644 --- a/resources/views/portal/ninja2020/components/general/sidebar/header.blade.php +++ b/resources/views/portal/ninja2020/components/general/sidebar/header.blade.php @@ -37,7 +37,7 @@ {{ auth()->user()->present()->name() }} -
+