Inbox changes

This commit is contained in:
Manish Verma
2018-08-09 16:14:58 +05:30
parent d46c28e985
commit a26c2cdd7c
15 changed files with 3010 additions and 685 deletions

View File

@@ -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

View File

@@ -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;
}
}

View File

@@ -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 = '&nbsp;<i class="fa fa-users"></i>';
} else {
$collabString = null;
}
$attachCount = $tickets->countattachment;
if ($attachCount > 0) {
$attachString = '&nbsp;<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)."&nbsp;<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).'&apos;'.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).'&apos;'.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 = '&nbsp;<i class="fa fa-users" title="'.Lang::get('lang.ticket_has_collaborator').'"></i>';
} else {
$collabString = null;
}
$attachCount = $tickets->countattachment;
if ($attachCount > 0) {
$attachString = '&nbsp;<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 = '&nbsp;<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 = '&nbsp;<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 = '&rlm;('.$tickets->countthread.')';
}
$tooltip_script = self::tooltip($tickets->id);
return "<div class='tooltip1' id='tool".$tickets->id."'>
<a href='".route('ticket.thread', [$tickets->id])."'>".$string."&nbsp;<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.'&apos;'.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.'&apos;'.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).'&apos;'.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 = '&nbsp;<i class="fa fa-users"></i>';
} else {
$collabString = null;
}
$attachCount = $tickets->countattachment;
if ($attachCount > 0) {
$attachString = '&nbsp;<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)."&nbsp;<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).'&apos;'.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).'&apos;'.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();
}
}

View File

@@ -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';
}
}

View File

@@ -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">

View File

@@ -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">

View File

@@ -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">

View File

@@ -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">

View File

@@ -0,0 +1 @@
<script src="{{asset("lb-faveo/plugins/select2/select2.full.min.js")}}" type="text/javascript"></script>

View File

@@ -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">&times;</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">&times;</span></button>
<h4 class="modal-title">{!! Lang::get('lang.assign-ticket') !!} </h4>
</div><!-- /.modal-header-->
<div class ="modal-body">
<div class="row">
<div class="col-md-4">
</div>
<div class="col-md-6" id="assign_loader" style="display:none;">
<img src="{{asset("lb-faveo/media/images/gifloader.gif")}}"><br/><br/><br/>
</div><!-- /.merge-loader -->
</div>
<div id="assign_body">
<div class="row">
<div class="col-md-12">
<form 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-->

View File

@@ -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>

View File

@@ -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">&times;</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">&times;</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">&times;</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">&times;</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>&nbsp;{{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

View 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>

View File

@@ -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') . '&nbsp; > &nbsp;' . Lang::get('lang.open'), route('open.ticket'));