#update-patch

# multiple assignment option in inbox
This commit is contained in:
Manish Verma
2016-12-05 14:09:26 +05:30
parent 3802620b1b
commit 77fa3fe326
5 changed files with 158 additions and 52 deletions

View File

@@ -1464,62 +1464,65 @@ class TicketController extends Controller
*/
public function assign($id)
{
$ticket_array = [];
if(strpos($id, ',') !== false) {
$ticket_array = explode(',', $id);
} else {
array_push($ticket_array, $id);
}
$UserEmail = Input::get('assign_to');
$assign_to = explode('_', $UserEmail);
$ticket = Tickets::where('id', '=', $id)->first();
$user_detail = null;
foreach ($ticket_array as $id) {
$ticket = Tickets::where('id', '=', $id)->first();
if ($assign_to[0] == 'team') {
$ticket->team_id = $assign_to[1];
$team_detail = Teams::where('id', '=', $assign_to[1])->first();
$assignee = $team_detail->name;
$ticket_number = $ticket->ticket_number;
$ticket->save();
$ticket_thread = Ticket_Thread::where('ticket_id', '=', $id)->first();
$ticket_subject = $ticket_thread->title;
$thread = new Ticket_Thread();
$thread->ticket_id = $ticket->id;
$thread->user_id = Auth::user()->id;
$thread->is_internal = 1;
$thread->body = 'This Ticket has been assigned to '.$assignee;
$thread->save();
} elseif ($assign_to[0] == 'user') {
$ticket->assigned_to = $assign_to[1];
if( $user_detail === null) {
$user_detail = User::where('id', '=', $assign_to[1])->first();
$assignee = $user_detail->first_name.' '.$user_detail->last_name;
}
$company = $this->company();
$system = $this->system();
$ticket_number = $ticket->ticket_number;
$ticket->save();
$data = [
'id' => $id,
];
\Event::fire('ticket-assignment', [$data]);
$ticket_thread = Ticket_Thread::where('ticket_id', '=', $id)->first();
$ticket_subject = $ticket_thread->title;
$thread = new Ticket_Thread();
$thread->ticket_id = $ticket->id;
$thread->user_id = Auth::user()->id;
$thread->is_internal = 1;
$thread->body = 'This Ticket has been assigned to '.$assignee;
$thread->save();
if ($assign_to[0] == 'team') {
$ticket->team_id = $assign_to[1];
$team_detail = Teams::where('id', '=', $assign_to[1])->first();
$assignee = $team_detail->name;
$ticket_number = $ticket->ticket_number;
$ticket->save();
$ticket_thread = Ticket_Thread::where('ticket_id', '=', $id)->first();
$ticket_subject = $ticket_thread->title;
$thread = new Ticket_Thread();
$thread->ticket_id = $ticket->id;
$thread->user_id = Auth::user()->id;
$thread->is_internal = 1;
$thread->body = 'This Ticket has been assigned to '.$assignee;
$thread->save();
} elseif ($assign_to[0] == 'user') {
$ticket->assigned_to = $assign_to[1];
$user_detail = User::where('id', '=', $assign_to[1])->first();
$assignee = $user_detail->first_name.' '.$user_detail->last_name;
$company = $this->company();
$system = $this->system();
$ticket_number = $ticket->ticket_number;
$ticket->save();
$data = [
'id' => $id,
];
\Event::fire('ticket-assignment', [$data]);
$ticket_thread = Ticket_Thread::where('ticket_id', '=', $id)->first();
$ticket_subject = $ticket_thread->title;
$thread = new Ticket_Thread();
$thread->ticket_id = $ticket->id;
$thread->user_id = Auth::user()->id;
$thread->is_internal = 1;
$thread->body = 'This Ticket has been assigned to '.$assignee;
$thread->save();
$agent = $user_detail->first_name;
$agent_email = $user_detail->email;
$ticket_link = route('ticket.thread', $id);
$master = Auth::user()->first_name.' '.Auth::user()->last_name;
try {
$this->PhpMailController->sendmail($from = $this->PhpMailController->mailfrom('0', $ticket->dept_id), $to = ['name' => $agent, 'email' => $agent_email], $message = ['subject' => $ticket_subject.'[#'.$ticket_number.']', 'scenario' => 'assign-ticket'], $template_variables = ['ticket_agent_name' => $agent, 'ticket_number' => $ticket_number, 'ticket_assigner' => $master, 'ticket_link' => $ticket_link]);
} catch (\Exception $e) {
return 0;
$agent = $user_detail->first_name;
$agent_email = $user_detail->email;
$ticket_link = route('ticket.thread', $id);
$master = Auth::user()->first_name.' '.Auth::user()->last_name;
try {
$this->PhpMailController->sendmail($from = $this->PhpMailController->mailfrom('0', $ticket->dept_id), $to = ['name' => $agent, 'email' => $agent_email], $message = ['subject' => $ticket_subject.'[#'.$ticket_number.']', 'scenario' => 'assign-ticket'], $template_variables = ['ticket_agent_name' => $agent, 'ticket_number' => $ticket_number, 'ticket_assigner' => $master, 'ticket_link' => $ticket_link]);
} catch (\Exception $e) {
return 0;
}
}
}
return 1;
}

View File

@@ -1003,4 +1003,14 @@ class UserController extends Controller
return $message;
}
}
/**
*/
public function getAgentDetails()
{
$users = User::where('role', '<>', 'user')->where('active', '=', 1)->get();
foreach ($users as $user) {
echo "<option value='user_$user->id'>".$user->full_name.'</option>';
}
}
}

View File

@@ -724,6 +724,8 @@ Route::group(['middleware' => ['web']], function () {
// route to get the data on change
Route::post('help-topic-report/{date1}/{date2}/{id}', ['as' => 'report.helptopic', 'uses' => 'Agent\helpdesk\ReportController@chartdataHelptopic']); /* To show dashboard pages */
Route::post('help-topic-pdf', ['as' => 'help.topic.pdf', 'uses' => 'Agent\helpdesk\ReportController@helptopicPdf']);
// Route to get details of agents
Route::post('get-agents', ['as' => 'get-agents', 'uses' => 'Agent\helpdesk\UserController@getAgentDetails']);
});
/*

View File

@@ -1549,5 +1549,5 @@ return [
/*********** Updated 3-12-2016 **********/
'activate' => 'Activate',
'system-email-not-configured' => 'We are unable to process email request as the system has no configured email for sending mails. Please contact and report system admin.',
'assign-ticket' => 'Assign tickets',
];

View File

@@ -58,6 +58,7 @@ if (Auth::user()->role == 'agent') {
<input type="submit" class="submit btn btn-default text-yellow btn-sm" id="close" name="submit" value="{!! Lang::get('lang.close') !!}">
{{--@endif--}}
<button type="button" class="btn btn-sm btn-default text-green" id="Edit_Ticket" data-toggle="modal" data-target="#MergeTickets"><i class="fa fa-code-fork"> </i> {!! Lang::get('lang.merge') !!}</button>
<button type="button" class="btn btn-sm btn-default" id="assign_Ticket" data-toggle="modal" data-target="#AssignTickets" style="display: none;"><i class="fa fa-hand-o-right"> </i> {!! Lang::get('lang.assign') !!}</button>
<!--</div>-->
<p><p/>
<div class="mailbox-messages" id="refresh">
@@ -166,6 +167,42 @@ if (Auth::user()->role == 'agent') {
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<!-- Assign ticket model-->
<div class="modal fade" id="AssignTickets">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" id="assign-close" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">{!! Lang::get('lang.assign-ticket') !!} </h4>
</div><!-- /.modal-header-->
<div class ="modal-body">
<div class="row">
<div class="col-md-4">
</div>
<div class="col-md-6" id="assign_loader" style="display:none;">
<img src="{{asset("lb-faveo/media/images/gifloader.gif")}}"><br/><br/><br/>
</div><!-- /.merge-loader -->
</div>
<div id="assign_body">
<div class="row">
<div class="col-md-12">
{!! Form::open(['id'=>'assign-form','method' => 'PATCH'] )!!}
<label>{!! Lang::get('lang.whome_do_you_want_to_assign_ticket') !!}</label>
<select class="form-control" id="select-assign-agent" name="assign_to" data-placeholder="{!! Lang::get('lang.select_agent') !!}" style="width: 100%;"><option value=""></option></select>
</div>
</div>
</div><!-- mereg-body-form -->
</div><!-- merge-body -->
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left" data-dismiss="modal" id="dismis2">{!! Lang::get('lang.close') !!}</button>
<input type="submit" id="merge-btn" class="btn btn-primary pull-right" value="{!! Lang::get('lang.merge') !!}"></input>
{!! Form::close() !!}
</div><!-- /.modal-footer -->
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<!-- Assign ticket model-->
<!-- Modal -->
<div class="modal fade in" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false" style="display: none; padding-right: 15px;background-color: rgba(0, 0, 0, 0.7);">
<div class="modal-dialog" role="document">
@@ -199,10 +236,12 @@ if (Auth::user()->role == 'agent') {
//Uncheck all checkboxes
$(".mailbox-messages input[type='checkbox']").iCheck("uncheck");
$(".fa", this).removeClass("fa-check-square-o").addClass('fa-square-o');
$('#assign_Ticket').css('display', 'none');
} else {
//Check all checkboxes
$(".mailbox-messages input[type='checkbox']").iCheck("check");
$(".fa", this).removeClass("fa-square-o").addClass('fa-check-square-o');
$('#assign_Ticket').css('display', 'inline');
}
$(this).data("clicks", !clicks);
});
@@ -405,6 +444,53 @@ if (Auth::user()->role == 'agent') {
})
return false;
});
$('#AssignTickets').on('show.bs.modal', function() {
alert(t_id);
$.ajax({
type: "POST",
url: "{{route('get-agents')}}",
dataType: "html",
beforeSend: function() {
$("#assign_body").hide();
$("#assign_loader").show();
},
success: function(data) {
$("#assign_loader").hide();
$("#assign_body").show();
$('#select-assign-agent').html(data);
}
});
});
// Assign a ticket
$('#assign-form').on('submit', function() {
$.ajax({
type: "POST",
url: "../ticket/assign/"+t_id,
dataType: "html",
data: $(this).serialize(),
beforeSend: function() {
$("#assign_body").hide();
$("#assign_loader").show();
},
success: function(response) {
if (response == 1)
{
location.reload();
var message = "Success!";
$("#alert11").show();
$('#message-success1').html(message);
setInterval(function(){$("#dismiss11").trigger("click"); }, 2000);
}
$("#assign_body").show();
$("#assign_loader").hide();
$("#dismis4").trigger("click");
}
})
return false;
});
});
function someFunction(id) {
@@ -423,6 +509,11 @@ if (Auth::user()->role == 'agent') {
t_id.splice(index, 1);
// alert(t_id);
}
if (t_id.length >= 1) {
$('#assign_Ticket').css('display', 'inline');
} else {
$('#assign_Ticket').css('display', 'none');
}
}
</script>
@stop