Inbox changes
This commit is contained in:
@@ -181,4 +181,17 @@ class Finder
|
||||
|
||||
return $contents;
|
||||
}
|
||||
|
||||
/**
|
||||
* SPECIAL CHECK FOR STATUS FOR APPROVAL
|
||||
* This function is used to special check status for any type of checks.
|
||||
*
|
||||
* @return type array
|
||||
*/
|
||||
public static function getCustomedStatus()
|
||||
{
|
||||
$status = Ticket_Status::select('id', 'name', 'icon_class')->get();
|
||||
|
||||
return $status;
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,339 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Agent\helpdesk\Filter;
|
||||
|
||||
use App\Http\Controllers\Agent\helpdesk\TicketController;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Model\helpdesk\Filters\Filter;
|
||||
use App\Model\helpdesk\Filters\Label;
|
||||
use App\Model\helpdesk\Ticket\Tickets;
|
||||
use Auth;
|
||||
use DB;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class FilterControllerOld extends Controller
|
||||
{
|
||||
protected $request;
|
||||
|
||||
public function __construct(Request $req)
|
||||
{
|
||||
$this->middleware(['auth', 'role.agent']);
|
||||
$this->request = $req;
|
||||
}
|
||||
|
||||
public function getFilter(Request $request)
|
||||
{
|
||||
$labels = $this->request->input('labels');
|
||||
$tags = $this->request->input('tags');
|
||||
if ($request->has('department')) {
|
||||
$table = $this->departmentTickets($request->input('department'), $request->input('status'));
|
||||
} else {
|
||||
$segment = $this->request->input('segment');
|
||||
$table = $this->segments($segment);
|
||||
}
|
||||
$tickets = [];
|
||||
$render = false;
|
||||
if (is_array($labels) && count($labels) > 0) {
|
||||
$table = $table
|
||||
->leftJoin('filters as label', function ($join) {
|
||||
$join->on('tickets.id', '=', 'label.ticket_id')
|
||||
->where('label.key', '=', 'label');
|
||||
})
|
||||
->whereIn('label.value', $labels);
|
||||
}
|
||||
if (is_array($tags) && count($tags) > 0) {
|
||||
$table = $table
|
||||
->leftJoin('filters as tag', function ($join) {
|
||||
$join->on('tickets.id', '=', 'tag.ticket_id')
|
||||
->where('tag.key', '=', 'tag');
|
||||
})
|
||||
->whereIn('tag.value', $tags);
|
||||
}
|
||||
if ((is_array($tags) && count($tags) > 0) || (is_array($labels) && count($labels) > 0)) {
|
||||
$render = true;
|
||||
}
|
||||
// return \Datatables::of($table)->make();
|
||||
return \Ttable::getTable($table);
|
||||
}
|
||||
|
||||
public function filterByKey($key, $labels = [])
|
||||
{
|
||||
$filter = new Filter();
|
||||
$query = $filter->where('key', $key)
|
||||
->where(function ($query) use ($labels) {
|
||||
if (is_array($labels) && count($labels) > 0) {
|
||||
for ($i = 0; $i < count($labels); $i++) {
|
||||
$query->orWhere('value', 'LIKE', '%'.$labels[$i].'%');
|
||||
}
|
||||
}
|
||||
})
|
||||
->pluck('ticket_id')
|
||||
->toArray();
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
public function segments($segment)
|
||||
{
|
||||
if (strpos($segment, 'user') !== false) {
|
||||
return $this->formatUserTickets($segment);
|
||||
}
|
||||
$table = $this->table();
|
||||
switch ($segment) {
|
||||
case '/ticket/inbox':
|
||||
if (Auth::user()->role == 'agent') {
|
||||
$id = Auth::user()->primary_dpt;
|
||||
$table = $table->where('tickets.dept_id', '=', $id)->orWhere('assigned_to', '=', Auth::user()->id);
|
||||
}
|
||||
|
||||
return $table
|
||||
->Join('ticket_status', function ($join) {
|
||||
$join->on('ticket_status.id', '=', 'tickets.status')
|
||||
->whereIn('ticket_status.id', [1, 7]);
|
||||
});
|
||||
case '/ticket/closed':
|
||||
if (Auth::user()->role == 'agent') {
|
||||
$id = Auth::user()->primary_dpt;
|
||||
$table = $table->where('tickets.dept_id', '=', $id);
|
||||
}
|
||||
|
||||
return $table
|
||||
->Join('ticket_status', function ($join) {
|
||||
$join->on('ticket_status.id', '=', 'tickets.status')
|
||||
->whereIn('ticket_status.state', ['closed']);
|
||||
});
|
||||
case '/ticket/myticket':
|
||||
return $table
|
||||
->leftJoin('ticket_status', function ($join) {
|
||||
$join->on('ticket_status.id', '=', 'tickets.status');
|
||||
})
|
||||
->orWhere('tickets.assigned_to', '=', Auth::user()->id)
|
||||
->where('tickets.status', '=', 1);
|
||||
case '/unassigned':
|
||||
if (Auth::user()->role == 'agent') {
|
||||
$id = Auth::user()->primary_dpt;
|
||||
$table = $table->where('tickets.dept_id', '=', $id);
|
||||
}
|
||||
|
||||
return $table
|
||||
->leftJoin('ticket_status', function ($join) {
|
||||
$join->on('ticket_status.id', '=', 'tickets.status');
|
||||
})
|
||||
->where('tickets.assigned_to', '=', null)
|
||||
->where('tickets.status', '=', 1);
|
||||
case '/ticket/overdue':
|
||||
if (Auth::user()->role == 'agent') {
|
||||
$id = Auth::user()->primary_dpt;
|
||||
$table = $table->where('tickets.dept_id', '=', $id);
|
||||
}
|
||||
|
||||
return $table
|
||||
->leftJoin('ticket_status', function ($join) {
|
||||
$join->on('ticket_status.id', '=', 'tickets.status');
|
||||
})
|
||||
->where('tickets.status', '=', 1)
|
||||
->where('tickets.isanswered', '=', 0)
|
||||
->whereNotNull('tickets.duedate')
|
||||
->where('tickets.duedate', '!=', '00-00-00 00:00:00')
|
||||
|
||||
// ->where('duedate','>',\Carbon\Carbon::now());
|
||||
->where('tickets.duedate', '<', \Carbon\Carbon::now());
|
||||
case '/ticket/approval/closed':
|
||||
if (Auth::user()->role == 'agent') {
|
||||
$id = Auth::user()->primary_dpt;
|
||||
$table = $table->where('tickets.dept_id', '=', $id);
|
||||
}
|
||||
|
||||
return $table
|
||||
->Join('ticket_status', function ($join) {
|
||||
$join->on('ticket_status.id', '=', 'tickets.status')
|
||||
->where('tickets.status', '=', 7);
|
||||
});
|
||||
|
||||
case '/trash':
|
||||
if (Auth::user()->role == 'agent') {
|
||||
$id = Auth::user()->primary_dpt;
|
||||
$table = $table->where('tickets.dept_id', '=', $id);
|
||||
}
|
||||
|
||||
return $table
|
||||
->Join('ticket_status', function ($join) {
|
||||
$join->on('ticket_status.id', '=', 'tickets.status')
|
||||
->where('tickets.status', '=', 5);
|
||||
});
|
||||
|
||||
case '/ticket/answered':
|
||||
if (Auth::user()->role == 'agent') {
|
||||
$id = Auth::user()->primary_dpt;
|
||||
$table = $table->where('tickets.dept_id', '=', $id);
|
||||
}
|
||||
|
||||
return $table
|
||||
->Join('ticket_status', function ($join) {
|
||||
$join->on('ticket_status.id', '=', 'tickets.status')
|
||||
->where('tickets.status', '=', 1)
|
||||
->where('tickets.isanswered', '=', 1);
|
||||
});
|
||||
case '/ticket/assigned':
|
||||
if (Auth::user()->role == 'agent') {
|
||||
$id = Auth::user()->primary_dpt;
|
||||
$table = $table->where('tickets.dept_id', '=', $id);
|
||||
}
|
||||
|
||||
return $table
|
||||
->leftJoin('ticket_status', function ($join) {
|
||||
$join->on('ticket_status.id', '=', 'tickets.status');
|
||||
})
|
||||
->where('tickets.assigned_to', '>', 0)
|
||||
->where('tickets.status', '=', 1);
|
||||
case '/ticket/open':
|
||||
if (Auth::user()->role == 'agent') {
|
||||
$id = Auth::user()->primary_dpt;
|
||||
$table = $table->where('tickets.dept_id', '=', $id);
|
||||
}
|
||||
|
||||
return $table
|
||||
->leftJoin('ticket_status', function ($join) {
|
||||
$join->on('ticket_status.id', '=', 'tickets.status');
|
||||
})
|
||||
->where('isanswered', '=', 0)
|
||||
->where('tickets.status', '=', 1);
|
||||
case '/duetoday':
|
||||
if (Auth::user()->role == 'agent') {
|
||||
$id = Auth::user()->primary_dpt;
|
||||
$table = $table->where('tickets.dept_id', '=', $id);
|
||||
}
|
||||
|
||||
return $table
|
||||
->leftJoin('ticket_status', function ($join) {
|
||||
$join->on('ticket_status.id', '=', 'tickets.status');
|
||||
})
|
||||
->where('tickets.status', '=', 1)
|
||||
|
||||
->whereNotNull('tickets.duedate')
|
||||
->whereDate('tickets.duedate', '=', \Carbon\Carbon::now()->format('Y-m-d'));
|
||||
|
||||
case '/ticket/followup':
|
||||
if (Auth::user()->role == 'agent') {
|
||||
$id = Auth::user()->primary_dpt;
|
||||
$table = $table->where('tickets.dept_id', '=', $id);
|
||||
}
|
||||
|
||||
return $table
|
||||
->leftJoin('ticket_status', function ($join) {
|
||||
$join->on('ticket_status.id', '=', 'tickets.status');
|
||||
})
|
||||
->where('tickets.status', '=', 1)
|
||||
// ->where('tickets.isanswered', '=', 0)
|
||||
->where('tickets.follow_up', '=', 1);
|
||||
}
|
||||
}
|
||||
|
||||
public function table()
|
||||
{
|
||||
// if (Auth::user()->role == 'admin') {
|
||||
$ticket = new Tickets();
|
||||
$tickets = $ticket
|
||||
->leftJoin('ticket_thread', function ($join) {
|
||||
$join->on('tickets.id', '=', 'ticket_thread.ticket_id')
|
||||
->whereNotNull('title')
|
||||
->where('ticket_thread.is_internal', '<>', 1);
|
||||
})
|
||||
->leftJoin('ticket_thread as ticket_thread2', 'ticket_thread2.ticket_id', '=', 'tickets.id')
|
||||
->Join('ticket_source', 'ticket_source.id', '=', 'tickets.source')
|
||||
->leftJoin('ticket_priority', 'ticket_priority.priority_id', '=', 'tickets.priority_id')
|
||||
->leftJoin('users as u', 'u.id', '=', 'tickets.user_id')
|
||||
->leftJoin('users as u1', 'u1.id', '=', 'tickets.assigned_to')
|
||||
->leftJoin('ticket_attachment', 'ticket_attachment.thread_id', '=', 'ticket_thread.id')
|
||||
|
||||
->leftJoin('ticket_collaborator', 'ticket_collaborator.ticket_id', '=', 'tickets.id')
|
||||
->select(
|
||||
'tickets.id',
|
||||
'ticket_thread.title',
|
||||
'tickets.ticket_number',
|
||||
'ticket_priority.priority',
|
||||
'u.user_name as user_name',
|
||||
'u1.user_name as assign_user_name',
|
||||
\DB::raw('max(ticket_thread.updated_at) as updated_at'),
|
||||
\DB::raw('min(ticket_thread.updated_at) as created_at'),
|
||||
'u.first_name as first_name',
|
||||
'u.last_name as last_name',
|
||||
'u1.first_name as assign_first_name',
|
||||
'u1.last_name as assign_last_name',
|
||||
'ticket_priority.priority_color',
|
||||
DB::raw('COUNT(DISTINCT ticket_thread2.id) as countthread'),
|
||||
DB::raw('COUNT(ticket_attachment.thread_id) as countattachment'),
|
||||
DB::raw('COUNT(ticket_collaborator.ticket_id) as countcollaborator'),
|
||||
'tickets.status',
|
||||
'tickets.user_id',
|
||||
'tickets.priority_id', 'tickets.assigned_to',
|
||||
'ticket_status.name as tickets_status',
|
||||
'ticket_source.css_class as css',
|
||||
DB::raw('substring_index(group_concat(ticket_thread.poster order by ticket_thread.id desc) , ",", 1) as last_replier'),
|
||||
DB::raw('substring_index(group_concat(ticket_thread.title order by ticket_thread.id asc) , ",", 1) as ticket_title'),
|
||||
'u.active as verified')
|
||||
->groupby('tickets.id');
|
||||
|
||||
return $tickets;
|
||||
}
|
||||
|
||||
public function filter($render, $ticket_id = [])
|
||||
{
|
||||
if (Auth::user()->role == 'admin') {
|
||||
$tickets = Tickets::whereIn('status', [1, 7]);
|
||||
} else {
|
||||
$dept = DB::table('department')->where('id', '=', Auth::user()->primary_dpt)->first();
|
||||
$tickets = Tickets::whereIn('status', [1, 7])->where('dept_id', '=', $dept->id);
|
||||
}
|
||||
if ($render == true) {
|
||||
$tickets = $tickets->whereIn('id', $ticket_id);
|
||||
}
|
||||
|
||||
return $tickets;
|
||||
}
|
||||
|
||||
public function ticketController()
|
||||
{
|
||||
$PhpMailController = new \App\Http\Controllers\Common\PhpMailController();
|
||||
$NotificationController = new \App\Http\Controllers\Common\NotificationController();
|
||||
$ticket_controller = new TicketController($PhpMailController, $NotificationController);
|
||||
|
||||
return $ticket_controller;
|
||||
}
|
||||
|
||||
public function departmentTickets($dept, $status)
|
||||
{
|
||||
$table = $this->table();
|
||||
|
||||
return $table->leftJoin('department as dep', 'tickets.dept_id', '=', 'dep.id')
|
||||
->leftJoin('ticket_status', 'tickets.status', '=', 'ticket_status.id')
|
||||
->where('dep.name', $dept)
|
||||
->where('ticket_status.name', $status);
|
||||
}
|
||||
|
||||
/**
|
||||
*@category function to format and return user tickets
|
||||
*
|
||||
*@param string $segment
|
||||
*
|
||||
*@return builder
|
||||
*/
|
||||
public function formatUserTickets($segment)
|
||||
{
|
||||
$convert_to_array = explode('/', $segment);
|
||||
$user_id = $convert_to_array[2];
|
||||
$user = \DB::table('users')->select('role', 'id')->where('id', '=', $user_id)->first();
|
||||
$table = $this->table();
|
||||
if ($user->role == 'user') {
|
||||
$table = $table->leftJoin('ticket_status', 'tickets.status', '=', 'ticket_status.id')
|
||||
->where('tickets.user_id', '=', $user->id)
|
||||
->where('ticket_status.name', $convert_to_array[3]);
|
||||
} else {
|
||||
$table = $table->leftJoin('ticket_status', 'tickets.status', '=', 'ticket_status.id')
|
||||
->where('tickets.assigned_to', '=', $user->id)
|
||||
->where('ticket_status.name', $convert_to_array[3]);
|
||||
}
|
||||
|
||||
return $table;
|
||||
}
|
||||
}
|
@@ -70,126 +70,6 @@ class TicketController extends Controller
|
||||
$this->middleware('auth');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the Inbox ticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function inbox_ticket_list()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.inbox', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the Open ticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function open_ticket_list()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.open', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the answered ticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function answered_ticket_list()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.answered', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the Myticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function myticket_ticket_list()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.myticket', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the Overdue ticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function overdue_ticket_list()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.overdue', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the Open ticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function dueTodayTicketlist()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.duetodayticket', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the Closed ticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function closed_ticket_list()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.closed', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the ticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function assigned_ticket_list()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.assigned', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the New ticket page.
|
||||
*
|
||||
@@ -1691,51 +1571,6 @@ class TicketController extends Controller
|
||||
return $system;
|
||||
}
|
||||
|
||||
/**
|
||||
* shows trashed tickets.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function trash()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.trash', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* shows unassigned tickets.
|
||||
*
|
||||
* @return type
|
||||
*/
|
||||
public function unassigned()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.unassigned', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* shows tickets assigned to Auth::user().
|
||||
*
|
||||
* @return type
|
||||
*/
|
||||
public function myticket()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.myticket', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* cleanMe.
|
||||
*
|
||||
@@ -2011,41 +1846,6 @@ class TicketController extends Controller
|
||||
$ticket->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the deptopen ticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function deptopen($id)
|
||||
{
|
||||
$dept = Department::where('name', '=', $id)->first();
|
||||
if (Auth::user()->role == 'agent') {
|
||||
if (Auth::user()->primary_dpt == $dept->id) {
|
||||
return view('themes.default1.agent.helpdesk.dept-ticket.tickets', compact('id'));
|
||||
} else {
|
||||
return redirect()->back()->with('fails', 'Unauthorised!');
|
||||
}
|
||||
} else {
|
||||
return view('themes.default1.agent.helpdesk.dept-ticket.tickets', compact('id'));
|
||||
}
|
||||
}
|
||||
|
||||
public function deptTicket($dept, $status)
|
||||
{
|
||||
if (\Auth::user()->role === 'agent') {
|
||||
$dept2 = Department::where('id', '=', \Auth::user()->primary_dpt)->first();
|
||||
if ($dept !== $dept2->name) {
|
||||
return redirect()->back()->with('fails', Lang::get('lang.unauthorized_access'));
|
||||
}
|
||||
}
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.dept-ticket.tickets', compact('dept', 'status', 'table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the deptclose ticket list page.
|
||||
*
|
||||
@@ -2479,110 +2279,6 @@ class TicketController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* chumper's function to return data to chumper datatable.
|
||||
* @param Array-object $tickets
|
||||
*
|
||||
* @return Array-object
|
||||
*/
|
||||
|
||||
public static function getTable($tickets)
|
||||
{
|
||||
return \Datatables::of($tickets)
|
||||
->addColumn('id', function ($tickets) {
|
||||
return "<input type='checkbox' name='select_all[]' id='".$tickets->id."' onclick='someFunction(this.id)' class='selectval icheckbox_flat-blue' value='".$tickets->id."'></input>";
|
||||
})
|
||||
->addColumn('title', function ($tickets) {
|
||||
if (isset($tickets->ticket_title)) {
|
||||
$string = str_limit($tickets->ticket_title, 20);
|
||||
} else {
|
||||
$string = '(no subject)';
|
||||
}
|
||||
$collab = $tickets->countcollaborator;
|
||||
if ($collab > 0) {
|
||||
$collabString = ' <i class="fa fa-users"></i>';
|
||||
} else {
|
||||
$collabString = null;
|
||||
}
|
||||
$attachCount = $tickets->countattachment;
|
||||
if ($attachCount > 0) {
|
||||
$attachString = ' <i class="fa fa-paperclip"></i>';
|
||||
} else {
|
||||
$attachString = '';
|
||||
}
|
||||
$css = $tickets->css;
|
||||
$titles = '';
|
||||
if ($tickets->ticket_title) {
|
||||
$titles = $tickets->ticket_title;
|
||||
}
|
||||
$tooltip_script = self::tooltip($tickets->id);
|
||||
|
||||
return "<div class='tooltip1' id='tool".$tickets->id."'>
|
||||
<a href='".route('ticket.thread', [$tickets->id])."'>".ucfirst($string)." <span style='color:green'>(".$tickets->countthread.") <i class='".$css."'></i></span>
|
||||
</a>".$collabString.$attachString.$tooltip_script.
|
||||
"<span class='tooltiptext' id='tooltip".$tickets->id."'>Loading...</span></div>";
|
||||
})
|
||||
->addColumn('ticket_number', function ($tickets) {
|
||||
return "<a href='".route('ticket.thread', [$tickets->id])."' title='".$tickets->ticket_number."'>#".$tickets->ticket_number.'</a>';
|
||||
})
|
||||
->addColumn('priority', function ($tickets) {
|
||||
$rep = ($tickets->last_replier == 'client') ? '#F39C12' : '#000';
|
||||
$priority = $tickets->priority;
|
||||
if ($priority != null) {
|
||||
$prio = '<button class="btn btn-xs '.$rep.'" style="background-color: '.$tickets->priority_color.'; color:#F7FBCB">'.ucfirst($tickets->priority).'</button>';
|
||||
} else {
|
||||
$prio = $tickets->last_relier_role;
|
||||
}
|
||||
|
||||
return $prio;
|
||||
})
|
||||
->addColumn('user_name', function ($tickets) {
|
||||
$from = $tickets->first_name;
|
||||
$url = route('user.show', $tickets->user_id);
|
||||
$name = '';
|
||||
if ($from) {
|
||||
$name = $tickets->first_name.' '.$tickets->last_name;
|
||||
} else {
|
||||
$name = $tickets->user_name;
|
||||
}
|
||||
$color = '';
|
||||
if ($tickets->verified == 0 || $tickets->verified == '0') {
|
||||
$color = "<i class='fa fa-exclamation-triangle' title='".Lang::get('lang.accoutn-not-verified')."'></i>";
|
||||
}
|
||||
|
||||
return "<a href='".$url."' title='".Lang::get('lang.see-profile1').' '.ucfirst($tickets->user_name).'''.Lang::get('lang.see-profile2')."'><span style='color:#508983'>".ucfirst(str_limit($name, 30)).' <span style="color:#f75959">'.$color.'</span></span></a>';
|
||||
})
|
||||
->addColumn('assign_user_name', function ($tickets) {
|
||||
if ($tickets->assigned_to == null) {
|
||||
return "<span style='color:red'>Unassigned</span>";
|
||||
} else {
|
||||
$assign = $tickets->assign_user_name;
|
||||
$url = route('user.show', $tickets->assigned_to);
|
||||
|
||||
return "<a href='".$url."' title='".Lang::get('lang.see-profile1').' '.ucfirst($tickets->assign_first_name).'''.Lang::get('lang.see-profile2')."'><span style='color:green'>".ucfirst($tickets->assign_first_name).' '.ucfirst($tickets->assign_last_name).'</span></a>';
|
||||
}
|
||||
})
|
||||
->addColumn('updated_at', function ($tickets) {
|
||||
$TicketDatarow = $tickets->updated_at;
|
||||
$updated = '--';
|
||||
if ($TicketDatarow) {
|
||||
$updated = $tickets->updated_at;
|
||||
}
|
||||
|
||||
return '<span style="display:none">'.$updated.'</span>'.UTC::usertimezone($updated);
|
||||
})
|
||||
->addColumn('created_at', function ($tickets) {
|
||||
$TicketDatarow = $tickets->created_at;
|
||||
$updated = '--';
|
||||
if ($TicketDatarow) {
|
||||
$updated = $tickets->created_at;
|
||||
}
|
||||
|
||||
return '<span style="display:none">'.$updated.'</span>'.UTC::usertimezone($updated);
|
||||
})
|
||||
->make();
|
||||
}
|
||||
|
||||
/**
|
||||
*@category function to call and show ticket details in tool tip via ajax
|
||||
*
|
||||
@@ -2864,23 +2560,6 @@ class TicketController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return type
|
||||
*/
|
||||
public function followupTicketList()
|
||||
{
|
||||
try {
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.followup.followup', compact('table'));
|
||||
} catch (Exception $e) {
|
||||
return Redirect()->back()->with('fails', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static function getSubject($subject)
|
||||
{
|
||||
//$subject = $this->attributes['title'];
|
||||
@@ -2966,4 +2645,483 @@ class TicketController extends Controller
|
||||
//catch the exception
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ticket table rendering related functions
|
||||
*/
|
||||
|
||||
/**
|
||||
* Function to get basic datatable format
|
||||
*
|
||||
* @return object
|
||||
*/
|
||||
public function getTableFormat()
|
||||
{
|
||||
return \Datatable::table()
|
||||
->addColumn(
|
||||
'<a class="checkbox-toggle"><i class="fa fa-square-o fa-2x"></i></a>', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity')
|
||||
)->noScript();
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to return new ticket table view
|
||||
*
|
||||
* @return repsone/view
|
||||
*/
|
||||
public function getTicketsView()
|
||||
{
|
||||
$table = $this->getTableFormat();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.tickets', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* chumper's function to return data to chumper datatable.
|
||||
* @param Array-object $tickets
|
||||
*
|
||||
* @return Array-object
|
||||
*/
|
||||
public static function genreateTableJson($tickets)
|
||||
{
|
||||
return \Datatables::of($tickets)
|
||||
->editColumn('id', function ($tickets) {
|
||||
$rep = ($tickets->last_replier == 'client') ? '#F39C12'
|
||||
: '#000';
|
||||
|
||||
return "<center><input type='checkbox' name='select_all[]' id='".$tickets->id."' onclick='someFunction(this.id)' class='selectval icheckbox_flat-blue ".$tickets->color.' '.$rep."' value='".$tickets->id."'></input></center>";
|
||||
})
|
||||
->addColumn('title', function ($tickets) {
|
||||
if (isset($tickets->ticket_title)) {
|
||||
$string = utfEncoding($tickets->ticket_title);
|
||||
if (strlen($string) > 25) {
|
||||
$string = str_limit($string, 30).'...';
|
||||
}
|
||||
} else {
|
||||
$string = Lang::get('lang.no-subject');
|
||||
}
|
||||
|
||||
$collab = $tickets->countcollaborator;
|
||||
if ($collab > 0) {
|
||||
$collabString = ' <i class="fa fa-users" title="'.Lang::get('lang.ticket_has_collaborator').'"></i>';
|
||||
} else {
|
||||
$collabString = null;
|
||||
}
|
||||
|
||||
$attachCount = $tickets->countattachment;
|
||||
if ($attachCount > 0) {
|
||||
$attachString = ' <i class="fa fa-paperclip" title="'.Lang::get('lang.ticket_has_attachments').'"></i>';
|
||||
} else {
|
||||
$attachString = '';
|
||||
}
|
||||
|
||||
$css = $tickets->css;
|
||||
$source = $tickets->source;
|
||||
$titles = '';
|
||||
if ($tickets->ticket_title) {
|
||||
$titles = $tickets->ticket_title;
|
||||
}
|
||||
|
||||
$due = '';
|
||||
if ($tickets->duedate != null) {
|
||||
$now = strtotime(\Carbon\Carbon::now()->tz(timezone()));
|
||||
$duedate = strtotime($tickets->duedate);
|
||||
|
||||
if ($duedate - $now < 0) {
|
||||
$due = ' <span style="background-color: rgba(221, 75, 57, 0.67) !important" title="'.Lang::get('lang.is_overdue').'" class="label label-danger">'.Lang::get('lang.overdue').'</span>';
|
||||
} else {
|
||||
if (date('Ymd', $duedate) == date('Ymd', $now)) {
|
||||
$due = ' <span style="background-color: rgba(240, 173, 78, 0.67) !important" title="'.Lang::get('lang.going-overdue-today').'" class="label label-warning">'.Lang::get('lang.duetoday').'</span>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$thread_count = '('.$tickets->countthread.')';
|
||||
if (Lang::getLocale() == 'ar') {
|
||||
$thread_count = '‏('.$tickets->countthread.')';
|
||||
}
|
||||
|
||||
$tooltip_script = self::tooltip($tickets->id);
|
||||
|
||||
return "<div class='tooltip1' id='tool".$tickets->id."'>
|
||||
<a href='".route('ticket.thread', [$tickets->id])."'>".$string." <span style='color:green'>".$thread_count."</span>
|
||||
</a> <span><i style='color:green' title='".Lang::get('lang.ticket_created_source', ['source' => $source])."' class='".$css."'></i></span>".$collabString.$attachString.$due.$tooltip_script.
|
||||
"<span class='tooltiptext' id='tooltip".$tickets->id."' style='height:auto;width:300px;background-color:#fff;color:black;border-radius:3px;border:2px solid gainsboro;position:absolute;z-index:1;top:150%;left:50%;margin-left:-23px;word-wrap:break-word;'>".Lang::get('lang.loading').'</span></div>';
|
||||
})
|
||||
->editColumn('ticket_number', function ($tickets) {
|
||||
return "<a href='".route('ticket.thread', [$tickets->id])."' class='$".ucfirst($tickets->priority)."*' title='".Lang::get('lang.click-here-to-see-more-details')."'>#".$tickets->ticket_number.'</a>';
|
||||
})
|
||||
->editColumn('c_uname', function ($tickets) {
|
||||
$from = $tickets->c_fname;
|
||||
$url = route('user.show', $tickets->c_uid);
|
||||
$name = $tickets->c_uname;
|
||||
if ($from) {
|
||||
$name = utfEncoding($tickets->c_fname).' '.utfEncoding($tickets->c_lname);
|
||||
}
|
||||
|
||||
$color = '';
|
||||
if ($tickets->verified == 0 || $tickets->verified == '0') {
|
||||
$color = "<i class='fa fa-exclamation-triangle' title='".Lang::get('lang.accoutn-not-verified')."'></i>";
|
||||
}
|
||||
|
||||
return "<a href='".$url."' title='".Lang::get('lang.see-profile1').' '.$name.'''.Lang::get('lang.see-profile2')."'><span style='color:#508983'>".str_limit($name, 30).' <span style="color:#f75959">'.$color.'</span></span></a>';
|
||||
})
|
||||
->editColumn('a_uname', function ($tickets) {
|
||||
if ($tickets->assigned_to == null && $tickets->name == null) {
|
||||
return "<span style='color:red'>Unassigned</span>";
|
||||
} else {
|
||||
$assign = $tickets->assign_user_name;
|
||||
if ($tickets->assigned_to != null) {
|
||||
$assign = utfEncoding($tickets->a_fname).' '.utfEncoding($tickets->a_lname);
|
||||
$url = route('user.show', $tickets->assigned_to);
|
||||
|
||||
return "<a href='".$url."' title='".Lang::get('lang.see-profile1').' '.$assign.'''.Lang::get('lang.see-profile2')."'><span style='color:green'>".mb_substr($assign, 0, 30, 'UTF-8').'</span></a>';
|
||||
} else {
|
||||
$url1 = '#';
|
||||
|
||||
return "<a href='".$url1."' title='".Lang::get('lang.see-profile1').' '.ucfirst($tickets->name).'''.Lang::get('lang.see-profile2')."'><span style='color:green'>".mb_substr(ucfirst($tickets->name), 0, 30, 'UTF-8').'</span></a>';
|
||||
}
|
||||
}
|
||||
})
|
||||
->editColumn('updated_at', function ($tickets) {
|
||||
$TicketDatarow = $tickets->updated_at;
|
||||
$updated = '--';
|
||||
if ($TicketDatarow) {
|
||||
$updated = faveoDate($tickets->updated_at);
|
||||
}
|
||||
|
||||
return '<span style="display:none">'.$updated.'</span>'.$updated;
|
||||
})
|
||||
->make();
|
||||
}
|
||||
|
||||
/**
|
||||
* =====================================================================
|
||||
* DEPRECATED FUNCTIONS BLOCK
|
||||
* =====================================================================
|
||||
* Functions under this block have been deprecated and are no
|
||||
* longer used by the system.Though we have not removed these functions
|
||||
* in v1.10 but we will remove these routes in upcoming releas
|
||||
* =====================================================================
|
||||
**/
|
||||
|
||||
/**
|
||||
* Show the Inbox ticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function inbox_ticket_list()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.inbox', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the Open ticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function open_ticket_list()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.open', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the answered ticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function answered_ticket_list()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.answered', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the Myticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function myticket_ticket_list()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.myticket', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the Overdue ticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function overdue_ticket_list()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.overdue', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the Open ticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function dueTodayTicketlist()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.duetodayticket', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the Closed ticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function closed_ticket_list()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.closed', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the ticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function assigned_ticket_list()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.assigned', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the deptopen ticket list page.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function deptopen($id)
|
||||
{
|
||||
$dept = Department::where('name', '=', $id)->first();
|
||||
if (Auth::user()->role == 'agent') {
|
||||
if (Auth::user()->primary_dpt == $dept->id) {
|
||||
return view('themes.default1.agent.helpdesk.dept-ticket.tickets', compact('id'));
|
||||
} else {
|
||||
return redirect()->back()->with('fails', 'Unauthorised!');
|
||||
}
|
||||
} else {
|
||||
return view('themes.default1.agent.helpdesk.dept-ticket.tickets', compact('id'));
|
||||
}
|
||||
}
|
||||
|
||||
public function deptTicket($dept, $status)
|
||||
{
|
||||
if (\Auth::user()->role === 'agent') {
|
||||
$dept2 = Department::where('id', '=', \Auth::user()->primary_dpt)->first();
|
||||
if ($dept !== $dept2->name) {
|
||||
return redirect()->back()->with('fails', Lang::get('lang.unauthorized_access'));
|
||||
}
|
||||
}
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.dept-ticket.tickets', compact('dept', 'status', 'table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* shows trashed tickets.
|
||||
*
|
||||
* @return type response
|
||||
*/
|
||||
public function trash()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.trash', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* shows unassigned tickets.
|
||||
*
|
||||
* @return type
|
||||
*/
|
||||
public function unassigned()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.unassigned', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* shows tickets assigned to Auth::user().
|
||||
*
|
||||
* @return type
|
||||
*/
|
||||
public function myticket()
|
||||
{
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.ticket.myticket', compact('table'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @return type
|
||||
*/
|
||||
public function followupTicketList()
|
||||
{
|
||||
try {
|
||||
$table = \Datatable::table()
|
||||
->addColumn(
|
||||
'', Lang::get('lang.subject'), Lang::get('lang.ticket_id'), Lang::get('lang.priority'), Lang::get('lang.from'), Lang::get('lang.assigned_to'), Lang::get('lang.last_activity'), Lang::get('lang.created-at'))
|
||||
->noScript();
|
||||
|
||||
return view('themes.default1.agent.helpdesk.followup.followup', compact('table'));
|
||||
} catch (Exception $e) {
|
||||
return Redirect()->back()->with('fails', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* chumper's function to return data to chumper datatable.
|
||||
* @param Array-object $tickets
|
||||
*
|
||||
* @return Array-object
|
||||
*/
|
||||
|
||||
public static function getTable($tickets)
|
||||
{
|
||||
return \Datatables::of($tickets)
|
||||
->addColumn('id', function ($tickets) {
|
||||
return "<input type='checkbox' name='select_all[]' id='".$tickets->id."' onclick='someFunction(this.id)' class='selectval icheckbox_flat-blue' value='".$tickets->id."'></input>";
|
||||
})
|
||||
->addColumn('title', function ($tickets) {
|
||||
if (isset($tickets->ticket_title)) {
|
||||
$string = str_limit($tickets->ticket_title, 20);
|
||||
} else {
|
||||
$string = '(no subject)';
|
||||
}
|
||||
$collab = $tickets->countcollaborator;
|
||||
if ($collab > 0) {
|
||||
$collabString = ' <i class="fa fa-users"></i>';
|
||||
} else {
|
||||
$collabString = null;
|
||||
}
|
||||
$attachCount = $tickets->countattachment;
|
||||
if ($attachCount > 0) {
|
||||
$attachString = ' <i class="fa fa-paperclip"></i>';
|
||||
} else {
|
||||
$attachString = '';
|
||||
}
|
||||
$css = $tickets->css;
|
||||
$titles = '';
|
||||
if ($tickets->ticket_title) {
|
||||
$titles = $tickets->ticket_title;
|
||||
}
|
||||
$tooltip_script = self::tooltip($tickets->id);
|
||||
|
||||
return "<div class='tooltip1' id='tool".$tickets->id."'>
|
||||
<a href='".route('ticket.thread', [$tickets->id])."'>".ucfirst($string)." <span style='color:green'>(".$tickets->countthread.") <i class='".$css."'></i></span>
|
||||
</a>".$collabString.$attachString.$tooltip_script.
|
||||
"<span class='tooltiptext' id='tooltip".$tickets->id."'>Loading...</span></div>";
|
||||
})
|
||||
->addColumn('ticket_number', function ($tickets) {
|
||||
return "<a href='".route('ticket.thread', [$tickets->id])."' title='".$tickets->ticket_number."'>#".$tickets->ticket_number.'</a>';
|
||||
})
|
||||
->addColumn('priority', function ($tickets) {
|
||||
$rep = ($tickets->last_replier == 'client') ? '#F39C12' : '#000';
|
||||
$priority = $tickets->priority;
|
||||
if ($priority != null) {
|
||||
$prio = '<button class="btn btn-xs '.$rep.'" style="background-color: '.$tickets->priority_color.'; color:#F7FBCB">'.ucfirst($tickets->priority).'</button>';
|
||||
} else {
|
||||
$prio = $tickets->last_relier_role;
|
||||
}
|
||||
|
||||
return $prio;
|
||||
})
|
||||
->addColumn('user_name', function ($tickets) {
|
||||
$from = $tickets->first_name;
|
||||
$url = route('user.show', $tickets->user_id);
|
||||
$name = '';
|
||||
if ($from) {
|
||||
$name = $tickets->first_name.' '.$tickets->last_name;
|
||||
} else {
|
||||
$name = $tickets->user_name;
|
||||
}
|
||||
$color = '';
|
||||
if ($tickets->verified == 0 || $tickets->verified == '0') {
|
||||
$color = "<i class='fa fa-exclamation-triangle' title='".Lang::get('lang.accoutn-not-verified')."'></i>";
|
||||
}
|
||||
|
||||
return "<a href='".$url."' title='".Lang::get('lang.see-profile1').' '.ucfirst($tickets->user_name).'''.Lang::get('lang.see-profile2')."'><span style='color:#508983'>".ucfirst(str_limit($name, 30)).' <span style="color:#f75959">'.$color.'</span></span></a>';
|
||||
})
|
||||
->addColumn('assign_user_name', function ($tickets) {
|
||||
if ($tickets->assigned_to == null) {
|
||||
return "<span style='color:red'>Unassigned</span>";
|
||||
} else {
|
||||
$assign = $tickets->assign_user_name;
|
||||
$url = route('user.show', $tickets->assigned_to);
|
||||
|
||||
return "<a href='".$url."' title='".Lang::get('lang.see-profile1').' '.ucfirst($tickets->assign_first_name).'''.Lang::get('lang.see-profile2')."'><span style='color:green'>".ucfirst($tickets->assign_first_name).' '.ucfirst($tickets->assign_last_name).'</span></a>';
|
||||
}
|
||||
})
|
||||
->addColumn('updated_at', function ($tickets) {
|
||||
$TicketDatarow = $tickets->updated_at;
|
||||
$updated = '--';
|
||||
if ($TicketDatarow) {
|
||||
$updated = $tickets->updated_at;
|
||||
}
|
||||
|
||||
return '<span style="display:none">'.$updated.'</span>'.UTC::usertimezone($updated);
|
||||
})
|
||||
->addColumn('created_at', function ($tickets) {
|
||||
$TicketDatarow = $tickets->created_at;
|
||||
$updated = '--';
|
||||
if ($TicketDatarow) {
|
||||
$updated = $tickets->created_at;
|
||||
}
|
||||
|
||||
return '<span style="display:none">'.$updated.'</span>'.UTC::usertimezone($updated);
|
||||
})
|
||||
->make();
|
||||
}
|
||||
}
|
||||
|
@@ -146,3 +146,68 @@ function faveotime($date, $hour = 0, $min = 0, $sec = 0)
|
||||
|
||||
return $date1->hour($hour)->minute($min)->second($sec);
|
||||
}
|
||||
|
||||
/**
|
||||
* @category function to return array values if status id
|
||||
*
|
||||
* @param string purpose of status
|
||||
*
|
||||
* @return array ids of status with purpose passed as string
|
||||
*/
|
||||
function getStatusArray($status)
|
||||
{
|
||||
$type = new App\Model\helpdesk\Ticket\Ticket_Status();
|
||||
$values = $type->where('state', '=', $status)->pluck('id')->toArray();
|
||||
|
||||
return $values;
|
||||
}
|
||||
|
||||
/**
|
||||
* @category function to UTF encoding
|
||||
*
|
||||
* @param string name
|
||||
*
|
||||
* @return string name
|
||||
*/
|
||||
function utfEncoding($name)
|
||||
{
|
||||
$title = '';
|
||||
$array = imap_mime_header_decode($name);
|
||||
if (is_array($array) && count($array) > 0) {
|
||||
foreach ($array as $text) {
|
||||
$title .= $text->text;
|
||||
}
|
||||
$name = $title;
|
||||
}
|
||||
|
||||
return $name;
|
||||
}
|
||||
|
||||
function faveoDate($date = '', $format = '', $tz = '')
|
||||
{
|
||||
if (!$date) {
|
||||
$date = \Carbon\Carbon::now();
|
||||
}
|
||||
if (!is_object($date)) {
|
||||
$date = carbon($date);
|
||||
}
|
||||
if (!$format || !$tz) {
|
||||
$system = App\Model\helpdesk\Settings\System::select('time_zone', 'date_time_format')->first();
|
||||
}
|
||||
if (!$format) {
|
||||
$format = $system->date_time_format;
|
||||
}
|
||||
if (!$tz) {
|
||||
$tz = $system->time_zone;
|
||||
}
|
||||
|
||||
try {
|
||||
if ($format == 'human-read') {
|
||||
return $date->tz($tz)->diffForHumans();
|
||||
}
|
||||
|
||||
return $date->tz($tz)->format($format);
|
||||
} catch (\Exception $ex) {
|
||||
return 'invalid';
|
||||
}
|
||||
}
|
@@ -83,12 +83,12 @@ class="active"
|
||||
<!-- slaplan -->
|
||||
<div class="col-xs-6 form-group {{ $errors->has('sla') ? 'has-error' : '' }}">
|
||||
{!! Form::label('sla',Lang::get('lang.SLA_plan')) !!}
|
||||
{!!Form::select('sla', [''=>Lang::get('lang.select_a_sla'), Lang::get('lang.sla_plans')=>$slas->lists('grace_period','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
{!!Form::select('sla', [''=>Lang::get('lang.select_a_sla'), Lang::get('lang.sla_plans')=>$slas->pluck('grace_period','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
</div>
|
||||
<!-- manager -->
|
||||
<div class="col-xs-6 form-group {{ $errors->has('manager') ? 'has-error' : '' }}">
|
||||
{!! Form::label('manager',Lang::get('lang.manager')) !!}
|
||||
{!!Form::select('manager',[''=>Lang::get('lang.select_a_manager'),Lang::get('lang.manager')=>$user->lists('full_name','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
{!!Form::select('manager',[''=>Lang::get('lang.select_a_manager'),Lang::get('lang.manager')=>$user->pluck('full_name','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -100,7 +100,7 @@ class="active"
|
||||
<!-- sla -->
|
||||
<div class="col-xs-6 form-group {{ $errors->has('outgoing_email') ? 'has-error' : '' }}">
|
||||
{!! Form::label('outgoing_email',Lang::get('lang.outgoing_email')) !!}
|
||||
{!!Form::select('outgoing_email', ['' => Lang::get('lang.system_default'), Lang::get('lang.emails')=>$emails->lists('email_name','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
{!!Form::select('outgoing_email', ['' => Lang::get('lang.system_default'), Lang::get('lang.emails')=>$emails->pluck('email_name','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@@ -83,12 +83,12 @@ class="active"
|
||||
<!-- sla -->
|
||||
<div class="col-xs-6 form-group {{ $errors->has('sla') ? 'has-error' : '' }}">
|
||||
{!! Form::label('sla',Lang::get('lang.SLA_plan')) !!}
|
||||
{!!Form::select('sla', [''=>Lang::get('lang.select_a_sla'), Lang::get('lang.sla_plans')=>$slas->lists('grace_period','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
{!!Form::select('sla', [''=>Lang::get('lang.select_a_sla'), Lang::get('lang.sla_plans')=>$slas->pluck('grace_period','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
</div>
|
||||
<!-- manager -->
|
||||
<div class="col-xs-6 form-group {{ $errors->has('manager') ? 'has-error' : '' }}">
|
||||
{!! Form::label('manager',Lang::get('lang.manager')) !!}
|
||||
{!!Form::select('manager',[null=>Lang::get('lang.select_a_manager'),Lang::get('lang.manager')=>$user->lists('full_name','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
{!!Form::select('manager',[null=>Lang::get('lang.select_a_manager'),Lang::get('lang.manager')=>$user->pluck('full_name','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -100,7 +100,7 @@ class="active"
|
||||
<!-- sla -->
|
||||
<div class="col-xs-6 form-group {{ $errors->has('outgoing_email') ? 'has-error' : '' }}">
|
||||
{!! Form::label('outgoing_email',Lang::get('lang.outgoing_email')) !!}
|
||||
{!!Form::select('outgoing_email', ['' => Lang::get('lang.system_default'), Lang::get('lang.emails')=>$emails->lists('email_name','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
{!!Form::select('outgoing_email', ['' => Lang::get('lang.system_default'), Lang::get('lang.emails')=>$emails->pluck('email_name','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@@ -73,19 +73,19 @@ class="active"
|
||||
<div class="col-xs-4 form-group {!! $errors->has('department') ? 'has-error' : ''!!}" id="department_error">
|
||||
{!! Form::label('department',Lang::get('lang.department')) !!}
|
||||
{!! $errors->first('department', '<spam class="help-block">:message</spam>') !!}
|
||||
{!!Form::select('department', [''=>'--System Default--','departments'=>$departments->lists('name','id')->toArray()],null,['class' => 'form-control select', 'id' => 'department' ]) !!}
|
||||
{!!Form::select('department', [''=>'--System Default--','departments'=>$departments->pluck('name','id')->toArray()],null,['class' => 'form-control select', 'id' => 'department' ]) !!}
|
||||
</div>
|
||||
<!-- Priority -->
|
||||
<div class="col-xs-4 form-group {!! $errors->has('priority') ? 'has-error' : ''!!}" id="priority_error">
|
||||
{!! Form::label('priority',Lang::get('lang.priority')) !!}
|
||||
{!! $errors->first('priority', '<spam class="help-block">:message</spam>') !!}
|
||||
{!!Form::select('priority', [''=>'--System Default--','Priorities'=>$priority->lists('priority_desc','priority_id')->toArray()],null,['class' => 'form-control select', 'id' => 'priority']) !!}
|
||||
{!!Form::select('priority', [''=>'--System Default--','Priorities'=>$priority->pluck('priority_desc','priority_id')->toArray()],null,['class' => 'form-control select', 'id' => 'priority']) !!}
|
||||
</div>
|
||||
<!-- Help topic -->
|
||||
<div class="col-xs-4 form-group {!! $errors->has('help_topic') ? 'has-error' : ''!!}" id="help_topic_error">
|
||||
{!! Form::label('help_topic',Lang::get('lang.help_topic')) !!}
|
||||
{!! $errors->first('help_topic', '<spam class="help-block">:message</spam>') !!}
|
||||
{!!Form::select('help_topic', [''=>'--System Default--','Help Topics'=>$helps->lists('topic','id')->toArray()],null,['class' => 'form-control select', 'id' => 'help_topic']) !!}
|
||||
{!!Form::select('help_topic', [''=>'--System Default--','Help Topics'=>$helps->pluck('topic','id')->toArray()],null,['class' => 'form-control select', 'id' => 'help_topic']) !!}
|
||||
</div>
|
||||
<!-- status -->
|
||||
<div class="col-xs-2 form-group">
|
||||
|
@@ -80,19 +80,19 @@ class="active"
|
||||
<div class="col-xs-4 form-group {{ $errors->has('department') ? 'has-error' : '' }}">
|
||||
{!! Form::label('department',Lang::get('lang.department')) !!}
|
||||
{!! $errors->first('department', '<spam class="help-block">:message</spam>') !!}
|
||||
{!!Form::select('department', [''=>'--System Default--','departments'=>$departments->lists('name','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
{!!Form::select('department', [''=>'--System Default--','departments'=>$departments->pluck('name','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
</div>
|
||||
<!-- priority -->
|
||||
<div class="col-xs-4 form-group {{ $errors->has('priority') ? 'has-error' : '' }}">
|
||||
{!! Form::label('priority',Lang::get('lang.priority')) !!}
|
||||
{!! $errors->first('priority', '<spam class="help-block">:message</spam>') !!}
|
||||
{!!Form::select('priority', [''=>'--System Default--','Priorities'=>$priority->lists('priority_desc','priority_id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
{!!Form::select('priority', [''=>'--System Default--','Priorities'=>$priority->pluck('priority_desc','priority_id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
</div>
|
||||
<!-- help topic -->
|
||||
<div class="col-xs-4 form-group {{ $errors->has('help_topic') ? 'has-error' : '' }}">
|
||||
{!! Form::label('help_topic',Lang::get('lang.help_topic')) !!}
|
||||
{!! $errors->first('help_topic', '<spam class="help-block">:message</spam>') !!}
|
||||
{!!Form::select('help_topic', [''=>'--System Default--','Help Topics'=>$helps->lists('topic','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
{!!Form::select('help_topic', [''=>'--System Default--','Help Topics'=>$helps->pluck('topic','id')->toArray()],null,['class' => 'form-control select']) !!}
|
||||
</div>
|
||||
<!-- status -->
|
||||
<div class="col-xs-2 form-group">
|
||||
|
@@ -0,0 +1 @@
|
||||
<script src="{{asset("lb-faveo/plugins/select2/select2.full.min.js")}}" type="text/javascript"></script>
|
@@ -0,0 +1,138 @@
|
||||
<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">
|
||||
<div class="col-md-2"></div>
|
||||
<div class="col-md-8">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close closemodal" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title" id="myModalLabel"></h4>
|
||||
</div>
|
||||
<div class="modal-body" id="custom-alert-body" >
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-primary pull-left yes" data-dismiss="modal">{{Lang::get('lang.ok')}}</button>
|
||||
<button type="button" class="btn btn-default no">{{Lang::get('lang.cancel')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- merge tickets modal -->
|
||||
<div class="modal fade" id="MergeTickets">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" id="merge-close" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title">{!! Lang::get('lang.merge-ticket') !!} </h4>
|
||||
</div><!-- /.modal-header-->
|
||||
<div class ="modal-body">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
</div>
|
||||
<div class="col-md-6" id="merge_loader" style="display:none;">
|
||||
<img src="{{asset("lb-faveo/media/images/gifloader.gif")}}"><br/><br/><br/>
|
||||
</div><!-- /.merge-loader -->
|
||||
</div>
|
||||
<div id="merge_body">
|
||||
<div id="merge-body-alert">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div id="merge-succ-alert" class="alert alert-success alert-dismissable" style="display:none;" >
|
||||
<!--<button id="dismiss-merge" type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>-->
|
||||
<h4><i class="icon fa fa-check"></i>{!! Lang::get('lang.alert') !!}!</h4>
|
||||
<div id="message-merge-succ"></div>
|
||||
</div>
|
||||
<div id="merge-err-alert" class="alert alert-danger alert-dismissable" style="display:none;">
|
||||
<!--<button id="dismiss-merge2" type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>-->
|
||||
<h4><i class="icon fa fa-ban"></i>{!! Lang::get('lang.alert') !!}!</h4>
|
||||
<div id="message-merge-err"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- /.merge-alert -->
|
||||
<div id="merge-body-form">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{!! Form::open(['id'=>'merge-form','method' => 'PATCH'] )!!}
|
||||
<label>{!! Lang::get('lang.title') !!}</label>
|
||||
<input type="text" name='title' class="form-control" value="" placeholder="Optional" />
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label>{!! Lang::get('lang.select-pparent-ticket') !!}</label>
|
||||
<select class="form-control" id="select-merge-parent" name='p_id' data-placeholder="{!! Lang::get('lang.select_tickets') !!}" style="width: 100%;"><option value=""></option></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<label>{!! Lang::get('lang.merge-reason') !!}</label>
|
||||
<textarea name="reason" class="form-control" height="120px"></textarea>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div><!-- mereg-body-form -->
|
||||
</div><!-- merge-body -->
|
||||
</div><!-- /.modal-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-->
|
||||
<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">×</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 id="assign-form">
|
||||
{{ csrf_field() }}
|
||||
<label>{!! Lang::get('lang.whome_do_you_want_to_assign_ticket') !!}</label>
|
||||
<select id="assign" class="form-control" name="assign_to">
|
||||
|
||||
<?php
|
||||
$teams = App\Model\helpdesk\Agent\Teams::where('status', '=', '1')->where('team_lead', '!=', null)->get();
|
||||
$count_teams = count($teams);
|
||||
$assign = App\User::where('role', '!=', 'user')->select('id', 'first_name', 'last_name')->where('active', '=', 1)->where('is_delete', '!=', 1)->where('ban', '!=', 1)->orderBy('first_name')->get();
|
||||
$count_assign = count($assign);
|
||||
?>
|
||||
<optgroup label="Teams ( {!! $count_teams !!} )">
|
||||
@foreach($teams as $team)
|
||||
<option value="team_{{$team->id}}">{!! $team->name !!}</option>
|
||||
@endforeach
|
||||
</optgroup>
|
||||
<optgroup label="Agents ( {!! $count_assign !!} )">
|
||||
@foreach($assign as $user)
|
||||
<option value="user_{{$user->id}}">{{$user->first_name." ".$user->last_name}}</option>
|
||||
@endforeach
|
||||
</optgroup>
|
||||
</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.assign') !!}"></input>
|
||||
{!! Form::close() !!}
|
||||
</div><!-- /.modal-footer -->
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
<!-- Assign ticket model-->
|
@@ -0,0 +1,335 @@
|
||||
<script>
|
||||
var filterClick = 0;
|
||||
var clearlist = 0;
|
||||
var t_id = [];
|
||||
var submit_form = 0;
|
||||
var c_status = '';
|
||||
var option = null;
|
||||
$(function () {
|
||||
//Enable check and uncheck all functionality
|
||||
$(".checkbox-toggle").click(function () {
|
||||
var clicks = $(this).data('clicks');
|
||||
if (clicks) {
|
||||
//Uncheck all checkboxes
|
||||
$(".mailbox-messages input[type='checkbox']").iCheck("uncheck");
|
||||
$(".fa", this).removeClass("fa-check-square-o").addClass('fa-square-o');
|
||||
} else {
|
||||
//Check all checkboxes
|
||||
$(".mailbox-messages input[type='checkbox']").iCheck("check");
|
||||
$(".fa", this).removeClass("fa-square-o").addClass('fa-check-square-o');
|
||||
}
|
||||
$(this).data("clicks", !clicks);
|
||||
});
|
||||
});
|
||||
$(function () {
|
||||
// Enable check and uncheck all functionality
|
||||
$(".checkbox-toggle").click(function () {
|
||||
var clicks = $(this).data('clicks');
|
||||
// alert(clicks);
|
||||
if (clicks) {
|
||||
//Uncheck all checkboxes
|
||||
$("input[type='checkbox']", ".mailbox-messages").iCheck("uncheck");
|
||||
// alert($("input[type='checkbox']").val());
|
||||
t_id = $('.selectval').map(function () {
|
||||
return $(this).val();
|
||||
}).get();
|
||||
showAssign(t_id);
|
||||
// alert(checkboxValues);
|
||||
} else {
|
||||
//Check all checkboxes
|
||||
$("input[type='checkbox']", ".mailbox-messages").iCheck("check");
|
||||
// alert('Hallo');
|
||||
t_id = [];
|
||||
showAssign(t_id);
|
||||
}
|
||||
$(this).data("clicks", !clicks);
|
||||
});
|
||||
});
|
||||
|
||||
function getValues() {
|
||||
return t_id;
|
||||
}
|
||||
|
||||
$(".closemodal, .no").click(function () {
|
||||
$("#myModal").css("display", "none");
|
||||
});
|
||||
|
||||
$(".closemodal, .no").click(function () {
|
||||
$("#myModal").css("display", "none");
|
||||
});
|
||||
|
||||
$('.yes').click(function () {
|
||||
var values = getValues();
|
||||
if (values == "") {
|
||||
$("#myModal").css("display", "none");
|
||||
} else {
|
||||
$("#myModal").css("display", "none");
|
||||
if (c_status != 'hard-delete'){
|
||||
var url = '{{url("ticket/change-status/")}}/' + values + '/' + c_status;
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: url,
|
||||
dataType: "html",
|
||||
data: $(this).serialize(),
|
||||
beforeSend: function() {
|
||||
$('.loader1').css('display','block');
|
||||
$('.loader').css('display','block');
|
||||
$('#d1').prop('disabled', true);
|
||||
$("#hidespin").hide();
|
||||
$("#spin").show();
|
||||
$("#hide2").hide();
|
||||
$("#show2").show();
|
||||
},
|
||||
success: function(response) {
|
||||
$('.loader1').css('display','none');
|
||||
$('.loader').css('display','none');
|
||||
$('#d1').prop('disabled', false);
|
||||
$("#hide2").show();
|
||||
$("#show2").hide();
|
||||
$("#hidespin").show();
|
||||
$("#spin").hide();
|
||||
var message = "{!! Lang::get('lang.status-changed-successfully') !!} {!! Lang::get('lang.reload-be-patient-message') !!}";
|
||||
$(".success-message, .success-msg, .get-success, #get-success").html(message);
|
||||
$(".alert-success").show();
|
||||
setTimeout(function(){
|
||||
location.reload();
|
||||
}, 3000)
|
||||
},
|
||||
error: function (xhr, ajaxOptions, thrownError) {
|
||||
$('.loader1').css('display','none');
|
||||
$('.loader').css('display','none');
|
||||
if (xhr.status == 403) {
|
||||
$('#d1').prop('disabled', false);
|
||||
$("#hide2").show();
|
||||
$("#show2").hide();
|
||||
$("#hidespin").show();
|
||||
$("#spin").hide();
|
||||
var message = JSON.parse(xhr.responseText);
|
||||
$(".error-message, #get-danger").html(message.message[0]);
|
||||
$(".alert-danger").show();
|
||||
}
|
||||
}
|
||||
})
|
||||
return false;
|
||||
} else {
|
||||
$("#modalpopup").unbind('submit');
|
||||
submit_form = 1;
|
||||
$('#hard-delete').click();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function changeStatus(id, name) {
|
||||
$('#myModalLabel').html('{{Lang::get("lang.change-ticket-status-to")}}' + name);
|
||||
var msg = "{{Lang::get('lang.confirm-to-proceed')}}";
|
||||
var values = getValues();
|
||||
if (values == "") {
|
||||
msg = "{{Lang::get('lang.select-ticket')}}";
|
||||
$('.yes').html("{{Lang::get('lang.ok')}}");
|
||||
$('#myModalLabel').html("{{Lang::get('lang.alert')}}");
|
||||
} else {
|
||||
c_status = id;
|
||||
$('.yes').html("Yes");
|
||||
}
|
||||
$('#custom-alert-body').html(msg);
|
||||
$("#myModal").css("display", "block");
|
||||
}
|
||||
|
||||
$('#modalpopup').on('submit', function(e){
|
||||
if (submit_form == 0) {
|
||||
e.preventDefault();
|
||||
changeStatus('hard-delete', '{{Lang::get("lang.clean-")}}');
|
||||
}
|
||||
$('#hard-delete').val('Delete forever')
|
||||
});
|
||||
|
||||
function someFunction(id) {
|
||||
if (document.getElementById(id).checked) {
|
||||
t_id.push(id);
|
||||
// alert(t_id);
|
||||
} else if (document.getElementById(id).checked === undefined) {
|
||||
var index = t_id.indexOf(id);
|
||||
if (index === - 1) {
|
||||
t_id.push(id);
|
||||
} else {
|
||||
t_id.splice(index, 1);
|
||||
}
|
||||
} else {
|
||||
var index = t_id.indexOf(id);
|
||||
t_id.splice(index, 1);
|
||||
// alert(t_id);
|
||||
}
|
||||
showAssign(t_id);
|
||||
}
|
||||
|
||||
function showAssign(t_id) {
|
||||
if (t_id.length >= 1) {
|
||||
$('#assign_Ticket').css('display', 'inline');
|
||||
} else {
|
||||
$('#assign_Ticket').css('display', 'none');
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
//checking merging tickets
|
||||
$('#MergeTickets').on('show.bs.modal', function () {
|
||||
|
||||
// alert("hi");
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "{{route('check.merge.tickets',0)}}",
|
||||
dataType: "html",
|
||||
data: {data1: t_id},
|
||||
beforeSend: function () {
|
||||
$('.loader1').css('display','block');
|
||||
$('.loader').css('display','block');
|
||||
$("#merge_body").hide();
|
||||
$("#merge_loader").show();
|
||||
},
|
||||
success: function (response) {
|
||||
$('.loader1').css('display','none');
|
||||
$('.loader').css('display','none');
|
||||
if (response == 0) {
|
||||
$("#merge_body").show();
|
||||
$("#merge-succ-alert").hide();
|
||||
$("#merge-body-alert").show();
|
||||
$("#merge-body-form").hide();
|
||||
$("#merge_loader").hide();
|
||||
$("#merge-btn").attr('disabled', true);
|
||||
var message = "{{Lang::get('lang.select-tickets-to merge')}}";
|
||||
$("#merge-err-alert").show();
|
||||
$('#message-merge-err').html(message);
|
||||
} else if (response == 2) {
|
||||
$("#merge_body").show();
|
||||
$("#merge-succ-alert").hide();
|
||||
$("#merge-body-alert").show();
|
||||
$("#merge-body-form").hide();
|
||||
$("#merge_loader").hide();
|
||||
$("#merge-btn").attr('disabled', true);
|
||||
var message = "{{Lang::get('lang.different-users')}}";
|
||||
$("#merge-err-alert").show();
|
||||
$('#message-merge-err').html(message);
|
||||
} else {
|
||||
$.ajax({
|
||||
url: "{{ route('get.merge.tickets',0) }}",
|
||||
dataType: "html",
|
||||
data: {data1: t_id},
|
||||
beforeSend: function(){
|
||||
$('.loader1').css('display','block');
|
||||
$('.loader').css('display','block');
|
||||
},
|
||||
success: function (data) {
|
||||
$('.loader1').css('display','none');
|
||||
$('.loader').css('display','none');
|
||||
$("#merge_body").show();
|
||||
$("#merge-body-alert").hide();
|
||||
$("#merge-body-form").show();
|
||||
$("#merge_loader").hide();
|
||||
$("#merge-btn").attr('disabled', false);
|
||||
$("#merge_loader").hide();
|
||||
$('#select-merge-parent').html(data);
|
||||
}
|
||||
// return false;
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//submit merging form
|
||||
$('#merge-form').on('submit', function () {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "{!! url('merge-tickets/') !!}/" + t_id,
|
||||
dataType: "json",
|
||||
data: $(this).serialize(),
|
||||
beforeSend: function () {
|
||||
$('.loader1').css('display','block');
|
||||
$('.loader').css('display','block');
|
||||
$("#merge_body").hide();
|
||||
$("#merge_loader").show();
|
||||
},
|
||||
success: function (response) {
|
||||
$('.loader1').css('display','none');
|
||||
$('.loader').css('display','none');
|
||||
if (response == 0) {
|
||||
$("#merge_body").show();
|
||||
$("#merge-succ-alert").hide();
|
||||
$("#merge-body-alert").show();
|
||||
$("#merge-body-form").hide();
|
||||
$("#merge_loader").hide();
|
||||
$("#merge-btn").attr('disabled', true);
|
||||
var message = "{{Lang::get('lang.merge-error')}}";
|
||||
$("#merge-err-alert").show();
|
||||
$('#message-merge-err').html(message);
|
||||
} else {
|
||||
$("#merge_body").show();
|
||||
$("#merge-err-alert").hide();
|
||||
$("#merge-body-alert").show();
|
||||
$("#merge-body-form").hide();
|
||||
$("#merge_loader").hide();
|
||||
$("#merge-btn").attr('disabled', true);
|
||||
var message = "{{Lang::get('lang.merge-success')}}";
|
||||
$("#merge-succ-alert").show();
|
||||
$('#message-merge-succ').html(message);
|
||||
setTimeout(function () {
|
||||
$("#alert11").hide();
|
||||
location.reload();
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
})
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#AssignTickets').on('show.bs.modal', function() {
|
||||
//select_assigen_list.val(null).trigger("change");
|
||||
$("#assign_body").hide();
|
||||
$("#assign_loader").show();
|
||||
setTimeout(function(){
|
||||
$("#assign_body").show();
|
||||
$("#assign_loader").hide();
|
||||
}, 2000);
|
||||
});
|
||||
|
||||
$('#assign-form').on('submit', function() {
|
||||
var t_id = "";
|
||||
$("input[name='select_all[]']:checked:enabled").each(function() {
|
||||
t_id = $(this).val() + "," + t_id;
|
||||
});
|
||||
//var t_id = $("input[name='select_all[]']").val();
|
||||
$.ajax({
|
||||
type: "PATCH",
|
||||
url: "{{url('ticket/assign')}}",
|
||||
dataType: "html",
|
||||
data: $(this).serialize() + '&ticket_id=' + t_id,
|
||||
beforeSend: function() {
|
||||
$('.loader1').css('display','block');
|
||||
$('.loader').css('display','block');
|
||||
$("#assign_body").hide();
|
||||
$("#assign_loader").show();
|
||||
},
|
||||
success: function(response) {
|
||||
$('.loader1').css('display','none');
|
||||
$('.loader').css('display','none');
|
||||
if (response == 1) {
|
||||
var message = "{!!Lang::get('lang.ticket-assigned-successfully')!!} {!!Lang::get('lang.reload-be-patient-message')!!}"
|
||||
$(".success-message, .success-msg, .get-success, #get-success").html(message);
|
||||
$(".alert-success").show();
|
||||
$("#assign-close").trigger("click");
|
||||
setTimeout(function(){
|
||||
location.reload();
|
||||
}, 2000)
|
||||
}
|
||||
},
|
||||
error: function(){
|
||||
$('.loader1').css('display','none');
|
||||
$('.loader').css('display','none');
|
||||
$("#assign_body").show();
|
||||
$("#assign_loader").hide();
|
||||
}
|
||||
})
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
@@ -0,0 +1,384 @@
|
||||
@extends('themes.default1.agent.layout.agent')
|
||||
|
||||
@section('Tickets')
|
||||
class="active"
|
||||
@stop
|
||||
|
||||
@section('ticket-bar')
|
||||
active
|
||||
@stop
|
||||
|
||||
<?php
|
||||
$inputs = \Input::get('show');
|
||||
$activepage = $inputs[0];
|
||||
if (\Input::has('assigned'))
|
||||
{
|
||||
$activepage = \Input::get('assigned')[0];
|
||||
}
|
||||
?>
|
||||
|
||||
@if($activepage == 'trash')
|
||||
@section('trash')
|
||||
class="active"
|
||||
@stop
|
||||
@elseif ($activepage == 'mytickets')
|
||||
@section('myticket')
|
||||
class="active"
|
||||
@stop
|
||||
@elseif ($activepage == 'followup')
|
||||
@section('followup')
|
||||
class="active"
|
||||
@stop
|
||||
@elseif($activepage == 'inbox')
|
||||
@section('inbox')
|
||||
class="active"
|
||||
@stop
|
||||
@elseif($activepage == 'overdue')
|
||||
@section('overdue')
|
||||
class="active"
|
||||
@stop
|
||||
@elseif($activepage == 'closed')
|
||||
@section('closed')
|
||||
class="active"
|
||||
@stop
|
||||
@elseif($activepage == 'approval')
|
||||
@section('approval')
|
||||
class="active"
|
||||
@stop
|
||||
@elseif($activepage == 0)
|
||||
@section('unassigned')
|
||||
class="active"
|
||||
@stop
|
||||
@else
|
||||
@section('inbox')
|
||||
class="active"
|
||||
@stop
|
||||
@endif
|
||||
|
||||
@section('PageHeader')
|
||||
<h1>{{Lang::get('lang.tickets')}}</h1>
|
||||
<style>
|
||||
.tooltip1 {
|
||||
position: relative;
|
||||
/*display: inline-block;*/
|
||||
/*border-bottom: 1px dotted black;*/
|
||||
}
|
||||
|
||||
.tooltip1 .tooltiptext {
|
||||
visibility: hidden;
|
||||
width: 100%;
|
||||
background-color: black;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
border-radius: 6px;
|
||||
padding: 5px 0;
|
||||
|
||||
/* Position the tooltip */
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.tooltip1:hover .tooltiptext {
|
||||
visibility: visible;
|
||||
}
|
||||
</style>
|
||||
@stop
|
||||
@section('content')
|
||||
<!-- Main content -->
|
||||
<div class="box box-primary">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">
|
||||
@if($activepage == 'trash')
|
||||
{{Lang::get('lang.trash')}}
|
||||
@elseif ($activepage == 'mytickets')
|
||||
{{Lang::get('lang.my_tickets')}}
|
||||
@elseif ($activepage == 'followup')
|
||||
{{Lang::get('lang.followup')}}
|
||||
@elseif($activepage == 'inbox')
|
||||
{{Lang::get('lang.inbox')}}
|
||||
@elseif($activepage == 'overdue')
|
||||
{{Lang::get('lang.overdue')}}
|
||||
@elseif($activepage == 'closed')
|
||||
{{Lang::get('lang.closed')}}
|
||||
@elseif($activepage == 'approval')
|
||||
{{Lang::get('lang.approval')}}
|
||||
@elseif($activepage == 0)
|
||||
{{Lang::get('lang.unassigned')}}
|
||||
@else
|
||||
{{Lang::get('lang.inbox')}}
|
||||
@endif
|
||||
@if(count(Input::all()) > 2 && $activepage != '0')
|
||||
/ {{Lang::get('lang.filtered-results')}}
|
||||
@else()
|
||||
@if(count(Input::get('departments')) == 1 && Input::get('departments')[0] != 'All')
|
||||
/ {{Lang::get('lang.filtered-results')}}
|
||||
@elseif (count(Input::get('departments')) > 1)
|
||||
/ {{Lang::get('lang.filtered-results')}}
|
||||
@endif
|
||||
@endif
|
||||
</h3>
|
||||
</div><!-- /.box-header -->
|
||||
|
||||
<div class="box-body ">
|
||||
@if(Session::has('success'))
|
||||
<div class="alert alert-success alert-dismissable">
|
||||
<i class="fa fa-check-circle"> </i>
|
||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||
{{Session::get('success')}}
|
||||
</div>
|
||||
@endif
|
||||
<!-- failure message -->
|
||||
@if(Session::has('fails'))
|
||||
<div class="alert alert-danger alert-dismissable">
|
||||
<i class="fa fa-ban"> </i> <b> {!! Lang::get('lang.alert') !!}! </b>
|
||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||
{{Session::get('fails')}}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="alert alert-success alert-dismissable" style="display: none;">
|
||||
<i class="fa fa-check-circle"> </i> <span class="success-message"></span>
|
||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||
{{Session::get('success')}}
|
||||
</div>
|
||||
<div class="alert alert-danger alert-dismissable" style="display: none;">
|
||||
<i class="fa fa-ban"> </i> <b> {!! Lang::get('lang.alert') !!}!</b> <span class="error-message"></span>
|
||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||
{{Session::get('fails')}}
|
||||
</div>
|
||||
<!--<div class="mailbox-controls">-->
|
||||
<!-- Check all button -->
|
||||
|
||||
<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>
|
||||
<?php $inputs = Input::all(); ?>
|
||||
<div class="btn-group">
|
||||
<?php $statuses = Finder::getCustomedStatus(); ?>
|
||||
<button type="button" class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" id="d1"><i class="fa fa-exchange" style="color:teal;" id="hidespin"> </i><i class="fa fa-spinner fa-spin" style="color:teal; display:none;" id="spin"></i>
|
||||
{!! Lang::get('lang.change_status') !!} <span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
@foreach($statuses as $ticket_status)
|
||||
<li onclick="changeStatus({!! $ticket_status -> id !!}, '{!! $ticket_status->name !!}')"><a href="#"><i class="{!! $ticket_status->icon !!}" style="color:{!! $ticket_status->icon_color !!};"> </i>{!! $ticket_status->name !!}</a></li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
@if($activepage == 'trash')
|
||||
<button form="modalpopup" class="btn btn-sm btn-danger" id="hard-delete" name="submit" type="submit"><i class="fa fa-trash"></i> {{Lang::get('lang.clean-up')}}</button>
|
||||
@endif
|
||||
<p><p/>
|
||||
|
||||
<div class="mailbox-messages" id="refresh">
|
||||
<!--datatable-->
|
||||
{!! Form::open(['id'=>'modalpopup', 'route'=>'select_all','method'=>'post']) !!}
|
||||
{!!$table->render('vendor.Chumper.template')!!}
|
||||
{!! Form::close() !!}
|
||||
|
||||
<!-- /.datatable -->
|
||||
</div><!-- /.mail-box-messages -->
|
||||
</div><!-- /.box-body -->
|
||||
</div><!-- /. box -->
|
||||
|
||||
|
||||
<!-- Modal -->
|
||||
@include('themes.default1.agent.helpdesk.ticket.more.tickets-model')
|
||||
|
||||
{!! $table->script('vendor.Chumper.tickets-javascript') !!}
|
||||
@include('themes.default1.agent.helpdesk.ticket.more.tickets-options-script')
|
||||
<script>
|
||||
$(document).ready(function () { /// Wait till page is loaded
|
||||
var date_options = '<option value="any-time">{{Lang::get("lang.any-time")}}</option><option value="5-minutes">{{Lang::get("lang.5-minutes")}}</option><option value="10-minutes">{{Lang::get("lang.10-minutes")}}</option><option value="15-minutes">{{Lang::get("lang.15-minutes")}}</option><option value="30-minutes">{{Lang::get("lang.30-minutes")}}</option><option value="1-hour">{{Lang::get("lang.1-hour")}}</option><option value="4-hours">{{Lang::get("lang.4-hours")}}</option><option value="8-hours">{{Lang::get("lang.8-hours")}}</option><option value="12-hours">{{Lang::get("lang.12-hours")}}</option><option value="24-hours">{{Lang::get("lang.24-hours")}}</option><option value="today">{{Lang::get("lang.today")}}</option><option value="yesterday">{{Lang::get("lang.yesterday")}}</option><option value="this-week">{{Lang::get("lang.this-week")}}</option><option value="last-week">{{Lang::get("lang.last-week")}}</option><option value="15-days">{{Lang::get("lang.15-days")}}</option><option value="30-days">{{Lang::get("lang.30-days")}}</option><option value="this-month">{{Lang::get("lang.this-month")}}</option><option value="last-month">{{Lang::get("lang.last-month")}}</option><option value="last-2-months">{{Lang::get("lang.last-2-months")}}</option><option value="last-3-months">{{Lang::get("lang.last-3-months")}}</option><option value="last-6-months">{{Lang::get("lang.last-6-months")}}</option><option value="last-year">{{Lang::get("lang.last-year")}}</option>';
|
||||
$('#modified, #created').append(date_options);
|
||||
$('#modified, #created').trigger("change");
|
||||
var create_dropdown = $("#created").select2({maximumSelectionLength : 1});
|
||||
valueSelected(create_dropdown);
|
||||
var update_dropdown = $("#modified").select2({maximumSelectionLength : 1});
|
||||
valueSelected(update_dropdown);
|
||||
var due_dropdown = $("#due-on-filter").select2({maximumSelectionLength : 1});
|
||||
valueSelected(due_dropdown);
|
||||
var assign_dropdown = $("#assigned-filter").select2({maximumSelectionLength : 1});
|
||||
valueSelected(assign_dropdown);
|
||||
var response_dropdown = $('#response-filter').select2({maximumSelectionLength : 1});
|
||||
valueSelected(response_dropdown);
|
||||
$('.select2-selection').css('border-radius', '0px');
|
||||
$('.select2-selection').css('border-color', '#D2D6DE')
|
||||
$('.select2-container').children().css('border-radius', '0px');
|
||||
@if (array_key_exists('assigned', $inputs))
|
||||
assign_dropdown.val(JSON.parse('<?= json_encode($inputs["assigned"]) ?>')).trigger("change");
|
||||
if (JSON.parse('<?= json_encode($inputs["assigned"]) ?>') == '1' || JSON.parse('<?= json_encode($inputs["assigned"]) ?>') == 1) {
|
||||
}
|
||||
@endif
|
||||
|
||||
@if (array_key_exists('created', $inputs))
|
||||
create_dropdown.val(JSON.parse('<?= json_encode($inputs["created"]) ?>')).trigger("change");
|
||||
@endif
|
||||
|
||||
@if (array_key_exists('updated', $inputs))
|
||||
update_dropdown.val(JSON.parse('<?= json_encode($inputs["updated"]) ?>')).trigger("change");
|
||||
@endif
|
||||
|
||||
@if (array_key_exists('due-on', $inputs))
|
||||
due_dropdown.val(JSON.parse('<?= json_encode($inputs["due-on"]) ?>')).trigger("change");
|
||||
@endif
|
||||
|
||||
@if (array_key_exists('last-response-by', $inputs))
|
||||
response_dropdown.val(JSON.parse('<?= json_encode($inputs["last-response-by"]) ?>')).trigger("change");
|
||||
@endif
|
||||
|
||||
$('#resetFilter').on("click", function (){
|
||||
$('.filter, #assigned-to-filter, #departments-filter, #sla-filter, #priority-filter, #source-filter').val(null).trigger("change");
|
||||
clearlist += 1;
|
||||
clearfilterlist();
|
||||
});
|
||||
});
|
||||
|
||||
function showhidefilter()
|
||||
{
|
||||
if (filterClick == 0) {
|
||||
$('#filterBox').css('display', 'block');
|
||||
filterClick += 1;
|
||||
} else {
|
||||
$('#filterBox').css('display', 'none');
|
||||
filterClick = 0;
|
||||
}
|
||||
}
|
||||
|
||||
function removeEmptyValues()
|
||||
{
|
||||
$(':input[value=""]').attr('disabled', true);
|
||||
}
|
||||
|
||||
</script>
|
||||
@include('themes.default1.agent.helpdesk.selectlists.selectlistjavascript')
|
||||
<script type="text/javascript">
|
||||
var $dept_list = $("#departments-filter").addSelectlist({maximumSelectionLength : 5});
|
||||
valueSelected($dept_list);
|
||||
@if (array_key_exists('departments', $inputs))
|
||||
addFilters($dept_list, '<?= json_encode($inputs["departments"]) ?>');
|
||||
@endif
|
||||
|
||||
var $sla_list = $("#sla-filter").addSelectlist({maximumSelectionLength : 5});
|
||||
valueSelected($sla_list);
|
||||
@if (array_key_exists('sla', $inputs))
|
||||
addFilters($sla_list, '<?= json_encode($inputs["sla"]) ?>');
|
||||
@endif
|
||||
|
||||
var $priority_list = $("#priority-filter").addSelectlist({maximumSelectionLength : 5});
|
||||
valueSelected($priority_list);
|
||||
@if (array_key_exists('priority', $inputs))
|
||||
addFilters($priority_list, '<?= json_encode($inputs["priority"]) ?>');
|
||||
@endif
|
||||
|
||||
var $labels_list = $("#labels-filter").addSelectlist({maximumSelectionLength : 5});
|
||||
valueSelected($labels_list);
|
||||
@if (array_key_exists('labels', $inputs))
|
||||
addFilters($labels_list, '<?= json_encode($inputs["labels"]) ?>');
|
||||
@endif
|
||||
|
||||
var $tags_list = $("#tags-filter").addSelectlist({maximumSelectionLength : 5});
|
||||
valueSelected($tags_list);
|
||||
@if (array_key_exists('tags', $inputs))
|
||||
addFilters($tags_list, '<?= json_encode($inputs["tags"]) ?>');
|
||||
@endif
|
||||
|
||||
var $owner_list = $("#owner-filter").addSelectlist({maximumSelectionLength : 5});
|
||||
valueSelected($owner_list);
|
||||
@if (array_key_exists('created-by', $inputs))
|
||||
@endif
|
||||
|
||||
// var select_assigen_list = $("#select-assign-agent").addSelectlist({maximumSelectionLength : 1});
|
||||
// valueSelected(select_assigen_list);
|
||||
var $assignee_list = $("#assigned-to-filter").addSelectlist({maximumSelectionLength : 5});
|
||||
valueSelected($assignee_list);
|
||||
@if (array_key_exists('assigned-to', $inputs))
|
||||
@endif
|
||||
|
||||
var $status_list = $("#status-filter").addSelectlist({maximumSelectionLength : 5});
|
||||
valueSelected($status_list);
|
||||
@if (array_key_exists('status', $inputs))
|
||||
addFilters($status_list, '<?= json_encode($inputs["status"]) ?>');
|
||||
@endif
|
||||
|
||||
var $source_list = $("#source-filter").addSelectlist({maximumSelectionLength : 5});
|
||||
valueSelected($source_list);
|
||||
@if (array_key_exists('source', $inputs))
|
||||
addFilters($source_list, '<?= json_encode($inputs["source"]) ?>');
|
||||
@endif
|
||||
|
||||
var $type_list = $("#type-filter").addSelectlist({maximumSelectionLength : 5});
|
||||
valueSelected($type_list);
|
||||
@if (array_key_exists('types', $inputs))
|
||||
addFilters($type_list, '<?= json_encode($inputs["types"]) ?>');
|
||||
@endif
|
||||
|
||||
var $number_list = $("#ticket-number").addSelectlist({maximumSelectionLength : 5});
|
||||
valueSelected($number_list);
|
||||
@if (array_key_exists('ticket-number', $inputs))
|
||||
var input = JSON.parse('<?= json_encode($inputs["ticket-number"]) ?>');
|
||||
var $request = $.ajax({
|
||||
url: "{{URL::route('get-filtered-ticket-numbers')}}",
|
||||
dataType: 'html',
|
||||
data: {name:input},
|
||||
type: "GET",
|
||||
});
|
||||
$request.then(function (data) {
|
||||
data = JSON.parse(data);
|
||||
// This assumes that the data comes back as an array of data objects
|
||||
// The idea is that you are using the same callback as the old `initSelection`
|
||||
for (var d = 0; d < data.length; d++) {
|
||||
var item = data[d];
|
||||
// Create the DOM option that is pre-selected by default
|
||||
var option = new Option(item.text, item.id, true, true);
|
||||
// Append it to the select
|
||||
$number_list.append(option);
|
||||
}
|
||||
// Update the selected options that are displayed
|
||||
$number_list.trigger('change');
|
||||
});
|
||||
@endif
|
||||
|
||||
var $help_topic_list = $('#help-topic-filter').addSelectlist({maximumSelectionLength : 5});
|
||||
valueSelected($help_topic_list);
|
||||
@if (array_key_exists('help-topic', $inputs))
|
||||
addFilters($help_topic_list, '<?= json_encode($inputs["help-topic"]) ?>');
|
||||
@endif
|
||||
|
||||
function addFilters($element, $data){
|
||||
var obj = JSON.parse($data);
|
||||
if (obj.length > 0) {
|
||||
for (var d = 0; d < obj.length; d++) {
|
||||
var option = new Option(obj[d], obj[d], true, true);
|
||||
$element.append(option);
|
||||
}
|
||||
$element.trigger('change');
|
||||
}
|
||||
}
|
||||
|
||||
function clearfilterlist() {
|
||||
$dept_list.val(null).trigger("change");
|
||||
$sla_list.val(null).trigger("change");
|
||||
$priority_list.val(null).trigger("change");
|
||||
$source_list.val(null).trigger("change");
|
||||
$owner_list.val(null).trigger("change");
|
||||
$status_list.val(null).trigger("change");
|
||||
$assignee_list.val(null).trigger("change");
|
||||
$labels_list.val(null).trigger("change");
|
||||
$tags_list.val(null).trigger("change");
|
||||
$type_list.val(null).trigger("change");
|
||||
$number_list.val(null).trigger("change");
|
||||
$help_topic_list.val(null).trigger("change");
|
||||
}
|
||||
|
||||
function valueSelected($obj) {
|
||||
$obj.on("select2:select", function (e) { clearlist = 0; });
|
||||
}
|
||||
|
||||
$('#filter-form').on('submit', function(e){
|
||||
if (clearlist > 0) {
|
||||
$('#departments-filter, #sla-filter, #priority-filter, #source-filter, #owner-filter, #status-filter, #assigned-filter, #assigned-to-filter, #labels-filter, #tags-filter, #type-filter, #due-on-filter, #created, #modified, #ticket-number, #help-topic-filter').remove();
|
||||
$(this).children();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@stop
|
130
resources/views/vendor/Chumper/tickets-javascript.blade.php
vendored
Normal file
130
resources/views/vendor/Chumper/tickets-javascript.blade.php
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
$load_old_state = false;
|
||||
if (Session::has('current_page')) {
|
||||
if (Session::get('current_page') == \Request::fullUrl()) {
|
||||
$load_old_state = true;
|
||||
} else {
|
||||
Session::put('current_page', \Request::fullUrl());
|
||||
}
|
||||
} else {
|
||||
Session::put('current_page', \Request::fullUrl());
|
||||
}
|
||||
|
||||
$segments = \Request::segments();
|
||||
$segment = "";
|
||||
foreach ($segments as $seg) {
|
||||
$segment.="/".$seg;
|
||||
}
|
||||
$inputs = json_encode(\Input::all());
|
||||
$path = public_path();
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function () {
|
||||
var oTable = myFunction();
|
||||
function myFunction()
|
||||
{
|
||||
return jQuery('#chumper').dataTable({
|
||||
"sDom": "<'row'<'col-xs-6'l><'col-xs-6'f>r>"+
|
||||
"t"+
|
||||
"<'row'<'col-xs-6'i><'col-xs-6'p>>",
|
||||
"sPaginationType": "full_numbers",
|
||||
"bProcessing": true,
|
||||
"bServerSide": true,
|
||||
"bStateSave" : true,
|
||||
"bStateDuration": -1,
|
||||
"oLanguage": {
|
||||
"sLengthMenu": "_MENU_ Records per page",
|
||||
"sSearch" : "Search: ",
|
||||
"sProcessing": '<img id="blur-bg" class="backgroundfadein" style="top:40%;left:50%; width: 50px; height:50 px; display: block; position: fixed;" src="{!! asset("lb-faveo/media/images/gifloader3.gif") !!}">'
|
||||
},
|
||||
"stateLoadParams": function (settings, data) {
|
||||
if ('{{$load_old_state}}') {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
"fnDrawCallback": function( oSettings ) {
|
||||
$("#chumper").css({"opacity": "1"});
|
||||
$('#blur-bg').css({"opacity": "0.7", "z-index": "99999"});
|
||||
$('.loader1').css('display', 'none');
|
||||
t_id = [];
|
||||
showAssign(t_id);
|
||||
},
|
||||
"fnPreDrawCallback": function(oSettings, json) {
|
||||
$('.loader1').css('display', 'block');
|
||||
$("#chumper").css({"opacity":"0.3"});
|
||||
$('#blur-bg').css({"opacity": "0.7", "z-index": "99999"});
|
||||
|
||||
},
|
||||
|
||||
"headerCallback": function headerCallback(thead, data, start, end, display) {
|
||||
$(thead).find('th').first().css('text-align','center');
|
||||
$(thead).find('th').first().css('padding','3px 5px 3px 5px');
|
||||
if ($(thead).find('th').first().find('i').hasClass('fa-check-square-o')) {
|
||||
$(thead).find('th').first().find('i').removeClass('fa-check-square-o');
|
||||
$(thead).find('th').first().find('i').addClass('fa-square-o');
|
||||
}
|
||||
},
|
||||
"lengthMenu": [[10, 25, 50, 100, 500], [10, 25, 50, 100, 500]],
|
||||
"ajax": {
|
||||
url: "{{url('get-filtered-tickets')}}",
|
||||
data: function (d) {
|
||||
d.options = "{{$inputs}}";
|
||||
}
|
||||
},
|
||||
"aaSorting": [[5, "desc"]],
|
||||
"columnDefs": [
|
||||
{ "orderable": false, "targets": 0},
|
||||
{ "searchable": false, "targets": [5] },
|
||||
{ "visible": true, "targets": 5 },
|
||||
{
|
||||
"aTargets": [0],
|
||||
"fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {
|
||||
var str = sData;
|
||||
var start = str.indexOf('#');
|
||||
var color = hexToRgbA(str.substr(start, 7));
|
||||
$(nTd).css("border-left", "5px solid "+color);
|
||||
}
|
||||
}
|
||||
],
|
||||
"fnCreatedRow": function (nRow, aData, iDataIndex) {
|
||||
var str = aData[0];
|
||||
var length = aData[2].indexOf('*') - aData[2].indexOf('$');
|
||||
var p = aData[2].substr(aData[2].indexOf('$')+1, length-1);
|
||||
$("td", nRow).attr('title', "{!! Lang::get('lang.ticket-has-x-priority', ['priority' => '"+p+"']) !!}");
|
||||
if (str.search("#000") == -1) {
|
||||
$("td", nRow).css({"background-color": "#F3F3F3", "font-weight": "600", "border-bottom": "solid 0.5px #ddd", "border-right": "solid 0.5px #F3F3F3"});
|
||||
$("td", nRow).mouseenter(function () {
|
||||
$("td", nRow).css({"background-color": "#DEDFE0", "font-weight": "600", "border-bottom": "solid 0.5px #ddd", "border-right": "solid 0.5px #DEDFE0"});
|
||||
});
|
||||
$("td", nRow).mouseleave(function () {
|
||||
$("td", nRow).css({"background-color": "#F3F3F3", "font-weight": "600", "border-bottom": "solid 0.5px #ddd", "border-right": "solid 0.5px #F3F3F3"});
|
||||
});
|
||||
} else {
|
||||
$("td", nRow).css({"background-color": "white", "border-bottom": "solid 0.5px #ddd", "border-right": "solid 0.5px white"});
|
||||
$("td", nRow).mouseenter(function () {
|
||||
$("td", nRow).css({"background-color": "#DEDFE0", "border-bottom": "solid 0.5px #ddd", "border-right": "solid 0.5px #DEDFE0"});
|
||||
});
|
||||
$("td", nRow).mouseleave(function () {
|
||||
$("td", nRow).css({"background-color": "white", "border-bottom": "solid 0.5px #ddd", "border-right": "solid 0.5px white"});
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function hexToRgbA(hex){
|
||||
var c;
|
||||
if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){
|
||||
c= hex.substring(1).split('');
|
||||
if(c.length== 3){
|
||||
c= [c[0], c[0], c[1], c[1], c[2], c[2]];
|
||||
}
|
||||
c= '0x'+c.join('');
|
||||
return 'rgba('+[(c>>16)&255, (c>>8)&255, c&255].join(',')+', 0.67)';
|
||||
}
|
||||
throw new Error('Bad Hex');
|
||||
}
|
||||
});
|
||||
</script>
|
118
routes/web.php
118
routes/web.php
@@ -330,27 +330,6 @@ Route::group(['middleware' => ['web']], function () {
|
||||
Route::delete('canned/destroy/{id}', ['as' => 'canned.destroy', 'uses' => 'Agent\helpdesk\CannedController@destroy']); /* Canned delete */
|
||||
Route::get('/test', ['as' => 'thr', 'uses' => 'Agent\helpdesk\MailController@fetchdata']); /* Fetch Emails */
|
||||
Route::get('/ticket', ['as' => 'ticket', 'uses' => 'Agent\helpdesk\TicketController@ticket_list']); /* Get Ticket */
|
||||
Route::get('/ticket/inbox', ['as' => 'inbox.ticket', 'uses' => 'Agent\helpdesk\TicketController@inbox_ticket_list']); /* Get Inbox Ticket */
|
||||
|
||||
Route::get('/ticket/get-inbox', ['as' => 'get.inbox.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_inbox']); /* Get tickets in datatable */
|
||||
Route::get('/ticket/open', ['as' => 'open.ticket', 'uses' => 'Agent\helpdesk\TicketController@open_ticket_list']); /* Get Open Ticket */
|
||||
|
||||
Route::get('/ticket/get-open', ['as' => 'get.open.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_open']); /* Get tickets in datatable */
|
||||
Route::get('/ticket/answered', ['as' => 'answered.ticket', 'uses' => 'Agent\helpdesk\TicketController@answered_ticket_list']); /* Get Answered Ticket */
|
||||
|
||||
Route::get('/ticket/get-answered', ['as' => 'get.answered.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_answered']); /* Get tickets in datatable */
|
||||
Route::get('/ticket/myticket', ['as' => 'myticket.ticket', 'uses' => 'Agent\helpdesk\TicketController@myticket_ticket_list']); /* Get Tickets Assigned to logged user */
|
||||
|
||||
Route::get('/ticket/get-myticket', ['as' => 'get.myticket.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_myticket']); /* Get tickets in datatable */
|
||||
Route::get('/ticket/overdue', ['as' => 'overdue.ticket', 'uses' => 'Agent\helpdesk\TicketController@overdue_ticket_list']); /* Get Overdue Ticket */
|
||||
|
||||
Route::get('/ticket/get-overdue', ['as' => 'get.overdue.ticket', 'uses' => 'Agent\helpdesk\TicketController@getOverdueTickets']); /* Get Overdue Ticket */
|
||||
Route::get('/ticket/closed', ['as' => 'closed.ticket', 'uses' => 'Agent\helpdesk\TicketController@closed_ticket_list']); /* Get Closed Ticket */
|
||||
|
||||
Route::get('/ticket/get-closed', ['as' => 'get.closed.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_closed']); /* Get tickets in datatable */
|
||||
Route::get('/ticket/assigned', ['as' => 'assigned.ticket', 'uses' => 'Agent\helpdesk\TicketController@assigned_ticket_list']); /* Get Assigned Ticket */
|
||||
|
||||
Route::get('/ticket/get-assigned', ['as' => 'get.assigned.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_assigned']); /* Get tickets in datatable */
|
||||
Route::get('/newticket', ['as' => 'newticket', 'uses' => 'Agent\helpdesk\TicketController@newticket']); /* Get Create New Ticket */
|
||||
|
||||
Route::get('/newticket/autofill', ['as' => 'post.newticket.autofill', 'uses' => 'Agent\helpdesk\TicketController@autofill']);
|
||||
@@ -370,12 +349,6 @@ Route::group(['middleware' => ['web']], function () {
|
||||
Route::get('/email/ban/{id}', ['as' => 'ban.email', 'uses' => 'Agent\helpdesk\TicketController@ban']); /* Get Ban Email */
|
||||
Route::get('/ticket/surrender/{id}', ['as' => 'ticket.surrender', 'uses' => 'Agent\helpdesk\TicketController@surrender']); /* Get Ticket Surrender */
|
||||
Route::get('/aaaa', 'Client\helpdesk\GuestController@ticket_number');
|
||||
Route::get('trash', ['as' => 'get-trash', 'uses' => 'Agent\helpdesk\TicketController@trash']); /* To show Deleted Tickets */
|
||||
|
||||
Route::get('/ticket/trash', ['as' => 'get.trash.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_trash']); /* Get tickets in datatable */
|
||||
Route::get('unassigned', ['as' => 'unassigned', 'uses' => 'Agent\helpdesk\TicketController@unassigned']); /* To show Unassigned Tickets */
|
||||
|
||||
Route::get('/ticket/unassigned', ['as' => 'get.unassigned.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_unassigned']); /* Get tickets in datatable */
|
||||
Route::get('dashboard', ['as' => 'dashboard', 'uses' => 'Agent\helpdesk\DashboardController@index']); /* To show dashboard pages */
|
||||
|
||||
Route::get('agen', 'Agent\helpdesk\DashboardController@ChartData');
|
||||
@@ -393,13 +366,6 @@ Route::group(['middleware' => ['web']], function () {
|
||||
Route::patch('user-org-edit-assign/{id}', ['as' => 'user.editassign.org', 'uses' => 'Agent\helpdesk\UserController@UsereditAssignOrg']);
|
||||
Route::patch('/user-org/{id}', 'Agent\helpdesk\UserController@User_Create_Org');
|
||||
Route::patch('/head-org/{id}', 'Agent\helpdesk\OrganizationController@Head_Org');
|
||||
// Department ticket
|
||||
Route::get('/{dept}/open', ['as' => 'dept.open.ticket', 'uses' => 'Agent\helpdesk\TicketController@deptopen']); // Open
|
||||
Route::get('tickets/{dept}/{status}', ['as' => 'dept.ticket', 'uses' => 'Agent\helpdesk\TicketController@deptTicket']); // Open
|
||||
|
||||
Route::get('/{dept}/assigned', ['as' => 'dept.inprogress.ticket', 'uses' => 'Agent\helpdesk\TicketController@deptinprogress']); // Inprogress
|
||||
|
||||
Route::get('/{dept}/closed', ['as' => 'dept.closed.ticket', 'uses' => 'Agent\helpdesk\TicketController@deptclose']); // Closed
|
||||
|
||||
Route::post('rating/{id}', ['as' => 'ticket.rating', 'uses' => 'Agent\helpdesk\TicketController@rating']); /* Get overall Ratings */
|
||||
Route::post('rating2/{id}', ['as' => 'ticket.rating2', 'uses' => 'Agent\helpdesk\TicketController@ratingReply']); /* Get reply Ratings */
|
||||
@@ -435,23 +401,84 @@ Route::group(['middleware' => ['web']], function () {
|
||||
*/
|
||||
Route::get('labels-ticket', ['as'=>'labels.ticket', 'uses'=>'Admin\helpdesk\Label\LabelController@attachTicket']);
|
||||
Route::get('json-labels', ['as'=>'labels.json', 'uses'=>'Admin\helpdesk\Label\LabelController@getLabel']);
|
||||
Route::get('filter', ['as'=>'filter', 'uses'=>'Agent\helpdesk\Filter\FilterController@getFilter']);
|
||||
|
||||
/*
|
||||
* Tags
|
||||
*/
|
||||
|
||||
Route::get('add-tag', ['as'=>'tag.add', 'uses'=>'Agent\helpdesk\Filter\TagController@addToFilter']);
|
||||
Route::get('get-tag', ['as'=>'tag.get', 'uses'=>'Agent\helpdesk\Filter\TagController@getTag']);
|
||||
|
||||
Route::group(['middleware' => ['force.option', 'role.agent']], function () {
|
||||
Route::get('tickets', ['as' => 'tickets-view', 'uses' => 'Agent\helpdesk\TicketController@getTicketsView']);
|
||||
});
|
||||
Route::get('get-filtered-tickets', ['as'=>'get-filtered-tickets', 'uses'=>'Agent\helpdesk\Filter\FilterController@getFilter']);
|
||||
|
||||
/**
|
||||
*=======================================================================
|
||||
* DEPRECATED ROUTE BLOCKS START
|
||||
*=======================================================================
|
||||
* Route defined under this block will be derecated and are no longer
|
||||
* used in the system. Though we have not removed these routes in v1.10 but
|
||||
* we will remove these routes in upcoming releas
|
||||
*=======================================================================
|
||||
*/
|
||||
Route::get('/ticket/inbox', ['as' => 'inbox.ticket', 'uses' => 'Agent\helpdesk\TicketController@inbox_ticket_list']); /* Get Inbox Ticket */
|
||||
|
||||
Route::get('/ticket/get-inbox', ['as' => 'get.inbox.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_inbox']); /* Get tickets in datatable */
|
||||
Route::get('/ticket/open', ['as' => 'open.ticket', 'uses' => 'Agent\helpdesk\TicketController@open_ticket_list']); /* Get Open Ticket */
|
||||
|
||||
Route::get('/ticket/get-open', ['as' => 'get.open.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_open']); /* Get tickets in datatable */
|
||||
Route::get('/ticket/answered', ['as' => 'answered.ticket', 'uses' => 'Agent\helpdesk\TicketController@answered_ticket_list']); /* Get Answered Ticket */
|
||||
|
||||
Route::get('/ticket/get-answered', ['as' => 'get.answered.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_answered']); /* Get tickets in datatable */
|
||||
Route::get('/ticket/myticket', ['as' => 'myticket.ticket', 'uses' => 'Agent\helpdesk\TicketController@myticket_ticket_list']); /* Get Tickets Assigned to logged user */
|
||||
|
||||
Route::get('/ticket/get-myticket', ['as' => 'get.myticket.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_myticket']); /* Get tickets in datatable */
|
||||
Route::get('/ticket/overdue', ['as' => 'overdue.ticket', 'uses' => 'Agent\helpdesk\TicketController@overdue_ticket_list']); /* Get Overdue Ticket */
|
||||
|
||||
Route::get('/ticket/get-overdue', ['as' => 'get.overdue.ticket', 'uses' => 'Agent\helpdesk\TicketController@getOverdueTickets']); /* Get Overdue Ticket */
|
||||
Route::get('/ticket/closed', ['as' => 'closed.ticket', 'uses' => 'Agent\helpdesk\TicketController@closed_ticket_list']); /* Get Closed Ticket */
|
||||
|
||||
Route::get('/ticket/get-closed', ['as' => 'get.closed.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_closed']); /* Get tickets in datatable */
|
||||
Route::get('/ticket/assigned', ['as' => 'assigned.ticket', 'uses' => 'Agent\helpdesk\TicketController@assigned_ticket_list']); /* Get Assigned Ticket */
|
||||
|
||||
Route::get('/ticket/get-assigned', ['as' => 'get.assigned.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_assigned']); /* Get tickets in datatable */
|
||||
|
||||
//due today ticket
|
||||
Route::get('duetoday', ['as' => 'ticket.duetoday', 'uses' =>'Agent\helpdesk\TicketController@dueTodayTicketlist']);
|
||||
|
||||
// Route::post('duetoday/list/ticket', ['as' => 'ticket.post.duetoday', 'uses' =>'Agent\helpdesk\TicketController@getDueToday']);
|
||||
Route::get('duetoday/list/ticket', ['as' => 'ticket.post.duetoday', 'uses' =>'Agent\helpdesk\TicketController@getDueToday']); /* Get Open Ticket */
|
||||
Route::get('trash', ['as' => 'get-trash', 'uses' => 'Agent\helpdesk\TicketController@trash']); /* To show Deleted Tickets */
|
||||
|
||||
Route::get('/ticket/trash', ['as' => 'get.trash.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_trash']); /* Get tickets in datatable */
|
||||
Route::get('unassigned', ['as' => 'unassigned', 'uses' => 'Agent\helpdesk\TicketController@unassigned']); /* To show Unassigned Tickets */
|
||||
|
||||
Route::get('/ticket/unassigned', ['as' => 'get.unassigned.ticket', 'uses' => 'Agent\helpdesk\TicketController@get_unassigned']); /* Get tickets in datatable */
|
||||
// Department ticket
|
||||
Route::get('/{dept}/open', ['as' => 'dept.open.ticket', 'uses' => 'Agent\helpdesk\TicketController@deptopen']); // Open
|
||||
Route::get('tickets/{dept}/{status}', ['as' => 'dept.ticket', 'uses' => 'Agent\helpdesk\TicketController@deptTicket']); // Open
|
||||
|
||||
Route::get('/{dept}/assigned', ['as' => 'dept.inprogress.ticket', 'uses' => 'Agent\helpdesk\TicketController@deptinprogress']); // Inprogress
|
||||
|
||||
Route::get('/{dept}/closed', ['as' => 'dept.closed.ticket', 'uses' => 'Agent\helpdesk\TicketController@deptclose']); // Closed
|
||||
/**
|
||||
* Followup tickets
|
||||
*/
|
||||
Route::get('/ticket/followup', ['as' => 'followup.ticket', 'uses' => 'Agent\helpdesk\TicketController@followupTicketList']); // Get Closed Ticket /
|
||||
|
||||
Route::get('/ticket/get-followup', ['as' => 'get.followup.ticket', 'uses' => 'Agent\helpdesk\TicketController@getFollowup']); // Get tickets in datatable /
|
||||
Route::get('/ticket/close/get-approval/{id}', ['as' => 'get.close.approval.ticket', 'uses' => 'Agent\helpdesk\TicketController@getCloseapproval']); // Get tickets in datatable /
|
||||
Route::get('filter', ['as'=>'filter', 'uses'=>'Agent\helpdesk\Filter\FilterControllerOld@getFilter']);
|
||||
|
||||
/**
|
||||
*=======================================================================
|
||||
* DEPRECATED ROUTE BLOCKS END
|
||||
*=======================================================================
|
||||
*/
|
||||
});
|
||||
|
||||
/*
|
||||
* Followup tickets
|
||||
*/
|
||||
Route::get('/ticket/followup', ['as' => 'followup.ticket', 'uses' => 'Agent\helpdesk\TicketController@followupTicketList']); // Get Closed Ticket /
|
||||
|
||||
Route::get('/ticket/get-followup', ['as' => 'get.followup.ticket', 'uses' => 'Agent\helpdesk\TicketController@getFollowup']); // Get tickets in datatable /
|
||||
Route::get('/ticket/close/get-approval/{id}', ['as' => 'get.close.approval.ticket', 'uses' => 'Agent\helpdesk\TicketController@getCloseapproval']); // Get tickets in datatable /
|
||||
|
||||
/*
|
||||
|------------------------------------------------------------------
|
||||
|Guest Routes
|
||||
@@ -767,11 +794,6 @@ Route::group(['middleware' => ['web']], function () {
|
||||
|
||||
Route::post('restore/{id}', ['as' => 'user.restore', 'uses' => 'Agent\helpdesk\UserController@restoreUser']);
|
||||
|
||||
//due today ticket
|
||||
Route::get('duetoday', ['as' => 'ticket.duetoday', 'uses' =>'Agent\helpdesk\TicketController@dueTodayTicketlist']);
|
||||
|
||||
// Route::post('duetoday/list/ticket', ['as' => 'ticket.post.duetoday', 'uses' =>'Agent\helpdesk\TicketController@getDueToday']);
|
||||
Route::get('duetoday/list/ticket', ['as' => 'ticket.post.duetoday', 'uses' =>'Agent\helpdesk\TicketController@getDueToday']); /* Get Open Ticket */
|
||||
// Breadcrumbs::register('open.ticket', function ($breadcrumbs) {
|
||||
// $breadcrumbs->parent('dashboard');
|
||||
// $breadcrumbs->push(Lang::get('lang.tickets') . ' > ' . Lang::get('lang.open'), route('open.ticket'));
|
||||
|
Reference in New Issue
Block a user