Skip to content

Commit

Permalink
Show customer info when opening new conversation draft - closes #2402
Browse files Browse the repository at this point in the history
  • Loading branch information
freescout-help-desk committed Nov 18, 2023
1 parent c24efff commit 4bb7e22
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 45 deletions.
34 changes: 19 additions & 15 deletions app/Http/Controllers/ConversationsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,25 @@ public function view(Request $request, $id)
}
}

$threads = $conversation->threads()->orderBy('created_at', 'desc')->get();

// Get To for new conversation.
$new_conv_to = [];
if (empty($threads[0]) || empty($threads[0]->to)) {
// Before new conversation To field was stored in $conversation->customer_email.
$emails = Conversation::sanitizeEmails($conversation->customer_email);
// Get customers info for emails.
if (count($emails)) {
$new_conv_to = Customer::emailsToCustomers($emails);
}
} else {
$new_conv_to = Customer::emailsToCustomers($threads[0]->getToArray());
}

if (empty($customer) && count($new_conv_to) == 1) {
$customer = Customer::getByEmail(array_key_first($new_conv_to));
}

// Previous conversations
$prev_conversations = [];
if ($customer) {
Expand Down Expand Up @@ -282,8 +301,6 @@ public function view(Request $request, $id)

\Eventy::action('conversation.view.start', $conversation, $request);

$threads = $conversation->threads()->orderBy('created_at', 'desc')->get();

// Mailbox aliases.
$from_aliases = $conversation->mailbox->getAliases(true, true);
$from_alias = '';
Expand Down Expand Up @@ -324,19 +341,6 @@ public function view(Request $request, $id)
}
}

// Get To for new conversation draft.
$new_conv_to = [];
if (empty($threads[0]) || empty($threads[0]->to)) {
// Before new conversation To field was stored in $conversation->customer_email.
$emails = Conversation::sanitizeEmails($conversation->customer_email);
// Get customers info for emails.
if (count($emails)) {
$new_conv_to = Customer::emailsToCustomers($emails);
}
} else {
$new_conv_to = Customer::emailsToCustomers($threads[0]->getToArray());
}

return view($template, [
'conversation' => $conversation,
'mailbox' => $conversation->mailbox,
Expand Down
1 change: 1 addition & 0 deletions resources/views/conversations/create.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
</div>
</div>
<div id="conv-layout-customer">
@include('conversations/partials/customer_sidebar')
@action('conversation.new.customer_sidebar', $conversation, $mailbox)
</div>
<div id="conv-layout-main" class="conv-new-form">
Expand Down
30 changes: 30 additions & 0 deletions resources/views/conversations/partials/customer_sidebar.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
@if (!empty($customer))
<div class="conv-customer-header"></div>
<div class="conv-customer-block conv-sidebar-block">
@include('customers/profile_snippet', ['customer' => $customer, 'main_email' => $conversation->customer_email, 'conversation' => $conversation])
<div class="dropdown customer-trigger" data-toggle="tooltip" title="{{ __("Settings") }}">
<a href="#" class="dropdown-toggle glyphicon glyphicon-cog" data-toggle="dropdown" ></a>
<ul class="dropdown-menu dropdown-menu-right" role="menu">
<li role="presentation"><a href="{{ route('customers.update', ['id' => $customer->id]) }}" tabindex="-1" role="menuitem">{{ __("Edit Profile") }}</a></li>
@if (!$conversation->isChat())
<li role="presentation"><a href="{{ route('conversations.ajax_html', array_merge(['action' =>
'change_customer'], \Request::all(), ['conversation_id' => $conversation->id]) ) }}" data-trigger="modal" data-modal-title="{{ __("Change Customer") }}" data-modal-no-footer="true" data-modal-on-show="changeCustomerInit" tabindex="-1" role="menuitem">{{ __("Change Customer") }}</a></li>
@endif
@if (count($prev_conversations))
<li role="presentation" class="col3-hidden"><a data-toggle="collapse" href=".collapse-conv-prev" tabindex="-1" role="menuitem">{{ __("Previous Conversations") }}</a></li>
@endif
{{ \Eventy::action('conversation.customer.menu', $customer, $conversation) }}
{{-- No need to use this --}}
{{ \Eventy::action('customer_profile.menu', $customer, $conversation) }}
</ul>
</div>
{{--<div data-toggle="collapse" href="#collapse-conv-prev" class="customer-hist-trigger">
<div class="glyphicon glyphicon-list-alt" data-toggle="tooltip" title="{{ __("Previous Conversations") }}"></div>
</div>--}}
</div>
@action('conversation.before_prev_convs', $customer, $conversation, $mailbox)
@if (count($prev_conversations))
@include('conversations/partials/prev_convs_short')
@endif
@action('conversation.after_prev_convs', $customer, $conversation, $mailbox)
@endif
31 changes: 1 addition & 30 deletions resources/views/conversations/view.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -287,36 +287,7 @@
</div>

<div id="conv-layout-customer">
@if ($customer)
<div class="conv-customer-header"></div>
<div class="conv-customer-block conv-sidebar-block">
@include('customers/profile_snippet', ['customer' => $customer, 'main_email' => $conversation->customer_email, 'conversation' => $conversation])
<div class="dropdown customer-trigger" data-toggle="tooltip" title="{{ __("Settings") }}">
<a href="#" class="dropdown-toggle glyphicon glyphicon-cog" data-toggle="dropdown" ></a>
<ul class="dropdown-menu dropdown-menu-right" role="menu">
<li role="presentation"><a href="{{ route('customers.update', ['id' => $customer->id]) }}" tabindex="-1" role="menuitem">{{ __("Edit Profile") }}</a></li>
@if (!$conversation->isChat())
<li role="presentation"><a href="{{ route('conversations.ajax_html', array_merge(['action' =>
'change_customer'], \Request::all(), ['conversation_id' => $conversation->id]) ) }}" data-trigger="modal" data-modal-title="{{ __("Change Customer") }}" data-modal-no-footer="true" data-modal-on-show="changeCustomerInit" tabindex="-1" role="menuitem">{{ __("Change Customer") }}</a></li>
@endif
@if (count($prev_conversations))
<li role="presentation" class="col3-hidden"><a data-toggle="collapse" href=".collapse-conv-prev" tabindex="-1" role="menuitem">{{ __("Previous Conversations") }}</a></li>
@endif
{{ \Eventy::action('conversation.customer.menu', $customer, $conversation) }}
{{-- No need to use this --}}
{{ \Eventy::action('customer_profile.menu', $customer, $conversation) }}
</ul>
</div>
{{--<div data-toggle="collapse" href="#collapse-conv-prev" class="customer-hist-trigger">
<div class="glyphicon glyphicon-list-alt" data-toggle="tooltip" title="{{ __("Previous Conversations") }}"></div>
</div>--}}
</div>
@action('conversation.before_prev_convs', $customer, $conversation, $mailbox)
@if (count($prev_conversations))
@include('conversations/partials/prev_convs_short')
@endif
@endif
@action('conversation.after_prev_convs', $customer, $conversation, $mailbox)
@include('conversations/partials/customer_sidebar')
</div>
<div id="conv-layout-main">
@include('conversations/partials/threads')
Expand Down

0 comments on commit 4bb7e22

Please sign in to comment.