Merge remote-tracking branch 'refs/remotes/origin/release-v1.9.2'
# Conflicts: # app/Console/Kernel.php # app/FaveoStorage/Controllers/SettingsController.php # app/Http/Controllers/Admin/helpdesk/TemplateController.php
This commit is contained in:
1844
DB/demodatabase.sql
1844
DB/demodatabase.sql
File diff suppressed because it is too large
Load Diff
1844
DB/dummy-data.sql
1844
DB/dummy-data.sql
File diff suppressed because it is too large
Load Diff
14
DB/update from 1.9.0 to 1.9.2/updatedatabase.sql
Normal file
14
DB/update from 1.9.0 to 1.9.2/updatedatabase.sql
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
--
|
||||||
|
-- Dumping data for table `template_types`
|
||||||
|
--
|
||||||
|
|
||||||
|
INSERT INTO `template_types` (`id`, `name`, `created_at`, `updated_at`) VALUES
|
||||||
|
(14, 'merge-ticket-notification', '2017-01-02 05:50:11', '2017-01-02 05:50:11');
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `templates`
|
||||||
|
--
|
||||||
|
|
||||||
|
INSERT INTO `templates` (`name`, `variable`, `type`, `subject`, `message`, `description`, `set_id`, `created_at`, `updated_at`)
|
||||||
|
SELECT 'This template is to notify users when their tickets are merged.', '1', 14, 'Your tickets have been merged.', '<p>Hello {!!$user!!},<br /> </p><p>Your ticket(s) with ticket number {!!$merged_ticket_numbers!!} have been closed and merged with <a href="{!!$ticket_link!!}">{!!$ticket_number!!}</a>. </p><p>Possible reasons for merging tickets</p><ul><li>Tickets are duplicate</li<li>Tickets state the same issue</li><li>Another member from your organization has created a ticket for the same issue</li></ul><p><a href="{!!$system_link!!}">Click here</a> to login to your account and check your tickets.</p><p>Regards,</p><p>{!!$system_from!!}</p>', '', id, '2017-01-02 05:50:12', '2017-01-02 06:01:50'
|
||||||
|
FROM `template_sets`;
|
@@ -1,9 +1,24 @@
|
|||||||
@extends('themes.default1.admin.layout.admin')
|
@extends('themes.default1.admin.layout.admin')
|
||||||
@section('content')
|
|
||||||
<section class="content-header">
|
|
||||||
<h1> {{Lang::get('storage::lang.settings')}} </h1>
|
|
||||||
|
|
||||||
</section>
|
@section('Settings')
|
||||||
|
active
|
||||||
|
@stop
|
||||||
|
|
||||||
|
@section('settings-bar')
|
||||||
|
active
|
||||||
|
@stop
|
||||||
|
|
||||||
|
@section('storage')
|
||||||
|
class="active"
|
||||||
|
@stop
|
||||||
|
|
||||||
|
@section('PageHeader')
|
||||||
|
<h1>{{ Lang::get('storage::lang.storage')}}</h1>
|
||||||
|
@stop
|
||||||
|
|
||||||
|
@section('HeadInclude')
|
||||||
|
@stop
|
||||||
|
@section('content')
|
||||||
<div class="box box-primary">
|
<div class="box box-primary">
|
||||||
|
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
|
@@ -85,7 +85,7 @@ class HelptopicController extends Controller
|
|||||||
$departments = $department->get();
|
$departments = $department->get();
|
||||||
$topics = $topic->get();
|
$topics = $topic->get();
|
||||||
$forms = $form->get();
|
$forms = $form->get();
|
||||||
$agents = $agent->where('role', '=', 'agent')->get();
|
$agents = $agent->where('role', '!=', 'user')->where('active', '=', 1)->orderBy('first_name')->get();
|
||||||
$slas = $sla->get();
|
$slas = $sla->get();
|
||||||
$priority = Ticket_Priority::where('status', '=', 1)->get();
|
$priority = Ticket_Priority::where('status', '=', 1)->get();
|
||||||
|
|
||||||
@@ -143,7 +143,7 @@ class HelptopicController extends Controller
|
|||||||
public function edit($id, Ticket_Priority $priority, Department $department, Help_topic $topic, Forms $form, Sla_plan $sla)
|
public function edit($id, Ticket_Priority $priority, Department $department, Help_topic $topic, Forms $form, Sla_plan $sla)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$agents = User::where('role', '=', 'agent')->get();
|
$agents = User::where('role', '!=', 'user')->where('active', '=', 1)->orderBy('first_name')->get();
|
||||||
$departments = $department->get();
|
$departments = $department->get();
|
||||||
$topics = $topic->whereId($id)->first();
|
$topics = $topic->whereId($id)->first();
|
||||||
$forms = $form->get();
|
$forms = $form->get();
|
||||||
|
@@ -122,79 +122,84 @@ class LanguageController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function postForm()
|
public function postForm()
|
||||||
{
|
{
|
||||||
// getting all of the post data
|
try {
|
||||||
$file = [
|
// getting all of the post data
|
||||||
'File' => Input::file('File'),
|
$file = [
|
||||||
'language-name' => Input::input('language-name'),
|
'File' => Input::file('File'),
|
||||||
'iso-code' => Input::input('iso-code'),
|
'language-name' => Input::input('language-name'),
|
||||||
];
|
'iso-code' => Input::input('iso-code'),
|
||||||
|
];
|
||||||
|
|
||||||
// setting up rules
|
// setting up rules
|
||||||
$rules = [
|
$rules = [
|
||||||
'File' => 'required|mimes:zip|max:30000',
|
'File' => 'required|mimes:zip|max:30000',
|
||||||
'language-name' => 'required',
|
'language-name' => 'required',
|
||||||
'iso-code' => 'required|max:2',
|
'iso-code' => 'required|max:2',
|
||||||
]; // and for max size
|
]; // and for max size
|
||||||
// doing the validation, passing post data, rules and the messages
|
// doing the validation, passing post data, rules and the messages
|
||||||
$validator = Validator::make($file, $rules);
|
$validator = Validator::make($file, $rules);
|
||||||
if ($validator->fails()) {
|
if ($validator->fails()) {
|
||||||
|
|
||||||
// send back to the page with the input data and errors
|
// send back to the page with the input data and errors
|
||||||
return Redirect::back()->withInput()->withErrors($validator);
|
return Redirect::back()->withInput()->withErrors($validator);
|
||||||
} else {
|
|
||||||
|
|
||||||
//Checking if package already exists or not in lang folder
|
|
||||||
$path = base_path('resources/lang');
|
|
||||||
if (in_array(strtolower(Input::get('iso-code')), scandir($path))) {
|
|
||||||
|
|
||||||
//sending back with error message
|
|
||||||
Session::flash('fails', Lang::get('lang.package_exist'));
|
|
||||||
Session::flash('link', 'change-language/'.strtolower(Input::get('iso-code')));
|
|
||||||
|
|
||||||
return Redirect::back()->withInput();
|
|
||||||
} elseif (!array_key_exists(strtolower(Input::get('iso-code')), Config::get('languages'))) {//Checking Valid ISO code form Languages.php
|
|
||||||
//sending back with error message
|
|
||||||
Session::flash('fails', Lang::get('lang.iso-code-error'));
|
|
||||||
|
|
||||||
return Redirect::back()->withInput();
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
// checking file is valid.
|
//Checking if package already exists or not in lang folder
|
||||||
if (Input::file('File')->isValid()) {
|
$path = base_path('resources/lang');
|
||||||
$name = Input::file('File')->getClientOriginalName(); //uploaded file's original name
|
if (in_array(strtolower(Input::get('iso-code')), scandir($path))) {
|
||||||
$destinationPath = base_path('public/uploads/'); // defining uploading path
|
|
||||||
$extractpath = base_path('resources/lang').'/'.strtolower(Input::get('iso-code')); //defining extracting path
|
|
||||||
mkdir($extractpath); //creating directroy for extracting uploadd file
|
|
||||||
//mkdir($destinationPath);
|
|
||||||
Input::file('File')->move($destinationPath, $name); // uploading file to given path
|
|
||||||
\Zipper::make($destinationPath.'/'.$name)->extractTo($extractpath); //extracting file to give path
|
|
||||||
//check if Zip extract foldercontains any subfolder
|
|
||||||
$directories = File::directories($extractpath);
|
|
||||||
//$directories = glob($extractpath. '/*' , GLOB_ONLYDIR);
|
|
||||||
if (!empty($directories)) { //if extract folder contains subfolder
|
|
||||||
$success = File::deleteDirectory($extractpath); //remove extracted folder and it's subfolder from lang
|
|
||||||
//$success2 = File::delete($destinationPath.'/'.$name);
|
|
||||||
if ($success) {
|
|
||||||
//sending back with error message
|
|
||||||
Session::flash('fails', Lang::get('lang.zipp-error'));
|
|
||||||
Session::flash('link2', 'http://www.ladybirdweb.com/support/show/how-to-translate-faveo-into-multiple-languages');
|
|
||||||
|
|
||||||
return Redirect::back()->withInput();
|
//sending back with error message
|
||||||
|
Session::flash('fails', Lang::get('lang.package_exist'));
|
||||||
|
Session::flash('link', 'change-language/'.strtolower(Input::get('iso-code')));
|
||||||
|
|
||||||
|
return Redirect::back()->withInput();
|
||||||
|
} elseif (!array_key_exists(strtolower(Input::get('iso-code')), Config::get('languages'))) {//Checking Valid ISO code form Languages.php
|
||||||
|
//sending back with error message
|
||||||
|
Session::flash('fails', Lang::get('lang.iso-code-error'));
|
||||||
|
|
||||||
|
return Redirect::back()->withInput();
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// checking file is valid.
|
||||||
|
if (Input::file('File')->isValid()) {
|
||||||
|
$name = Input::file('File')->getClientOriginalName(); //uploaded file's original name
|
||||||
|
$destinationPath = base_path('public/uploads/'); // defining uploading path
|
||||||
|
$extractpath = base_path('resources/lang').'/'.strtolower(Input::get('iso-code')); //defining extracting path
|
||||||
|
mkdir($extractpath); //creating directroy for extracting uploadd file
|
||||||
|
//mkdir($destinationPath);
|
||||||
|
Input::file('File')->move($destinationPath, $name); // uploading file to given path
|
||||||
|
\Zipper::make($destinationPath.'/'.$name)->extractTo($extractpath); //extracting file to give path
|
||||||
|
//check if Zip extract foldercontains any subfolder
|
||||||
|
$directories = File::directories($extractpath);
|
||||||
|
//$directories = glob($extractpath. '/*' , GLOB_ONLYDIR);
|
||||||
|
if (!empty($directories)) { //if extract folder contains subfolder
|
||||||
|
$success = File::deleteDirectory($extractpath); //remove extracted folder and it's subfolder from lang
|
||||||
|
//$success2 = File::delete($destinationPath.'/'.$name);
|
||||||
|
if ($success) {
|
||||||
|
//sending back with error message
|
||||||
|
Session::flash('fails', Lang::get('lang.zipp-error'));
|
||||||
|
Session::flash('link2', 'http://www.ladybirdweb.com/support/show/how-to-translate-faveo-into-multiple-languages');
|
||||||
|
|
||||||
|
return Redirect::back()->withInput();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// sending back with success message
|
||||||
|
Session::flash('success', Lang::get('lang.upload-success'));
|
||||||
|
Session::flash('link', 'change-language/'.strtolower(Input::get('iso-code')));
|
||||||
|
|
||||||
|
return Redirect::route('LanguageController');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// sending back with success message
|
// sending back with error message.
|
||||||
Session::flash('success', Lang::get('lang.upload-success'));
|
Session::flash('fails', Lang::get('lang.file-error'));
|
||||||
Session::flash('link', 'change-language/'.strtolower(Input::get('iso-code')));
|
|
||||||
|
|
||||||
return Redirect::route('LanguageController');
|
return Redirect::route('form');
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
// sending back with error message.
|
|
||||||
Session::flash('fails', Lang::get('lang.file-error'));
|
|
||||||
|
|
||||||
return Redirect::route('form');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
Session::flash('fails', $e->getMessage());
|
||||||
|
Redirect::back()->withInput();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -205,7 +210,8 @@ class LanguageController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function download()
|
public function download()
|
||||||
{
|
{
|
||||||
$file_path = base_path('public/downloads/en.zip');
|
$path = 'downloads'.DIRECTORY_SEPARATOR.'en.zip';
|
||||||
|
$file_path = public_path($path);
|
||||||
|
|
||||||
return response()->download($file_path);
|
return response()->download($file_path);
|
||||||
}
|
}
|
||||||
|
@@ -68,7 +68,7 @@ class TeamController extends Controller
|
|||||||
public function create(User $user)
|
public function create(User $user)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$user = $user->where('role', '<>', 'user')->where('active', '=', 1)->get();
|
$user = $user->where('role', '<>', 'user')->where('active', '=', 1)->orderBy('first_name')->get();
|
||||||
|
|
||||||
return view('themes.default1.admin.helpdesk.agent.teams.create', compact('user'));
|
return view('themes.default1.admin.helpdesk.agent.teams.create', compact('user'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -86,15 +86,23 @@ class TeamController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function store(Teams $team, TeamRequest $request)
|
public function store(Teams $team, TeamRequest $request)
|
||||||
{
|
{
|
||||||
if ($request->team_lead) {
|
|
||||||
$team_lead = $request->team_lead;
|
|
||||||
} else {
|
|
||||||
$team_lead = null;
|
|
||||||
}
|
|
||||||
$team->team_lead = $team_lead;
|
|
||||||
try {
|
try {
|
||||||
/* Check whether function success or not */
|
/* Check whether function success or not */
|
||||||
$team->fill($request->except('team_lead'))->save();
|
$team->fill($request->except('team_lead'))->save();
|
||||||
|
$team_update = Teams::find($team->id);
|
||||||
|
if ($request->team_lead) {
|
||||||
|
$team_lead = $request->team_lead;
|
||||||
|
$team_update->update([
|
||||||
|
'team_lead' => $team_lead,
|
||||||
|
]);
|
||||||
|
Assign_team_agent::create([
|
||||||
|
'team_id' => $team_update->id,
|
||||||
|
'agent_id' => $team_lead,
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
$team_lead = null;
|
||||||
|
}
|
||||||
|
|
||||||
/* redirect to Index page with Success Message */
|
/* redirect to Index page with Success Message */
|
||||||
return redirect('teams')->with('success', Lang::get('lang.teams_created_successfully'));
|
return redirect('teams')->with('success', Lang::get('lang.teams_created_successfully'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -202,11 +210,16 @@ $users = DB::table('team_assign_agent')->select('team_assign_agent.id', 'team_as
|
|||||||
public function edit($id, User $user, Assign_team_agent $assign_team_agent, Teams $team)
|
public function edit($id, User $user, Assign_team_agent $assign_team_agent, Teams $team)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$user = $user->where('role', '<>', 'user')->where('active', '=', 1)->get();
|
$a_id = [];
|
||||||
$teams = $team->whereId($id)->first();
|
$teams = $team->whereId($id)->first();
|
||||||
$agent_team = $assign_team_agent->where('team_id', $id)->get();
|
$agent_team = $assign_team_agent->where('team_id', $id)->get();
|
||||||
$agent_id = $agent_team->lists('agent_id', 'agent_id');
|
$agent_id = $agent_team->lists('agent_id', 'agent_id');
|
||||||
|
foreach ($agent_id as $value) {
|
||||||
|
array_push($a_id, $value);
|
||||||
|
}
|
||||||
|
// dd($a_id);
|
||||||
|
$user = $user->whereIn('id', $a_id)->where('active', '=', 1)->orderBy('first_name')->get();
|
||||||
|
// dd($user);
|
||||||
return view('themes.default1.admin.helpdesk.agent.teams.edit', compact('agent_id', 'user', 'teams', 'allagents'));
|
return view('themes.default1.admin.helpdesk.agent.teams.edit', compact('agent_id', 'user', 'teams', 'allagents'));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
return redirect()->back()->with('fails', $e->getMessage());
|
return redirect()->back()->with('fails', $e->getMessage());
|
||||||
|
@@ -132,7 +132,7 @@ class FilterController extends Controller
|
|||||||
$join->on('ticket_status.id', '=', 'tickets.status');
|
$join->on('ticket_status.id', '=', 'tickets.status');
|
||||||
})
|
})
|
||||||
->where('tickets.status', '=', 1)
|
->where('tickets.status', '=', 1)
|
||||||
// ->where('tickets.isanswered', '=', 0)
|
->where('tickets.isanswered', '=', 0)
|
||||||
->whereNotNull('tickets.duedate')
|
->whereNotNull('tickets.duedate')
|
||||||
->where('tickets.duedate', '!=', '00-00-00 00:00:00')
|
->where('tickets.duedate', '!=', '00-00-00 00:00:00')
|
||||||
|
|
||||||
@@ -196,6 +196,7 @@ class FilterController extends Controller
|
|||||||
->leftJoin('ticket_status', function ($join) {
|
->leftJoin('ticket_status', function ($join) {
|
||||||
$join->on('ticket_status.id', '=', 'tickets.status');
|
$join->on('ticket_status.id', '=', 'tickets.status');
|
||||||
})
|
})
|
||||||
|
->where('isanswered', '=', 0)
|
||||||
->where('tickets.status', '=', 1);
|
->where('tickets.status', '=', 1);
|
||||||
case '/duetoday':
|
case '/duetoday':
|
||||||
if (Auth::user()->role == 'agent') {
|
if (Auth::user()->role == 'agent') {
|
||||||
@@ -238,7 +239,7 @@ class FilterController extends Controller
|
|||||||
->whereNotNull('title')
|
->whereNotNull('title')
|
||||||
->where('ticket_thread.is_internal', '<>', 1);
|
->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')
|
->Join('ticket_source', 'ticket_source.id', '=', 'tickets.source')
|
||||||
->leftJoin('ticket_priority', 'ticket_priority.priority_id', '=', 'tickets.priority_id')
|
->leftJoin('ticket_priority', 'ticket_priority.priority_id', '=', 'tickets.priority_id')
|
||||||
->leftJoin('users as u', 'u.id', '=', 'tickets.user_id')
|
->leftJoin('users as u', 'u.id', '=', 'tickets.user_id')
|
||||||
@@ -255,17 +256,17 @@ class FilterController extends Controller
|
|||||||
'u1.user_name as assign_user_name',
|
'u1.user_name as assign_user_name',
|
||||||
\DB::raw('max(ticket_thread.updated_at) as updated_at'),
|
\DB::raw('max(ticket_thread.updated_at) as updated_at'),
|
||||||
\DB::raw('min(ticket_thread.updated_at) as created_at'),
|
\DB::raw('min(ticket_thread.updated_at) as created_at'),
|
||||||
'tickets.priority_id', 'tickets.assigned_to',
|
|
||||||
DB::raw('COUNT(ticket_thread.updated_at) as countthread'),
|
|
||||||
'ticket_priority.priority_color',
|
|
||||||
'u.first_name as first_name',
|
'u.first_name as first_name',
|
||||||
'u.last_name as last_name',
|
'u.last_name as last_name',
|
||||||
'u1.first_name as assign_first_name',
|
'u1.first_name as assign_first_name',
|
||||||
'u1.last_name as assign_last_name',
|
'u1.last_name as assign_last_name',
|
||||||
'tickets.status',
|
'ticket_priority.priority_color',
|
||||||
'tickets.user_id',
|
DB::raw('COUNT(DISTINCT ticket_thread2.id) as countthread'),
|
||||||
DB::raw('COUNT(ticket_attachment.thread_id) as countattachment'),
|
DB::raw('COUNT(ticket_attachment.thread_id) as countattachment'),
|
||||||
DB::raw('COUNT(ticket_collaborator.ticket_id) as countcollaborator'),
|
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_status.name as tickets_status',
|
||||||
'ticket_source.css_class as css',
|
'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.poster order by ticket_thread.id desc) , ",", 1) as last_replier'),
|
||||||
|
@@ -2218,6 +2218,9 @@ class TicketController extends Controller
|
|||||||
if ($count === 1) {
|
if ($count === 1) {
|
||||||
$user_id = $user->id;
|
$user_id = $user->id;
|
||||||
$ticket = Tickets::where('id', '=', $id)->first();
|
$ticket = Tickets::where('id', '=', $id)->first();
|
||||||
|
if ($user_id === (int) $ticket->user_id) {
|
||||||
|
return 400;
|
||||||
|
}
|
||||||
$ticket_number = $ticket->ticket_number;
|
$ticket_number = $ticket->ticket_number;
|
||||||
$ticket->user_id = $user_id;
|
$ticket->user_id = $user_id;
|
||||||
$ticket->save();
|
$ticket->save();
|
||||||
@@ -2422,6 +2425,7 @@ class TicketController extends Controller
|
|||||||
$success = 0;
|
$success = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$this->sendMergeNotification($p_id, $t_id);
|
||||||
|
|
||||||
return $success;
|
return $success;
|
||||||
}
|
}
|
||||||
@@ -2896,4 +2900,32 @@ class TicketController extends Controller
|
|||||||
|
|
||||||
return $base64;
|
return $base64;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*@category function to send notification of ticket merging to the owners
|
||||||
|
*
|
||||||
|
*@param srting array $t_id, $p_id
|
||||||
|
*
|
||||||
|
*@return null
|
||||||
|
*/
|
||||||
|
public function sendMergeNotification($p_id, $t_id)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$ticket_details = Tickets::select('ticket_number', 'user_id', 'dept_id')->where('id', '=', $p_id)->first();
|
||||||
|
$user_detail = User::where('id', '=', $ticket_details->user_id)->first();
|
||||||
|
if ($user_detail->count() > 0) {
|
||||||
|
if ($user_detail->email !== null || $user_detail->email !== '') {
|
||||||
|
$meged_ticket_details = Tickets::select('ticket_number')->whereIn('id', $t_id)->get();
|
||||||
|
$child_ticket_numbers = [];
|
||||||
|
foreach ($meged_ticket_details as $value) {
|
||||||
|
array_push($child_ticket_numbers, $value->ticket_number);
|
||||||
|
}
|
||||||
|
// dd(implode(", ",$child_ticket_numbers), $ticket_details->ticket_number);
|
||||||
|
$this->PhpMailController->sendmail($from = $this->PhpMailController->mailfrom('0', $ticket_details->dept_id), $to = ['user' => $user_detail->full_name, 'email' => $user_detail->email], $message = ['subject' => '', 'body' => '', 'scenario' => 'merge-ticket-notification'], $template_variables = ['user' => $user_detail->full_name, 'ticket_number' => $ticket_details->ticket_number, 'ticket_link' => route('ticket.thread', $p_id), 'merged_ticket_numbers' => implode(', ', $child_ticket_numbers)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
//catch the exception
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -32,6 +32,7 @@ use App\Model\helpdesk\Utility\Otp;
|
|||||||
use App\User;
|
use App\User;
|
||||||
// classes
|
// classes
|
||||||
use Auth;
|
use Auth;
|
||||||
|
use Datatables;
|
||||||
use DateTime;
|
use DateTime;
|
||||||
use DB;
|
use DB;
|
||||||
use Exception;
|
use Exception;
|
||||||
@@ -85,7 +86,6 @@ class UserController extends Controller
|
|||||||
Lang::get('lang.email'),
|
Lang::get('lang.email'),
|
||||||
Lang::get('lang.phone'),
|
Lang::get('lang.phone'),
|
||||||
Lang::get('lang.status'),
|
Lang::get('lang.status'),
|
||||||
Lang::get('lang.ban'),
|
|
||||||
Lang::get('lang.last_login'),
|
Lang::get('lang.last_login'),
|
||||||
Lang::get('lang.role'),
|
Lang::get('lang.role'),
|
||||||
Lang::get('lang.action')) // these are the column headings to be shown
|
Lang::get('lang.action')) // these are the column headings to be shown
|
||||||
@@ -116,21 +116,42 @@ class UserController extends Controller
|
|||||||
public function user_list(Request $request)
|
public function user_list(Request $request)
|
||||||
{
|
{
|
||||||
$type = $request->input('profiletype');
|
$type = $request->input('profiletype');
|
||||||
|
$search = $request->input('searchTerm');
|
||||||
|
|
||||||
if ($type == 'active') {
|
if ($type === 'agents') {
|
||||||
$users = User::where('role', '!=', 'admin')->where('is_delete', '=', 0)->get();
|
$users = User::where('role', '=', 'agent')->where('is_delete', '=', 0);
|
||||||
|
} elseif ($type === 'users') {
|
||||||
|
$users = User::where('role', '=', 'user')->where('is_delete', '=', 0);
|
||||||
|
} elseif ($type === 'active-users') {
|
||||||
|
$users = User::where('role', '!=', 'admin')->where('active', '=', 1);
|
||||||
|
} elseif ($type === 'inactive') {
|
||||||
|
$users = User::where('role', '!=', 'admin')->where('active', '=', 0);
|
||||||
|
} elseif ($type === 'deleted') {
|
||||||
|
$users = User::where('role', '!=', 'admin')->where('is_delete', '=', 1);
|
||||||
|
} elseif ($type === 'banned') {
|
||||||
|
$users = User::where('role', '!=', 'admin')->where('ban', '=', 1);
|
||||||
} else {
|
} else {
|
||||||
$users = User::where('role', '!=', 'admin')->where('is_delete', '=', 1)->get();
|
$users = User::where('role', '!=', 'admin')->where('is_delete', '=', 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$users = $users->select('user_name', 'email', 'mobile', 'active', 'updated_at', 'role', 'id', 'last_name', 'country_code', 'phone_number');
|
||||||
|
|
||||||
|
if ($search !== '') {
|
||||||
|
$users = $users->where(function ($query) use ($search) {
|
||||||
|
$query->where('user_name', 'LIKE', '%'.$search.'%');
|
||||||
|
$query->orWhere('email', 'LIKE', '%'.$search.'%');
|
||||||
|
$query->orWhere('first_name', 'LIKE', '%'.$search.'%');
|
||||||
|
$query->orWhere('last_name', 'LIKE', '%'.$search.'%');
|
||||||
|
$query->orWhere('mobile', 'LIKE', '%'.$search.'%');
|
||||||
|
$query->orWhere('updated_at', 'LIKE', '%'.$search.'%');
|
||||||
|
$query->orWhere('country_code', 'LIKE', '%'.$search.'%');
|
||||||
|
});
|
||||||
|
}
|
||||||
// displaying list of users with chumper datatables
|
// displaying list of users with chumper datatables
|
||||||
// return \Datatable::collection(User::where('role', "!=", "admin")->get())
|
// return \Datatable::collection(User::where('role', "!=", "admin")->get())
|
||||||
return \Datatable::collection($users)
|
return \Datatables::of($users)
|
||||||
/* searchable column username and email */
|
|
||||||
->searchColumns('user_name', 'email', 'phone')
|
|
||||||
/* order column username and email */
|
|
||||||
->orderColumns('user_name', 'email')
|
|
||||||
/* column username */
|
/* column username */
|
||||||
|
->removeColumn('id', 'last_name', 'country_code', 'phone_number')
|
||||||
->addColumn('user_name', function ($model) {
|
->addColumn('user_name', function ($model) {
|
||||||
if ($model->first_name) {
|
if ($model->first_name) {
|
||||||
$string = strip_tags($model->first_name.' '.$model->last_name);
|
$string = strip_tags($model->first_name.' '.$model->last_name);
|
||||||
@@ -153,7 +174,7 @@ class UserController extends Controller
|
|||||||
return $email;
|
return $email;
|
||||||
})
|
})
|
||||||
/* column phone */
|
/* column phone */
|
||||||
->addColumn('phone', function ($model) {
|
->addColumn('mobile', function ($model) {
|
||||||
$phone = '';
|
$phone = '';
|
||||||
if ($model->phone_number) {
|
if ($model->phone_number) {
|
||||||
$phone = $model->ext.' '.$model->phone_number;
|
$phone = $model->ext.' '.$model->phone_number;
|
||||||
@@ -167,7 +188,7 @@ class UserController extends Controller
|
|||||||
return $phone;
|
return $phone;
|
||||||
})
|
})
|
||||||
/* column account status */
|
/* column account status */
|
||||||
->addColumn('status', function ($model) {
|
->addColumn('active', function ($model) {
|
||||||
$status = $model->active;
|
$status = $model->active;
|
||||||
if ($status == 1) {
|
if ($status == 1) {
|
||||||
$stat = '<button class="btn btn-success btn-xs">Active</button>';
|
$stat = '<button class="btn btn-success btn-xs">Active</button>';
|
||||||
@@ -177,19 +198,8 @@ class UserController extends Controller
|
|||||||
|
|
||||||
return $stat;
|
return $stat;
|
||||||
})
|
})
|
||||||
/* column ban status */
|
|
||||||
->addColumn('ban', function ($model) {
|
|
||||||
$status = $model->ban;
|
|
||||||
if ($status == 1) {
|
|
||||||
$stat = '<button class="btn btn-danger btn-xs">Banned</button>';
|
|
||||||
} else {
|
|
||||||
$stat = '<button class="btn btn-success btn-xs">Not Banned</button>';
|
|
||||||
}
|
|
||||||
|
|
||||||
return $stat;
|
|
||||||
})
|
|
||||||
/* column last login date */
|
/* column last login date */
|
||||||
->addColumn('lastlogin', function ($model) {
|
->addColumn('updated_at', function ($model) {
|
||||||
$t = $model->updated_at;
|
$t = $model->updated_at;
|
||||||
|
|
||||||
return TicketController::usertimezone($t);
|
return TicketController::usertimezone($t);
|
||||||
@@ -1064,7 +1074,7 @@ class UserController extends Controller
|
|||||||
|
|
||||||
public function getAgentDetails()
|
public function getAgentDetails()
|
||||||
{
|
{
|
||||||
$users = User::where('role', '<>', 'user')->where('active', '=', 1)->get();
|
$users = User::where('role', '<>', 'user')->where('active', '=', 1)->orderBy('first_name')->get();
|
||||||
foreach ($users as $user) {
|
foreach ($users as $user) {
|
||||||
echo "<option value='user_$user->id'>".$user->name().'</option>';
|
echo "<option value='user_$user->id'>".$user->name().'</option>';
|
||||||
}
|
}
|
||||||
|
@@ -183,9 +183,11 @@ class AuthController extends Controller
|
|||||||
$message12 = '';
|
$message12 = '';
|
||||||
$settings = CommonSettings::select('status')->where('option_name', '=', 'send_otp')->first();
|
$settings = CommonSettings::select('status')->where('option_name', '=', 'send_otp')->first();
|
||||||
$sms = Plugin::select('status')->where('name', '=', 'SMS')->first();
|
$sms = Plugin::select('status')->where('name', '=', 'SMS')->first();
|
||||||
// Event for login
|
// Event for login
|
||||||
\Event::fire(new \App\Events\LoginEvent($request));
|
\Event::fire(new \App\Events\LoginEvent($request));
|
||||||
$var = $this->PhpMailController->sendmail($from = $this->PhpMailController->mailfrom('1', '0'), $to = ['name' => $name, 'email' => $request->input('email')], $message = ['subject' => null, 'scenario' => 'registration'], $template_variables = ['user' => $name, 'email_address' => $request->input('email'), 'password_reset_link' => url('account/activate/'.$code)]);
|
if ($request->input('email') !== '') {
|
||||||
|
$var = $this->PhpMailController->sendmail($from = $this->PhpMailController->mailfrom('1', '0'), $to = ['name' => $name, 'email' => $request->input('email')], $message = ['subject' => null, 'scenario' => 'registration'], $template_variables = ['user' => $name, 'email_address' => $request->input('email'), 'password_reset_link' => url('account/activate/'.$code)]);
|
||||||
|
}
|
||||||
if ($settings->status == 1 || $settings->status == '1') {
|
if ($settings->status == 1 || $settings->status == '1') {
|
||||||
if (count($sms) > 0) {
|
if (count($sms) > 0) {
|
||||||
if ($sms->status == 1 || $sms->status == '1') {
|
if ($sms->status == 1 || $sms->status == '1') {
|
||||||
@@ -194,7 +196,11 @@ class AuthController extends Controller
|
|||||||
$message12 = Lang::get('lang.activate_your_account_click_on_Link_that_send_to_your_mail_sms_plugin_inactive_or_not_setup');
|
$message12 = Lang::get('lang.activate_your_account_click_on_Link_that_send_to_your_mail_sms_plugin_inactive_or_not_setup');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$message12 = Lang::get('lang.activate_your_account_click_on_Link_that_send_to_your_mail');
|
if ($request->input('email') !== '') {
|
||||||
|
$message12 = Lang::get('lang.activate_your_account_click_on_Link_that_send_to_your_mail');
|
||||||
|
} else {
|
||||||
|
$message12 = Lang::get('lang.account-created-contact-admin-as-we-were-not-able-to-send-opt');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$message12 = Lang::get('lang.activate_your_account_click_on_Link_that_send_to_your_mail');
|
$message12 = Lang::get('lang.activate_your_account_click_on_Link_that_send_to_your_mail');
|
||||||
|
@@ -178,10 +178,13 @@ class FormController extends Controller
|
|||||||
$sla = $ticket_settings->first()->sla;
|
$sla = $ticket_settings->first()->sla;
|
||||||
|
|
||||||
// $priority = $ticket_settings->first()->priority;
|
// $priority = $ticket_settings->first()->priority;
|
||||||
$default_priority = Ticket_Priority::where('is_default', '=', 1)->first();
|
$default_priority = Ticket_Priority::where('is_default', '=', 1)->first();
|
||||||
$user_priority = CommonSettings::where('option_name', '=', 'user_priority')->first();
|
$user_priority = CommonSettings::where('option_name', '=', 'user_priority')->first();
|
||||||
if (!($request->input('priority'))) {
|
if (!($request->input('priority'))) {
|
||||||
$priority = $default_priority->priority_id;
|
$priority = $default_priority->priority_id;
|
||||||
|
if ($helpTopicObj->exists() && ($helpTopicObj->value('status') == 1)) {
|
||||||
|
$priority = $helpTopicObj->value('priority');
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$priority = $request->input('priority');
|
$priority = $request->input('priority');
|
||||||
}
|
}
|
||||||
@@ -189,6 +192,9 @@ class FormController extends Controller
|
|||||||
$attachments = $request->file('attachment');
|
$attachments = $request->file('attachment');
|
||||||
$collaborator = null;
|
$collaborator = null;
|
||||||
$assignto = null;
|
$assignto = null;
|
||||||
|
if ($helpTopicObj->exists() && ($helpTopicObj->value('status') == 1)) {
|
||||||
|
$assignto = $helpTopicObj->value('auto_assign');
|
||||||
|
}
|
||||||
$auto_response = 0;
|
$auto_response = 0;
|
||||||
$team_assign = null;
|
$team_assign = null;
|
||||||
if ($phone != null || $mobile_number != null) {
|
if ($phone != null || $mobile_number != null) {
|
||||||
|
@@ -164,7 +164,7 @@ class NotificationController extends Controller
|
|||||||
}, 'notification.model' => function ($query) {
|
}, 'notification.model' => function ($query) {
|
||||||
$query->select('id', 'ticket_number');
|
$query->select('id', 'ticket_number');
|
||||||
},
|
},
|
||||||
]);
|
])->where('user_id', '=', \Auth::user()->id);
|
||||||
|
|
||||||
return $notifications;
|
return $notifications;
|
||||||
}
|
}
|
||||||
|
@@ -115,7 +115,7 @@ class PhpMailController extends Controller
|
|||||||
$department_sign = $this->checkElement('department_sign', $template_variables);
|
$department_sign = $this->checkElement('department_sign', $template_variables);
|
||||||
$password_reset_link = $this->checkElement('password_reset_link', $template_variables);
|
$password_reset_link = $this->checkElement('password_reset_link', $template_variables);
|
||||||
$user_password = $this->checkElement('user_password', $template_variables);
|
$user_password = $this->checkElement('user_password', $template_variables);
|
||||||
|
$merged_ticket_numbers = $this->checkElement('merged_ticket_numbers', $template_variables);
|
||||||
$email_address = $this->checkElement('email_address', $template_variables);
|
$email_address = $this->checkElement('email_address', $template_variables);
|
||||||
$user = $this->checkElement('user', $template_variables);
|
$user = $this->checkElement('user', $template_variables);
|
||||||
|
|
||||||
@@ -145,9 +145,9 @@ class PhpMailController extends Controller
|
|||||||
$subject = null;
|
$subject = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
$variables = ['{!!$user!!}', '{!!$agent!!}', '{!!$ticket_number!!}', '{!!$content!!}', '{!!$from!!}', '{!!$ticket_agent_name!!}', '{!!$ticket_client_name!!}', '{!!$ticket_client_email!!}', '{!!$ticket_body!!}', '{!!$ticket_assigner!!}', '{!!$ticket_link_with_number!!}', '{!!$system_error!!}', '{!!$agent_sign!!}', '{!!$department_sign!!}', '{!!$password_reset_link!!}', '{!!$email_address!!}', '{!!$user_password!!}', '{!!$system_from!!}', '{!!$system_link!!}', '{!!$ticket_link!!}'];
|
$variables = ['{!!$user!!}', '{!!$agent!!}', '{!!$ticket_number!!}', '{!!$content!!}', '{!!$from!!}', '{!!$ticket_agent_name!!}', '{!!$ticket_client_name!!}', '{!!$ticket_client_email!!}', '{!!$ticket_body!!}', '{!!$ticket_assigner!!}', '{!!$ticket_link_with_number!!}', '{!!$system_error!!}', '{!!$agent_sign!!}', '{!!$department_sign!!}', '{!!$password_reset_link!!}', '{!!$email_address!!}', '{!!$user_password!!}', '{!!$system_from!!}', '{!!$system_link!!}', '{!!$ticket_link!!}', '{!!$merged_ticket_numbers!!}'];
|
||||||
|
|
||||||
$data = [$user, $agent, $ticket_number, $content, $from, $ticket_agent_name, $ticket_client_name, $ticket_client_email, $ticket_body, $ticket_assigner, $ticket_link_with_number, $system_error, $agent_sign, $department_sign, $password_reset_link, $email_address, $user_password, $system_from, $system_link, $ticket_link];
|
$data = [$user, $agent, $ticket_number, $content, $from, $ticket_agent_name, $ticket_client_name, $ticket_client_email, $ticket_body, $ticket_assigner, $ticket_link_with_number, $system_error, $agent_sign, $department_sign, $password_reset_link, $email_address, $user_password, $system_from, $system_link, $ticket_link, $merged_ticket_numbers];
|
||||||
|
|
||||||
foreach ($variables as $key => $variable) {
|
foreach ($variables as $key => $variable) {
|
||||||
$messagebody = str_replace($variables[$key], $data[$key], $contents);
|
$messagebody = str_replace($variables[$key], $data[$key], $contents);
|
||||||
|
@@ -150,9 +150,9 @@ class AgentLayout
|
|||||||
}
|
}
|
||||||
|
|
||||||
return $table->Join('ticket_status', function ($join) {
|
return $table->Join('ticket_status', function ($join) {
|
||||||
$join->on('ticket_status.id', '=', 'tickets.status')
|
$join->on('ticket_status.id', '=', 'tickets.status')
|
||||||
->whereIn('ticket_status.id', [1, 7]);
|
->whereIn('ticket_status.id', [1, 7]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public function overdues()
|
public function overdues()
|
||||||
|
@@ -426,10 +426,10 @@ Breadcrumbs::register('report.index', function ($breadcrumbs) {
|
|||||||
$breadcrumbs->push(Lang::get('lang.dashboard'), route('dashboard'));
|
$breadcrumbs->push(Lang::get('lang.dashboard'), route('dashboard'));
|
||||||
});
|
});
|
||||||
Breadcrumbs::register('home', function ($breadcrumbs) {
|
Breadcrumbs::register('home', function ($breadcrumbs) {
|
||||||
$breadcrumbs->push('Home', route('home'));
|
$breadcrumbs->push(Lang::get('lang.home'), route('home'));
|
||||||
});
|
});
|
||||||
Breadcrumbs::register('/', function ($breadcrumbs) {
|
Breadcrumbs::register('/', function ($breadcrumbs) {
|
||||||
$breadcrumbs->push('Home', route('/'));
|
$breadcrumbs->push(Lang::get('lang.home'), route('/'));
|
||||||
});
|
});
|
||||||
Breadcrumbs::register('form', function ($breadcrumbs) {
|
Breadcrumbs::register('form', function ($breadcrumbs) {
|
||||||
$breadcrumbs->push('Create Ticket', route('form'));
|
$breadcrumbs->push('Create Ticket', route('form'));
|
||||||
|
@@ -33,7 +33,7 @@ return [
|
|||||||
| This tells about aplication current version.
|
| This tells about aplication current version.
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
'version' => 'Community 1.9.0',
|
'version' => 'Community 1.9.2',
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Application Name
|
| Application Name
|
||||||
|
@@ -1994,6 +1994,7 @@ class DatabaseSeeder extends Seeder
|
|||||||
TemplateType::create(['id' => '11', 'name' => 'registration']);
|
TemplateType::create(['id' => '11', 'name' => 'registration']);
|
||||||
TemplateType::create(['id' => '12', 'name' => 'team_assign_ticket']);
|
TemplateType::create(['id' => '12', 'name' => 'team_assign_ticket']);
|
||||||
TemplateType::create(['id' => '13', 'name' => 'reset_new_password']);
|
TemplateType::create(['id' => '13', 'name' => 'reset_new_password']);
|
||||||
|
TemplateType::create(['id' => '14', 'name' => 'merge-ticket-notification']);
|
||||||
|
|
||||||
Template::create(['id' => '1', 'variable' => '0', 'name' => 'This template is for sending notice to agent when ticket is assigned to them', 'type' => '1', 'message' => '<div>Hello {!!$ticket_agent_name!!},<br /><br /><b>Ticket No:</b> {!!$ticket_number!!}<br />Has been assigned to you by {!!$ticket_assigner!!} <br/> Please check and resppond on the ticket.<br /> Link: {!!$ticket_link!!}<br /><br />Thank You<br />Kind Regards,<br /> {!!$system_from!!}</div>', 'set_id' => '1']);
|
Template::create(['id' => '1', 'variable' => '0', 'name' => 'This template is for sending notice to agent when ticket is assigned to them', 'type' => '1', 'message' => '<div>Hello {!!$ticket_agent_name!!},<br /><br /><b>Ticket No:</b> {!!$ticket_number!!}<br />Has been assigned to you by {!!$ticket_assigner!!} <br/> Please check and resppond on the ticket.<br /> Link: {!!$ticket_link!!}<br /><br />Thank You<br />Kind Regards,<br /> {!!$system_from!!}</div>', 'set_id' => '1']);
|
||||||
Template::create(['id' => '2', 'variable' => '1', 'name' => 'This template is for sending notice to client with ticket link to check ticket without logging in to system', 'type' => '2', 'subject' => 'Check your Ticket', 'message' => '<div>Hello {!!$user!!},<br/><br/>Click the link below to view your requested ticket<br/> {!!$ticket_link_with_number!!}<br/><br/>Kind Regards,<br/> {!!$system_from!!}</div>', 'set_id' => '1']);
|
Template::create(['id' => '2', 'variable' => '1', 'name' => 'This template is for sending notice to client with ticket link to check ticket without logging in to system', 'type' => '2', 'subject' => 'Check your Ticket', 'message' => '<div>Hello {!!$user!!},<br/><br/>Click the link below to view your requested ticket<br/> {!!$ticket_link_with_number!!}<br/><br/>Kind Regards,<br/> {!!$system_from!!}</div>', 'set_id' => '1']);
|
||||||
@@ -2008,6 +2009,7 @@ class DatabaseSeeder extends Seeder
|
|||||||
Template::create(['id' => '11', 'variable' => '1', 'name' => 'This template is for sending notice to client about registration confirmation link', 'type' => '11', 'subject' => 'Verify your email address', 'message' => '<p>Hello {!!$user!!}, </p><p>This email is confirmation that you are now registered at our helpdesk.</p><p><b>Registered Email:</b> {!!$email_address!!}</p><p>Please click on the below link to activate your account and Login to the system {!!$password_reset_link!!}</p><p>Thank You.</p><p>Kind Regards,</p><p> {!!$system_from!!} </p>', 'set_id' => '1']);
|
Template::create(['id' => '11', 'variable' => '1', 'name' => 'This template is for sending notice to client about registration confirmation link', 'type' => '11', 'subject' => 'Verify your email address', 'message' => '<p>Hello {!!$user!!}, </p><p>This email is confirmation that you are now registered at our helpdesk.</p><p><b>Registered Email:</b> {!!$email_address!!}</p><p>Please click on the below link to activate your account and Login to the system {!!$password_reset_link!!}</p><p>Thank You.</p><p>Kind Regards,</p><p> {!!$system_from!!} </p>', 'set_id' => '1']);
|
||||||
Template::create(['id' => '12', 'variable' => '1', 'name' => 'This template is for sending notice to team when ticket is assigned to team', 'type' => '12', 'message' => '<div>Hello {!!$ticket_agent_name!!},<br /><br /><b>Ticket No:</b> {!!$ticket_number!!}<br />Has been assigned to your team : {!!$team!!} by {!!$ticket_assigner!!} <br /><br />Thank You<br />Kind Regards,<br />{!!$system_from!!}</div>', 'set_id' => '1']);
|
Template::create(['id' => '12', 'variable' => '1', 'name' => 'This template is for sending notice to team when ticket is assigned to team', 'type' => '12', 'message' => '<div>Hello {!!$ticket_agent_name!!},<br /><br /><b>Ticket No:</b> {!!$ticket_number!!}<br />Has been assigned to your team : {!!$team!!} by {!!$ticket_assigner!!} <br /><br />Thank You<br />Kind Regards,<br />{!!$system_from!!}</div>', 'set_id' => '1']);
|
||||||
Template::create(['id' => '13', 'variable' => '1', 'name' => 'This template is for sending notice to client when password is changed', 'type' => '13', 'subject' => 'Verify your email address', 'message' => 'Hello {!!$user!!},<br /><br />Your password is successfully changed.Your new password is : {!!$user_password!!}<br /><br />Thank You.<br /><br />Kind Regards,<br /> {!!$system_from!!}', 'set_id' => '1']);
|
Template::create(['id' => '13', 'variable' => '1', 'name' => 'This template is for sending notice to client when password is changed', 'type' => '13', 'subject' => 'Verify your email address', 'message' => 'Hello {!!$user!!},<br /><br />Your password is successfully changed.Your new password is : {!!$user_password!!}<br /><br />Thank You.<br /><br />Kind Regards,<br /> {!!$system_from!!}', 'set_id' => '1']);
|
||||||
|
Template::create(['id' => '14', 'variable' => '1', 'name' => 'This template is to notify users when their tickets are merged.', 'type' => '14', 'subject' => 'Your tickets have been merged.', 'message' => '<p>Hello {!!$user!!},<br /> </p><p>Your ticket(s) with ticket number {!!$merged_ticket_numbers!!} have been closed and merged with <a href="{!!$ticket_link!!}">{!!$ticket_number!!}</a>. </p><p>Possible reasons for merging tickets</p><ul><li>Tickets are duplicate</li<li>Tickets state the same issue</li><li>Another member from your organization has created a ticket for the same issue</li></ul><p><a href="{!!$system_link!!}">Click here</a> to login to your account and check your tickets.</p><p>Regards,</p><p>{!!$system_from!!}</p>', 'set_id' => '1']);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* All the common settings will be listed here
|
* All the common settings will be listed here
|
||||||
|
Binary file not shown.
@@ -1,3 +1,38 @@
|
|||||||
|
|======================================================
|
||||||
|
|v1.9.2
|
||||||
|
|======================================================
|
||||||
|
|
||||||
|
Bug Fixes
|
||||||
|
Corrected notification counts
|
||||||
|
Fixed canned response error
|
||||||
|
Correct message for registration
|
||||||
|
Removed routes of PRO features
|
||||||
|
Exception handling while adding language
|
||||||
|
Showing agents in alphabetical order in various drop down menus
|
||||||
|
Handling the case when agent/admin adds same owner while changing ticket's owner
|
||||||
|
Fixed priority and auto assignment while creating ticket form cleint panel
|
||||||
|
Fixed typos in english language translation
|
||||||
|
Fixed counts of tickets of every categroy
|
||||||
|
Removed duplicate option from top nav bar
|
||||||
|
Fixed empty database check while installation
|
||||||
|
Assigning team leader in a team while creating new team
|
||||||
|
Fixed #361
|
||||||
|
|
||||||
|
Enhancements
|
||||||
|
|
||||||
|
Sending email notfications to users while merging their duplicate tickets
|
||||||
|
Implemented Yajra in users table
|
||||||
|
Custom filter and search option in users table
|
||||||
|
Check if JavaScript is enabled or not while installation
|
||||||
|
Put max execution time and "mbstring" extension check while installation
|
||||||
|
|
||||||
|
|========================================================
|
||||||
|
| Upgrade giude
|
||||||
|
|========================================================
|
||||||
|
|
||||||
|
Follow this wiki article to upgrade your Faveo system
|
||||||
|
https://github.com/ladybirdweb/faveo-helpdesk/wiki/Upgrade-guide-for-v1.9.2
|
||||||
|
|
||||||
|=======================================================
|
|=======================================================
|
||||||
| v1.9.1
|
| v1.9.1
|
||||||
|=======================================================
|
|=======================================================
|
||||||
|
@@ -1146,4 +1146,16 @@ return [
|
|||||||
'delete-account-caution-info' => 'Please note this account may still have open tickets in the system.',
|
'delete-account-caution-info' => 'Please note this account may still have open tickets in the system.',
|
||||||
'reply-can-not-be-empty' => 'Reply can not be blank. Please enter your reply.',
|
'reply-can-not-be-empty' => 'Reply can not be blank. Please enter your reply.',
|
||||||
|
|
||||||
|
//update 18-12-2016
|
||||||
|
'account-created-contact-admin-as-we-were-not-able-to-send-opt' => 'Your account has been created successfully. Please contact admin for account activation as we were not able to send you an OPT code.',
|
||||||
|
//update 19-12-2016
|
||||||
|
'only-agents' => 'Agent users',
|
||||||
|
'only-users' => 'Clients users',
|
||||||
|
'banned-users' => 'Banned users',
|
||||||
|
'inactive-users' => 'Inactive users',
|
||||||
|
'all-users' => 'All users',
|
||||||
|
'search' => 'Search...',
|
||||||
|
//update 21-12-2016
|
||||||
|
'selected-user-is-already-the-owner' => 'Selected user is already the owner of this ticket.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@@ -106,7 +106,7 @@ return [
|
|||||||
*/
|
*/
|
||||||
'i_know_my_password' => 'I know my password',
|
'i_know_my_password' => 'I know my password',
|
||||||
'recover_passord' => 'Recover password',
|
'recover_passord' => 'Recover password',
|
||||||
'send_password_reset_link' => 'Send pasword reset link',
|
'send_password_reset_link' => 'Send password reset link',
|
||||||
'enter_email_to_reset_password' => 'Enter email/mobile number to reset password',
|
'enter_email_to_reset_password' => 'Enter email/mobile number to reset password',
|
||||||
'link' => 'Link',
|
'link' => 'Link',
|
||||||
'email_or_mobile' => 'Email or mobile',
|
'email_or_mobile' => 'Email or mobile',
|
||||||
@@ -474,7 +474,7 @@ return [
|
|||||||
'default' => 'default',
|
'default' => 'default',
|
||||||
'language-settings' => 'Language settings',
|
'language-settings' => 'Language settings',
|
||||||
'iso-code' => 'ISO-CODE',
|
'iso-code' => 'ISO-CODE',
|
||||||
'download' => 'Downlaod',
|
'download' => 'Download',
|
||||||
'upload_file' => 'Upload file',
|
'upload_file' => 'Upload file',
|
||||||
'enter_iso-code' => 'Enter ISO code',
|
'enter_iso-code' => 'Enter ISO code',
|
||||||
'eg.' => 'Example',
|
'eg.' => 'Example',
|
||||||
@@ -493,8 +493,8 @@ return [
|
|||||||
'delete-success' => 'Language package deleted successfully.',
|
'delete-success' => 'Language package deleted successfully.',
|
||||||
'lang-doesnot-exist' => 'Language package does not exist.',
|
'lang-doesnot-exist' => 'Language package does not exist.',
|
||||||
'active-lang-error' => 'Language package can not be deleted when it is active.',
|
'active-lang-error' => 'Language package can not be deleted when it is active.',
|
||||||
'language-error' => 'Language package not found in your lang directroy.',
|
'language-error' => 'Language package not found in your lang directory.',
|
||||||
'lang-fallback-lang' => 'Cannot delete system\'s defualt fallback language',
|
'lang-fallback-lang' => 'Can not delete system\'s defualt fallback language',
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------
|
|--------------------------------------
|
||||||
@@ -550,7 +550,7 @@ return [
|
|||||||
'SLA_plan' => 'SLA plan',
|
'SLA_plan' => 'SLA plan',
|
||||||
'sla-plans' => 'SLA plans',
|
'sla-plans' => 'SLA plans',
|
||||||
'auto_assign' => 'Auto assign',
|
'auto_assign' => 'Auto assign',
|
||||||
'auto_respons' => 'Auto respons',
|
'auto_respons' => 'Auto response',
|
||||||
'ticket_number_format' => 'Ticket number format',
|
'ticket_number_format' => 'Ticket number format',
|
||||||
'system_default' => 'System default',
|
'system_default' => 'System default',
|
||||||
'custom' => 'Custom',
|
'custom' => 'Custom',
|
||||||
@@ -807,7 +807,7 @@ return [
|
|||||||
'outgoing_emails' => 'Outgoing emails',
|
'outgoing_emails' => 'Outgoing emails',
|
||||||
'outgoing_email' => 'Outgoing email',
|
'outgoing_email' => 'Outgoing email',
|
||||||
'template_set' => 'Template set',
|
'template_set' => 'Template set',
|
||||||
'auto_responding_settings' => 'Auto-Responding settigs',
|
'auto_responding_settings' => 'Auto-Responding settings',
|
||||||
'disable_for_this_department' => 'Disable for this department',
|
'disable_for_this_department' => 'Disable for this department',
|
||||||
'auto_response_email' => 'Auto-Response email',
|
'auto_response_email' => 'Auto-Response email',
|
||||||
'recipient' => 'Recipient',
|
'recipient' => 'Recipient',
|
||||||
@@ -819,14 +819,14 @@ return [
|
|||||||
'edit_department' => 'Edit department',
|
'edit_department' => 'Edit department',
|
||||||
'select_a_sla' => 'Select a SLA',
|
'select_a_sla' => 'Select a SLA',
|
||||||
'select_a_manager' => 'Select a manager',
|
'select_a_manager' => 'Select a manager',
|
||||||
'department_created_sucessfully' => 'Department created sucessfully',
|
'department_created_sucessfully' => 'Department created successfully',
|
||||||
'failed_to_create_department' => 'Failed to create department',
|
'failed_to_create_department' => 'Failed to create department',
|
||||||
'department_updated_sucessfully' => 'Department updated sucessfully',
|
'department_updated_sucessfully' => 'Department updated successfully',
|
||||||
'department_not_updated' => 'Department not updated',
|
'department_not_updated' => 'Department not updated',
|
||||||
'you_cannot_delete_default_department' => 'You cannot delete default department',
|
'you_cannot_delete_default_department' => 'You cannot delete default department',
|
||||||
'have_been_moved_to_default_department' => 'have been moved to default department',
|
'have_been_moved_to_default_department' => 'have been moved to default department',
|
||||||
'the_associated_helptopic_has_been_deactivated' => 'The associated helptopic has been deactivated',
|
'the_associated_helptopic_has_been_deactivated' => 'The associated helptopic has been deactivated',
|
||||||
'department_deleted_sucessfully' => 'Department deleted sucessfully',
|
'department_deleted_sucessfully' => 'Department deleted successfully',
|
||||||
'department_can_not_delete' => 'Department can not be deleted',
|
'department_can_not_delete' => 'Department can not be deleted',
|
||||||
'select_a_department' => 'Select a department',
|
'select_a_department' => 'Select a department',
|
||||||
'make-default-department' => 'Make system\'s default department',
|
'make-default-department' => 'Make system\'s default department',
|
||||||
@@ -1104,7 +1104,7 @@ return [
|
|||||||
'submit' => 'Submit',
|
'submit' => 'Submit',
|
||||||
'max' => 'Maximum file size',
|
'max' => 'Maximum file size',
|
||||||
'add_cc' => 'Add CC',
|
'add_cc' => 'Add CC',
|
||||||
'recepients' => 'Recepients',
|
'recepients' => 'Recipients',
|
||||||
'select_a_canned_response' => 'Select a canned response',
|
'select_a_canned_response' => 'Select a canned response',
|
||||||
'assign_to' => 'Assign to',
|
'assign_to' => 'Assign to',
|
||||||
'detail' => 'Detail',
|
'detail' => 'Detail',
|
||||||
@@ -1118,7 +1118,7 @@ return [
|
|||||||
'minutes' => ' minutes',
|
'minutes' => ' minutes',
|
||||||
'in_minutes' => 'In minutes',
|
'in_minutes' => 'In minutes',
|
||||||
'add_another_owner' => 'Add another owner',
|
'add_another_owner' => 'Add another owner',
|
||||||
'user-not-found' => 'User not found. Try again or add a new user.',
|
'user-not-found' => 'User not found or user is inactive. Try again or add a new user.',
|
||||||
'change-success' => 'Success! owner has been changed for this ticket.',
|
'change-success' => 'Success! owner has been changed for this ticket.',
|
||||||
'user-exists' => 'User already exists. Try search existing user.',
|
'user-exists' => 'User already exists. Try search existing user.',
|
||||||
'valid-email' => 'Enter a valid email address.',
|
'valid-email' => 'Enter a valid email address.',
|
||||||
@@ -1137,7 +1137,7 @@ return [
|
|||||||
'merge-success' => 'Tickets have been merged successfully.',
|
'merge-success' => 'Tickets have been merged successfully.',
|
||||||
'merge-error2' => 'Please select ticket to merge.',
|
'merge-error2' => 'Please select ticket to merge.',
|
||||||
'select-tickets-to merge' => 'Select two or more tickets to merge.',
|
'select-tickets-to merge' => 'Select two or more tickets to merge.',
|
||||||
'different-users' => 'Ticktes from different users',
|
'different-users' => 'Selected tickets are from different users',
|
||||||
'clean-up' => 'Delete forever',
|
'clean-up' => 'Delete forever',
|
||||||
'hard-delete-success-message' => 'Tickets have been deleted permanently.',
|
'hard-delete-success-message' => 'Tickets have been deleted permanently.',
|
||||||
'overdue' => 'Overdue',
|
'overdue' => 'Overdue',
|
||||||
@@ -1364,11 +1364,11 @@ return [
|
|||||||
'Send' => 'SEND',
|
'Send' => 'SEND',
|
||||||
'no_article' => 'No article',
|
'no_article' => 'No article',
|
||||||
'profile_settings' => 'Profile settings',
|
'profile_settings' => 'Profile settings',
|
||||||
'please_fill_all_required_feilds' => 'Please fill all required feilds.',
|
'please_fill_all_required_feilds' => 'Please fill all required fields.',
|
||||||
'successfully_replied' => 'Successfully replied',
|
'successfully_replied' => 'Successfully replied',
|
||||||
'please_fill_some_data' => 'Please fill some data!',
|
'please_fill_some_data' => 'Please fill some data!',
|
||||||
'profile_updated_sucessfully' => 'Profile updated sucessfully',
|
'profile_updated_sucessfully' => 'Profile updated sucessfully',
|
||||||
'password_updated_sucessfully' => 'Password updated sucessfully',
|
'password_updated_sucessfully' => 'Password updated successfully',
|
||||||
'password_was_not_updated_incorrect_old_password' => 'Password was not updated. Incorrect old password',
|
'password_was_not_updated_incorrect_old_password' => 'Password was not updated. Incorrect old password',
|
||||||
'there_is_no_such_ticket_number' => 'There is no such ticket number',
|
'there_is_no_such_ticket_number' => 'There is no such ticket number',
|
||||||
"email_didn't_match_with_ticket_number" => "Email didn't match with ticket number",
|
"email_didn't_match_with_ticket_number" => "Email didn't match with ticket number",
|
||||||
@@ -1546,9 +1546,9 @@ return [
|
|||||||
'change_password' => 'Change password',
|
'change_password' => 'Change password',
|
||||||
'role_change' => 'Role change',
|
'role_change' => 'Role change',
|
||||||
'password_generator' => 'Password generator',
|
'password_generator' => 'Password generator',
|
||||||
'depertment' => 'Depertment',
|
'depertment' => 'Department',
|
||||||
'duetoday' => 'Due today',
|
'duetoday' => 'Due today',
|
||||||
'today-due_tickets' => 'Today\'s due ticekts',
|
'today-due_tickets' => 'Today\'s due tickets',
|
||||||
'password_change_successfully' => 'Password changed successfully',
|
'password_change_successfully' => 'Password changed successfully',
|
||||||
'role_change_successfully' => 'Role changed successfully',
|
'role_change_successfully' => 'Role changed successfully',
|
||||||
'user_delete_successfully' => 'User deleted successfully',
|
'user_delete_successfully' => 'User deleted successfully',
|
||||||
@@ -1583,4 +1583,15 @@ return [
|
|||||||
'delete-account-caution-info' => 'Please note this account may still have open tickets in the system.',
|
'delete-account-caution-info' => 'Please note this account may still have open tickets in the system.',
|
||||||
'reply-can-not-be-empty' => 'Reply can not be blank. Please enter your reply.',
|
'reply-can-not-be-empty' => 'Reply can not be blank. Please enter your reply.',
|
||||||
|
|
||||||
|
//update 18-12-2016
|
||||||
|
'account-created-contact-admin-as-we-were-not-able-to-send-opt' => 'Your account has been created successfully. Please contact admin for account activation as we were not able to send you an OTP code.',
|
||||||
|
//update 19-12-2016
|
||||||
|
'only-agents' => 'Agent users',
|
||||||
|
'only-users' => 'Clients users',
|
||||||
|
'banned-users' => 'Banned users',
|
||||||
|
'inactive-users' => 'Inactive users',
|
||||||
|
'all-users' => 'All users',
|
||||||
|
'search' => 'Search...',
|
||||||
|
//update 21-12-2016
|
||||||
|
'selected-user-is-already-the-owner' => 'Selected user is already the owner of this ticket.',
|
||||||
];
|
];
|
||||||
|
@@ -1554,4 +1554,16 @@ return [
|
|||||||
'delete-account-caution-info' => 'Please note this account may still have open tickets in the system.',
|
'delete-account-caution-info' => 'Please note this account may still have open tickets in the system.',
|
||||||
'reply-can-not-be-empty' => 'Reply can not be blank. Please enter your reply.',
|
'reply-can-not-be-empty' => 'Reply can not be blank. Please enter your reply.',
|
||||||
|
|
||||||
|
//update 18-12-2016
|
||||||
|
'account-created-contact-admin-as-we-were-not-able-to-send-opt' => 'Your account has been created successfully. Please contact admin for account activation as we were not able to send you an OPT code.',
|
||||||
|
//update 19-12-2016
|
||||||
|
'only-agents' => 'Agent users',
|
||||||
|
'only-users' => 'Clients users',
|
||||||
|
'banned-users' => 'Banned users',
|
||||||
|
'inactive-users' => 'Inactive users',
|
||||||
|
'all-users' => 'All users',
|
||||||
|
'search' => 'Search...',
|
||||||
|
//update 21-12-2016
|
||||||
|
'selected-user-is-already-the-owner' => 'Selected user is already the owner of this ticket.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@@ -1105,4 +1105,16 @@ return [
|
|||||||
'restore-user' => 'Restore user account',
|
'restore-user' => 'Restore user account',
|
||||||
'delete-account-caution-info' => 'Please note this account may still have open tickets in the system.',
|
'delete-account-caution-info' => 'Please note this account may still have open tickets in the system.',
|
||||||
'reply-can-not-be-empty' => 'Reply can not be blank. Please enter your reply.',
|
'reply-can-not-be-empty' => 'Reply can not be blank. Please enter your reply.',
|
||||||
|
|
||||||
|
//update 18-12-2016
|
||||||
|
'account-created-contact-admin-as-we-were-not-able-to-send-opt' => 'Your account has been created successfully. Please contact admin for account activation as we were not able to send you an OPT code.',
|
||||||
|
//update 19-12-2016
|
||||||
|
'only-agents' => 'Agent users',
|
||||||
|
'only-users' => 'Clients users',
|
||||||
|
'banned-users' => 'Banned users',
|
||||||
|
'inactive-users' => 'Inactive users',
|
||||||
|
'all-users' => 'All users',
|
||||||
|
'search' => 'Search...',
|
||||||
|
//update 21-12-2016
|
||||||
|
'selected-user-is-already-the-owner' => 'Selected user is already the owner of this ticket.',
|
||||||
];
|
];
|
||||||
|
@@ -1599,4 +1599,16 @@ return [
|
|||||||
'delete-account-caution-info' => 'Please note this account may still have open tickets in the system.',
|
'delete-account-caution-info' => 'Please note this account may still have open tickets in the system.',
|
||||||
'reply-can-not-be-empty' => 'Reply can not be blank. Please enter your reply.',
|
'reply-can-not-be-empty' => 'Reply can not be blank. Please enter your reply.',
|
||||||
|
|
||||||
|
//update 18-12-2016
|
||||||
|
'account-created-contact-admin-as-we-were-not-able-to-send-opt' => 'Your account has been created successfully. Please contact admin for account activation as we were not able to send you an OPT code.',
|
||||||
|
|
||||||
|
//update 19-12-2016
|
||||||
|
'only-agents' => 'Agent users',
|
||||||
|
'only-users' => 'Clients users',
|
||||||
|
'banned-users' => 'Banned users',
|
||||||
|
'inactive-users' => 'Inactive users',
|
||||||
|
'all-users' => 'All users',
|
||||||
|
'search' => 'Search...',
|
||||||
|
//update 21-12-2016
|
||||||
|
'selected-user-is-already-the-owner' => 'Selected user is already the owner of this ticket.',
|
||||||
];
|
];
|
||||||
|
@@ -1544,4 +1544,17 @@ return [
|
|||||||
'delete-account-caution-info' => 'Please note this account may still have open tickets in the system.',
|
'delete-account-caution-info' => 'Please note this account may still have open tickets in the system.',
|
||||||
'reply-can-not-be-empty' => 'Reply can not be blank. Please enter your reply.',
|
'reply-can-not-be-empty' => 'Reply can not be blank. Please enter your reply.',
|
||||||
|
|
||||||
|
//update 18-12-2016
|
||||||
|
'account-created-contact-admin-as-we-were-not-able-to-send-opt' => 'Your account has been created successfully. Please contact admin for account activation as we were not able to send you an OPT code.',
|
||||||
|
|
||||||
|
//update 19-12-2016
|
||||||
|
'only-agents' => 'Agent users',
|
||||||
|
'only-users' => 'Clients users',
|
||||||
|
'banned-users' => 'Banned users',
|
||||||
|
'inactive-users' => 'Inactive users',
|
||||||
|
'all-users' => 'All users',
|
||||||
|
'search' => 'Search...',
|
||||||
|
//update 21-12-2016
|
||||||
|
'selected-user-is-already-the-owner' => 'Selected user is already the owner of this ticket.',
|
||||||
|
|
||||||
];
|
];
|
||||||
|
@@ -1052,4 +1052,17 @@ return [
|
|||||||
'restore-user' => 'Restore user account',
|
'restore-user' => 'Restore user account',
|
||||||
'delete-account-caution-info' => 'Please note this account may still have open tickets in the system.',
|
'delete-account-caution-info' => 'Please note this account may still have open tickets in the system.',
|
||||||
'reply-can-not-be-empty' => 'Reply can not be blank. Please enter your reply.',
|
'reply-can-not-be-empty' => 'Reply can not be blank. Please enter your reply.',
|
||||||
|
|
||||||
|
//update 18-12-2016
|
||||||
|
'account-created-contact-admin-as-we-were-not-able-to-send-opt' => 'Your account has been created successfully. Please contact admin for account activation as we were not able to send you an OPT code.',
|
||||||
|
|
||||||
|
//update 19-12-2016
|
||||||
|
'only-agents' => 'Agent users',
|
||||||
|
'only-users' => 'Clients users',
|
||||||
|
'banned-users' => 'Banned users',
|
||||||
|
'inactive-users' => 'Inactive users',
|
||||||
|
'all-users' => 'All users',
|
||||||
|
'search' => 'Search...',
|
||||||
|
//update 21-12-2016
|
||||||
|
'selected-user-is-already-the-owner' => 'Selected user is already the owner of this ticket.',
|
||||||
];
|
];
|
||||||
|
@@ -61,7 +61,6 @@ class="active"
|
|||||||
<!-- team lead -->
|
<!-- team lead -->
|
||||||
<div class="col-xs-6 form-group {{ $errors->has('team_lead') ? 'has-error' : '' }}">
|
<div class="col-xs-6 form-group {{ $errors->has('team_lead') ? 'has-error' : '' }}">
|
||||||
{!! Form::label('team_lead',Lang::get('lang.team_lead')) !!}
|
{!! Form::label('team_lead',Lang::get('lang.team_lead')) !!}
|
||||||
<?php $user = App\User::where('role', 'admin')->orWhere('role', 'agent')->get(); ?>
|
|
||||||
{!! Form::select('team_lead',[''=>Lang::get('lang.select_a_team_lead'), Lang::get('lang.members')=>$user->lists('full_name','id')->toArray()],null,['class' => 'form-control']) !!}
|
{!! Form::select('team_lead',[''=>Lang::get('lang.select_a_team_lead'), Lang::get('lang.members')=>$user->lists('full_name','id')->toArray()],null,['class' => 'form-control']) !!}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -60,7 +60,6 @@ class="active"
|
|||||||
<!-- team lead -->
|
<!-- team lead -->
|
||||||
<div class="col-xs-6 form-group {{ $errors->has('team_lead') ? 'has-error' : '' }}">
|
<div class="col-xs-6 form-group {{ $errors->has('team_lead') ? 'has-error' : '' }}">
|
||||||
{!! Form::label('team_lead',Lang::get('lang.team_lead')) !!}
|
{!! Form::label('team_lead',Lang::get('lang.team_lead')) !!}
|
||||||
<?php $user = App\User::where('role', 'admin')->orWhere('role', 'agent')->get(); ?>
|
|
||||||
{!! Form::select('team_lead',[''=>Lang::get('lang.select_a_team_lead'), Lang::get('lang.members')=>$user->lists('full_name','id')->toArray()],null,['class' => 'form-control']) !!}
|
{!! Form::select('team_lead',[''=>Lang::get('lang.select_a_team_lead'), Lang::get('lang.members')=>$user->lists('full_name','id')->toArray()],null,['class' => 'form-control']) !!}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -137,7 +137,7 @@ class="active"
|
|||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="form-group {{ $errors->has('auto_assign') ? 'has-error' : '' }}">
|
<div class="form-group {{ $errors->has('auto_assign') ? 'has-error' : '' }}">
|
||||||
{!! Form::label('auto_assign',Lang::get('lang.auto_assign')) !!}
|
{!! Form::label('auto_assign',Lang::get('lang.auto_assign')) !!}
|
||||||
{!!Form::select('auto_assign', [''=>Lang::get('lang.select_an_agent'),Lang::get('lang.agents')=>$agents->lists('first_name','id')->toArray()],null,['class' => 'form-control']) !!}
|
{!!Form::select('auto_assign', [''=>Lang::get('lang.select_an_agent'),Lang::get('lang.agents')=>$agents->lists('full_name','id')->toArray()],null,['class' => 'form-control']) !!}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -135,7 +135,7 @@ class="active"
|
|||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="form-group {{ $errors->has('auto_assign') ? 'has-error' : '' }}">
|
<div class="form-group {{ $errors->has('auto_assign') ? 'has-error' : '' }}">
|
||||||
{!! Form::label('auto_assign',Lang::get('lang.auto_assign')) !!}
|
{!! Form::label('auto_assign',Lang::get('lang.auto_assign')) !!}
|
||||||
{!!Form::select('auto_assign', [''=>Lang::get('lang.select_an_agent'),Lang::get('lang.agents')=>$agents->lists('first_name','id')->toArray()],null,['class' => 'form-control']) !!}
|
{!!Form::select('auto_assign', [''=>Lang::get('lang.select_an_agent'),Lang::get('lang.agents')=>$agents->lists('full_name','id')->toArray()],null,['class' => 'form-control']) !!}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -54,6 +54,11 @@ class="active"
|
|||||||
</div><!-- /.modal -->
|
</div><!-- /.modal -->
|
||||||
</div>
|
</div>
|
||||||
<div class="box-body">
|
<div class="box-body">
|
||||||
|
<div class="alert alert-info alert-dismissable">
|
||||||
|
<i class="fa fa-info-circle"></i>
|
||||||
|
<b>{!! Lang::get('lang.plugin-info') !!}</b><br/>
|
||||||
|
<a href="http://www.faveohelpdesk.com/plugins/" target="_blank">{!!Lang::get('lang.click-here')!!}</a> {!!Lang::get('lang.plugin-info-pro')!!}
|
||||||
|
</div>
|
||||||
@if (count($errors) > 0)
|
@if (count($errors) > 0)
|
||||||
<div class="alert alert-danger alert-dismissable">
|
<div class="alert alert-danger alert-dismissable">
|
||||||
<i class="fa fa-ban"></i>
|
<i class="fa fa-ban"></i>
|
||||||
|
@@ -278,7 +278,6 @@
|
|||||||
<li @yield('auto-response')><a href="{{url('getresponder')}}"><i class="fa fa-reply-all"></i>{!! Lang::get('lang.auto_response') !!}</a></li>
|
<li @yield('auto-response')><a href="{{url('getresponder')}}"><i class="fa fa-reply-all"></i>{!! Lang::get('lang.auto_response') !!}</a></li>
|
||||||
<li @yield('alert')><a href="{{url('getalert')}}"><i class="fa fa-bell"></i>{!! Lang::get('lang.alert_notices') !!}</a></li>
|
<li @yield('alert')><a href="{{url('getalert')}}"><i class="fa fa-bell"></i>{!! Lang::get('lang.alert_notices') !!}</a></li>
|
||||||
<li @yield('status')><a href="{{url('setting-status')}}"><i class="fa fa-plus-square-o"></i>{!! Lang::get('lang.status') !!}</a></li>
|
<li @yield('status')><a href="{{url('setting-status')}}"><i class="fa fa-plus-square-o"></i>{!! Lang::get('lang.status') !!}</a></li>
|
||||||
<li @yield('labels')><a href="{{url('labels')}}"><i class="fa fa-lastfm"></i>{!! Lang::get('lang.labels') !!}</a></li>
|
|
||||||
<li @yield('ratings')><a href="{{url('getratings')}}"><i class="fa fa-star"></i>{!! Lang::get('lang.ratings') !!}</a></li>
|
<li @yield('ratings')><a href="{{url('getratings')}}"><i class="fa fa-star"></i>{!! Lang::get('lang.ratings') !!}</a></li>
|
||||||
<li @yield('close-workflow')><a href="{{url('close-workflow')}}"><i class="fa fa-sitemap"></i>{!! Lang::get('lang.close-workflow') !!}</a></li>
|
<li @yield('close-workflow')><a href="{{url('close-workflow')}}"><i class="fa fa-sitemap"></i>{!! Lang::get('lang.close-workflow') !!}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -297,7 +296,7 @@
|
|||||||
<li @yield('cron')><a href="{{url('job-scheduler')}}"><i class="fa fa-hourglass"></i>{!! Lang::get('lang.cron') !!}</a></li>
|
<li @yield('cron')><a href="{{url('job-scheduler')}}"><i class="fa fa-hourglass"></i>{!! Lang::get('lang.cron') !!}</a></li>
|
||||||
<li @yield('security')><a href="{{url('security')}}"><i class="fa fa-lock"></i>{!! Lang::get('lang.security') !!}</a></li>
|
<li @yield('security')><a href="{{url('security')}}"><i class="fa fa-lock"></i>{!! Lang::get('lang.security') !!}</a></li>
|
||||||
<li @yield('notification')><a href="{{url('settings-notification')}}"><i class="fa fa-bell"></i>{!! Lang::get('lang.notifications') !!}</a></li>
|
<li @yield('notification')><a href="{{url('settings-notification')}}"><i class="fa fa-bell"></i>{!! Lang::get('lang.notifications') !!}</a></li>
|
||||||
<li @yield('Approval')><a href="{{url('approval/settings')}}"><i class="glyphicon glyphicon-repeat"></i>{!! Lang::get('lang.approval') !!}</a></li>
|
<li @yield('storage')><a href="{{url('storage')}}"><i class="fa fa-save"></i>{!! Lang::get('storage::lang.storage') !!}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="treeview @yield('error-bugs')">
|
<li class="treeview @yield('error-bugs')">
|
||||||
|
@@ -38,9 +38,6 @@ class="active"
|
|||||||
<link type="text/css" href="{{asset("lb-faveo/css/bootstrap-datetimepicker4.7.14.min.css")}}" rel="stylesheet">
|
<link type="text/css" href="{{asset("lb-faveo/css/bootstrap-datetimepicker4.7.14.min.css")}}" rel="stylesheet">
|
||||||
{{-- <script src="{{asset("lb-faveo/dist/js/bootstrap-datetimepicker4.7.14.min.js")}}" type="text/javascript"></script> --}}
|
{{-- <script src="{{asset("lb-faveo/dist/js/bootstrap-datetimepicker4.7.14.min.js")}}" type="text/javascript"></script> --}}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<?php
|
|
||||||
$overdue_ticket = count($overdues);
|
|
||||||
?>
|
|
||||||
<!-- <div class="col-md-3 col-sm-6 col-xs-12"> -->
|
<!-- <div class="col-md-3 col-sm-6 col-xs-12"> -->
|
||||||
<div class="col-md-2" style="width:20%;">
|
<div class="col-md-2" style="width:20%;">
|
||||||
<a href="{!! route('inbox.ticket') !!}">
|
<a href="{!! route('inbox.ticket') !!}">
|
||||||
@@ -75,18 +72,8 @@ class="active"
|
|||||||
<div class="info-box">
|
<div class="info-box">
|
||||||
<span class="info-box-icon bg-red"><i class="fa fa-calendar-times-o"></i></span>
|
<span class="info-box-icon bg-red"><i class="fa fa-calendar-times-o"></i></span>
|
||||||
<div class="info-box-content">
|
<div class="info-box-content">
|
||||||
|
|
||||||
<?php
|
|
||||||
if (Auth::user()->role == 'admin') {
|
|
||||||
$overdue_ticket = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('tickets.duedate','<', \Carbon\Carbon::now())->count();
|
|
||||||
} else {
|
|
||||||
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
|
||||||
$overdue_ticket = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('tickets.duedate','<', \Carbon\Carbon::now())->where('dept_id', '=', $dept->id)->count();
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
|
|
||||||
<span class="info-box-text">{!! Lang::get('lang.overdue') !!}</span>
|
<span class="info-box-text">{!! Lang::get('lang.overdue') !!}</span>
|
||||||
<span class="info-box-number">{{ $overdue_ticket }} <small> Tickets</small></span>
|
<span class="info-box-number">{{ $overdues->count() }} <small> Tickets</small></span>
|
||||||
</div><!-- /.info-box-content -->
|
</div><!-- /.info-box-content -->
|
||||||
</div><!-- /.info-box -->
|
</div><!-- /.info-box -->
|
||||||
</a>
|
</a>
|
||||||
|
@@ -45,17 +45,15 @@ class="active"
|
|||||||
$date_time_format = UTC::getDateTimeFormat();
|
$date_time_format = UTC::getDateTimeFormat();
|
||||||
if (Auth::user()->role == 'agent') {
|
if (Auth::user()->role == 'agent') {
|
||||||
$dept = App\Model\helpdesk\Agent\Department::select('id', 'name')->where('id', '=', Auth::user()->primary_dpt)->first();
|
$dept = App\Model\helpdesk\Agent\Department::select('id', 'name')->where('id', '=', Auth::user()->primary_dpt)->first();
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::whereIn('status', array(1, 7))->where('dept_id', '=', $dept->id)->orderBy('id', 'DESC')->paginate(20);
|
|
||||||
$dept_name = $dept->name;
|
$dept_name = $dept->name;
|
||||||
} else {
|
} else {
|
||||||
$dept_name = \Request::segments()[1];
|
$dept_name = \Request::segments()[1];
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::whereIn('status', array(1, 7))->orderBy('id', 'DESC')->paginate(20);
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<!-- Main content -->
|
<!-- Main content -->
|
||||||
<div class="box box-primary">
|
<div class="box box-primary">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title">{!! $dept_name !!} / {!! $status !!} </h3> <small id="title_refresh">{!! $tickets->total() !!} {!! Lang::get('lang.tickets') !!}</small>
|
<h3 class="box-title">{!! $dept_name !!} / {!! $status !!} </h3>
|
||||||
</div><!-- /.box-header -->
|
</div><!-- /.box-header -->
|
||||||
|
|
||||||
<div class="box-body ">
|
<div class="box-body ">
|
||||||
|
@@ -46,15 +46,15 @@ class="active"
|
|||||||
$date_time_format = UTC::getDateTimeFormat();
|
$date_time_format = UTC::getDateTimeFormat();
|
||||||
if (Auth::user()->role == 'agent') {
|
if (Auth::user()->role == 'agent') {
|
||||||
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('isanswered', '=', 1)->where('dept_id', '=', $dept->id)->orderBy('id', 'DESC')->paginate(20);
|
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('isanswered', '=', 1)->where('dept_id', '=', $dept->id)->orderBy('id', 'DESC')->count();
|
||||||
} else {
|
} else {
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('isanswered', '=', 1)->orderBy('id', 'DESC')->paginate(20);
|
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('isanswered', '=', 1)->orderBy('id', 'DESC')->count();
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<!-- Main content -->
|
<!-- Main content -->
|
||||||
<div class="box box-primary">
|
<div class="box box-primary">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title">{!! Lang::get('lang.answered') !!} </h3> <small id="title_refresh">{!! $tickets->total() !!} {!! Lang::get('lang.tickets') !!}</small>
|
<h3 class="box-title">{!! Lang::get('lang.answered') !!} </h3> <small id="title_refresh">{!! $tickets !!} {!! Lang::get('lang.tickets') !!}</small>
|
||||||
<div class="box-tools pull-right">
|
<div class="box-tools pull-right">
|
||||||
<div class="has-feedback">
|
<div class="has-feedback">
|
||||||
</div>
|
</div>
|
||||||
|
@@ -46,15 +46,15 @@ class="active"
|
|||||||
$date_time_format = UTC::getDateTimeFormat();
|
$date_time_format = UTC::getDateTimeFormat();
|
||||||
if (Auth::user()->role == 'agent') {
|
if (Auth::user()->role == 'agent') {
|
||||||
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('assigned_to', '>', 0)->where('dept_id', '=', $dept->id)->orderBy('id', 'DESC')->paginate(20);
|
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('assigned_to', '>', 0)->where('dept_id', '=', $dept->id)->orderBy('id', 'DESC')->count();
|
||||||
} else {
|
} else {
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('assigned_to', '>', 0)->orderBy('id', 'DESC')->paginate(20);
|
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('assigned_to', '>', 0)->orderBy('id', 'DESC')->count();
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<!-- Main content -->
|
<!-- Main content -->
|
||||||
<div class="box box-primary">
|
<div class="box box-primary">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title"> {!! Lang::get('lang.assigned') !!} </h3> <small id="title_refresh"> {!! $tickets->total() !!} {!! Lang::get('lang.tickets') !!}</small>
|
<h3 class="box-title"> {!! Lang::get('lang.assigned') !!} </h3> <small id="title_refresh"> {!! $tickets !!} {!! Lang::get('lang.tickets') !!}</small>
|
||||||
</div><!-- /.box-header -->
|
</div><!-- /.box-header -->
|
||||||
<div class="box-body">
|
<div class="box-body">
|
||||||
@if(Session::has('success'))
|
@if(Session::has('success'))
|
||||||
|
@@ -46,15 +46,15 @@ class="active"
|
|||||||
$date_time_format = UTC::getDateTimeFormat();
|
$date_time_format = UTC::getDateTimeFormat();
|
||||||
if (Auth::user()->role == 'agent') {
|
if (Auth::user()->role == 'agent') {
|
||||||
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '>', 1)->where('dept_id', '=', $dept->id)->where('status', '<', 4)->orderBy('id', 'DESC')->paginate(20);
|
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '>', 1)->where('dept_id', '=', $dept->id)->where('status', '<', 4)->orderBy('id', 'DESC')->count();
|
||||||
} else {
|
} else {
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '>', 1)->where('status', '<', 4)->orderBy('id', 'DESC')->paginate(20);
|
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '>', 1)->where('status', '<', 4)->orderBy('id', 'DESC')->count();
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<!-- Main content -->
|
<!-- Main content -->
|
||||||
<div class="box box-primary">
|
<div class="box box-primary">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title"> {!! Lang::get('lang.closed') !!} </h3> <small id="title_refresh">{!! $tickets->total() !!} {!! Lang::get('lang.tickets') !!}</small>
|
<h3 class="box-title"> {!! Lang::get('lang.closed') !!} </h3> <small id="title_refresh">{!! $tickets !!} {!! Lang::get('lang.tickets') !!}</small>
|
||||||
</div><!-- /.box-header -->
|
</div><!-- /.box-header -->
|
||||||
<div class="box-body">
|
<div class="box-body">
|
||||||
@if(Session::has('success'))
|
@if(Session::has('success'))
|
||||||
|
@@ -48,23 +48,14 @@ class="active"
|
|||||||
$todaytickets = count(App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->whereRaw('date(duedate) = ?', [date('Y-m-d')])->get());
|
$todaytickets = count(App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->whereRaw('date(duedate) = ?', [date('Y-m-d')])->get());
|
||||||
} else {
|
} else {
|
||||||
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
||||||
$todaytickets = count(App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->whereRaw('date(duedate) = ?', [date('Y-m-d')])->where('dept_id', '=', $dept->id)->get());
|
$todaytickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->whereRaw('date(duedate) = ?', [date('Y-m-d')])->where('dept_id', '=', $dept->id)->count();
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<!-- //no need -->
|
<!-- //no need -->
|
||||||
<?php
|
|
||||||
$date_time_format = UTC::getDateTimeFormat();
|
|
||||||
if (Auth::user()->role == 'agent') {
|
|
||||||
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('isanswered', '=', 0)->where('dept_id', '=', $dept->id)->orderBy('id', 'DESC')->paginate(20);
|
|
||||||
} else {
|
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('isanswered', '=', 0)->orderBy('id', 'DESC')->paginate(20);
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<!-- Main content -->
|
<!-- Main content -->
|
||||||
<div class="box box-primary">
|
<div class="box box-primary">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title">{!! Lang::get('lang.open') !!} </h3> <small id="title_refresh">{!! $todaytickets !!} {!! Lang::get('lang.tickets') !!}</small>
|
<h3 class="box-title">{!! Lang::get('lang.duetoday') !!} </h3> <small id="title_refresh">{!! $todaytickets !!} {!! Lang::get('lang.tickets') !!}</small>
|
||||||
<div class="box-tools pull-right">
|
<div class="box-tools pull-right">
|
||||||
<div class="has-feedback">
|
<div class="has-feedback">
|
||||||
</div>
|
</div>
|
||||||
|
@@ -45,15 +45,15 @@ class="active"
|
|||||||
$date_time_format = UTC::getDateTimeFormat();
|
$date_time_format = UTC::getDateTimeFormat();
|
||||||
if (Auth::user()->role == 'agent') {
|
if (Auth::user()->role == 'agent') {
|
||||||
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::whereIn('status', array(1, 7))->where('dept_id', '=', $dept->id)->orderBy('id', 'DESC')->paginate(20);
|
$tickets = App\Model\helpdesk\Ticket\Tickets::whereIn('status', array(1, 7))->where('dept_id', '=', $dept->id)->orderBy('id', 'DESC')->count();
|
||||||
} else {
|
} else {
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::whereIn('status', array(1, 7))->orderBy('id', 'DESC')->paginate(20);
|
$tickets = App\Model\helpdesk\Ticket\Tickets::whereIn('status', array(1, 7))->orderBy('id', 'DESC')->count();
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<!-- Main content -->
|
<!-- Main content -->
|
||||||
<div class="box box-primary">
|
<div class="box box-primary">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title">{!! Lang::get('lang.inbox') !!} </h3> <small id="title_refresh">{!! $tickets->total() !!} {!! Lang::get('lang.tickets') !!}</small>
|
<h3 class="box-title">{!! Lang::get('lang.inbox') !!} </h3> <small id="title_refresh">{!! $tickets !!} {!! Lang::get('lang.tickets') !!}</small>
|
||||||
</div><!-- /.box-header -->
|
</div><!-- /.box-header -->
|
||||||
|
|
||||||
<div class="box-body ">
|
<div class="box-body ">
|
||||||
|
@@ -44,15 +44,15 @@ class="active"
|
|||||||
$date_time_format = UTC::getDateTimeFormat();
|
$date_time_format = UTC::getDateTimeFormat();
|
||||||
if (Auth::user()->role == 'agent') {
|
if (Auth::user()->role == 'agent') {
|
||||||
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('assigned_to', '=', Auth::user()->id)->orderBy('id', 'ASC')->paginate(20);
|
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('assigned_to', '=', Auth::user()->id)->orderBy('id', 'ASC')->count();
|
||||||
} else {
|
} else {
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('assigned_to', '=', Auth::user()->id)->orderBy('id', 'ASC')->paginate(20);
|
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('assigned_to', '=', Auth::user()->id)->orderBy('id', 'ASC')->count();
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<!-- Main content -->
|
<!-- Main content -->
|
||||||
<div class="box box-primary">
|
<div class="box box-primary">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title">{!! Lang::get('lang.my_tickets') !!}</h3> <small id="title_refresh">{!! $tickets->total() !!} {!! Lang::get('lang.tickets') !!}</small>
|
<h3 class="box-title">{!! Lang::get('lang.my_tickets') !!}</h3> <small id="title_refresh">{!! $tickets !!} {!! Lang::get('lang.tickets') !!}</small>
|
||||||
</div><!-- /.box-header -->
|
</div><!-- /.box-header -->
|
||||||
|
|
||||||
<div class="box-body">
|
<div class="box-body">
|
||||||
|
@@ -46,15 +46,15 @@ class="active"
|
|||||||
$date_time_format = UTC::getDateTimeFormat();
|
$date_time_format = UTC::getDateTimeFormat();
|
||||||
if (Auth::user()->role == 'agent') {
|
if (Auth::user()->role == 'agent') {
|
||||||
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('isanswered', '=', 0)->where('dept_id', '=', $dept->id)->orderBy('id', 'DESC')->paginate(20);
|
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('isanswered', '=', 0)->where('dept_id', '=', $dept->id)->orderBy('id', 'DESC')->count();
|
||||||
} else {
|
} else {
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('isanswered', '=', 0)->orderBy('id', 'DESC')->paginate(20);
|
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('isanswered', '=', 0)->orderBy('id', 'DESC')->count();
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<!-- Main content -->
|
<!-- Main content -->
|
||||||
<div class="box box-primary">
|
<div class="box box-primary">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title">{!! Lang::get('lang.open') !!} </h3> <small id="title_refresh">{!! $tickets->total() !!} {!! Lang::get('lang.tickets') !!}</small>
|
<h3 class="box-title">{!! Lang::get('lang.open') !!} </h3> <small id="title_refresh">{!! $tickets !!} {!! Lang::get('lang.tickets') !!}</small>
|
||||||
<div class="box-tools pull-right">
|
<div class="box-tools pull-right">
|
||||||
<div class="has-feedback">
|
<div class="has-feedback">
|
||||||
</div>
|
</div>
|
||||||
|
@@ -41,38 +41,20 @@ class="active"
|
|||||||
@stop
|
@stop
|
||||||
@section('content')
|
@section('content')
|
||||||
<?php
|
<?php
|
||||||
// $date_time_format = UTC::getDateTimeFormat();
|
|
||||||
// if (Auth::user()->role == 'agent') {
|
|
||||||
// $dept = \App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
|
||||||
// $overdues = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('isanswered', '=', 0)->where('dept_id', '=', $dept->id)->orderBy('id', 'DESC')->get();
|
|
||||||
// } else {
|
|
||||||
// $overdues = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 1)->where('isanswered', '=', 0)->orderBy('id', 'DESC')->get();
|
|
||||||
// }
|
|
||||||
// $i = count($overdues);
|
|
||||||
// if ($i == 0) {
|
|
||||||
// $overdue_ticket = 0;
|
|
||||||
// } else {
|
|
||||||
// $j = 0;
|
|
||||||
// foreach ($overdues as $overdue) {
|
|
||||||
// $sla_plan = App\Model\helpdesk\Manage\Sla_plan::where('id', '=', $overdue->sla)->first();
|
|
||||||
|
|
||||||
// $ovadate = $overdue->created_at;
|
|
||||||
// $new_date = date_add($ovadate, date_interval_create_from_date_string($sla_plan->grace_period)) . '<br/><br/>';
|
|
||||||
// if (date('Y-m-d H:i:s') > $new_date) {
|
|
||||||
// $j++;
|
|
||||||
// //$value[] = $overdue;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// // dd(count($value));
|
|
||||||
// if ($j > 0) {
|
|
||||||
// $overdue_ticket = $j;
|
|
||||||
// } else {
|
|
||||||
// $overdue_ticket = 0;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
$overdue_ticket=App\Model\helpdesk\Ticket\Tickets::where('tickets.duedate','<', \Carbon\Carbon::now())->count();
|
$otickets = App\Model\helpdesk\Ticket\Tickets::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());
|
||||||
|
if (\Auth::user()->role === 'agent') {
|
||||||
|
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
||||||
|
$otickets = $otickets->where('dept_id', '=', $dept->id);
|
||||||
|
}
|
||||||
|
$overdue_ticket = $otickets->count();
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<!-- Main content -->
|
<!-- Main content -->
|
||||||
|
@@ -397,14 +397,14 @@ if ($thread->title != "") {
|
|||||||
<label>{!! Lang::get('lang.response') !!}</label>
|
<label>{!! Lang::get('lang.response') !!}</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-10">
|
<div class="col-md-10">
|
||||||
<select class="form-control" style="width:55%" id="select">
|
<select class="form-control" style="width:55%" id="select" onchange="addCannedResponse()">
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
$canneds = App\Model\helpdesk\Agent_panel\Canned::where('user_id', '=', Auth::user()->id)->get();
|
$canneds = App\Model\helpdesk\Agent_panel\Canned::where('user_id', '=', Auth::user()->id)->get();
|
||||||
?>
|
?>
|
||||||
<option value="zzz">{!! Lang::get('lang.select_a_canned_response') !!}</option>
|
<option value="zzz">{!! Lang::get('lang.select_a_canned_response') !!}</option>
|
||||||
@foreach($canneds as $canned)
|
@foreach($canneds as $canned)
|
||||||
<option value="{!! $canned->id !!}" >{!! $canned->title !!}</option>
|
<option value="{!! $canned->message !!}" >{!! $canned->title !!}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
{{-- <option>Last Message</option> --}}
|
{{-- <option>Last Message</option> --}}
|
||||||
</select>
|
</select>
|
||||||
@@ -948,7 +948,7 @@ alert(h+20);
|
|||||||
<div class="tab-pane active" id="ahah1">
|
<div class="tab-pane active" id="ahah1">
|
||||||
<div id="change_alert" class="alert alert-danger alert-dismissable" style="display:none;">
|
<div id="change_alert" class="alert alert-danger alert-dismissable" style="display:none;">
|
||||||
<button id="change_dismiss" type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
<button id="change_dismiss" type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||||
<h4><i class="icon fa fa-check"></i>Alert!</h4>
|
<h4><i class="icon fa fa-exclamation-circle"></i>Alert!</h4>
|
||||||
<div id="message-success42"></div>
|
<div id="message-success42"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
@@ -1054,7 +1054,7 @@ alert(h+20);
|
|||||||
<p>{!! Lang::get('lang.whome_do_you_want_to_assign_ticket') !!}?</p>
|
<p>{!! Lang::get('lang.whome_do_you_want_to_assign_ticket') !!}?</p>
|
||||||
<select id="asssign" class="form-control" name="assign_to">
|
<select id="asssign" class="form-control" name="assign_to">
|
||||||
<?php
|
<?php
|
||||||
$assign = App\User::where('role', '!=', 'user')->where('active', '=', '1')->get();
|
$assign = App\User::where('role', '!=', 'user')->where('active', '=', '1')->orderBy('first_name')->get();
|
||||||
$count_assign = count($assign);
|
$count_assign = count($assign);
|
||||||
$teams = App\Model\helpdesk\Agent\Teams::where('status', '=', '1')->get();
|
$teams = App\Model\helpdesk\Agent\Teams::where('status', '=', '1')->get();
|
||||||
$count_teams = count($teams);
|
$count_teams = count($teams);
|
||||||
@@ -1645,15 +1645,17 @@ alert(h+20);
|
|||||||
$("#change_loader").show();
|
$("#change_loader").show();
|
||||||
},
|
},
|
||||||
success: function(response) {
|
success: function(response) {
|
||||||
if (response != 1)
|
if (response != 1) {
|
||||||
{
|
// $("#assign_body").show();
|
||||||
// $("#assign_body").show();
|
var message = "{{Lang::get('lang.user-not-found')}}";
|
||||||
var message = "{{Lang::get('lang.user-not-found')}}";
|
if (response == 400) {
|
||||||
$('#change_alert').show();
|
message = "{{Lang::get('lang.selected-user-is-already-the-owner')}}";
|
||||||
$('#message-success42').html(message);
|
}
|
||||||
setInterval(function(){$("#change_alert").hide(); }, 5000);
|
$('#change_alert').show();
|
||||||
$("#change_body").show();
|
$('#message-success42').html(message);
|
||||||
$("#change_loader").hide();
|
setInterval(function(){$("#change_alert").hide(); }, 5000);
|
||||||
|
$("#change_body").show();
|
||||||
|
$("#change_loader").hide();
|
||||||
} else {
|
} else {
|
||||||
$("#change_body").show();
|
$("#change_body").show();
|
||||||
$("#change_loader").hide();
|
$("#change_loader").hide();
|
||||||
@@ -2210,5 +2212,20 @@ echo $ticket_data->title;
|
|||||||
$(this).html($('<span />').width(Math.max(0, (Math.min(5, parseFloat($(this).html())))) * 16));
|
$(this).html($('<span />').width(Math.max(0, (Math.min(5, parseFloat($(this).html())))) * 16));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function addCannedResponse() {
|
||||||
|
var selectedResponse = document.getElementById( "select" );
|
||||||
|
var response = selectedResponse.options[selectedResponse.selectedIndex ].value;
|
||||||
|
if (response == 'zzz') {
|
||||||
|
for ( instance in CKEDITOR.instances ){
|
||||||
|
CKEDITOR.instances[instance].updateElement();
|
||||||
|
CKEDITOR.instances[instance].setData('');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for ( instance in CKEDITOR.instances ) {
|
||||||
|
CKEDITOR.instances[instance].insertHtml(response);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
@stop
|
@stop
|
@@ -44,15 +44,15 @@ class="active"
|
|||||||
// $date_time_format = UTC::getDateTimeFormat();
|
// $date_time_format = UTC::getDateTimeFormat();
|
||||||
if (Auth::user()->role == 'agent') {
|
if (Auth::user()->role == 'agent') {
|
||||||
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 5)->where('dept_id', '=', $dept->id)->orderBy('id', 'DESC')->paginate(20);
|
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 5)->where('dept_id', '=', $dept->id)->orderBy('id', 'DESC')->count();
|
||||||
} else {
|
} else {
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 5)->orderBy('id', 'DESC')->paginate(20);
|
$tickets = App\Model\helpdesk\Ticket\Tickets::where('status', '=', 5)->orderBy('id', 'DESC')->count();
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<!-- Main content -->
|
<!-- Main content -->
|
||||||
<div class="box box-warning">
|
<div class="box box-warning">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title">{!! Lang::get('lang.trash') !!} </h3> <small id="title_refresh">{!! $tickets->total() !!} {!! Lang::get('lang.tickets') !!}</small>
|
<h3 class="box-title">{!! Lang::get('lang.trash') !!} </h3> <small id="title_refresh">{!! $tickets !!} {!! Lang::get('lang.tickets') !!}</small>
|
||||||
</div><!-- /.box-header -->
|
</div><!-- /.box-header -->
|
||||||
<div class="box-body">
|
<div class="box-body">
|
||||||
@if(Session::has('success'))
|
@if(Session::has('success'))
|
||||||
|
@@ -44,9 +44,9 @@ class="active"
|
|||||||
$date_time_format = UTC::getDateTimeFormat();
|
$date_time_format = UTC::getDateTimeFormat();
|
||||||
if (Auth::user()->role == 'agent') {
|
if (Auth::user()->role == 'agent') {
|
||||||
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
$dept = App\Model\helpdesk\Agent\Department::where('id', '=', Auth::user()->primary_dpt)->first();
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::where('assigned_to', '=', null)->where('dept_id', '=', $dept->id)->where('status', '1')->orderBy('id', 'DESC')->paginate(20);
|
$tickets = App\Model\helpdesk\Ticket\Tickets::where('assigned_to', '=', null)->where('dept_id', '=', $dept->id)->where('status', '1')->orderBy('id', 'DESC')->count();
|
||||||
} else {
|
} else {
|
||||||
$tickets = App\Model\helpdesk\Ticket\Tickets::where('assigned_to', '=', null)->where('status', '1')->orderBy('id', 'DESC')->paginate(20);
|
$tickets = App\Model\helpdesk\Ticket\Tickets::where('assigned_to', '=', null)->where('status', '1')->orderBy('id', 'DESC')->count();
|
||||||
}
|
}
|
||||||
// dd($tickets);
|
// dd($tickets);
|
||||||
?>
|
?>
|
||||||
@@ -54,7 +54,7 @@ if (Auth::user()->role == 'agent') {
|
|||||||
<div class="box box-info">
|
<div class="box box-info">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<?php $counted = count(App\Model\helpdesk\Ticket\Tickets::where('assigned_to', '=', 0)->get()); ?>
|
<?php $counted = count(App\Model\helpdesk\Ticket\Tickets::where('assigned_to', '=', 0)->get()); ?>
|
||||||
<h3 class="box-title">{!! Lang::get('lang.unassigned') !!} </h3> <small id="title_refresh"> {!! $tickets->total() !!} {!! Lang::get('lang.tickets') !!}</small>
|
<h3 class="box-title">{!! Lang::get('lang.unassigned') !!} </h3> <small id="title_refresh"> {!! $tickets !!} {!! Lang::get('lang.tickets') !!}</small>
|
||||||
</div><!-- /.box-header -->
|
</div><!-- /.box-header -->
|
||||||
<div class="box-body">
|
<div class="box-body">
|
||||||
@if(Session::has('success'))
|
@if(Session::has('success'))
|
||||||
|
@@ -34,20 +34,32 @@ class="active"
|
|||||||
|
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
<div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<h3 class="box-title ">{{Lang::get('lang.user')}}</h3>
|
<h3 class="box-title ">{{Lang::get('lang.user')}}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="col-md-3">
|
<div class="col-md-5">
|
||||||
|
<div class="box-tools" style="width: 235px">
|
||||||
|
<div class="has-feedback">
|
||||||
|
<input type="text" class="form-control input-sm" id="search-text" name="search" placeholder="{{Lang::get('lang.search')}}" style="height:30px">
|
||||||
|
<span class="fa fa-search form-control-feedback"></span>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.box-tools -->
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-9">
|
<div class="col-md-7">
|
||||||
<div class="pull-right">
|
<div class="pull-right">
|
||||||
<div id="labels-div" class="btn-group">
|
<div id="labels-div" class="btn-group">
|
||||||
<button type="button" class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" id="labels-button"><i class="fa fa-eye" style="color:teal;"> </i>{{Lang::get('lang.view-option')}}<span class="caret"></span>
|
<button type="button" class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" id="labels-button"><i class="fa fa-eye" style="color:teal;"> </i>{{Lang::get('lang.view-option')}}<span class="caret"></span>
|
||||||
</button>
|
</button>
|
||||||
<ul class="dropdown-menu pull-right" role="menu">
|
<ul class="dropdown-menu role="menu">
|
||||||
<li><a href="#" class="active">{{Lang::get('lang.active-users')}}</a></li>
|
<li class="active"><a href="#" class="all">{{Lang::get('lang.all-users')}}</a></li>
|
||||||
<li><a href="#" class="inactive">{{Lang::get('lang.deleted-users')}}</a></li>
|
<li><a href="#" class="agents">{{Lang::get('lang.only-agents')}}</a></li>
|
||||||
|
<li><a href="#" class="users">{{Lang::get('lang.only-users')}}</a></li>
|
||||||
|
<li><a href="#" class="active-users">{{Lang::get('lang.active-users')}}</a></li>
|
||||||
|
<li><a href="#" class="inactive">{{Lang::get('lang.inactive-users')}}</a></li>
|
||||||
|
<li><a href="#" class="deleted">{{Lang::get('lang.deleted-users')}}</a></li>
|
||||||
|
<li><a href="#" class="banned">{{Lang::get('lang.banned-users')}}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<a href="{{url('user-export')}}" class="btn btn-default btn-sm ">Export</a>
|
<a href="{{url('user-export')}}" class="btn btn-default btn-sm ">Export</a>
|
||||||
|
@@ -320,7 +320,7 @@
|
|||||||
</aside>
|
</aside>
|
||||||
<?php
|
<?php
|
||||||
$agent_group = $auth_user_assign_group;
|
$agent_group = $auth_user_assign_group;
|
||||||
$group = App\Model\helpdesk\Agent\Groups::where('id', '=', $agent_group)->where('group_status', '=', '1')->first();
|
$group = App\Model\helpdesk\Agent\Groups::where('id', '=', $agent_group)->first();
|
||||||
?>
|
?>
|
||||||
<!-- Right side column. Contains the navbar and content of the page -->
|
<!-- Right side column. Contains the navbar and content of the page -->
|
||||||
<div class="content-wrapper">
|
<div class="content-wrapper">
|
||||||
@@ -344,10 +344,6 @@ $group = App\Model\helpdesk\Agent\Groups::where('id', '=', $agent_group)->where(
|
|||||||
<ul class="nav navbar-nav">
|
<ul class="nav navbar-nav">
|
||||||
<li id="bar" @yield('open')><a href="{{ url('/ticket/open')}}" id="load-open">{!! Lang::get('lang.open') !!}</a></li>
|
<li id="bar" @yield('open')><a href="{{ url('/ticket/open')}}" id="load-open">{!! Lang::get('lang.open') !!}</a></li>
|
||||||
<li id="bar" @yield('answered')><a href="{{ url('/ticket/answered')}}" id="load-answered">{!! Lang::get('lang.answered') !!}</a></li>
|
<li id="bar" @yield('answered')><a href="{{ url('/ticket/answered')}}" id="load-answered">{!! Lang::get('lang.answered') !!}</a></li>
|
||||||
<li id="bar" @yield('myticket')><a href="{{ url('/ticket/myticket')}}" >{!! Lang::get('lang.my_tickets') !!}</a></li>
|
|
||||||
{{-- < li id = "bar" @yield('ticket') > < a href = "{{ url('ticket') }}" >Ticket</a></li> --}}
|
|
||||||
{{-- < li id = "bar" @yield('overdue') > < a href = "{{ url('/ticket/overdue') }}" >Overdue</a></li> --}}
|
|
||||||
|
|
||||||
<li id="bar" @yield('assigned')><a href="{{ url('/ticket/assigned')}}" id="load-assigned" >{!! Lang::get('lang.assigned') !!}</a></li>
|
<li id="bar" @yield('assigned')><a href="{{ url('/ticket/assigned')}}" id="load-assigned" >{!! Lang::get('lang.assigned') !!}</a></li>
|
||||||
<li id="bar" @yield('closed')><a href="{{ url('/ticket/closed')}}" >{!! Lang::get('lang.closed') !!}</a></li>
|
<li id="bar" @yield('closed')><a href="{{ url('/ticket/closed')}}" >{!! Lang::get('lang.closed') !!}</a></li>
|
||||||
<?php if ($group->can_create_ticket == 1) { ?>
|
<?php if ($group->can_create_ticket == 1) { ?>
|
||||||
|
@@ -156,15 +156,7 @@ class = "active"
|
|||||||
$helptopic = App\Model\helpdesk\Manage\Help_topic::where('status', '=', 1)->get();
|
$helptopic = App\Model\helpdesk\Manage\Help_topic::where('status', '=', 1)->get();
|
||||||
?>
|
?>
|
||||||
<select name="helptopic" class="form-control" id="selectid">
|
<select name="helptopic" class="form-control" id="selectid">
|
||||||
<?php
|
|
||||||
$system_default_department = App\Model\helpdesk\Settings\System::where('id', '=', 1)->first();
|
|
||||||
if (isset($system_default_department->department)) {
|
|
||||||
$department_relation_helptopic = App\Model\helpdesk\Manage\Help_topic::where('department', '=', $system_default_department->department)->first();
|
|
||||||
$default_helptopic = $department_relation_helptopic->id;
|
|
||||||
} else {
|
|
||||||
$default_helptopic = 0;
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
@foreach($helptopic as $topic)
|
@foreach($helptopic as $topic)
|
||||||
<option value="{!! $topic->id !!}">{!! $topic->topic !!}</option>
|
<option value="{!! $topic->id !!}">{!! $topic->topic !!}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
@@ -171,8 +171,12 @@
|
|||||||
<div class="form-group pull-left">
|
<div class="form-group pull-left">
|
||||||
<input type="checkbox" name="remember"> {!! Lang::get("lang.remember") !!}
|
<input type="checkbox" name="remember"> {!! Lang::get("lang.remember") !!}
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" class="btn btn-custom .btn-sm ">{!! Lang::get('lang.login') !!}</button>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<button type="submit" class="btn btn-custom .btn-sm ">{!! Lang::get('lang.login') !!}</button>
|
||||||
{!! Form::close() !!}
|
{!! Form::close() !!}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{Lang::get('lang.or')}}
|
{{Lang::get('lang.or')}}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
@@ -9,11 +9,12 @@ active
|
|||||||
|
|
||||||
<div class="woocommerce-message woocommerce-tracker" >
|
<div class="woocommerce-message woocommerce-tracker" >
|
||||||
<center id="fail" style="font-size: 1.3em">JavaScript Disabled!</center>
|
<center id="fail" style="font-size: 1.3em">JavaScript Disabled!</center>
|
||||||
<p style="font-size:1.0em">Hello, Sparky! You are just few steps away from your support system. It looks like that JavaScript is disabled in your browser or not supported by your browser. FAVEO doesn't work properly without JavaScript, and it may cause errors in installation. Please check and enable JavaScript in your browser in order to install and run FAVEO to its full extent.</p>
|
<p style="font-size:1.0em">Hello, Sparky! You are just a few steps away from your support system. It looks like that JavaScript is disabled in your browser or not supported by your browser. FAVEO doesn't work properly without JavaScript, and it may cause errors in installation. Please check and enable JavaScript in your browser in order to install and run FAVEO to its full extent.</p>
|
||||||
</div>
|
<p class="wc-setup-actions step">
|
||||||
<p class="wc-setup-actions step">
|
Have you enabled JavaScript?
|
||||||
<a href="{!! $url !!}"><input type="submit" id="submitme" class="button-primary button button-large button-next" value="Reload" name="accept1"></a>
|
<a href="{!! $url !!}">Click here</a> to reload the page now.
|
||||||
</p>
|
</p>
|
||||||
|
</div>
|
||||||
</noscript>
|
</noscript>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@@ -12,37 +12,7 @@ active
|
|||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
|
||||||
<?php //dd(ini_get('disable_functions')); ?>
|
<div id="form-content">
|
||||||
|
|
||||||
|
|
||||||
<?php
|
|
||||||
// $sets = explode(",", ini_get('disable_functions'));
|
|
||||||
// $required_functions = ['escapeshellarg'];
|
|
||||||
// foreach ($sets as $key) {
|
|
||||||
// $key = trim($key);
|
|
||||||
// foreach ($required_functions as $value) {
|
|
||||||
// if($key == $value) {
|
|
||||||
// if (strpos(ini_get('disable_functions'), $key) !== false) {
|
|
||||||
// dd("found");
|
|
||||||
// } else {
|
|
||||||
// dd("not - found");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// dd($sets);
|
|
||||||
|
|
||||||
// // foreach ( as $key => $value) {
|
|
||||||
// // # code...
|
|
||||||
// // }
|
|
||||||
// if (strpos($to_check, $statement) !== false) {
|
|
||||||
// return true;
|
|
||||||
// } else {
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
?>
|
|
||||||
|
|
||||||
<div id="form-content">
|
|
||||||
<center><h1>Environment Test</h1></center>
|
<center><h1>Environment Test</h1></center>
|
||||||
@if (Session::has('fail_to_change'))
|
@if (Session::has('fail_to_change'))
|
||||||
<div class="woocommerce-message woocommerce-tracker" >
|
<div class="woocommerce-message woocommerce-tracker" >
|
||||||
@@ -208,7 +178,7 @@ function validate_zend_compatibility_mode(&$results) {
|
|||||||
function validate_extensions(&$results) {
|
function validate_extensions(&$results) {
|
||||||
$ok = true;
|
$ok = true;
|
||||||
|
|
||||||
$required_extensions = array('mcrypt', 'openssl', 'pdo', 'fileinfo', 'curl', 'zip');
|
$required_extensions = array('mcrypt', 'openssl', 'pdo', 'fileinfo', 'curl', 'zip', 'mbstring');
|
||||||
|
|
||||||
foreach ($required_extensions as $required_extension) {
|
foreach ($required_extensions as $required_extension) {
|
||||||
if (extension_loaded($required_extension)) {
|
if (extension_loaded($required_extension)) {
|
||||||
@@ -277,6 +247,16 @@ function checkDisabledFunctions(&$results) {
|
|||||||
return $ok;
|
return $ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function checkMaxExecutiontime(&$results)
|
||||||
|
{
|
||||||
|
$ok = true;
|
||||||
|
if ((int)ini_get('max_execution_time') >= 120) {
|
||||||
|
$results[] = new TestResult("Maximum execution time is as per requirement.", STATUS_OK);
|
||||||
|
} else {
|
||||||
|
$results[] = new TestResult("Maximum execution time is too low. Recommneded execution time is 120 seconds ", STATUS_WARNING);
|
||||||
|
}
|
||||||
|
return $ok;
|
||||||
|
}
|
||||||
// ---------------------------------------------------
|
// ---------------------------------------------------
|
||||||
// Do the magic
|
// Do the magic
|
||||||
// ---------------------------------------------------
|
// ---------------------------------------------------
|
||||||
@@ -288,6 +268,7 @@ $memory_ok = validate_memory_limit($results);
|
|||||||
$extensions_ok = validate_extensions($results);
|
$extensions_ok = validate_extensions($results);
|
||||||
$file_permission = checkFilePermission($results);
|
$file_permission = checkFilePermission($results);
|
||||||
$required_functions = checkDisabledFunctions($results);
|
$required_functions = checkDisabledFunctions($results);
|
||||||
|
$check_execution_time = checkMaxExecutiontime($results);
|
||||||
?>
|
?>
|
||||||
<p class="setup-actions step">
|
<p class="setup-actions step">
|
||||||
<?php
|
<?php
|
||||||
@@ -297,7 +278,7 @@ foreach ($results as $result) {
|
|||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
<?php
|
<?php
|
||||||
if ($php_ok && $memory_ok && $extensions_ok && $file_permission && $required_functions) {
|
if ($php_ok && $memory_ok && $extensions_ok && $file_permission && $required_functions && $check_execution_time) {
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@@ -0,0 +1,63 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-US">
|
||||||
|
<head>
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<title>Faveo HELPDESK</title>
|
||||||
|
<link rel="shortcut icon" href="{{asset("lb-faveo/media/images/favicon.ico")}}">
|
||||||
|
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
|
||||||
|
<link rel="stylesheet" href="{{asset("lb-faveo/css/load-styles.css")}}" type="text/css" media="all">
|
||||||
|
<link rel="stylesheet" href="{{asset("lb-faveo/css/css.css")}}" type="text/css" media="all">
|
||||||
|
<link rel="stylesheet" href="{{asset("lb-faveo/css/admin.css")}}" type="text/css" media="all">
|
||||||
|
<link rel="stylesheet" href="{{asset("lb-faveo/css/wc-setup.css")}}" type="text/css" media="all">
|
||||||
|
<link rel="stylesheet" href="{{asset("lb-faveo/css/activation.css")}}" type="text/css" media="all">
|
||||||
|
<link rel="stylesheet" href="{{asset("lb-faveo/css/style.css")}}" type="text/css" media="all">
|
||||||
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
|
||||||
|
<link href="{{asset("lb-faveo/css/ggpopover.css")}}" rel="stylesheet"/>
|
||||||
|
<link rel="stylesheet" href="{{asset("lb-faveo/css/prism.css")}}">
|
||||||
|
<link rel="stylesheet" href="{{asset("lb-faveo/css/chosen.css")}}">
|
||||||
|
</head>
|
||||||
|
<body class="wc-setup wp-core-ui">
|
||||||
|
<center><h1 id="wc-logo"><a href="http://www.faveohelpdesk.com">
|
||||||
|
<img src="{{asset("lb-faveo/media/installer/faveo.png")}}" alt="faveo" width="
|
||||||
|
250px"></a></h1></center>
|
||||||
|
|
||||||
|
<div class="wc-setup-content">
|
||||||
|
@yield('content')
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<p style="text-align: center;"> Copyright © 2015 - <?php echo date('Y')?> · Ladybird Web Solution Pvt Ltd. All Rights Reserved. Powered by <a target="_blank" href="http://www.faveohelpdesk.com">Faveo </a></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="{{asset("lb-faveo/js/ggpopover.js")}}"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$('[data-toggle="popover"]').ggpopover();
|
||||||
|
</script>
|
||||||
|
<!-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script> -->
|
||||||
|
<script src="{{asset("lb-faveo/js/chosen.jquery.js")}}" type="text/javascript"></script>
|
||||||
|
<script src="{{asset("lb-faveo/js/prism.js")}}" type="text/javascript" charset="utf-8"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var config = {
|
||||||
|
'.chosen-select': {},
|
||||||
|
'.chosen-select-deselect': {
|
||||||
|
allow_single_deselect: true
|
||||||
|
},
|
||||||
|
'.chosen-select-no-single': {
|
||||||
|
disable_search_threshold: 10
|
||||||
|
},
|
||||||
|
'.chosen-select-no-results': {
|
||||||
|
no_results_text: 'Oops, nothing found!'
|
||||||
|
},
|
||||||
|
'.chosen-select-width': {
|
||||||
|
width: "95%"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (var selector in config) {
|
||||||
|
$(selector).chosen(config[selector]);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@@ -7,8 +7,9 @@ foreach($segments as $seg){
|
|||||||
?>
|
?>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
jQuery(document).ready(function () {
|
jQuery(document).ready(function () {
|
||||||
var show = 'active';
|
var show = 'all';
|
||||||
oTable = myFunction(show);
|
var searchTerm = '';
|
||||||
|
oTable = myFunction(show, searchTerm);
|
||||||
|
|
||||||
$("select[name=type_of_profile]").change(function () {
|
$("select[name=type_of_profile]").change(function () {
|
||||||
//alert($('select[name=type_of_profile]').val());
|
//alert($('select[name=type_of_profile]').val());
|
||||||
@@ -19,29 +20,91 @@ foreach($segments as $seg){
|
|||||||
function myFunction(show)
|
function myFunction(show)
|
||||||
{
|
{
|
||||||
return jQuery('#chumper').dataTable({
|
return jQuery('#chumper').dataTable({
|
||||||
|
"sDom": "<'row'<'col-xs-6'l><'col-xs-6'>r>"+
|
||||||
|
"t"+
|
||||||
|
"<'row'<'col-xs-6'i><'col-xs-6'p>>",
|
||||||
"sPaginationType": "full_numbers",
|
"sPaginationType": "full_numbers",
|
||||||
"bProcessing": true,
|
"bProcessing": true,
|
||||||
|
"bServerSide": true,
|
||||||
"ajax": {
|
"ajax": {
|
||||||
url: "{{url('user-list')}}",
|
url: "{{url('user-list')}}",
|
||||||
data: function (d) {
|
data: function (d) {
|
||||||
d.profiletype = show;
|
d.profiletype = show;
|
||||||
|
d.searchTerm = searchTerm;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
$('.active').on('click', function(){
|
$('.all').on('click', function(){
|
||||||
show = 'active';
|
show = 'all';
|
||||||
$("#chumper").dataTable().fnDestroy();
|
classname = '.'+show;
|
||||||
myFunction(show);
|
filterTable(show);
|
||||||
|
toggleActiveClass(classname);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.active-users').on('click', function(){
|
||||||
|
show = 'active-users';
|
||||||
|
classname = '.'+show;
|
||||||
|
filterTable(show);
|
||||||
|
toggleActiveClass(classname);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.inactive').on('click', function(){
|
$('.inactive').on('click', function(){
|
||||||
show = 'inactive';
|
show = 'inactive';
|
||||||
$("#chumper").dataTable().fnDestroy();
|
classname = '.'+show;
|
||||||
myFunction(show);
|
filterTable(show);
|
||||||
|
toggleActiveClass(classname);
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
|
$('.agents').on('click', function(){
|
||||||
|
show = 'agents';
|
||||||
|
classname = '.'+show;
|
||||||
|
filterTable(show);
|
||||||
|
toggleActiveClass(classname);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.users').on('click', function(){
|
||||||
|
show = 'users';
|
||||||
|
classname = '.'+show;
|
||||||
|
filterTable(show);
|
||||||
|
toggleActiveClass(classname);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.banned').on('click', function(){
|
||||||
|
show = 'banned';
|
||||||
|
classname = '.'+show;
|
||||||
|
filterTable(show);
|
||||||
|
toggleActiveClass(classname);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.deleted').on('click', function(){
|
||||||
|
show = 'deleted';
|
||||||
|
classname = '.'+show;
|
||||||
|
filterTable(show);
|
||||||
|
toggleActiveClass(classname);
|
||||||
|
});
|
||||||
|
|
||||||
|
document.getElementById('search-text').onkeypress = function(e){
|
||||||
|
if (!e) e = window.event;
|
||||||
|
var keyCode = e.keyCode || e.which;
|
||||||
|
if (keyCode == '13'){
|
||||||
|
searchTerm = $('input[name=search]').val();
|
||||||
|
$("#chumper").dataTable().fnDestroy();
|
||||||
|
myFunction(show, searchTerm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function filterTable(show) {
|
||||||
|
$("#chumper").dataTable().fnDestroy();
|
||||||
|
myFunction(show, searchTerm);
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggleActiveClass(classname) {
|
||||||
|
$('.active').removeClass('active');
|
||||||
|
$(classname).parent('li').addClass('active');
|
||||||
|
}
|
||||||
|
});
|
||||||
</script>
|
</script>
|
Binary file not shown.
Before Width: | Height: | Size: 1.9 KiB |
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user